JavaQuest.Server
Class CCmdFactory

java.lang.Object
  |
  +--JavaQuest.Server.CCmdFactory
All Implemented Interfaces:
java.io.Serializable

public class CCmdFactory
extends java.lang.Object
implements java.io.Serializable

Die Kommando-Factory ist für die Erstellung aller möglicher Kommandos zuständig, die ein bestimmter Spieler auf einem Feld seiner Wahl ausführen kann. Dabei werden systematisch die möglichen Kommando-Objekte erzeugt und auf Ausführbarkeit geprüft. Nach aussen hin wird lediglich mit CCmd Referenzen gearbeitet.

See Also:
CCmd, Serialized Form

Field Summary
protected  CServerProxy m_oServerProxy
          Serverproxy, fuer CGame-Funktionalitaet ohne CGame-Referenz
private  java.util.Vector m_voCommands
          Vector mit den ausfuehrbaren Kommandos
 
Constructor Summary
CCmdFactory()
          Default-Konstruktor
CCmdFactory(CServerProxy _oServerProxy)
          Konstruktor mit ServerProxyreferenz
 
Method Summary
protected  CCmd Attack(CPlayer _oPlayer, CField _oField)
          Kommandoobjekt Angreifen erzeugen
protected  CCmd Drop(CPlayer _oPlayer, CItem _oItem)
          Kommandoobjekt Gegenstand ablegen erzeugen
 boolean execute(int _iCmdIndex)
          Kommando ausfuehren ermittelt anhand des übergebenen Indizes das auszuführende Kokmmando.
protected  CCmd Get(CPlayer _oPlayer, CItem _oItem)
          Kommandoobjekt Gegenstand aufnehmen erzeugen
 java.util.Vector GetPossibleCommands(CField _oField, CPlayer _oPlayer)
          Alle möglichen Kommandos ermitteln.
protected  CCmd Move(CPlayer _oPlayer, CField _oField)
          Kommandoobjekt Bewegen erzeugen
protected  CCmd Search(CPlayer _oPlayer)
          Kommandoobjekt Suchen erzeugen
 void setServerProxy(CServerProxy _oServerProxy)
          ServerProxy setzen, fuer CGame-Funktionalitaet ohne CGame-Referenz
protected  CCmd Use(CPlayer _oPlayer, CItem _oItem)
          Kommandoobjekt Gegenstand benutzen erzeugen
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

m_oServerProxy

protected CServerProxy m_oServerProxy
Serverproxy, fuer CGame-Funktionalitaet ohne CGame-Referenz

m_voCommands

private java.util.Vector m_voCommands
Vector mit den ausfuehrbaren Kommandos
Constructor Detail

CCmdFactory

public CCmdFactory()
Default-Konstruktor

CCmdFactory

public CCmdFactory(CServerProxy _oServerProxy)
Konstruktor mit ServerProxyreferenz
Parameters:
_oServerProxy - auf Server-Proxy Objekt
Method Detail

setServerProxy

public void setServerProxy(CServerProxy _oServerProxy)
ServerProxy setzen, fuer CGame-Funktionalitaet ohne CGame-Referenz
Parameters:
_oServerProxy - neue Server-Proxy Referenz

GetPossibleCommands

public java.util.Vector GetPossibleCommands(CField _oField,
                                            CPlayer _oPlayer)
Alle möglichen Kommandos ermitteln. Diese Funktion wird spezifisch für einen Spieler auf ein bestimmtes Feld duchgeführt. Dabei werden zwei Vorgehensweisen unterschieden: Einerseits, wenn der Spieler sein eigenes Feld angewählt hat, werden Suchen und die verschiedenen Gegenstands- Kommandos (aufheben/ablegen) generiert. Andererseits, klickt er auf ein anderes Feld, wird entweder Bewegen oder Angreifen (oder keins von beidem) erstellt. Der resultierende Kommandovektor wird zwischengespeichert, so dass später die Ausführung des Kommandos über einen Index möglich ist.
Parameters:
_oField - Ausgewähltes Zielfeld, für das Kommandos generiert werden sollen.
_oPlayer - Aufrufender Spieler
Returns:
Vector mit allen möglichen Kommandos

Attack

protected CCmd Attack(CPlayer _oPlayer,
                      CField _oField)
Kommandoobjekt Angreifen erzeugen
Parameters:
_oField - Anzugreifendes Spielfeld
_oPlayer - Aufrufender Spieler
Returns:
CCmdAttack-Objekt
See Also:
CCmdAttack

Drop

protected CCmd Drop(CPlayer _oPlayer,
                    CItem _oItem)
Kommandoobjekt Gegenstand ablegen erzeugen
Parameters:
_oItem - Abzulegender Gegenstand
_oPlayer - Aufrufender Spieler
Returns:
CCmdDrop-Objekt
See Also:
CCmdDrop

Get

protected CCmd Get(CPlayer _oPlayer,
                   CItem _oItem)
Kommandoobjekt Gegenstand aufnehmen erzeugen
Parameters:
_oItem - Aufzunehmender Gegenstand
_oPlayer - Aufrufender Spieler
Returns:
CCmdGet-Objekt
See Also:
CCmdGet

Move

protected CCmd Move(CPlayer _oPlayer,
                    CField _oField)
Kommandoobjekt Bewegen erzeugen
Parameters:
_oField - Zielfeld
_oPlayer - Aufrufender Spieler
Returns:
CCmdMove-Objekt
See Also:
CCmdMove

Search

protected CCmd Search(CPlayer _oPlayer)
Kommandoobjekt Suchen erzeugen
Parameters:
_oPlayer - Aufrufender Spieler
Returns:
CCmdSearch-Objekt
See Also:
CCmdSearch

Use

protected CCmd Use(CPlayer _oPlayer,
                   CItem _oItem)
Kommandoobjekt Gegenstand benutzen erzeugen
Parameters:
_oItem - Zu benutzender Gegenstand
_oPlayer - Aufrufender Spieler
Returns:
CCmdUse-Objekt
See Also:
CCmdUse

execute

public boolean execute(int _iCmdIndex)
                throws java.rmi.RemoteException
Kommando ausfuehren ermittelt anhand des übergebenen Indizes das auszuführende Kokmmando. Dies wird aus dem in GetPossibleCommands gesicherten Vector extrahiert und ausgeführt.
Parameters:
_iCmdIndex - Index des auszuführenden Kommandos
Returns:
Rückgabewert von CCmd::execute()
See Also:
CCmd