Core/Spells: Pass cast item level to triggered spells
Port From (https://github.com/TrinityCore/TrinityCore/commit/8e2d1e328ebec60c76d65651b268ec3ad2ce26fc)
This commit is contained in:
@@ -2323,6 +2323,9 @@ namespace Game.Entities
|
|||||||
spell.SetSpellValue(pair.Key, pair.Value);
|
spell.SetSpellValue(pair.Key, pair.Value);
|
||||||
|
|
||||||
spell.m_CastItem = args.CastItem;
|
spell.m_CastItem = args.CastItem;
|
||||||
|
if (args.OriginalCastItemLevel.HasValue)
|
||||||
|
spell.m_castItemLevel = args.OriginalCastItemLevel.Value;
|
||||||
|
|
||||||
return spell.Prepare(targets.Targets, args.TriggeringAura);
|
return spell.Prepare(targets.Targets, args.TriggeringAura);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5204,7 +5204,7 @@ namespace Game.Entities
|
|||||||
else if (apply)
|
else if (apply)
|
||||||
{
|
{
|
||||||
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
|
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
|
||||||
args.CastItem = artifact;
|
args.SetCastItem(artifact);
|
||||||
if (artifactPowerRank.AuraPointsOverride != 0)
|
if (artifactPowerRank.AuraPointsOverride != 0)
|
||||||
{
|
{
|
||||||
foreach (var spellEffectInfo in spellInfo.GetEffects())
|
foreach (var spellEffectInfo in spellInfo.GetEffects())
|
||||||
|
|||||||
@@ -5491,7 +5491,7 @@ namespace Game.Spells
|
|||||||
if (triggeredSpellInfo != null)
|
if (triggeredSpellInfo != null)
|
||||||
{
|
{
|
||||||
Log.outDebug(LogFilter.Spells, $"AuraEffect.HandleProcTriggerSpellAuraProc: Triggering spell {triggeredSpellInfo.Id} from aura {GetId()} proc");
|
Log.outDebug(LogFilter.Spells, $"AuraEffect.HandleProcTriggerSpellAuraProc: Triggering spell {triggeredSpellInfo.Id} from aura {GetId()} proc");
|
||||||
triggerCaster.CastSpell(triggerTarget, triggeredSpellInfo.Id, new CastSpellExtraArgs(this));
|
triggerCaster.CastSpell(triggerTarget, triggeredSpellInfo.Id, new CastSpellExtraArgs(this).SetTriggeringSpell(eventInfo.GetProcSpell()));
|
||||||
}
|
}
|
||||||
else if (triggerSpellId != 0 && GetAuraType() != AuraType.Dummy)
|
else if (triggerSpellId != 0 && GetAuraType() != AuraType.Dummy)
|
||||||
Log.outError(LogFilter.Spells, $"AuraEffect.HandleProcTriggerSpellAuraProc: Spell {GetId()} has non-existent spell {triggerSpellId} in EffectTriggered[{GetEffIndex()}] and is therefore not triggered.");
|
Log.outError(LogFilter.Spells, $"AuraEffect.HandleProcTriggerSpellAuraProc: Spell {GetId()} has non-existent spell {triggerSpellId} in EffectTriggered[{GetEffIndex()}] and is therefore not triggered.");
|
||||||
@@ -5513,6 +5513,7 @@ namespace Game.Spells
|
|||||||
if (triggeredSpellInfo != null)
|
if (triggeredSpellInfo != null)
|
||||||
{
|
{
|
||||||
CastSpellExtraArgs args = new(this);
|
CastSpellExtraArgs args = new(this);
|
||||||
|
args.SetTriggeringSpell(eventInfo.GetProcSpell());
|
||||||
args.AddSpellMod(SpellValueMod.BasePoint0, GetAmount());
|
args.AddSpellMod(SpellValueMod.BasePoint0, GetAmount());
|
||||||
triggerCaster.CastSpell(triggerTarget, triggerSpellId, args);
|
triggerCaster.CastSpell(triggerTarget, triggerSpellId, args);
|
||||||
Log.outDebug(LogFilter.Spells, "AuraEffect.HandleProcTriggerSpellWithValueAuraProc: Triggering spell {0} with value {1} from aura {2} proc", triggeredSpellInfo.Id, GetAmount(), GetId());
|
Log.outDebug(LogFilter.Spells, "AuraEffect.HandleProcTriggerSpellWithValueAuraProc: Triggering spell {0} with value {1} from aura {2} proc", triggeredSpellInfo.Id, GetAmount(), GetId());
|
||||||
|
|||||||
@@ -2234,7 +2234,7 @@ namespace Game.Spells
|
|||||||
if (CanExecuteTriggersOnHit(effMask, hit.triggeredByAura) && RandomHelper.randChance(hit.chance))
|
if (CanExecuteTriggersOnHit(effMask, hit.triggeredByAura) && RandomHelper.randChance(hit.chance))
|
||||||
{
|
{
|
||||||
m_caster.CastSpell(unit, hit.triggeredSpell.Id, new CastSpellExtraArgs(TriggerCastFlags.FullMask)
|
m_caster.CastSpell(unit, hit.triggeredSpell.Id, new CastSpellExtraArgs(TriggerCastFlags.FullMask)
|
||||||
.SetOriginalCastId(m_castId)
|
.SetTriggeringSpell(this)
|
||||||
.SetCastDifficulty(hit.triggeredSpell.Difficulty));
|
.SetCastDifficulty(hit.triggeredSpell.Difficulty));
|
||||||
Log.outDebug(LogFilter.Spells, "Spell {0} triggered spell {1} by SPELL_AURA_ADD_TARGET_TRIGGER aura", m_spellInfo.Id, hit.triggeredSpell.Id);
|
Log.outDebug(LogFilter.Spells, "Spell {0} triggered spell {1} by SPELL_AURA_ADD_TARGET_TRIGGER aura", m_spellInfo.Id, hit.triggeredSpell.Id);
|
||||||
|
|
||||||
@@ -2268,7 +2268,7 @@ namespace Game.Spells
|
|||||||
if (id < 0)
|
if (id < 0)
|
||||||
unit.RemoveAurasDueToSpell((uint)-id);
|
unit.RemoveAurasDueToSpell((uint)-id);
|
||||||
else
|
else
|
||||||
unit.CastSpell(unit, (uint)id, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetOriginalCaster(m_caster.GetGUID()).SetOriginalCastId(m_castId));
|
unit.CastSpell(unit, (uint)id, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetOriginalCaster(m_caster.GetGUID()).SetTriggeringSpell(this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2860,7 +2860,7 @@ namespace Game.Spells
|
|||||||
unitCaster.RemoveAurasDueToSpell((uint)-spellId);
|
unitCaster.RemoveAurasDueToSpell((uint)-spellId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
m_caster.CastSpell(m_targets.GetUnitTarget() ?? m_caster, (uint)spellId, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetOriginalCastId(m_castId));
|
m_caster.CastSpell(m_targets.GetUnitTarget() ?? m_caster, (uint)spellId, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetTriggeringSpell(this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5215,7 +5215,7 @@ namespace Game.Spells
|
|||||||
{
|
{
|
||||||
pet.CastSpell(pet, 32752, new CastSpellExtraArgs(TriggerCastFlags.FullMask)
|
pet.CastSpell(pet, 32752, new CastSpellExtraArgs(TriggerCastFlags.FullMask)
|
||||||
.SetOriginalCaster(pet.GetGUID())
|
.SetOriginalCaster(pet.GetGUID())
|
||||||
.SetOriginalCastId(m_castId));
|
.SetTriggeringSpell(this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6413,7 +6413,7 @@ namespace Game.Spells
|
|||||||
}
|
}
|
||||||
else if (m_spellInfo.GetEffects().Count > 1)
|
else if (m_spellInfo.GetEffects().Count > 1)
|
||||||
player.CastSpell(player, (uint)m_spellInfo.GetEffect(1).CalcValue(), new CastSpellExtraArgs()
|
player.CastSpell(player, (uint)m_spellInfo.GetEffect(1).CalcValue(), new CastSpellExtraArgs()
|
||||||
.SetOriginalCastId(m_castId)); // move this to anywhere
|
.SetTriggeringSpell(this)); // move this to anywhere
|
||||||
return SpellCastResult.DontReport;
|
return SpellCastResult.DontReport;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8371,7 +8371,7 @@ namespace Game.Spells
|
|||||||
|
|
||||||
// Check for SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER
|
// Check for SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER
|
||||||
if (MissCondition == SpellMissInfo.None && spell.m_spellInfo.HasAttribute(SpellAttr7.InterruptOnlyNonplayer) && !unit.IsPlayer())
|
if (MissCondition == SpellMissInfo.None && spell.m_spellInfo.HasAttribute(SpellAttr7.InterruptOnlyNonplayer) && !unit.IsPlayer())
|
||||||
caster.CastSpell(unit, 32747, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetOriginalCastId(spell.m_castId));
|
caster.CastSpell(unit, 32747, new CastSpellExtraArgs(spell));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_spellHitTarget)
|
if (_spellHitTarget)
|
||||||
@@ -8997,6 +8997,7 @@ namespace Game.Spells
|
|||||||
public ObjectGuid OriginalCaster = ObjectGuid.Empty;
|
public ObjectGuid OriginalCaster = ObjectGuid.Empty;
|
||||||
public Difficulty CastDifficulty;
|
public Difficulty CastDifficulty;
|
||||||
public ObjectGuid OriginalCastId = ObjectGuid.Empty;
|
public ObjectGuid OriginalCastId = ObjectGuid.Empty;
|
||||||
|
public int? OriginalCastItemLevel;
|
||||||
public Dictionary<SpellValueMod, int> SpellValueOverrides = new();
|
public Dictionary<SpellValueMod, int> SpellValueOverrides = new();
|
||||||
|
|
||||||
public CastSpellExtraArgs() { }
|
public CastSpellExtraArgs() { }
|
||||||
@@ -9053,7 +9054,11 @@ namespace Game.Spells
|
|||||||
|
|
||||||
public CastSpellExtraArgs SetTriggeringSpell(Spell triggeringSpell)
|
public CastSpellExtraArgs SetTriggeringSpell(Spell triggeringSpell)
|
||||||
{
|
{
|
||||||
OriginalCastId = triggeringSpell.m_castId;
|
if (triggeringSpell != null)
|
||||||
|
{
|
||||||
|
OriginalCastItemLevel = triggeringSpell.m_castItemLevel;
|
||||||
|
OriginalCastId = triggeringSpell.m_castId;
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -225,7 +225,7 @@ namespace Game.Spells
|
|||||||
unitTarget.RemoveAurasByType(AuraType.ModStun);
|
unitTarget.RemoveAurasByType(AuraType.ModStun);
|
||||||
|
|
||||||
// Cast Lesser Invisibility
|
// Cast Lesser Invisibility
|
||||||
unitTarget.CastSpell(unitTarget, 7870, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetOriginalCastId(m_castId));
|
unitTarget.CastSpell(unitTarget, 7870, new CastSpellExtraArgs(this));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Brittle Armor - (need add max stack of 24575 Brittle Armor)
|
// Brittle Armor - (need add max stack of 24575 Brittle Armor)
|
||||||
@@ -237,7 +237,7 @@ namespace Game.Spells
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
for (uint j = 0; j < spell.StackAmount; ++j)
|
for (uint j = 0; j < spell.StackAmount; ++j)
|
||||||
m_caster.CastSpell(unitTarget, spell.Id, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetOriginalCastId(m_castId));
|
m_caster.CastSpell(unitTarget, spell.Id, new CastSpellExtraArgs(this));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Mercurial Shield - (need add max stack of 26464 Mercurial Shield)
|
// Mercurial Shield - (need add max stack of 26464 Mercurial Shield)
|
||||||
@@ -249,7 +249,7 @@ namespace Game.Spells
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
for (uint j = 0; j < spell.StackAmount; ++j)
|
for (uint j = 0; j < spell.StackAmount; ++j)
|
||||||
m_caster.CastSpell(unitTarget, spell.Id, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetOriginalCastId(m_castId));
|
m_caster.CastSpell(unitTarget, spell.Id, new CastSpellExtraArgs(this));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -307,7 +307,7 @@ namespace Game.Spells
|
|||||||
|
|
||||||
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
|
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
|
||||||
args.SetOriginalCaster(m_originalCasterGUID);
|
args.SetOriginalCaster(m_originalCasterGUID);
|
||||||
args.SetOriginalCastId(m_castId);
|
args.SetTriggeringSpell(this);
|
||||||
// set basepoints for trigger with value effect
|
// set basepoints for trigger with value effect
|
||||||
if (effectInfo.Effect == SpellEffectName.TriggerSpellWithValue)
|
if (effectInfo.Effect == SpellEffectName.TriggerSpellWithValue)
|
||||||
for (int i = 0; i < SpellConst.MaxEffects; ++i)
|
for (int i = 0; i < SpellConst.MaxEffects; ++i)
|
||||||
@@ -371,7 +371,7 @@ namespace Game.Spells
|
|||||||
|
|
||||||
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
|
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
|
||||||
args.SetOriginalCaster(m_originalCasterGUID);
|
args.SetOriginalCaster(m_originalCasterGUID);
|
||||||
args.SetOriginalCastId(m_castId);
|
args.SetTriggeringSpell(this);
|
||||||
// set basepoints for trigger with value effect
|
// set basepoints for trigger with value effect
|
||||||
if (effectInfo.Effect == SpellEffectName.TriggerMissileSpellWithValue)
|
if (effectInfo.Effect == SpellEffectName.TriggerMissileSpellWithValue)
|
||||||
for (int i = 0; i < SpellConst.MaxEffects; ++i)
|
for (int i = 0; i < SpellConst.MaxEffects; ++i)
|
||||||
@@ -420,7 +420,7 @@ namespace Game.Spells
|
|||||||
{
|
{
|
||||||
CastSpellExtraArgs args1 = new(TriggerCastFlags.FullMask);
|
CastSpellExtraArgs args1 = new(TriggerCastFlags.FullMask);
|
||||||
args1.SetOriginalCaster(m_originalCasterGUID);
|
args1.SetOriginalCaster(m_originalCasterGUID);
|
||||||
args1.SetOriginalCastId(m_castId);
|
args1.SetTriggeringSpell(this);
|
||||||
args1.AddSpellMod(SpellValueMod.BasePoint0, damage);
|
args1.AddSpellMod(SpellValueMod.BasePoint0, damage);
|
||||||
unitTarget.CastSpell(unitTarget, spellInfo.Id, args1);
|
unitTarget.CastSpell(unitTarget, spellInfo.Id, args1);
|
||||||
return;
|
return;
|
||||||
@@ -433,12 +433,12 @@ namespace Game.Spells
|
|||||||
case 72298: // Malleable Goo Summon
|
case 72298: // Malleable Goo Summon
|
||||||
unitTarget.CastSpell(unitTarget, spellInfo.Id, new CastSpellExtraArgs(TriggerCastFlags.FullMask)
|
unitTarget.CastSpell(unitTarget, spellInfo.Id, new CastSpellExtraArgs(TriggerCastFlags.FullMask)
|
||||||
.SetOriginalCaster(m_originalCasterGUID)
|
.SetOriginalCaster(m_originalCasterGUID)
|
||||||
.SetOriginalCastId(m_castId));
|
.SetTriggeringSpell(this));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
|
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
|
||||||
args.SetOriginalCastId(m_castId);
|
args.SetTriggeringSpell(this);
|
||||||
// set basepoints for trigger with value effect
|
// set basepoints for trigger with value effect
|
||||||
if (effectInfo.Effect == SpellEffectName.ForceCastWithValue)
|
if (effectInfo.Effect == SpellEffectName.ForceCastWithValue)
|
||||||
for (int i = 0; i < SpellConst.MaxEffects; ++i)
|
for (int i = 0; i < SpellConst.MaxEffects; ++i)
|
||||||
@@ -469,7 +469,7 @@ namespace Game.Spells
|
|||||||
|
|
||||||
Finish();
|
Finish();
|
||||||
|
|
||||||
m_caster.CastSpell((Unit)null, spellInfo.Id, new CastSpellExtraArgs().SetOriginalCastId(m_castId));
|
m_caster.CastSpell((Unit)null, spellInfo.Id, new CastSpellExtraArgs().SetTriggeringSpell(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CalculateJumpSpeeds(SpellEffectInfo effInfo, float dist, out float speedXY, out float speedZ)
|
void CalculateJumpSpeeds(SpellEffectInfo effInfo, float dist, out float speedXY, out float speedZ)
|
||||||
@@ -1701,7 +1701,7 @@ namespace Game.Spells
|
|||||||
}
|
}
|
||||||
|
|
||||||
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
|
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
|
||||||
args.SetOriginalCastId(m_castId);
|
args.SetTriggeringSpell(this);
|
||||||
|
|
||||||
// if we have small value, it indicates seat position
|
// if we have small value, it indicates seat position
|
||||||
if (basePoints > 0 && basePoints < SharedConst.MaxVehicleSeats)
|
if (basePoints > 0 && basePoints < SharedConst.MaxVehicleSeats)
|
||||||
@@ -2741,7 +2741,7 @@ namespace Game.Spells
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Shadow Flame
|
// Shadow Flame
|
||||||
m_caster.CastSpell(unitTarget, 22682, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetOriginalCastId(m_castId));
|
m_caster.CastSpell(unitTarget, 22682, new CastSpellExtraArgs(this));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Mug Transformation
|
// Mug Transformation
|
||||||
@@ -2772,7 +2772,7 @@ namespace Game.Spells
|
|||||||
if (m_caster.ToPlayer().GetItemByPos(bag, slot).GetCount() == 1) m_caster.ToPlayer().RemoveItem(bag, slot, true);
|
if (m_caster.ToPlayer().GetItemByPos(bag, slot).GetCount() == 1) m_caster.ToPlayer().RemoveItem(bag, slot, true);
|
||||||
else m_caster.ToPlayer().GetItemByPos(bag, slot).SetCount(m_caster.ToPlayer().GetItemByPos(bag, slot).GetCount() - 1);
|
else m_caster.ToPlayer().GetItemByPos(bag, slot).SetCount(m_caster.ToPlayer().GetItemByPos(bag, slot).GetCount() - 1);
|
||||||
// Spell 42518 (Braufest - Gratisprobe des Braufest herstellen)
|
// Spell 42518 (Braufest - Gratisprobe des Braufest herstellen)
|
||||||
m_caster.CastSpell(m_caster, 42518, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetOriginalCastId(m_castId));
|
m_caster.CastSpell(m_caster, 42518, new CastSpellExtraArgs(this));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -2784,7 +2784,7 @@ namespace Game.Spells
|
|||||||
//Workaround for Range ... should be global for every ScriptEffect
|
//Workaround for Range ... should be global for every ScriptEffect
|
||||||
float radius = effectInfo.CalcRadius();
|
float radius = effectInfo.CalcRadius();
|
||||||
if (unitTarget != null && unitTarget.IsTypeId(TypeId.Player) && unitTarget.GetDistance(m_caster) >= radius && !unitTarget.HasAura(46394) && unitTarget != m_caster)
|
if (unitTarget != null && unitTarget.IsTypeId(TypeId.Player) && unitTarget.GetDistance(m_caster) >= radius && !unitTarget.HasAura(46394) && unitTarget != m_caster)
|
||||||
unitTarget.CastSpell(unitTarget, 46394, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetOriginalCastId(m_castId));
|
unitTarget.CastSpell(unitTarget, 46394, new CastSpellExtraArgs(this));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2805,7 +2805,7 @@ namespace Game.Spells
|
|||||||
|
|
||||||
float radius = effectInfo.CalcRadius();
|
float radius = effectInfo.CalcRadius();
|
||||||
for (byte i = 0; i < 15; ++i)
|
for (byte i = 0; i < 15; ++i)
|
||||||
m_caster.CastSpell(m_caster.GetRandomPoint(destTarget, radius), 54522, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetOriginalCastId(m_castId));
|
m_caster.CastSpell(m_caster.GetRandomPoint(destTarget, radius), 54522, new CastSpellExtraArgs(this));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 52173: // Coyote Spirit Despawn
|
case 52173: // Coyote Spirit Despawn
|
||||||
@@ -2866,8 +2866,8 @@ namespace Game.Spells
|
|||||||
if (parent != null)
|
if (parent != null)
|
||||||
{
|
{
|
||||||
// @todo a hack, range = 11, should after some time cast, otherwise too far
|
// @todo a hack, range = 11, should after some time cast, otherwise too far
|
||||||
unitCaster.CastSpell(parent, 62496, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetOriginalCastId(m_castId));
|
unitCaster.CastSpell(parent, 62496, new CastSpellExtraArgs(this));
|
||||||
unitTarget.CastSpell(parent, (uint)damage, new CastSpellExtraArgs().SetOriginalCastId(m_castId)); // DIFFICULTY_NONE, so effect always valid
|
unitTarget.CastSpell(parent, (uint)damage, new CastSpellExtraArgs().SetTriggeringSpell(this)); // DIFFICULTY_NONE, so effect always valid
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3238,7 +3238,7 @@ namespace Game.Spells
|
|||||||
|
|
||||||
GlyphPropertiesRecord glyphProperties = CliDB.GlyphPropertiesStorage.LookupByKey(glyphId);
|
GlyphPropertiesRecord glyphProperties = CliDB.GlyphPropertiesStorage.LookupByKey(glyphId);
|
||||||
if (glyphProperties != null)
|
if (glyphProperties != null)
|
||||||
player.CastSpell(player, glyphProperties.SpellID, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetOriginalCastId(m_castId));
|
player.CastSpell(player, glyphProperties.SpellID, new CastSpellExtraArgs(this));
|
||||||
|
|
||||||
ActiveGlyphs activeGlyphs = new();
|
ActiveGlyphs activeGlyphs = new();
|
||||||
activeGlyphs.Glyphs.Add(new GlyphBinding(m_misc.SpellId, (ushort)glyphId));
|
activeGlyphs.Glyphs.Add(new GlyphBinding(m_misc.SpellId, (ushort)glyphId));
|
||||||
@@ -3327,7 +3327,7 @@ namespace Game.Spells
|
|||||||
{
|
{
|
||||||
currentDrunk = 100;
|
currentDrunk = 100;
|
||||||
if (RandomHelper.randChance() < 25.0f)
|
if (RandomHelper.randChance() < 25.0f)
|
||||||
player.CastSpell(player, 67468, new CastSpellExtraArgs().SetOriginalCastId(m_castId)); // Drunken Vomit
|
player.CastSpell(player, 67468, new CastSpellExtraArgs().SetTriggeringSpell(this)); // Drunken Vomit
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
currentDrunk += (byte)drunkMod;
|
currentDrunk += (byte)drunkMod;
|
||||||
@@ -3374,7 +3374,7 @@ namespace Game.Spells
|
|||||||
// @todo fix crash when a spell has two effects, both pointed at the same item target
|
// @todo fix crash when a spell has two effects, both pointed at the same item target
|
||||||
|
|
||||||
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
|
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
|
||||||
args.SetOriginalCastId(m_castId);
|
args.SetTriggeringSpell(this);
|
||||||
args.AddSpellMod(SpellValueMod.BasePoint0, pct);
|
args.AddSpellMod(SpellValueMod.BasePoint0, pct);
|
||||||
m_caster.CastSpell(pet, effectInfo.TriggerSpell, args);
|
m_caster.CastSpell(pet, effectInfo.TriggerSpell, args);
|
||||||
}
|
}
|
||||||
@@ -3774,7 +3774,7 @@ namespace Game.Spells
|
|||||||
if (effectInfo.TriggerSpell != 0)
|
if (effectInfo.TriggerSpell != 0)
|
||||||
m_caster.CastSpell(unitTarget, effectInfo.TriggerSpell, new CastSpellExtraArgs(TriggerCastFlags.FullMask)
|
m_caster.CastSpell(unitTarget, effectInfo.TriggerSpell, new CastSpellExtraArgs(TriggerCastFlags.FullMask)
|
||||||
.SetOriginalCaster(m_originalCasterGUID)
|
.SetOriginalCaster(m_originalCasterGUID)
|
||||||
.SetOriginalCastId(m_castId));
|
.SetTriggeringSpell(this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3805,7 +3805,7 @@ namespace Game.Spells
|
|||||||
if (effectInfo.TriggerSpell != 0)
|
if (effectInfo.TriggerSpell != 0)
|
||||||
m_caster.CastSpell(destTarget, effectInfo.TriggerSpell, new CastSpellExtraArgs(TriggerCastFlags.FullMask)
|
m_caster.CastSpell(destTarget, effectInfo.TriggerSpell, new CastSpellExtraArgs(TriggerCastFlags.FullMask)
|
||||||
.SetOriginalCaster(m_originalCasterGUID)
|
.SetOriginalCaster(m_originalCasterGUID)
|
||||||
.SetOriginalCastId(m_castId));
|
.SetTriggeringSpell(this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4156,7 +4156,7 @@ namespace Game.Spells
|
|||||||
if (mana != 0)
|
if (mana != 0)
|
||||||
{
|
{
|
||||||
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
|
CastSpellExtraArgs args = new(TriggerCastFlags.FullMask);
|
||||||
args.SetOriginalCastId(m_castId);
|
args.SetTriggeringSpell(this);
|
||||||
args.AddSpellMod(SpellValueMod.BasePoint0, mana);
|
args.AddSpellMod(SpellValueMod.BasePoint0, mana);
|
||||||
unitCaster.CastSpell(m_caster, 39104, args);
|
unitCaster.CastSpell(m_caster, 39104, args);
|
||||||
}
|
}
|
||||||
@@ -5064,7 +5064,7 @@ namespace Game.Spells
|
|||||||
if (!m_caster.IsTypeId(TypeId.Player) || unitTarget == null || !unitTarget.IsTypeId(TypeId.Player))
|
if (!m_caster.IsTypeId(TypeId.Player) || unitTarget == null || !unitTarget.IsTypeId(TypeId.Player))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_caster.CastSpell(unitTarget, effectInfo.TriggerSpell, new CastSpellExtraArgs(TriggerCastFlags.FullMask).SetOriginalCastId(m_castId));
|
m_caster.CastSpell(unitTarget, effectInfo.TriggerSpell, new CastSpellExtraArgs(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
[SpellEffectHandler(SpellEffectName.UnlockGuildVaultTab)]
|
[SpellEffectHandler(SpellEffectName.UnlockGuildVaultTab)]
|
||||||
|
|||||||
@@ -1058,8 +1058,7 @@ namespace Scripts.Spells.Items
|
|||||||
Unit target = GetHitUnit();
|
Unit target = GetHitUnit();
|
||||||
|
|
||||||
uint spellId = RandomHelper.RAND(SpellIds.PersonalizedWeather1, SpellIds.PersonalizedWeather2, SpellIds.PersonalizedWeather3, SpellIds.PersonalizedWeather4);
|
uint spellId = RandomHelper.RAND(SpellIds.PersonalizedWeather1, SpellIds.PersonalizedWeather2, SpellIds.PersonalizedWeather3, SpellIds.PersonalizedWeather4);
|
||||||
target.CastSpell(target, spellId, new CastSpellExtraArgs(TriggerCastFlags.FullMask)
|
target.CastSpell(target, spellId, new CastSpellExtraArgs(GetSpell()));
|
||||||
.SetOriginalCastId(GetSpell().m_castId));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Register()
|
public override void Register()
|
||||||
@@ -3565,8 +3564,7 @@ namespace Scripts.Spells.Items
|
|||||||
}
|
}
|
||||||
|
|
||||||
Unit caster = GetCaster();
|
Unit caster = GetCaster();
|
||||||
caster.CastSpell(caster, spellId, new CastSpellExtraArgs(TriggerCastFlags.FullMask)
|
caster.CastSpell(caster, spellId, new CastSpellExtraArgs(GetSpell()));
|
||||||
.SetOriginalCastId(GetSpell().m_castId));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Register()
|
public override void Register()
|
||||||
|
|||||||
@@ -370,8 +370,7 @@ namespace Scripts.Spells.Quest
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
uint spellId = RandomHelper.randChance(20) ? SpellIds.BendingShinbone1 : SpellIds.BendingShinbone2;
|
uint spellId = RandomHelper.randChance(20) ? SpellIds.BendingShinbone1 : SpellIds.BendingShinbone2;
|
||||||
caster.CastSpell(caster, spellId, new CastSpellExtraArgs(TriggerCastFlags.FullMask)
|
caster.CastSpell(caster, spellId, new CastSpellExtraArgs(GetSpell()));
|
||||||
.SetOriginalCastId(GetSpell().m_castId));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Register()
|
public override void Register()
|
||||||
|
|||||||
Reference in New Issue
Block a user