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:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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); }
|
||||
|
||||
Reference in New Issue
Block a user