BattleConstants.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /*
  2. * BattleConstants.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. enum class EBattleEffect
  12. {
  13. // list of battle effects that have hardcoded triggers
  14. MAGIC_MIRROR = 3,
  15. FIRE_SHIELD = 11,
  16. FEAR = 15,
  17. GOOD_LUCK = 18,
  18. GOOD_MORALE = 20,
  19. BAD_MORALE = 30,
  20. BAD_LUCK = 48,
  21. RESURRECT = 50,
  22. DRAIN_LIFE = 52,
  23. POISON = 67,
  24. DEATH_BLOW = 73,
  25. REGENERATION = 74,
  26. MANA_DRAIN = 77,
  27. RESISTANCE = 78,
  28. INVALID = -1,
  29. };
  30. enum class EAnimationEvents
  31. {
  32. // any action
  33. ROTATE, // stacks rotate before action
  34. // movement action
  35. MOVE_START, // stack starts movement
  36. MOVEMENT, // movement animation loop starts
  37. MOVE_END, // stack end movement
  38. // attack/spellcast action
  39. BEFORE_HIT, // attack and defence effects play, e.g. luck/death blow
  40. ATTACK, // attack and defence animations are playing
  41. HIT, // hit & death animations are playing
  42. AFTER_HIT, // post-attack effect, e.g. phoenix rebirth
  43. COUNT
  44. };
  45. enum class EHeroAnimType
  46. {
  47. HOLDING = 0,
  48. IDLE = 1, // idling movement that happens from time to time
  49. DEFEAT = 2, // played when army loses stack or on friendly fire
  50. VICTORY = 3, // when enemy stack killed or huge damage is dealt
  51. CAST_SPELL = 4 // spellcasting
  52. };
  53. enum class ECreatureAnimType
  54. {
  55. INVALID = -1,
  56. MOVING = 0,
  57. MOUSEON = 1,
  58. HOLDING = 2, // base idling animation
  59. HITTED = 3, // base animation for when stack is taking damage
  60. DEFENCE = 4, // alternative animation for defending in melee if stack spent its action on defending
  61. DEATH = 5,
  62. DEATH_RANGED = 6, // Optional, alternative animation for when stack is killed by ranged attack
  63. TURN_L = 7,
  64. TURN_R = 8,
  65. //TURN_L2 = 9, //unused - identical to TURN_L
  66. //TURN_R2 = 10, //unused - identical to TURN_R
  67. ATTACK_UP = 11,
  68. ATTACK_FRONT = 12,
  69. ATTACK_DOWN = 13,
  70. SHOOT_UP = 14, // Shooters only
  71. SHOOT_FRONT = 15, // Shooters only
  72. SHOOT_DOWN = 16, // Shooters only
  73. SPECIAL_UP = 17, // If empty, fallback to SPECIAL_FRONT
  74. SPECIAL_FRONT = 18, // Used for any special moves - dragon breath, spellcasting, Pit Lord/Ogre Mage ability
  75. SPECIAL_DOWN = 19, // If empty, fallback to SPECIAL_FRONT
  76. MOVE_START = 20, // small animation to be played before MOVING
  77. MOVE_END = 21, // small animation to be played after MOVING
  78. DEAD = 22, // new group, used to show dead stacks. If empty - last frame from "DEATH" will be copied here
  79. DEAD_RANGED = 23, // new group, used to show dead stacks (if DEATH_RANGED was used). If empty - last frame from "DEATH_RANGED" will be copied here
  80. RESURRECTION = 24, // new group, used for animating resurrection, if empty - reversed "DEATH" animation will be copied here
  81. FROZEN = 25, // new group, used when stack animation is paused (e.g. petrified). If empty - consist of first frame from HOLDING animation
  82. CAST_UP = 30,
  83. CAST_FRONT = 31,
  84. CAST_DOWN = 32,
  85. GROUP_ATTACK_UP = 40,
  86. GROUP_ATTACK_FRONT = 41,
  87. GROUP_ATTACK_DOWN = 42
  88. };