![]() |
AzerothCore 3.3.5a
OpenSource WoW Emulator
|
Go to the source code of this file.
Classes | |
| class | SpellProcSpellTypeMaskTest |
| Tests for SpellTypeMask calculation based on proc phase. More... | |
Functions | |
| TEST_F (SpellProcSpellTypeMaskTest, CastPhase_UsesMaskAll) | |
| TEST_F (SpellProcSpellTypeMaskTest, FinishPhase_UsesMaskAll_EvenWithNullDamageInfo) | |
| TEST_F (SpellProcSpellTypeMaskTest, HitPhase_WithDamage_UsesDamageType) | |
| TEST_F (SpellProcSpellTypeMaskTest, HitPhase_WithHeal_UsesHealType) | |
| TEST_F (SpellProcSpellTypeMaskTest, HitPhase_NoDamageNoHeal_UsesNoDmgHeal) | |
| TEST_F (SpellProcSpellTypeMaskTest, KillingMachine_FinishPhase_MatchesDamageTypeMask) | |
| Regression test for Killing Machine (51124) proc consumption. | |
| TEST_F (SpellProcSpellTypeMaskTest, KillingMachine_FullIntegration_ProcTriggers) | |
| Verify FINISH phase works with actual CanSpellTriggerProcOnEvent. | |
| TEST_F (SpellProcSpellTypeMaskTest, KillingMachine_BugScenario_NoDmgHealFails) | |
| Verify the bug scenario - FINISH phase with NO_DMG_HEAL fails. | |
| TEST_F | ( | SpellProcSpellTypeMaskTest | , |
| CastPhase_UsesMaskAll | |||
| ) |
References PROC_SPELL_PHASE_CAST, and PROC_SPELL_TYPE_MASK_ALL.
| TEST_F | ( | SpellProcSpellTypeMaskTest | , |
| FinishPhase_UsesMaskAll_EvenWithNullDamageInfo | |||
| ) |
References PROC_SPELL_PHASE_FINISH, PROC_SPELL_TYPE_DAMAGE, and PROC_SPELL_TYPE_MASK_ALL.
| TEST_F | ( | SpellProcSpellTypeMaskTest | , |
| HitPhase_NoDamageNoHeal_UsesNoDmgHeal | |||
| ) |
References PROC_SPELL_PHASE_HIT, and PROC_SPELL_TYPE_NO_DMG_HEAL.
| TEST_F | ( | SpellProcSpellTypeMaskTest | , |
| HitPhase_WithDamage_UsesDamageType | |||
| ) |
References PROC_SPELL_PHASE_HIT, PROC_SPELL_TYPE_DAMAGE, SPELL_DIRECT_DAMAGE, and SPELL_SCHOOL_MASK_FROST.
| TEST_F | ( | SpellProcSpellTypeMaskTest | , |
| HitPhase_WithHeal_UsesHealType | |||
| ) |
References PROC_SPELL_PHASE_HIT, PROC_SPELL_TYPE_HEAL, and SPELL_SCHOOL_MASK_HOLY.
| TEST_F | ( | SpellProcSpellTypeMaskTest | , |
| KillingMachine_BugScenario_NoDmgHealFails | |||
| ) |
Verify the bug scenario - FINISH phase with NO_DMG_HEAL fails.
This test documents the bug behavior: if FINISH phase incorrectly uses NO_DMG_HEAL spellTypeMask, Killing Machine style procs fail.
References ProcEventInfoBuilder::Build(), SpellProcEntryBuilder::Build(), PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG, PROC_HIT_NORMAL, PROC_SPELL_PHASE_FINISH, PROC_SPELL_TYPE_DAMAGE, PROC_SPELL_TYPE_NO_DMG_HEAL, SPELL_DIRECT_DAMAGE, SPELL_SCHOOL_MASK_FROST, sSpellMgr, ProcEventInfoBuilder::WithDamageInfo(), ProcEventInfoBuilder::WithHitMask(), SpellProcEntryBuilder::WithProcFlags(), SpellProcEntryBuilder::WithSpellFamilyMask(), SpellProcEntryBuilder::WithSpellFamilyName(), ProcEventInfoBuilder::WithSpellPhaseMask(), SpellProcEntryBuilder::WithSpellPhaseMask(), ProcEventInfoBuilder::WithSpellTypeMask(), SpellProcEntryBuilder::WithSpellTypeMask(), and ProcEventInfoBuilder::WithTypeMask().
| TEST_F | ( | SpellProcSpellTypeMaskTest | , |
| KillingMachine_FinishPhase_MatchesDamageTypeMask | |||
| ) |
Regression test for Killing Machine (51124) proc consumption.
Killing Machine has:
When Icy Touch is cast, the FINISH phase event must have a spellTypeMask that includes DAMAGE for the proc to fire and consume the buff.
The bug was: FINISH phase calculated spellTypeMask as NO_DMG_HEAL (4) because damageInfo was null, causing the proc check to fail.
References SpellProcEntryBuilder::Build(), PROC_ATTR_REQ_SPELLMOD, PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG, PROC_FLAG_DONE_SPELL_MELEE_DMG_CLASS, PROC_SPELL_PHASE_FINISH, PROC_SPELL_TYPE_DAMAGE, SpellProcEntryBuilder::WithAttributesMask(), SpellProcEntryBuilder::WithCharges(), SpellProcEntryBuilder::WithProcFlags(), SpellProcEntryBuilder::WithSpellFamilyMask(), SpellProcEntryBuilder::WithSpellFamilyName(), SpellProcEntryBuilder::WithSpellPhaseMask(), and SpellProcEntryBuilder::WithSpellTypeMask().
| TEST_F | ( | SpellProcSpellTypeMaskTest | , |
| KillingMachine_FullIntegration_ProcTriggers | |||
| ) |
Verify FINISH phase works with actual CanSpellTriggerProcOnEvent.
This test verifies the full integration: when we pass the correctly calculated spellTypeMask to CanSpellTriggerProcOnEvent, Killing Machine style procs should work.
References ProcEventInfoBuilder::Build(), SpellProcEntryBuilder::Build(), PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG, PROC_HIT_NORMAL, PROC_SPELL_PHASE_FINISH, PROC_SPELL_TYPE_DAMAGE, PROC_SPELL_TYPE_MASK_ALL, SPELL_DIRECT_DAMAGE, SPELL_SCHOOL_MASK_FROST, sSpellMgr, ProcEventInfoBuilder::WithDamageInfo(), ProcEventInfoBuilder::WithHitMask(), SpellProcEntryBuilder::WithProcFlags(), SpellProcEntryBuilder::WithSpellFamilyMask(), SpellProcEntryBuilder::WithSpellFamilyName(), ProcEventInfoBuilder::WithSpellPhaseMask(), SpellProcEntryBuilder::WithSpellPhaseMask(), ProcEventInfoBuilder::WithSpellTypeMask(), SpellProcEntryBuilder::WithSpellTypeMask(), and ProcEventInfoBuilder::WithTypeMask().