Introduce a spell enum, and use it everywhere for PC spellcasting

- Monster spellcasting is untouched
- Also updated the spells documentation, which had some old information from Exile III and omitted a lot of ranges.
This commit is contained in:
2014-12-14 02:00:25 -05:00
parent 1fbf8939b2
commit 0344cf2525
17 changed files with 1185 additions and 686 deletions

View File

@@ -808,4 +808,158 @@ enum eFieldType {
// TODO: Sfx fields, objects
};
enum class eSpell {
NONE = -1,
// Mage spells
LIGHT = 0,
SPARK = 1,
HASTE_MINOR = 2,
STRENGTH = 3,
SCARE = 4,
CLOUD_FLAME = 5,
IDENTIFY = 6,
SCRY_MONSTER = 7,
GOO = 8,
TRUE_SIGHT = 9,
POISON_MINOR = 10,
FLAME = 11,
SLOW = 12,
DUMBFOUND = 13,
ENVENOM = 14,
CLOUD_STINK = 15,
SUMMON_BEAST = 16,
CONFLAGRATION = 17,
DISPEL_SQUARE = 18,
CLOUD_SLEEP = 19,
UNLOCK = 20,
HASTE = 21,
FIREBALL = 22,
LIGHT_LONG = 23,
FEAR = 24,
WALL_FORCE = 25,
SUMMON_WEAK = 26,
ARROWS_FLAME = 27,
WEB = 28,
RESIST_MAGIC = 29,
POISON = 30,
ICE_BOLT = 31,
SLOW_GROUP = 32,
MAGIC_MAP = 33,
CAPTURE_SOUL = 34,
SIMULACRUM = 35,
ARROWS_VENOM = 36,
WALL_ICE = 37,
STEALTH = 38,
HASTE_MAJOR = 39,
FIRESTORM = 40,
DISPEL_BARRIER = 41,
BARRIER_FIRE = 42,
SUMMON = 43,
SHOCKSTORM = 44,
SPRAY_FIELDS = 45,
POISON_MAJOR = 46,
FEAR_GROUP = 47,
KILL = 48,
PARALYZE = 49,
DEMON = 50,
ANTIMAGIC = 51,
MINDDUEL = 52,
FLIGHT = 53,
SHOCKWAVE = 54,
BLESS_MAJOR = 55,
PARALYSIS_MASS = 56,
PROTECTION = 57,
SUMMON_MAJOR = 58,
BARRIER_FORCE = 59,
QUICKFIRE = 60,
ARROWS_DEATH = 61,
// Special spells
STRENGTHEN_TARGET = 62,
SUMMON_RAT = 63,
WALL_ICE_BALL = 64,
GOO_BOMB = 65,
FOUL_VAPOR = 66,
CLOUD_SLEEP_LARGE = 67,
ACID_SPRAY = 68,
PARALYZE_BEAM = 69,
SLEEP_MASS = 70,
RAVAGE_ENEMIES = 71,
// Priest spells
BLESS_MINOR = 100,
HEAL_MINOR = 101,
POISON_WEAKEN = 102,
TURN_UNDEAD = 103,
LOCATION = 104,
SANCTUARY = 105,
SYMBIOSIS = 106,
MANNA_MINOR = 107,
RITUAL_SANCTIFY = 108,
STUMBLE = 109,
BLESS = 110,
POISON_CURE = 111,
CURSE = 112,
LIGHT_DIVINE = 113,
WOUND = 114,
SUMMON_SPIRIT = 115,
MOVE_MOUNTAINS = 116,
CHARM_FOE = 117,
DISEASE = 118,
AWAKEN = 119,
HEAL = 120,
HEAL_ALL_LIGHT = 121,
HOLY_SCOURGE = 122,
DETECT_LIFE = 123,
PARALYSIS_CURE = 124,
MANNA = 125,
FORCEFIELD = 126,
DISEASE_CURE = 127,
RESTORE_MIND = 128,
SMITE = 129,
POISON_CURE_ALL = 130,
CURSE_ALL = 131,
DISPEL_UNDEAD = 132,
CURSE_REMOVE = 133,
STICKS_TO_SNAKES = 134,
MARTYRS_SHIELD = 135,
CLEANSE = 136,
FIREWALK = 137,
BLESS_PARTY = 138,
HEAL_MAJOR = 139,
RAISE_DEAD = 140,
FLAMESTRIKE = 141,
SANCTUARY_MASS = 142,
SUMMON_HOST = 143,
SHATTER = 144,
DISPEL_SPHERE = 145,
HEAL_ALL = 146,
REVIVE = 147,
HYPERACTIVITY = 148,
DESTONE = 149,
SUMMON_GUARDIAN = 150,
CHARM_MASS = 151,
PROTECTIVE_CIRCLE = 152,
PESTILENCE = 153,
REVIVE_ALL = 154,
RAVAGE_SPIRIT = 155,
RESURRECT = 156,
DIVINE_THUD = 157,
AVATAR = 158,
WALL_BLADES = 159,
WORD_RECALL = 160,
CLEANSE_MAJOR = 161,
// Special spells
DISPEL_FIELD = 162,
MOVE_MOUNTAINS_MASS = 163,
};
inline bool isMage(eSpell spell) {
int code = (int) spell;
return code >= 0 && code < 62;
}
inline bool isPriest(eSpell spell) {
int code = (int) spell;
return code >= 100 && code < 162;
}
#endif