![]() |
AzerothCore 3.3.5a
OpenSource WoW Emulator
|
Unit tests for Missile Barrage (44404-44408) proc behavior. More...
Go to the source code of this file.
Classes | |
| class | MissileBarrageTest |
Namespaces | |
| namespace | MageSpellFlags |
| Get the SpellFamilyFlags[0] for common Mage spells. | |
Functions | |
| bool | SimulateMissileBarrageCheckProc (uint32 spellFamilyFlags0, int rollResult) |
| Simulates the CheckProc logic from spell_mage_missile_barrage. | |
| TEST_F (MissileBarrageTest, ArcaneBlast_AlwaysProcs_RegardlessOfRoll) | |
| TEST_F (MissileBarrageTest, ArcaneBlast_Returns100PercentRate) | |
| TEST_F (MissileBarrageTest, Fireball_ProcsOnLowRoll) | |
| TEST_F (MissileBarrageTest, Fireball_FailsOnHighRoll) | |
| TEST_F (MissileBarrageTest, Fireball_Returns50PercentRate) | |
| TEST_F (MissileBarrageTest, ArcaneMissiles_Returns50PercentRate) | |
| TEST_F (MissileBarrageTest, OtherSpells_Returns50PercentRate) | |
| float | CalculateEffectiveProcRate (float dbcChance, float checkProcRate) |
| Calculate the effective proc rate combining DBC chance and CheckProc. | |
| TEST_F (MissileBarrageTest, EffectiveRate_ArcaneBlast_Rank5) | |
| TEST_F (MissileBarrageTest, EffectiveRate_Fireball_Rank5) | |
| TEST_F (MissileBarrageTest, EffectiveRate_ArcaneBlast_Rank1) | |
| TEST_F (MissileBarrageTest, EffectiveRate_Fireball_Rank1) | |
| TEST_F (MissileBarrageTest, DBCProcChances_MatchExpectedValues) | |
| TEST_F (MissileBarrageTest, BoundaryRoll_49_Succeeds) | |
| TEST_F (MissileBarrageTest, BoundaryRoll_50_Fails) | |
| TEST_F (MissileBarrageTest, ArcaneBlastFlag_ExactMatch) | |
Variables | |
| constexpr uint32 | MageSpellFlags::ARCANE_BLAST = 0x20000000 |
| constexpr uint32 | MageSpellFlags::ARCANE_MISSILES = 0x00000020 |
| constexpr uint32 | MageSpellFlags::FIREBALL = 0x00000001 |
| constexpr uint32 | MageSpellFlags::FROSTFIRE_BOLT = 0x00000000 |
| constexpr uint32 | MageSpellFlags::ARCANE_BARRAGE = 0x00000000 |
Unit tests for Missile Barrage (44404-44408) proc behavior.
Missile Barrage talent should proc:
DBC Base proc chances by rank:
Effective proc rates:
Definition in file SpellScriptMissileBarrageTest.cpp.
| float CalculateEffectiveProcRate | ( | float | dbcChance, |
| float | checkProcRate | ||
| ) |
Calculate the effective proc rate combining DBC chance and CheckProc.
| dbcChance | Base proc chance from DBC (e.g., 20 for rank 5) |
| checkProcRate | CheckProc pass rate (100 for Arcane Blast, 50 for others) |
| bool SimulateMissileBarrageCheckProc | ( | uint32 | spellFamilyFlags0, |
| int | rollResult | ||
| ) |
Simulates the CheckProc logic from spell_mage_missile_barrage.
This mirrors the actual script at: src/server/scripts/Spells/spell_mage.cpp:1325-1338
| spellFamilyFlags0 | The SpellFamilyFlags[0] of the triggering spell |
| rollResult | The result of roll_chance_i(50) - pass 0-49 to succeed, 50-99 to fail |
Referenced by MissileBarrageTest::RunStatisticalTest(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().
| TEST_F | ( | MissileBarrageTest | , |
| ArcaneBlast_AlwaysProcs_RegardlessOfRoll | |||
| ) |
References MageSpellFlags::ARCANE_BLAST, and SimulateMissileBarrageCheckProc().
| TEST_F | ( | MissileBarrageTest | , |
| ArcaneBlast_Returns100PercentRate | |||
| ) |
References MageSpellFlags::ARCANE_BLAST.
| TEST_F | ( | MissileBarrageTest | , |
| ArcaneBlastFlag_ExactMatch | |||
| ) |
References SimulateMissileBarrageCheckProc().
| TEST_F | ( | MissileBarrageTest | , |
| ArcaneMissiles_Returns50PercentRate | |||
| ) |
References MageSpellFlags::ARCANE_MISSILES.
| TEST_F | ( | MissileBarrageTest | , |
| BoundaryRoll_49_Succeeds | |||
| ) |
References MageSpellFlags::FIREBALL, and SimulateMissileBarrageCheckProc().
| TEST_F | ( | MissileBarrageTest | , |
| BoundaryRoll_50_Fails | |||
| ) |
References MageSpellFlags::FIREBALL, and SimulateMissileBarrageCheckProc().
| TEST_F | ( | MissileBarrageTest | , |
| DBCProcChances_MatchExpectedValues | |||
| ) |
| TEST_F | ( | MissileBarrageTest | , |
| EffectiveRate_ArcaneBlast_Rank1 | |||
| ) |
References CalculateEffectiveProcRate().
| TEST_F | ( | MissileBarrageTest | , |
| EffectiveRate_ArcaneBlast_Rank5 | |||
| ) |
References CalculateEffectiveProcRate().
| TEST_F | ( | MissileBarrageTest | , |
| EffectiveRate_Fireball_Rank1 | |||
| ) |
References CalculateEffectiveProcRate().
| TEST_F | ( | MissileBarrageTest | , |
| EffectiveRate_Fireball_Rank5 | |||
| ) |
References CalculateEffectiveProcRate().
| TEST_F | ( | MissileBarrageTest | , |
| Fireball_FailsOnHighRoll | |||
| ) |
References MageSpellFlags::FIREBALL, and SimulateMissileBarrageCheckProc().
| TEST_F | ( | MissileBarrageTest | , |
| Fireball_ProcsOnLowRoll | |||
| ) |
References MageSpellFlags::FIREBALL, and SimulateMissileBarrageCheckProc().
| TEST_F | ( | MissileBarrageTest | , |
| Fireball_Returns50PercentRate | |||
| ) |
References MageSpellFlags::FIREBALL.
| TEST_F | ( | MissileBarrageTest | , |
| OtherSpells_Returns50PercentRate | |||
| ) |