From 8c7f995fae81fd85cf7404e24eab07bf620f0c4f Mon Sep 17 00:00:00 2001 From: lee1991 Date: Wed, 1 Feb 2017 10:18:38 +0000 Subject: [PATCH] Fixed brann_bronzebeard in halls_of_stone to stop moving near the end door, also does emote at end Waypoint to make it more blizzlike Closes #361 --- .../Ulduar/HallsOfStone/brann_bronzebeard.cpp | 26 +++++++++++++++++-- .../Ulduar/HallsOfStone/halls_of_stone.h | 3 ++- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/scripts/Northrend/Ulduar/HallsOfStone/brann_bronzebeard.cpp b/src/scripts/Northrend/Ulduar/HallsOfStone/brann_bronzebeard.cpp index 01cd4a282..9d6a42acf 100644 --- a/src/scripts/Northrend/Ulduar/HallsOfStone/brann_bronzebeard.cpp +++ b/src/scripts/Northrend/Ulduar/HallsOfStone/brann_bronzebeard.cpp @@ -13,6 +13,7 @@ #define GOSSIP_ITEM_1 "Brann, it would be our honor!" #define GOSSIP_ITEM_2 "Let's move Brann, enough of the history lessons!" #define GOSSIP_ITEM_3 "We dont have time for this right now, we have to keep going." +#define GOSSIP_ITEM_4 "We're with you Brann! Open it!" #define TEXT_ID_START 13100 #define YELL_AGGRO "You be dead soon enough!" @@ -59,6 +60,7 @@ enum Misc ACTION_SJONNIR_DEAD = 4, ACTION_ENTEREVADEMODE = 5, ACTION_WIPE_START = 6, + ACTION_OPEN_DOOR =7, // QUESTS QUEST_HALLS_OF_STONE = 13207, @@ -171,6 +173,9 @@ public: case 4: player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4); break; + case 5: + player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5); + break; default: break; } @@ -201,6 +206,10 @@ public: pCreature->AI()->DoAction(ACTION_WIPE_START); player->CLOSE_GOSSIP_MENU(); break; + case GOSSIP_ACTION_INFO_DEF+5: + pCreature->AI()->DoAction(ACTION_OPEN_DOOR); + player->CLOSE_GOSSIP_MENU(); + break; } } return true; @@ -360,6 +369,12 @@ public: ResetEvent(); me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); break; + case ACTION_OPEN_DOOR: + if (GameObject *door = ObjectAccessor::GetGameObject(*me, pInstance->GetData64(GO_SJONNIR_DOOR))) + door->SetGoState(GO_STATE_ACTIVE); + SetEscortPaused(false); + me->RemoveAura(58506); + break; } } @@ -504,6 +519,9 @@ public: } case EVENT_GO_TO_SJONNIR: { + + if (GameObject *door = ObjectAccessor::GetGameObject(*me, pInstance->GetData64(GO_SJONNIR_DOOR))) + door->SetGoState(GO_STATE_ACTIVE); SetEscortPaused(false); ResetEvent(); me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); @@ -633,12 +651,15 @@ void brann_bronzebeard::brann_bronzebeardAI::WaypointReached(uint32 id) break; // Before Sjonnir's door case 27: + SetEscortPaused(true); if(pInstance) { - if (GameObject *door = ObjectAccessor::GetGameObject(*me, pInstance->GetData64(GO_SJONNIR_DOOR))) - door->SetGoState(GO_STATE_ACTIVE); + pInstance->SetData(BRANN_BRONZEBEARD, 5); + me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER); if (Creature *cr = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_SJONNIR))) cr->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); + me->SetOrientation(3.132660f); + DoCast(me, 58506, false); } break; case 28: @@ -646,6 +667,7 @@ void brann_bronzebeard::brann_bronzebeardAI::WaypointReached(uint32 id) break; case 29: SetEscortPaused(true); + me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING); if (pInstance) if (GameObject *console = ObjectAccessor::GetGameObject(*me, pInstance->GetData64(GO_SJONNIR_CONSOLE))) console->SetGoState(GO_STATE_ACTIVE); diff --git a/src/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h b/src/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h index b0b90ca89..59f2923b2 100644 --- a/src/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h +++ b/src/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.h @@ -14,7 +14,8 @@ enum Encounter BOSS_TRIBUNAL_OF_AGES = 2, BOSS_SJONNIR = 3, BRANN_BRONZEBEARD = 4, - MAX_ENCOUNTER = 5, + BRANN_DOOR = 5, + MAX_ENCOUNTER = 6, DATA_BRANN_ACHIEVEMENT, DATA_SJONNIR_ACHIEVEMENT,