Fixes a Assert with calling GetUnitOwner when aura is a DynObjAura.
Not sure if this is the right fix, or if there is more places it should be changed.
This commit is contained in:
@@ -352,7 +352,7 @@ namespace Game.Spells
|
|||||||
foreach (SpellEffectInfo effect in GetSpellInfo().GetEffects())
|
foreach (SpellEffectInfo effect in GetSpellInfo().GetEffects())
|
||||||
{
|
{
|
||||||
if (effect != null && Convert.ToBoolean(effMask & (1 << (int)effect.EffectIndex)))
|
if (effect != null && Convert.ToBoolean(effMask & (1 << (int)effect.EffectIndex)))
|
||||||
_effects[effect.EffectIndex] = new AuraEffect(this, effect, baseAmount != null ? baseAmount[effect.EffectIndex] : (int?)null, caster);
|
_effects[effect.EffectIndex] = new AuraEffect(this, effect, baseAmount != null ? baseAmount[effect.EffectIndex] : null, caster);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2672,7 +2672,7 @@ namespace Game.Spells
|
|||||||
Cell.VisitAllObjects(GetDynobjOwner(), searcher, radius);
|
Cell.VisitAllObjects(GetDynobjOwner(), searcher, radius);
|
||||||
|
|
||||||
// by design WorldObjectSpellAreaTargetCheck allows not-in-world units (for spells) but for auras it is not acceptable
|
// by design WorldObjectSpellAreaTargetCheck allows not-in-world units (for spells) but for auras it is not acceptable
|
||||||
targetList.RemoveAll(unit => !unit.IsSelfOrInSameMap(GetUnitOwner()));
|
targetList.RemoveAll(unit => !unit.IsSelfOrInSameMap(GetOwner()));
|
||||||
|
|
||||||
foreach (var unit in targetList)
|
foreach (var unit in targetList)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -132,10 +132,10 @@ namespace Game.Spells
|
|||||||
{
|
{
|
||||||
case AuraType.PeriodicDamage:
|
case AuraType.PeriodicDamage:
|
||||||
case AuraType.PeriodicLeech:
|
case AuraType.PeriodicLeech:
|
||||||
_estimatedAmount = caster.SpellDamageBonusDone(GetBase().GetUnitOwner(), GetSpellInfo(), (uint)amount, DamageEffectType.DOT, GetSpellEffectInfo(), stackAmountForBonuses);
|
_estimatedAmount = caster.SpellDamageBonusDone(GetBase().GetOwner().ToUnit(), GetSpellInfo(), (uint)amount, DamageEffectType.DOT, GetSpellEffectInfo(), stackAmountForBonuses);
|
||||||
break;
|
break;
|
||||||
case AuraType.PeriodicHeal:
|
case AuraType.PeriodicHeal:
|
||||||
_estimatedAmount = caster.SpellHealingBonusDone(GetBase().GetUnitOwner(), GetSpellInfo(), (uint)amount, DamageEffectType.DOT, GetSpellEffectInfo(), stackAmountForBonuses);
|
_estimatedAmount = caster.SpellHealingBonusDone(GetBase().GetOwner().ToUnit(), GetSpellInfo(), (uint)amount, DamageEffectType.DOT, GetSpellEffectInfo(), stackAmountForBonuses);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user