BattleProxy.cpp 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. /*
  2. * BattleProxy.cpp, part of VCMI engine
  3. *
  4. * Authors: listed in file AUTHORS in main folder
  5. *
  6. * License: GNU General Public License v2.0 or later
  7. * Full text of license available in license.txt file, in main folder
  8. *
  9. */
  10. #include "StdInc.h"
  11. #include "BattleProxy.h"
  12. #include "Unit.h"
  13. VCMI_LIB_NAMESPACE_BEGIN
  14. ///BattleProxy
  15. BattleProxy::BattleProxy(Subject subject_):
  16. subject(std::move(subject_))
  17. {}
  18. BattleProxy::~BattleProxy() = default;
  19. const IBattleInfo * BattleProxy::getBattle() const
  20. {
  21. return this;
  22. }
  23. std::optional<PlayerColor> BattleProxy::getPlayerID() const
  24. {
  25. return subject->getPlayerID();
  26. }
  27. int32_t BattleProxy::getActiveStackID() const
  28. {
  29. const auto * ret = subject->battleActiveUnit();
  30. if(ret)
  31. return ret->unitId();
  32. else
  33. return -1;
  34. }
  35. TStacks BattleProxy::getStacksIf(const TStackFilter & predicate) const
  36. {
  37. return subject->battleGetStacksIf(predicate);
  38. }
  39. battle::Units BattleProxy::getUnitsIf(const battle::UnitFilter & predicate) const
  40. {
  41. return subject->battleGetUnitsIf(predicate);
  42. }
  43. BattleField BattleProxy::getBattlefieldType() const
  44. {
  45. return subject->battleGetBattlefieldType();
  46. }
  47. TerrainId BattleProxy::getTerrainType() const
  48. {
  49. return subject->battleTerrainType();
  50. }
  51. IBattleInfo::ObstacleCList BattleProxy::getAllObstacles() const
  52. {
  53. return subject->battleGetAllObstacles();
  54. }
  55. PlayerColor BattleProxy::getSidePlayer(BattleSide side) const
  56. {
  57. return subject->sideToPlayer(side);
  58. }
  59. const CArmedInstance * BattleProxy::getSideArmy(BattleSide side) const
  60. {
  61. return subject->battleGetArmyObject(side);
  62. }
  63. const CGHeroInstance * BattleProxy::getSideHero(BattleSide side) const
  64. {
  65. return subject->battleGetFightingHero(side);
  66. }
  67. ui8 BattleProxy::getTacticDist() const
  68. {
  69. return subject->battleTacticDist();
  70. }
  71. BattleSide BattleProxy::getTacticsSide() const
  72. {
  73. return subject->battleGetTacticsSide();
  74. }
  75. const CGTownInstance * BattleProxy::getDefendedTown() const
  76. {
  77. return subject->battleGetDefendedTown();
  78. }
  79. EWallState BattleProxy::getWallState(EWallPart partOfWall) const
  80. {
  81. return subject->battleGetWallState(partOfWall);
  82. }
  83. EGateState BattleProxy::getGateState() const
  84. {
  85. return subject->battleGetGateState();
  86. }
  87. int32_t BattleProxy::getCastSpells(BattleSide side) const
  88. {
  89. return subject->battleCastSpells(side);
  90. }
  91. int32_t BattleProxy::getEnchanterCounter(BattleSide side) const
  92. {
  93. return subject->battleGetEnchanterCounter(side);
  94. }
  95. const IBonusBearer * BattleProxy::getBonusBearer() const
  96. {
  97. return subject->getBonusBearer();
  98. }
  99. VCMI_LIB_NAMESPACE_END