331 {6458.703f, 403.858f, 490.498f, 3.1205f},
332 {6422.950f, 423.335f, 510.451f, 0.0f},
333 {6426.343f, 420.515f, 508.650f, 0.0f},
338 {6462.025f, 403.681f, 489.721f, 3.1007f},
339 {6421.480f, 423.576f, 510.781f, 5.7421f},
344 {6463.969f, 407.198f, 489.240f, 2.2689f},
345 {6419.778f, 421.404f, 510.972f, 5.7421f},
350 {6464.371f, 400.944f, 489.186f, 6.1610f},
351 {6423.516f, 425.782f, 510.774f, 5.7421f},
356 {6462.929f, 409.826f, 489.392f, 3.0968f},
357 {6428.163f, 421.960f, 508.297f, 0.0f},
358 {6414.335f, 454.904f, 511.395f, 2.8972f},
363 {6462.650f, 405.670f, 489.576f, 2.9414f},
364 {6426.250f, 419.194f, 508.219f, 0.0f},
365 {6415.014f, 446.849f, 511.395f, 3.1241f},
370 {6462.646f, 401.218f, 489.601f, 2.7864f},
371 {6423.855f, 416.598f, 508.305f, 0.0f},
372 {6417.070f, 438.824f, 511.395f, 3.6651f},
432 Dalfors->GetMotionMaster()->MovePoint(0,
DalforsPos[1]);
437 Priest1->GetMotionMaster()->MovePoint(0,
Priest1Pos[1]);
442 Priest2->GetMotionMaster()->MovePoint(0,
Priest2Pos[1]);
447 Priest3->GetMotionMaster()->MovePoint(0,
Priest3Pos[1]);
452 Mason1->GetMotionMaster()->MovePoint(0,
Mason1Pos[1]);
457 Mason2->GetMotionMaster()->MovePoint(0,
Mason2Pos[1]);
462 Mason3->GetMotionMaster()->MovePoint(0,
Mason3Pos[1]);
478 Dalfors->SetFacingTo(6.215f);
488 Dalfors->GetMotionMaster()->MovePoint(0,
DalforsPos[2]);
493 Priest1->SetFacingTo(5.7421f);
498 Priest2->SetFacingTo(5.7421f);
503 Priest3->SetFacingTo(5.7421f);
508 Mason1->GetMotionMaster()->MovePoint(0,
Mason1Pos[2]);
513 Mason2->GetMotionMaster()->MovePoint(0,
Mason2Pos[2]);
518 Mason3->GetMotionMaster()->MovePoint(0,
Mason3Pos[2]);
529 Mason1->SetFacingTo(2.8972f);
530 Mason1->AI()->SetData(1, 1);
534 Mason2->SetFacingTo(3.1241f);
535 Mason2->AI()->SetData(1, 1);
539 Mason3->SetFacingTo(3.6651f);
540 Mason3->AI()->SetData(1, 1);
570 if (
urand(0, 1) == 0)
691 if (
Unit* summoner = summon->GetSummonerUnit())
714 switch (spellInfo->
Id)
760 Position const offset = { 0.0f, 0.0f, 30.0f, 0.0f };
DB2Storage< BroadcastTextEntry > sBroadcastTextStore("BroadcastText.db2", &BroadcastTextLoadInfo::Instance)
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
@ 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
virtual void EnterEvadeMode(EvadeReason why=EvadeReason::Other)
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
bool _EnterEvadeMode(EvadeReason why=EvadeReason::Other)
Creature * DoSummon(uint32 entry, Position const &pos, Milliseconds despawnTime=30s, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
void SetHomePosition(float x, float y, float z, float o)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void SetRegenerateHealth(bool value)
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void RescheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={})
static Unit * ToUnit(Object *o)
static Player * ToPlayer(Object *o)
int32 CalcValue(WorldObject const *caster=nullptr, int32 const *basePoints=nullptr, Unit const *target=nullptr, float *variance=nullptr, uint32 castItemId=0, int32 itemLevel=-1) const
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
Player * GetHitPlayer() const
HookList< DestinationTargetSelectHandler > OnDestinationTargetSelect
HookList< EffectHandler > OnEffectHit
Unit * GetHitUnit() const
int32 GetEffectValue() const
HookList< EffectHandler > OnEffectHitTarget
HookList< CastHandler > OnCast
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
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()
TempSummon * ToTempSummon()
Aura * GetAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
bool HasUnitState(const uint32 f) const
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
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
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
void SetDest(SpellDestination &dest)
bool Validate(SpellInfo const *spellInfo) override
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
void AfterApply(AuraEffect const *, AuraEffectHandleModes)
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 &
constexpr float GetPositionX() const
constexpr float GetPositionY() const
float GetAbsoluteAngle(float x, float y) const
constexpr float GetOrientation() const
constexpr float GetPositionZ() const
void SetCombatMovement(bool allowMovement)
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 *Summoned) 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_STORMFORGED_MOLE_MACHINE
@ SPELL_SUMMON_DEEP_JORMUNGAR
std::array< uint32, 4 > const ChumTheWaterSummonSpells
Position const Mason1Pos[3]
Position const Mason3Pos[3]
Position const Priest3Pos[2]
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_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]
Position const DalforsPos[3]