diff options
Diffstat (limited to 'src/server/scripts')
4 files changed, 25 insertions, 8 deletions
| diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.h b/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.h index 926acc8c965..2282acaa233 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.h +++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/blackrock_depths.h @@ -54,6 +54,7 @@ enum eTypes      DATA_THRONE_DOOR        = 24,      DATA_SF_BRAZIER_N       = 25, -    DATA_SF_BRAZIER_S       = 26 +    DATA_SF_BRAZIER_S       = 26, +    DATA_MOIRA              = 27,  };  #endif diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp index 3ff21b428d6..1d9878a331a 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp @@ -24,6 +24,7 @@ SDCategory: Blackrock Depths  EndScriptData */  #include "ScriptPCH.h" +#include "blackrock_depths.h"  enum Yells  { @@ -49,8 +50,12 @@ public:      struct boss_draganthaurissanAI : public ScriptedAI      { -        boss_draganthaurissanAI(Creature* c) : ScriptedAI(c) {} +        boss_draganthaurissanAI(Creature* c) : ScriptedAI(c) +        { +            instance = me->GetInstanceScript(); +        } +        InstanceScript* instance;          uint32 HandOfThaurissan_Timer;          uint32 AvatarOfFlame_Timer;          //uint32 Counter; @@ -73,6 +78,15 @@ public:              DoScriptText(SAY_SLAY, me);          } +        void JustDied(Unit* /*who*/) +        { +            if (Creature* Moira = ObjectAccessor::GetCreature(*me, instance ? instance->GetData64(DATA_MOIRA) : 0)) +            { +                Moira->AI()->EnterEvadeMode(); +                Moira->setFaction(35); +            } +        } +          void UpdateAI(const uint32 diff)          {              //Return since we have no target diff --git a/src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp index 95d15ceb4bd..f6fa3ca18d9 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp @@ -42,6 +42,7 @@ enum eEnums      NPC_GLOOMREL            = 9037,      NPC_DOOMREL             = 9039,      NPC_MAGMUS              = 9938, +    NPC_MOIRA               = 8929,      GO_ARENA1               = 161525,      GO_ARENA2               = 161522, @@ -87,6 +88,7 @@ public:          uint64 EmperorGUID;          uint64 PhalanxGUID;          uint64 MagmusGUID; +        uint64 MoiraGUID;          uint64 GoArena1GUID;          uint64 GoArena2GUID; @@ -124,6 +126,7 @@ public:              EmperorGUID = 0;              PhalanxGUID = 0;              MagmusGUID = 0; +            MoiraGUID = 0;              GoArena1GUID = 0;              GoArena2GUID = 0; @@ -163,6 +166,7 @@ public:              {              case NPC_EMPEROR: EmperorGUID = creature->GetGUID(); break;              case NPC_PHALANX: PhalanxGUID = creature->GetGUID(); break; +            case NPC_MOIRA: MoiraGUID = creature->GetGUID(); break;              case NPC_DOOMREL: TombBossGUIDs[0] = creature->GetGUID(); break;              case NPC_DOPEREL: TombBossGUIDs[1] = creature->GetGUID(); break;              case NPC_HATEREL: TombBossGUIDs[2] = creature->GetGUID(); break; @@ -308,6 +312,8 @@ public:                  return EmperorGUID;              case DATA_PHALANX:                  return PhalanxGUID; +            case DATA_MOIRA: +                return MoiraGUID;              case DATA_ARENA1:                  return GoArena1GUID;              case DATA_ARENA2: diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp index cab271f923f..a7abfcf42be 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp @@ -780,12 +780,8 @@ class spell_assembly_meltdown : public SpellScriptLoader              void HandleInstaKill(SpellEffIndex /*effIndex*/)              { -                Unit* caster = GetCaster(); -                if (!caster) -                    return; - -                if (InstanceScript* instance = caster->GetInstanceScript()) -                    if (Creature* Steelbreaker = ObjectAccessor::GetCreature(*caster, instance->GetData64(BOSS_STEELBREAKER))) +                if (InstanceScript* instance = GetCaster()->GetInstanceScript()) +                    if (Creature* Steelbreaker = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(BOSS_STEELBREAKER)))                          Steelbreaker->AI()->DoAction(ACTION_ADD_CHARGE);              } | 
