BonusCustomTypes.h 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /*
  2. * BonusCustomTypes.h, 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. #pragma once
  11. #include "../constants/EntityIdentifiers.h"
  12. #include "../constants/VariantIdentifier.h"
  13. VCMI_LIB_NAMESPACE_BEGIN
  14. class DLL_LINKAGE BonusCustomSource : public StaticIdentifier<BonusCustomSource>
  15. {
  16. public:
  17. using StaticIdentifier<BonusCustomSource>::StaticIdentifier;
  18. static std::string encode(int32_t index);
  19. static si32 decode(const std::string & identifier);
  20. static const BonusCustomSource undeadMoraleDebuff; // -2
  21. };
  22. class DLL_LINKAGE BonusCustomSubtype : public StaticIdentifier<BonusCustomSubtype>
  23. {
  24. public:
  25. using StaticIdentifier<BonusCustomSubtype>::StaticIdentifier;
  26. static std::string encode(int32_t index);
  27. static si32 decode(const std::string & identifier);
  28. static const BonusCustomSubtype creatureDamageBoth; // 0
  29. static const BonusCustomSubtype creatureDamageMin; // 1
  30. static const BonusCustomSubtype creatureDamageMax; // 2
  31. static const BonusCustomSubtype damageTypeAll; // -1
  32. static const BonusCustomSubtype damageTypeMelee; // 0
  33. static const BonusCustomSubtype damageTypeRanged; // 1
  34. static const BonusCustomSubtype heroMovementLand; // 1
  35. static const BonusCustomSubtype heroMovementSea; // 0
  36. static const BonusCustomSubtype deathStareGorgon; // 0
  37. static const BonusCustomSubtype deathStareCommander;
  38. static const BonusCustomSubtype deathStareNoRangePenalty;
  39. static const BonusCustomSubtype deathStareRangePenalty;
  40. static const BonusCustomSubtype deathStareObstaclePenalty;
  41. static const BonusCustomSubtype deathStareRangeObstaclePenalty;
  42. static const BonusCustomSubtype rebirthRegular; // 0
  43. static const BonusCustomSubtype rebirthSpecial; // 1
  44. static const BonusCustomSubtype visionsMonsters; // 0
  45. static const BonusCustomSubtype visionsHeroes; // 1
  46. static const BonusCustomSubtype visionsTowns; // 2
  47. static const BonusCustomSubtype immunityBattleWide; // 0
  48. static const BonusCustomSubtype immunityEnemyHero; // 1
  49. static const BonusCustomSubtype transmutationPerHealth; // 0
  50. static const BonusCustomSubtype transmutationPerUnit; // 1
  51. static const BonusCustomSubtype destructionKillPercentage; // 0
  52. static const BonusCustomSubtype destructionKillAmount; // 1
  53. static const BonusCustomSubtype soulStealPermanent; // 0
  54. static const BonusCustomSubtype soulStealBattle; // 1
  55. static const BonusCustomSubtype movementFlying; // 0
  56. static const BonusCustomSubtype movementTeleporting; // 1
  57. static BonusCustomSubtype spellLevel(int level);
  58. static BonusCustomSubtype creatureLevel(int level);
  59. };
  60. using BonusSubtypeID = VariantIdentifier<BonusCustomSubtype, SpellID, CreatureID, PrimarySkill, TerrainId, GameResID, SpellSchool>;
  61. using BonusSourceID = VariantIdentifier<BonusCustomSource, SpellID, CreatureID, ArtifactID, ArtifactInstanceID, CampaignScenarioID, SecondarySkill, HeroTypeID, Obj, ObjectInstanceID, BuildingTypeUniqueID, BattleField>;
  62. VCMI_LIB_NAMESPACE_END