174 {-814.59f, -64.54f, 429.92f, 5.969f},
175 {-784.37f, -33.31f, 429.92f, 5.096f},
176 {-808.99f, -52.10f, 429.92f, 5.668f},
177 {-798.59f, -44.00f, 429.92f, 5.663f},
178 {-812.83f, -77.71f, 429.92f, 0.046f},
183 {-717.83f, -106.56f, 430.02f, 0.122f},
184 {-717.83f, -114.23f, 430.44f, 0.122f},
185 {-717.83f, -109.70f, 430.22f, 0.122f},
186 {-718.45f, -118.24f, 430.26f, 0.052f},
187 {-718.45f, -123.58f, 430.41f, 0.085f},
192 {-724.12f, -176.64f, 430.03f, 2.543f},
193 {-766.70f, -225.03f, 430.50f, 1.710f},
194 {-729.54f, -186.26f, 430.12f, 1.902f},
195 {-756.01f, -219.23f, 430.50f, 2.369f},
196 {-798.01f, -227.24f, 429.84f, 1.446f},
201 {377.02f, -119.10f, 409.81f, 0.0f},
202 {185.62f, -119.10f, 409.81f, 0.0f},
203 {377.02f, 54.78f, 409.81f, 0.0f},
204 {185.62f, 54.78f, 409.81f, 0.0f},
323 vehicle->InstallAllAccessories(
false);
368 me->InterruptNonMeleeSpells(
true);
399 lift->GetMotionMaster()->MoveRandom(100);
418 for (
uint8 i = 0; i < 7; ++i)
421 thorim->GetMotionMaster()->MoveRandom(100);
432 for (
uint8 i = 0; i < 7; ++i)
435 hodir->GetMotionMaster()->MoveRandom(100);
442 for (
int32 i = 0; i < 4; ++i)
463 if (action && action <= 4)
513 me->GetMotionMaster()->MoveCharge(
Center.GetPositionX(),
Center.GetPositionY(),
Center.GetPositionZ());
529 if (
me->isAttackReady())
532 if (
me->IsWithinCombatRange(target, 30.0f))
535 me->resetAttackTimer();
560 me->SetDisplayId(
me->GetCreatureTemplate()->Modelid2);
569 if (!
me->GetVehicle())
576 else if (
Creature* leviathan =
me->GetVehicleCreatureBase())
581 turret->setFaction(
me->GetVehicleBase()->getFaction());
583 turret->AI()->AttackStart(who);
708 if (
me->GetVehicle())
716 player->GetMotionMaster()->MoveKnockbackFrom(
me->GetVehicleBase()->GetPositionX(),
me->GetVehicleBase()->GetPositionY(), 30, 30);
717 player->ExitVehicle();
743 me->GetPosition(x, y, z);
744 z =
me->GetMap()->GetHeight(
me->GetPhaseMask(), x, y, z);
745 me->GetMotionMaster()->MovePoint(0, x, y, z);
746 me->SetPosition(x, y, z, 0);
777 me->GetMotionMaster()->MoveRandom(50);
782 me->GetMotionMaster()->MoveTargetedHome();
796 container->EnterVehicle(
me);
803 if (
me->GetVehicleKit()->HasEmptySeat(-1))
873 if (
me->GetHomePosition().IsInDist(&
Center, 50.f))
963 Start(
false,
true, 0, NULL,
false,
true);
1108#define GOSSIP_ITEM_1 "Activate secondary defensive systems"
1109#define GOSSIP_ITEM_2 "Confirmed"
1140 player->CLOSE_GOSSIP_MENU();
1148 player->PrepareGossipMenu(creature);
1152 player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
1158 creature->SetVisible(
false);
1164 Delorah->GetMotionMaster()->MovePoint(0, Branz->GetPositionX()-4, Branz->GetPositionY(), Branz->GetPositionZ());
1180 player->PrepareGossipMenu(creature);
1183 player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
1255 switch (go->GetEntry())
1599 if (!creatureTarget)
1616 bool playerFound =
false;
1617 for (SeatMap::const_iterator itr = vehicle->
Seats.begin(); itr != vehicle->
Seats.end() && !playerFound; ++itr)
1621 return !playerFound;
1646 if (targets.empty())
1649 caster->AI()->EnterEvadeMode();
1715 if (
Unit* passenger = vehicle->GetPassenger(damage - 1))
1718 std::list<WorldObject*> targetList;
1722 float minDist = 99 * 99;
1723 Unit* target = NULL;
1724 for (std::list<WorldObject*>::iterator itr = targetList.begin(); itr != targetList.end(); ++itr)
1728 if (
Vehicle* seat = unit->GetVehicleKit())
1729 if (!seat->GetPassenger(0))
1730 if (
Unit* device = seat->GetPassenger(2))
1733 float dist = unit->GetExactDistSq(targets.
GetDstPos());
1745 passenger->ExitVehicle();
1748 passenger->GetMotionMaster()->MoveJump(x, y, z, targets.
GetSpeedXY(), targets.
GetSpeedZ());
@ TEMPSUMMON_TIMED_DESPAWN
@ TEMPSUMMON_CORPSE_TIMED_DESPAWN
bool IS_PLAYER_GUID(uint64 guid)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_APPLY_AURA
@ TARGET_UNIT_SRC_AREA_ENEMY
@ SPELL_AURA_CONTROL_VEHICLE
@ SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN
@ AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK
@ AURA_EFFECT_HANDLE_REAL
#define SpellEffectFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraEffectRemoveFn(F, I, N, M)
@ UNIT_NPC_FLAG_SPELLCLICK
@ CURRENT_CHANNELED_SPELL
@ UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_NOT_SELECTABLE
@ NPC_FREYA_TARGET_BEACON
@ NPC_HODIR_TARGET_BEACON
@ NPC_THORIM_TARGET_BEACON
@ NPC_ULDUAR_GAUNTLET_GENERATOR
@ NPC_MIMIRON_TARGET_BEACON
@ DATA_ORBIT_ACHIEVEMENTS
Position const InfernoStart
@ SPELL_BUFF_TOWER_OF_FLAMES
@ SPELL_BUFF_TOWER_OF_FR0ST
@ SPELL_FREYA_S_WARD_EFFECT_2
@ SPELL_DUST_CLOUD_IMPACT
@ SPELL_FREYA_S_WARD_EFFECT_1
@ SPELL_BUFF_TOWER_OF_LIFE
@ SPELL_BUFF_TOWER_OF_STORMS
@ SPELL_MIMIRON_S_INFERNO
@ SPELL_INVIS_AND_STEALTH_DETECT
Position const PosSiege[VEHICLE_SPAWNS]
Position const FreyaBeacons[FREYA_SPAWNS]
void AddSC_boss_flame_leviathan()
Position const PosDemolisher[VEHICLE_SPAWNS]
@ EVENT_MIMIRON_S_INFERNO
Position const PosChopper[VEHICLE_SPAWNS]
AchievementCriteriaScript(const char *name)
WorldObject * GetOwner() const
HookList< EffectApplyHandler > OnEffectRemove
HookList< EffectApplyHandler > OnEffectApply
BossAI(Creature *creature, uint32 bossId)
Creature * DoSummon(uint32 entry, Position const &pos, uint32 despawnTime=30000, TempSummonType summonType=TempSummonType::TEMPSUMMON_CORPSE_TIMED_DESPAWN)
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
Creature * DoSummonFlyer(uint32 entry, WorldObject *obj, float flightZ, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TempSummonType::TEMPSUMMON_CORPSE_TIMED_DESPAWN)
CreatureScript(const char *name)
FlameLeviathanPursuedTargetSelector(Unit *unit)
bool operator()(WorldObject *target) const
GameObjectScript(const char *name)
void LoadGrid(float x, float y)
void VisitAll(const float &x, const float &y, float radius, NOTIFIER ¬ifier)
Creature * GetCreature(uint64 guid)
static Unit * GetUnit(WorldObject const &, uint64 guid)
void SetFlag(uint16 index, uint32 newFlag)
void RemoveFlag(uint16 index, uint32 oldFlag)
WorldLocation const * GetDstPos() const
SpellCastTargets m_targets
WorldLocation const * GetExplTargetDest()
SpellInfo const * GetSpellInfo()
void PreventHitDefaultEffect(SpellEffIndex effIndex)
HookList< EffectHandler > OnEffectHitTarget
void PreventHitEffect(SpellEffIndex effIndex)
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
HookList< HitHandler > BeforeHit
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 DoCastAOE(uint32 spellId, bool triggered=false)
virtual void AttackStart(Unit *)
void EnterVehicle(Unit *base, int8 seatId=-1)
Vehicle * GetVehicle() const
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)
void RemoveAurasDueToSpell(uint32 spellId, uint64 casterGUID=0, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Creature * GetVehicleCreatureBase() const
MotionMaster * GetMotionMaster()
void AddUnitState(uint32 f)
Vehicle * GetVehicleKit() const
Unit * GetBase() const
May be called from scripts.
Unit * GetPassenger(int8 seatId) const
Gets a passenger on specified seat.
SeatMap Seats
The collection of all seats on the vehicle. Including vacant ones.
bool IsWithinDist2d(float x, float y, float dist) const
InstanceScript * GetInstanceScript()
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
void MonsterTextEmote(const char *text, WorldObject const *target, bool IsBossEmote=false)
virtual uint32 GetData(uint32) const
virtual void SetData(uint32, uint32)
virtual void ProcessEvent(WorldObject *, uint32)
virtual uint64 GetData64(uint32) const
bool OnCheck(Player *, Unit *target) OVERRIDE
achievement_nuked_from_orbit()
bool OnCheck(Player *, Unit *target) OVERRIDE
bool OnCheck(Player *, Unit *target) OVERRIDE
achievement_orbital_bombardment()
achievement_orbital_devastation()
bool OnCheck(Player *, Unit *target) OVERRIDE
bool OnCheck(Player *, Unit *target) OVERRIDE
bool OnCheck(Player *source, Unit *) OVERRIDE
achievement_three_car_garage_chopper()
achievement_three_car_garage_demolisher()
bool OnCheck(Player *source, Unit *) OVERRIDE
bool OnCheck(Player *source, Unit *) OVERRIDE
achievement_three_car_garage_siege()
bool OnCheck(Player *, Unit *target) OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
boss_flame_leviathan_defense_cannon()
boss_flame_leviathan_defense_turret()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
boss_flame_leviathan_overload_device()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
boss_flame_leviathan_safety_container()
boss_flame_leviathan_seat()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
void OnDestroyed(GameObject *go, Player *) 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
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
void CheckCooldownForTarget()
PrepareSpellScript(spell_auto_repair_SpellScript)
void HandleScript(SpellEffIndex)
SpellScript * GetSpellScript() const OVERRIDE
void OnApply(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_load_into_catapult_AuraScript)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
spell_load_into_catapult()
AuraScript * GetAuraScript() const OVERRIDE
void FilterTargetsSubsequently(std::list< WorldObject * > &targets)
PrepareSpellScript(spell_pursue_SpellScript)
void FilterTargets(std::list< WorldObject * > &targets)
void HandleScript(SpellEffIndex)
SpellScript * GetSpellScript() const OVERRIDE
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void OnApply(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_systems_shutdown_AuraScript)
AuraScript * GetAuraScript() const OVERRIDE
void HandleScript(SpellEffIndex effIndex)
PrepareSpellScript(spell_vehicle_throw_passenger_SpellScript)
SpellScript * GetSpellScript() const OVERRIDE
spell_vehicle_throw_passenger()
C::value_type const & SelectRandomContainerElement(C const &container)
float GetPositionZ() const
float GetPositionX() const
void GetPosition(float &x, float &y) const
float GetPositionY() const
const T & RAID_MODE(const T &normal10, const T &normal25) const
ScriptedAI(Creature *creature)
void DoAction(int32 action) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void SetData(uint32 id, uint32 data) OVERRIDE
void InitializeAI() OVERRIDE
void SpellHit(Unit *, SpellInfo const *spell) OVERRIDE
void JustDied(Unit *) OVERRIDE
void EnterCombat(Unit *) OVERRIDE
void DoBatteringRamIfReady()
boss_flame_leviathanAI(Creature *creature)
uint32 GetData(uint32 type) const OVERRIDE
void SpellHitTarget(Unit *target, SpellInfo const *spell) OVERRIDE
bool CanAIAttack(Unit const *who) const OVERRIDE
boss_flame_leviathan_defense_cannonAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
bool CanAIAttack(Unit const *who) const OVERRIDE
void DamageTaken(Unit *who, uint32 &damage) OVERRIDE
boss_flame_leviathan_defense_turretAI(Creature *creature)
void OnSpellClick(Unit *, bool &result) OVERRIDE
boss_flame_leviathan_overload_deviceAI(Creature *creature)
void JustDied(Unit *) OVERRIDE
boss_flame_leviathan_safety_containerAI(Creature *creature)
void UpdateAI(uint32) OVERRIDE
== Triggered Actions Requested ==================
InstanceScript * instance
void PassengerBoarded(Unit *who, int8 seatId, bool apply) OVERRIDE
== Fields =======================================
boss_flame_leviathan_seatAI(Creature *creature)
void UpdateAI(uint32) OVERRIDE
== Triggered Actions Requested ==================
InstanceScript * instance
npc_colossusAI(Creature *creature)
void JustDied(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
bool HasEscortState(uint32 escortState) const
npc_escortAI(Creature *creature)
void Start(bool isActiveAttacker=true, bool run=false, uint64 playerGUID=0, Quest const *quest=NULL, bool instantRespawn=false, bool canLoopPath=false, bool resetWaypoints=true)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_freya_ward_summonAI(Creature *creature)
npc_freyas_wardAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void UpdateAI(uint32) OVERRIDE
== Triggered Actions Requested ==================
npc_hodirs_furyAI(Creature *creature)
void MoveInLineOfSight(Unit *who) OVERRIDE
npc_lorekeeperAI(Creature *creature)
void DoAction(int32 action) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_mechanoliftAI(Creature *creature)
void MovementInform(uint32 type, uint32 id) OVERRIDE
void JustDied(Unit *) OVERRIDE
void WaypointReached(uint32) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_mimirons_infernoAI(Creature *creature)
void SpellHit(Unit *, SpellInfo const *spell) OVERRIDE
void UpdateAI(uint32) OVERRIDE
== Triggered Actions Requested ==================
npc_pool_of_tarAI(Creature *creature)
void DamageTaken(Unit *, uint32 &damage) OVERRIDE
void MoveInLineOfSight(Unit *who) OVERRIDE
npc_thorims_hammerAI(Creature *creature)
void UpdateAI(uint32) OVERRIDE
== Triggered Actions Requested ==================
@ ACTION_TOWER_OF_FLAMES_DESTROYED
@ ACTION_TOWER_OF_STORM_DESTROYED
@ ACTION_MOVE_TO_CENTER_POSITION
@ ACTION_TOWER_OF_LIFE_DESTROYED
@ ACTION_TOWER_OF_FROST_DESTROYED
@ NPC_SALVAGED_SIEGE_ENGINE
@ NPC_SALVAGED_DEMOLISHER
@ EVENT_TOWER_OF_STORM_DESTROYED
@ EVENT_TOWER_OF_LIFE_DESTROYED
@ EVENT_TOWER_OF_FLAMES_DESTROYED
@ EVENT_TOWER_OF_FROST_DESTROYED