Scripts/Icecrown Citadel: Added Sister Svalna gauntlet event script

This commit is contained in:
Shauren
2011-05-13 21:53:04 +02:00
parent 66a663b8e0
commit 39cd19f649
8 changed files with 1470 additions and 7 deletions

View File

@@ -24,7 +24,7 @@
#define ICCScriptName "instance_icecrown_citadel"
uint32 const EncounterCount = 12;
uint32 const EncounterCount = 13;
uint32 const WeeklyNPCs = 9;
uint32 const MaxHeroicAttempts = 50;
// Defined in boss_sindragosa.cpp
@@ -64,12 +64,13 @@ enum DataTypes
DATA_PROFESSOR_PUTRICIDE = 6,
DATA_BLOOD_PRINCE_COUNCIL = 7,
DATA_BLOOD_QUEEN_LANA_THEL = 8,
DATA_VALITHRIA_DREAMWALKER = 9,
DATA_SINDRAGOSA = 10,
DATA_THE_LICH_KING = 11,
DATA_SISTER_SVALNA = 9,
DATA_VALITHRIA_DREAMWALKER = 10,
DATA_SINDRAGOSA = 11,
DATA_THE_LICH_KING = 12,
// Additional data
DATA_SAURFANG_EVENT_NPC = 12,
DATA_SAURFANG_EVENT_NPC = 34,
DATA_BONED_ACHIEVEMENT = 13,
DATA_OOZE_DANCE_ACHIEVEMENT = 14,
DATA_PUTRICIDE_TABLE = 15,
@@ -86,6 +87,11 @@ enum DataTypes
DATA_TEAM_IN_INSTANCE = 26,
DATA_BLOOD_QUICKENING_STATE = 27,
DATA_HEROIC_ATTEMPTS = 28,
DATA_CROK_SCOURGEBANE = 29,
DATA_CAPTAIN_ARNATH = 30,
DATA_CAPTAIN_BRANDON = 31,
DATA_CAPTAIN_GRONDEL = 32,
DATA_CAPTAIN_RUPERT = 33,
};
enum CreaturesIds
@@ -186,6 +192,34 @@ enum CreaturesIds
// Blood-Queen Lana'thel
NPC_BLOOD_QUEEN_LANA_THEL = 37955,
// Frostwing Halls gauntlet event
NPC_CROK_SCOURGEBANE = 37129,
NPC_CAPTAIN_ARNATH = 37122,
NPC_CAPTAIN_BRANDON = 37123,
NPC_CAPTAIN_GRONDEL = 37124,
NPC_CAPTAIN_RUPERT = 37125,
NPC_CAPTAIN_ARNATH_UNDEAD = 37491,
NPC_CAPTAIN_BRANDON_UNDEAD = 37493,
NPC_CAPTAIN_GRONDEL_UNDEAD = 37494,
NPC_CAPTAIN_RUPERT_UNDEAD = 37495,
NPC_YMIRJAR_BATTLE_MAIDEN = 37132,
NPC_YMIRJAR_DEATHBRINGER = 38125,
NPC_YMIRJAR_FROSTBINDER = 37127,
NPC_YMIRJAR_HUNTRESS = 37134,
NPC_YMIRJAR_WARLORD = 37133,
NPC_SISTER_SVALNA = 37126,
NPC_IMPALING_SPEAR = 38248,
// Valithria Dreamwalker
NPC_VALITHRIA_DREAMWALKER = 36789,
NPC_GREEN_DRAGON_COMBAT_TRIGGER = 38752,
NPC_RISEN_ARCHMAGE = 37868,
NPC_BLAZING_SKELETON = 36791,
NPC_SUPPRESSER = 37863,
NPC_BLISTERING_ZOMBIE = 37934,
NPC_GLUTTONOUS_ABOMINATION = 37886,
NPC_THE_LICH_KING_VALITHRIA = 16980,
// Sindragosa
NPC_SINDRAGOSA = 36853,
NPC_SPINESTALKER = 37534,
@@ -305,6 +339,9 @@ enum SharedActions
// Blood-Queen Lana'thel
ACTION_KILL_MINCHAR = -379550,
// Frostwing Halls gauntlet event
ACTION_VRYKUL_DEATH = 37129,
// Sindragosa
ACTION_START_FROSTWYRM = -368530,
ACTION_TRIGGER_ASPHYXIATION = -368531,

View File

@@ -38,6 +38,7 @@ DoorData const doorData[] =
{GO_BLOOD_ELF_COUNCIL_DOOR_RIGHT, DATA_BLOOD_PRINCE_COUNCIL, DOOR_TYPE_PASSAGE, BOUNDARY_E },
{GO_DOODAD_ICECROWN_BLOODPRINCE_DOOR_01, DATA_BLOOD_QUEEN_LANA_THEL, DOOR_TYPE_ROOM, BOUNDARY_S },
{GO_DOODAD_ICECROWN_GRATE_01, DATA_BLOOD_QUEEN_LANA_THEL, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
{GO_GREEN_DRAGON_BOSS_ENTRANCE, DATA_SISTER_SVALNA, DOOR_TYPE_PASSAGE, BOUNDARY_S },
{GO_GREEN_DRAGON_BOSS_ENTRANCE, DATA_VALITHRIA_DREAMWALKER, DOOR_TYPE_ROOM, BOUNDARY_N },
{GO_GREEN_DRAGON_BOSS_EXIT, DATA_VALITHRIA_DREAMWALKER, DOOR_TYPE_PASSAGE, BOUNDARY_S },
{GO_SINDRAGOSA_ENTRANCE_DOOR, DATA_SINDRAGOSA, DOOR_TYPE_ROOM, BOUNDARY_S },
@@ -101,6 +102,9 @@ class instance_icecrown_citadel : public InstanceMapScript
memset(BloodCouncilGUIDs, 0, 3*sizeof(uint64));
BloodCouncilControllerGUID = 0;
BloodQueenLanaThelGUID = 0;
CrokScourgebaneGUID = 0;
memset(CrokCaptainGUIDs, 0, 4 * sizeof(uint64));
SisterSvalnaGUID = 0;
SindragosaGUID = 0;
SpinestalkerGUID = 0;
RimefangGUID = 0;
@@ -221,6 +225,19 @@ class instance_icecrown_citadel : public InstanceMapScript
case NPC_BLOOD_QUEEN_LANA_THEL:
BloodQueenLanaThelGUID = creature->GetGUID();
break;
case NPC_CROK_SCOURGEBANE:
CrokScourgebaneGUID = creature->GetGUID();
break;
// we can only do this because there are no gaps in their entries
case NPC_CAPTAIN_ARNATH:
case NPC_CAPTAIN_BRANDON:
case NPC_CAPTAIN_GRONDEL:
case NPC_CAPTAIN_RUPERT:
CrokCaptainGUIDs[creature->GetEntry()-NPC_CAPTAIN_ARNATH] = creature->GetGUID();
break;
case NPC_SISTER_SVALNA:
SisterSvalnaGUID = creature->GetGUID();
break;
case NPC_SINDRAGOSA:
SindragosaGUID = creature->GetGUID();
break;
@@ -278,6 +295,23 @@ class instance_icecrown_citadel : public InstanceMapScript
ColdflameJetGUIDs.erase(creature->GetGUID());
}
void OnCreatureDeath(Creature* creature)
{
switch (creature->GetEntry())
{
case NPC_YMIRJAR_BATTLE_MAIDEN:
case NPC_YMIRJAR_DEATHBRINGER:
case NPC_YMIRJAR_FROSTBINDER:
case NPC_YMIRJAR_HUNTRESS:
case NPC_YMIRJAR_WARLORD:
if (Creature* crok = instance->GetCreature(CrokScourgebaneGUID))
crok->AI()->SetGUID(creature->GetGUID(), ACTION_VRYKUL_DEATH);
break;
default:
break;
}
}
void OnGameObjectCreate(GameObject* go)
{
switch (go->GetEntry())
@@ -466,6 +500,15 @@ class instance_icecrown_citadel : public InstanceMapScript
return SpinestalkerGUID;
case DATA_RIMEFANG:
return RimefangGUID;
case DATA_CROK_SCOURGEBANE:
return CrokScourgebaneGUID;
case DATA_CAPTAIN_ARNATH:
case DATA_CAPTAIN_BRANDON:
case DATA_CAPTAIN_GRONDEL:
case DATA_CAPTAIN_RUPERT:
return CrokCaptainGUIDs[type-DATA_CAPTAIN_ARNATH];
case DATA_SISTER_SVALNA:
return SisterSvalnaGUID;
default:
break;
}
@@ -1011,6 +1054,9 @@ class instance_icecrown_citadel : public InstanceMapScript
uint64 BloodCouncilGUIDs[3];
uint64 BloodCouncilControllerGUID;
uint64 BloodQueenLanaThelGUID;
uint64 CrokScourgebaneGUID;
uint64 CrokCaptainGUIDs[4];
uint64 SisterSvalnaGUID;
uint64 SindragosaGUID;
uint64 SpinestalkerGUID;
uint64 RimefangGUID;