BonusCustomTypes.cpp 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /*
  2. * BonusCustomTypes.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 "BonusCustomTypes.h"
  12. #include "CBonusTypeHandler.h"
  13. #include "GameLibrary.h"
  14. VCMI_LIB_NAMESPACE_BEGIN
  15. const BonusCustomSubtype BonusCustomSubtype::creatureDamageBoth(0);
  16. const BonusCustomSubtype BonusCustomSubtype::creatureDamageMin(1);
  17. const BonusCustomSubtype BonusCustomSubtype::creatureDamageMax(2);
  18. const BonusCustomSubtype BonusCustomSubtype::damageTypeAll(-1);
  19. const BonusCustomSubtype BonusCustomSubtype::damageTypeMelee(0);
  20. const BonusCustomSubtype BonusCustomSubtype::damageTypeRanged(1);
  21. const BonusCustomSubtype BonusCustomSubtype::heroMovementLand(1);
  22. const BonusCustomSubtype BonusCustomSubtype::heroMovementSea(0);
  23. const BonusCustomSubtype BonusCustomSubtype::deathStareGorgon(0);
  24. const BonusCustomSubtype BonusCustomSubtype::deathStareCommander(1);
  25. const BonusCustomSubtype BonusCustomSubtype::deathStareNoRangePenalty(2);
  26. const BonusCustomSubtype BonusCustomSubtype::deathStareRangePenalty(3);
  27. const BonusCustomSubtype BonusCustomSubtype::deathStareObstaclePenalty(4);
  28. const BonusCustomSubtype BonusCustomSubtype::deathStareRangeObstaclePenalty(5);
  29. const BonusCustomSubtype BonusCustomSubtype::rebirthRegular(0);
  30. const BonusCustomSubtype BonusCustomSubtype::rebirthSpecial(1);
  31. const BonusCustomSubtype BonusCustomSubtype::visionsMonsters(0);
  32. const BonusCustomSubtype BonusCustomSubtype::visionsHeroes(1);
  33. const BonusCustomSubtype BonusCustomSubtype::visionsTowns(2);
  34. const BonusCustomSubtype BonusCustomSubtype::immunityBattleWide(0);
  35. const BonusCustomSubtype BonusCustomSubtype::immunityEnemyHero(1);
  36. const BonusCustomSubtype BonusCustomSubtype::transmutationPerHealth(0);
  37. const BonusCustomSubtype BonusCustomSubtype::transmutationPerUnit(1);
  38. const BonusCustomSubtype BonusCustomSubtype::destructionKillPercentage(0);
  39. const BonusCustomSubtype BonusCustomSubtype::destructionKillAmount(1);
  40. const BonusCustomSubtype BonusCustomSubtype::soulStealPermanent(0);
  41. const BonusCustomSubtype BonusCustomSubtype::soulStealBattle(1);
  42. const BonusCustomSubtype BonusCustomSubtype::movementFlying(0);
  43. const BonusCustomSubtype BonusCustomSubtype::movementTeleporting(1);
  44. const BonusCustomSource BonusCustomSource::undeadMoraleDebuff(-2);
  45. BonusCustomSubtype BonusCustomSubtype::spellLevel(int level)
  46. {
  47. return BonusCustomSubtype(level);
  48. }
  49. BonusCustomSubtype BonusCustomSubtype::creatureLevel(int level)
  50. {
  51. return BonusCustomSubtype(level);
  52. }
  53. si32 BonusCustomSubtype::decode(const std::string & identifier)
  54. {
  55. return std::stoi(identifier);
  56. }
  57. std::string BonusCustomSubtype::encode(const si32 index)
  58. {
  59. return std::to_string(index);
  60. }
  61. si32 BonusCustomSource::decode(const std::string & identifier)
  62. {
  63. return std::stoi(identifier);
  64. }
  65. std::string BonusCustomSource::encode(const si32 index)
  66. {
  67. return std::to_string(index);
  68. }
  69. std::string BonusTypeID::encode(int32_t index)
  70. {
  71. if (index == static_cast<int32_t>(BonusType::NONE))
  72. return "";
  73. return LIBRARY->bth->bonusToString(static_cast<BonusType>(index));
  74. }
  75. si32 BonusTypeID::decode(const std::string & identifier)
  76. {
  77. if (identifier.empty())
  78. return RiverId::NO_RIVER.getNum();
  79. return resolveIdentifier("bonus", identifier);
  80. }
  81. VCMI_LIB_NAMESPACE_END