/*
 Tiamat - a role-playing game framework
 IAdventureCommands.java - interface for commands used by an adventure style game
 
 Copyright  (C) 2006 Hugues Johnson
 
 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License
 as published by the Free Software Foundation; either version 2
 of the License, or (at your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
 the GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */

package com.huguesjohnson.tiamat;

/**
 * IAdventureCommands - interface for commands used by an adventure style game
 * @author Hugues Johnson
 */
public interface IAdventureCommands{
	/**
	 * enum containing all supported actions.
	 */
	public enum Actions{
		ADDCONDITION("addCondition"),
		ADDITEM("addItem"),
		DRAWTEXT("drawText"),
		DROPITEM("dropItem"),
		GAMEOVER("gameOver"),
		HELP("help"),
		INVENTORY("inventory"),
		LOADGAME("loadGame"),
		LOOK("look"),
		MOVE("move"),
		MOVECHARACTER("moveCharacter"),
		MOVEITEM("moveItem"),
		MOVEPLAYER("movePlayer"),
		NEWGAME("newGame"),
		NEXTSEQUENCEFRAME("nextSequenceFrame"),
		QUIT("quit"),
		RUNSEQUENCE("runSequence"),
		SAVEGAME("saveGame"),
		TAKE("take"),
		TALK("talk"),
		TITLEMENU("titleMenu"),
		USE("use");
		
		Actions(String value){ this.value=value; }
		private final String value;
		public String value(){ return (this.value); }
	}
	
	/**
	 * enum containing all supported action parameters.
	 */
	public enum Parameters{
		CHARACTER("character"),
		CONDITION("condition"),
		EXIT("exit"),
		FRAME("frame"),
		ITEM("item"),
		LOCATION("location"),
		NEWLOCATION("newLocation"),
		NEXTFRAME("nextFrame"),
		OLDLOCATION("oldLocation"),
		SEQUENCE("sequence"),
		TARGET("target"),
		TEXT("text");
		
		Parameters(String value){ this.value=value; }
		private final String value;
		public String value(){ return (this.value); }
	}
}