/* * BattleProxy.h, part of VCMI engine * * Authors: listed in file AUTHORS in main folder * * License: GNU General Public License v2.0 or later * Full text of license available in license.txt file, in main folder * */ #pragma once #include "CBattleInfoCallback.h" #include "IBattleState.h" class DLL_LINKAGE BattleProxy : public CBattleInfoCallback, public IBattleState { public: using Subject = std::shared_ptr; BattleProxy(Subject subject_); ~BattleProxy(); ////////////////////////////////////////////////////////////////////////// // IBattleInfo int32_t getActiveStackID() const override; TStacks getStacksIf(TStackFilter predicate) const override; battle::Units getUnitsIf(battle::UnitFilter predicate) const override; BFieldType getBattlefieldType() const override; ETerrainType getTerrainType() const override; ObstacleCList getAllObstacles() const override; PlayerColor getSidePlayer(ui8 side) const override; const CArmedInstance * getSideArmy(ui8 side) const override; const CGHeroInstance * getSideHero(ui8 side) const override; ui8 getTacticDist() const override; ui8 getTacticsSide() const override; const CGTownInstance * getDefendedTown() const override; si8 getWallState(int partOfWall) const override; EGateState getGateState() const override; uint32_t getCastSpells(ui8 side) const override; int32_t getEnchanterCounter(ui8 side) const override; const IBonusBearer * asBearer() const override; protected: Subject subject; };