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:
@@ -78,16 +78,7 @@ namespace Game.Entities
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static AreaTrigger CreateAreaTrigger(uint spellMiscId, Unit caster, Unit target, SpellInfo spell, Position pos, int duration, uint spellXSpellVisualId, ObjectGuid castId = default, AuraEffect aurEff = null)
|
bool Create(uint spellMiscId, Unit caster, Unit target, SpellInfo spell, Position pos, int duration, SpellCastVisual spellVisual, ObjectGuid castId, AuraEffect aurEff)
|
||||||
{
|
|
||||||
AreaTrigger at = new AreaTrigger();
|
|
||||||
if (!at.Create(spellMiscId, caster, target, spell, pos, duration, spellXSpellVisualId, castId, aurEff))
|
|
||||||
return null;
|
|
||||||
|
|
||||||
return at;
|
|
||||||
}
|
|
||||||
|
|
||||||
unsafe bool Create(uint spellMiscId, Unit caster, Unit target, SpellInfo spell, Position pos, int duration, uint spellXSpellVisualId, ObjectGuid castId, AuraEffect aurEff)
|
|
||||||
{
|
{
|
||||||
_targetGuid = target ? target.GetGUID() : ObjectGuid.Empty;
|
_targetGuid = target ? target.GetGUID() : ObjectGuid.Empty;
|
||||||
_aurEff = aurEff;
|
_aurEff = aurEff;
|
||||||
@@ -119,7 +110,7 @@ namespace Game.Entities
|
|||||||
|
|
||||||
SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.SpellID), spell.Id);
|
SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.SpellID), spell.Id);
|
||||||
SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.SpellForVisuals), spell.Id);
|
SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.SpellForVisuals), spell.Id);
|
||||||
SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.SpellXSpellVisualID), spellXSpellVisualId);
|
SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.SpellXSpellVisualID), spellVisual.SpellXSpellVisualID);
|
||||||
SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.TimeToTargetScale), GetMiscTemplate().TimeToTargetScale != 0 ? GetMiscTemplate().TimeToTargetScale : m_areaTriggerData.Duration);
|
SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.TimeToTargetScale), GetMiscTemplate().TimeToTargetScale != 0 ? GetMiscTemplate().TimeToTargetScale : m_areaTriggerData.Duration);
|
||||||
SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.BoundsRadius2D), GetTemplate().MaxSearchRadius);
|
SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.BoundsRadius2D), GetTemplate().MaxSearchRadius);
|
||||||
SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.DecalPropertiesID), GetMiscTemplate().DecalPropertiesId);
|
SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.DecalPropertiesID), GetMiscTemplate().DecalPropertiesId);
|
||||||
@@ -138,10 +129,13 @@ namespace Game.Entities
|
|||||||
Vector2 point = new Vector2(GetMiscTemplate().ExtraScale.Structured.Z, GetMiscTemplate().ExtraScale.Structured.W);
|
Vector2 point = new Vector2(GetMiscTemplate().ExtraScale.Structured.Z, GetMiscTemplate().ExtraScale.Structured.W);
|
||||||
SetUpdateFieldValue(ref extraScaleCurve.ModifyValue(extraScaleCurve.Points, 1), point);
|
SetUpdateFieldValue(ref extraScaleCurve.ModifyValue(extraScaleCurve.Points, 1), point);
|
||||||
}
|
}
|
||||||
if (GetMiscTemplate().ExtraScale.Raw.Data[5] != 0)
|
unsafe
|
||||||
SetUpdateFieldValue(extraScaleCurve.ModifyValue(extraScaleCurve.ParameterCurve), GetMiscTemplate().ExtraScale.Raw.Data[5]);
|
{
|
||||||
if (GetMiscTemplate().ExtraScale.Structured.OverrideActive != 0)
|
if (GetMiscTemplate().ExtraScale.Raw.Data[5] != 0)
|
||||||
SetUpdateFieldValue(extraScaleCurve.ModifyValue(extraScaleCurve.OverrideActive), GetMiscTemplate().ExtraScale.Structured.OverrideActive != 0 ? true : false);
|
SetUpdateFieldValue(extraScaleCurve.ModifyValue(extraScaleCurve.ParameterCurve), GetMiscTemplate().ExtraScale.Raw.Data[5]);
|
||||||
|
if (GetMiscTemplate().ExtraScale.Structured.OverrideActive != 0)
|
||||||
|
SetUpdateFieldValue(extraScaleCurve.ModifyValue(extraScaleCurve.OverrideActive), GetMiscTemplate().ExtraScale.Structured.OverrideActive != 0 ? true : false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
PhasingHandler.InheritPhaseShift(this, caster);
|
PhasingHandler.InheritPhaseShift(this, caster);
|
||||||
@@ -203,6 +197,15 @@ namespace Game.Entities
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static AreaTrigger CreateAreaTrigger(uint spellMiscId, Unit caster, Unit target, SpellInfo spell, Position pos, int duration, SpellCastVisual spellVisual, ObjectGuid castId = default, AuraEffect aurEff = null)
|
||||||
|
{
|
||||||
|
AreaTrigger at = new AreaTrigger();
|
||||||
|
if (!at.Create(spellMiscId, caster, target, spell, pos, duration, spellVisual, castId, aurEff))
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return at;
|
||||||
|
}
|
||||||
|
|
||||||
public override void Update(uint diff)
|
public override void Update(uint diff)
|
||||||
{
|
{
|
||||||
base.Update(diff);
|
base.Update(diff);
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
using Framework.Constants;
|
using Framework.Constants;
|
||||||
using Game.Spells;
|
using Game.Spells;
|
||||||
using Game.Networking;
|
using Game.Networking;
|
||||||
|
using Game.Networking.Packets;
|
||||||
|
|
||||||
namespace Game.Entities
|
namespace Game.Entities
|
||||||
{
|
{
|
||||||
@@ -76,7 +77,7 @@ namespace Game.Entities
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool CreateDynamicObject(ulong guidlow, Unit caster, SpellInfo spell, Position pos, float radius, DynamicObjectType type, uint spellXSpellVisualId)
|
public bool CreateDynamicObject(ulong guidlow, Unit caster, SpellInfo spell, Position pos, float radius, DynamicObjectType type, SpellCastVisual spellVisual)
|
||||||
{
|
{
|
||||||
SetMap(caster.GetMap());
|
SetMap(caster.GetMap());
|
||||||
Relocate(pos);
|
Relocate(pos);
|
||||||
@@ -94,7 +95,7 @@ namespace Game.Entities
|
|||||||
|
|
||||||
SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.Caster), caster.GetGUID());
|
SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.Caster), caster.GetGUID());
|
||||||
SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.Type), (byte)type);
|
SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.Type), (byte)type);
|
||||||
SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.SpellXSpellVisualID), spellXSpellVisualId);
|
SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.SpellXSpellVisualID), spellVisual.SpellXSpellVisualID);
|
||||||
SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.SpellID), spell.Id);
|
SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.SpellID), spell.Id);
|
||||||
SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.Radius), radius);
|
SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.Radius), radius);
|
||||||
SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.CastTime), GameTime.GetGameTimeMS());
|
SetUpdateFieldValue(m_values.ModifyValue(m_dynamicObjectData).ModifyValue(m_dynamicObjectData.CastTime), GameTime.GetGameTimeMS());
|
||||||
|
|||||||
@@ -2650,7 +2650,7 @@ namespace Game.Entities
|
|||||||
uint split_absorb = 0;
|
uint split_absorb = 0;
|
||||||
DealDamageMods(caster, ref splitDamage, ref split_absorb);
|
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);
|
CleanDamage cleanDamage = new CleanDamage(splitDamage, 0, WeaponAttackType.BaseAttack, MeleeHitOutcome.Normal);
|
||||||
DealDamage(caster, splitDamage, cleanDamage, DamageEffectType.Direct, damageInfo.GetSchoolMask(), itr.GetSpellInfo(), false);
|
DealDamage(caster, splitDamage, cleanDamage, DamageEffectType.Direct, damageInfo.GetSchoolMask(), itr.GetSpellInfo(), false);
|
||||||
log.damage = splitDamage;
|
log.damage = splitDamage;
|
||||||
|
|||||||
@@ -450,12 +450,12 @@ namespace Game.Entities
|
|||||||
|
|
||||||
public class SpellNonMeleeDamage
|
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;
|
target = _target;
|
||||||
attacker = _attacker;
|
attacker = _attacker;
|
||||||
Spell = _spellInfo;
|
Spell = _spellInfo;
|
||||||
SpellXSpellVisualID = _SpellXSpellVisualID;
|
SpellVisual = spellVisual;
|
||||||
schoolMask = _schoolMask;
|
schoolMask = _schoolMask;
|
||||||
castId = _castId;
|
castId = _castId;
|
||||||
preHitHealth = (uint)_target.GetHealth();
|
preHitHealth = (uint)_target.GetHealth();
|
||||||
@@ -465,7 +465,7 @@ namespace Game.Entities
|
|||||||
public Unit attacker;
|
public Unit attacker;
|
||||||
public ObjectGuid castId;
|
public ObjectGuid castId;
|
||||||
public SpellInfo Spell;
|
public SpellInfo Spell;
|
||||||
public uint SpellXSpellVisualID;
|
public SpellCastVisual SpellVisual;
|
||||||
public uint damage;
|
public uint damage;
|
||||||
public uint originalDamage;
|
public uint originalDamage;
|
||||||
public SpellSchoolMask schoolMask;
|
public SpellSchoolMask schoolMask;
|
||||||
|
|||||||
@@ -2495,7 +2495,7 @@ namespace Game.Entities
|
|||||||
packet.CasterGUID = log.attacker.GetGUID();
|
packet.CasterGUID = log.attacker.GetGUID();
|
||||||
packet.CastID = log.castId;
|
packet.CastID = log.castId;
|
||||||
packet.SpellID = (int)(log.Spell != null ? log.Spell.Id : 0);
|
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.Damage = (int)log.damage;
|
||||||
packet.OriginalDamage = (int)log.originalDamage;
|
packet.OriginalDamage = (int)log.originalDamage;
|
||||||
if (log.damage > log.preHitHealth)
|
if (log.damage > log.preHitHealth)
|
||||||
@@ -4273,7 +4273,7 @@ namespace Game.Entities
|
|||||||
{
|
{
|
||||||
Unit caster = aura.GetCaster();
|
Unit caster = aura.GetCaster();
|
||||||
if (caster && caster.IsTypeId(TypeId.Player))
|
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();
|
aura.Remove();
|
||||||
|
|||||||
@@ -2674,10 +2674,10 @@ namespace Game.Entities
|
|||||||
SetUpdateFieldValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.ChannelData)._value.SpellID, channelSpellId);
|
SetUpdateFieldValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.ChannelData)._value.SpellID, channelSpellId);
|
||||||
}
|
}
|
||||||
public uint GetChannelSpellXSpellVisualId() { return ((UnitChannel)m_unitData.ChannelData).SpellXSpellVisualID; }
|
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);
|
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 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); }
|
public void SetChannelObject(int slot, ObjectGuid guid) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.ChannelObjects, slot), guid); }
|
||||||
|
|||||||
@@ -1354,6 +1354,12 @@ namespace Game.Networking.Packets
|
|||||||
public uint SpellXSpellVisualID;
|
public uint SpellXSpellVisualID;
|
||||||
public int ScriptVisualID;
|
public int ScriptVisualID;
|
||||||
|
|
||||||
|
public SpellCastVisual(uint spellXSpellVisualID, int scriptVisualID)
|
||||||
|
{
|
||||||
|
SpellXSpellVisualID = spellXSpellVisualID;
|
||||||
|
ScriptVisualID = scriptVisualID;
|
||||||
|
}
|
||||||
|
|
||||||
public void Read(WorldPacket data)
|
public void Read(WorldPacket data)
|
||||||
{
|
{
|
||||||
SpellXSpellVisualID = data.ReadUInt32();
|
SpellXSpellVisualID = data.ReadUInt32();
|
||||||
|
|||||||
@@ -213,7 +213,7 @@ namespace Game.Spells
|
|||||||
AuraDataInfo auraData = auraInfo.AuraData.Value;
|
AuraDataInfo auraData = auraInfo.AuraData.Value;
|
||||||
auraData.CastID = aura.GetCastGUID();
|
auraData.CastID = aura.GetCastGUID();
|
||||||
auraData.SpellID = (int)aura.GetId();
|
auraData.SpellID = (int)aura.GetId();
|
||||||
auraData.Visual.SpellXSpellVisualID = aura.GetSpellXSpellVisualId();
|
auraData.Visual= aura.GetSpellVisual();
|
||||||
auraData.Flags = GetFlags();
|
auraData.Flags = GetFlags();
|
||||||
if (aura.GetMaxDuration() > 0 && !aura.GetSpellInfo().HasAttribute(SpellAttr5.HideDuration))
|
if (aura.GetMaxDuration() > 0 && !aura.GetSpellInfo().HasAttribute(SpellAttr5.HideDuration))
|
||||||
auraData.Flags |= AuraFlags.Duration;
|
auraData.Flags |= AuraFlags.Duration;
|
||||||
@@ -295,7 +295,7 @@ namespace Game.Spells
|
|||||||
m_castItemGuid = castItem != null ? castItem.GetGUID() : castItemGuid;
|
m_castItemGuid = castItem != null ? castItem.GetGUID() : castItemGuid;
|
||||||
m_castItemId = castItem != null ? castItem.GetEntry() : castItemId;
|
m_castItemId = castItem != null ? castItem.GetEntry() : castItemId;
|
||||||
m_castItemLevel = castItemLevel;
|
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_applyTime = Time.UnixTime;
|
||||||
m_owner = owner;
|
m_owner = owner;
|
||||||
m_timeCla = 0;
|
m_timeCla = 0;
|
||||||
@@ -2246,7 +2246,7 @@ namespace Game.Spells
|
|||||||
public ObjectGuid GetCastItemGUID() { return m_castItemGuid; }
|
public ObjectGuid GetCastItemGUID() { return m_castItemGuid; }
|
||||||
public uint GetCastItemId() { return m_castItemId; }
|
public uint GetCastItemId() { return m_castItemId; }
|
||||||
public int GetCastItemLevel() { return m_castItemLevel; }
|
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 WorldObject GetOwner() { return m_owner; }
|
||||||
public Unit GetUnitOwner()
|
public Unit GetUnitOwner()
|
||||||
{
|
{
|
||||||
@@ -2483,7 +2483,7 @@ namespace Game.Spells
|
|||||||
ObjectGuid m_castItemGuid;
|
ObjectGuid m_castItemGuid;
|
||||||
uint m_castItemId;
|
uint m_castItemId;
|
||||||
int m_castItemLevel;
|
int m_castItemLevel;
|
||||||
uint m_spellXSpellVisualId;
|
SpellCastVisual m_spellVisual;
|
||||||
long m_applyTime;
|
long m_applyTime;
|
||||||
WorldObject m_owner;
|
WorldObject m_owner;
|
||||||
|
|
||||||
|
|||||||
@@ -5602,7 +5602,7 @@ namespace Game.Spells
|
|||||||
uint resist = damageInfo.GetResist();
|
uint resist = damageInfo.GetResist();
|
||||||
|
|
||||||
// SendSpellNonMeleeDamageLog expects non-absorbed/non-resisted damage
|
// 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.damage = damage;
|
||||||
log.originalDamage = dmg;
|
log.originalDamage = dmg;
|
||||||
log.absorb = absorb;
|
log.absorb = absorb;
|
||||||
@@ -5895,7 +5895,7 @@ namespace Game.Spells
|
|||||||
|
|
||||||
SpellInfo spellProto = GetSpellInfo();
|
SpellInfo spellProto = GetSpellInfo();
|
||||||
// maybe has to be sent different to client, but not by SMSG_PERIODICAURALOG
|
// 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
|
// no SpellDamageBonus for burn mana
|
||||||
caster.CalculateSpellDamageTaken(damageInfo, (int)(gain * dmgMultiplier), spellProto);
|
caster.CalculateSpellDamageTaken(damageInfo, (int)(gain * dmgMultiplier), spellProto);
|
||||||
|
|
||||||
@@ -5973,7 +5973,7 @@ namespace Game.Spells
|
|||||||
return;
|
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());
|
int damage = (int)target.SpellDamageBonusDone(triggerTarget, GetSpellInfo(), (uint)GetAmount(), DamageEffectType.SpellDirect, GetSpellEffectInfo());
|
||||||
damage = (int)triggerTarget.SpellDamageBonusTaken(target, GetSpellInfo(), (uint)damage, DamageEffectType.SpellDirect, GetSpellEffectInfo());
|
damage = (int)triggerTarget.SpellDamageBonusTaken(target, GetSpellInfo(), (uint)damage, DamageEffectType.SpellDirect, GetSpellEffectInfo());
|
||||||
target.CalculateSpellDamageTaken(damageInfo, damage, GetSpellInfo());
|
target.CalculateSpellDamageTaken(damageInfo, damage, GetSpellInfo());
|
||||||
@@ -6114,7 +6114,7 @@ namespace Game.Spells
|
|||||||
|
|
||||||
if (apply)
|
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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
+12
-12
@@ -44,7 +44,7 @@ namespace Game.Spells
|
|||||||
m_preGeneratedPath = new PathGenerator(m_caster);
|
m_preGeneratedPath = new PathGenerator(m_caster);
|
||||||
m_castItemLevel = -1;
|
m_castItemLevel = -1;
|
||||||
m_castId = ObjectGuid.Create(HighGuid.Cast, SpellCastSource.Normal, m_caster.GetMapId(), m_spellInfo.Id, m_caster.GetMap().GenerateLowGuid(HighGuid.Cast));
|
m_castId = ObjectGuid.Create(HighGuid.Cast, SpellCastSource.Normal, m_caster.GetMapId(), m_spellInfo.Id, m_caster.GetMap().GenerateLowGuid(HighGuid.Cast));
|
||||||
m_SpellVisual = caster.GetCastSpellXSpellVisualId(m_spellInfo);
|
m_SpellVisual.SpellXSpellVisualID = caster.GetCastSpellXSpellVisualId(m_spellInfo);
|
||||||
|
|
||||||
m_customError = SpellCustomErrors.None;
|
m_customError = SpellCustomErrors.None;
|
||||||
m_skipCheck = skipcheck;
|
m_skipCheck = skipcheck;
|
||||||
@@ -3525,7 +3525,7 @@ namespace Game.Spells
|
|||||||
result = SpellCastResult.DontReport;
|
result = SpellCastResult.DontReport;
|
||||||
|
|
||||||
CastFailed castFailed = new CastFailed();
|
CastFailed castFailed = new CastFailed();
|
||||||
castFailed.Visual.SpellXSpellVisualID = m_SpellVisual;
|
castFailed.Visual = m_SpellVisual;
|
||||||
FillSpellCastFailedArgs(castFailed, m_castId, m_spellInfo, result, m_customError, param1, param2, m_caster.ToPlayer());
|
FillSpellCastFailedArgs(castFailed, m_castId, m_spellInfo, result, m_customError, param1, param2, m_caster.ToPlayer());
|
||||||
m_caster.ToPlayer().SendPacket(castFailed);
|
m_caster.ToPlayer().SendPacket(castFailed);
|
||||||
}
|
}
|
||||||
@@ -3547,13 +3547,13 @@ namespace Game.Spells
|
|||||||
owner.ToPlayer().SendPacket(petCastFailed);
|
owner.ToPlayer().SendPacket(petCastFailed);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SendCastResult(Player caster, SpellInfo spellInfo, uint spellVisual, ObjectGuid cast_count, SpellCastResult result, SpellCustomErrors customError = SpellCustomErrors.None, uint? param1 = null, uint? param2 = null)
|
public static void SendCastResult(Player caster, SpellInfo spellInfo, SpellCastVisual spellVisual, ObjectGuid cast_count, SpellCastResult result, SpellCustomErrors customError = SpellCustomErrors.None, uint? param1 = null, uint? param2 = null)
|
||||||
{
|
{
|
||||||
if (result == SpellCastResult.SpellCastOk)
|
if (result == SpellCastResult.SpellCastOk)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
CastFailed packet = new CastFailed();
|
CastFailed packet = new CastFailed();
|
||||||
packet.Visual.SpellXSpellVisualID = spellVisual;
|
packet.Visual = spellVisual;
|
||||||
FillSpellCastFailedArgs(packet, cast_count, spellInfo, result, customError, param1, param2, caster);
|
FillSpellCastFailedArgs(packet, cast_count, spellInfo, result, customError, param1, param2, caster);
|
||||||
caster.SendPacket(packet);
|
caster.SendPacket(packet);
|
||||||
}
|
}
|
||||||
@@ -3610,7 +3610,7 @@ namespace Game.Spells
|
|||||||
castData.CastID = m_castId;
|
castData.CastID = m_castId;
|
||||||
castData.OriginalCastID = m_originalCastId;
|
castData.OriginalCastID = m_originalCastId;
|
||||||
castData.SpellID = (int)m_spellInfo.Id;
|
castData.SpellID = (int)m_spellInfo.Id;
|
||||||
castData.Visual.SpellXSpellVisualID = m_SpellVisual;
|
castData.Visual = m_SpellVisual;
|
||||||
castData.CastFlags = castFlags;
|
castData.CastFlags = castFlags;
|
||||||
castData.CastFlagsEx = m_castFlagsEx;
|
castData.CastFlagsEx = m_castFlagsEx;
|
||||||
castData.CastTime = (uint)m_casttime;
|
castData.CastTime = (uint)m_casttime;
|
||||||
@@ -3724,7 +3724,7 @@ namespace Game.Spells
|
|||||||
castData.CastID = m_castId;
|
castData.CastID = m_castId;
|
||||||
castData.OriginalCastID = m_originalCastId;
|
castData.OriginalCastID = m_originalCastId;
|
||||||
castData.SpellID = (int)m_spellInfo.Id;
|
castData.SpellID = (int)m_spellInfo.Id;
|
||||||
castData.Visual.SpellXSpellVisualID = m_SpellVisual;
|
castData.Visual = m_SpellVisual;
|
||||||
castData.CastFlags = castFlags;
|
castData.CastFlags = castFlags;
|
||||||
castData.CastFlagsEx = m_castFlagsEx;
|
castData.CastFlagsEx = m_castFlagsEx;
|
||||||
castData.CastTime = Time.GetMSTime();
|
castData.CastTime = Time.GetMSTime();
|
||||||
@@ -4019,7 +4019,7 @@ namespace Game.Spells
|
|||||||
failurePacket.CasterUnit = m_caster.GetGUID();
|
failurePacket.CasterUnit = m_caster.GetGUID();
|
||||||
failurePacket.CastID = m_castId;
|
failurePacket.CastID = m_castId;
|
||||||
failurePacket.SpellID = m_spellInfo.Id;
|
failurePacket.SpellID = m_spellInfo.Id;
|
||||||
failurePacket.Visual.SpellXSpellVisualID = m_SpellVisual;
|
failurePacket.Visual = m_SpellVisual;
|
||||||
failurePacket.Reason = result;
|
failurePacket.Reason = result;
|
||||||
m_caster.SendMessageToSet(failurePacket, true);
|
m_caster.SendMessageToSet(failurePacket, true);
|
||||||
|
|
||||||
@@ -4027,7 +4027,7 @@ namespace Game.Spells
|
|||||||
failedPacket.CasterUnit = m_caster.GetGUID();
|
failedPacket.CasterUnit = m_caster.GetGUID();
|
||||||
failedPacket.CastID = m_castId;
|
failedPacket.CastID = m_castId;
|
||||||
failedPacket.SpellID = m_spellInfo.Id;
|
failedPacket.SpellID = m_spellInfo.Id;
|
||||||
failedPacket.Visual.SpellXSpellVisualID = m_SpellVisual;
|
failedPacket.Visual = m_SpellVisual;
|
||||||
failedPacket.Reason = result;
|
failedPacket.Reason = result;
|
||||||
m_caster.SendMessageToSet(failedPacket, true);
|
m_caster.SendMessageToSet(failedPacket, true);
|
||||||
}
|
}
|
||||||
@@ -4038,7 +4038,7 @@ namespace Game.Spells
|
|||||||
{
|
{
|
||||||
m_caster.ClearChannelObjects();
|
m_caster.ClearChannelObjects();
|
||||||
m_caster.SetChannelSpellId(0);
|
m_caster.SetChannelSpellId(0);
|
||||||
m_caster.SetChannelSpellXSpellVisualId(0);
|
m_caster.SetChannelSpellXSpellVisualId(default);
|
||||||
}
|
}
|
||||||
|
|
||||||
SpellChannelUpdate spellChannelUpdate = new SpellChannelUpdate();
|
SpellChannelUpdate spellChannelUpdate = new SpellChannelUpdate();
|
||||||
@@ -4052,7 +4052,7 @@ namespace Game.Spells
|
|||||||
SpellChannelStart spellChannelStart = new SpellChannelStart();
|
SpellChannelStart spellChannelStart = new SpellChannelStart();
|
||||||
spellChannelStart.CasterGUID = m_caster.GetGUID();
|
spellChannelStart.CasterGUID = m_caster.GetGUID();
|
||||||
spellChannelStart.SpellID = (int)m_spellInfo.Id;
|
spellChannelStart.SpellID = (int)m_spellInfo.Id;
|
||||||
spellChannelStart.Visual.SpellXSpellVisualID = m_SpellVisual;
|
spellChannelStart.Visual = m_SpellVisual;
|
||||||
spellChannelStart.ChannelDuration = duration;
|
spellChannelStart.ChannelDuration = duration;
|
||||||
|
|
||||||
uint schoolImmunityMask = m_caster.GetSchoolImmunityMask();
|
uint schoolImmunityMask = m_caster.GetSchoolImmunityMask();
|
||||||
@@ -6700,7 +6700,7 @@ namespace Game.Spells
|
|||||||
|
|
||||||
bool IsNeedSendToClient()
|
bool IsNeedSendToClient()
|
||||||
{
|
{
|
||||||
return m_SpellVisual != 0 || m_spellInfo.IsChanneled() ||
|
return m_SpellVisual.SpellXSpellVisualID != 0 || m_SpellVisual.ScriptVisualID != 0 || m_spellInfo.IsChanneled() ||
|
||||||
m_spellInfo.HasAttribute(SpellAttr8.AuraSendAmount) || m_spellInfo.HasHitDelay() || (m_triggeredByAuraSpell == null && !IsTriggered());
|
m_spellInfo.HasAttribute(SpellAttr8.AuraSendAmount) || m_spellInfo.HasHitDelay() || (m_triggeredByAuraSpell == null && !IsTriggered());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7404,7 +7404,7 @@ namespace Game.Spells
|
|||||||
public bool m_fromClient;
|
public bool m_fromClient;
|
||||||
public SpellCastFlagsEx m_castFlagsEx;
|
public SpellCastFlagsEx m_castFlagsEx;
|
||||||
public SpellMisc m_misc;
|
public SpellMisc m_misc;
|
||||||
public uint m_SpellVisual;
|
public SpellCastVisual m_SpellVisual;
|
||||||
public SpellCastTargets m_targets;
|
public SpellCastTargets m_targets;
|
||||||
public sbyte m_comboPointGain;
|
public sbyte m_comboPointGain;
|
||||||
public SpellCustomErrors m_customError;
|
public SpellCustomErrors m_customError;
|
||||||
|
|||||||
@@ -556,7 +556,7 @@ namespace Scripts.Spells.Warlock
|
|||||||
if (modOwner)
|
if (modOwner)
|
||||||
modOwner.ApplySpellMod(GetId(), SpellModOp.Cost, ref damage);
|
modOwner.ApplySpellMod(GetId(), SpellModOp.Cost, ref damage);
|
||||||
|
|
||||||
SpellNonMeleeDamage damageInfo = new SpellNonMeleeDamage(caster, caster, GetSpellInfo(), GetAura().GetSpellXSpellVisualId(), GetSpellInfo().SchoolMask, GetAura().GetCastGUID());
|
SpellNonMeleeDamage damageInfo = new SpellNonMeleeDamage(caster, caster, GetSpellInfo(), GetAura().GetSpellVisual(), GetSpellInfo().SchoolMask, GetAura().GetCastGUID());
|
||||||
damageInfo.periodicLog = true;
|
damageInfo.periodicLog = true;
|
||||||
damageInfo.damage = damage;
|
damageInfo.damage = damage;
|
||||||
caster.DealSpellDamage(damageInfo, false);
|
caster.DealSpellDamage(damageInfo, false);
|
||||||
|
|||||||
Reference in New Issue
Block a user