mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-29 23:07:48 +02:00
Support multiple battles in AI
This commit is contained in:
@@ -80,8 +80,8 @@ public:
|
||||
virtual void initBattleInterface(std::shared_ptr<Environment> ENV, std::shared_ptr<CBattleCallback> CB, AutocombatPreferences autocombatPreferences){};
|
||||
|
||||
//battle call-ins
|
||||
virtual void activeStack(const CStack * stack)=0; //called when it's turn of that stack
|
||||
virtual void yourTacticPhase(int distance)=0; //called when interface has opportunity to use Tactics skill -> use cb->battleMakeTacticAction from this function
|
||||
virtual void activeStack(const BattleID & battleID, const CStack * stack)=0; //called when it's turn of that stack
|
||||
virtual void yourTacticPhase(const BattleID & battleID, int distance)=0; //called when interface has opportunity to use Tactics skill -> use cb->battleMakeTacticAction from this function
|
||||
};
|
||||
|
||||
/// Central class for managing human player / AI interface logic
|
||||
@@ -109,7 +109,7 @@ public:
|
||||
|
||||
virtual void showWorldViewEx(const std::vector<ObjectPosInfo> & objectPositions, bool showTerrain){};
|
||||
|
||||
virtual std::optional<BattleAction> makeSurrenderRetreatDecision(const BattleStateInfoForRetreat & battleState) = 0;
|
||||
virtual std::optional<BattleAction> makeSurrenderRetreatDecision(const BattleID & battleID, const BattleStateInfoForRetreat & battleState) = 0;
|
||||
|
||||
virtual void saveGame(BinarySerializer & h, const int version) = 0;
|
||||
virtual void loadGame(BinaryDeserializer & h, const int version) = 0;
|
||||
@@ -144,22 +144,23 @@ public:
|
||||
virtual std::string getBattleAIName() const = 0; //has to return name of the battle AI to be used
|
||||
|
||||
//battle interface
|
||||
virtual void activeStack(const CStack * stack) override;
|
||||
virtual void yourTacticPhase(int distance) override;
|
||||
virtual void battleNewRound(int round) override;
|
||||
virtual void battleCatapultAttacked(const CatapultAttack & ca) override;
|
||||
virtual void battleStart(const CCreatureSet *army1, const CCreatureSet *army2, int3 tile, const CGHeroInstance *hero1, const CGHeroInstance *hero2, bool side, bool replayAllowed) override;
|
||||
virtual void battleStacksAttacked(const std::vector<BattleStackAttacked> & bsa, bool ranged) override;
|
||||
virtual void actionStarted(const BattleAction &action) override;
|
||||
virtual void battleNewRoundFirst(int round) override;
|
||||
virtual void actionFinished(const BattleAction &action) override;
|
||||
virtual void battleStacksEffectsSet(const SetStackEffect & sse) override;
|
||||
virtual void battleObstaclesChanged(const std::vector<ObstacleChanges> & obstacles) override;
|
||||
virtual void battleStackMoved(const CStack * stack, std::vector<BattleHex> dest, int distance, bool teleport) override;
|
||||
virtual void battleAttack(const BattleAttack *ba) override;
|
||||
virtual void battleSpellCast(const BattleSpellCast *sc) override;
|
||||
virtual void battleEnd(const BattleResult *br, QueryID queryID) override;
|
||||
virtual void battleUnitsChanged(const std::vector<UnitChanges> & units) override;
|
||||
virtual void activeStack(const BattleID & battleID, const CStack * stack) override;
|
||||
virtual void yourTacticPhase(const BattleID & battleID, int distance) override;
|
||||
|
||||
virtual void battleNewRound(const BattleID & battleID, int round) override;
|
||||
virtual void battleCatapultAttacked(const BattleID & battleID, const CatapultAttack & ca) override;
|
||||
virtual void battleStart(const BattleID & battleID, const CCreatureSet *army1, const CCreatureSet *army2, int3 tile, const CGHeroInstance *hero1, const CGHeroInstance *hero2, bool side, bool replayAllowed) override;
|
||||
virtual void battleStacksAttacked(const BattleID & battleID, const std::vector<BattleStackAttacked> & bsa, bool ranged) override;
|
||||
virtual void actionStarted(const BattleID & battleID, const BattleAction &action) override;
|
||||
virtual void battleNewRoundFirst(const BattleID & battleID, int round) override;
|
||||
virtual void actionFinished(const BattleID & battleID, const BattleAction &action) override;
|
||||
virtual void battleStacksEffectsSet(const BattleID & battleID, const SetStackEffect & sse) override;
|
||||
virtual void battleObstaclesChanged(const BattleID & battleID, const std::vector<ObstacleChanges> & obstacles) override;
|
||||
virtual void battleStackMoved(const BattleID & battleID, const CStack * stack, std::vector<BattleHex> dest, int distance, bool teleport) override;
|
||||
virtual void battleAttack(const BattleID & battleID, const BattleAttack *ba) override;
|
||||
virtual void battleSpellCast(const BattleID & battleID, const BattleSpellCast *sc) override;
|
||||
virtual void battleEnd(const BattleID & battleID, const BattleResult *br, QueryID queryID) override;
|
||||
virtual void battleUnitsChanged(const BattleID & battleID, const std::vector<UnitChanges> & units) override;
|
||||
|
||||
virtual void saveGame(BinarySerializer & h, const int version) override;
|
||||
virtual void loadGame(BinaryDeserializer & h, const int version) override;
|
||||
|
||||
Reference in New Issue
Block a user