Package cz.cuni.pogamut.Client

Main package for creating bots, Agent class resides here.

See:
          Description

Interface Summary
AgentIterationEndListener Listener for the logic iteration end.
Commands interface which specifies which commands with what arguments are available all method descriptions are in the fashion: description of the method example of the desired string entered in the command property content
Inventory Inventory specifies methods that should provide easy and fast work with agent inventory
Knowledge Interface to define method which will be used to provide access to agent long-term memory (e.g. last known position of a player, known items, known nav points, known whatever)
Navigation Navigation is an interface that gathers methods for agent's navigation through a map.
RcvMsgListener listener which takes care about receiving message used in History - when client receives message, it raise this event
RecentMemory specifies methods available for Recent Memory (memory of agent, which is up to 2 seconds to past)
SendCmdListener listener which takes care about sending commands therefore you can register listener on commands and will be notified whenever AgentBody sends one
WorldView This interface create view on the AgentMemory class that enables information of sensoric character
 

Class Summary
Agent Class Agent wraps up the client, all aplications (bots) should be derived from this class and use methods of its compounds (body, memory, map).
AgentAux Auxiliary class providing support for storing logs to file, etc ...
AgentBody AgentBody is wrapping up communication with parser and execution of commands it receives messages, some of them are compressed and AgentBody provides their completion according to recent messages stored in knownObjects Commands are available using methods of AgentBody like RunTo(navPoint) AgentBody is also hidding difference between Remote and Local Parser TODO: to throw exception or not to throw exception
AgentInitializer class used to initialize agent by changing parameters of this class you are modifying the init message sent by body to GB hence modifying your agent accuracy, skin, vulnerability, etc.
AgentInventory AgentInventory serves to keep info about the weapons agent is carrying it provides usefull methods which can be used to determine suitability of visible ammo or to able to switch among possesed weapons Some profiling should take place here - don't know which operation will be the most used, so I tried to KISS - "keep it simple and stupid":)
AgentIterationEndEvent Event which is fired every iteration of agent logic
AgentLauncher This class will allow you to do the basic operations with agent the easy way.
AgentMemory AgentMemory is taking care of implementation of WorldView and RecentMemory interfaces hence it uses History and methods are queries to History object WorldView gives a view on History that shows only current information (things that agent perceives at the very moment) RecentMemory gives a view on History that shows past information (like players seen in last 2 seconds) this is very handy, because only event driven agent could be quite vulnerable because when he suddenly stop perceiving an object he should be able to remember its position for a while (like when agent picks up an armor while engaging enemy, he turns for an armor and hence stop seeing enemy, so he could stop engaging him, but he got some memory so he remembers that the enemy was there recently and can try to locate him and start engaging again) Another offered service is Inventory - methods to work with inventory, like add weapons, get weapon of some kind, usability of ammo, getBetterWeapon (according to player and enemy possition) etc.
AgentStats Wrapper for Agent's collectiong various statistical information.
BaseBot This class is meant as an example for the user of Pogamut2 - it overrides the crucial methods and explains them (see the respective methods).
BotLauncher Utilility for launching bots in various scenarios e.g. loading from jars.
BotManagement  
GameMap GameMap provides simple navigation information e.g. nearest navigation point, path to specified object it also integrates AStar algorithm and use it to answer request for get path.
GameMapAStarGoal  
GameMapAStarMap  
GameMapSettings  
History History contains a structure which is a compound of couple containers it is an Array of Container of Set First level of indexation - TIME - using HistoryBatch as an item in array - see for reference Second level of indexation - TYPE Third levet - HashMap - key is ID, value Object example usage - getSeenMessageObjectsInTime(3,3) - return NavPoints(type = 3) that agent saw in last 3 end messages (last three batches) another example - getSeenMessageObjectsInTime(7,5) - return Players(type = 7) that agent saw in last 5 batches, but their properties will be same during the time, it doesn't matter that they moved before
HistoryBatch HistoryBatch is a class that stores one batch of messages from Gamebots it therefore has a structure to save them to it is indexed by type of item and on this index, you can find HashMap with all items saved at the current batch - so some of them are mostly empty Special attention should be payed to items without ID, those are stored under fantom ID which is negative and goes down from -1 to MIN_VALUE of int.
HistoryIterator HistoryIterator is an iterator for History
it has two kinds of next and hasNext according to the value of unique in both cases it iterates through first batch and, after exhausting this one, proceed to next batch until it reaches the last batch or the specified depth it iterates only through items of specified type
ItemDistance auxiliary class for sorting Items according to distance from the bot used in nearestHealths for instance
KnownCathegorizedObjects Container for storing known MessageObjects
enables fast access to stored objects via HashMap
its descendants are used in agenMemory - for the implementation of Knowledge interface constructor requires AgentBody to register listener
KnownItems store all known inventory spots - as ITEM-derived messages should be fast in getting item of desired object structure is HashMap>
KnownNavPoints Descendant of KnownCathegorizedObjects - store navigation points
KnownObjects KnownObjects store messages necessary for multiple uses stored messages are used to complete received compressed message possibly will be used as a part of memory - last player position etc.
KnownPlayers Descendant of KnownCathegorizedObjects - store players, keep their data up to date
useful for situations like pursueing enemy, which got hidden behind the corner
ModifiableAgentStats  
PathManager This class encapsulate work with paths during navigation so it is on one place and it is clearer what is going on with them
1) call either retrievePathGB() or retrievePathAStart()
2) check it's result ... if PATH_FOUND then use getPath() to get found path


3) When the path is successfully retrieved, you may then call runAlongPath() method.
RcvMsgEvent Event which is raised when new message arrives and is processed.
ScriptedAgent This is class for the agents that are using the ScriptEngine.
SendCmdEvent Event which is raised when the command is sent.
TestBot Good old Kheppera robots, who doesn't know them?
TestBot2 NOTE: Class with agent must be marked also in manifest.mf, otherwise IDE don't know, which file it should run.
 

Enum Summary
PathManager.Lift  
PathManager.PathResult Result when finding the path...
PathManager.RunAlongPathState  
PathManager.RunResult Result of the runAlongPath.
PathTypes types of path, path manager is requiring path depending on the path type from GB or from built-in A* of course when A* is disabled, path manager will use GB for all cases
SkinTypes NOT USED RIGHT NOW.
 

Package cz.cuni.pogamut.Client Description

Main package for creating bots, Agent class resides here.