diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPGH.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPGH.cpp index d3e56186b..7e3f11813 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPGH.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPGH.cpp @@ -45,6 +45,23 @@ void OutdoorPvPGH::SendRemoveWorldStates(Player* player) player->SendUpdateWorldState(WORLD_STATE_OPVP_GH_UI_SLIDER_N, 0); } +void OutdoorPvPGH::HandleKill(Player* killer, Unit* killed) +{ + if (!killed->IsPlayer()) + return; + + if (!killer->isHonorOrXPTarget(killed)) + return; + + if (killer->GetTeamId() == TEAM_ALLIANCE) + if (killer->GetQuestStatus(GH_QUEST_KICK_EM_WHILE_THEYRE_DOWN) == QUEST_STATUS_INCOMPLETE) + killer->KilledMonsterCredit(GH_CREATURE_QUEST_BUNNY); + + if (killer->GetTeamId() == TEAM_HORDE) + if (killer->GetQuestStatus(GH_QUEST_KEEP_EM_ON_THEIR_HEELS) == QUEST_STATUS_INCOMPLETE) + killer->KilledMonsterCredit(GH_CREATURE_QUEST_BUNNY); +} + OPvPCapturePointGH::OPvPCapturePointGH(OutdoorPvP* pvp) : OPvPCapturePoint(pvp) { SetCapturePointData(189310, MAP_NORTHREND, 2483.68f, -1873.6f, 10.6877f, -0.104719f, 0.0f, 0.0f, 0.0f, 1.0f); diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPGH.h b/src/server/scripts/OutdoorPvP/OutdoorPvPGH.h index 6b74f97b4..40d41ecae 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPGH.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPGH.h @@ -26,6 +26,10 @@ enum OutdoorPvPGHenum GH_HORDE_DEFENSE_EVENT = 66, GH_ZONE = 394, + + GH_QUEST_KEEP_EM_ON_THEIR_HEELS = 12284, + GH_QUEST_KICK_EM_WHILE_THEYRE_DOWN = 12289, + GH_CREATURE_QUEST_BUNNY = 27453, }; class Unit; @@ -38,6 +42,7 @@ public: OutdoorPvPGH(); bool SetupOutdoorPvP() override; void SendRemoveWorldStates(Player* player) override; + void HandleKill(Player* killer, Unit* killed) override; }; class OPvPCapturePointGH : public OPvPCapturePoint