fl demolisher ride vehicle

This commit is contained in:
Jelle Meeus
2024-06-09 19:09:35 +02:00
parent d79acde630
commit faabb81536

View File

@@ -1915,47 +1915,36 @@ private:
uint32 _absorbPct;
};
class spell_demolisher_ride_vehicle : public SpellScriptLoader
class spell_demolisher_ride_vehicle : public SpellScript
{
public:
spell_demolisher_ride_vehicle() : SpellScriptLoader("spell_demolisher_ride_vehicle") {}
PrepareSpellScript(spell_demolisher_ride_vehicle);
class spell_demolisher_ride_vehicle_SpellScript : public SpellScript
SpellCastResult CheckCast()
{
PrepareSpellScript(spell_demolisher_ride_vehicle_SpellScript);
SpellCastResult CheckCast()
{
if (GetCaster()->GetTypeId() != TYPEID_PLAYER)
return SPELL_CAST_OK;
Unit* target = this->GetExplTargetUnit();
if (!target || target->GetEntry() != NPC_SALVAGED_DEMOLISHER)
return SPELL_FAILED_DONT_REPORT;
Vehicle* veh = target->GetVehicleKit();
if (veh && veh->GetPassenger(0))
if (Unit* target2 = veh->GetPassenger(1))
if (Vehicle* veh2 = target2->GetVehicleKit())
{
if (!veh2->GetPassenger(0))
target2->HandleSpellClick(GetCaster());
return SPELL_FAILED_DONT_REPORT;
}
if (GetCaster()->GetTypeId() != TYPEID_PLAYER)
return SPELL_CAST_OK;
}
void Register() override
{
OnCheckCast += SpellCheckCastFn(spell_demolisher_ride_vehicle_SpellScript::CheckCast);
}
};
Unit* target = this->GetExplTargetUnit();
if (!target || target->GetEntry() != NPC_SALVAGED_DEMOLISHER)
return SPELL_FAILED_DONT_REPORT;
SpellScript* GetSpellScript() const override
Vehicle* vehicle = target->GetVehicleKit();
if (vehicle && vehicle->GetPassenger(0))
if (Unit* target2 = vehicle->GetPassenger(1))
if (Vehicle* vehicle2 = target2->GetVehicleKit())
{
if (!vehicle2->GetPassenger(0))
target2->HandleSpellClick(GetCaster());
return SPELL_FAILED_DONT_REPORT;
}
return SPELL_CAST_OK;
}
void Register() override
{
return new spell_demolisher_ride_vehicle_SpellScript();
OnCheckCast += SpellCheckCastFn(spell_demolisher_ride_vehicle::CheckCast);
}
};
@@ -2061,7 +2050,7 @@ void AddSC_boss_flame_leviathan()
RegisterSpellScript(spell_thorims_hammer);
RegisterSpellScript(spell_transitus_shield_beam_aura);
RegisterSpellScript(spell_shield_generator_aura);
new spell_demolisher_ride_vehicle();
RegisterSpellScript(spell_demolisher_ride_vehicle);
// Achievements
new achievement_flame_leviathan_towers("achievement_flame_leviathan_orbital_bombardment", 1);