cz.cuni.amis.pogamut.udk.bot.impl
Class UDKBotController<BOT extends UDKBot>

Package class diagram package UDKBotController
java.lang.Object
  extended by cz.cuni.amis.pogamut.udk.bot.impl.UDKBotController<BOT>
All Implemented Interfaces:
IUDKBotController<BOT>
Direct Known Subclasses:
UDKBotLogicController

public class UDKBotController<BOT extends UDKBot>
extends Object
implements IUDKBotController<BOT>


Field Summary
protected  BOT bot
          Instance of the bot we're controlling.
protected  LogCategory user
          User log - it's log-level is initially set to Level.ALL.
static String USER_LOG_CATEGORY_ID
          Name of the log category of the user log.
 
Constructor Summary
UDKBotController()
           
 
Method Summary
 void botInitialized(GameInfo gameInfo, ConfigChange currentConfig, InitedMessage init)
          This method is called whenever InitedMessage is received.
 void botKilled(BotKilled event)
          Called whenever the bot gets killed inside the game.
 void botShutdown()
          Called whenever the bot is shutdown (has finished) or killed (not in the game but as the instance).
 void botSpawned(GameInfo gameInfo, ConfigChange currentConfig, InitedMessage init, Self self)
          This method is called only once whenever first batch of information what the bot can see is received.
 IAct getAct()
           
 BOT getBot()
           
 Initialize getInitializeCommand()
          This method is called after handshake with GameBots2004 is over and the GameBots2004 is awaiting the INIT command (Initialize class).
 LogCategory getLog()
          Returns user logger.
 PasswordReply getPassword()
          Returns password that should be used to access the GameBots2004 server.
 IVisionWorldView getWorldView()
           
 void initializeController(BOT bot)
          Called during the construction of the UDKBot before the GameBots2004 greets the bot even before IUDKBotController.prepareBot(UDKBot) method.
 void prepareBot(BOT bot)
          Called during the construction of the UDKBot before the GameBots2004 greets the bot.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

USER_LOG_CATEGORY_ID

public static final String USER_LOG_CATEGORY_ID
Name of the log category of the user log.

See Also:
Constant Field Values

bot

protected BOT extends UDKBot bot
Instance of the bot we're controlling.


user

protected LogCategory user
User log - it's log-level is initially set to Level.ALL.

Constructor Detail

UDKBotController

public UDKBotController()
Method Detail

initializeController

public void initializeController(BOT bot)
Description copied from interface: IUDKBotController
Called during the construction of the UDKBot before the GameBots2004 greets the bot even before IUDKBotController.prepareBot(UDKBot) method.

NOTE: This is Pogamut's developers reserved method - do not override it and if you do, always use 'super' to call parent's initializeController.

Specified by:
initializeController in interface IUDKBotController<BOT extends UDKBot>

prepareBot

public void prepareBot(BOT bot)
Description copied from interface: IUDKBotController
Called during the construction of the UDKBot before the GameBots2004 greets the bot.

Specified by:
prepareBot in interface IUDKBotController<BOT extends UDKBot>

getBot

public BOT getBot()

getPassword

public PasswordReply getPassword()
Description copied from interface: IUDKBotController
Returns password that should be used to access the GameBots2004 server.

Called only if the bot is challenged by the password request.

Specified by:
getPassword in interface IUDKBotController<BOT extends UDKBot>
Returns:

getInitializeCommand

public Initialize getInitializeCommand()
Description copied from interface: IUDKBotController
This method is called after handshake with GameBots2004 is over and the GameBots2004 is awaiting the INIT command (Initialize class). Here you have to construct the Initialize message where you may specify many starting parameters of the bot including: This message is then saved to private field initalizeCommand and is accessible via getInitializeCommand() method if required to probe the starting parameters (even though they can be changed during the bot's lifetime!).

Specified by:
getInitializeCommand in interface IUDKBotController<BOT extends UDKBot>

botInitialized

public void botInitialized(GameInfo gameInfo,
                           ConfigChange currentConfig,
                           InitedMessage init)
Description copied from interface: IUDKBotController
This method is called whenever InitedMessage is received. Various agent modules are usable since this method is called.

Specified by:
botInitialized in interface IUDKBotController<BOT extends UDKBot>

botSpawned

public void botSpawned(GameInfo gameInfo,
                       ConfigChange currentConfig,
                       InitedMessage init,
                       Self self)
Description copied from interface: IUDKBotController
This method is called only once whenever first batch of information what the bot can see is received. It is sort of "first-logic-method" where you may issue commands for the first time and handle everything else in bot's logic then. It eliminates the need to have 'boolean firstLogic' field inside your bot.

Note that this method has advantage over the IUDKBotController.botInitialized(GameInfo, ConfigChange, InitedMessage) that you already have Self object.

Specified by:
botSpawned in interface IUDKBotController<BOT extends UDKBot>

botKilled

public void botKilled(BotKilled event)
Description copied from interface: IUDKBotController
Called whenever the bot gets killed inside the game.

Specified by:
botKilled in interface IUDKBotController<BOT extends UDKBot>

botShutdown

public void botShutdown()
Description copied from interface: IUDKBotController
Called whenever the bot is shutdown (has finished) or killed (not in the game but as the instance).

Use the method to save your work / data collected during the run of the agent.

Pogamut's guarantee that this method is called even if exception happens inside your previous code.

Specified by:
botShutdown in interface IUDKBotController<BOT extends UDKBot>

getWorldView

public IVisionWorldView getWorldView()

getAct

public IAct getAct()

getLog

public LogCategory getLog()
Returns user logger. This call is equivalent to bot.getLogger().getCategory(USER_LOG_ID).

Returns:


Copyright © 2013 AMIS research group, Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic. All Rights Reserved.