Core/Auras: Implement spell effect attribute NoScaleWithStack (0x40)
Port From (https://github.com/TrinityCore/TrinityCore/commit/b832ed2479c039958bce40c3c26294fc67acf744)
This commit is contained in:
@@ -1672,6 +1672,16 @@ namespace Framework.Constants
|
||||
CooldownExpiresAtDailyReset = 0x08
|
||||
}
|
||||
|
||||
public enum SpellEffectAttributes
|
||||
{
|
||||
None = 0,
|
||||
UnaffectedByInvulnerability = 0x01, // not cancelled by immunities
|
||||
NoScaleWithStack = 0x40,
|
||||
StackAuraAmountOnRecast = 0x8000, // refreshing periodic auras with this attribute will add remaining damage to new aura
|
||||
AllowAnyExplicitTarget = 0x100000,
|
||||
IgnoreDuringCooldownTimeRateCalculation = 0x800000
|
||||
}
|
||||
|
||||
public enum SpellProcsPerMinuteModType : byte
|
||||
{
|
||||
Haste = 1,
|
||||
|
||||
@@ -271,7 +271,7 @@ namespace Game.DataStorage
|
||||
public uint EffectIndex;
|
||||
public uint Effect;
|
||||
public float EffectAmplitude;
|
||||
public int EffectAttributes;
|
||||
public SpellEffectAttributes EffectAttributes;
|
||||
public uint EffectAuraPeriod;
|
||||
public float EffectBonusCoefficient;
|
||||
public float EffectChainAmplitude;
|
||||
|
||||
@@ -122,7 +122,8 @@ namespace Game.Spells
|
||||
}
|
||||
|
||||
GetBase().CallScriptEffectCalcAmountHandlers(this, ref amount, ref m_canBeRecalculated);
|
||||
amount *= GetBase().GetStackAmount();
|
||||
if (!GetSpellEffectInfo().EffectAttributes.HasFlag(SpellEffectAttributes.NoScaleWithStack))
|
||||
amount *= GetBase().GetStackAmount();
|
||||
return amount;
|
||||
}
|
||||
public void CalculatePeriodic(Unit caster, bool resetPeriodicTimer = true, bool load = false)
|
||||
|
||||
@@ -3666,6 +3666,7 @@ namespace Game.Spells
|
||||
Scaling.Coefficient = effect.Coefficient;
|
||||
Scaling.Variance = effect.Variance;
|
||||
Scaling.ResourceCoefficient = effect.ResourceCoefficient;
|
||||
EffectAttributes = effect.EffectAttributes;
|
||||
|
||||
ImplicitTargetConditions = null;
|
||||
|
||||
@@ -4408,6 +4409,7 @@ namespace Game.Spells
|
||||
public FlagArray128 SpellClassMask;
|
||||
public float BonusCoefficientFromAP;
|
||||
public List<Condition> ImplicitTargetConditions;
|
||||
public SpellEffectAttributes EffectAttributes;
|
||||
public ScalingInfo Scaling;
|
||||
|
||||
ImmunityInfo _immunityInfo;
|
||||
|
||||
Reference in New Issue
Block a user