Scripts/Instances: Add dungeon encounter data

Port From (https://github.com/TrinityCore/TrinityCore/commit/46e0056196dd6e56077aeeb67d41ec520046a79e)
This commit is contained in:
hondacrx
2022-10-04 19:50:48 -04:00
parent 4fab4cc6cf
commit 9d6b144884
20 changed files with 119 additions and 31 deletions
@@ -49,6 +49,15 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.BlackrockCaverns
new ObjectData(CreatureIds.RazTheCrazed, DataTypes.RazTheCrazed)
};
static DungeonEncounterData[] encounters =
{
new DungeonEncounterData(DataTypes.RomoggBonecrusher, 1040),
new DungeonEncounterData(DataTypes.Corla, 1038),
new DungeonEncounterData(DataTypes.KarshSteelbender, 1039),
new DungeonEncounterData(DataTypes.Beauty, 1037),
new DungeonEncounterData(DataTypes.AscendantLordObsidius, 1036)
};
public instance_blackrock_caverns() : base(nameof(instance_blackrock_caverns), 645) { }
class instance_blackrock_caverns_InstanceMapScript : InstanceScript
@@ -58,6 +67,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.BlackrockCaverns
SetHeaders("BRC");
SetBossNumber(5);
LoadObjectData(creatureData, null);
LoadDungeonEncounterData(encounters);
}
public override bool SetBossState(uint type, EncounterState state)
@@ -160,7 +160,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.BlackrockSpire
{
public instance_blackrock_spireMapScript(InstanceMap map) : base(map)
{
SetHeaders("BRS");
SetHeaders("BRSv1");
SetBossNumber(BRSMiscConst.EncounterCount);
LoadDoorData(BRSMiscConst.doorData);
@@ -25,9 +25,6 @@ using Framework.Constants;
namespace Scripts.EasternKingdoms.BlackrockMountain.BlackwingLair
{
//uint const EncounterCount = 8;
struct DataTypes
{
// Encounter States/Boss GUIDs
@@ -141,6 +138,18 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.BlackwingLair
[Script]
class instance_blackwing_lair : InstanceMapScript
{
static DungeonEncounterData[] encounters =
{
new DungeonEncounterData(DataTypes.RazorgoreTheUntamed, 610),
new DungeonEncounterData(DataTypes.VaelastrazTheCorrupt, 611),
new DungeonEncounterData(DataTypes.BroodlordLashlayer, 612),
new DungeonEncounterData(DataTypes.Firemaw, 613),
new DungeonEncounterData(DataTypes.Ebonroc, 614),
new DungeonEncounterData(DataTypes.Flamegor, 615),
new DungeonEncounterData(DataTypes.Chromaggus, 616),
new DungeonEncounterData(DataTypes.Nefarian, 617)
};
public instance_blackwing_lair() : base(nameof(instance_blackwing_lair), 469) { }
class instance_blackwing_lair_InstanceMapScript : InstanceScript
@@ -156,6 +165,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.BlackwingLair
SetBossNumber(BWLMisc.EncounterCount);
LoadDoorData(BWLMisc.doorData);
LoadObjectData(BWLMisc.creatureData, BWLMisc.gameObjectData);
LoadDungeonEncounterData(encounters);
// Razorgore
EggCount = 0;
@@ -41,7 +41,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore.BaronGeddon
[Script]
class boss_baron_geddon : BossAI
{
public boss_baron_geddon(Creature creature) : base(creature, BossIds.BaronGeddon) { }
public boss_baron_geddon(Creature creature) : base(creature, DataTypes.BaronGeddon) { }
public override void JustEngagedWith(Unit victim)
{
@@ -40,7 +40,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore.Garr
[Script]
class boss_garr : BossAI
{
public boss_garr(Creature creature) : base(creature, BossIds.Garr) { }
public boss_garr(Creature creature) : base(creature, DataTypes.Garr) { }
public override void JustEngagedWith(Unit victim)
{
@@ -32,7 +32,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore.Gehennas
[Script]
class boss_gehennas : BossAI
{
public boss_gehennas(Creature creature) : base(creature, BossIds.Gehennas) { }
public boss_gehennas(Creature creature) : base(creature, DataTypes.Gehennas) { }
public override void JustEngagedWith(Unit victim)
{
@@ -46,7 +46,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore.Golemagg
[Script]
class boss_golemagg : BossAI
{
public boss_golemagg(Creature creature) : base(creature, BossIds.GolemaggTheIncinerator) { }
public boss_golemagg(Creature creature) : base(creature, DataTypes.GolemaggTheIncinerator) { }
public override void Reset()
{
@@ -117,7 +117,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore.Golemagg
if (HealthAbovePct(50) || _instance == null)
return;
Creature pGolemagg = ObjectAccessor.GetCreature(me, _instance.GetGuidData(BossIds.GolemaggTheIncinerator));
Creature pGolemagg = ObjectAccessor.GetCreature(me, _instance.GetGuidData(DataTypes.GolemaggTheIncinerator));
if (pGolemagg)
{
if (pGolemagg.IsAlive())
@@ -23,7 +23,7 @@ using System;
namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore
{
struct BossIds
struct DataTypes
{
public const uint Lucifron = 0;
public const uint Magmadar = 1;
@@ -91,6 +91,20 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore
[Script]
class instance_molten_core : InstanceMapScript
{
static DungeonEncounterData[] encounters =
{
new DungeonEncounterData(DataTypes.Lucifron, 663),
new DungeonEncounterData(DataTypes.Magmadar, 664),
new DungeonEncounterData(DataTypes.Gehennas, 665),
new DungeonEncounterData(DataTypes.Garr, 666),
new DungeonEncounterData(DataTypes.Shazzrah, 667),
new DungeonEncounterData(DataTypes.BaronGeddon, 668),
new DungeonEncounterData(DataTypes.SulfuronHarbinger, 669),
new DungeonEncounterData(DataTypes.GolemaggTheIncinerator, 670),
new DungeonEncounterData(DataTypes.MajordomoExecutus, 671),
new DungeonEncounterData(DataTypes.Ragnaros, 672)
};
public instance_molten_core() : base(nameof(instance_molten_core), 409) { }
class instance_molten_core_InstanceMapScript : InstanceScript
@@ -104,7 +118,8 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore
public instance_molten_core_InstanceMapScript(InstanceMap map) : base(map)
{
SetHeaders("MC");
SetBossNumber(BossIds.MaxEncounter);
SetBossNumber(DataTypes.MaxEncounter);
LoadDungeonEncounterData(encounters);
_executusSchedule = false;
_ragnarosAddDeaths = 0;
}
@@ -168,9 +183,9 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore
{
switch (type)
{
case BossIds.GolemaggTheIncinerator:
case DataTypes.GolemaggTheIncinerator:
return _golemaggTheIncineratorGUID;
case BossIds.MajordomoExecutus:
case DataTypes.MajordomoExecutus:
return _majordomoExecutusGUID;
}
@@ -182,11 +197,11 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore
if (!base.SetBossState(bossId, state))
return false;
if (state == EncounterState.Done && bossId < BossIds.MajordomoExecutus)
if (state == EncounterState.Done && bossId < DataTypes.MajordomoExecutus)
if (CheckMajordomoExecutus())
SummonMajordomoExecutus();
if (bossId == BossIds.MajordomoExecutus && state == EncounterState.Done)
if (bossId == DataTypes.MajordomoExecutus && state == EncounterState.Done)
DoRespawnGameObject(_cacheOfTheFirelordGUID, TimeSpan.FromDays(7));
return true;
@@ -198,7 +213,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore
if (!_majordomoExecutusGUID.IsEmpty())
return;
if (GetBossState(BossIds.MajordomoExecutus) != EncounterState.Done)
if (GetBossState(DataTypes.MajordomoExecutus) != EncounterState.Done)
{
instance.SummonCreature(MCCreatureIds.MajordomoExecutus, MCMiscConst.SummonPositions[0]);
instance.SummonCreature(MCCreatureIds.FlamewakerHealer, MCMiscConst.SummonPositions[1]);
@@ -220,10 +235,10 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore
bool CheckMajordomoExecutus()
{
if (GetBossState(BossIds.Ragnaros) == EncounterState.Done)
if (GetBossState(DataTypes.Ragnaros) == EncounterState.Done)
return false;
for (byte i = 0; i < BossIds.MajordomoExecutus; ++i)
for (byte i = 0; i < DataTypes.MajordomoExecutus; ++i)
if (GetBossState(i) != EncounterState.Done)
return false;
@@ -32,7 +32,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore.Lucifron
[Script]
class boss_lucifron : BossAI
{
public boss_lucifron(Creature creature) : base(creature, BossIds.Lucifron) { }
public boss_lucifron(Creature creature) : base(creature, DataTypes.Lucifron) { }
public override void JustEngagedWith(Unit victim)
{
@@ -39,7 +39,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore.Magmadar
[Script]
class boss_magmadar : BossAI
{
public boss_magmadar(Creature creature) : base(creature, BossIds.Magmadar) { }
public boss_magmadar(Creature creature) : base(creature, DataTypes.Magmadar) { }
public override void Reset()
{
@@ -52,7 +52,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore.Majordomo
[Script]
class boss_majordomo : BossAI
{
public boss_majordomo(Creature creature) : base(creature, BossIds.MajordomoExecutus) { }
public boss_majordomo(Creature creature) : base(creature, DataTypes.MajordomoExecutus) { }
public override void KilledUnit(Unit victim)
{
@@ -93,7 +93,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore.Majordomo
{
_scheduler.Update(diff);
if (instance.GetBossState(BossIds.MajordomoExecutus) != EncounterState.Done)
if (instance.GetBossState(DataTypes.MajordomoExecutus) != EncounterState.Done)
{
if (!UpdateVictim())
return;
@@ -79,7 +79,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore
bool _hasSubmergedOnce;
bool _isBanished;
public boss_ragnaros(Creature creature) : base(creature, BossIds.Ragnaros)
public boss_ragnaros(Creature creature) : base(creature, DataTypes.Ragnaros)
{
Initialize();
_introState = 0;
@@ -153,7 +153,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore
break;
case EventIds.Intro4:
Talk(TextIds.SayArrival5Rag);
Creature executus = ObjectAccessor.GetCreature(me, instance.GetGuidData(BossIds.MajordomoExecutus));
Creature executus = ObjectAccessor.GetCreature(me, instance.GetGuidData(DataTypes.MajordomoExecutus));
if (executus)
Unit.Kill(me, executus);
break;
@@ -48,7 +48,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore.Shazzrah
[Script]
class boss_shazzrah : BossAI
{
public boss_shazzrah(Creature creature) : base(creature, BossIds.Shazzrah) { }
public boss_shazzrah(Creature creature) : base(creature, DataTypes.Shazzrah) { }
public override void JustEngagedWith(Unit target)
{
@@ -41,7 +41,7 @@ namespace Scripts.EasternKingdoms.BlackrockMountain.MoltenCore.Sulfuron
[Script]
class boss_sulfuron : BossAI
{
public boss_sulfuron(Creature creature) : base(creature, BossIds.SulfuronHarbinger) { }
public boss_sulfuron(Creature creature) : base(creature, DataTypes.SulfuronHarbinger) { }
public override void JustEngagedWith(Unit victim)
{