120#define FLOOR_Z 427.28f
121#define FINAL_FLIGHT_Z 435.0f
138 me->RemoveAllAuras();
154 return (
phase >= 3) ? 1 : 0;
190 me->SetLootRecipient(NULL);
195 if (Brundir->IsAlive())
199 if (Molgeim->IsAlive())
233 if (
me->IsWithinMeleeRange(
me->GetVictim()))
275 me->RemoveAllAuras();
291 return (
phase >= 3) ? 1 : 0;
327 me->SetLootRecipient(NULL);
332 if (Brundir->IsAlive())
336 if (Steelbreaker->IsAlive())
369 switch (std::rand() % 2)
373 if (Steelbreaker->IsAlive())
374 target = Steelbreaker;
378 if (Brundir->IsAlive())
432 me->RemoveAllAuras();
433 me->SetDisableGravity(
false);
441 return (
phase >= 3) ? 1 : 0;
492 me->SetLootRecipient(NULL);
497 if (Molgeim->IsAlive())
501 if (Steelbreaker->IsAlive())
507 me->GetMotionMaster()->MoveFall();
556 me->GetMotionMaster()->Initialize();
558 events.DelayEvents(35000);
565 me->GetMotionMaster()->MovePoint(0, target->GetPositionX(), target->GetPositionY(),
FINAL_FLIGHT_Z);
569 me->GetMotionMaster()->Initialize();
570 me->GetMotionMaster()->MovePoint(0, 1586.920166f, 119.848984f,
FINAL_FLIGHT_Z);
576 me->GetMotionMaster()->Initialize();
577 me->GetMotionMaster()->MovePoint(0,
me->GetPositionX(),
me->GetPositionY(),
FLOOR_Z);
587 me->getThreatManager().resetAllAggro();
590 if (
me->IsWithinMeleeRange(
me->GetVictim()))
592 float x = float(std::rand() % 25 + -25);
593 float y = float(std::rand() % 25 + -25);
594 me->GetMotionMaster()->MovePoint(0,
me->GetPositionX() + x,
me->GetPositionY() + y,
FLOOR_Z);
597 if (
me->GetDistance(trigger) >= 50.0f)
598 me->GetMotionMaster()->MovePoint(0, trigger->GetPositionX(), trigger->GetPositionY(),
FLOOR_Z);
698 summ->DespawnOrUnsummon(1);
721 return target && target->GetAI()->GetData(
DATA_PHASE_3);
@ SPELL_AURA_SCHOOL_ABSORB
@ SPELL_AURA_PERIODIC_DUMMY
@ AURA_EFFECT_HANDLE_REAL
#define SpellEffectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectRemoveFn(F, I, N, M)
@ SPELL_ELECTRICAL_CHARGE
@ SPELL_LIGHTNING_TENDRILS_25M
@ SPELL_SUMMON_RUNE_OF_POWER
@ SPELL_RUNE_OF_SUMMONING_SUMMON
@ SPELL_SHIELD_OF_RUNES_BUFF
@ SPELL_LIGHTNING_TENDRILS_VISUAL
@ SPELL_STATIC_DISRUPTION
@ SPELL_LIGHTNING_TENDRILS_10M
@ SPELL_OVERWHELMING_POWER
@ SPELL_RUNE_OF_SUMMONING
@ EVENT_RUNE_OF_SUMMONING
@ EVENT_LIGHTNING_TENDRILS
@ EVENT_STATIC_DISRUPTION
@ EVENT_OVERWHELMING_POWER
void AddSC_boss_assembly_of_iron()
@ SAY_STEELBREAKER_ENCOUNTER_DEFEATED
@ SAY_BRUNDIR_ENCOUNTER_DEFEATED
@ SAY_MOLGEIM_ENCOUNTER_DEFEATED
@ SAY_STEELBREAKER_BERSERK
AchievementCriteriaScript(const char *name)
void PreventDefaultAction()
AuraApplication const * GetTargetApplication() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
HookList< EffectApplyHandler > OnEffectRemove
InstanceScript *const instance
BossAI(Creature *creature, uint32 bossId)
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
CreatureScript(const char *name)
static Creature * GetCreature(WorldObject const &u, uint64 guid)
HookList< EffectHandler > OnEffectHitTarget
SpellScriptLoader(const char *name)
void DoMeleeAttackIfReady()
void DoCast(uint32 spellId)
Unit * SelectTarget(SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
void DoCastVictim(uint32 spellId, bool triggered=false)
void DoCastAOE(uint32 spellId, bool triggered=false)
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
bool OnCheck(Player *, Unit *target) OVERRIDE
achievement_assembly_i_choose_you()
boss_runemaster_molgeim()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
boss_stormcaller_brundir()
PrepareSpellScript(spell_assembly_meltdown_SpellScript)
void HandleInstaKill(SpellEffIndex)
spell_assembly_meltdown()
SpellScript * GetSpellScript() const OVERRIDE
PrepareAuraScript(spell_assembly_rune_of_summoning_AuraScript)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void HandlePeriodic(AuraEffect const *aurEff)
bool Validate(SpellInfo const *) OVERRIDE
AuraScript * GetAuraScript() const OVERRIDE
spell_assembly_rune_of_summoning()
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_shield_of_runes_AuraScript)
AuraScript * GetAuraScript() const OVERRIDE
const T & RAID_MODE(const T &normal10, const T &normal25) const
void DoStartMovement(Unit *target, float distance=0.0f, float angle=0.0f)
uint32 GetData(uint32 type) const OVERRIDE
void KilledUnit(Unit *who) OVERRIDE
boss_runemaster_molgeimAI(Creature *creature)
void DoAction(int32 action) OVERRIDE
void JustDied(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void EnterCombat(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void KilledUnit(Unit *who) OVERRIDE
void JustDied(Unit *) OVERRIDE
void DoAction(int32 action) OVERRIDE
boss_steelbreakerAI(Creature *creature)
void EnterCombat(Unit *) OVERRIDE
uint32 GetData(uint32 type) const OVERRIDE
uint32 GetData(uint32 type) const OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void KilledUnit(Unit *who) OVERRIDE
void DoAction(int32 action) OVERRIDE
boss_stormcaller_brundirAI(Creature *creature)
void JustDied(Unit *) OVERRIDE
void EnterCombat(Unit *) OVERRIDE