336 {6458.703f, 403.858f, 490.498f, 3.1205f},
337 {6422.950f, 423.335f, 510.451f, 0.0f},
338 {6426.343f, 420.515f, 508.650f, 0.0f},
343 {6462.025f, 403.681f, 489.721f, 3.1007f},
344 {6421.480f, 423.576f, 510.781f, 5.7421f},
349 {6463.969f, 407.198f, 489.240f, 2.2689f},
350 {6419.778f, 421.404f, 510.972f, 5.7421f},
355 {6464.371f, 400.944f, 489.186f, 6.1610f},
356 {6423.516f, 425.782f, 510.774f, 5.7421f},
361 {6462.929f, 409.826f, 489.392f, 3.0968f},
362 {6428.163f, 421.960f, 508.297f, 0.0f},
363 {6414.335f, 454.904f, 511.395f, 2.8972f},
368 {6462.650f, 405.670f, 489.576f, 2.9414f},
369 {6426.250f, 419.194f, 508.219f, 0.0f},
370 {6415.014f, 446.849f, 511.395f, 3.1241f},
375 {6462.646f, 401.218f, 489.601f, 2.7864f},
376 {6423.855f, 416.598f, 508.305f, 0.0f},
377 {6417.070f, 438.824f, 511.395f, 3.6651f},
444 Dalfors->GetMotionMaster()->MovePoint(0,
DalforsPos[1]);
449 Priest1->GetMotionMaster()->MovePoint(0,
Priest1Pos[1]);
454 Priest2->GetMotionMaster()->MovePoint(0,
Priest2Pos[1]);
459 Priest3->GetMotionMaster()->MovePoint(0,
Priest3Pos[1]);
464 Mason1->GetMotionMaster()->MovePoint(0,
Mason1Pos[1]);
469 Mason2->GetMotionMaster()->MovePoint(0,
Mason2Pos[1]);
474 Mason3->GetMotionMaster()->MovePoint(0,
Mason3Pos[1]);
490 Dalfors->SetFacingTo(6.215f);
500 Dalfors->GetMotionMaster()->MovePoint(0,
DalforsPos[2]);
505 Priest1->SetFacingTo(5.7421f);
510 Priest2->SetFacingTo(5.7421f);
515 Priest3->SetFacingTo(5.7421f);
520 Mason1->GetMotionMaster()->MovePoint(0,
Mason1Pos[2]);
525 Mason2->GetMotionMaster()->MovePoint(0,
Mason2Pos[2]);
530 Mason3->GetMotionMaster()->MovePoint(0,
Mason3Pos[2]);
541 Mason1->SetFacingTo(2.8972f);
542 Mason1->AI()->SetData(1, 1);
546 Mason2->SetFacingTo(3.1241f);
547 Mason2->AI()->SetData(1, 1);
551 Mason3->SetFacingTo(3.6651f);
552 Mason3->AI()->SetData(1, 1);
578 if (
urand(0, 1) == 0)
675 if (
Unit* summoner = summon->GetSummonerUnit())
698 switch (spellInfo->
Id)
748 Position const offset = { 0.0f, 0.0f, 30.0f, 0.0f };
1065 target->
CastSpell(target, triggeredSpellID,
true);
1135 Position const offset = { 0.0f, 0.0f, 20.0f, 0.0f };
1157 Position const offset = { 0.0f, 0.0f, 2.5f, 0.0f };
1388 creature->DespawnOrUnsummon();
1406 uint32 area = creature->GetAreaId();
1408 creature->DespawnOrUnsummon();
1483 if ((count % 20) == 0)
@ QUEST_STATUS_INCOMPLETE
uint32 urand(uint32 min, uint32 max)
bool roll_chance_i(int chance)
#define RegisterCreatureAI(ai_name)
#define RegisterSpellScript(spell_script)
Creature * GetClosestCreatureWithEntry(WorldObject *source, uint32 entry, float maxSearchRange, bool alive=true)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_KNOCK_BACK
@ TARGET_DEST_CASTER_BACK
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
#define SpellEffectFn(F, I, N)
#define SpellDestinationTargetSelectFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectApplyHandler > AfterEffectApply
int32 GetDuration() const
uint8 GetStackAmount() const
bool _EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
Creature * DoSummon(uint32 entry, Position const &pos, Milliseconds despawnTime=30s, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
virtual void EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
void SetHomePosition(float x, float y, float z, float o)
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void SetRegenerateHealth(bool value)
void RescheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={})
static Creature * ToCreature(Object *o)
static Unit * ToUnit(Object *o)
virtual void SetDynamicFlag(uint32 flag)
static Player * ToPlayer(Object *o)
int32 CalcValue(WorldObject const *caster=nullptr, int32 const *basePoints=nullptr) const
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
HookList< CastHandler > AfterCast
Creature * GetHitCreature() const
Player * GetHitPlayer() const
HookList< DestinationTargetSelectHandler > OnDestinationTargetSelect
HookList< EffectHandler > OnEffectHit
Unit * GetHitUnit() const
int32 GetEffectValue() const
HookList< EffectHandler > OnEffectHitTarget
HookList< CastHandler > OnCast
WorldLocation const * GetExplTargetDest() const
SpellInfo const * GetSpellInfo() const
void DoMeleeAttackIfReady()
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
Aura * GetAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
void SetControlled(bool apply, UnitState state)
void SetFaction(uint32 faction) override
bool isInBackInMap(Unit const *target, float distance, float arc=float(M_PI)) const
Unit * GetVehicleBase() const
MotionMaster * GetMotionMaster()
void SetUnitFlag2(UnitFlags2 flags)
TempSummon * ToTempSummon()
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
void EngageWithTarget(Unit *who)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
bool HasUnitState(const uint32 f) const
void HandleEmoteCommand(Emote emoteId)
Vehicle * GetVehicleKit() const
Unit * GetPassenger(int8 seatId) const
Gets a passenger on specified seat.
Unit * GetCharmerOrOwnerOrSelf() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
bool IsHostileTo(WorldObject const *target) const
void GetNearPoint2D(WorldObject const *searcher, float &x, float &y, float distance, float absAngle) const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
PrepareSpellScript(spell_icecrown_area_restrict_abom)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_icecrown_argent_cannon_assault)
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_icecrown_assign_credit_to_master)
PrepareSpellScript(spell_icecrown_bested_trigger)
bool Validate(SpellInfo const *spellInfo) override
void HandleScript(SpellEffIndex)
void HandleRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleApply(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_icecrown_bloated_abom_feign_death)
void HandleScript(SpellEffIndex)
void HandleKnockBack(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_icecrown_burst_at_the_seams_52510)
PrepareSpellScript(spell_icecrown_burst_at_the_seams_59576)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void HandleRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleApply(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_icecrown_burst_at_the_seams_59579)
bool Validate(SpellInfo const *spellInfo) override
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_icecrown_cannons_target)
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_icecrown_chum_the_water)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_icecrown_consume_minions)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_icecrown_ebon_blade_banner)
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_icecrown_forcecast_bridenbrad_ascension)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_icecrown_gift_of_the_lich_king)
PrepareSpellScript(spell_icecrown_grab_fake_soldier)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_icecrown_illidan_kill_credit_master)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_icecrown_jump_jets)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_icecrown_plant_battle_standard)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_icecrown_pound_drum)
PrepareSpellScript(spell_icecrown_summon_freed_crusader)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
PrepareSpellScript(spell_icecrown_summon_frost_wyrm)
void SetDest(SpellDestination &dest)
void SetDest(SpellDestination &dest)
PrepareSpellScript(spell_icecrown_summon_soul_moveto_bunny)
void SetDest(SpellDestination &dest)
PrepareSpellScript(spell_icecrown_summon_tualiq_proxy)
bool Validate(SpellInfo const *spellInfo) override
PrepareSpellScript(spell_icecrown_the_ocular_on_death)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_icecrown_through_the_eye_kill_credit_to_master)
void HandleScript(SpellEffIndex)
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
void AfterApply(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_icecrown_through_the_eye_the_eye_of_the_lk)
bool Validate(SpellInfo const *) override
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
float GetPositionZ() const
float GetOrientation() const
float GetAbsoluteAngle(float x, float y) const
float GetPositionX() const
float GetPositionY() const
void SetCombatMovement(bool allowMovement)
void SetAggressiveStateAfter(Milliseconds timer, Creature *who=nullptr, bool startCombat=true, Creature *summoner=nullptr, StartCombatArgs const &combatArgs={ })
void RelocateOffset(Position const &offset)
void UpdateAI(uint32 diff) override
void DamageTaken(Unit *pDoneBy, uint32 &uiDamage, DamageEffectType, SpellInfo const *) override
void MovementInform(uint32 uiType, uint32) override
npc_argent_valiant(Creature *creature)
uint32 uiShieldBreakerTimer
void UpdateAI(uint32 uiDiff) override
void JustSummoned(Creature *summon) override
npc_blessed_banner(Creature *creature)
void JustDied(Unit *) override
void MoveInLineOfSight(Unit *) override
void UpdateAI(uint32 diff) override
void JustEngagedWith(Unit *) override
void UpdateAI(uint32 diff) override
void MovementInform(uint32 type, uint32 id) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void IsSummonedBy(WorldObject *summoner) override
npc_frostbrood_skytalon(Creature *creature)
void MoveInLineOfSight(Unit *who) override
npc_guardian_pavilion(Creature *creature)
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
void EnterEvadeMode(EvadeReason why) override
npc_tournament_training_dummy(Creature *creature)
void MoveInLineOfSight(Unit *) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void UpdateAI(uint32 diff) override
@ AREA_SILVER_COVENANT_PAVILION
@ AREA_SUNREAVER_PAVILION
Position const Priest1Pos[2]
@ SPELL_PLANT_HORDE_BATTLE_STANDARD
@ SPELL_ALLIANCE_BATTLE_STANDARD_STATE
@ SPELL_HORDE_BATTLE_STANDARD_STATE
@ SPELL_JUMP_ROCKET_BLAST
@ NPC_KING_OF_THE_MOUNTAINT_KC
@ SPELL_STORMFORGED_MOLE_MACHINE
@ SPELL_SUMMON_DEEP_JORMUNGAR
std::array< uint32, 4 > const ChumTheWaterSummonSpells
Position const Mason1Pos[3]
@ NPC_LEAVE_OUR_MARK_KILL_CREDIT_BUNNY
Position const Mason3Pos[3]
Position const Priest3Pos[2]
@ SPELL_BURST_AT_THE_SEAMS_52510
@ SPELL_BURST_AT_THE_SEAMS_BONE
@ SPELL_DRAKKARI_CHIEFTAINK_KILL_CREDIT
@ QUEST_FUEL_FOR_THE_FIRE
@ SPELL_ASSIGN_SKELETON_KILL_CREDIT_TO_MASTER
@ AREA_MORD_RETHAR_THE_DEATH_GATE
@ SPELL_EXPLODE_ABOMINATION_BLOODY_MEAT
@ NPC_RENIMATED_ABOMINATION
@ SPELL_ASSIGN_GEIST_KILL_CREDIT_TO_MASTER
@ NPC_RISEN_ALLIANCE_SOLDIERS
@ SPELL_EXPLODE_TROLL_MEAT
@ SPELL_EXPLODE_TROLL_BLOODY_MEAT
@ SPELL_BURST_AT_THE_SEAMS_59580
@ NPC_DRAKKARI_CHIEFTAINK
@ SPELL_SUMMON_DRAKKARI_CHIEFTAIN
@ SPELL_BURST_AT_THE_SEAMS_52508
@ SPELL_BURST_AT_THE_SEAMS_59579
@ SPELL_BURST_AT_THE_SEAMS_59576
@ SPELL_ASSIGN_GHOUL_KILL_CREDIT_TO_MASTER
@ SPELL_DRAKKARI_SKULLCRUSHER_CREDIT
@ SPELL_EXPLODE_ABOMINATION_MEAT
@ SPELL_BLOATED_ABOMINATION_FEIGN_DEATH
Position const Priest2Pos[2]
@ SPELL_USING_THE_EYE_OF_THE_LK
@ TEXT_USING_THE_EYE_OF_THE_LK
@ SPELL_SUMMON_IMAGE_OF_SHADOW_CULTIST
@ SPELL_SUMMON_IMAGE_OF_VARDMADRA
@ EVENT_DUMMY_RECAST_DEFEND
@ SPELL_PLAYER_BREAK_SHIELD
@ SPELL_GIFT_OF_THE_LICH_KING
@ SPELL_SEE_QUEST_INVISIBILITY_1
@ SPELL_SUMMON_LIGHT_BUNNY
@ SPELL_SUMMON_SPIRIT_OF_BRIDENBRAD
@ SPELL_ILLIDAN_KILL_CREDIT
@ SPELL_SUMMON_NORTH_SEA_THRESHER
@ SPELL_SUMMON_NORTH_SEA_MAKO
@ SPELL_SUMMON_ANGRY_KVALDIR
@ SPELL_SUMMON_NORTH_SEA_BLUE_SHARK
BorrowedTechnologyAndVolatility
@ SPELL_BLESSING_OF_THE_CRUSADE
@ NPC_HIDEOUS_PLAGEBRINGER
@ SPELL_CRUSADERS_SPIRE_VICTORY
@ NPC_HALOF_THE_DEATHBRINGER
@ NPC_ARGENT_BATTLE_PRIEST
@ NPC_CRUSADER_LORD_DALFORS
Position const Mason2Pos[3]
@ SPELL_POWERING_UP_THE_CORE
Position const DalforsPos[3]