[Spells] Implemented SPA 512 SE_Proc_Timer_Modifier, Fixed AA procs not working (#1646)

* update for SPA 511

* remove debugs, AA implemented

* update

* twinprocfix

* AA procs added

* format update

* update

* proctimer limits

* update

* rename function

renamed function
only check for buffs value > 0, don't need to check for AA's which are negative ID's

* pre merge

* variable updates

* Update spell_effects.cpp

* var rename

update var name to better represent its function.

* updated proc struct

added reuse timer

* reuse timer to spell procs

* updates

* debug remove

* Update mob.cpp

* fix

* merge
This commit is contained in:
KayenEQ
2021-11-05 14:14:11 -04:00
committed by GitHub
parent 8c95323728
commit f1bfd6bc2a
11 changed files with 469 additions and 109 deletions
+12 -3
View File
@@ -726,15 +726,15 @@ public:
//Procs
void TriggerDefensiveProcs(Mob *on, uint16 hand = EQ::invslot::slotPrimary, bool FromSkillProc = false, int damage = 0);
bool AddRangedProc(uint16 spell_id, uint16 iChance = 3, uint16 base_spell_id = SPELL_UNKNOWN);
bool AddRangedProc(uint16 spell_id, uint16 iChance = 3, uint16 base_spell_id = SPELL_UNKNOWN, uint32 proc_reuse_time = 0);
bool RemoveRangedProc(uint16 spell_id, bool bAll = false);
bool HasRangedProcs() const;
bool AddDefensiveProc(uint16 spell_id, uint16 iChance = 3, uint16 base_spell_id = SPELL_UNKNOWN);
bool AddDefensiveProc(uint16 spell_id, uint16 iChance = 3, uint16 base_spell_id = SPELL_UNKNOWN, uint32 proc_reuse_time = 0);
bool RemoveDefensiveProc(uint16 spell_id, bool bAll = false);
bool HasDefensiveProcs() const;
bool HasSkillProcs() const;
bool HasSkillProcSuccess() const;
bool AddProcToWeapon(uint16 spell_id, bool bPerma = false, uint16 iChance = 3, uint16 base_spell_id = SPELL_UNKNOWN, int level_override = -1);
bool AddProcToWeapon(uint16 spell_id, bool bPerma = false, uint16 iChance = 3, uint16 base_spell_id = SPELL_UNKNOWN, int level_override = -1, uint32 proc_reuse_time = 0);
bool RemoveProcFromWeapon(uint16 spell_id, bool bAll = false);
bool HasProcs() const;
bool IsCombatProc(uint16 spell_id);
@@ -861,6 +861,8 @@ public:
bool IsFocusProcLimitTimerActive(int32 focus_spell_id);
void SetFocusProcLimitTimer(int32 focus_spell_id, uint32 focus_reuse_time);
bool IsProcLimitTimerActive(int32 base_spell_id, uint32 proc_reuse_time, int proc_type);
void SetProcLimitTimer(int32 base_spell_id, uint32 proc_reuse_time, int proc_type);
void VirusEffectProcess();
void SpreadVirusEffect(int32 spell_id, uint32 caster_id, int32 buff_tics_remaining);
@@ -1469,6 +1471,13 @@ protected:
Timer focusproclimit_timer[MAX_FOCUS_PROC_LIMIT_TIMERS]; //SPA 511
int32 focusproclimit_spellid[MAX_FOCUS_PROC_LIMIT_TIMERS]; //SPA 511
Timer spell_proclimit_timer[MAX_PROC_LIMIT_TIMERS]; //SPA 512
int32 spell_proclimit_spellid[MAX_PROC_LIMIT_TIMERS]; //SPA 512
Timer ranged_proclimit_timer[MAX_PROC_LIMIT_TIMERS]; //SPA 512
int32 ranged_proclimit_spellid[MAX_PROC_LIMIT_TIMERS]; //SPA 512
Timer def_proclimit_timer[MAX_PROC_LIMIT_TIMERS]; //SPA 512
int32 def_proclimit_spellid[MAX_PROC_LIMIT_TIMERS]; //SPA 512
Timer shield_timer;
uint32 m_shield_target_id;
uint32 m_shielder_id;