mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripts/Uldaman: Instance update
- Fixup Boss Ironaya
- Add the freeze animation for minions and archaedas
- Fix attack target for minions who wake up
(cherry picked from commit 9cb4cb52d8)
This commit is contained in:
@@ -41,14 +41,17 @@ enum Says
|
||||
|
||||
enum Spells
|
||||
{
|
||||
SPELL_GROUND_TREMOR = 6524,
|
||||
SPELL_ARCHAEDAS_AWAKEN = 10347,
|
||||
SPELL_BOSS_OBJECT_VISUAL = 11206,
|
||||
SPELL_BOSS_AGGRO = 10340,
|
||||
SPELL_SUB_BOSS_AGGRO = 11568,
|
||||
SPELL_AWAKEN_VAULT_WALKER = 10258,
|
||||
SPELL_AWAKEN_EARTHEN_GUARDIAN = 10252,
|
||||
SPELL_SELF_DESTRUCT = 9874
|
||||
SPELL_GROUND_TREMOR = 6524,
|
||||
SPELL_ARCHAEDAS_AWAKEN = 10347,
|
||||
SPELL_BOSS_OBJECT_VISUAL = 11206,
|
||||
SPELL_BOSS_AGGRO = 10340,
|
||||
SPELL_SUB_BOSS_AGGRO = 11568,
|
||||
SPELL_AWAKEN_VAULT_WALKER = 10258,
|
||||
SPELL_AWAKEN_EARTHEN_GUARDIAN = 10252,
|
||||
SPELL_SELF_DESTRUCT = 9874,
|
||||
SPELL_FREEZE_ANIM = 16245,
|
||||
SPELL_MINION_FREEZE_ANIM = 10255
|
||||
|
||||
};
|
||||
|
||||
class boss_archaedas : public CreatureScript
|
||||
@@ -96,6 +99,7 @@ class boss_archaedas : public CreatureScript
|
||||
me->setFaction(35);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->AddAura(SPELL_FREEZE_ANIM, me);
|
||||
}
|
||||
|
||||
void ActivateMinion(ObjectGuid uiGuid, bool flag)
|
||||
@@ -109,6 +113,7 @@ class boss_archaedas : public CreatureScript
|
||||
minion->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
minion->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
minion->setFaction(14);
|
||||
minion->RemoveAura(SPELL_MINION_FREEZE_ANIM);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -258,6 +263,7 @@ class npc_archaedas_minions : public CreatureScript
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveAllAuras();
|
||||
me->AddAura(SPELL_MINION_FREEZE_ANIM, me);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
@@ -297,7 +303,7 @@ class npc_archaedas_minions : public CreatureScript
|
||||
{
|
||||
bWakingUp = false;
|
||||
bAmIAwake = true;
|
||||
// AttackStart(ObjectAccessor::GetUnit(*me, instance->GetGuidData(0))); // whoWokeArchaedasGUID
|
||||
AttackStart(ObjectAccessor::GetUnit(*me, instance->GetGuidData(0))); // whoWokeArchaedasGUID
|
||||
return; // dont want to continue until we finish the AttackStart method
|
||||
}
|
||||
|
||||
@@ -346,6 +352,7 @@ class npc_stonekeepers : public CreatureScript
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveAllAuras();
|
||||
me->AddAura(SPELL_MINION_FREEZE_ANIM, me);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
|
||||
@@ -66,10 +66,7 @@ class boss_ironaya : public CreatureScript
|
||||
Initialize();
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
Talk(SAY_AGGRO);
|
||||
}
|
||||
void EnterCombat(Unit* /*who*/) override { }
|
||||
|
||||
void UpdateAI(uint32 uiDiff) override
|
||||
{
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
/* ScriptData
|
||||
SDName: instance_uldaman
|
||||
SD%Complete: 99
|
||||
SD%Complete: 80%
|
||||
SDComment: Need some cosmetics updates when archeadas door are closing (Guardians Waypoints).
|
||||
SDCategory: Uldaman
|
||||
EndScriptData */
|
||||
@@ -31,6 +31,8 @@ enum Spells
|
||||
{
|
||||
SPELL_ARCHAEDAS_AWAKEN = 10347,
|
||||
SPELL_AWAKEN_VAULT_WALKER = 10258,
|
||||
SPELL_FREEZE_ANIM = 16245,
|
||||
SPELL_MINION_FREEZE_ANIM = 10255
|
||||
};
|
||||
|
||||
enum Events
|
||||
@@ -38,6 +40,15 @@ enum Events
|
||||
EVENT_SUB_BOSS_AGGRO = 2228
|
||||
};
|
||||
|
||||
const float IronayaPoint[4] = { -231.228f, 246.6135f, -49.01617f, 0.0f };
|
||||
|
||||
enum StoneKeepers
|
||||
{
|
||||
GUID_STONEKEEPER_1 = 27554,
|
||||
GUID_STONEKEEPER_2 = 27794,
|
||||
GUID_STONEKEEPER_3 = 28368
|
||||
};
|
||||
|
||||
class instance_uldaman : public InstanceMapScript
|
||||
{
|
||||
public:
|
||||
@@ -136,9 +147,9 @@ class instance_uldaman : public InstanceMapScript
|
||||
{
|
||||
creature->setFaction(35);
|
||||
creature->RemoveAllAuras();
|
||||
//creature->RemoveFlag (UNIT_FIELD_FLAGS, UNIT_FLAG_ANIMATION_FROZEN);
|
||||
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
creature->AddAura(SPELL_MINION_FREEZE_ANIM, creature);
|
||||
}
|
||||
|
||||
void SetDoor(ObjectGuid guid, bool open)
|
||||
@@ -171,6 +182,8 @@ class instance_uldaman : public InstanceMapScript
|
||||
target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
target->setFaction(14);
|
||||
target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
target->RemoveAura(SPELL_MINION_FREEZE_ANIM);
|
||||
|
||||
return; // only want the first one we find
|
||||
}
|
||||
// if we get this far than all four are dead so open the door
|
||||
@@ -190,11 +203,13 @@ class instance_uldaman : public InstanceMapScript
|
||||
Creature* target = instance->GetCreature(*i);
|
||||
if (!target || !target->IsAlive() || target->getFaction() == 14)
|
||||
continue;
|
||||
archaedas->CastSpell(target, SPELL_AWAKEN_VAULT_WALKER, true);
|
||||
target->CastSpell(target, SPELL_ARCHAEDAS_AWAKEN, true);
|
||||
target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
target->setFaction(14);
|
||||
target->RemoveAura(SPELL_MINION_FREEZE_ANIM);
|
||||
archaedas->CastSpell(target, SPELL_AWAKEN_VAULT_WALKER, true);
|
||||
target->CastSpell(target, SPELL_ARCHAEDAS_AWAKEN, true);
|
||||
|
||||
return; // only want the first one we find
|
||||
}
|
||||
}
|
||||
@@ -241,6 +256,7 @@ class instance_uldaman : public InstanceMapScript
|
||||
|
||||
if (ObjectAccessor::GetUnit(*archaedas, target))
|
||||
{
|
||||
archaedas->RemoveAura(SPELL_FREEZE_ANIM);
|
||||
archaedas->CastSpell(archaedas, SPELL_ARCHAEDAS_AWAKEN, false);
|
||||
whoWokeuiArchaedasGUID = target;
|
||||
}
|
||||
@@ -255,6 +271,12 @@ class instance_uldaman : public InstanceMapScript
|
||||
ironaya->setFaction(415);
|
||||
ironaya->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
ironaya->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
|
||||
ironaya->GetMotionMaster()->Clear();
|
||||
ironaya->GetMotionMaster()->MovePoint(0, IronayaPoint[0], IronayaPoint[1], IronayaPoint[2]);
|
||||
ironaya->SetHomePosition(IronayaPoint[0], IronayaPoint[1], IronayaPoint[2], IronayaPoint[3]);
|
||||
|
||||
ironaya->AI()->Talk(SAY_AGGRO);
|
||||
}
|
||||
|
||||
void RespawnMinions()
|
||||
|
||||
Reference in New Issue
Block a user