diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_generic.cpp | 750 |
1 files changed, 385 insertions, 365 deletions
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 56621dbc664..ed0be1c73ed 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -27,92 +27,94 @@ class spell_gen_absorb0_hitlimit1 : public SpellScriptLoader { -public: - spell_gen_absorb0_hitlimit1() : SpellScriptLoader("spell_gen_absorb0_hitlimit1") { } + public: + spell_gen_absorb0_hitlimit1() : SpellScriptLoader("spell_gen_absorb0_hitlimit1") { } - class spell_gen_absorb0_hitlimit1_AuraScript : public AuraScript - { - PrepareAuraScript(spell_gen_absorb0_hitlimit1_AuraScript); + class spell_gen_absorb0_hitlimit1_AuraScript : public AuraScript + { + PrepareAuraScript(spell_gen_absorb0_hitlimit1_AuraScript); - uint32 limit; + uint32 limit; - bool Load() - { - // Max absorb stored in 1 dummy effect - limit = SpellMgr::CalculateSpellEffectAmount(GetSpellProto(), EFFECT_1); - return true; - } + bool Load() + { + // Max absorb stored in 1 dummy effect + limit = SpellMgr::CalculateSpellEffectAmount(GetSpellProto(), EFFECT_1); + return true; + } - void Absorb(AuraEffect * /*aurEff*/, DamageInfo & /*dmgInfo*/, uint32 & absorbAmount) - { - absorbAmount = std::min(limit, absorbAmount); - } + void Absorb(AuraEffect* /*aurEff*/, DamageInfo& /*dmgInfo*/, uint32& absorbAmount) + { + absorbAmount = std::min(limit, absorbAmount); + } - void Register() + void Register() + { + OnEffectAbsorb += AuraEffectAbsorbFn(spell_gen_absorb0_hitlimit1_AuraScript::Absorb, EFFECT_0); + } + }; + + AuraScript* GetAuraScript() const { - OnEffectAbsorb += AuraEffectAbsorbFn(spell_gen_absorb0_hitlimit1_AuraScript::Absorb, EFFECT_0); + return new spell_gen_absorb0_hitlimit1_AuraScript(); } - }; - - AuraScript *GetAuraScript() const - { - return new spell_gen_absorb0_hitlimit1_AuraScript(); - } }; // 41337 Aura of Anger class spell_gen_aura_of_anger : public SpellScriptLoader { -public: - spell_gen_aura_of_anger() : SpellScriptLoader("spell_gen_aura_of_anger") { } + public: + spell_gen_aura_of_anger() : SpellScriptLoader("spell_gen_aura_of_anger") { } - class spell_gen_aura_of_anger_AuraScript : public AuraScript - { - PrepareAuraScript(spell_gen_aura_of_anger_AuraScript) - void HandleEffectPeriodicUpdate(AuraEffect * aurEff) + class spell_gen_aura_of_anger_AuraScript : public AuraScript { - if (AuraEffect * aurEff1 = aurEff->GetBase()->GetEffect(EFFECT_1)) - aurEff1->ChangeAmount(aurEff1->GetAmount() + 5); - aurEff->SetAmount(100 * aurEff->GetTickNumber()); - } + PrepareAuraScript(spell_gen_aura_of_anger_AuraScript); + + void HandleEffectPeriodicUpdate(AuraEffect* aurEff) + { + if (AuraEffect* aurEff1 = aurEff->GetBase()->GetEffect(EFFECT_1)) + aurEff1->ChangeAmount(aurEff1->GetAmount() + 5); + aurEff->SetAmount(100 * aurEff->GetTickNumber()); + } + + void Register() + { + OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_gen_aura_of_anger_AuraScript::HandleEffectPeriodicUpdate, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE); + } + }; - void Register() + AuraScript* GetAuraScript() const { - OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_gen_aura_of_anger_AuraScript::HandleEffectPeriodicUpdate, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE); + return new spell_gen_aura_of_anger_AuraScript(); } - }; - - AuraScript *GetAuraScript() const - { - return new spell_gen_aura_of_anger_AuraScript(); - } }; // 46394 Brutallus Burn class spell_gen_burn_brutallus : public SpellScriptLoader { -public: - spell_gen_burn_brutallus() : SpellScriptLoader("spell_gen_burn_brutallus") { } + public: + spell_gen_burn_brutallus() : SpellScriptLoader("spell_gen_burn_brutallus") { } - class spell_gen_burn_brutallus_AuraScript : public AuraScript - { - PrepareAuraScript(spell_gen_burn_brutallus_AuraScript) - void HandleEffectPeriodicUpdate(AuraEffect * aurEff) + class spell_gen_burn_brutallus_AuraScript : public AuraScript { - if (aurEff->GetTickNumber() % 11 == 0) - aurEff->SetAmount(aurEff->GetAmount() * 2); - } + PrepareAuraScript(spell_gen_burn_brutallus_AuraScript); + + void HandleEffectPeriodicUpdate(AuraEffect* aurEff) + { + if (aurEff->GetTickNumber() % 11 == 0) + aurEff->SetAmount(aurEff->GetAmount() * 2); + } + + void Register() + { + OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_gen_burn_brutallus_AuraScript::HandleEffectPeriodicUpdate, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE); + } + }; - void Register() + AuraScript* GetAuraScript() const { - OnEffectUpdatePeriodic += AuraEffectUpdatePeriodicFn(spell_gen_burn_brutallus_AuraScript::HandleEffectPeriodicUpdate, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE); + return new spell_gen_burn_brutallus_AuraScript(); } - }; - - AuraScript *GetAuraScript() const - { - return new spell_gen_burn_brutallus_AuraScript(); - } }; // 45472 Parachute @@ -124,135 +126,138 @@ enum eParachuteSpells class spell_gen_parachute : public SpellScriptLoader { -public: - spell_gen_parachute() : SpellScriptLoader("spell_gen_parachute") { } - - class spell_gen_parachute_AuraScript : public AuraScript - { - PrepareAuraScript(spell_gen_parachute_AuraScript) - bool Validate(SpellEntry const * /*spellEntry*/) - { - if (!sSpellStore.LookupEntry(SPELL_PARACHUTE)) - return false; - if (!sSpellStore.LookupEntry(SPELL_PARACHUTE_BUFF)) - return false; - return true; - } + public: + spell_gen_parachute() : SpellScriptLoader("spell_gen_parachute") { } - void HandleEffectPeriodic(AuraEffect const * /*aurEff*/) + class spell_gen_parachute_AuraScript : public AuraScript { - Unit* pTarget = GetTarget(); - if (Player* pPlayerTarget = pTarget->ToPlayer()) - if (pPlayerTarget->IsFalling()) + PrepareAuraScript(spell_gen_parachute_AuraScript); + + bool Validate(SpellEntry const* /*spellEntry*/) + { + if (!sSpellStore.LookupEntry(SPELL_PARACHUTE)) + return false; + if (!sSpellStore.LookupEntry(SPELL_PARACHUTE_BUFF)) + return false; + return true; + } + + void HandleEffectPeriodic(AuraEffect const* /*aurEff*/) + { + if (Player* target = GetTarget()->ToPlayer()) { - pPlayerTarget->RemoveAurasDueToSpell(SPELL_PARACHUTE); - pPlayerTarget->CastSpell(pPlayerTarget, SPELL_PARACHUTE_BUFF, true); + if (target->IsFalling()) + { + target->RemoveAurasDueToSpell(SPELL_PARACHUTE); + target->CastSpell(target, SPELL_PARACHUTE_BUFF, true); + } } - } + } + + void Register() + { + OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_parachute_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY); + } + }; - void Register() + AuraScript* GetAuraScript() const { - OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_parachute_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY); + return new spell_gen_parachute_AuraScript(); } - }; - - AuraScript *GetAuraScript() const - { - return new spell_gen_parachute_AuraScript(); - } }; enum NPCEntries { - NPC_DOOMGUARD = 11859, - NPC_INFERNAL = 89, - NPC_IMP = 416, + NPC_DOOMGUARD = 11859, + NPC_INFERNAL = 89, + NPC_IMP = 416, }; class spell_gen_pet_summoned : public SpellScriptLoader { -public: - spell_gen_pet_summoned() : SpellScriptLoader("spell_gen_pet_summoned") { } + public: + spell_gen_pet_summoned() : SpellScriptLoader("spell_gen_pet_summoned") { } - class spell_gen_pet_summonedSpellScript : public SpellScript - { - PrepareSpellScript(spell_gen_pet_summonedSpellScript) - void HandleScript(SpellEffIndex /*effIndex*/) + class spell_gen_pet_summoned_SpellScript : public SpellScript { - Unit *caster = GetCaster(); - if (caster->GetTypeId() != TYPEID_PLAYER) - return; + PrepareSpellScript(spell_gen_pet_summoned_SpellScript); - Player* plr = caster->ToPlayer(); - if (plr && plr->GetLastPetNumber()) + void HandleScript(SpellEffIndex /*effIndex*/) { - PetType NewPetType = (plr->getClass() == CLASS_HUNTER) ? HUNTER_PET : SUMMON_PET; - if (Pet* NewPet = new Pet(plr, NewPetType)) + Unit* caster = GetCaster(); + if (caster->GetTypeId() != TYPEID_PLAYER) + return; + + Player* plr = caster->ToPlayer(); + if (plr->GetLastPetNumber()) { - if (NewPet->LoadPetFromDB(plr, 0, plr->GetLastPetNumber(), true)) + PetType newPetType = (plr->getClass() == CLASS_HUNTER) ? HUNTER_PET : SUMMON_PET; + if (Pet* newPet = new Pet(plr, newPetType)) { - // revive the pet if it is dead - if (NewPet->getDeathState() == DEAD) - NewPet->setDeathState(ALIVE); - - NewPet->SetFullHealth(); - NewPet->SetPower(NewPet->getPowerType(),NewPet->GetMaxPower(NewPet->getPowerType())); - - switch (NewPet->GetEntry()) + if (newPet->LoadPetFromDB(plr, 0, plr->GetLastPetNumber(), true)) { - case NPC_DOOMGUARD: - case NPC_INFERNAL: - NewPet->SetEntry(NPC_IMP); - break; - default: - break; + // revive the pet if it is dead + if (newPet->getDeathState() == DEAD) + newPet->setDeathState(ALIVE); + + newPet->SetFullHealth(); + newPet->SetPower(newPet->getPowerType(), newPet->GetMaxPower(newPet->getPowerType())); + + switch (newPet->GetEntry()) + { + case NPC_DOOMGUARD: + case NPC_INFERNAL: + newPet->SetEntry(NPC_IMP); + break; + default: + break; + } } + else + delete newPet; } - else - delete NewPet; } } - } - void Register() + void Register() + { + OnEffect += SpellEffectFn(spell_gen_pet_summoned_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } + }; + + SpellScript* GetSpellScript() const { - OnEffect += SpellEffectFn(spell_gen_pet_summonedSpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + return new spell_gen_pet_summoned_SpellScript(); } - }; - - SpellScript* GetSpellScript() const - { - return new spell_gen_pet_summonedSpellScript(); - } }; class spell_gen_remove_flight_auras : public SpellScriptLoader { -public: - spell_gen_remove_flight_auras() : SpellScriptLoader("spell_gen_remove_flight_auras") {} - - class spell_gen_remove_flight_auras_SpellScript : public SpellScript - { - PrepareSpellScript(spell_gen_remove_flight_auras_SpellScript) - void HandleScript(SpellEffIndex /*effIndex*/) - { - Unit *target = GetHitUnit(); - if (!target) - return; - target->RemoveAurasByType(SPELL_AURA_FLY); - target->RemoveAurasByType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED); - } + public: + spell_gen_remove_flight_auras() : SpellScriptLoader("spell_gen_remove_flight_auras") {} - void Register() + class spell_gen_remove_flight_auras_SpellScript : public SpellScript { - OnEffect += SpellEffectFn(spell_gen_remove_flight_auras_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT); - } - }; + PrepareSpellScript(spell_gen_remove_flight_auras_SpellScript) + void HandleScript(SpellEffIndex /*effIndex*/); + { + Unit* target = GetHitUnit(); + if (!target) + return; + target->RemoveAurasByType(SPELL_AURA_FLY); + target->RemoveAurasByType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED); + } + + void Register() + { + OnEffect += SpellEffectFn(spell_gen_remove_flight_auras_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT); + } + }; - SpellScript* GetSpellScript() const - { - return new spell_gen_remove_flight_auras_SpellScript(); - } + SpellScript* GetSpellScript() const + { + return new spell_gen_remove_flight_auras_SpellScript(); + } }; // 66118 Leeching Swarm @@ -264,46 +269,46 @@ enum eLeechingSwarmSpells class spell_gen_leeching_swarm : public SpellScriptLoader { -public: - spell_gen_leeching_swarm() : SpellScriptLoader("spell_gen_leeching_swarm") { } - - class spell_gen_leeching_swarm_AuraScript : public AuraScript - { - PrepareAuraScript(spell_gen_leeching_swarm_AuraScript) - bool Validate(SpellEntry const * /*spellEntry*/) - { - if (!sSpellStore.LookupEntry(SPELL_LEECHING_SWARM_DMG)) - return false; - if (!sSpellStore.LookupEntry(SPELL_LEECHING_SWARM_HEAL)) - return false; - return true; - } + public: + spell_gen_leeching_swarm() : SpellScriptLoader("spell_gen_leeching_swarm") { } - void HandleEffectPeriodic(AuraEffect const * aurEff) + class spell_gen_leeching_swarm_AuraScript : public AuraScript { - if (Unit* pTarget = GetTarget()) - if (Unit* pCaster = GetCaster()) + PrepareAuraScript(spell_gen_leeching_swarm_AuraScript); + + bool Validate(SpellEntry const* /*spellEntry*/) + { + if (!sSpellStore.LookupEntry(SPELL_LEECHING_SWARM_DMG)) + return false; + if (!sSpellStore.LookupEntry(SPELL_LEECHING_SWARM_HEAL)) + return false; + return true; + } + + void HandleEffectPeriodic(AuraEffect const* aurEff) + { + if (Unit* caster = GetCaster()) { int32 lifeLeeched = pTarget->CountPctFromCurHealth(aurEff->GetAmount()); if (lifeLeeched < 250) lifeLeeched = 250; // Damage - pCaster->CastCustomSpell(pTarget, SPELL_LEECHING_SWARM_DMG, &lifeLeeched, 0, 0, false); + caster->CastCustomSpell(GetTarget(), SPELL_LEECHING_SWARM_DMG, &lifeLeeched, 0, 0, false); // Heal - pCaster->CastCustomSpell(pCaster, SPELL_LEECHING_SWARM_HEAL, &lifeLeeched, 0, 0, false); + caster->CastCustomSpell(caster, SPELL_LEECHING_SWARM_HEAL, &lifeLeeched, 0, 0, false); } - } + } - void Register() + void Register() + { + OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_leeching_swarm_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY); + } + }; + + AuraScript* GetAuraScript() const { - OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_leeching_swarm_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY); + return new spell_gen_leeching_swarm_AuraScript(); } - }; - - AuraScript *GetAuraScript() const - { - return new spell_gen_leeching_swarm_AuraScript(); - } }; // 24750 Trick @@ -323,65 +328,78 @@ enum eTrickSpells class spell_gen_trick : public SpellScriptLoader { -public: - spell_gen_trick() : SpellScriptLoader("spell_gen_trick") {} - - class spell_gen_trick_SpellScript : public SpellScript - { - PrepareSpellScript(spell_gen_trick_SpellScript) - bool Validate(SpellEntry const * /*spellEntry*/) - { - if (!sSpellStore.LookupEntry(SPELL_PIRATE_COSTUME_MALE)) - return false; - if (!sSpellStore.LookupEntry(SPELL_PIRATE_COSTUME_FEMALE)) - return false; - if (!sSpellStore.LookupEntry(SPELL_NINJA_COSTUME_MALE)) - return false; - if (!sSpellStore.LookupEntry(SPELL_NINJA_COSTUME_FEMALE)) - return false; - if (!sSpellStore.LookupEntry(SPELL_LEPER_GNOME_COSTUME_MALE)) - return false; - if (!sSpellStore.LookupEntry(SPELL_LEPER_GNOME_COSTUME_FEMALE)) - return false; - if (!sSpellStore.LookupEntry(SPELL_SKELETON_COSTUME)) - return false; - if (!sSpellStore.LookupEntry(SPELL_GHOST_COSTUME_MALE)) - return false; - if (!sSpellStore.LookupEntry(SPELL_GHOST_COSTUME_FEMALE)) - return false; - if (!sSpellStore.LookupEntry(SPELL_TRICK_BUFF)) - return false; - return true; - } + public: + spell_gen_trick() : SpellScriptLoader("spell_gen_trick") {} - void HandleScript(SpellEffIndex /*effIndex*/) + class spell_gen_trick_SpellScript : public SpellScript { - if (Player* pTarget = GetHitPlayer()) + PrepareSpellScript(spell_gen_trick_SpellScript); + bool Validate(SpellEntry const* /*spellEntry*/) { - uint8 gender = pTarget->getGender(); - uint32 spellId = SPELL_TRICK_BUFF; - switch (urand(0, 5)) + if (!sSpellStore.LookupEntry(SPELL_PIRATE_COSTUME_MALE)) + return false; + if (!sSpellStore.LookupEntry(SPELL_PIRATE_COSTUME_FEMALE)) + return false; + if (!sSpellStore.LookupEntry(SPELL_NINJA_COSTUME_MALE)) + return false; + if (!sSpellStore.LookupEntry(SPELL_NINJA_COSTUME_FEMALE)) + return false; + if (!sSpellStore.LookupEntry(SPELL_LEPER_GNOME_COSTUME_MALE)) + return false; + if (!sSpellStore.LookupEntry(SPELL_LEPER_GNOME_COSTUME_FEMALE)) + return false; + if (!sSpellStore.LookupEntry(SPELL_SKELETON_COSTUME)) + return false; + if (!sSpellStore.LookupEntry(SPELL_GHOST_COSTUME_MALE)) + return false; + if (!sSpellStore.LookupEntry(SPELL_GHOST_COSTUME_FEMALE)) + return false; + if (!sSpellStore.LookupEntry(SPELL_TRICK_BUFF)) + return false; + return true; + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + if (Player* target = GetHitPlayer()) { - case 1: spellId = gender ? SPELL_LEPER_GNOME_COSTUME_FEMALE : SPELL_LEPER_GNOME_COSTUME_MALE; break; - case 2: spellId = gender ? SPELL_PIRATE_COSTUME_FEMALE : SPELL_PIRATE_COSTUME_MALE; break; - case 3: spellId = gender ? SPELL_GHOST_COSTUME_FEMALE : SPELL_GHOST_COSTUME_MALE; break; - case 4: spellId = gender ? SPELL_NINJA_COSTUME_FEMALE : SPELL_NINJA_COSTUME_MALE; break; - case 5: spellId = SPELL_SKELETON_COSTUME; break; + uint8 gender = target->getGender(); + uint32 spellId = SPELL_TRICK_BUFF; + switch (urand(0, 5)) + { + case 1: + spellId = gender ? SPELL_LEPER_GNOME_COSTUME_FEMALE : SPELL_LEPER_GNOME_COSTUME_MALE; + break; + case 2: + spellId = gender ? SPELL_PIRATE_COSTUME_FEMALE : SPELL_PIRATE_COSTUME_MALE; + break; + case 3: + spellId = gender ? SPELL_GHOST_COSTUME_FEMALE : SPELL_GHOST_COSTUME_MALE; + break; + case 4: + spellId = gender ? SPELL_NINJA_COSTUME_FEMALE : SPELL_NINJA_COSTUME_MALE; + break; + case 5: + spellId = SPELL_SKELETON_COSTUME; + break; + default: + break; + } + + GetCaster()->CastSpell(target, spellId, true, NULL); } - GetCaster()->CastSpell(pTarget, spellId, true, NULL); } - } - void Register() + void Register() + { + OnEffect += SpellEffectFn(spell_gen_trick_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } + }; + + SpellScript* GetSpellScript() const { - OnEffect += SpellEffectFn(spell_gen_trick_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + return new spell_gen_trick_SpellScript(); } - }; - - SpellScript* GetSpellScript() const - { - return new spell_gen_trick_SpellScript(); - } }; // 24751 Trick or Treat @@ -394,42 +412,43 @@ enum eTrickOrTreatSpells class spell_gen_trick_or_treat : public SpellScriptLoader { -public: - spell_gen_trick_or_treat() : SpellScriptLoader("spell_gen_trick_or_treat") {} - - class spell_gen_trick_or_treat_SpellScript : public SpellScript - { - PrepareSpellScript(spell_gen_trick_or_treat_SpellScript) - bool Validate(SpellEntry const * /*spellEntry*/) - { - if (!sSpellStore.LookupEntry(SPELL_TRICK)) - return false; - if (!sSpellStore.LookupEntry(SPELL_TREAT)) - return false; - if (!sSpellStore.LookupEntry(SPELL_TRICKED_OR_TREATED)) - return false; - return true; - } + public: + spell_gen_trick_or_treat() : SpellScriptLoader("spell_gen_trick_or_treat") {} - void HandleScript(SpellEffIndex /*effIndex*/) + class spell_gen_trick_or_treat_SpellScript : public SpellScript { - if (Player* pTarget = GetHitPlayer()) + PrepareSpellScript(spell_gen_trick_or_treat_SpellScript); + + bool Validate(SpellEntry const* /*spellEntry*/) { - GetCaster()->CastSpell(pTarget, roll_chance_i(50) ? SPELL_TRICK : SPELL_TREAT, true, NULL); - GetCaster()->CastSpell(pTarget, SPELL_TRICKED_OR_TREATED, true, NULL); + if (!sSpellStore.LookupEntry(SPELL_TRICK)) + return false; + if (!sSpellStore.LookupEntry(SPELL_TREAT)) + return false; + if (!sSpellStore.LookupEntry(SPELL_TRICKED_OR_TREATED)) + return false; + return true; + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + if (Player* pTarget = GetHitPlayer()) + { + GetCaster()->CastSpell(pTarget, roll_chance_i(50) ? SPELL_TRICK : SPELL_TREAT, true, NULL); + GetCaster()->CastSpell(pTarget, SPELL_TRICKED_OR_TREATED, true, NULL); + } } - } - void Register() + void Register() + { + OnEffect += SpellEffectFn(spell_gen_trick_or_treat_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } + }; + + SpellScript* GetSpellScript() const { - OnEffect += SpellEffectFn(spell_gen_trick_or_treat_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + return new spell_gen_trick_or_treat_SpellScript(); } - }; - - SpellScript* GetSpellScript() const - { - return new spell_gen_trick_or_treat_SpellScript(); - } }; class spell_creature_permanent_feign_death : public SpellScriptLoader @@ -437,27 +456,27 @@ class spell_creature_permanent_feign_death : public SpellScriptLoader public: spell_creature_permanent_feign_death() : SpellScriptLoader("spell_creature_permanent_feign_death") { } - class spell_creature_permanent_feign_deathAuraScript : public AuraScript + class spell_creature_permanent_feign_death_AuraScript : public AuraScript { - PrepareAuraScript(spell_creature_permanent_feign_deathAuraScript) - void HandleEffectApply(AuraEffect const * /*aurEff*/, AuraEffectHandleModes /*mode*/) - { - Unit* pTarget = GetTarget(); + PrepareAuraScript(spell_creature_permanent_feign_death_AuraScript); - pTarget->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); - pTarget->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); + void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + Unit* target = GetTarget(); + target->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD); + target->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH); } void Register() { - OnEffectApply += AuraEffectApplyFn(spell_creature_permanent_feign_deathAuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + OnEffectApply += AuraEffectApplyFn(spell_creature_permanent_feign_death_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); } }; - AuraScript *GetAuraScript() const - { - return new spell_creature_permanent_feign_deathAuraScript(); - } + AuraScript* GetAuraScript() const + { + return new spell_creature_permanent_feign_death_AuraScript(); + } }; enum PvPTrinketTriggeredSpells @@ -468,47 +487,48 @@ enum PvPTrinketTriggeredSpells class spell_pvp_trinket_wotf_shared_cd : public SpellScriptLoader { -public: - spell_pvp_trinket_wotf_shared_cd() : SpellScriptLoader("spell_pvp_trinket_wotf_shared_cd") {} - - class spell_pvp_trinket_wotf_shared_cd_SpellScript : public SpellScript - { - PrepareSpellScript(spell_pvp_trinket_wotf_shared_cd_SpellScript) - bool Validate(SpellEntry const * /*spellEntry*/) - { - if (!sSpellStore.LookupEntry(SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER)) - return false; - if (!sSpellStore.LookupEntry(SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER_WOTF)) - return false; - return true; - } + public: + spell_pvp_trinket_wotf_shared_cd() : SpellScriptLoader("spell_pvp_trinket_wotf_shared_cd") {} - void HandleScript(SpellEffIndex /*effIndex*/) + class spell_pvp_trinket_wotf_shared_cd_SpellScript : public SpellScript { - Player* pCaster = GetCaster()->ToPlayer(); - if (!pCaster) - return; - const SpellEntry* m_spellInfo = GetSpellInfo(); + PrepareSpellScript(spell_pvp_trinket_wotf_shared_cd_SpellScript); - pCaster->AddSpellCooldown(m_spellInfo->Id, NULL, time(NULL) + GetSpellRecoveryTime(sSpellStore.LookupEntry(SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER)) / IN_MILLISECONDS); - WorldPacket data(SMSG_SPELL_COOLDOWN, 8+1+4); - data << uint64(pCaster->GetGUID()); - data << uint8(0); - data << uint32(m_spellInfo->Id); - data << uint32(0); - pCaster->GetSession()->SendPacket(&data); - } + bool Validate(SpellEntry const* /*spellEntry*/) + { + if (!sSpellStore.LookupEntry(SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER)) + return false; + if (!sSpellStore.LookupEntry(SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER_WOTF)) + return false; + return true; + } - void Register() + void HandleScript(SpellEffIndex /*effIndex*/) + { + Player* caster = GetCaster()->ToPlayer(); + if (!caster) + return; + SpellEntry const* spellInfo = GetSpellInfo(); + + caster->AddSpellCooldown(spellInfo->Id, NULL, time(NULL) + GetSpellRecoveryTime(sSpellStore.LookupEntry(SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER)) / IN_MILLISECONDS); + WorldPacket data(SMSG_SPELL_COOLDOWN, 8+1+4); + data << uint64(caster->GetGUID()); + data << uint8(0); + data << uint32(spellInfo->Id); + data << uint32(0); + caster->GetSession()->SendPacket(&data); + } + + void Register() + { + OnEffect += SpellEffectFn(spell_pvp_trinket_wotf_shared_cd_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const { - OnEffect += SpellEffectFn(spell_pvp_trinket_wotf_shared_cd_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY); + return new spell_pvp_trinket_wotf_shared_cd_SpellScript(); } - }; - - SpellScript* GetSpellScript() const - { - return new spell_pvp_trinket_wotf_shared_cd_SpellScript(); - } }; enum AnimalBloodPoolSpell @@ -564,18 +584,18 @@ class spell_gen_shroud_of_death : public SpellScriptLoader public: spell_gen_shroud_of_death() : SpellScriptLoader("spell_gen_shroud_of_death") { } - class spell_gen_shroud_of_deathAuraScript : public AuraScript + class spell_gen_shroud_of_death_AuraScript : public AuraScript { - PrepareAuraScript(spell_gen_shroud_of_deathAuraScript) + PrepareAuraScript(spell_gen_shroud_of_death_AuraScript); - void HandleEffectApply(AuraEffect const * /*aurEff*/, AuraEffectHandleModes /*mode*/) + void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); target->m_serverSideVisibility.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_GHOST); target->m_serverSideVisibilityDetect.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_GHOST); } - void HandleEffectRemove(AuraEffect const * /*aurEff*/, AuraEffectHandleModes /*mode*/) + void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); target->m_serverSideVisibility.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_ALIVE); @@ -584,14 +604,14 @@ class spell_gen_shroud_of_death : public SpellScriptLoader void Register() { - OnEffectApply += AuraEffectApplyFn(spell_gen_shroud_of_deathAuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); - OnEffectRemove += AuraEffectRemoveFn(spell_gen_shroud_of_deathAuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + OnEffectApply += AuraEffectApplyFn(spell_gen_shroud_of_death_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + OnEffectRemove += AuraEffectRemoveFn(spell_gen_shroud_of_death_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); } }; - AuraScript *GetAuraScript() const + AuraScript* GetAuraScript() const { - return new spell_gen_shroud_of_deathAuraScript(); + return new spell_gen_shroud_of_death_AuraScript(); } }; @@ -603,69 +623,69 @@ enum DivineStormSpell // 70769 Divine Storm! class spell_gen_divine_storm_cd_reset : public SpellScriptLoader { -public: - spell_gen_divine_storm_cd_reset() : SpellScriptLoader("spell_gen_divine_storm_cd_reset") {} + public: + spell_gen_divine_storm_cd_reset() : SpellScriptLoader("spell_gen_divine_storm_cd_reset") {} - class spell_gen_divine_storm_cd_reset_SpellScript : public SpellScript - { - PrepareSpellScript(spell_gen_divine_storm_cd_reset_SpellScript) - bool Validate(SpellEntry const * /*spellEntry*/) + class spell_gen_divine_storm_cd_reset_SpellScript : public SpellScript { - if (!sSpellStore.LookupEntry(SPELL_DIVINE_STORM)) - return false; - return true; - } + PrepareSpellScript(spell_gen_divine_storm_cd_reset_SpellScript); - void HandleScript(SpellEffIndex /*effIndex*/) - { - if (Player *caster = GetCaster()->ToPlayer()) - if (caster->HasSpellCooldown(SPELL_DIVINE_STORM)) - caster->RemoveSpellCooldown(SPELL_DIVINE_STORM, true); - } + bool Validate(SpellEntry const* /*spellEntry*/) + { + if (!sSpellStore.LookupEntry(SPELL_DIVINE_STORM)) + return false; + return true; + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + if (Player *caster = GetCaster()->ToPlayer()) + if (caster->HasSpellCooldown(SPELL_DIVINE_STORM)) + caster->RemoveSpellCooldown(SPELL_DIVINE_STORM, true); + } - void Register() + void Register() + { + OnEffect += SpellEffectFn(spell_gen_divine_storm_cd_reset_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY); + } + }; + + SpellScript* GetSpellScript() const { - OnEffect += SpellEffectFn(spell_gen_divine_storm_cd_reset_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY); + return new spell_gen_divine_storm_cd_reset_SpellScript(); } - }; - - SpellScript* GetSpellScript() const - { - return new spell_gen_divine_storm_cd_reset_SpellScript(); - } }; class spell_gen_gunship_portal : public SpellScriptLoader { -public: - spell_gen_gunship_portal() : SpellScriptLoader("spell_gen_gunship_portal") { } + public: + spell_gen_gunship_portal() : SpellScriptLoader("spell_gen_gunship_portal") { } - class spell_gen_gunship_portalSpellScript : public SpellScript - { - PrepareSpellScript(spell_gen_gunship_portalSpellScript) - void HandleScript(SpellEffIndex /*effIndex*/) + class spell_gen_gunship_portal_SpellScript : public SpellScript { - Unit* caster = GetCaster(); - if (!caster->ToPlayer()) - return; + PrepareSpellScript(spell_gen_gunship_portal_SpellScript); - if (Battleground *bg = caster->ToPlayer()->GetBattleground()) + void HandleScript(SpellEffIndex /*effIndex*/) { - if (bg->GetTypeID(true) == BATTLEGROUND_IC) - bg->DoAction(1,caster->GetGUID()); + Unit* caster = GetCaster(); + if (caster->GetTypeId() != TYPEID_PLAYER) + return; + + if (Battleground *bg = caster->ToPlayer()->GetBattleground()) + if (bg->GetTypeID(true) == BATTLEGROUND_IC) + bg->DoAction(1, caster->GetGUID()); } - } - void Register() + void Register() + { + OnEffect += SpellEffectFn(spell_gen_gunship_portal_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } + }; + + SpellScript* GetSpellScript() const { - OnEffect += SpellEffectFn(spell_gen_gunship_portalSpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + return new spell_gen_gunship_portal_SpellScript(); } - }; - - SpellScript* GetSpellScript() const - { - return new spell_gen_gunship_portalSpellScript(); - } }; enum parachuteIC @@ -678,11 +698,11 @@ class spell_gen_parachute_ic : public SpellScriptLoader public: spell_gen_parachute_ic() : SpellScriptLoader("spell_gen_parachute_ic") { } - class spell_gen_parachute_icAuraScript : public AuraScript + class spell_gen_parachute_ic_AuraScript : public AuraScript { - PrepareAuraScript(spell_gen_parachute_icAuraScript) + PrepareAuraScript(spell_gen_parachute_ic_AuraScript) - void HandleTriggerSpell(AuraEffect const * /*aurEff*/) + void HandleTriggerSpell(AuraEffect const* /*aurEff*/) { Unit* target = GetTarget(); @@ -695,13 +715,13 @@ class spell_gen_parachute_ic : public SpellScriptLoader void Register() { - OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_parachute_icAuraScript::HandleTriggerSpell, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL); + OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_parachute_ic_AuraScript::HandleTriggerSpell, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL); } }; - AuraScript *GetAuraScript() const + AuraScript* GetAuraScript() const { - return new spell_gen_parachute_icAuraScript(); + return new spell_gen_parachute_ic_AuraScript(); } }; |