#include <AI.h>
Veřejné metody | |
AI_ShortAttack (Creature *creature) | |
Chráněné metody | |
void | updateTargetPosition () |
Obnoví pozici cíle. | |
bool | targetFound () const |
Zda našel cíl (má na co útočit). | |
AI::position_t | createPositionToAttack_ () |
Vytvoří útočící pozici. | |
Privátní metody | |
bool | trySetTargetPosition_ (Uint16 field_x, Uint16 field_y, Sint16 relative_x, Sint16 relative_y) |
Pokusí se nastavit pozici cíle. | |
Privátní atributy | |
Creature * | creature_ |
Rodičovská příšera. | |
AI::position_t | currPosition_ |
Aktuální pozice rodičovské příšery. | |
bool | targetFound_ |
Zda našel cíl. | |
Sint16 | target_relative_x_ |
Relativní pozice cíle v mapě. | |
Sint16 | target_relative_y_ |
Relativní pozice cíle v mapě. |
Utilita pro umělou inteligence, která neřeší pohyb, pouze kontroluje políčka kolem sebe a když na nich objeví hráče, může rychle zaútočí. Užitečné v kombinaci s nějakým potomkem AI.
AI_ShortAttack::AI_ShortAttack | ( | Creature * | creature | ) | [explicit] |
void AI_ShortAttack::updateTargetPosition | ( | ) | [protected] |
Obnoví pozici cíle.
Nastaví currPosition_ na aktuální pozici příšery. Pokud najde hráče, na kterého může útočit, nastaví targetFound_ na TRUE a target_relative_* na pozici kam se má útočit. Pokud nenajde hráče, nastaví targetFound_ na FALSE.
bool AI_ShortAttack::targetFound | ( | ) | const [inline, protected] |
Zda našel cíl (má na co útočit).
AI::position_t AI_ShortAttack::createPositionToAttack_ | ( | ) | [protected] |
Vytvoří útočící pozici.
Podle target_relative_* vytvoří útočící pozici. Útočící pozice je vždy vzdálena od aktuální maximálně dvojnásobek rychlosti příšery, průměrně však 1.45 násobek. Jednak chceme nablízko útočit o něco rychleji, jednak když použijeme rychlost příšery v obou směrech, jdeme po úhlopříčce (a ta je sqrt(2) krát větší než kdybychom šli ortogonálně).
bool AI_ShortAttack::trySetTargetPosition_ | ( | Uint16 | field_x, | |
Uint16 | field_y, | |||
Sint16 | relative_x, | |||
Sint16 | relative_y | |||
) | [private] |
Pokusí se nastavit pozici cíle.
Nastaví útočící pozici pokud může. Útočit přímo může vždy. POZOR že může útočit přímo ikdyž vchází na blokované políčko, to se stává často když hráč položí bombu a zůstane na ní stát. Ůtočit šikmo (dvěma směry naráz) může pouze když je alespoň jeden směr volný.
field_x | x-ová souřadnice výchozího políčka | |
field_y | y-ová souřadnice výchozího políčka | |
relative_x | relativní x-ová souřadnice cíle | |
relative_y | relativní y-ová souřadnice cíle |
Creature* AI_ShortAttack::creature_ [private] |
Rodičovská příšera.
AI::position_t AI_ShortAttack::currPosition_ [private] |
Aktuální pozice rodičovské příšery.
bool AI_ShortAttack::targetFound_ [private] |
Zda našel cíl.
Sint16 AI_ShortAttack::target_relative_x_ [private] |
Relativní pozice cíle v mapě.
Sint16 AI_ShortAttack::target_relative_y_ [private] |
Relativní pozice cíle v mapě.