fix(Core/GameObjectScript): Load ICC Scourge Teleport gossip from DB (#2192)

This commit is contained in:
Dmitry Brusenskiy
2019-09-11 23:56:41 +03:00
committed by Stoabrogga
parent 8d7272226c
commit 054c53b367

View File

@@ -11,6 +11,16 @@
#define GOSSIP_SENDER_ICC_PORT 631
enum ICCTeleportOption
{
ICC_TELEPORT_GOSSIP_OPT_LIGHTS_HAMMER = 0,
ICC_TELEPORT_GOSSIP_OPT_ORATORY_OF_THE_DAMNED = 1,
ICC_TELEPORT_GOSSIP_OPT_RAMPART_OF_SKULLS = 3,
ICC_TELEPORT_GOSSIP_OPT_DEATHBRINGERS_RISE = 4,
ICC_TELEPORT_GOSSIP_OPT_UPPER_SPIRE = 5,
ICC_TELEPORT_GOSSIP_OPT_SINDRAGOSAS_LAIR = 6
};
class icecrown_citadel_teleport : public GameObjectScript
{
public:
@@ -18,21 +28,41 @@ class icecrown_citadel_teleport : public GameObjectScript
bool OnGossipHello(Player* player, GameObject* go) override
{
uint32 gossipMenuId = go->GetGOInfo()->GetGossipMenuId();
if (go->GetEntry() != GO_SCOURGE_TRANSPORTER_FIRST)
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to Light's Hammer.", GOSSIP_SENDER_ICC_PORT, LIGHT_S_HAMMER_TELEPORT); // M_PI + M_PI/6
AddGossipItemFor(
player, gossipMenuId, ICC_TELEPORT_GOSSIP_OPT_LIGHTS_HAMMER,
GOSSIP_SENDER_ICC_PORT, LIGHT_S_HAMMER_TELEPORT
); // M_PI + M_PI/6
if (InstanceScript* instance = go->GetInstanceScript())
{
if (instance->GetBossState(DATA_LORD_MARROWGAR) == DONE && go->GetEntry() != 202245)
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to the Oratory of the Damned.", GOSSIP_SENDER_ICC_PORT, ORATORY_OF_THE_DAMNED_TELEPORT); // M_PI + M_PI/6
AddGossipItemFor(
player, gossipMenuId, ICC_TELEPORT_GOSSIP_OPT_ORATORY_OF_THE_DAMNED,
GOSSIP_SENDER_ICC_PORT, ORATORY_OF_THE_DAMNED_TELEPORT
); // M_PI + M_PI/6
if (instance->GetBossState(DATA_LADY_DEATHWHISPER) == DONE && go->GetEntry() != 202243)
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to the Rampart of Skulls.", GOSSIP_SENDER_ICC_PORT, RAMPART_OF_SKULLS_TELEPORT); // M_PI/6
AddGossipItemFor(
player, gossipMenuId, ICC_TELEPORT_GOSSIP_OPT_RAMPART_OF_SKULLS,
GOSSIP_SENDER_ICC_PORT, RAMPART_OF_SKULLS_TELEPORT
); // M_PI/6
if (instance->GetBossState(DATA_ICECROWN_GUNSHIP_BATTLE) == DONE && go->GetEntry() != 202244)
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to the Deathbringer's Rise.", GOSSIP_SENDER_ICC_PORT, DEATHBRINGER_S_RISE_TELEPORT); // M_PI/6
AddGossipItemFor(
player, gossipMenuId, ICC_TELEPORT_GOSSIP_OPT_DEATHBRINGERS_RISE,
GOSSIP_SENDER_ICC_PORT, DEATHBRINGER_S_RISE_TELEPORT
); // M_PI/6
if (instance->GetData(DATA_COLDFLAME_JETS) == DONE && go->GetEntry() != 202235)
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to the Upper Spire.", GOSSIP_SENDER_ICC_PORT, UPPER_SPIRE_TELEPORT); // M_PI/6
AddGossipItemFor(
player, gossipMenuId, ICC_TELEPORT_GOSSIP_OPT_UPPER_SPIRE,
GOSSIP_SENDER_ICC_PORT, UPPER_SPIRE_TELEPORT
); // M_PI/6
if (instance->GetBossState(DATA_VALITHRIA_DREAMWALKER) == DONE && instance->GetBossState(DATA_SINDRAGOSA_GAUNTLET) == DONE && go->GetEntry() != 202246)
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to Sindragosa's Lair", GOSSIP_SENDER_ICC_PORT, SINDRAGOSA_S_LAIR_TELEPORT); // M_PI*3/2 + M_PI/6
AddGossipItemFor(
player, gossipMenuId, ICC_TELEPORT_GOSSIP_OPT_SINDRAGOSAS_LAIR,
GOSSIP_SENDER_ICC_PORT, SINDRAGOSA_S_LAIR_TELEPORT
); // M_PI*3/2 + M_PI/6
}
SendGossipMenuFor(player, player->GetGossipTextId(go), go->GetGUID());