adg5/Ai.h
2025-04-21 13:04:27 +10:00

37 lines
696 B
C++

#pragma once
class Actor;
class Ai {
public:
virtual void update(Actor* owner) = 0;
virtual ~Ai() {};
};
class PlayerAi : public Ai {
public:
void update(Actor* owner);
protected:
bool moveOrAttack(Actor* owner, int targetx, int targety);
void handleActionKey(Actor* owner, int sdlkey);
Actor* choseFromInventory(Actor* owner);
};
class MonsterAi : public Ai {
public:
void update(Actor* owner);
protected:
int moveCount;
void moveOrAttack(Actor* owner, int targetx, int targety);
};
class ConfusedMonsterAi : public Ai {
public:
ConfusedMonsterAi(int nbTurns, Ai* oldAi);
void update(Actor* owner);
protected:
int nbTurns;
Ai* oldAi;
};