Core/Auras: Implement spell effect attribute NoScaleWithStack (0x40)

Port From (https://github.com/TrinityCore/TrinityCore/commit/b832ed2479c039958bce40c3c26294fc67acf744)
This commit is contained in:
hondacrx
2021-02-09 12:50:35 -05:00
parent cf030b70b2
commit a3e2e957c9
4 changed files with 15 additions and 2 deletions
+10
View File
@@ -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,
+1 -1
View File
@@ -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;
+2 -1
View File
@@ -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)
+2
View File
@@ -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;