Core/Spells: ported CastSpell unclusterfucking from 3.3.5 branch

This commit is contained in:
Ovahlord committed 2020-11-04 22:37:11 +01:00
1 parent 7e637971ee
commit 754c138f89
157 files changed
+1195 -1223

No files matched your search

+68 -68
View File
@@ -61,7 +61,7 @@ class spell_item_trigger_spell : public SpellScriptLoader
{
Unit* caster = GetCaster();
if (Item* item = GetCastItem())
caster->CastSpell(caster, _triggeredSpellId, true, item);
caster->CastSpell(caster, _triggeredSpellId, item);
}
void Register() override
@@ -97,7 +97,7 @@ class spell_item_aegis_of_preservation : public SpellScriptLoader
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
{
PreventDefaultAction();
GetTarget()->CastSpell(GetTarget(), SPELL_AEGIS_HEAL, true, nullptr, aurEff);
GetTarget()->CastSpell(GetTarget(), SPELL_AEGIS_HEAL, aurEff);
}
void Register() override
@@ -168,7 +168,7 @@ class spell_item_alchemists_stone : public SpellScriptLoader
}
int32 amount = CalculatePct(spellInfo->Effects[i].CalcValue(caster), 40);
caster->CastCustomSpell(spellId, SPELLVALUE_BASE_POINT0, amount, (Unit*)nullptr, true, nullptr, aurEff);
caster->CastSpell(nullptr, spellId, CastSpellExtraArgs(aurEff).AddSpellBP0(amount));
}
}
@@ -232,7 +232,7 @@ class spell_item_anger_capacitor : public SpellScriptLoader
if (player->GetWeaponForAttack(OFF_ATTACK, true) && urand(0, 1))
spellId = SPELL_MANIFEST_ANGER_OFF_HAND;
caster->CastSpell(target, spellId, true, nullptr, aurEff);
caster->CastSpell(target, spellId, aurEff);
}
void Register() override
@@ -350,7 +350,7 @@ class spell_item_aura_of_madness : public SpellScriptLoader
PreventDefaultAction();
Unit* caster = eventInfo.GetActor();
uint32 spellId = Trinity::Containers::SelectRandomContainerElement(triggeredSpells[caster->getClass()]);
caster->CastSpell(caster, spellId, true, nullptr, aurEff);
caster->CastSpell(caster, spellId, aurEff);
if (roll_chance_i(10))
caster->Unit::Say(SAY_MADNESS);
@@ -388,7 +388,7 @@ class spell_item_dementia : public SpellScriptLoader
void HandlePeriodicDummy(AuraEffect const* aurEff)
{
PreventDefaultAction();
GetTarget()->CastSpell(GetTarget(), RAND(SPELL_DEMENTIA_POS, SPELL_DEMENTIA_NEG), true, nullptr, aurEff);
GetTarget()->CastSpell(GetTarget(), RAND(SPELL_DEMENTIA_POS, SPELL_DEMENTIA_NEG), aurEff);
}
void Register() override
@@ -444,7 +444,7 @@ class spell_item_blessing_of_ancient_kings : public SpellScriptLoader
protEff->GetBase()->RefreshDuration();
}
else
GetTarget()->CastCustomSpell(SPELL_PROTECTION_OF_ANCIENT_KINGS, SPELLVALUE_BASE_POINT0, absorb, eventInfo.GetProcTarget(), true, nullptr, aurEff);
GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_PROTECTION_OF_ANCIENT_KINGS, CastSpellExtraArgs(aurEff).AddSpellBP0(absorb));
}
void Register() override
@@ -521,7 +521,7 @@ class spell_item_deadly_precision_dummy : public SpellScriptLoader
void HandleDummy(SpellEffIndex /*effIndex*/)
{
SpellInfo const* spellInfo = sSpellMgr->AssertSpellInfo(SPELL_DEADLY_PRECISION);
GetCaster()->CastCustomSpell(spellInfo->Id, SPELLVALUE_AURA_STACK, spellInfo->StackAmount, GetCaster(), true);
GetCaster()->CastSpell(GetCaster(), spellInfo->Id, CastSpellExtraArgs(true).AddSpellMod(SPELLVALUE_AURA_STACK, spellInfo->StackAmount));
}
void Register() override
@@ -614,7 +614,7 @@ class spell_item_deathbringers_will : public SpellScriptLoader
return;
uint32 spellId = Trinity::Containers::SelectRandomContainerElement(randomSpells);
caster->CastSpell(caster, spellId, true, nullptr, aurEff);
caster->CastSpell(caster, spellId, aurEff);
}
void Register() override
@@ -706,7 +706,7 @@ class spell_item_defibrillate : public SpellScriptLoader
{
PreventHitDefaultEffect(effIndex);
if (_failSpell)
GetCaster()->CastSpell(GetCaster(), _failSpell, true, GetCastItem());
GetCaster()->CastSpell(GetCaster(), _failSpell, GetCastItem());
}
}
@@ -751,7 +751,7 @@ class spell_item_desperate_defense : public SpellScriptLoader
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
{
PreventDefaultAction();
GetTarget()->CastSpell(GetTarget(), SPELL_DESPERATE_RAGE, true, nullptr, aurEff);
GetTarget()->CastSpell(GetTarget(), SPELL_DESPERATE_RAGE, aurEff);
}
void Register() override
@@ -798,7 +798,7 @@ class spell_item_deviate_fish : public SpellScriptLoader
{
Unit* caster = GetCaster();
uint32 spellId = urand(SPELL_SLEEPY, SPELL_HEALTHY_SPIRIT);
caster->CastSpell(caster, spellId, true, nullptr);
caster->CastSpell(caster, spellId, true);
}
void Register() override
@@ -937,7 +937,7 @@ class spell_item_flask_of_the_north : public SpellScriptLoader
break;
}
caster->CastSpell(caster, possibleSpells[urand(0, (possibleSpells.size() - 1))], true, nullptr);
caster->CastSpell(caster, possibleSpells[urand(0, (possibleSpells.size() - 1))], true);
}
void Register() override
@@ -980,7 +980,7 @@ class spell_item_frozen_shadoweave : public SpellScriptLoader
int32 amount = CalculatePct(static_cast<int32>(damageInfo->GetDamage()), aurEff->GetAmount());
Unit* caster = eventInfo.GetActor();
caster->CastCustomSpell(SPELL_SHADOWMEND, SPELLVALUE_BASE_POINT0, amount, (Unit*)nullptr, true, nullptr, aurEff);
caster->CastSpell(nullptr, SPELL_SHADOWMEND, CastSpellExtraArgs(aurEff).AddSpellBP0(amount));
}
void Register() override
@@ -1097,7 +1097,7 @@ class spell_item_healing_touch_refund : public SpellScriptLoader
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
{
PreventDefaultAction();
eventInfo.GetActor()->CastSpell((Unit*)nullptr, SPELL_HEALING_TOUCH_MANA, true, nullptr, aurEff);
eventInfo.GetActor()->CastSpell(nullptr, SPELL_HEALING_TOUCH_MANA, aurEff);
}
void Register() override
@@ -1175,7 +1175,7 @@ class spell_item_heartpierce : public SpellScriptLoader
return;
}
caster->CastSpell((Unit*)nullptr, spellId, true, nullptr, aurEff);
caster->CastSpell(nullptr, spellId, aurEff);
}
void Register() override
@@ -1267,7 +1267,7 @@ class spell_item_make_a_wish : public SpellScriptLoader
case 3: spellId = SPELL_SUMMON_FURIOUS_MR_PINCHY; break;
case 4: spellId = SPELL_TINY_MAGICAL_CRAWDAD; break;
}
caster->CastSpell(caster, spellId, true, nullptr);
caster->CastSpell(caster, spellId, true);
}
void Register() override
@@ -1309,7 +1309,7 @@ class spell_item_mark_of_conquest : public SpellScriptLoader
// in that case, do not cast heal spell
PreventDefaultAction();
// but mana instead
eventInfo.GetActor()->CastSpell((Unit*)nullptr, SPELL_MARK_OF_CONQUEST_ENERGIZE, true, nullptr, aurEff);
eventInfo.GetActor()->CastSpell(nullptr, SPELL_MARK_OF_CONQUEST_ENERGIZE, aurEff);
}
}
@@ -1410,7 +1410,7 @@ class spell_item_necrotic_touch : public SpellScriptLoader
return;
int32 bp = CalculatePct(static_cast<int32>(damageInfo->GetDamage()), aurEff->GetAmount());
GetTarget()->CastCustomSpell(SPELL_ITEM_NECROTIC_TOUCH_PROC, SPELLVALUE_BASE_POINT0, bp, eventInfo.GetProcTarget(), true, nullptr, aurEff);
GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_ITEM_NECROTIC_TOUCH_PROC, CastSpellExtraArgs(aurEff).AddSpellBP0(bp));
}
void Register() override
@@ -1463,7 +1463,7 @@ class spell_item_net_o_matic : public SpellScriptLoader
else if (roll < 4) // 2% for 20 sec root, charge to target (off-like chance unknown)
spellId = SPELL_NET_O_MATIC_TRIGGERED2;
GetCaster()->CastSpell(target, spellId, true, nullptr);
GetCaster()->CastSpell(target, spellId, true);
}
}
@@ -1520,7 +1520,7 @@ class spell_item_noggenfogger_elixir : public SpellScriptLoader
case 2: spellId = SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED2; break;
}
caster->CastSpell(caster, spellId, true, nullptr);
caster->CastSpell(caster, spellId, true);
}
void Register() override
@@ -1597,7 +1597,7 @@ class spell_item_persistent_shield : public SpellScriptLoader
if (shield->GetAmount() > bp0)
return;
caster->CastCustomSpell(SPELL_PERSISTENT_SHIELD_TRIGGERED, SPELLVALUE_BASE_POINT0, bp0, target, true, nullptr, aurEff);
caster->CastSpell(target, SPELL_PERSISTENT_SHIELD_TRIGGERED, CastSpellExtraArgs(aurEff).AddSpellBP0(bp0));
}
void Register() override
@@ -1642,7 +1642,7 @@ class spell_item_pet_healing : public SpellScriptLoader
int32 bp = CalculatePct(static_cast<int32>(damageInfo->GetDamage()), aurEff->GetAmount());
Unit* caster = eventInfo.GetActor();
caster->CastCustomSpell(SPELL_HEALTH_LINK, SPELLVALUE_BASE_POINT0, bp, (Unit*)nullptr, true, nullptr, aurEff);
caster->CastSpell(nullptr, SPELL_HEALTH_LINK, CastSpellExtraArgs(aurEff).AddSpellBP0(bp));
}
void Register() override
@@ -1767,7 +1767,7 @@ class spell_item_savory_deviate_delight : public SpellScriptLoader
// Yaaarrrr - pirate
case 2: spellId = (caster->getGender() == GENDER_MALE ? SPELL_YAAARRRR_MALE : SPELL_YAAARRRR_FEMALE); break;
}
caster->CastSpell(caster, spellId, true, nullptr);
caster->CastSpell(caster, spellId, true);
}
void Register() override
@@ -1960,14 +1960,14 @@ class spell_item_shadowmourne : public SpellScriptLoader
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
{
PreventDefaultAction();
GetTarget()->CastSpell(GetTarget(), SPELL_SHADOWMOURNE_SOUL_FRAGMENT, true, nullptr, aurEff);
GetTarget()->CastSpell(GetTarget(), SPELL_SHADOWMOURNE_SOUL_FRAGMENT, aurEff);
// this can't be handled in AuraScript of SoulFragments because we need to know victim
if (Aura* soulFragments = GetTarget()->GetAura(SPELL_SHADOWMOURNE_SOUL_FRAGMENT))
{
if (soulFragments->GetStackAmount() >= 10)
{
GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_SHADOWMOURNE_CHAOS_BANE_DAMAGE, true, nullptr, aurEff);
GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_SHADOWMOURNE_CHAOS_BANE_DAMAGE, aurEff);
soulFragments->Remove();
}
}
@@ -2104,7 +2104,7 @@ class spell_item_six_demon_bag : public SpellScriptLoader
target = caster;
}
caster->CastSpell(target, spellId, true, GetCastItem());
caster->CastSpell(target, spellId, GetCastItem());
}
}
@@ -2144,7 +2144,7 @@ class spell_item_swift_hand_justice_dummy : public SpellScriptLoader
Unit* caster = eventInfo.GetActor();
int32 amount = caster->CountPctFromMaxHealth(aurEff->GetAmount());
caster->CastCustomSpell(SPELL_SWIFT_HAND_OF_JUSTICE_HEAL, SPELLVALUE_BASE_POINT0, amount, (Unit*)nullptr, true, nullptr, aurEff);
caster->CastSpell(nullptr, SPELL_SWIFT_HAND_OF_JUSTICE_HEAL, CastSpellExtraArgs(aurEff).AddSpellBP0(amount));
}
void Register() override
@@ -2181,7 +2181,7 @@ class spell_item_totem_of_flowing_water : public SpellScriptLoader
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
{
PreventDefaultAction();
eventInfo.GetActor()->CastSpell((Unit*)nullptr, SPELL_LESSER_HEALING_WAVE_MANA, true, nullptr, aurEff);
eventInfo.GetActor()->CastSpell(nullptr, SPELL_LESSER_HEALING_WAVE_MANA, aurEff);
}
void Register() override
@@ -2263,7 +2263,7 @@ class spell_item_underbelly_elixir : public SpellScriptLoader
case 1: spellId = SPELL_UNDERBELLY_ELIXIR_TRIGGERED1; break;
case 2: spellId = SPELL_UNDERBELLY_ELIXIR_TRIGGERED2; break;
}
caster->CastSpell(caster, spellId, true, nullptr);
caster->CastSpell(caster, spellId, true);
}
void Register() override
@@ -2758,7 +2758,7 @@ class spell_item_purify_helboar_meat : public SpellScriptLoader
void HandleDummy(SpellEffIndex /* effIndex */)
{
Unit* caster = GetCaster();
caster->CastSpell(caster, roll_chance_i(50) ? SPELL_SUMMON_PURIFIED_HELBOAR_MEAT : SPELL_SUMMON_TOXIC_HELBOAR_MEAT, true, nullptr);
caster->CastSpell(caster, roll_chance_i(50) ? SPELL_SUMMON_PURIFIED_HELBOAR_MEAT : SPELL_SUMMON_TOXIC_HELBOAR_MEAT, true);
}
void Register() override
@@ -2907,9 +2907,9 @@ class spell_item_nigh_invulnerability : public SpellScriptLoader
if (Item* castItem = GetCastItem())
{
if (roll_chance_i(86)) // Nigh-Invulnerability - success
caster->CastSpell(caster, SPELL_NIGH_INVULNERABILITY, true, castItem);
caster->CastSpell(caster, SPELL_NIGH_INVULNERABILITY, castItem);
else // Complete Vulnerability - backfire in 14% casts
caster->CastSpell(caster, SPELL_COMPLETE_VULNERABILITY, true, castItem);
caster->CastSpell(caster, SPELL_COMPLETE_VULNERABILITY, castItem);
}
}
@@ -2946,7 +2946,7 @@ class spell_item_poultryizer : public SpellScriptLoader
void HandleDummy(SpellEffIndex /* effIndex */)
{
if (GetCastItem() && GetHitUnit())
GetCaster()->CastSpell(GetHitUnit(), roll_chance_i(80) ? SPELL_POULTRYIZER_SUCCESS : SPELL_POULTRYIZER_BACKFIRE, true, GetCastItem());
GetCaster()->CastSpell(GetHitUnit(), roll_chance_i(80) ? SPELL_POULTRYIZER_SUCCESS : SPELL_POULTRYIZER_BACKFIRE, GetCastItem());
}
void Register() override
@@ -3093,7 +3093,7 @@ class spell_item_complete_raptor_capture : public SpellScriptLoader
GetHitCreature()->DespawnOrUnsummon();
//cast spell Raptor Capture Credit
caster->CastSpell(caster, SPELL_RAPTOR_CAPTURE_CREDIT, true, nullptr);
caster->CastSpell(caster, SPELL_RAPTOR_CAPTURE_CREDIT, true);
}
}
@@ -3253,7 +3253,7 @@ class spell_item_nitro_boosts : public SpellScriptLoader
bool success = true;
if (areaEntry && areaEntry->IsFlyable() && !caster->GetMap()->IsDungeon())
success = roll_chance_i(95); // nitro boosts can only fail in flying-enabled locations on 4.3.4
caster->CastSpell(caster, success ? SPELL_NITRO_BOOSTS_SUCCESS : SPELL_NITRO_BOOSTS_BACKFIRE, true, GetCastItem());
caster->CastSpell(caster, success ? SPELL_NITRO_BOOSTS_SUCCESS : SPELL_NITRO_BOOSTS_BACKFIRE, GetCastItem());
}
void Register() override
@@ -3292,7 +3292,7 @@ class spell_item_nitro_boosts_backfire : public SpellScriptLoader
if (curZ < lastZ)
{
if (roll_chance_i(80)) // we don't have enough sniffs to verify this, guesstimate
GetTarget()->CastSpell(GetTarget(), SPELL_NITRO_BOOSTS_PARACHUTE, true, nullptr, effect);
GetTarget()->CastSpell(GetTarget(), SPELL_NITRO_BOOSTS_PARACHUTE, effect);
GetAura()->Remove();
}
else
@@ -3386,7 +3386,7 @@ class spell_item_rocket_boots : public SpellScriptLoader
bg->EventPlayerDroppedFlag(caster);
caster->GetSpellHistory()->ResetCooldown(SPELL_ROCKET_BOOTS_PROC);
caster->CastSpell(caster, SPELL_ROCKET_BOOTS_PROC, true, nullptr);
caster->CastSpell(caster, SPELL_ROCKET_BOOTS_PROC, true);
}
SpellCastResult CheckCast()
@@ -3628,10 +3628,10 @@ class spell_item_shard_of_the_scale : public SpellScriptLoader
Unit* target = eventInfo.GetProcTarget();
if (eventInfo.GetTypeMask() & PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS)
caster->CastSpell(target, HealProc, true, nullptr, aurEff);
caster->CastSpell(target, HealProc, aurEff);
if (eventInfo.GetTypeMask() & PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG)
caster->CastSpell(target, DamageProc, true, nullptr, aurEff);
caster->CastSpell(target, DamageProc, aurEff);
}
void Register() override
@@ -3681,16 +3681,16 @@ public:
switch (caster->getClass())
{
case CLASS_DRUID:
caster->CastSpell(caster, SPELL_SOUL_PRESERVER_DRUID, true, nullptr, aurEff);
caster->CastSpell(caster, SPELL_SOUL_PRESERVER_DRUID, aurEff);
break;
case CLASS_PALADIN:
caster->CastSpell(caster, SPELL_SOUL_PRESERVER_PALADIN, true, nullptr, aurEff);
caster->CastSpell(caster, SPELL_SOUL_PRESERVER_PALADIN, aurEff);
break;
case CLASS_PRIEST:
caster->CastSpell(caster, SPELL_SOUL_PRESERVER_PRIEST, true, nullptr, aurEff);
caster->CastSpell(caster, SPELL_SOUL_PRESERVER_PRIEST, aurEff);
break;
case CLASS_SHAMAN:
caster->CastSpell(caster, SPELL_SOUL_PRESERVER_SHAMAN, true, nullptr, aurEff);
caster->CastSpell(caster, SPELL_SOUL_PRESERVER_SHAMAN, aurEff);
break;
default:
break;
@@ -3769,10 +3769,10 @@ class spell_item_sunwell_neck : public SpellScriptLoader
// Aggression checks are in the spell system... just cast and forget
if (player->GetReputationRank(FACTION_ALDOR) == REP_EXALTED)
player->CastSpell(target, Aldors, true, nullptr, aurEff);
player->CastSpell(target, Aldors, aurEff);
if (player->GetReputationRank(FACTION_SCRYERS) == REP_EXALTED)
player->CastSpell(target, Scryers, true, nullptr, aurEff);
player->CastSpell(target, Scryers, aurEff);
}
void Register() override
@@ -3917,7 +3917,7 @@ class spell_item_mind_control_cap : public SpellScriptLoader
if (Unit* target = GetHitUnit())
{
if (roll_chance_i(ROLL_CHANCE_NO_BACKFIRE))
caster->CastSpell(target, roll_chance_i(ROLL_CHANCE_DULLARD) ? SPELL_DULLARD : SPELL_GNOMISH_MIND_CONTROL_CAP, true, GetCastItem());
caster->CastSpell(target, roll_chance_i(ROLL_CHANCE_DULLARD) ? SPELL_DULLARD : SPELL_GNOMISH_MIND_CONTROL_CAP, GetCastItem());
else
target->CastSpell(caster, SPELL_GNOMISH_MIND_CONTROL_CAP, true); // backfire - 5% chance
}
@@ -3968,11 +3968,11 @@ class spell_item_universal_remote : public SpellScriptLoader
{
uint8 chance = urand(0, 99);
if (chance < 15)
GetCaster()->CastSpell(target, SPELL_TARGET_LOCK, true, GetCastItem());
GetCaster()->CastSpell(target, SPELL_TARGET_LOCK, GetCastItem());
else if (chance < 25)
GetCaster()->CastSpell(target, SPELL_MOBILITY_MALFUNCTION, true, GetCastItem());
GetCaster()->CastSpell(target, SPELL_MOBILITY_MALFUNCTION, GetCastItem());
else
GetCaster()->CastSpell(target, SPELL_CONTROL_MACHINE, true, GetCastItem());
GetCaster()->CastSpell(target, SPELL_CONTROL_MACHINE, GetCastItem());
}
}
@@ -4112,7 +4112,7 @@ public:
}
if (useElixir)
target->CastSpell(target, chosenElixir, true, GetCastItem());
target->CastSpell(target, chosenElixir, GetCastItem());
}
void Register() override
@@ -4162,7 +4162,7 @@ public:
uint32 chosenElixir = Trinity::Containers::SelectRandomContainerElement(availableElixirs);
target->CastSpell(target, chosenElixir, true, GetCastItem());
target->CastSpell(target, chosenElixir, GetCastItem());
}
void Register() override
@@ -4219,17 +4219,17 @@ public:
case SPELL_DEATH_CHOICE_NORMAL_AURA:
{
if (str > agi)
caster->CastSpell(caster, SPELL_DEATH_CHOICE_NORMAL_STRENGTH, true, nullptr, aurEff);
caster->CastSpell(caster, SPELL_DEATH_CHOICE_NORMAL_STRENGTH, aurEff);
else
caster->CastSpell(caster, SPELL_DEATH_CHOICE_NORMAL_AGILITY, true, nullptr, aurEff);
caster->CastSpell(caster, SPELL_DEATH_CHOICE_NORMAL_AGILITY, aurEff);
break;
}
case SPELL_DEATH_CHOICE_HEROIC_AURA:
{
if (str > agi)
caster->CastSpell(caster, SPELL_DEATH_CHOICE_HEROIC_STRENGTH, true, nullptr, aurEff);
caster->CastSpell(caster, SPELL_DEATH_CHOICE_HEROIC_STRENGTH, aurEff);
else
caster->CastSpell(caster, SPELL_DEATH_CHOICE_HEROIC_AGILITY, true, nullptr, aurEff);
caster->CastSpell(caster, SPELL_DEATH_CHOICE_HEROIC_AGILITY, aurEff);
break;
}
default:
@@ -4291,7 +4291,7 @@ public:
Unit* caster = eventInfo.GetActor();
caster->CastSpell(caster, _stackSpell, true, nullptr, aurEff); // cast the stack
caster->CastSpell(caster, _stackSpell, aurEff); // cast the stack
Aura* dummy = caster->GetAura(_stackSpell); // retrieve aura
@@ -4302,7 +4302,7 @@ public:
// if right amount, remove the aura and cast real trigger
caster->RemoveAurasDueToSpell(_stackSpell);
if (Unit* target = eventInfo.GetActionTarget())
caster->CastSpell(target, _triggerSpell, true, nullptr, aurEff);
caster->CastSpell(target, _triggerSpell, aurEff);
}
void Register() override
@@ -4389,7 +4389,7 @@ public:
stat = spi;
}
caster->CastSpell(caster, spellTrigger, true, nullptr, aurEff);
caster->CastSpell(caster, spellTrigger, aurEff);
}
void Register() override
@@ -4432,7 +4432,7 @@ public:
if (target)
{
int32 bp = CalculatePct(target->GetCreateHealth(),aurEff->GetSpellInfo()->Effects[1].CalcValue());
caster->CastCustomSpell(target, SPELL_CHARM_WITCH_DOCTOR_PROC, &bp, nullptr, nullptr, true, nullptr, aurEff);
caster->CastSpell(target, SPELL_CHARM_WITCH_DOCTOR_PROC, CastSpellExtraArgs(aurEff).AddSpellBP0(bp));
}
}
@@ -4479,10 +4479,10 @@ public:
Unit* target = eventInfo.GetActionTarget();
if (caster->IsAlive())
caster->CastSpell(caster, SPELL_MANA_DRAIN_ENERGIZE, true, nullptr, aurEff);
caster->CastSpell(caster, SPELL_MANA_DRAIN_ENERGIZE, aurEff);
if (target && target->IsAlive())
caster->CastSpell(target, SPELL_MANA_DRAIN_LEECH, true, nullptr, aurEff);
caster->CastSpell(target, SPELL_MANA_DRAIN_LEECH, aurEff);
}
void Register() override
@@ -4523,13 +4523,13 @@ class spell_item_egg_shell : public AuraScript
void HandleEffectPeriodic(AuraEffect const* aurEff)
{
GetTarget()->CastSpell(GetTarget(), GetSpellInfo()->Id == SPELL_EGG_SHELL_NORMAL ? SPELL_EGG_SHELL_PERIODIC_NORMAL : SPELL_EGG_SHELL_PERIODIC_HEROIC, true, nullptr, aurEff);
GetTarget()->CastSpell(GetTarget(), GetSpellInfo()->Id == SPELL_EGG_SHELL_NORMAL ? SPELL_EGG_SHELL_PERIODIC_NORMAL : SPELL_EGG_SHELL_PERIODIC_HEROIC, aurEff);
}
void HandleEffectRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
{
if (GetTargetApplication()->GetRemoveMode().HasFlag(AuraRemoveFlags::ByCancel))
GetTarget()->CastSpell(GetTarget(), GetSpellInfo()->Id == SPELL_EGG_SHELL_NORMAL ? SPELL_EGG_SHELL_PERIODIC_NORMAL : SPELL_EGG_SHELL_PERIODIC_HEROIC, true, nullptr, aurEff);
GetTarget()->CastSpell(GetTarget(), GetSpellInfo()->Id == SPELL_EGG_SHELL_NORMAL ? SPELL_EGG_SHELL_PERIODIC_NORMAL : SPELL_EGG_SHELL_PERIODIC_HEROIC, aurEff);
}
void Register() override
@@ -4752,7 +4752,7 @@ class spell_item_blessing_of_khazgoroth : public SpellScript
if (spellId && basePoints)
{
player->CastCustomSpell(spellId, SPELLVALUE_BASE_POINT0, basePoints, player, true);
player->CastSpell(player, spellId, CastSpellExtraArgs(true).AddSpellBP0(basePoints));
aura->Remove();
}
}
@@ -4796,7 +4796,7 @@ class spell_item_weight_of_a_feather : public AuraScript
basePoints += effect->GetAmount();
basePoints = std::min<int32>(basePoints, aurEff->GetAmount());
target->CastCustomSpell(SPELL_WEIGHT_OF_A_FEATHER, SPELLVALUE_BASE_POINT0, basePoints, target, true, nullptr, aurEff);
target->CastSpell(target, SPELL_WEIGHT_OF_A_FEATHER, CastSpellExtraArgs(aurEff).AddSpellBP0(basePoints));
}
void Register() override
@@ -4918,7 +4918,7 @@ class spell_item_variable_pulse_lightning_capacitor : public AuraScript
if (Item* castItem = target->GetItemByGuid(itemGUID))
{
if (!chargeEffect || roll_chance_i(60))
target->CastSpell(target, SPELL_ELECTRICAL_CHARGE, true, castItem, aurEff);
target->CastSpell(target, SPELL_ELECTRICAL_CHARGE, CastSpellExtraArgs(castItem).SetTriggeringAura(aurEff));
else
{
int32 bp = 0;
@@ -4929,7 +4929,7 @@ class spell_item_variable_pulse_lightning_capacitor : public AuraScript
bp *= chargeEffect->GetBase()->GetStackAmount();
chargeEffect->GetBase()->Remove();
target->CastCustomSpell(SPELL_LIGHTNING_BOLT, SPELLVALUE_BASE_POINT0, bp, eventInfo.GetProcTarget(), true, castItem, aurEff);
target->CastSpell(eventInfo.GetProcTarget(), SPELL_LIGHTNING_BOLT, CastSpellExtraArgs(castItem).SetTriggeringAura(aurEff).AddSpellBP0(bp));
}
}
}