Buenas, no sé exactamente que me puede estar fallando en la relaciones que he creado. Me explico.
Tengo un item ("hacha"), el cual tiene una función que inicializo después de crearse todos los objeto y personajes del world.
Código:
// Código a ejecutar cuando se inicializa el personaje
//...inicaliza los temas de conversa con este personaje
void inicializar()
{
// Relacionamos este personaje con los objetos sobre los que les puede preguntar.
//... el último parámetro está a true o false, dependiendo de si éste tema
//... de conversa está activo
set( self, "hablaDe", mobile("herrero"), false);
}
He relacionado el item ("hacha"), con el mobile("herrero").
Luego en el mobile ("herrero") tengo este código;
Código:
// Temas de conversa con esta personaje
//...es decir sobre que cosas este personaje tiene respuesta
void temasDeConversa()
{
// La lista de todos los items y la recorremos entera
EntityList cosas = world.getAllItems();
for (int i=0; i<cosas.size(); i++)
{
mobile("jugador").write ("Relación con : "+ cosas.get(i).getRelatedEntities("hablaDe") + "\n");
// Si existe la relación de ese objeto, y la relación es con este personaje
if ( equals (self, cosas.get(i).getRelatedEntities("hablaDe") ) )
{
mobile("jugador").write ("Hay relación.\n");
mobile("jugador").write(cosas.get(i).getOutputNameThe() + "\n");
}
}
}
Es decir, si el item lo tengo relacionado con el mobile("herrero"), por la relación "hablaDe", sacaría en nombre del item, pero no me imprime nada. Esta es el resultado cuando lo ejecuto:
>>dices temas
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Relación con : [[ eu.irreality.age.Mobile:20000001:herrero ]]
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Relación con : []
Ha detectado la relación, del item con el mobile ("herrero"), que le imprimo con el write ("Relación con : "+ cosas.get(i).getRelatedEntities("hablaDe") + "\n");
Sin embargo no me entra en el if ( equals (self, cosas.get(i).getRelatedEntities("hablaDe") ) ).
Si justo me ha detectado la relación entre ambos, ¿qué es lo que no se cumple en éste if? ¿qué se me está escapando?
Gracias!