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
@@ -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)
{