126#define GROUND_Z 391.517f
127#define GOSSIP_ITEM_1 "Activate Harpoons!"
137 { 590.442f, -130.550f,
GROUND_Z, 4.789f },
138 { 574.850f, -133.687f,
GROUND_Z, 4.252f },
139 { 606.567f, -143.369f,
GROUND_Z, 4.434f },
140 { 560.609f, -142.967f,
GROUND_Z, 5.074f },
145 { 600.75f, -104.850f,
GROUND_Z, 0 },
146 { 596.38f, -110.262f,
GROUND_Z, 0 },
147 { 566.47f, -103.633f,
GROUND_Z, 0 },
148 { 570.41f, -108.791f,
GROUND_Z, 0 },
153 { 614.975f, -155.138f,
GROUND_Z, 4.154f },
154 { 609.814f, -204.968f,
GROUND_Z, 5.385f },
155 { 563.531f, -201.557f,
GROUND_Z, 4.108f },
156 { 560.231f, -153.677f,
GROUND_Z, 5.403f },
161 { 571.901f, -136.554f,
GROUND_Z, 0 },
162 { 589.450f, -134.888f,
GROUND_Z, 0 },
163 { 559.119f, -140.505f,
GROUND_Z, 0 },
164 { 606.229f, -136.721f,
GROUND_Z, 0 },
180 me->SetDisplayId(
me->GetCreatureTemplate()->Modelid2);
195 Harpoon1->RemoveFromWorld();
197 Harpoon2->RemoveFromWorld();
199 Harpoon3->RemoveFromWorld();
201 Harpoon4->RemoveFromWorld();
251 BrokenHarpoon->RemoveFromWorld();
261 BrokenHarpoon->RemoveFromWorld();
270 BrokenHarpoon->RemoveFromWorld();
280 BrokenHarpoon->RemoveFromWorld();
361 controller->AI()->Reset();
433 me->SetCanFly(
false);
444 me->RemoveAllAuras();
510 me->CastSpell(target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(),
SPELL_DEVOURING_FLAME,
true);
527 me->SetCanFly(
false);
547 uint8 random = std::rand() % 4 + 2;
548 for (
uint8 n = 0; n < random; n++)
550 float x = float(std::rand() % 640 + 540);
551 float y = float(std::rand() % -195 + -230);
618 summons.push_back(summoned->GetGUID());
654 Engineer[n]->GetMotionMaster()->MoveTargetedHome();
661 for (
uint8 n = 0; n < 4; n++)
666 Defender[n]->GetMotionMaster()->MoveTargetedHome();
673 for (
uint8 n = 0; n < 4; ++n)
683 me->SetInCombatWith(Razorscale);
697 player->PlayerTalkClass->ClearMenus();
701 player->CLOSE_GOSSIP_MENU();
713 player->PrepareGossipMenu(creature);
716 player->SEND_GOSSIP_MENU(13853, creature->GetGUID());
719 player->SEND_GOSSIP_MENU(13910, creature->GetGUID());
770 switch (std::rand() % 1)
790 molemachine->Delete();
792 me->DisappearAndDie();
800 summoned->AI()->DoZoneInCombat();
1013 if (!caster || !summonLocation)
@ DIFFICULTY_25MAN_NORMAL
@ TEMPSUMMON_TIMED_DESPAWN
@ TEMPSUMMON_CORPSE_TIMED_DESPAWN
@ EMOTE_STATE_USE_STANDING
#define SpellEffectFn(F, I, N)
@ UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_NOT_SELECTABLE
@ UNIT_FIELD_NPC_EMOTESTATE
const Position PosEngRepair[4]
const Position PosDefSpawn[4]
const Position RazorFlight
@ ACTION_PLACE_BROKEN_HARPOON
@ DATA_IRON_DWARF_MEDIUM_RARE
@ SPELL_SUMMON_IRON_DWARVE_GUARDIAN
@ SPELL_SUMMON_MOLE_MACHINE
@ SPELL_SUMMON_IRON_DWARVES_2
@ SPELL_DEVOURING_FLAME_TRIGGER
@ SPELL_SUMMON_IRON_DWARVE_WATCHER
@ SPELL_DEVOURING_FLAME_DAMAGE
@ SPELL_SUMMON_IRON_DWARVES
const Position PosHarpoon[4]
const Position PosEngSpawn
void AddSC_boss_razorscale()
const Position RazorGround
const Position PosDefCombat[4]
AchievementCriteriaScript(const char *name)
InstanceScript *const instance
BossAI(Creature *creature, uint32 bossId)
void DoZoneInCombat(Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
CreatureScript(const char *name)
GameObjectScript(const char *name)
EncounterState GetBossState(uint32 id) const
static Creature * GetCreature(WorldObject const &u, uint64 guid)
static GameObject * GetGameObject(WorldObject const &u, uint64 guid)
Creature * GetHitCreature()
WorldLocation const * GetExplTargetDest()
SpellInfo const * GetSpellInfo()
HookList< HitHandler > OnHit
HookList< EffectHandler > OnEffectHit
void PreventHitDefaultEffect(SpellEffIndex effIndex)
SpellScriptLoader(const char *name)
virtual void SetData(uint32, uint32)
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)
GameObject * FindNearestGameObject(uint32 entry, float range) const
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TempSummonType::TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0) const
virtual uint64 GetData64(uint32) const
bool OnCheck(Player *, Unit *target) OVERRIDE
achievement_iron_dwarf_medium_rare()
achievement_quick_shave()
bool OnCheck(Player *, Unit *target) OVERRIDE
boss_razorscale_controller()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
bool OnGossipHello(Player *, GameObject *go) OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
bool OnGossipHello(Player *player, Creature *creature) OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
bool OnGossipSelect(Player *player, Creature *creature, uint32, uint32 action) OVERRIDE
npc_expedition_commander()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
npc_mole_machine_trigger()
PrepareSpellScript(spell_razorscale_devouring_flame_SpellScript)
void HandleSummon(SpellEffIndex effIndex)
SpellScript * GetSpellScript() const OVERRIDE
spell_razorscale_devouring_flame()
PrepareSpellScript(spell_razorscale_flame_breath_SpellScript)
spell_razorscale_flame_breath()
SpellScript * GetSpellScript() const OVERRIDE
float GetPositionX() const
float GetPositionY() const
void SetCombatMovement(bool allowMovement)
bool HealthBelowPct(uint32 pct) const
const T & RAID_MODE(const T &normal10, const T &normal25) const
ScriptedAI(Creature *creature)
boss_razorscaleAI(Creature *creature)
void EnterCombat(Unit *) OVERRIDE
void UpdateAI(uint32 Diff) OVERRIDE
== Triggered Actions Requested ==================
uint32 GetData(uint32 type) const OVERRIDE
void JustDied(Unit *) OVERRIDE
void DoAction(int32 action) OVERRIDE
void SummonMoleMachines()
void SpellHit(Unit *, SpellInfo const *spell) OVERRIDE
void MovementInform(uint32 type, uint32 id) OVERRIDE
void JustDied(Unit *) OVERRIDE
void SpellHit(Unit *, SpellInfo const *spell) OVERRIDE
void DoAction(int32 action) OVERRIDE
void UpdateAI(uint32 Diff) OVERRIDE
== Triggered Actions Requested ==================
boss_razorscale_controllerAI(Creature *creature)
void UpdateAI(uint32 Diff) OVERRIDE
== Triggered Actions Requested ==================
void SetData(uint32 type, uint32 value) OVERRIDE
npc_darkrune_guardianAI(Creature *creature)
uint32 GetData(uint32 type) const OVERRIDE
npc_darkrune_sentinelAI(Creature *creature)
void UpdateAI(uint32 Diff) OVERRIDE
== Triggered Actions Requested ==================
void UpdateAI(uint32 Diff) OVERRIDE
== Triggered Actions Requested ==================
npc_darkrune_watcherAI(Creature *creature)
npc_devouring_flameAI(Creature *creature)
void UpdateAI(uint32 Diff) OVERRIDE
== Triggered Actions Requested ==================
void MoveInLineOfSight(Unit *who) OVERRIDE
InstanceScript * instance
npc_expedition_commanderAI(Creature *creature)
void JustSummoned(Creature *summoned) OVERRIDE
void DoAction(int32 action) OVERRIDE
std::list< uint64 > summons
npc_mole_machine_triggerAI(Creature *creature)
void UpdateAI(uint32 Diff) OVERRIDE
== Triggered Actions Requested ==================
void JustSummoned(Creature *summoned) OVERRIDE
@ DATA_RAZORSCALE_CONTROL
@ DATA_EXPEDITION_COMMANDER
@ GO_RAZOR_BROKEN_HARPOON