diff options
| author | maximius <none@none> | 2009-10-28 16:31:19 -0700 |
|---|---|---|
| committer | maximius <none@none> | 2009-10-28 16:31:19 -0700 |
| commit | f4d76b8216c911901e8a13996c55128bbfa4b08e (patch) | |
| tree | d1db8d946c29cb9bdca5e0bf4d0da0a029f46d45 /src/bindings/scripts | |
| parent | d5b8ad0080d45c2f02ef5a4fdd4d8853da286b6d (diff) | |
*Implement new LootMode system, and add some basic support in boss_sartharion.cpp. Requires database support.
--HG--
branch : trunk
Diffstat (limited to 'src/bindings/scripts')
| -rw-r--r-- | src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp | 17 |
1 files changed, 17 insertions, 0 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 d40ed2dc2e7..d7557370174 100644 --- a/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp +++ b/src/bindings/scripts/scripts/northrend/obsidian_sanctum/boss_sartharion.cpp @@ -214,6 +214,8 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI if (m_creature->HasAura(SPELL_TWILIGHT_REVENGE)) m_creature->RemoveAurasDueToSpell(SPELL_TWILIGHT_REVENGE); + + m_creature->ResetLootMode(); } void JustReachedHome() @@ -247,6 +249,18 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI DoScriptText(RAND(SAY_SARTHARION_SLAY_1,SAY_SARTHARION_SLAY_2,SAY_SARTHARION_SLAY_3), m_creature); } + // m_creature->ResetLootMode() is called from Reset() + // AddDrakeLootMode() should only ever be called from FetchDragons(), which is called from Aggro() + void AddDrakeLootMode() + { + if (m_creature->HasLootMode(4)) // Has two Drake loot modes + m_creature->AddLootMode(8); // Add 3rd Drake loot mode + else if (m_creature->HasLootMode(2)) // Has one Drake loot mode + m_creature->AddLootMode(4); // Add 2nd Drake loot mode + else // Has no Drake loot modes + m_creature->AddLootMode(2); // Add 1st Drake loot mode + } + void FetchDragons() { Unit* pTene = Unit::GetUnit(*m_creature, pInstance->GetData64(DATA_TENEBRON)); @@ -258,6 +272,7 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI if (pTene && pTene->isAlive() && !pTene->getVictim()) { + AddDrakeLootMode(); bCanUseWill = true; pTene->GetMotionMaster()->MovePoint(POINT_ID_INIT, m_aTene[0].m_fX, m_aTene[0].m_fY, m_aTene[0].m_fZ); @@ -267,6 +282,7 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI if (pShad && pShad->isAlive() && !pShad->getVictim()) { + AddDrakeLootMode(); bCanUseWill = true; pShad->GetMotionMaster()->MovePoint(POINT_ID_INIT, m_aShad[0].m_fX, m_aShad[0].m_fY, m_aShad[0].m_fZ); @@ -276,6 +292,7 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI if (pVesp && pVesp->isAlive() && !pVesp->getVictim()) { + AddDrakeLootMode(); bCanUseWill = true; pVesp->GetMotionMaster()->MovePoint(POINT_ID_INIT, m_aVesp[0].m_fX, m_aVesp[0].m_fY, m_aVesp[0].m_fZ); |
