package Roguelike.Quests.Output;
import Roguelike.Entity.GameEntity;
import Roguelike.Global;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.XmlReader;
/**
* Created by Philip on 24-Jan-16.
*/
public class QuestOuputConditionDialogueValue extends AbstractQuestOutputCondition
{
public String entityName;
public String dialogueKey;
public int dialogueValue;
public boolean not;
@Override
public boolean evaluate()
{
Array<GameEntity> entities = new Array<GameEntity>( );
Global.CurrentLevel.getAllEntities( entities );
boolean found = false;
for (GameEntity entity : entities)
{
if ( (entityName == null || entity.name.equals( entityName ) ) && entity.dialogue != null)
{
if (entity.dialogue.data.containsKey( dialogueKey ) && entity.dialogue.data.get( dialogueKey ) == dialogueValue )
{
found = true;
break;
}
}
}
if (not)
{
found = !found;
}
return found;
}
@Override
public void parse( XmlReader.Element xml )
{
entityName = xml.get( "Entity", null );
dialogueKey = xml.get( "Key" ).toLowerCase();
dialogueValue = xml.getInt( "Value" );
not = xml.getBooleanAttribute( "Not", false );
}
}