Core/Spell: Fix name clashing between local variables and class member fields

Port From (https://github.com/TrinityCore/TrinityCore/commit/c66bcc4c0ef0be3caac8c2e1b2e361de678fb6e4)
This commit is contained in:
hondacrx
2022-04-28 09:54:59 -04:00
parent c15577587f
commit b99f45b472
2 changed files with 51 additions and 5 deletions
+6 -2
View File
@@ -2327,6 +2327,7 @@ namespace Game.Spells
} }
else // aura is dispelled else // aura is dispelled
{ {
Unit unitCaster = m_caster.ToUnit();
if (unitCaster != null) if (unitCaster != null)
unitCaster.RemoveChannelObject(targetInfo.TargetGUID); unitCaster.RemoveChannelObject(targetInfo.TargetGUID);
continue; continue;
@@ -4465,7 +4466,6 @@ namespace Game.Spells
corpseTarget = pCorpseTarget; corpseTarget = pCorpseTarget;
destTarget = m_destTargets[spellEffectInfo.EffectIndex].Position; destTarget = m_destTargets[spellEffectInfo.EffectIndex].Position;
effectInfo = spellEffectInfo; effectInfo = spellEffectInfo;
unitCaster = m_originalCaster ? m_originalCaster : m_caster.ToUnit();
damage = CalculateDamage(spellEffectInfo, unitTarget, out _variance); damage = CalculateDamage(spellEffectInfo, unitTarget, out _variance);
@@ -7042,6 +7042,11 @@ namespace Game.Spells
m_spellInfo.HasAttribute(SpellAttr8.AuraSendAmount) || m_spellInfo.HasHitDelay() || (m_triggeredByAuraSpell == null && !IsTriggered()); m_spellInfo.HasAttribute(SpellAttr8.AuraSendAmount) || m_spellInfo.HasHitDelay() || (m_triggeredByAuraSpell == null && !IsTriggered());
} }
public Unit GetUnitCasterForEffectHandlers()
{
return m_originalCaster != null ? m_originalCaster : m_caster.ToUnit();
}
bool IsValidDeadOrAliveTarget(Unit target) bool IsValidDeadOrAliveTarget(Unit target)
{ {
if (target.IsAlive()) if (target.IsAlive())
@@ -7846,7 +7851,6 @@ namespace Game.Spells
SpellEffectHandleMode effectHandleMode; SpellEffectHandleMode effectHandleMode;
public SpellEffectInfo effectInfo; public SpellEffectInfo effectInfo;
// used in effects handlers // used in effects handlers
Unit unitCaster;
internal UnitAura spellAura; internal UnitAura spellAura;
internal DynObjAura dynObjAura; internal DynObjAura dynObjAura;
+45 -3
View File
@@ -112,7 +112,7 @@ namespace Game.Spells
data.SpellID = m_spellInfo.Id; data.SpellID = m_spellInfo.Id;
m_caster.SendMessageToSet(data, true); m_caster.SendMessageToSet(data, true);
Unit.Kill(unitCaster, unitTarget, false); Unit.Kill(GetUnitCasterForEffectHandlers(), unitTarget, false);
} }
[SpellEffectHandler(SpellEffectName.EnvironmentalDamage)] [SpellEffectHandler(SpellEffectName.EnvironmentalDamage)]
@@ -129,6 +129,7 @@ namespace Game.Spells
unitTarget.ToPlayer().EnvironmentalDamage(EnviromentalDamage.Fire, (uint)damage); unitTarget.ToPlayer().EnvironmentalDamage(EnviromentalDamage.Fire, (uint)damage);
else else
{ {
Unit unitCaster = GetUnitCasterForEffectHandlers();
DamageInfo damageInfo = new(unitCaster, unitTarget, (uint)damage, m_spellInfo, m_spellInfo.GetSchoolMask(), DamageEffectType.SpellDirect, WeaponAttackType.BaseAttack); DamageInfo damageInfo = new(unitCaster, unitTarget, (uint)damage, m_spellInfo, m_spellInfo.GetSchoolMask(), DamageEffectType.SpellDirect, WeaponAttackType.BaseAttack);
Unit.CalcAbsorbResist(damageInfo); Unit.CalcAbsorbResist(damageInfo);
@@ -163,6 +164,7 @@ namespace Game.Spells
damage /= (int)count; damage /= (int)count;
} }
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster != null && apply_direct_bonus) if (unitCaster != null && apply_direct_bonus)
{ {
uint bonus = unitCaster.SpellDamageBonusDone(unitTarget, m_spellInfo, (uint)damage, DamageEffectType.SpellDirect, effectInfo); uint bonus = unitCaster.SpellDamageBonusDone(unitTarget, m_spellInfo, (uint)damage, DamageEffectType.SpellDirect, effectInfo);
@@ -472,6 +474,7 @@ namespace Game.Spells
void CalculateJumpSpeeds(SpellEffectInfo effInfo, float dist, out float speedXY, out float speedZ) void CalculateJumpSpeeds(SpellEffectInfo effInfo, float dist, out float speedXY, out float speedZ)
{ {
Unit unitCaster = GetUnitCasterForEffectHandlers();
float runSpeed = unitCaster.IsControlledByPlayer() ? SharedConst.playerBaseMoveSpeed[(int)UnitMoveType.Run] : SharedConst.baseMoveSpeed[(int)UnitMoveType.Run]; float runSpeed = unitCaster.IsControlledByPlayer() ? SharedConst.playerBaseMoveSpeed[(int)UnitMoveType.Run] : SharedConst.baseMoveSpeed[(int)UnitMoveType.Run];
Creature creature = unitCaster.ToCreature(); Creature creature = unitCaster.ToCreature();
if (creature != null) if (creature != null)
@@ -504,6 +507,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.LaunchTarget) if (effectHandleMode != SpellEffectHandleMode.LaunchTarget)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -527,6 +531,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.Launch) if (effectHandleMode != SpellEffectHandleMode.Launch)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -670,6 +675,7 @@ namespace Game.Spells
if (unitTarget == null || !unitTarget.IsAlive() || unitTarget.GetPowerType() != powerType || damage < 0) if (unitTarget == null || !unitTarget.IsAlive() || unitTarget.GetPowerType() != powerType || damage < 0)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
// add spell damage bonus // add spell damage bonus
if (unitCaster != null) if (unitCaster != null)
{ {
@@ -755,7 +761,7 @@ namespace Game.Spells
int newDamage = -(unitTarget.ModifyPower(powerType, -damage)); int newDamage = -(unitTarget.ModifyPower(powerType, -damage));
// NO - Not a typo - EffectPowerBurn uses effect value multiplier - not effect damage multiplier // NO - Not a typo - EffectPowerBurn uses effect value multiplier - not effect damage multiplier
float dmgMultiplier = effectInfo.CalcValueMultiplier(unitCaster, this); float dmgMultiplier = effectInfo.CalcValueMultiplier(GetUnitCasterForEffectHandlers(), this);
// add log data before multiplication (need power amount, not damage) // add log data before multiplication (need power amount, not damage)
ExecuteLogEffectTakeTargetPower(effectInfo.Effect, unitTarget, powerType, (uint)newDamage, 0.0f); ExecuteLogEffectTakeTargetPower(effectInfo.Effect, unitTarget, powerType, (uint)newDamage, 0.0f);
@@ -774,6 +780,8 @@ namespace Game.Spells
if (unitTarget == null || !unitTarget.IsAlive() || damage < 0) if (unitTarget == null || !unitTarget.IsAlive() || damage < 0)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
// Skip if m_originalCaster not available // Skip if m_originalCaster not available
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -823,6 +831,7 @@ namespace Game.Spells
return; return;
uint heal = (uint)unitTarget.CountPctFromMaxHealth(damage); uint heal = (uint)unitTarget.CountPctFromMaxHealth(damage);
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster) if (unitCaster)
{ {
heal = unitCaster.SpellHealingBonusDone(unitTarget, m_spellInfo, heal, DamageEffectType.Heal, effectInfo); heal = unitCaster.SpellHealingBonusDone(unitTarget, m_spellInfo, heal, DamageEffectType.Heal, effectInfo);
@@ -841,6 +850,7 @@ namespace Game.Spells
if (unitTarget == null || !unitTarget.IsAlive() || damage < 0) if (unitTarget == null || !unitTarget.IsAlive() || damage < 0)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
uint heal = (uint)damage; uint heal = (uint)damage;
if (unitCaster) if (unitCaster)
heal = unitCaster.SpellHealingBonusDone(unitTarget, m_spellInfo, heal, DamageEffectType.Heal, effectInfo); heal = unitCaster.SpellHealingBonusDone(unitTarget, m_spellInfo, heal, DamageEffectType.Heal, effectInfo);
@@ -861,6 +871,7 @@ namespace Game.Spells
if (unitTarget == null || !unitTarget.IsAlive() || damage < 0) if (unitTarget == null || !unitTarget.IsAlive() || damage < 0)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
uint bonus = 0; uint bonus = 0;
if (unitCaster != null) if (unitCaster != null)
unitCaster.SpellDamageBonusDone(unitTarget, m_spellInfo, (uint)damage, DamageEffectType.SpellDirect, effectInfo); unitCaster.SpellDamageBonusDone(unitTarget, m_spellInfo, (uint)damage, DamageEffectType.SpellDirect, effectInfo);
@@ -1052,6 +1063,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.Hit) if (effectHandleMode != SpellEffectHandleMode.Hit)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -1099,6 +1111,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.HitTarget) if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null || unitTarget == null) if (unitCaster == null || unitTarget == null)
return; return;
@@ -1144,6 +1157,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.HitTarget) if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null || unitTarget == null) if (unitCaster == null || unitTarget == null)
return; return;
@@ -1522,6 +1536,8 @@ namespace Game.Spells
int duration = m_spellInfo.CalcDuration(caster); int duration = m_spellInfo.CalcDuration(caster);
Unit unitCaster = GetUnitCasterForEffectHandlers();
TempSummon summon = null; TempSummon summon = null;
// determine how many units should be summoned // determine how many units should be summoned
@@ -2203,6 +2219,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.HitTarget) if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null || !unitCaster.GetPetGUID().IsEmpty()) if (unitCaster == null || !unitCaster.GetPetGUID().IsEmpty())
return; return;
@@ -2258,6 +2275,8 @@ namespace Game.Spells
return; return;
Player owner = null; Player owner = null;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster != null) if (unitCaster != null)
{ {
owner = unitCaster.ToPlayer(); owner = unitCaster.ToPlayer();
@@ -2369,6 +2388,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.HitTarget) if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -2412,6 +2432,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.LaunchTarget) if (effectHandleMode != SpellEffectHandleMode.LaunchTarget)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -2539,6 +2560,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.HitTarget) if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null || !unitCaster.IsAlive()) if (unitCaster == null || !unitCaster.IsAlive())
return; return;
@@ -2557,6 +2579,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.HitTarget) if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -2597,6 +2620,7 @@ namespace Game.Spells
|| (spell.GetState() == SpellState.Preparing && spell.GetCastTime() > 0.0f)) || (spell.GetState() == SpellState.Preparing && spell.GetCastTime() > 0.0f))
&& curSpellInfo.CanBeInterrupted(m_caster, unitTarget)) && curSpellInfo.CanBeInterrupted(m_caster, unitTarget))
{ {
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster != null) if (unitCaster != null)
{ {
int duration = m_spellInfo.GetDuration(); int duration = m_spellInfo.GetDuration();
@@ -2681,8 +2705,9 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.HitTarget) if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return; return;
// @todo we must implement hunter pet summon at login there (spell 6962) Unit unitCaster = GetUnitCasterForEffectHandlers();
// @todo we must implement hunter pet summon at login there (spell 6962)
/// @todo: move this to scripts /// @todo: move this to scripts
switch (m_spellInfo.SpellFamilyName) switch (m_spellInfo.SpellFamilyName)
{ {
@@ -3016,6 +3041,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.HitTarget) if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -3374,6 +3400,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.Hit) if (effectHandleMode != SpellEffectHandleMode.Hit)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -3565,6 +3592,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.Hit) if (effectHandleMode != SpellEffectHandleMode.Hit)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -3698,6 +3726,7 @@ namespace Game.Spells
if (unitTarget == null) if (unitTarget == null)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -3755,6 +3784,7 @@ namespace Game.Spells
if (destTarget == null) if (destTarget == null)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -4097,6 +4127,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.Hit) if (effectHandleMode != SpellEffectHandleMode.Hit)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -4199,6 +4230,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.HitTarget) if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null || unitTarget == null) if (unitCaster == null || unitTarget == null)
return; return;
@@ -4211,6 +4243,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.Hit) if (effectHandleMode != SpellEffectHandleMode.Hit)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -4661,6 +4694,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.HitTarget) if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -4710,6 +4744,7 @@ namespace Game.Spells
void SummonGuardian(SpellEffectInfo effect, uint entry, SummonPropertiesRecord properties, uint numGuardians, ObjectGuid privateObjectOwner) void SummonGuardian(SpellEffectInfo effect, uint entry, SummonPropertiesRecord properties, uint numGuardians, ObjectGuid privateObjectOwner)
{ {
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -5138,6 +5173,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.Hit) if (effectHandleMode != SpellEffectHandleMode.Hit)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null || !m_targets.HasDst()) if (unitCaster == null || !m_targets.HasDst())
return; return;
@@ -5210,6 +5246,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.Hit) if (effectHandleMode != SpellEffectHandleMode.Hit)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null || !m_targets.HasDst()) if (unitCaster == null || !m_targets.HasDst())
return; return;
@@ -5547,6 +5584,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.Hit) if (effectHandleMode != SpellEffectHandleMode.Hit)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (!unitCaster || !m_targets.HasDst()) if (!unitCaster || !m_targets.HasDst())
return; return;
@@ -5565,6 +5603,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.Hit) if (effectHandleMode != SpellEffectHandleMode.Hit)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (!unitCaster || !m_targets.HasDst()) if (!unitCaster || !m_targets.HasDst())
return; return;
@@ -5613,6 +5652,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.Launch) if (effectHandleMode != SpellEffectHandleMode.Launch)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;
@@ -5710,6 +5750,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.Hit) if (effectHandleMode != SpellEffectHandleMode.Hit)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null || unitTarget == null || !unitTarget.IsPlayer()) if (unitCaster == null || unitTarget == null || !unitTarget.IsPlayer())
return; return;
@@ -5722,6 +5763,7 @@ namespace Game.Spells
if (effectHandleMode != SpellEffectHandleMode.Hit) if (effectHandleMode != SpellEffectHandleMode.Hit)
return; return;
Unit unitCaster = GetUnitCasterForEffectHandlers();
if (unitCaster == null) if (unitCaster == null)
return; return;