package Roguelike.Dialogue;
import Roguelike.Global;
import Roguelike.Dialogue.DialogueManager.ReturnType;
import com.badlogic.gdx.utils.XmlReader.Element;
public class DialogueActionSetVariable extends AbstractDialogueAction
{
public enum VariableType
{
LOCAL, WORLDFLAG, RUNFLAG
}
private VariableType type;
private String key;
private String value;
@Override
public ReturnType process()
{
if ( type == VariableType.LOCAL )
{
manager.data.put( key, Integer.parseInt( value ) );
}
else if ( type == VariableType.WORLDFLAG )
{
Global.WorldFlags.put( key, Global.expandNames( value ) );
}
else if ( type == VariableType.RUNFLAG )
{
Global.RunFlags.put( key, Global.expandNames( value ) );
}
return ReturnType.ADVANCE;
}
@Override
public void parse( Element xml )
{
type = VariableType.valueOf( xml.get( "Type", "local" ).toUpperCase() );
key = xml.get( "Key" ).toLowerCase();
value = xml.get( "Value" );
}
}