Scripts/Spells: Cleanup in spell_generic

This commit is contained in:
Shauren
2011-03-04 20:20:06 +01:00
parent 7798474e74
commit 7ecaf1d816
+92 -72
View File
@@ -68,7 +68,8 @@ public:
class spell_gen_aura_of_anger_AuraScript : public AuraScript
{
PrepareAuraScript(spell_gen_aura_of_anger_AuraScript)
PrepareAuraScript(spell_gen_aura_of_anger_AuraScript);
void HandleEffectPeriodicUpdate(AuraEffect* aurEff)
{
if (AuraEffect* aurEff1 = aurEff->GetBase()->GetEffect(EFFECT_1))
@@ -96,7 +97,8 @@ public:
class spell_gen_burn_brutallus_AuraScript : public AuraScript
{
PrepareAuraScript(spell_gen_burn_brutallus_AuraScript)
PrepareAuraScript(spell_gen_burn_brutallus_AuraScript);
void HandleEffectPeriodicUpdate(AuraEffect* aurEff)
{
if (aurEff->GetTickNumber() % 11 == 0)
@@ -129,7 +131,8 @@ public:
class spell_gen_parachute_AuraScript : public AuraScript
{
PrepareAuraScript(spell_gen_parachute_AuraScript)
PrepareAuraScript(spell_gen_parachute_AuraScript);
bool Validate(SpellEntry const* /*spellEntry*/)
{
if (!sSpellStore.LookupEntry(SPELL_PARACHUTE))
@@ -141,12 +144,13 @@ public:
void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
{
Unit* pTarget = GetTarget();
if (Player* pPlayerTarget = pTarget->ToPlayer())
if (pPlayerTarget->IsFalling())
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);
}
}
}
@@ -174,9 +178,10 @@ class spell_gen_pet_summoned : public SpellScriptLoader
public:
spell_gen_pet_summoned() : SpellScriptLoader("spell_gen_pet_summoned") { }
class spell_gen_pet_summonedSpellScript : public SpellScript
class spell_gen_pet_summoned_SpellScript : public SpellScript
{
PrepareSpellScript(spell_gen_pet_summonedSpellScript)
PrepareSpellScript(spell_gen_pet_summoned_SpellScript);
void HandleScript(SpellEffIndex /*effIndex*/)
{
Unit* caster = GetCaster();
@@ -184,45 +189,45 @@ public:
return;
Player* plr = caster->ToPlayer();
if (plr && plr->GetLastPetNumber())
if (plr->GetLastPetNumber())
{
PetType NewPetType = (plr->getClass() == CLASS_HUNTER) ? HUNTER_PET : SUMMON_PET;
if (Pet* NewPet = new Pet(plr, NewPetType))
PetType newPetType = (plr->getClass() == CLASS_HUNTER) ? HUNTER_PET : SUMMON_PET;
if (Pet* newPet = new Pet(plr, newPetType))
{
if (NewPet->LoadPetFromDB(plr, 0, plr->GetLastPetNumber(), true))
if (newPet->LoadPetFromDB(plr, 0, plr->GetLastPetNumber(), true))
{
// revive the pet if it is dead
if (NewPet->getDeathState() == DEAD)
NewPet->setDeathState(ALIVE);
if (newPet->getDeathState() == DEAD)
newPet->setDeathState(ALIVE);
NewPet->SetFullHealth();
NewPet->SetPower(NewPet->getPowerType(),NewPet->GetMaxPower(NewPet->getPowerType()));
newPet->SetFullHealth();
newPet->SetPower(newPet->getPowerType(), newPet->GetMaxPower(newPet->getPowerType()));
switch (NewPet->GetEntry())
switch (newPet->GetEntry())
{
case NPC_DOOMGUARD:
case NPC_INFERNAL:
NewPet->SetEntry(NPC_IMP);
newPet->SetEntry(NPC_IMP);
break;
default:
break;
}
}
else
delete NewPet;
delete newPet;
}
}
}
void Register()
{
OnEffect += SpellEffectFn(spell_gen_pet_summonedSpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffect += SpellEffectFn(spell_gen_pet_summoned_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const
{
return new spell_gen_pet_summonedSpellScript();
return new spell_gen_pet_summoned_SpellScript();
}
};
@@ -234,7 +239,7 @@ public:
class spell_gen_remove_flight_auras_SpellScript : public SpellScript
{
PrepareSpellScript(spell_gen_remove_flight_auras_SpellScript)
void HandleScript(SpellEffIndex /*effIndex*/)
void HandleScript(SpellEffIndex /*effIndex*/);
{
Unit* target = GetHitUnit();
if (!target)
@@ -269,7 +274,8 @@ public:
class spell_gen_leeching_swarm_AuraScript : public AuraScript
{
PrepareAuraScript(spell_gen_leeching_swarm_AuraScript)
PrepareAuraScript(spell_gen_leeching_swarm_AuraScript);
bool Validate(SpellEntry const* /*spellEntry*/)
{
if (!sSpellStore.LookupEntry(SPELL_LEECHING_SWARM_DMG))
@@ -281,16 +287,15 @@ public:
void HandleEffectPeriodic(AuraEffect const* aurEff)
{
if (Unit* pTarget = GetTarget())
if (Unit* pCaster = GetCaster())
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);
}
}
@@ -328,7 +333,7 @@ public:
class spell_gen_trick_SpellScript : public SpellScript
{
PrepareSpellScript(spell_gen_trick_SpellScript)
PrepareSpellScript(spell_gen_trick_SpellScript);
bool Validate(SpellEntry const* /*spellEntry*/)
{
if (!sSpellStore.LookupEntry(SPELL_PIRATE_COSTUME_MALE))
@@ -356,19 +361,32 @@ public:
void HandleScript(SpellEffIndex /*effIndex*/)
{
if (Player* pTarget = GetHitPlayer())
if (Player* target = GetHitPlayer())
{
uint8 gender = pTarget->getGender();
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;
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(pTarget, spellId, true, NULL);
GetCaster()->CastSpell(target, spellId, true, NULL);
}
}
@@ -399,7 +417,8 @@ public:
class spell_gen_trick_or_treat_SpellScript : public SpellScript
{
PrepareSpellScript(spell_gen_trick_or_treat_SpellScript)
PrepareSpellScript(spell_gen_trick_or_treat_SpellScript);
bool Validate(SpellEntry const* /*spellEntry*/)
{
if (!sSpellStore.LookupEntry(SPELL_TRICK))
@@ -437,26 +456,26 @@ 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)
PrepareAuraScript(spell_creature_permanent_feign_death_AuraScript);
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
Unit* pTarget = GetTarget();
pTarget->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
pTarget->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
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();
return new spell_creature_permanent_feign_death_AuraScript();
}
};
@@ -473,7 +492,8 @@ public:
class spell_pvp_trinket_wotf_shared_cd_SpellScript : public SpellScript
{
PrepareSpellScript(spell_pvp_trinket_wotf_shared_cd_SpellScript)
PrepareSpellScript(spell_pvp_trinket_wotf_shared_cd_SpellScript);
bool Validate(SpellEntry const* /*spellEntry*/)
{
if (!sSpellStore.LookupEntry(SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER))
@@ -485,18 +505,18 @@ public:
void HandleScript(SpellEffIndex /*effIndex*/)
{
Player* pCaster = GetCaster()->ToPlayer();
if (!pCaster)
Player* caster = GetCaster()->ToPlayer();
if (!caster)
return;
const SpellEntry* m_spellInfo = GetSpellInfo();
SpellEntry const* spellInfo = GetSpellInfo();
pCaster->AddSpellCooldown(m_spellInfo->Id, NULL, time(NULL) + GetSpellRecoveryTime(sSpellStore.LookupEntry(SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER)) / IN_MILLISECONDS);
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(pCaster->GetGUID());
data << uint64(caster->GetGUID());
data << uint8(0);
data << uint32(m_spellInfo->Id);
data << uint32(spellInfo->Id);
data << uint32(0);
pCaster->GetSession()->SendPacket(&data);
caster->GetSession()->SendPacket(&data);
}
void Register()
@@ -564,9 +584,9 @@ 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*/)
{
@@ -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
{
return new spell_gen_shroud_of_deathAuraScript();
return new spell_gen_shroud_of_death_AuraScript();
}
};
@@ -608,7 +628,8 @@ public:
class spell_gen_divine_storm_cd_reset_SpellScript : public SpellScript
{
PrepareSpellScript(spell_gen_divine_storm_cd_reset_SpellScript)
PrepareSpellScript(spell_gen_divine_storm_cd_reset_SpellScript);
bool Validate(SpellEntry const* /*spellEntry*/)
{
if (!sSpellStore.LookupEntry(SPELL_DIVINE_STORM))
@@ -640,31 +661,30 @@ class spell_gen_gunship_portal : public SpellScriptLoader
public:
spell_gen_gunship_portal() : SpellScriptLoader("spell_gen_gunship_portal") { }
class spell_gen_gunship_portalSpellScript : public SpellScript
class spell_gen_gunship_portal_SpellScript : public SpellScript
{
PrepareSpellScript(spell_gen_gunship_portalSpellScript)
PrepareSpellScript(spell_gen_gunship_portal_SpellScript);
void HandleScript(SpellEffIndex /*effIndex*/)
{
Unit* caster = GetCaster();
if (!caster->ToPlayer())
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()
{
OnEffect += SpellEffectFn(spell_gen_gunship_portalSpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffect += SpellEffectFn(spell_gen_gunship_portal_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const
{
return new spell_gen_gunship_portalSpellScript();
return new spell_gen_gunship_portal_SpellScript();
}
};
@@ -678,9 +698,9 @@ 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*/)
{
@@ -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
{
return new spell_gen_parachute_icAuraScript();
return new spell_gen_parachute_ic_AuraScript();
}
};