[Spells] Updated SE_NegateSpellEffect SPA 382, new functionality (#1514)

* updated SPA 382

Updated SE_NegateSpellEffect SPA 382

Now uses spell values base1 which allows you to limit which bonuses are negated.

* Update spdat.h

* minor update

* Update bonuses.cpp

reset bool correctly

* Update bonuses.cpp

* Update bonuses.cpp
This commit is contained in:
KayenEQ 2021-09-03 21:15:07 -04:00 committed by GitHub
parent 119018cf41
commit 59434e0101
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 691 additions and 644 deletions

View File

@ -499,7 +499,16 @@ enum SpellRestriction
UNKNOWN_99999 = 99999, // | caster restriction | works will spell 27672 Strike of Ire
};
enum NegateSpellEffectType
{
NEGATE_SPA_ALL_BONUSES = 0,
NEGATE_SPA_SPELLBONUS = 1,
NEGATE_SPA_ITEMBONUS = 2,
NEGATE_SPA_SPELLBONUS_AND_ITEMBONUS = 3,
NEGATE_SPA_AABONUS = 4,
NEGATE_SPA_SPELLBONUS_AND_AABONUS = 5,
NEGATE_SPA_ITEMBONUS_AND_AABONUS = 6,
};
enum SpellTypes : uint32
{
@ -1056,7 +1065,7 @@ typedef enum {
#define SE_ShadowStepDirectional 379 // implemented - handled by client
#define SE_Knockdown 380 // implemented - small knock back(handled by client)
//#define SE_KnockTowardCaster 381 // *not implemented (Call of Hither) knocks you back to caster (value) distance units infront
#define SE_NegateSpellEffect 382 // implemented - negates specific spell bonuses for duration of the debuff.
#define SE_NegateSpellEffect 382 // implemented, @Debuff, negates specific spell effect benefits for the duration of the debuff, base: see NegateSpellEffecttype Enum, limit: SPA id, max: none
#define SE_SympatheticProc 383 // implemented, @Fc, On Caster, cast on spell use, base: variable proc chance on cast time, limit: spellid
#define SE_Leap 384 // implemented - Leap effect, ie stomping leap
#define SE_LimitSpellGroup 385 // implemented, @Ff, Spell group(s) that a spell focus can require or exclude, base1: spellgroup id, Include: Positive Exclude: Negative

File diff suppressed because it is too large Load Diff

View File

@ -297,7 +297,7 @@ public:
void ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses* newbon, uint16 casterID = 0,
uint8 WornType = 0, int32 ticsremaining = 0, int buffslot = -1, int instrument_mod = 10,
bool IsAISpellEffect = false, uint16 effect_id = 0, int32 se_base = 0, int32 se_limit = 0, int32 se_max = 0);
void NegateSpellsBonuses(uint16 spell_id);
void NegateSpellEffectBonuses(uint16 spell_id);
virtual float GetActSpellRange(uint16 spell_id, float range, bool IsBard = false);
virtual int32 GetActSpellDamage(uint16 spell_id, int32 value, Mob* target = nullptr);
virtual int32 GetActDoTDamage(uint16 spell_id, int32 value, Mob* target);