--HG--
branch : trunk
This commit is contained in:
silinoron
2010-08-19 16:13:42 -07:00

View File

@@ -20,7 +20,6 @@ SDName: Boss_Onyxia
SD%Complete: 95
SDComment: <Known bugs>
Ground visual for Deep Breath effect;
Wing Buffet not ignoring armor;
Not summoning whelps on phase 3 (lacks info)
</Known bugs>
SDCategory: Onyxia's Lair
@@ -90,6 +89,8 @@ static sOnyxMove aMoveData[]=
const Position MiddleRoomLocation = {-23.6155, -215.357, -55.7344};
const Position Phase2Location = {-80.924, -214.299, -82.942};
static Position aSpawnLocations[3]=
{
//Whelps
@@ -139,7 +140,6 @@ public:
uint32 m_uiBellowingRoarTimer;
uint8 m_uiSummonWhelpCount;
uint8 m_uiSummonLairGuardCount;
bool m_bIsMoving;
void Reset()
@@ -155,19 +155,18 @@ public:
m_uiWingBuffetTimer = urand(10000, 20000);
m_uiMovePoint = urand(0, 5);
m_uiMovementTimer = 20000;
m_uiMovementTimer = 14000;
m_pPointData = GetMoveData();
m_uiFireballTimer = 15000;
m_uiWhelpTimer = 1000;
m_uiLairGuardTimer = 15000;
m_uiWhelpTimer = 60000;
m_uiLairGuardTimer = 60000;
m_uiDeepBreathTimer = 85000;
m_uiBellowingRoarTimer = 30000;
Summons.DespawnAll();
m_uiSummonWhelpCount = 0;
m_uiSummonLairGuardCount = 0;
m_bIsMoving = false;
if (m_pInstance)
@@ -187,7 +186,6 @@ public:
{
m_pInstance->SetData(DATA_ONYXIA, IN_PROGRESS);
m_pInstance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
sLog.outBasic("[Onyxia] DoStartTimedAchievement(%u,%u)",ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
}
}
@@ -212,7 +210,6 @@ public:
break;
case NPC_LAIRGUARD:
pSummoned->setActive(true);
++m_uiSummonLairGuardCount;
break;
}
Summons.Summon(pSummoned);
@@ -263,6 +260,24 @@ public:
me->GetMotionMaster()->MoveChase(me->getVictim());
m_uiBellowingRoarTimer = 1000;
break;
case 10:
me->SetFlying(true);
me->GetMotionMaster()->MovePoint(11, Phase2Location.GetPositionX(),Phase2Location.GetPositionY(),Phase2Location.GetPositionZ()+25);
me->SetSpeed(MOVE_FLIGHT, 1.0f);
DoScriptText(SAY_PHASE_2_TRANS, me);
if (m_pInstance)
m_pInstance->SetData(DATA_ONYXIA_PHASE, m_uiPhase);
m_uiWhelpTimer = 5000;
m_uiLairGuardTimer = 15000;
break;
case 11:
if (m_pPointData)
me->GetMotionMaster()->MovePoint(m_pPointData->uiLocId, m_pPointData->fX, m_pPointData->fY, m_pPointData->fZ);
me->GetMotionMaster()->Clear(false);
me->GetMotionMaster()->MoveIdle();
break;
default:
m_bIsMoving = false;
break;
@@ -331,22 +346,9 @@ public:
{
if (me->GetHealth()*100 / me->GetMaxHealth() < 60)
{
m_uiPhase = PHASE_BREATH;
if (m_pInstance)
m_pInstance->SetData(DATA_ONYXIA_PHASE, m_uiPhase);
SetCombatMovement(false);
me->GetMotionMaster()->Clear(false);
me->GetMotionMaster()->MoveIdle();
me->SetFlying(true);
DoScriptText(SAY_PHASE_2_TRANS, me);
if (m_pPointData)
me->GetMotionMaster()->MovePoint(m_pPointData->uiLocId, m_pPointData->fX, m_pPointData->fY, m_pPointData->fZ);
m_uiWhelpTimer = 1000;
m_uiPhase = PHASE_BREATH;
me->GetMotionMaster()->MovePoint(10, Phase2Location);
return;
}
}
@@ -467,13 +469,7 @@ public:
if (m_uiLairGuardTimer <= uiDiff)
{
me->SummonCreature(NPC_LAIRGUARD, aSpawnLocations[2].GetPositionX(), aSpawnLocations[2].GetPositionY(), aSpawnLocations[2].GetPositionZ(), 0.0f, TEMPSUMMON_CORPSE_DESPAWN);
if (m_uiSummonLairGuardCount >= RAID_MODE(1,2))
{
m_uiSummonLairGuardCount = 0;
m_uiLairGuardTimer = 30000;
}
else
m_uiLairGuardTimer = 2000;
m_uiLairGuardTimer = 30000;
}
else
m_uiLairGuardTimer -= uiDiff;