Core/Spells: Use new spell visual structure instead of just SpellXSpellVisualID

Port From (https://github.com/TrinityCore/TrinityCore/commit/7f6eef37e61ea3d47bf8028c6e37175ba0a71373)
This commit is contained in:
hondacrx
2020-12-10 10:43:24 -05:00
parent bfcadae2c2
commit cbbdf6d695
11 changed files with 56 additions and 46 deletions
+4 -4
View File
@@ -213,7 +213,7 @@ namespace Game.Spells
AuraDataInfo auraData = auraInfo.AuraData.Value;
auraData.CastID = aura.GetCastGUID();
auraData.SpellID = (int)aura.GetId();
auraData.Visual.SpellXSpellVisualID = aura.GetSpellXSpellVisualId();
auraData.Visual= aura.GetSpellVisual();
auraData.Flags = GetFlags();
if (aura.GetMaxDuration() > 0 && !aura.GetSpellInfo().HasAttribute(SpellAttr5.HideDuration))
auraData.Flags |= AuraFlags.Duration;
@@ -295,7 +295,7 @@ namespace Game.Spells
m_castItemGuid = castItem != null ? castItem.GetGUID() : castItemGuid;
m_castItemId = castItem != null ? castItem.GetEntry() : castItemId;
m_castItemLevel = castItemLevel;
m_spellXSpellVisualId = caster ? caster.GetCastSpellXSpellVisualId(spellproto) : spellproto.GetSpellXSpellVisualId();
m_spellVisual = new SpellCastVisual(caster ? caster.GetCastSpellXSpellVisualId(spellproto) : spellproto.GetSpellXSpellVisualId(), 0);
m_applyTime = Time.UnixTime;
m_owner = owner;
m_timeCla = 0;
@@ -2246,7 +2246,7 @@ namespace Game.Spells
public ObjectGuid GetCastItemGUID() { return m_castItemGuid; }
public uint GetCastItemId() { return m_castItemId; }
public int GetCastItemLevel() { return m_castItemLevel; }
public uint GetSpellXSpellVisualId() { return m_spellXSpellVisualId; }
public SpellCastVisual GetSpellVisual() { return m_spellVisual; }
public WorldObject GetOwner() { return m_owner; }
public Unit GetUnitOwner()
{
@@ -2483,7 +2483,7 @@ namespace Game.Spells
ObjectGuid m_castItemGuid;
uint m_castItemId;
int m_castItemLevel;
uint m_spellXSpellVisualId;
SpellCastVisual m_spellVisual;
long m_applyTime;
WorldObject m_owner;
+4 -4
View File
@@ -5602,7 +5602,7 @@ namespace Game.Spells
uint resist = damageInfo.GetResist();
// SendSpellNonMeleeDamageLog expects non-absorbed/non-resisted damage
SpellNonMeleeDamage log = new SpellNonMeleeDamage(caster, target, GetSpellInfo(), GetBase().GetSpellXSpellVisualId(), GetSpellInfo().GetSchoolMask(), GetBase().GetCastGUID());
SpellNonMeleeDamage log = new SpellNonMeleeDamage(caster, target, GetSpellInfo(), GetBase().GetSpellVisual(), GetSpellInfo().GetSchoolMask(), GetBase().GetCastGUID());
log.damage = damage;
log.originalDamage = dmg;
log.absorb = absorb;
@@ -5895,7 +5895,7 @@ namespace Game.Spells
SpellInfo spellProto = GetSpellInfo();
// maybe has to be sent different to client, but not by SMSG_PERIODICAURALOG
SpellNonMeleeDamage damageInfo = new SpellNonMeleeDamage(caster, target, spellProto, GetBase().GetSpellXSpellVisualId(), spellProto.SchoolMask, GetBase().GetCastGUID());
SpellNonMeleeDamage damageInfo = new SpellNonMeleeDamage(caster, target, spellProto, GetBase().GetSpellVisual(), spellProto.SchoolMask, GetBase().GetCastGUID());
// no SpellDamageBonus for burn mana
caster.CalculateSpellDamageTaken(damageInfo, (int)(gain * dmgMultiplier), spellProto);
@@ -5973,7 +5973,7 @@ namespace Game.Spells
return;
}
SpellNonMeleeDamage damageInfo = new SpellNonMeleeDamage(target, triggerTarget, GetSpellInfo(), GetBase().GetSpellXSpellVisualId(), GetSpellInfo().SchoolMask, GetBase().GetCastGUID());
SpellNonMeleeDamage damageInfo = new SpellNonMeleeDamage(target, triggerTarget, GetSpellInfo(), GetBase().GetSpellVisual(), GetSpellInfo().SchoolMask, GetBase().GetCastGUID());
int damage = (int)target.SpellDamageBonusDone(triggerTarget, GetSpellInfo(), (uint)GetAmount(), DamageEffectType.SpellDirect, GetSpellEffectInfo());
damage = (int)triggerTarget.SpellDamageBonusTaken(target, GetSpellInfo(), (uint)damage, DamageEffectType.SpellDirect, GetSpellEffectInfo());
target.CalculateSpellDamageTaken(damageInfo, damage, GetSpellInfo());
@@ -6114,7 +6114,7 @@ namespace Game.Spells
if (apply)
{
AreaTrigger.CreateAreaTrigger((uint)GetMiscValue(), GetCaster(), target, GetSpellInfo(), target, GetBase().GetDuration(), GetBase().GetSpellXSpellVisualId(), ObjectGuid.Empty, this);
AreaTrigger.CreateAreaTrigger((uint)GetMiscValue(), GetCaster(), target, GetSpellInfo(), target, GetBase().GetDuration(), GetBase().GetSpellVisual(), ObjectGuid.Empty, this);
}
else
{