TombsOfHarc/src/Ai.hpp

54 lines
1.1 KiB
C++

class Ai : public Persistent {
public:
virtual void update(Actor *owner)=0;
static Ai *create(TCODZip &zip);
protected:
enum AiType {
MONSTER, CONFUSED_MONSTER, PLAYER
};
};
class PlayerAi : public Ai {
public :
int xpLevel;
PlayerAi();
int getNextLevelXp();
void update(Actor *owner);
void load(TCODZip &zip);
void save(TCODZip &zip);
protected :
bool moveOrAttack(Actor *owner, int targetx, int targety);
void handleActionKey(Actor *owner, int ascii);
Actor *chooseFromInventory(Actor *owner);
};
class MonsterAi : public Ai {
public :
MonsterAi();
void update(Actor *owner);
void load(TCODZip &zip);
void save(TCODZip &zip);
protected :
void moveOrAttack(Actor *owner, int targetx, int targety);
int moveCount;
};
class TemporaryAi : public Ai {
public:
TemporaryAi(int nbTurns);
void update(Actor *owner);
void applyTo(Actor *actor);
void load(TCODZip &zip);
void save(TCODZip &zip);
protected:
int nbTurns;
Ai *oldAi;
};
class ConfusedMonsterAi : public TemporaryAi {
public:
ConfusedMonsterAi(int nbTurns);
void update(Actor *owner);
};