package Roguelike.Dialogue;
import Roguelike.Dialogue.DialogueManager.ReturnType;
import com.badlogic.gdx.utils.XmlReader.Element;
public class DialogueActionLoop extends AbstractDialogueAction
{
private Dialogue dialogue;
private String condition;
private String[] reliesOn;
@Override
public ReturnType process()
{
ReturnType returnType = dialogue.advance();
if ( returnType != ReturnType.RUNNING && dialogue.index == dialogue.actions.size )
{
if ( processCondition( condition, reliesOn ) ) { return ReturnType.COMPLETED; }
dialogue.index = 0;
if ( returnType == ReturnType.ADVANCE )
{
dialogue.advance();
}
}
return ReturnType.RUNNING;
}
@Override
public void parse( Element xml )
{
dialogue = Dialogue.load( xml, manager );
condition = xml.getAttribute( "Condition" ).toLowerCase();
reliesOn = xml.getAttribute( "ReliesOn", "" ).toLowerCase().split( "," );
}
}