The items that are reachable from the current position of the bot are nearby goals. When the bot wants such an item it will walk towards it and pick it up. To determine if the bot wants an item or to choose the best item out of several fuzzy logic is used. When the bot has an enemy the evaluation of the items is slightly different than when there's no enemy.
There are several structural systems the bot doesn't really understand. The bot will use such systems but doesn't fully understand their relation with the rest of the environment. For instance the bot will ride a platform but doesn't know where it's leading to. The only structural systems the bot really understands are elevators and teleporters. The other structural systems, when reachable, are only used as nearby goals.
The waypoint system is used to translate long term goals into nearby goals. One waypoint is a nearby goal and leads the bot towards a long term goal.
When fighting the enemy is a nearby goal. However an enemy can become a long term goal when chasing.
Roam goals are used to explore the environment.
The roam goals used by the Omicron bot are random visible spots in space.
When a roam goal is chosen several spots are evaluated and the one furthest
away is chosen.
A normal long term goal is an items that is useful for the bot. The bot can't directly walk to the item, otherwise it would have been a nearby goal.
A walk about goal is also an item, but the bot isn't going to such an item because it is useful. The bot travels to the item to find enemies. When the bot wants to fight, it will go to the location of items, assuming other players will go there as well, because the items are useful for them.
A sound goal is the location of a sound caused by a possible enemy. When the bot was able to locate a sound and wants to fight it will go to the origin of the sound to find an enemy.
When the enemy of a bot all of a sudden isn't visible anymore and the bot wants to chase, this enemy will become a chase goal. The bot will try to take the shortest path towards the enemy. The waypoint system is used to achieve this.
Retreat goal
When the bot is fighting and isn't "feeling"
too well, it might want to retreat. In this case the bot uses a retreat
goal. This goal is different from the other long term goals. The bot isn't
traveling towards the physical goal (the enemy), but is moving away from
it. Just like the bot follows waypoints to get near the enemy when chasing,
the bot now tries to get as far away as possible, using the waypoint system.