Core/Spells: ported CastSpell unclusterfucking from 3.3.5 branch
This commit is contained in:
1 parent
7e637971ee
commit
754c138f89
157 files changed
+1195
-1223
No files matched your search
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user