Core/Spells: Assign spell effect handles for new apply aura effects

Port From (https://github.com/TrinityCore/TrinityCore/commit/c3dcbe04dcea04ce3f453f99d44ebebb542bcda7)
This commit is contained in:
hondacrx
2020-07-12 00:39:37 -04:00
parent 27a8ecc8b3
commit c06baf1bf5
6 changed files with 22 additions and 14 deletions
@@ -2060,7 +2060,7 @@ namespace Framework.Constants
Effect171 = 171, // Summons Gamebject Effect171 = 171, // Summons Gamebject
ResurrectWithAura = 172, // Aoe Ressurection ResurrectWithAura = 172, // Aoe Ressurection
UnlockGuildVaultTab = 173, // Guild Tab Unlocked (Guild Perk) UnlockGuildVaultTab = 173, // Guild Tab Unlocked (Guild Perk)
ApllyAuraOnPet = 174, ApplyAuraOnPet = 174,
Effect175 = 175, // Unused (4.3.4) Effect175 = 175, // Unused (4.3.4)
Sanctuary2 = 176, Sanctuary2 = 176,
Effect177 = 177, Effect177 = 177,
+10 -2
View File
@@ -2556,7 +2556,7 @@ namespace Game.Spells
List<Unit> targetList = new List<Unit>(); List<Unit> targetList = new List<Unit>();
// non-area aura // non-area aura
if (effect.Effect == SpellEffectName.ApplyAura) if (effect.Effect == SpellEffectName.ApplyAura || effect.Effect == SpellEffectName.Unk202)
{ {
targetList.Add(GetUnitOwner()); targetList.Add(GetUnitOwner());
} }
@@ -2570,7 +2570,8 @@ namespace Game.Spells
{ {
case SpellEffectName.ApplyAreaAuraParty: case SpellEffectName.ApplyAreaAuraParty:
case SpellEffectName.ApplyAreaAuraRaid: case SpellEffectName.ApplyAreaAuraRaid:
{ case SpellEffectName.ApplyAreaAuraPartyNonrandom:
{
targetList.Add(GetUnitOwner()); targetList.Add(GetUnitOwner());
var u_check = new AnyGroupedUnitInObjectRangeCheck(GetUnitOwner(), GetUnitOwner(), radius, effect.Effect == SpellEffectName.ApplyAreaAuraRaid, GetSpellInfo().HasAttribute(SpellAttr3.OnlyTargetPlayers), false, true); var u_check = new AnyGroupedUnitInObjectRangeCheck(GetUnitOwner(), GetUnitOwner(), radius, effect.Effect == SpellEffectName.ApplyAreaAuraRaid, GetSpellInfo().HasAttribute(SpellAttr3.OnlyTargetPlayers), false, true);
var searcher = new UnitListSearcher(GetUnitOwner(), targetList, u_check); var searcher = new UnitListSearcher(GetUnitOwner(), targetList, u_check);
@@ -2603,6 +2604,13 @@ namespace Game.Spells
targetList.Add(owner); targetList.Add(owner);
break; break;
} }
case SpellEffectName.ApplyAuraOnPet:
{
Unit pet = Global.ObjAccessor.GetUnit(GetUnitOwner(), GetUnitOwner().GetPetGUID());
if (pet != null)
targetList.Add(pet);
break;
}
} }
} }
} }
+1 -8
View File
@@ -934,14 +934,7 @@ namespace Game.Spells
public bool IsEffect(SpellEffectName effectName) { return _effectInfo.Effect == effectName; } public bool IsEffect(SpellEffectName effectName) { return _effectInfo.Effect == effectName; }
public bool IsAreaAuraEffect() public bool IsAreaAuraEffect()
{ {
if (_effectInfo.Effect == SpellEffectName.ApplyAreaAuraParty || return _effectInfo.IsAreaAuraEffect();
_effectInfo.Effect == SpellEffectName.ApplyAreaAuraRaid ||
_effectInfo.Effect == SpellEffectName.ApplyAreaAuraFriend ||
_effectInfo.Effect == SpellEffectName.ApplyAreaAuraEnemy ||
_effectInfo.Effect == SpellEffectName.ApplyAreaAuraPet ||
_effectInfo.Effect == SpellEffectName.ApplyAreaAuraOwner)
return true;
return false;
} }
#region Fields #region Fields
+3
View File
@@ -753,6 +753,8 @@ namespace Game.Spells
} }
[SpellEffectHandler(SpellEffectName.ApplyAura)] [SpellEffectHandler(SpellEffectName.ApplyAura)]
[SpellEffectHandler(SpellEffectName.ApplyAuraOnPet)]
[SpellEffectHandler(SpellEffectName.Unk202)]
void EffectApplyAura(uint effIndex) void EffectApplyAura(uint effIndex)
{ {
if (effectHandleMode != SpellEffectHandleMode.HitTarget) if (effectHandleMode != SpellEffectHandleMode.HitTarget)
@@ -771,6 +773,7 @@ namespace Game.Spells
[SpellEffectHandler(SpellEffectName.ApplyAreaAuraParty)] [SpellEffectHandler(SpellEffectName.ApplyAreaAuraParty)]
[SpellEffectHandler(SpellEffectName.ApplyAreaAuraPet)] [SpellEffectHandler(SpellEffectName.ApplyAreaAuraPet)]
[SpellEffectHandler(SpellEffectName.ApplyAreaAuraRaid)] [SpellEffectHandler(SpellEffectName.ApplyAreaAuraRaid)]
[SpellEffectHandler(SpellEffectName.ApplyAreaAuraPartyNonrandom)]
void EffectApplyAreaAura(uint effIndex) void EffectApplyAreaAura(uint effIndex)
{ {
if (effectHandleMode != SpellEffectHandleMode.HitTarget) if (effectHandleMode != SpellEffectHandleMode.HitTarget)
+4 -3
View File
@@ -3681,7 +3681,8 @@ namespace Game.Spells
Effect == SpellEffectName.ApplyAreaAuraFriend || Effect == SpellEffectName.ApplyAreaAuraFriend ||
Effect == SpellEffectName.ApplyAreaAuraEnemy || Effect == SpellEffectName.ApplyAreaAuraEnemy ||
Effect == SpellEffectName.ApplyAreaAuraPet || Effect == SpellEffectName.ApplyAreaAuraPet ||
Effect == SpellEffectName.ApplyAreaAuraOwner) Effect == SpellEffectName.ApplyAreaAuraOwner ||
Effect == SpellEffectName.ApplyAreaAuraPartyNonrandom)
return true; return true;
return false; return false;
} }
@@ -3700,7 +3701,7 @@ namespace Game.Spells
public bool IsUnitOwnedAuraEffect() public bool IsUnitOwnedAuraEffect()
{ {
return IsAreaAuraEffect() || Effect == SpellEffectName.ApplyAura; return IsAreaAuraEffect() || Effect == SpellEffectName.ApplyAura || Effect == SpellEffectName.ApplyAuraOnPet || Effect == SpellEffectName.Unk202;
} }
public int CalcValue(Unit caster = null, int? bp = null, Unit target = null, uint castItemId = 0, int itemLevel = -1) public int CalcValue(Unit caster = null, int? bp = null, Unit target = null, uint castItemId = 0, int itemLevel = -1)
@@ -3994,7 +3995,7 @@ namespace Game.Spells
case SpellEffectName.ApplyAreaAuraFriend: case SpellEffectName.ApplyAreaAuraFriend:
case SpellEffectName.ApplyAreaAuraEnemy: case SpellEffectName.ApplyAreaAuraEnemy:
case SpellEffectName.ApplyAreaAuraOwner: case SpellEffectName.ApplyAreaAuraOwner:
case SpellEffectName.ApllyAuraOnPet: case SpellEffectName.ApplyAuraOnPet:
case SpellEffectName.Unk202: case SpellEffectName.Unk202:
case SpellEffectName.ApplyAreaAuraPartyNonrandom: case SpellEffectName.ApplyAreaAuraPartyNonrandom:
switch (ApplyAuraName) switch (ApplyAuraName)
+3
View File
@@ -2530,6 +2530,9 @@ namespace Game.Entities
case SpellEffectName.ApplyAreaAuraEnemy: case SpellEffectName.ApplyAreaAuraEnemy:
case SpellEffectName.ApplyAreaAuraPet: case SpellEffectName.ApplyAreaAuraPet:
case SpellEffectName.ApplyAreaAuraOwner: case SpellEffectName.ApplyAreaAuraOwner:
case SpellEffectName.ApplyAuraOnPet:
case SpellEffectName.Unk202:
case SpellEffectName.ApplyAreaAuraPartyNonrandom:
{ {
if (effect.ApplyAuraName == AuraType.PeriodicDamage || if (effect.ApplyAuraName == AuraType.PeriodicDamage ||
effect.ApplyAuraName == AuraType.PeriodicDamagePercent || effect.ApplyAuraName == AuraType.PeriodicDamagePercent ||