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
+1 -1
View File
@@ -2650,7 +2650,7 @@ namespace Game.Entities
uint split_absorb = 0;
DealDamageMods(caster, ref splitDamage, ref split_absorb);
SpellNonMeleeDamage log = new SpellNonMeleeDamage(this, caster, itr.GetSpellInfo(), itr.GetBase().GetSpellXSpellVisualId(), damageInfo.GetSchoolMask(), itr.GetBase().GetCastGUID());
SpellNonMeleeDamage log = new SpellNonMeleeDamage(this, caster, itr.GetSpellInfo(), itr.GetBase().GetSpellVisual(), damageInfo.GetSchoolMask(), itr.GetBase().GetCastGUID());
CleanDamage cleanDamage = new CleanDamage(splitDamage, 0, WeaponAttackType.BaseAttack, MeleeHitOutcome.Normal);
DealDamage(caster, splitDamage, cleanDamage, DamageEffectType.Direct, damageInfo.GetSchoolMask(), itr.GetSpellInfo(), false);
log.damage = splitDamage;
+3 -3
View File
@@ -450,12 +450,12 @@ namespace Game.Entities
public class SpellNonMeleeDamage
{
public SpellNonMeleeDamage(Unit _attacker, Unit _target, SpellInfo _spellInfo, uint _SpellXSpellVisualID, SpellSchoolMask _schoolMask, ObjectGuid _castId = default)
public SpellNonMeleeDamage(Unit _attacker, Unit _target, SpellInfo _spellInfo, SpellCastVisual spellVisual, SpellSchoolMask _schoolMask, ObjectGuid _castId = default)
{
target = _target;
attacker = _attacker;
Spell = _spellInfo;
SpellXSpellVisualID = _SpellXSpellVisualID;
SpellVisual = spellVisual;
schoolMask = _schoolMask;
castId = _castId;
preHitHealth = (uint)_target.GetHealth();
@@ -465,7 +465,7 @@ namespace Game.Entities
public Unit attacker;
public ObjectGuid castId;
public SpellInfo Spell;
public uint SpellXSpellVisualID;
public SpellCastVisual SpellVisual;
public uint damage;
public uint originalDamage;
public SpellSchoolMask schoolMask;
+2 -2
View File
@@ -2495,7 +2495,7 @@ namespace Game.Entities
packet.CasterGUID = log.attacker.GetGUID();
packet.CastID = log.castId;
packet.SpellID = (int)(log.Spell != null ? log.Spell.Id : 0);
packet.Visual.SpellXSpellVisualID = log.SpellXSpellVisualID;
packet.Visual = log.SpellVisual;
packet.Damage = (int)log.damage;
packet.OriginalDamage = (int)log.originalDamage;
if (log.damage > log.preHitHealth)
@@ -4273,7 +4273,7 @@ namespace Game.Entities
{
Unit caster = aura.GetCaster();
if (caster && caster.IsTypeId(TypeId.Player))
Spell.SendCastResult(caster.ToPlayer(), aura.GetSpellInfo(), aura.GetSpellXSpellVisualId(), aura.GetCastGUID(), SpellCastResult.AuraBounced);
Spell.SendCastResult(caster.ToPlayer(), aura.GetSpellInfo(), aura.GetSpellVisual(), aura.GetCastGUID(), SpellCastResult.AuraBounced);
}
aura.Remove();
+2 -2
View File
@@ -2674,10 +2674,10 @@ namespace Game.Entities
SetUpdateFieldValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.ChannelData)._value.SpellID, channelSpellId);
}
public uint GetChannelSpellXSpellVisualId() { return ((UnitChannel)m_unitData.ChannelData).SpellXSpellVisualID; }
public void SetChannelSpellXSpellVisualId(uint channelSpellXSpellVisualId)
public void SetChannelSpellXSpellVisualId(SpellCastVisual channelVisual)
{
UnitChannel unitChannel = m_unitData.ModifyValue(m_unitData.ChannelData);
SetUpdateFieldValue(ref unitChannel.SpellXSpellVisualID, channelSpellXSpellVisualId);
SetUpdateFieldValue(ref unitChannel.SpellXSpellVisualID, channelVisual.SpellXSpellVisualID);
}
public void AddChannelObject(ObjectGuid guid) { AddDynamicUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.ChannelObjects), guid); }
public void SetChannelObject(int slot, ObjectGuid guid) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.ChannelObjects, slot), guid); }