26 struct DisplaySpellInfo
33 uint32 const SPELL_LESSER_INVISIBILITY = 7870;
34 uint32 const SPELL_BRITTLE_ARMOR_STACK = 24575;
35 uint32 const SPELL_MERCURIAL_SHIELD_STACK = 26464;
36 uint32 const SPELL_RESTRICTED_FLIGHT_AREA = 91604;
37 uint32 const SPELL_BURN_BODY = 42793;
38 uint32 const NPC_FALLEN_COMBATANT = 24008;
39 uint32 const SPELL_BENDING_SHINBONE_STRONG = 8854;
40 uint32 const SPELL_BENDING_SHINBONE_WEAK = 8855;
41 uint32 const SPELL_SHADOW_FLAME_PROTECTION = 22683;
42 uint32 const SPELL_SHADOW_FLAME_TRIGGER = 22682;
43 uint32 const SPELL_DECIMATE_TRIGGER = 28375;
44 uint32 const EVENT_WARMAUL_OGRE_BANNER = 18388;
45 uint32 const ITEM_MUG_TRANSFORMATION = 38587;
46 uint32 const SPELL_BREWFEST_SAMPLE = 42518;
47 uint32 const SPELL_BRUTALLUS_BURN_RANGE = 46394;
48 uint32 const COPPER_5000_GOLD = 5000;
49 uint32 const SPELL_EMBLAZON_RUNEBLADE_TRIGGER = 51771;
50 uint32 const SPELL_DEATHBOLT_WARD = 51845;
51 uint32 const SPELL_DEATHBOLT_REFLECTED = 51856;
52 uint32 const SPELL_DEATHBOLT_DIRECT = 51855;
53 uint32 const SPELL_SUMMON_GHOULS_ON_SCARLET_CRUSADE = 54522;
54 uint32 const SPELL_GIFT_OF_THE_HARVESTER_FALLBACK = 52505;
55 uint32 const WINTERGRASP_RPGG_DROP_ITEM_COUNT = 5;
56 uint32 const SPELL_BIG_BLIZZARD_BEAR_EPIC = 58999;
57 uint32 const SPELL_BIG_BLIZZARD_BEAR_NORMAL = 58997;
58 uint32 const AREA_TELEPORTING_TOP = 4637;
59 uint32 const SPELL_TELEPORTING_RETURN = 59316;
60 uint32 const SPELL_TELEPORTING_ATOP = 59314;
61 uint32 const SPELL_GRAB_CRATE_PARENT = 62496;
62 uint32 const SPELL_LIGHTWELL_CHARGES = 59907;
63 uint32 const SPELL_JUDGEMENT_FALLBACK_SEAL_TRIGGER = 54158;
64 uint32 const SPELL_PESTILENCE_BLOOD_PLAGUE = 55078;
65 uint32 const SPELL_PESTILENCE_FROST_FEVER = 55095;
66 uint32 const SPELL_CREATE_HEALTHSTONE_TRIGGER = 23517;
86 uint32 const LearnSpellFromEffectDamageSpells[] =
92 SpellIdPair
const ScriptEffectStackRemovalAuras[] =
94 { 24590, SPELL_BRITTLE_ARMOR_STACK },
95 { 26465, SPELL_MERCURIAL_SHIELD_STACK }
98 uint32 const ShadowFlameScriptSpells[] =
115 uint32 const DecimateScriptSpells[] =
121 UInt32Pair
const MirrensDrinkingHatItems[] =
131 UInt32Pair
const GoblinWeatherMachineSpells[] =
139 DisplaySpellInfo
const DeathKnightInitiateVisualSpells[] =
163 uint32 const ScriptDespawnSpells[] =
169 SpellIdPair
const LightwellHealSpells[] =
188 SpellIdPair
const JudgementSealTriggerSpells[] =
196 uint32 const JudgementFallbackSealSpells[] =
203 uint32 const CreateHealthstoneSpells[] =
211 for (
uint8 i = 0; i < spellCount; ++i)
212 if (spellIds[i] == spellId)
222 if (rule.TriggerSpellId == triggerSpellId)
231 if (rule.SpellId == spellId)
239 return spellId == SPELL_RESTRICTED_FLIGHT_AREA;
244 return spellId == SPELL_BURN_BODY ? NPC_FALLEN_COMBATANT : 0;
249 for (
uint32 const damageSpellId : LearnSpellFromEffectDamageSpells)
250 if (damageSpellId == spellId)
258 return strongHit ? SPELL_BENDING_SHINBONE_STRONG : SPELL_BENDING_SHINBONE_WEAK;
263 for (SpellIdPair
const& stackRemoval : ScriptEffectStackRemovalAuras)
264 if (stackRemoval.SpellId == scriptSpellId)
265 return stackRemoval.RelatedSpellId;
272 if (!ContainsSpellId(ShadowFlameScriptSpells,
sizeof(ShadowFlameScriptSpells) /
sizeof(
uint32), scriptSpellId))
277 SPELL_SHADOW_FLAME_PROTECTION,
278 SPELL_SHADOW_FLAME_TRIGGER
285 return ContainsSpellId(DecimateScriptSpells,
sizeof(DecimateScriptSpells) /
sizeof(
uint32), scriptSpellId) ?
286 SPELL_DECIMATE_TRIGGER : 0;
291 for (UInt32Pair
const& item : MirrensDrinkingHatItems)
292 if (item.Key == roll)
300 return EVENT_WARMAUL_OGRE_BANNER;
305 return ITEM_MUG_TRANSFORMATION;
310 return SPELL_BREWFEST_SAMPLE;
315 return SPELL_BRUTALLUS_BURN_RANGE;
320 for (UInt32Pair
const& spell : GoblinWeatherMachineSpells)
321 if (spell.Key == roll)
329 return COPPER_5000_GOLD;
334 return SPELL_EMBLAZON_RUNEBLADE_TRIGGER;
339 for (DisplaySpellInfo
const& visualSpell : DeathKnightInitiateVisualSpells)
340 if (visualSpell.DisplayId == displayId)
341 return visualSpell.SpellId;
348 return SPELL_DEATHBOLT_WARD;
353 return SPELL_DEATHBOLT_REFLECTED;
358 return SPELL_DEATHBOLT_DIRECT;
363 return SPELL_SUMMON_GHOULS_ON_SCARLET_CRUSADE;
368 return ContainsSpellId(ScriptDespawnSpells,
sizeof(ScriptDespawnSpells) /
sizeof(
uint32), scriptSpellId);
373 return SPELL_GIFT_OF_THE_HARVESTER_FALLBACK;
378 return WINTERGRASP_RPGG_DROP_ITEM_COUNT;
383 return ridingSkill >= 150 ? SPELL_BIG_BLIZZARD_BEAR_EPIC : SPELL_BIG_BLIZZARD_BEAR_NORMAL;
388 return areaId == AREA_TELEPORTING_TOP ? SPELL_TELEPORTING_RETURN : SPELL_TELEPORTING_ATOP;
393 return SPELL_GRAB_CRATE_PARENT;
398 for (SpellIdPair
const& healSpell : LightwellHealSpells)
399 if (healSpell.SpellId == creatureEntry)
400 return healSpell.RelatedSpellId;
407 return SPELL_LIGHTWELL_CHARGES;
415 return &ProtoTypicalShorteningBlasterSpellPairs[roll];
420 for (SpellIdPair
const& sealTrigger : JudgementSealTriggerSpells)
421 if (sealTrigger.SpellId == judgementSpellId)
422 return sealTrigger.RelatedSpellId;
429 return ContainsSpellId(JudgementFallbackSealSpells,
sizeof(JudgementFallbackSealSpells) /
sizeof(
uint32),
430 sealSpellId) ? SPELL_JUDGEMENT_FALLBACK_SEAL_TRIGGER : 0;
435 return SPELL_PESTILENCE_BLOOD_PLAGUE;
440 return SPELL_PESTILENCE_FROST_FEVER;
445 return ContainsSpellId(CreateHealthstoneSpells,
sizeof(CreateHealthstoneSpells) /
sizeof(
uint32),
446 createHealthstoneSpellId) ? SPELL_CREATE_HEALTHSTONE_TRIGGER : 0;
uint32 GetSummonGhoulsOnScarletCrusadeSpellId()
uint32 GetLightwellHealSpellId(uint32 creatureEntry)
uint32 GetKillCreditFallbackCreatureEntry(uint32 spellId)
uint32 GetGoldScriptAmount()
bool ShouldSendNoFlyZoneNotification(uint32 spellId)
uint32 GetEmblazonRunebladeTriggerSpellId()
uint32 GetGiftOfTheHarvesterFallbackSpellId()
uint32 GetScriptEffectStackRemovalAuraSpellId(uint32 scriptSpellId)
uint32 GetBendingShinboneTriggerSpellId(bool strongHit)
uint32 GetGrabCrateParentSpellId()
uint32 GetDecimateScriptTriggerSpellId(uint32 scriptSpellId)
uint32 GetDeathboltReflectedSpellId()
@ FORCE_CAST_DAMAGE_RULE_REMOVE_AURA
@ FORCE_CAST_DAMAGE_RULE_TRIGGERED_ORIGINAL_CASTER
@ FORCE_CAST_DAMAGE_RULE_CUSTOM_BASEPOINTS
uint32 GetDeathKnightInitiateVisualSpellId(uint32 displayId)
ProtoTypicalShorteningBlasterSpells const * GetProtoTypicalShorteningBlasterSpells(uint32 roll)
uint32 GetBrewfestSampleSpellId()
uint32 GetJudgementSealTriggerSpellId(uint32 judgementSpellId)
uint32 GetPestilenceBloodPlagueSpellId()
uint32 GetMugTransformationItemId()
bool ShouldLearnSpellFromEffectDamage(uint32 spellId)
uint32 GetMirrensDrinkingHatItemId(uint32 roll)
uint32 GetGoblinWeatherMachineSpellId(uint32 roll)
uint32 GetDeathboltDirectSpellId()
TriggerSpellRule const * GetTriggerSpellRule(uint32 triggerSpellId)
uint32 GetJudgementFallbackSealTriggerSpellId(uint32 sealSpellId)
uint32 GetWintergraspRpggDropItemCount()
uint32 GetBrutallusBurnRangeAuraSpellId()
uint32 GetPestilenceFrostFeverSpellId()
uint32 GetLightwellChargesAuraSpellId()
ForceCastDamageRule const * GetForceCastDamageRule(uint32 spellId)
@ TRIGGER_SPELL_RULE_CLOAK_OF_SHADOWS
@ TRIGGER_SPELL_RULE_VANISH
@ TRIGGER_SPELL_RULE_DEMONIC_EMPOWERMENT_SUCCUBUS
@ TRIGGER_SPELL_RULE_STACK_TRIGGER
bool IsScriptDespawnSpell(uint32 scriptSpellId)
uint32 GetPlantWarmaulOgreBannerEventId()
uint32 GetDeathboltWardAuraSpellId()
ShadowFlameScriptRule const * GetShadowFlameScriptRule(uint32 scriptSpellId)
uint32 GetBigBlizzardBearMountSpellId(uint16 ridingSkill)
uint32 GetTeleportingScriptSpellId(uint32 areaId)
uint32 GetCreateHealthstoneTriggeredSpellId(uint32 createHealthstoneSpellId)