Core/Auras: Implemented new spell modifier type to change aura stack size on apply

Port From (https://github.com/TrinityCore/TrinityCore/commit/51a9d2a9c20f36f5343049a340663601c1c1165b)
This commit is contained in:
hondacrx
2021-02-22 16:01:43 -05:00
parent dd425437b8
commit e74d30024f
3 changed files with 9 additions and 4 deletions
@@ -348,12 +348,13 @@ namespace Framework.Constants
ResistDispelChance = 28, ResistDispelChance = 28,
CritDamageBonus2 = 29, //One Not Used Spell CritDamageBonus2 = 29, //One Not Used Spell
SpellCostRefundOnFail = 30, SpellCostRefundOnFail = 30,
StackAmount = 31,
Effect4 = 32, Effect4 = 32,
Effect5 = 33, Effect5 = 33,
SpellCost2 = 34, // Used when SpellPowerEntry.PowerIndex == 1 SpellCost2 = 34, // Used when SpellPowerEntry.PowerIndex == 1
JumpDistance = 35, JumpDistance = 35,
// spellmod 36 // spellmod 36
StackAmount2 = 37, // same as SPELLMOD_STACK_AMOUNT but affects tooltips MaxStackAmount = 37,
// spellmod 38 // spellmod 38
SpellCost3 = 39, SpellCost3 = 39,
+1 -1
View File
@@ -870,7 +870,7 @@ namespace Game.Spells
{ {
Player modOwner = caster.GetSpellModOwner(); Player modOwner = caster.GetSpellModOwner();
if (modOwner != null) if (modOwner != null)
modOwner.ApplySpellMod(m_spellInfo.Id, SpellModOp.StackAmount2, ref maxStackAmount); modOwner.ApplySpellMod(m_spellInfo.Id, SpellModOp.MaxStackAmount, ref maxStackAmount);
} }
return maxStackAmount; return maxStackAmount;
} }
+6 -2
View File
@@ -66,6 +66,10 @@ namespace Game.Spells
} }
} }
Player modOwner = caster.GetSpellModOwner();
if (modOwner != null)
modOwner.ApplySpellMod(info.Id, SpellModOp.StackAmount, ref m_spellValue.AuraStackAmount, this);
if (!originalCasterGUID.IsEmpty()) if (!originalCasterGUID.IsEmpty())
m_originalCasterGUID = originalCasterGUID; m_originalCasterGUID = originalCasterGUID;
else else
@@ -2160,7 +2164,7 @@ namespace Game.Spells
if (m_spellValue.AuraStackAmount > 1) if (m_spellValue.AuraStackAmount > 1)
{ {
if (!refresh) if (!refresh)
m_spellAura.SetStackAmount(m_spellValue.AuraStackAmount); m_spellAura.SetStackAmount((byte)m_spellValue.AuraStackAmount);
else else
m_spellAura.ModStackAmount(m_spellValue.AuraStackAmount); m_spellAura.ModStackAmount(m_spellValue.AuraStackAmount);
} }
@@ -7718,7 +7722,7 @@ namespace Game.Spells
public uint CustomBasePointsMask; public uint CustomBasePointsMask;
public uint MaxAffectedTargets; public uint MaxAffectedTargets;
public float RadiusMod; public float RadiusMod;
public byte AuraStackAmount; public int AuraStackAmount;
} }
// Spell modifier (used for modify other spells) // Spell modifier (used for modify other spells)