monrovia.server.platform
Class Command

java.lang.Object
  |
  +--monrovia.server.platform.GameObject
        |
        +--monrovia.server.platform.Command
Direct Known Subclasses:
Look, Say, Walk

public abstract class Command
extends GameObject

Abstract base class for commands. All commands must be inherited from this class.

The command execution goes as follows:

  1. Call the preExecute() method for each command.
  2. Call the tryExecution() method for each command to execute until there is no changes or the maximum loop count is reached.
  3. Call the execute() method for each command.

Requested argument type is located in parameter "command arg". You can also set this in the command implementation method addParameters() or checkParameters().


Field Summary
static IntPoint[] DIRADDS
           
static java.lang.String[] DIRTEXTS
           
 
Constructor Summary
Command()
           
 
Method Summary
 void addParameters(ParameterMap pParameters)
          This method will be called to initialize the parameters.
abstract  void execute()
          Place to do the actual execution.
 Creature getCommander()
           
 int[] getIntArgs()
           
 java.lang.String getStringArg()
           
 boolean isExecute()
          Returns true, if this command is about to execute.
 void postExecute()
          Post execute hook.
 void preExecute()
          Pre execute hook.
 boolean setExecute(boolean pExecute)
          Set whether this command is about to execute.
 void setIntArgs(int[] pIntArgs)
           
 void setStringArg(java.lang.String pStringArg)
           
abstract  boolean tryExecution()
          Check and set marks to see whether this command conflicts with any other command.
 
Methods inherited from class monrovia.server.platform.GameObject
addParameter, checkParameters, clearCommandMarks, create, getArea, getCommandMark, getGI, getID, getLocation, getName, getNeededParameters, getOptionalParameters, getParameter, initialize, removeParameter, resetObject, resetParameters, setCommandMark, setParameter, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DIRTEXTS

public static final java.lang.String[] DIRTEXTS

DIRADDS

public static final IntPoint[] DIRADDS
Constructor Detail

Command

public Command()
Method Detail

addParameters

public void addParameters(ParameterMap pParameters)
Description copied from class: GameObject
This method will be called to initialize the parameters.

Overrides:
addParameters in class GameObject
Following copied from class: monrovia.server.platform.GameObject
Parameters:
pParameters - Add the parameters here

getCommander

public Creature getCommander()

preExecute

public void preExecute()
Pre execute hook.

tryExecution

public abstract boolean tryExecution()
Check and set marks to see whether this command conflicts with any other command.

First check whether the mark is already there. If it is our mark, then it is fine. If it is someone others mark, then we have a conflict. If there is no mark, just put the mark there.

With conflict there first find out which one is the stronger. If it is us, then we must override the mark. If it is not us, then we can't do what we wanted to.

There are also other kind of things that can conflict with a command. For example, if we are moving, someone or something can be in the way. To cope with conflicts you can also add new commands. In the case of previous example, we can for example add a new command to move the guy in front of us out of our way.

You should use setExecute() to tell whether the execution of the command is successful.

Returns:
True, if some mark was changed. If this method is called twice when no mark changes between those two calls, this must return false.

execute

public abstract void execute()
Place to do the actual execution. Called only when execute is set.

postExecute

public void postExecute()
Post execute hook. Called only when execute is set.

isExecute

public boolean isExecute()
Returns true, if this command is about to execute.

setExecute

public boolean setExecute(boolean pExecute)
Set whether this command is about to execute.

getIntArgs

public int[] getIntArgs()

setIntArgs

public void setIntArgs(int[] pIntArgs)

getStringArg

public java.lang.String getStringArg()

setStringArg

public void setStringArg(java.lang.String pStringArg)