diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp b/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp index caed800001f..4d2d3234155 100644 --- a/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp +++ b/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp @@ -118,7 +118,15 @@ enum eEnums //using these custom points for dragons start and end POINT_ID_INIT = 100, - POINT_ID_LAND = 200 + POINT_ID_LAND = 200, + + //Achievements + ACHIEV_TWILIGHT_ASSIST = 2049, + H_ACHIEV_TWILIGHT_ASSIST = 2052, + ACHIEV_TWILIGHT_DUO = 2050, + H_ACHIEV_TWILIGHT_DUO = 2053, + ACHIEV_TWILIGHT_ZONE = 2051, + H_ACHIEV_TWILIGHT_ZONE = 2054 }; struct Waypoint @@ -190,6 +198,8 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI bool m_bHasCalledShadron; bool m_bHasCalledVesperon; + uint32 achievProgress; + void Reset() { m_bIsBerserk = false; @@ -216,6 +226,8 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI m_creature->RemoveAurasDueToSpell(SPELL_TWILIGHT_REVENGE); m_creature->ResetLootMode(); + + achievProgress = 0; } void JustReachedHome() @@ -224,7 +236,7 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI pInstance->SetData(TYPE_SARTHARION_EVENT, NOT_STARTED); } - void Aggro(Unit* pWho) + void EnterCombat(Unit* pWho) { DoScriptText(SAY_SARTHARION_AGGRO,m_creature); DoZoneInCombat(); @@ -241,7 +253,16 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI DoScriptText(SAY_SARTHARION_DEATH,m_creature); if (pInstance) + { + if (achievProgress == 1) + pInstance->DoCompleteAchievement(HEROIC(ACHIEV_TWILIGHT_ASSIST,H_ACHIEV_TWILIGHT_ASSIST)); + else if (achievProgress == 2) + pInstance->DoCompleteAchievement(HEROIC(ACHIEV_TWILIGHT_DUO,H_ACHIEV_TWILIGHT_DUO)); + else if (achievProgress == 3) + pInstance->DoCompleteAchievement(HEROIC(ACHIEV_TWILIGHT_ZONE,H_ACHIEV_TWILIGHT_ZONE)); + pInstance->SetData(TYPE_SARTHARION_EVENT, DONE); + } } void KilledUnit(Unit* pVictim) @@ -305,7 +326,9 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI void CallDragon(uint32 uiDataId) { if (pInstance) + { if (Creature *pTemp = Unit::GetCreature(*m_creature,pInstance->GetData64(uiDataId))) + { if (pTemp->isAlive() && !pTemp->getVictim()) { if (pTemp->HasUnitMovementFlag(MOVEMENTFLAG_WALK_MODE)) @@ -317,6 +340,8 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI int32 iTextId = 0; AddDrakeLootMode(); + achievProgress++; + switch(pTemp->GetEntry()) { case NPC_TENEBRON: @@ -338,6 +363,8 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI DoScriptText(iTextId, m_creature); } + } + } } void SendFlameTsunami() |