Implemented right Snobold Vassal behavior on Gormok fight.

This commit is contained in:
hondacrx
2017-10-04 12:34:11 -04:00
parent eadb7d40ee
commit 4424eb6af6
3 changed files with 792 additions and 559 deletions
File diff suppressed because it is too large Load Diff
@@ -67,7 +67,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
if (instance.IsHeroic())
{
player.SendUpdateWorldState(WorldStateIds.Show, 1);
player.SendUpdateWorldState(WorldStateIds.Count, GetData(DataTypes.TypeCounter));
player.SendUpdateWorldState(WorldStateIds.Count, GetData(DataTypes.Counter));
}
else
player.SendUpdateWorldState(WorldStateIds.Show, 0);
@@ -409,25 +409,25 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
{
switch (type)
{
case DataTypes.TypeCounter:
case DataTypes.Counter:
TrialCounter = data;
data = (uint)EncounterState.Done;
break;
case DataTypes.TypeEvent:
case DataTypes.Event:
EventStage = data;
data = (uint)EncounterState.NotStarted;
break;
case DataTypes.TypeEventTimer:
case DataTypes.EventTimer:
EventTimer = data;
data = (uint)EncounterState.NotStarted;
break;
case DataTypes.TypeNorthrendBeasts:
case DataTypes.NorthrendBeasts:
northrendBeasts = (EncounterState)data;
switch (data)
{
case NorthrendBeasts.GormokDone:
EventStage = 200;
SetData(DataTypes.TypeNorthrendBeasts, (uint)EncounterState.InProgress);
SetData(DataTypes.NorthrendBeasts, (uint)EncounterState.InProgress);
break;
case NorthrendBeasts.SnakesInProgress:
NotOneButTwoJormungarsTimer = 0;
@@ -439,11 +439,11 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
if (NotOneButTwoJormungarsTimer > 0)
DoUpdateCriteria(CriteriaTypes.BeSpellTarget, AchievementData.SpellWormsKilledIn10Seconds);
EventStage = 300;
SetData(DataTypes.TypeNorthrendBeasts, (uint)EncounterState.InProgress);
SetData(DataTypes.NorthrendBeasts, (uint)EncounterState.InProgress);
break;
case NorthrendBeasts.IcehowlDone:
EventStage = 400;
SetData(DataTypes.TypeNorthrendBeasts, (uint)EncounterState.Done);
SetData(DataTypes.NorthrendBeasts, (uint)EncounterState.Done);
SetBossState(DataTypes.BossBeasts, EncounterState.Done);
break;
case (uint)EncounterState.Fail:
@@ -527,15 +527,15 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
{
switch (type)
{
case DataTypes.TypeCounter:
case DataTypes.Counter:
return TrialCounter;
case DataTypes.TypeEvent:
case DataTypes.Event:
return EventStage;
case DataTypes.TypeNorthrendBeasts:
case DataTypes.NorthrendBeasts:
return (uint)northrendBeasts;
case DataTypes.TypeEventTimer:
case DataTypes.EventTimer:
return EventTimer;
case DataTypes.TypeEventNpc:
case DataTypes.EventNpc:
switch (EventStage)
{
case 110:
@@ -625,7 +625,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
public override void Update(uint diff)
{
if (GetData(DataTypes.TypeNorthrendBeasts) == NorthrendBeasts.SnakesSpecial && NotOneButTwoJormungarsTimer != 0)
if (GetData(DataTypes.NorthrendBeasts) == NorthrendBeasts.SnakesSpecial && NotOneButTwoJormungarsTimer != 0)
{
if (NotOneButTwoJormungarsTimer <= diff)
NotOneButTwoJormungarsTimer = 0;
@@ -810,7 +810,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
string _message = "We are ready!";
if (player.IsInCombat() || instance.IsEncounterInProgress() || instance.GetData(DataTypes.TypeEvent) != 0)
if (player.IsInCombat() || instance.IsEncounterInProgress() || instance.GetData(DataTypes.Event) != 0)
return true;
byte i = 0;
@@ -841,8 +841,8 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
if (instance.GetBossState(DataTypes.BossBeasts) != EncounterState.Done)
{
instance.SetData(DataTypes.TypeEvent, 110);
instance.SetData(DataTypes.TypeNorthrendBeasts, (uint)EncounterState.NotStarted);
instance.SetData(DataTypes.Event, 110);
instance.SetData(DataTypes.NorthrendBeasts, (uint)EncounterState.NotStarted);
instance.SetBossState(DataTypes.BossBeasts, EncounterState.NotStarted);
}
else if (instance.GetBossState(DataTypes.BossJaraxxus) != EncounterState.Done)
@@ -858,21 +858,21 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
}
else
{
instance.SetData(DataTypes.TypeEvent, 1010);
instance.SetData(DataTypes.Event, 1010);
instance.SetBossState(DataTypes.BossJaraxxus, EncounterState.NotStarted);
}
}
else if (instance.GetBossState(DataTypes.BossCrusaders) != EncounterState.Done)
{
if (player.GetTeam() == Team.Alliance)
instance.SetData(DataTypes.TypeEvent, 3000);
instance.SetData(DataTypes.Event, 3000);
else
instance.SetData(DataTypes.TypeEvent, 3001);
instance.SetData(DataTypes.Event, 3001);
instance.SetBossState(DataTypes.BossCrusaders, EncounterState.NotStarted);
}
else if (instance.GetBossState(DataTypes.BossValkiries) != EncounterState.Done)
{
instance.SetData(DataTypes.TypeEvent, 4000);
instance.SetData(DataTypes.Event, 4000);
instance.SetBossState(DataTypes.BossValkiries, EncounterState.NotStarted);
}
else if (instance.GetBossState(DataTypes.BossLichKing) != EncounterState.Done)
@@ -934,10 +934,10 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
switch (id)
{
case 0:
_instance.SetData(DataTypes.TypeEvent, 5030);
_instance.SetData(DataTypes.Event, 5030);
break;
case 1:
_instance.SetData(DataTypes.TypeEvent, 5050);
_instance.SetData(DataTypes.Event, 5050);
break;
default:
break;
@@ -949,47 +949,47 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
if (_instance == null)
return;
if (_instance.GetData(DataTypes.TypeEventNpc) != CreatureIds.LichKing)
if (_instance.GetData(DataTypes.EventNpc) != CreatureIds.LichKing)
return;
_updateTimer = _instance.GetData(DataTypes.TypeEventTimer);
_updateTimer = _instance.GetData(DataTypes.EventTimer);
if (_updateTimer <= uiDiff)
{
switch (_instance.GetData(DataTypes.TypeEvent))
switch (_instance.GetData(DataTypes.Event))
{
case 5010:
Talk(Texts.Stage_4_02);
_updateTimer = 3 * Time.InMilliseconds;
me.GetMotionMaster().MovePoint(0, MiscData.LichKingLoc[0]);
_instance.SetData(DataTypes.TypeEvent, 5020);
_instance.SetData(DataTypes.Event, 5020);
break;
case 5030:
Talk(Texts.Stage_4_04);
me.SetUInt32Value(UnitFields.NpcEmotestate, (uint)Emote.StateTalk);
_updateTimer = 10 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 5040);
_instance.SetData(DataTypes.Event, 5040);
break;
case 5040:
me.SetUInt32Value(UnitFields.NpcEmotestate, (uint)Emote.OneshotNone);
me.GetMotionMaster().MovePoint(1, MiscData.LichKingLoc[1]);
_updateTimer = 1 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 0);
_instance.SetData(DataTypes.Event, 0);
break;
case 5050:
me.HandleEmoteCommand(Emote.OneshotExclamation);
_updateTimer = 3 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 5060);
_instance.SetData(DataTypes.Event, 5060);
break;
case 5060:
Talk(Texts.Stage_4_05);
me.HandleEmoteCommand(Emote.OneshotKneel);
_updateTimer = (uint)(2.5 * Time.InMilliseconds);
_instance.SetData(DataTypes.TypeEvent, 5070);
_instance.SetData(DataTypes.Event, 5070);
break;
case 5070:
me.CastSpell(me, 68198, false);
_updateTimer = (uint)(1.5 * Time.InMilliseconds);
_instance.SetData(DataTypes.TypeEvent, 5080);
_instance.SetData(DataTypes.Event, 5080);
break;
case 5080:
{
@@ -1009,7 +1009,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
if (!temp || !temp.IsAlive())
temp = me.SummonCreature(CreatureIds.Anubarak, MiscData.AnubarakLoc[0].GetPositionX(), MiscData.AnubarakLoc[0].GetPositionY(), MiscData.AnubarakLoc[0].GetPositionZ(), 3, TempSummonType.CorpseTimedDespawn, MiscData.DespawnTime);
_instance.SetData(DataTypes.TypeEvent, 0);
_instance.SetData(DataTypes.Event, 0);
me.DespawnOrUnsummon();
_updateTimer = 20 * Time.InMilliseconds;
@@ -1022,7 +1022,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
else
_updateTimer -= uiDiff;
_instance.SetData(DataTypes.TypeEventTimer, _updateTimer);
_instance.SetData(DataTypes.EventTimer, _updateTimer);
}
InstanceScript _instance;
@@ -1041,7 +1041,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
public override void JustDied(Unit killer)
{
Talk(Texts.Stage_1_06, killer);
_instance.SetData(DataTypes.TypeEvent, 1180);
_instance.SetData(DataTypes.Event, 1180);
Creature temp = ObjectAccessor.GetCreature(me, _instance.GetGuidData(CreatureIds.Jaraxxus));
if (temp)
{
@@ -1068,8 +1068,8 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
case 1:
me.SetWalk(false);
_instance.DoUseDoorOrButton(_instance.GetGuidData(GameObjectIds.MainGateDoor));
_instance.SetData(DataTypes.TypeEvent, 1120);
_instance.SetData(DataTypes.TypeEventTimer, 1 * Time.InMilliseconds);
_instance.SetData(DataTypes.Event, 1120);
_instance.SetData(DataTypes.EventTimer, 1 * Time.InMilliseconds);
break;
default:
break;
@@ -1086,21 +1086,21 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
if (_instance == null)
return;
if (_instance.GetData(DataTypes.TypeEventNpc) != CreatureIds.Fizzlebang)
if (_instance.GetData(DataTypes.EventNpc) != CreatureIds.Fizzlebang)
return;
_updateTimer = _instance.GetData(DataTypes.TypeEventTimer);
_updateTimer = _instance.GetData(DataTypes.EventTimer);
if (_updateTimer <= uiDiff)
{
switch (_instance.GetData(DataTypes.TypeEvent))
switch (_instance.GetData(DataTypes.Event))
{
case 1110:
_instance.SetData(DataTypes.TypeEvent, 1120);
_instance.SetData(DataTypes.Event, 1120);
_updateTimer = 4 * Time.InMilliseconds;
break;
case 1120:
Talk(Texts.Stage_1_02);
_instance.SetData(DataTypes.TypeEvent, 1130);
_instance.SetData(DataTypes.Event, 1130);
_updateTimer = 12 * Time.InMilliseconds;
break;
case 1130:
@@ -1116,13 +1116,13 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
pTrigger.SetDisplayId(pTrigger.ToCreature().GetCreatureTemplate().ModelId1);
pTrigger.CastSpell(pTrigger, Spells.WilfredPortal, false);
}
_instance.SetData(DataTypes.TypeEvent, 1132);
_instance.SetData(DataTypes.Event, 1132);
_updateTimer = 4 * Time.InMilliseconds;
break;
}
case 1132:
me.GetMotionMaster().MovementExpired();
_instance.SetData(DataTypes.TypeEvent, 1134);
_instance.SetData(DataTypes.Event, 1134);
_updateTimer = 4 * Time.InMilliseconds;
break;
case 1134:
@@ -1137,11 +1137,11 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
_portalGUID = pPortal.GetGUID();
}
_updateTimer = 4 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 1135);
_instance.SetData(DataTypes.Event, 1135);
break;
}
case 1135:
_instance.SetData(DataTypes.TypeEvent, 1140);
_instance.SetData(DataTypes.Event, 1140);
_updateTimer = 3 * Time.InMilliseconds;
break;
case 1140:
@@ -1154,7 +1154,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
temp.SetReactState(ReactStates.Passive);
temp.GetMotionMaster().MovePoint(0, MiscData.ToCCommonLoc[1].GetPositionX(), MiscData.ToCCommonLoc[1].GetPositionY() - 10, MiscData.ToCCommonLoc[1].GetPositionZ());
}
_instance.SetData(DataTypes.TypeEvent, 1142);
_instance.SetData(DataTypes.Event, 1142);
_updateTimer = 5 * Time.InMilliseconds;
break;
}
@@ -1171,7 +1171,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
Creature pPortal = ObjectAccessor.GetCreature(me, _portalGUID);
if (pPortal)
pPortal.DespawnOrUnsummon();
_instance.SetData(DataTypes.TypeEvent, 1144);
_instance.SetData(DataTypes.Event, 1144);
_updateTimer = 10 * Time.InMilliseconds;
break;
}
@@ -1180,7 +1180,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
Creature temp = ObjectAccessor.GetCreature(me, _instance.GetGuidData(CreatureIds.Jaraxxus));
if (temp)
temp.GetAI().Talk(Texts.Stage_1_05);
_instance.SetData(DataTypes.TypeEvent, 1150);
_instance.SetData(DataTypes.Event, 1150);
_updateTimer = 5 * Time.InMilliseconds;
break;
}
@@ -1195,7 +1195,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
temp.AddThreat(me, 1000.0f);
temp.GetAI().AttackStart(me);
}
_instance.SetData(DataTypes.TypeEvent, 1160);
_instance.SetData(DataTypes.Event, 1160);
_updateTimer = 3 * Time.InMilliseconds;
break;
}
@@ -1203,7 +1203,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
}
else
_updateTimer -= uiDiff;
_instance.SetData(DataTypes.TypeEventTimer, _updateTimer);
_instance.SetData(DataTypes.EventTimer, _updateTimer);
}
InstanceScript _instance;
@@ -1230,25 +1230,25 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
if (_instance == null)
return;
if (_instance.GetData(DataTypes.TypeEventNpc) != CreatureIds.Tirion)
if (_instance.GetData(DataTypes.EventNpc) != CreatureIds.Tirion)
return;
_updateTimer = _instance.GetData(DataTypes.TypeEventTimer);
_updateTimer = _instance.GetData(DataTypes.EventTimer);
if (_updateTimer <= uiDiff)
{
switch (_instance.GetData(DataTypes.TypeEvent))
switch (_instance.GetData(DataTypes.Event))
{
case 110:
me.SetUInt32Value(UnitFields.NpcEmotestate, (uint)Emote.OneshotTalk);
Talk(Texts.Stage_0_01);
_updateTimer = 22 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 120);
_instance.SetData(DataTypes.Event, 120);
break;
case 140:
me.SetUInt32Value(UnitFields.NpcEmotestate, (uint)Emote.OneshotTalk);
Talk(Texts.Stage_0_02);
_updateTimer = 5 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 150);
_instance.SetData(DataTypes.Event, 150);
break;
case 150:
{
@@ -1266,14 +1266,14 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
}
}
_updateTimer = 3 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 155);
_instance.SetData(DataTypes.Event, 155);
break;
}
case 155:
// keep the raid in combat for the whole encounter, pauses included
me.SetInCombatWithZone();
_updateTimer = 5 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 160);
_instance.SetData(DataTypes.Event, 160);
break;
case 200:
{
@@ -1290,11 +1290,11 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
}
}
_updateTimer = 5 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 220);
_instance.SetData(DataTypes.Event, 220);
break;
}
case 220:
_instance.SetData(DataTypes.TypeEvent, 230);
_instance.SetData(DataTypes.Event, 230);
break;
case 300:
{
@@ -1311,64 +1311,64 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
}
}
_updateTimer = 5 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 315);
_instance.SetData(DataTypes.Event, 315);
break;
}
case 315:
_instance.SetData(DataTypes.TypeEvent, 320);
_instance.SetData(DataTypes.Event, 320);
break;
case 400:
Talk(Texts.Stage_0_06);
me.GetThreatManager().clearReferences();
_updateTimer = 5 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 0);
_instance.SetData(DataTypes.Event, 0);
break;
case 666:
Talk(Texts.Stage_0_Wipe);
_updateTimer = 5 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 0);
_instance.SetData(DataTypes.Event, 0);
break;
case 1010:
Talk(Texts.Stage_1_01);
_updateTimer = 7 * Time.InMilliseconds;
_instance.DoUseDoorOrButton(_instance.GetGuidData(GameObjectIds.MainGateDoor));
me.SummonCreature(CreatureIds.Fizzlebang, MiscData.ToCSpawnLoc[0].GetPositionX(), MiscData.ToCSpawnLoc[0].GetPositionY(), MiscData.ToCSpawnLoc[0].GetPositionZ(), 2, TempSummonType.CorpseTimedDespawn, MiscData.DespawnTime);
_instance.SetData(DataTypes.TypeEvent, 0);
_instance.SetData(DataTypes.Event, 0);
break;
case 1180:
Talk(Texts.Stage_1_07);
_updateTimer = 3 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 0);
_instance.SetData(DataTypes.Event, 0);
break;
case 2000:
Talk(Texts.Stage_1_08);
_updateTimer = 18 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 2010);
_instance.SetData(DataTypes.Event, 2010);
break;
case 2030:
Talk(Texts.Stage_1_11);
_updateTimer = 5 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 0);
_instance.SetData(DataTypes.Event, 0);
break;
case 3000:
Talk(Texts.Stage_2_01);
_updateTimer = 12 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 3050);
_instance.SetData(DataTypes.Event, 3050);
break;
case 3001:
Talk(Texts.Stage_2_01);
_updateTimer = 10 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 3051);
_instance.SetData(DataTypes.Event, 3051);
break;
case 3060:
Talk(Texts.Stage_2_03);
_updateTimer = 5 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 3070);
_instance.SetData(DataTypes.Event, 3070);
break;
case 3061:
Talk(Texts.Stage_2_03);
_updateTimer = 5 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 3071);
_instance.SetData(DataTypes.Event, 3071);
break;
//Summoning crusaders
case 3091:
@@ -1377,7 +1377,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
if (pChampionController)
pChampionController.GetAI().SetData(0, (uint)Team.Horde);
_updateTimer = 3 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 3092);
_instance.SetData(DataTypes.Event, 3092);
break;
}
//Summoning crusaders
@@ -1387,7 +1387,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
if (pChampionController)
pChampionController.GetAI().SetData(0, (uint)Team.Alliance);
_updateTimer = 3 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 3092);
_instance.SetData(DataTypes.Event, 3092);
break;
}
case 3092:
@@ -1395,19 +1395,19 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
Creature pChampionController = ObjectAccessor.GetCreature(me, _instance.GetGuidData(CreatureIds.ChampionsController));
if (pChampionController)
pChampionController.GetAI().SetData(1, (uint)EncounterState.NotStarted);
_instance.SetData(DataTypes.TypeEvent, 3095);
_instance.SetData(DataTypes.Event, 3095);
break;
}
//Crusaders battle end
case 3100:
Talk(Texts.Stage_2_06);
_updateTimer = 5 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 0);
_instance.SetData(DataTypes.Event, 0);
break;
case 4000:
Talk(Texts.Stage_3_01);
_updateTimer = 13 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 4010);
_instance.SetData(DataTypes.Event, 4010);
break;
case 4010:
{
@@ -1430,7 +1430,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
temp.SummonCreature(CreatureIds.DarkEssence, MiscData.TwinValkyrsLoc[3].GetPositionX(), MiscData.TwinValkyrsLoc[3].GetPositionY(), MiscData.TwinValkyrsLoc[3].GetPositionZ());
}
_updateTimer = 3 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 4015);
_instance.SetData(DataTypes.Event, 4015);
break;
}
case 4015:
@@ -1450,38 +1450,38 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
temp.SetVisible(true);
}
_updateTimer = 10 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 4016);
_instance.SetData(DataTypes.Event, 4016);
break;
}
case 4016:
_instance.DoUseDoorOrButton(_instance.GetGuidData(GameObjectIds.MainGateDoor));
_instance.SetData(DataTypes.TypeEvent, 4017);
_instance.SetData(DataTypes.Event, 4017);
break;
case 4040:
_updateTimer = 1 * Time.Minute * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 5000);
_instance.SetData(DataTypes.Event, 5000);
break;
case 5000:
Talk(Texts.Stage_4_01);
_updateTimer = 10 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 5005);
_instance.SetData(DataTypes.Event, 5005);
break;
case 5005:
_updateTimer = 8 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 5010);
_instance.SetData(DataTypes.Event, 5010);
me.SummonCreature(CreatureIds.LichKing, MiscData.ToCCommonLoc[2].GetPositionX(), MiscData.ToCCommonLoc[2].GetPositionY(), MiscData.ToCCommonLoc[2].GetPositionZ(), 5);
break;
case 5020:
Talk(Texts.Stage_4_03);
_updateTimer = 1 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 0);
_instance.SetData(DataTypes.Event, 0);
break;
case 6000:
me.SummonCreature(CreatureIds.TirionFordring, MiscData.EndSpawnLoc[0]);
me.SummonCreature(CreatureIds.ArgentMage, MiscData.EndSpawnLoc[1]);
me.SummonGameObject(GameObjectIds.PortalToDalaran, MiscData.EndSpawnLoc[2], Quaternion.WAxis, 0);
_updateTimer = 20 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 6005);
_instance.SetData(DataTypes.Event, 6005);
break;
case 6005:
{
@@ -1489,7 +1489,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
if (tirionFordring)
tirionFordring.GetAI().Talk(Texts.Stage_4_06);
_updateTimer = 20 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 6010);
_instance.SetData(DataTypes.Event, 6010);
break;
}
case 6010:
@@ -1500,15 +1500,15 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
tirionFordring.GetAI().Talk(Texts.Stage_4_07);
_updateTimer = 1 * Time.Minute * Time.InMilliseconds;
_instance.SetBossState(DataTypes.BossAnubarak, EncounterState.Special);
_instance.SetData(DataTypes.TypeEvent, 6020);
_instance.SetData(DataTypes.Event, 6020);
}
else
_instance.SetData(DataTypes.TypeEvent, 6030);
_instance.SetData(DataTypes.Event, 6030);
break;
case 6020:
me.DespawnOrUnsummon();
_updateTimer = 5 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 6030);
_instance.SetData(DataTypes.Event, 6030);
break;
default:
break;
@@ -1516,7 +1516,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
}
else
_updateTimer -= uiDiff;
_instance.SetData(DataTypes.TypeEventTimer, _updateTimer);
_instance.SetData(DataTypes.EventTimer, _updateTimer);
}
InstanceScript _instance;
@@ -1540,49 +1540,49 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
if (_instance == null)
return;
if (_instance.GetData(DataTypes.TypeEventNpc) != CreatureIds.Garrosh)
if (_instance.GetData(DataTypes.EventNpc) != CreatureIds.Garrosh)
return;
_updateTimer = _instance.GetData(DataTypes.TypeEventTimer);
_updateTimer = _instance.GetData(DataTypes.EventTimer);
if (_updateTimer <= uiDiff)
{
switch (_instance.GetData(DataTypes.TypeEvent))
switch (_instance.GetData(DataTypes.Event))
{
case 130:
me.SetUInt32Value(UnitFields.NpcEmotestate, (uint)Emote.OneshotTalk);
Talk(Texts.Stage_0_03h);
_updateTimer = 3 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 132);
_instance.SetData(DataTypes.Event, 132);
break;
case 132:
me.SetUInt32Value(UnitFields.NpcEmotestate, (uint)Emote.OneshotNone);
_updateTimer = 5 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 140);
_instance.SetData(DataTypes.Event, 140);
break;
case 2010:
Talk(Texts.Stage_1_09);
_updateTimer = 9 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 2020);
_instance.SetData(DataTypes.Event, 2020);
break;
case 3050:
Talk(Texts.Stage_2_02h);
_updateTimer = 15 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 3060);
_instance.SetData(DataTypes.Event, 3060);
break;
case 3070:
Talk(Texts.Stage_2_04h);
_updateTimer = 6 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 3080);
_instance.SetData(DataTypes.Event, 3080);
break;
case 3081:
Talk(Texts.Stage_2_05h);
_updateTimer = 3 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 3091);
_instance.SetData(DataTypes.Event, 3091);
break;
case 4030:
Talk(Texts.Stage_3_03h);
_updateTimer = 5 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 4040);
_instance.SetData(DataTypes.Event, 4040);
break;
default:
break;
@@ -1590,7 +1590,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
}
else
_updateTimer -= uiDiff;
_instance.SetData(DataTypes.TypeEventTimer, _updateTimer);
_instance.SetData(DataTypes.EventTimer, _updateTimer);
}
InstanceScript _instance;
@@ -1614,49 +1614,49 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
if (_instance == null)
return;
if (_instance.GetData(DataTypes.TypeEventNpc) != CreatureIds.Varian)
if (_instance.GetData(DataTypes.EventNpc) != CreatureIds.Varian)
return;
_updateTimer = _instance.GetData(DataTypes.TypeEventTimer);
_updateTimer = _instance.GetData(DataTypes.EventTimer);
if (_updateTimer <= uiDiff)
{
switch (_instance.GetData(DataTypes.TypeEvent))
switch (_instance.GetData(DataTypes.Event))
{
case 120:
me.SetUInt32Value(UnitFields.NpcEmotestate, (uint)Emote.OneshotTalk);
Talk(Texts.Stage_0_03a);
_updateTimer = 2 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 122);
_instance.SetData(DataTypes.Event, 122);
break;
case 122:
me.SetUInt32Value(UnitFields.NpcEmotestate, (uint)Emote.OneshotNone);
_updateTimer = 3 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 130);
_instance.SetData(DataTypes.Event, 130);
break;
case 2020:
Talk(Texts.Stage_1_10);
_updateTimer = 5 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 2030);
_instance.SetData(DataTypes.Event, 2030);
break;
case 3051:
Talk(Texts.Stage_2_02a);
_updateTimer = 17 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 3061);
_instance.SetData(DataTypes.Event, 3061);
break;
case 3071:
Talk(Texts.Stage_2_04a);
_updateTimer = 5 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 3081);
_instance.SetData(DataTypes.Event, 3081);
break;
case 3080:
Talk(Texts.Stage_2_05a);
_updateTimer = 3 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 3090);
_instance.SetData(DataTypes.Event, 3090);
break;
case 4020:
Talk(Texts.Stage_3_03a);
_updateTimer = 5 * Time.InMilliseconds;
_instance.SetData(DataTypes.TypeEvent, 4040);
_instance.SetData(DataTypes.Event, 4040);
break;
default:
break;
@@ -1664,7 +1664,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
}
else
_updateTimer -= uiDiff;
_instance.SetData(DataTypes.TypeEventTimer, _updateTimer);
_instance.SetData(DataTypes.EventTimer, _updateTimer);
}
InstanceScript _instance;
@@ -31,12 +31,12 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
public const uint BossAnubarak = 5;
public const uint MaxEncounters = 6;
public const uint TypeCounter = 8;
public const uint TypeEvent = 9;
public const uint Counter = 8;
public const uint Event = 9;
public const uint TypeEventTimer = 101;
public const uint TypeEventNpc = 102;
public const uint TypeNorthrendBeasts = 103;
public const uint EventTimer = 101;
public const uint EventNpc = 102;
public const uint NorthrendBeasts = 103;
public const uint SnoboldCount = 301;
public const uint MistressOfPainCount = 302;
@@ -70,7 +70,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
Anubarak = 724006
}
struct CreatureIds
public struct CreatureIds
{
public const uint Barrent = 34816;
public const uint Tirion = 34996;
@@ -132,7 +132,7 @@ namespace Scripts.Northrend.CrusadersColiseum.TrialOfTheCrusader
public const uint LightEssence = 34568;
public const uint Anubarak = 34564;
};
}
struct GameObjectIds
{