Core/Spells: Implemented spell effect 202 SPELL_EFFECT_APPLY_AREA_AURA_SUMMONS

Port From (https://github.com/TrinityCore/TrinityCore/commit/ad479e8fa0de6659815e956ee5f2b594957a7d1d)
This commit is contained in:
hondacrx
2021-03-04 14:21:45 -05:00
parent 80d12a5d58
commit 42f411119a
5 changed files with 18 additions and 6 deletions
@@ -2209,7 +2209,7 @@ namespace Framework.Constants
Unk199 = 199, Unk199 = 199,
HealBattlepetPct = 200, // NYI HealBattlepetPct = 200, // NYI
EnableBattlePets = 201, // NYI EnableBattlePets = 201, // NYI
Unk202 = 202, ApplyAreaAuraSummons = 202,
Unk203 = 203, Unk203 = 203,
ChangeBattlepetQuality = 204, ChangeBattlepetQuality = 204,
LaunchQuestChoice = 205, LaunchQuestChoice = 205,
+9 -1
View File
@@ -2602,7 +2602,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 || effect.Effect == SpellEffectName.Unk202) if (effect.Effect == SpellEffectName.ApplyAura)
{ {
targetList.Add(GetUnitOwner()); targetList.Add(GetUnitOwner());
} }
@@ -2657,6 +2657,14 @@ namespace Game.Spells
targetList.Add(pet); targetList.Add(pet);
break; break;
} }
case SpellEffectName.ApplyAreaAuraSummons:
{
targetList.Add(GetUnitOwner());
WorldObjectSpellAreaTargetCheck check = new(radius, GetUnitOwner(), caster, GetUnitOwner(), GetSpellInfo(), SpellTargetCheckTypes.Summoned, null, SpellTargetObjectTypes.Unit);
UnitListSearcher searcher = new(GetUnitOwner(), targetList, check);
Cell.VisitAllObjects(GetUnitOwner(), searcher, radius);
break;
}
} }
} }
} }
+4 -1
View File
@@ -716,7 +716,6 @@ namespace Game.Spells
[SpellEffectHandler(SpellEffectName.ApplyAura)] [SpellEffectHandler(SpellEffectName.ApplyAura)]
[SpellEffectHandler(SpellEffectName.ApplyAuraOnPet)] [SpellEffectHandler(SpellEffectName.ApplyAuraOnPet)]
[SpellEffectHandler(SpellEffectName.Unk202)]
void EffectApplyAura(uint effIndex) void EffectApplyAura(uint effIndex)
{ {
if (effectHandleMode != SpellEffectHandleMode.HitTarget) if (effectHandleMode != SpellEffectHandleMode.HitTarget)
@@ -736,6 +735,7 @@ namespace Game.Spells
[SpellEffectHandler(SpellEffectName.ApplyAreaAuraPet)] [SpellEffectHandler(SpellEffectName.ApplyAreaAuraPet)]
[SpellEffectHandler(SpellEffectName.ApplyAreaAuraRaid)] [SpellEffectHandler(SpellEffectName.ApplyAreaAuraRaid)]
[SpellEffectHandler(SpellEffectName.ApplyAreaAuraPartyNonrandom)] [SpellEffectHandler(SpellEffectName.ApplyAreaAuraPartyNonrandom)]
[SpellEffectHandler(SpellEffectName.ApplyAreaAuraSummons)]
void EffectApplyAreaAura(uint effIndex) void EffectApplyAreaAura(uint effIndex)
{ {
if (effectHandleMode != SpellEffectHandleMode.HitTarget) if (effectHandleMode != SpellEffectHandleMode.HitTarget)
@@ -2179,6 +2179,9 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.HitTarget) if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return; return;
if (itemTarget == null)
return;
Player player = m_caster.ToPlayer(); Player player = m_caster.ToPlayer();
if (player == null) if (player == null)
return; return;
+3 -2
View File
@@ -3721,6 +3721,7 @@ namespace Game.Spells
Effect == SpellEffectName.ApplyAreaAuraEnemy || Effect == SpellEffectName.ApplyAreaAuraEnemy ||
Effect == SpellEffectName.ApplyAreaAuraPet || Effect == SpellEffectName.ApplyAreaAuraPet ||
Effect == SpellEffectName.ApplyAreaAuraOwner || Effect == SpellEffectName.ApplyAreaAuraOwner ||
Effect == SpellEffectName.ApplyAreaAuraSummons ||
Effect == SpellEffectName.ApplyAreaAuraPartyNonrandom) Effect == SpellEffectName.ApplyAreaAuraPartyNonrandom)
return true; return true;
return false; return false;
@@ -3740,7 +3741,7 @@ namespace Game.Spells
public bool IsUnitOwnedAuraEffect() public bool IsUnitOwnedAuraEffect()
{ {
return IsAreaAuraEffect() || Effect == SpellEffectName.ApplyAura || Effect == SpellEffectName.ApplyAuraOnPet || Effect == SpellEffectName.Unk202; return IsAreaAuraEffect() || Effect == SpellEffectName.ApplyAura || Effect == SpellEffectName.ApplyAuraOnPet;
} }
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)
@@ -4034,7 +4035,7 @@ namespace Game.Spells
case SpellEffectName.ApplyAreaAuraEnemy: case SpellEffectName.ApplyAreaAuraEnemy:
case SpellEffectName.ApplyAreaAuraOwner: case SpellEffectName.ApplyAreaAuraOwner:
case SpellEffectName.ApplyAuraOnPet: case SpellEffectName.ApplyAuraOnPet:
case SpellEffectName.Unk202: case SpellEffectName.ApplyAreaAuraSummons:
case SpellEffectName.ApplyAreaAuraPartyNonrandom: case SpellEffectName.ApplyAreaAuraPartyNonrandom:
switch (ApplyAuraName) switch (ApplyAuraName)
{ {
+1 -1
View File
@@ -2534,7 +2534,7 @@ namespace Game.Entities
case SpellEffectName.ApplyAreaAuraPet: case SpellEffectName.ApplyAreaAuraPet:
case SpellEffectName.ApplyAreaAuraOwner: case SpellEffectName.ApplyAreaAuraOwner:
case SpellEffectName.ApplyAuraOnPet: case SpellEffectName.ApplyAuraOnPet:
case SpellEffectName.Unk202: case SpellEffectName.ApplyAreaAuraSummons:
case SpellEffectName.ApplyAreaAuraPartyNonrandom: case SpellEffectName.ApplyAreaAuraPartyNonrandom:
{ {
if (effect.ApplyAuraName == AuraType.PeriodicDamage || if (effect.ApplyAuraName == AuraType.PeriodicDamage ||