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
This commit is contained in:
lee1991
2017-02-01 10:18:38 +00:00
parent c60dc9d3a3
commit 8c7f995fae
2 changed files with 26 additions and 3 deletions
@@ -13,6 +13,7 @@
#define GOSSIP_ITEM_1 "Brann, it would be our honor!" #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_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_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 TEXT_ID_START 13100
#define YELL_AGGRO "You be dead soon enough!" #define YELL_AGGRO "You be dead soon enough!"
@@ -59,6 +60,7 @@ enum Misc
ACTION_SJONNIR_DEAD = 4, ACTION_SJONNIR_DEAD = 4,
ACTION_ENTEREVADEMODE = 5, ACTION_ENTEREVADEMODE = 5,
ACTION_WIPE_START = 6, ACTION_WIPE_START = 6,
ACTION_OPEN_DOOR =7,
// QUESTS // QUESTS
QUEST_HALLS_OF_STONE = 13207, QUEST_HALLS_OF_STONE = 13207,
@@ -171,6 +173,9 @@ public:
case 4: case 4:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
break; break;
case 5:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
break;
default: break; default: break;
} }
@@ -201,6 +206,10 @@ public:
pCreature->AI()->DoAction(ACTION_WIPE_START); pCreature->AI()->DoAction(ACTION_WIPE_START);
player->CLOSE_GOSSIP_MENU(); player->CLOSE_GOSSIP_MENU();
break; break;
case GOSSIP_ACTION_INFO_DEF+5:
pCreature->AI()->DoAction(ACTION_OPEN_DOOR);
player->CLOSE_GOSSIP_MENU();
break;
} }
} }
return true; return true;
@@ -360,6 +369,12 @@ public:
ResetEvent(); ResetEvent();
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
break; 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: case EVENT_GO_TO_SJONNIR:
{ {
if (GameObject *door = ObjectAccessor::GetGameObject(*me, pInstance->GetData64(GO_SJONNIR_DOOR)))
door->SetGoState(GO_STATE_ACTIVE);
SetEscortPaused(false); SetEscortPaused(false);
ResetEvent(); ResetEvent();
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
@@ -633,12 +651,15 @@ void brann_bronzebeard::brann_bronzebeardAI::WaypointReached(uint32 id)
break; break;
// Before Sjonnir's door // Before Sjonnir's door
case 27: case 27:
SetEscortPaused(true);
if(pInstance) if(pInstance)
{ {
if (GameObject *door = ObjectAccessor::GetGameObject(*me, pInstance->GetData64(GO_SJONNIR_DOOR))) pInstance->SetData(BRANN_BRONZEBEARD, 5);
door->SetGoState(GO_STATE_ACTIVE); me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
if (Creature *cr = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_SJONNIR))) if (Creature *cr = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_SJONNIR)))
cr->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); cr->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetOrientation(3.132660f);
DoCast(me, 58506, false);
} }
break; break;
case 28: case 28:
@@ -646,6 +667,7 @@ void brann_bronzebeard::brann_bronzebeardAI::WaypointReached(uint32 id)
break; break;
case 29: case 29:
SetEscortPaused(true); SetEscortPaused(true);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING);
if (pInstance) if (pInstance)
if (GameObject *console = ObjectAccessor::GetGameObject(*me, pInstance->GetData64(GO_SJONNIR_CONSOLE))) if (GameObject *console = ObjectAccessor::GetGameObject(*me, pInstance->GetData64(GO_SJONNIR_CONSOLE)))
console->SetGoState(GO_STATE_ACTIVE); console->SetGoState(GO_STATE_ACTIVE);
@@ -14,7 +14,8 @@ enum Encounter
BOSS_TRIBUNAL_OF_AGES = 2, BOSS_TRIBUNAL_OF_AGES = 2,
BOSS_SJONNIR = 3, BOSS_SJONNIR = 3,
BRANN_BRONZEBEARD = 4, BRANN_BRONZEBEARD = 4,
MAX_ENCOUNTER = 5, BRANN_DOOR = 5,
MAX_ENCOUNTER = 6,
DATA_BRANN_ACHIEVEMENT, DATA_BRANN_ACHIEVEMENT,
DATA_SJONNIR_ACHIEVEMENT, DATA_SJONNIR_ACHIEVEMENT,