AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
ProcScenarioBuilder Class Reference

Helper class for testing specific proc scenarios. More...

#include "AuraScriptTestFramework.h"

Public Member Functions

 ProcScenarioBuilder ()
 
 ~ProcScenarioBuilder ()=default
 
ProcScenarioBuilderOnMeleeAutoAttack ()
 
ProcScenarioBuilderOnTakenMeleeAutoAttack ()
 
ProcScenarioBuilderOnSpellDamage ()
 
ProcScenarioBuilderOnTakenSpellDamage ()
 
ProcScenarioBuilderOnHeal ()
 
ProcScenarioBuilderOnTakenHeal ()
 
ProcScenarioBuilderOnPeriodicDamage ()
 
ProcScenarioBuilderOnPeriodicHeal ()
 
ProcScenarioBuilderOnKill ()
 
ProcScenarioBuilderOnDeath ()
 
ProcScenarioBuilderWithCrit ()
 
ProcScenarioBuilderWithNormalHit ()
 
ProcScenarioBuilderWithMiss ()
 
ProcScenarioBuilderWithDodge ()
 
ProcScenarioBuilderWithParry ()
 
ProcScenarioBuilderWithBlock ()
 
ProcScenarioBuilderWithFullBlock ()
 
ProcScenarioBuilderWithAbsorb ()
 
ProcScenarioBuilderOnCast ()
 
ProcScenarioBuilderOnHit ()
 
ProcScenarioBuilderOnFinish ()
 
ProcEventInfo Build ()
 
uint32_t GetTypeMask () const
 
uint32_t GetHitMask () const
 
uint32_t GetSpellTypeMask () const
 
uint32_t GetSpellPhaseMask () const
 

Private Attributes

uint32_t _typeMask = 0
 
uint32_t _hitMask = PROC_HIT_NORMAL
 
uint32_t _spellTypeMask = PROC_SPELL_TYPE_MASK_ALL
 
uint32_t _spellPhaseMask = PROC_SPELL_PHASE_HIT
 
bool _needsSpellInfo = false
 
bool _usesDamageInfo = false
 
bool _usesHealInfo = false
 
std::shared_ptr< SpellInfo_defaultSpellInfo
 
std::shared_ptr< DamageInfo_damageInfo
 
std::shared_ptr< HealInfo_healInfo
 

Detailed Description

Helper class for testing specific proc scenarios.

Uses shared_ptr for resource management to allow safe copying in fluent builder pattern usage.

Constructor & Destructor Documentation

◆ ProcScenarioBuilder()

ProcScenarioBuilder::ProcScenarioBuilder ( )
inline
255 {
256 // Create a default SpellInfo for spell-type procs using shared_ptr
257 _defaultSpellInfo = std::shared_ptr<SpellInfo>(
259 .WithId(99999)
260 .WithSpellFamilyName(0)
261 .Build()
262 );
263 }
ProcEventInfo Build()
Definition AuraScriptTestFramework.h:422
std::shared_ptr< SpellInfo > _defaultSpellInfo
Definition AuraScriptTestFramework.h:466
Builder class for creating SpellInfo test instances.
Definition SpellInfoTestHelper.h:160

References _defaultSpellInfo, and Build().

◆ ~ProcScenarioBuilder()

ProcScenarioBuilder::~ProcScenarioBuilder ( )
default

Member Function Documentation

◆ Build()

ProcEventInfo ProcScenarioBuilder::Build ( )
inline
423 {
424 auto builder = ProcEventInfoBuilder()
429
430 // Create DamageInfo or HealInfo with SpellInfo for spell-type procs
431 if (_needsSpellInfo)
432 {
433 if (_usesDamageInfo)
434 {
435 // Create new DamageInfo if needed
436 if (!_damageInfo)
437 _damageInfo = std::make_shared<DamageInfo>(nullptr, nullptr, 100, _defaultSpellInfo.get(), SPELL_SCHOOL_MASK_FIRE, SPELL_DIRECT_DAMAGE);
438 builder.WithDamageInfo(_damageInfo.get());
439 }
440 else if (_usesHealInfo)
441 {
442 // Create new HealInfo if needed
443 if (!_healInfo)
444 _healInfo = std::make_shared<HealInfo>(nullptr, nullptr, 100, _defaultSpellInfo.get(), SPELL_SCHOOL_MASK_HOLY);
445 builder.WithHealInfo(_healInfo.get());
446 }
447 }
448
449 return builder.Build();
450 }
@ SPELL_SCHOOL_MASK_HOLY
Definition SharedDefines.h:286
@ SPELL_SCHOOL_MASK_FIRE
Definition SharedDefines.h:287
@ SPELL_DIRECT_DAMAGE
Definition Unit.h:255
Builder class for creating ProcEventInfo test instances.
Definition ProcEventInfoHelper.h:31
ProcEventInfoBuilder & WithSpellPhaseMask(uint32 spellPhaseMask)
Definition ProcEventInfoHelper.h:69
ProcEventInfoBuilder & WithTypeMask(uint32 typeMask)
Definition ProcEventInfoHelper.h:57
ProcEventInfoBuilder & WithHitMask(uint32 hitMask)
Definition ProcEventInfoHelper.h:75
ProcEventInfoBuilder & WithSpellTypeMask(uint32 spellTypeMask)
Definition ProcEventInfoHelper.h:63
uint32_t _spellPhaseMask
Definition AuraScriptTestFramework.h:462
uint32_t _hitMask
Definition AuraScriptTestFramework.h:460
std::shared_ptr< DamageInfo > _damageInfo
Definition AuraScriptTestFramework.h:467
bool _usesDamageInfo
Definition AuraScriptTestFramework.h:464
uint32_t _typeMask
Definition AuraScriptTestFramework.h:459
uint32_t _spellTypeMask
Definition AuraScriptTestFramework.h:461
bool _usesHealInfo
Definition AuraScriptTestFramework.h:465
bool _needsSpellInfo
Definition AuraScriptTestFramework.h:463
std::shared_ptr< HealInfo > _healInfo
Definition AuraScriptTestFramework.h:468

References _damageInfo, _defaultSpellInfo, _healInfo, _hitMask, _needsSpellInfo, _spellPhaseMask, _spellTypeMask, _typeMask, _usesDamageInfo, _usesHealInfo, SPELL_DIRECT_DAMAGE, SPELL_SCHOOL_MASK_FIRE, SPELL_SCHOOL_MASK_HOLY, ProcEventInfoBuilder::WithHitMask(), ProcEventInfoBuilder::WithSpellPhaseMask(), ProcEventInfoBuilder::WithSpellTypeMask(), and ProcEventInfoBuilder::WithTypeMask().

Referenced by ProcScenarioBuilder(), and TEST_F().

◆ GetHitMask()

uint32_t ProcScenarioBuilder::GetHitMask ( ) const
inline
454{ return _hitMask; }

References _hitMask.

◆ GetSpellPhaseMask()

uint32_t ProcScenarioBuilder::GetSpellPhaseMask ( ) const
inline
456{ return _spellPhaseMask; }

References _spellPhaseMask.

◆ GetSpellTypeMask()

uint32_t ProcScenarioBuilder::GetSpellTypeMask ( ) const
inline
455{ return _spellTypeMask; }

References _spellTypeMask.

◆ GetTypeMask()

uint32_t ProcScenarioBuilder::GetTypeMask ( ) const
inline
453{ return _typeMask; }

References _typeMask.

◆ OnCast()

ProcScenarioBuilder & ProcScenarioBuilder::OnCast ( )
inline
404 {
406 return *this;
407 }
@ PROC_SPELL_PHASE_CAST
Definition SpellMgr.h:248

References _spellPhaseMask, and PROC_SPELL_PHASE_CAST.

Referenced by TEST_F(), and TEST_F().

◆ OnDeath()

ProcScenarioBuilder & ProcScenarioBuilder::OnDeath ( )
inline
344 {
346 _needsSpellInfo = false;
347 return *this;
348 }
@ PROC_FLAG_DEATH
Definition SpellMgr.h:146

References _needsSpellInfo, _typeMask, and PROC_FLAG_DEATH.

Referenced by TEST_F().

◆ OnFinish()

ProcScenarioBuilder & ProcScenarioBuilder::OnFinish ( )
inline
416 {
418 return *this;
419 }
@ PROC_SPELL_PHASE_FINISH
Definition SpellMgr.h:250

References _spellPhaseMask, and PROC_SPELL_PHASE_FINISH.

Referenced by TEST_F().

◆ OnHeal()

ProcScenarioBuilder & ProcScenarioBuilder::OnHeal ( )
inline
301 {
304 _needsSpellInfo = true;
305 _usesHealInfo = true;
306 return *this;
307 }
@ PROC_SPELL_TYPE_HEAL
Definition SpellMgr.h:240
@ PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS
Definition SpellMgr.h:131

References _needsSpellInfo, _spellTypeMask, _typeMask, _usesHealInfo, PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS, and PROC_SPELL_TYPE_HEAL.

Referenced by TEST_F(), and TEST_F().

◆ OnHit()

ProcScenarioBuilder & ProcScenarioBuilder::OnHit ( )
inline
410 {
412 return *this;
413 }
@ PROC_SPELL_PHASE_HIT
Definition SpellMgr.h:249

References _spellPhaseMask, and PROC_SPELL_PHASE_HIT.

Referenced by TEST_F(), TEST_F(), TEST_F(), and TEST_F().

◆ OnKill()

ProcScenarioBuilder & ProcScenarioBuilder::OnKill ( )
inline
337 {
339 _needsSpellInfo = false;
340 return *this;
341 }
@ PROC_FLAG_KILL
Definition SpellMgr.h:111

References _needsSpellInfo, _typeMask, and PROC_FLAG_KILL.

Referenced by TEST_F().

◆ OnMeleeAutoAttack()

ProcScenarioBuilder & ProcScenarioBuilder::OnMeleeAutoAttack ( )
inline
269 {
271 _needsSpellInfo = false;
272 return *this;
273 }
@ PROC_FLAG_DONE_MELEE_AUTO_ATTACK
Definition SpellMgr.h:113

References _needsSpellInfo, _typeMask, and PROC_FLAG_DONE_MELEE_AUTO_ATTACK.

Referenced by TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().

◆ OnPeriodicDamage()

ProcScenarioBuilder & ProcScenarioBuilder::OnPeriodicDamage ( )
inline
319 {
322 _needsSpellInfo = true;
323 _usesDamageInfo = true;
324 return *this;
325 }
@ PROC_SPELL_TYPE_DAMAGE
Definition SpellMgr.h:239
@ PROC_FLAG_DONE_PERIODIC
Definition SpellMgr.h:137

References _needsSpellInfo, _spellTypeMask, _typeMask, _usesDamageInfo, PROC_FLAG_DONE_PERIODIC, and PROC_SPELL_TYPE_DAMAGE.

Referenced by TEST_F().

◆ OnPeriodicHeal()

ProcScenarioBuilder & ProcScenarioBuilder::OnPeriodicHeal ( )
inline

◆ OnSpellDamage()

ProcScenarioBuilder & ProcScenarioBuilder::OnSpellDamage ( )
inline

◆ OnTakenHeal()

ProcScenarioBuilder & ProcScenarioBuilder::OnTakenHeal ( )
inline

◆ OnTakenMeleeAutoAttack()

ProcScenarioBuilder & ProcScenarioBuilder::OnTakenMeleeAutoAttack ( )
inline
276 {
278 _needsSpellInfo = false;
279 return *this;
280 }
@ PROC_FLAG_TAKEN_MELEE_AUTO_ATTACK
Definition SpellMgr.h:114

References _needsSpellInfo, _typeMask, and PROC_FLAG_TAKEN_MELEE_AUTO_ATTACK.

Referenced by TEST_F(), TEST_F(), TEST_F(), and TEST_F().

◆ OnTakenSpellDamage()

ProcScenarioBuilder & ProcScenarioBuilder::OnTakenSpellDamage ( )
inline

◆ WithAbsorb()

ProcScenarioBuilder & ProcScenarioBuilder::WithAbsorb ( )
inline
394 {
396 return *this;
397 }
@ PROC_HIT_ABSORB
Definition SpellMgr.h:267

References _hitMask, and PROC_HIT_ABSORB.

Referenced by TEST_F().

◆ WithBlock()

ProcScenarioBuilder & ProcScenarioBuilder::WithBlock ( )
inline
382 {
384 return *this;
385 }
@ PROC_HIT_BLOCK
Definition SpellMgr.h:263

References _hitMask, and PROC_HIT_BLOCK.

Referenced by TEST_F().

◆ WithCrit()

ProcScenarioBuilder & ProcScenarioBuilder::WithCrit ( )
inline
352 {
354 return *this;
355 }
@ PROC_HIT_CRITICAL
Definition SpellMgr.h:258

References _hitMask, and PROC_HIT_CRITICAL.

Referenced by TEST_F(), TEST_F(), and TEST_F().

◆ WithDodge()

ProcScenarioBuilder & ProcScenarioBuilder::WithDodge ( )
inline
370 {
372 return *this;
373 }
@ PROC_HIT_DODGE
Definition SpellMgr.h:261

References _hitMask, and PROC_HIT_DODGE.

Referenced by TEST_F().

◆ WithFullBlock()

ProcScenarioBuilder & ProcScenarioBuilder::WithFullBlock ( )
inline
388 {
390 return *this;
391 }
@ PROC_HIT_FULL_BLOCK
Definition SpellMgr.h:270

References _hitMask, and PROC_HIT_FULL_BLOCK.

Referenced by TEST_F().

◆ WithMiss()

ProcScenarioBuilder & ProcScenarioBuilder::WithMiss ( )
inline
364 {
366 return *this;
367 }
@ PROC_HIT_MISS
Definition SpellMgr.h:259

References _hitMask, and PROC_HIT_MISS.

Referenced by TEST_F(), and TEST_F().

◆ WithNormalHit()

ProcScenarioBuilder & ProcScenarioBuilder::WithNormalHit ( )
inline
358 {
360 return *this;
361 }
@ PROC_HIT_NORMAL
Definition SpellMgr.h:257

References _hitMask, and PROC_HIT_NORMAL.

Referenced by TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().

◆ WithParry()

ProcScenarioBuilder & ProcScenarioBuilder::WithParry ( )
inline
376 {
378 return *this;
379 }
@ PROC_HIT_PARRY
Definition SpellMgr.h:262

References _hitMask, and PROC_HIT_PARRY.

Referenced by TEST_F().

Member Data Documentation

◆ _damageInfo

std::shared_ptr<DamageInfo> ProcScenarioBuilder::_damageInfo
private

Referenced by Build().

◆ _defaultSpellInfo

std::shared_ptr<SpellInfo> ProcScenarioBuilder::_defaultSpellInfo
private

Referenced by Build(), and ProcScenarioBuilder().

◆ _healInfo

std::shared_ptr<HealInfo> ProcScenarioBuilder::_healInfo
private

Referenced by Build().

◆ _hitMask

uint32_t ProcScenarioBuilder::_hitMask = PROC_HIT_NORMAL
private

◆ _needsSpellInfo

◆ _spellPhaseMask

uint32_t ProcScenarioBuilder::_spellPhaseMask = PROC_SPELL_PHASE_HIT
private

◆ _spellTypeMask

◆ _typeMask

◆ _usesDamageInfo

bool ProcScenarioBuilder::_usesDamageInfo = false
private

◆ _usesHealInfo

bool ProcScenarioBuilder::_usesHealInfo = false
private

The documentation for this class was generated from the following file: