#include <AI.h>
Veřejné metody | |
AI_4 (Creature *creature) | |
Zavolá konstruktor AI. | |
virtual void | move () |
Hýbne nestvůrou. | |
virtual Sint16 | type () const |
Typ inteligence. | |
virtual | ~AI_4 () |
Destruktor. | |
Chráněné metody | |
AI_4 (Creature *creature, isTypeOf &isBlocking, Uint16 minDistance) | |
Zavolá konstruktor AI, nastaví ostatní parametry. | |
virtual PositionIndex | findPosIndex (isTypeOf &isBlocking) |
Najde index pozice, na kterou bychom měli jít. | |
PositionIndex | findPosIndexToWalkRandomly_ (isTypeOf &isBlocking) |
Najde náhodně pozici kam může jít. | |
void | updateDistance_ (position_t &position) |
Chráněné atributy | |
Uint16 | minDistanceWalkedStraight_ |
Vzdálenost, jakou musí najednou ujít. | |
Uint16 | distanceWalkedStraight_ |
Vzdálenost ušlá od minulé změny směru. |
Náhodně mění směr, je však definováno, jakou vzdálenost musí ujít rovně. (Aby se nestalo, že se bude motat na místě. Vůbec neřeší blížící se výbuch nebo dostižení hráče.
virtual AI_4::~AI_4 | ( | ) | [inline, virtual] |
Destruktor.
Zavolá konstruktor AI, nastaví ostatní parametry.
void AI_4::move | ( | ) | [virtual] |
Hýbne nestvůrou.
Obnoví možné pozice, vybere z nich pomocí findPosIndex(), obnoví vzdálenost ušlou přímo, nastaví vybranou pozici.
Reimplementuje stejnojmenný prvek z AI_1.
Reimplementováno v AI_6, AI_8 a AI_9.
virtual Sint16 AI_4::type | ( | ) | const [inline, virtual] |
AI::PositionIndex AI_4::findPosIndex | ( | isTypeOf & | isBlocking | ) | [protected, virtual] |
Najde index pozice, na kterou bychom měli jít.
Najde index pomocí findPosIndexToWalkStraight_(), pokud ušel dostatečnou vzdálenost rovně, použije findPosIndexToWalkRandomly_().
isBlocking | predikát určující blokující objekty |
Reimplementuje stejnojmenný prvek z AI_1.
Reimplementováno v AI_10.
AI::PositionIndex AI_4::findPosIndexToWalkRandomly_ | ( | isTypeOf & | isBlocking | ) | [protected] |
Najde náhodně pozici kam může jít.
Vybere náhodně spravedlivě z možních pozic.
isBlocking | predikát určující blokující objekty |
void AI_4::updateDistance_ | ( | position_t & | position | ) | [protected] |
Přidá ušlou vzdálenost k vzdálenosti ušlé rovně, pokud už původní vzdálenost ušlá rovně byla dost velká, vynuluje ji.
position | pozice, podle které máme obnovit vzdálenost |
Uint16 AI_4::minDistanceWalkedStraight_ [protected] |
Vzdálenost, jakou musí najednou ujít.
Uint16 AI_4::distanceWalkedStraight_ [protected] |
Vzdálenost ušlá od minulé změny směru.