Scripts/Spells: Quest King of the Mountain

Added missing jump jets and battle standard visuals
Added allowed area conditions for the vehicle
Fixed Jumpbot's attack spell (thanks @keader for fixing the proc)
This commit is contained in:
sirikfoll
2018-03-10 13:31:49 -03:00
parent 285ec76d0d
commit e7e46b2a82
2 changed files with 86 additions and 24 deletions

View File

@@ -996,36 +996,57 @@ class spell_q12805_lifeblood_dummy : public SpellScriptLoader
*/
enum BattleStandard
{
NPC_KING_OF_THE_MOUNTAINT_KC = 31766,
NPC_KING_OF_THE_MOUNTAINT_KC = 31766,
SPELL_PLANT_HORDE_BATTLE_STANDARD = 59643,
SPELL_HORDE_BATTLE_STANDARD_STATE = 59642,
SPELL_ALLIANCE_BATTLE_STANDARD_STATE = 4339,
SPELL_JUMP_ROCKET_BLAST = 4340
};
class spell_q13280_13283_plant_battle_standard: public SpellScriptLoader
class spell_q13280_13283_plant_battle_standard : public SpellScript
{
public:
spell_q13280_13283_plant_battle_standard() : SpellScriptLoader("spell_q13280_13283_plant_battle_standard") { }
PrepareSpellScript(spell_q13280_13283_plant_battle_standard);
class spell_q13280_13283_plant_battle_standard_SpellScript : public SpellScript
{
PrepareSpellScript(spell_q13280_13283_plant_battle_standard_SpellScript);
void HandleDummy(SpellEffIndex /*effIndex*/)
{
Unit* caster = GetCaster();
Unit* target = GetHitUnit();
uint32 triggeredSpellID = SPELL_ALLIANCE_BATTLE_STANDARD_STATE;
void HandleDummy(SpellEffIndex /*effIndex*/)
{
Unit* caster = GetCaster();
if (caster->IsVehicle())
if (Unit* player = caster->GetVehicleKit()->GetPassenger(0))
player->ToPlayer()->KilledMonsterCredit(NPC_KING_OF_THE_MOUNTAINT_KC);
}
caster->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
if (caster->IsVehicle())
if (Unit* player = caster->GetVehicleKit()->GetPassenger(0))
player->ToPlayer()->KilledMonsterCredit(NPC_KING_OF_THE_MOUNTAINT_KC);
void Register() override
{
OnEffectHit += SpellEffectFn(spell_q13280_13283_plant_battle_standard_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
if (GetSpellInfo()->Id == SPELL_PLANT_HORDE_BATTLE_STANDARD)
triggeredSpellID = SPELL_HORDE_BATTLE_STANDARD_STATE;
SpellScript* GetSpellScript() const override
{
return new spell_q13280_13283_plant_battle_standard_SpellScript();
}
target->RemoveAllAuras();
target->CastSpell(target, triggeredSpellID, true);
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_q13280_13283_plant_battle_standard::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
class spell_q13280_13283_jump_jets : public SpellScript
{
PrepareSpellScript(spell_q13280_13283_jump_jets);
void HandleCast()
{
Unit* caster = GetCaster();
if (caster->IsVehicle())
if (Unit* rocketBunny = caster->GetVehicleKit()->GetPassenger(1))
rocketBunny->CastSpell(rocketBunny, SPELL_JUMP_ROCKET_BLAST, true);
}
void Register() override
{
OnCast += SpellCastFn(spell_q13280_13283_jump_jets::HandleCast);
}
};
enum ChumTheWaterSummons
@@ -2790,7 +2811,8 @@ void AddSC_quest_spell_scripts()
new spell_q12659_ahunaes_knife();
new spell_q9874_liquid_fire();
new spell_q12805_lifeblood_dummy();
new spell_q13280_13283_plant_battle_standard();
RegisterSpellScript(spell_q13280_13283_plant_battle_standard);
RegisterSpellScript(spell_q13280_13283_jump_jets);
new spell_q14112_14145_chum_the_water();
new spell_q9452_cast_net();
new spell_q12279_cast_net();