|
|
| ArenaAI (AbstractKart *kart) |
| |
| virtual void | update (int ticks) OVERRIDE |
| | This is the main entry point for the AI. More...
|
| |
|
virtual void | reset () OVERRIDE |
| | Resets the AI when a race is restarted.
|
| |
| virtual void | newLap (int lap) OVERRIDE |
| | Callback whenever a new lap is triggered. More...
|
| |
|
| AIBaseController (AbstractKart *kart) |
| |
|
virtual bool | disableSlipstreamBonus () const OVERRIDE |
| | Certain AI levels will not receive a slipstream bonus in order to be not as hard.
|
| |
| virtual void | crashed (const Material *m) OVERRIDE |
| | This is called when the kart crashed with the terrain. More...
|
| |
|
virtual void | crashed (const AbstractKart *k) OVERRIDE |
| |
|
virtual void | handleZipper (bool play_sound) OVERRIDE |
| |
|
virtual void | finishedRace (float time) OVERRIDE |
| | Called whan this controller's kart finishes the last lap.
|
| |
|
virtual void | collectedItem (const ItemState &item, float previous_energy=0) OVERRIDE |
| |
|
virtual void | setPosition (int p) OVERRIDE |
| |
| virtual bool | isPlayerController () const OVERRIDE |
| | This function checks if this player is not an AI, i.e. More...
|
| |
| virtual bool | isLocalPlayerController () const OVERRIDE |
| | This function checks if this is a local player. More...
|
| |
| virtual bool | action (PlayerAction action, int value, bool dry_run=false) OVERRIDE |
| | Default: ignore actions. More...
|
| |
|
virtual void | skidBonusTriggered () OVERRIDE |
| |
|
virtual bool | saveState (BareNetworkString *buffer) const OVERRIDE |
| |
|
virtual void | rewindTo (BareNetworkString *buffer) OVERRIDE |
| |
|
void | setNetworkAI (bool val) |
| |
|
| Controller (AbstractKart *kart) |
| | Constructor, saves the kart pointer and a pointer to the KartControl of the kart.
|
| |
|
virtual void | rumble (float strength_low, float strength_high, uint16_t duration) |
| |
|
const std::string & | getControllerName () const |
| | Returns the name of this controller.
|
| |
|
virtual KartControl * | getControls () |
| | Get a pointer on the kart controls.
|
| |
|
void | setControls (KartControl *kc) |
| |
|
virtual bool | canGetAchievements () const |
| | Only local players can get achievements.
|
| |
| virtual core::stringw | getName (bool include_handicap_string=true) const |
| | Display name of the controller. More...
|
| |
|
AbstractKart * | getKart () const |
| | Returns the kart controlled by this controller.
|
| |
|
| void | tryCollectItem (Vec3 *aim_point, int *target_node) const |
| | Try to collect item in arena, if no suitable item is found, like they are swapped, it will follow closest kart instead. More...
|
| |
| virtual void | findClosestKart (bool consider_difficulty, bool find_sta)=0 |
| | Find the closest kart around this AI, implemented by sub-class. More...
|
| |
| void | setControllerName (const std::string &name) OVERRIDE |
| | In debug mode when the user specified –ai-debug on the command line set the name of the controller as on-screen text, so that the different AI controllers can be distinguished. More...
|
| |
| float | steerToPoint (const Vec3 &point) |
| | Computes the steering angle to reach a certain point. More...
|
| |
| float | normalizeAngle (float angle) |
| | Normalises an angle to be between -pi and _ pi. More...
|
| |
| bool | isStuck () const |
| | This can be called to detect if the kart is stuck (i.e. More...
|
| |
| void | determineTurnRadius (const Vec3 &end, Vec3 *center, float *radius) const |
| | Determine the center point and radius of a circle given two points on the circle and the tangent at the first point. More...
|
| |
| virtual void | setSteering (float angle, float dt) |
| | Converts the steering angle to a lr steering in the range of -1 to 1. More...
|
| |
|
|
void | configSpeed () |
| | Configure a suitable speed depends on current turn radius.
|
| |
|
void | configSteering () |
| | This function config the steering (m_steering_angle) of AI.
|
| |
| void | checkIfStuck (const float dt) |
| | Determine whether AI is stuck, by checking if it stays on the same node for a long period of time (see m_on_node), or isStuck() is true. More...
|
| |
| void | determinePath (int forward, std::vector< int > *path) |
| | Determine if the path to target needs to be changed to avoid bad items, it will also set the turn radius based on the new path if necessary. More...
|
| |
|
void | doSkiddingTest () |
| | Determine if AI should skid: When it's close to target, but not straight ahead, in front of it, same steering side and with suitable difficulties which are in expert and supertux only.
|
| |
|
void | doUTurn (const float dt) |
| | Make AI reverse so that it faces in front of the last target point.
|
| |
| bool | gettingUnstuck (int ticks) |
| | Function to let AI get unstuck. More...
|
| |
| bool | updateAimingPosition (Vec3 *target_point) |
| | Update aiming position, use path finding if necessary. More...
|
| |
| void | useItems (const float dt) |
| | Determine how AI should use its item, different m_cur_difficulty will have a corresponding strategy. More...
|
| |
|
virtual bool | canSkid (float steer_fraction) OVERRIDE |
| | Return true if AI can skid now.
|
| |
|
virtual void | findTarget ()=0 |
| | Find a suitable target for this frame, implemented by sub-class.
|
| |
|
virtual bool | forceBraking () |
| | If true, AI will always try to brake for this frame.
|
| |
|
virtual int | getCurrentNode () const =0 |
| | Return the current ArenaNode the AI located on.
|
| |
| virtual float | getKartDistance (const AbstractKart *kart) const =0 |
| | Return the distance based on graph distance matrix to any kart. More...
|
| |
|
virtual bool | ignorePathFinding () |
| | If true, AI will drive directly to target without path finding.
|
| |
|
virtual bool | isWaiting () const =0 |
| | If true, AI will stop moving.
|
| |
|
virtual bool | isKartOnRoad () const =0 |
| | If true, AI stays on the ArenaNode correctly, otherwise RescueAnimation will be done after sometime.
|
| |
|
virtual void | resetAfterStop () |
| | Overridden if any action is needed to be done when AI stopped moving or changed driving direction.
|
| |
|
|
Vec3 | m_target_point_lc |
| | Local coordinates of current target point.
|
| |
|
Vec3 | m_reverse_point |
| | Save the last target point before reversing, so AI will end reversing until facing in front of it.
|
| |
|
bool | m_is_stuck |
| | Indicates that the kart is currently stuck, and m_ticks_since_reversing is counting down.
|
| |
|
bool | m_is_uturn |
| | Indicates that the kart need a uturn to reach a node behind, and m_time_since_uturn is counting down.
|
| |
|
std::set< int > | m_on_node |
| | Holds the unique node ai has driven through, useful to tell if AI is stuck by determine the size of this set.
|
| |
|
float | m_time_since_last_shot |
| | Time an item has been collected and not used.
|
| |
|
float | m_ticks_since_reversing |
| | This is a timer that counts down when the kart is reversing to get unstuck.
|
| |
|
float | m_time_since_driving |
| | This is a timer that counts down when the kart is starting to drive.
|
| |
|
float | m_time_since_uturn |
| | This is a timer that counts down when the kart is doing u-turn.
|
| |
|
int | m_ticks_since_off_road |
| | This is a timer that counts when the kart start going off road.
|
| |
|
float | m_turn_radius |
| | Used to determine braking and nitro usage.
|
| |
|
float | m_steering_angle |
| | Used to determine if skidding can be done.
|
| |
|
Vec3 | m_current_forward_point |
| | The point in front of the AI which distance is m_kart_length, used to compensate the time difference between steering when finding next node.
|
| |
|
int | m_current_forward_node |
| | The ArenaNode at which the forward point located on.
|
| |
A base class for AI that use navmesh to work.
| void ArenaAI::update |
( |
int |
ticks | ) |
|
|
virtual |
This is the main entry point for the AI.
It is called once per frame for each AI and determines the behaviour of the AI, e.g. steering, accelerating/braking, firing.
- Parameters
-
| ticks | Number of physics time steps - should be 1. |
Reimplemented from AIBaseController.
Reimplemented in SpareTireAI, and SoccerAI.