cz.cuni.amis.pogamut.ut2004.agent.module.sensor
Class CTF

Package class diagram package CTF
java.lang.Object
  extended by cz.cuni.amis.pogamut.base.agent.module.AgentModule<AGENT>
      extended by cz.cuni.amis.pogamut.base.agent.module.SensorModule<UT2004Bot>
          extended by cz.cuni.amis.pogamut.ut2004.agent.module.sensor.CTF
All Implemented Interfaces:
IComponent

public class CTF
extends SensorModule<UT2004Bot>

CTF module is encapsulating basic CTF-game logic. That is it tracks state of our/enemy flag and can quickly tells you whether you can score / your team can score / enemy team can score, etc... This info is available only for CTF games.

Author:
Jimmy

Nested Class Summary
protected  class CTF.FlagUpdatedListener
           
protected  class CTF.GameInfoListener
          ItemPickedUp listener.
protected  class CTF.SelfUpdatedListener
           
 
Field Summary
protected  boolean enabled
          Module is enabled ONLY for CTF games.
protected  NavPoint enemyBase
           
protected  FlagInfo enemyFlag
           
protected  CTF.FlagUpdatedListener flagUpdatedListener
           
protected  CTF.GameInfoListener gameInfoListener
           
 AgentInfo info
          Agent info module.
protected  NavPoint ourBase
           
protected  FlagInfo ourFlag
           
protected  Self self
           
protected  CTF.SelfUpdatedListener selfAppearedListener
           
 
Fields inherited from class cz.cuni.amis.pogamut.base.agent.module.SensorModule
worldView
 
Fields inherited from class cz.cuni.amis.pogamut.base.agent.module.AgentModule
agent, controller, eventBus, log
 
Constructor Summary
CTF(UT2004Bot bot)
          Constructor.
CTF(UT2004Bot bot, AgentInfo info)
          Constructor.
 
Method Summary
 boolean canBotScore()
          Whether this bot can currently SCORE == our flag is at home AND this bot is carrying the flag.
 boolean canEnemyTeamPossiblyScore()
          Whether enemy team may score == enemy flag is at home, alias for isEnemyFlagHome().
 boolean canEnemyTeamScore()
          Whether enemy team can currently SCORE by carrying our flag into enemy (their) base == enemy flag is at home && some of enemy player is carrying our flag.
 boolean canOurTeamPossiblyScore()
          Whether your team may score == your flag is at home, alias for isOurFlagHome().
 boolean canOurTeamScore()
          Whether our team can currently SCORE by carrying enemy flag into our base == our flag is at home && some of my team-mate is carrying enemy flag.
protected  void cleanUp()
           
 void flagAppeared(FlagInfo flag)
           
 void gameInfoSensed(GameInfo gameInfo)
           
 NavPoint getEnemyBase()
          Returns ENEMY BASE navpoint.
 FlagInfo getEnemyFlag()
          Returns ENEMY flag.
 NavPoint getOurBase()
          Returns OUR BASE navpoint.
 FlagInfo getOurFlag()
          Returns OUR flag.
 boolean isBotCarryingEnemyFlag()
          Whether this bot (you) is carrying enemy flag.
 boolean isEnabled()
          Check whether the module is enabled.
 boolean isEnemyFlagDropped()
          ENEMY FLAG IS LAYING SOMEWHERE!
 boolean isEnemyFlagHeld()
          ENEMY FLAG is being carried by some team-mate.
 boolean isEnemyFlagHome()
          ENEMY FLAG is safe at enemy home.
 boolean isEnemyTeamCarryingOurFlag()
          Whether enemy team is currently carrying our flag, alias for isOurFlagHeld().
 boolean isOurFlagDropped()
          OUR FLAG IS LAYING SOMEWHERE!
 boolean isOurFlagHeld()
          OUR FLAG is being carried by some enemy player.
 boolean isOurFlagHome()
          OUR FLAG is safe at home.
 boolean isOurTeamCarryingEnemyFlag()
          Whether our team is currently carrying enemy flag, alias for isEnemyFlagHeld().
 void selfAppeared(Self self)
           
protected  void setEnabled(boolean value)
          Enabled/disabled based on the game that is currently running, see CTF.GameInfoListener.
protected  void start(boolean startToPaused)
           
 
Methods inherited from class cz.cuni.amis.pogamut.base.agent.module.AgentModule
getComponentId, getLog, getState, initComponentId, isRunning, kill, pause, reset, resume, stop, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

self

protected Self self

ourFlag

protected FlagInfo ourFlag

ourBase

protected NavPoint ourBase

enemyFlag

protected FlagInfo enemyFlag

enemyBase

protected NavPoint enemyBase

enabled

protected boolean enabled
Module is enabled ONLY for CTF games. INITIALLY SET TO: false


gameInfoListener

protected CTF.GameInfoListener gameInfoListener

flagUpdatedListener

protected CTF.FlagUpdatedListener flagUpdatedListener

selfAppearedListener

protected CTF.SelfUpdatedListener selfAppearedListener

info

public AgentInfo info
Agent info module.

Constructor Detail

CTF

public CTF(UT2004Bot bot)
Constructor. Setups the memory module based on bot's world view.

Parameters:
game - game info module

CTF

public CTF(UT2004Bot bot,
           AgentInfo info)
Constructor. Setups the memory module based on bot's world view.

Parameters:
bot - owner of the module
info - agent info module
Method Detail

setEnabled

protected void setEnabled(boolean value)
Enabled/disabled based on the game that is currently running, see CTF.GameInfoListener.

Parameters:
value -

getEnemyFlag

public FlagInfo getEnemyFlag()
Returns ENEMY flag. Available since first logic().

Returns:

getEnemyBase

public NavPoint getEnemyBase()
Returns ENEMY BASE navpoint. Available since first logic().

Returns:

canEnemyTeamPossiblyScore

public boolean canEnemyTeamPossiblyScore()
Whether enemy team may score == enemy flag is at home, alias for isEnemyFlagHome().

Returns:

canEnemyTeamScore

public boolean canEnemyTeamScore()
Whether enemy team can currently SCORE by carrying our flag into enemy (their) base == enemy flag is at home && some of enemy player is carrying our flag.

Returns:

isEnemyTeamCarryingOurFlag

public boolean isEnemyTeamCarryingOurFlag()
Whether enemy team is currently carrying our flag, alias for isOurFlagHeld().

Returns:

isEnemyFlagHome

public boolean isEnemyFlagHome()
ENEMY FLAG is safe at enemy home.

Returns:

isEnemyFlagDropped

public boolean isEnemyFlagDropped()
ENEMY FLAG IS LAYING SOMEWHERE!

Returns:

isEnemyFlagHeld

public boolean isEnemyFlagHeld()
ENEMY FLAG is being carried by some team-mate.

Returns:

getOurFlag

public FlagInfo getOurFlag()
Returns OUR flag. Available since first logic().

Returns:

getOurBase

public NavPoint getOurBase()
Returns OUR BASE navpoint. Available since first logic().

Returns:

canOurTeamPossiblyScore

public boolean canOurTeamPossiblyScore()
Whether your team may score == your flag is at home, alias for isOurFlagHome().

Returns:

canOurTeamScore

public boolean canOurTeamScore()
Whether our team can currently SCORE by carrying enemy flag into our base == our flag is at home && some of my team-mate is carrying enemy flag.

Returns:

canBotScore

public boolean canBotScore()
Whether this bot can currently SCORE == our flag is at home AND this bot is carrying the flag.

Returns:

isBotCarryingEnemyFlag

public boolean isBotCarryingEnemyFlag()
Whether this bot (you) is carrying enemy flag.

Returns:

isOurTeamCarryingEnemyFlag

public boolean isOurTeamCarryingEnemyFlag()
Whether our team is currently carrying enemy flag, alias for isEnemyFlagHeld().

Returns:

isOurFlagHome

public boolean isOurFlagHome()
OUR FLAG is safe at home.

Returns:

isOurFlagDropped

public boolean isOurFlagDropped()
OUR FLAG IS LAYING SOMEWHERE!

Returns:

isOurFlagHeld

public boolean isOurFlagHeld()
OUR FLAG is being carried by some enemy player.

Returns:

isEnabled

public boolean isEnabled()
Check whether the module is enabled. The module is enabled only for CTF games.

Returns:

gameInfoSensed

public void gameInfoSensed(GameInfo gameInfo)

flagAppeared

public void flagAppeared(FlagInfo flag)

selfAppeared

public void selfAppeared(Self self)

start

protected void start(boolean startToPaused)
Overrides:
start in class AgentModule<UT2004Bot>

cleanUp

protected void cleanUp()
Overrides:
cleanUp in class AgentModule<UT2004Bot>


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