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,
CritDamageBonus2 = 29, //One Not Used Spell
SpellCostRefundOnFail = 30,
StackAmount = 31,
Effect4 = 32,
Effect5 = 33,
SpellCost2 = 34, // Used when SpellPowerEntry.PowerIndex == 1
JumpDistance = 35,
// spellmod 36
StackAmount2 = 37, // same as SPELLMOD_STACK_AMOUNT but affects tooltips
MaxStackAmount = 37,
// spellmod 38
SpellCost3 = 39,
+1 -1
View File
@@ -870,7 +870,7 @@ namespace Game.Spells
{
Player modOwner = caster.GetSpellModOwner();
if (modOwner != null)
modOwner.ApplySpellMod(m_spellInfo.Id, SpellModOp.StackAmount2, ref maxStackAmount);
modOwner.ApplySpellMod(m_spellInfo.Id, SpellModOp.MaxStackAmount, ref 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())
m_originalCasterGUID = originalCasterGUID;
else
@@ -2160,7 +2164,7 @@ namespace Game.Spells
if (m_spellValue.AuraStackAmount > 1)
{
if (!refresh)
m_spellAura.SetStackAmount(m_spellValue.AuraStackAmount);
m_spellAura.SetStackAmount((byte)m_spellValue.AuraStackAmount);
else
m_spellAura.ModStackAmount(m_spellValue.AuraStackAmount);
}
@@ -7718,7 +7722,7 @@ namespace Game.Spells
public uint CustomBasePointsMask;
public uint MaxAffectedTargets;
public float RadiusMod;
public byte AuraStackAmount;
public int AuraStackAmount;
}
// Spell modifier (used for modify other spells)