122 return !
object->isInFront(
caster, 2.5f) || !
object->IsWithinDist(
caster, 40.0f);
230 if (target->IsAlive())
259 return GetTrialOfTheChampionAI<boss_eadricAI>(creature);
310 if (pMemory->IsAlive())
311 pMemory->RemoveFromWorld();
356 if (target->IsAlive())
369 if (target->IsAlive())
391 if (pMemory->IsAlive())
421 return GetTrialOfTheChampionAI<boss_paletressAI>(creature);
462 if (target->IsAlive())
478 if (target->IsAlive())
490 if (
Unit* summoner = summ->GetSummonerUnit())
491 if (summoner->IsAlive())
492 summoner->GetAI()->SetData(1, 0);
498 return GetTrialOfTheChampionAI<npc_memoryAI>(creature);
611 return GetTrialOfTheChampionAI<npc_argent_soldierAI>(creature);
664 targets.push_back(target);
670 .SetOriginalCaster(
GetCaster()->GetGUID()));
uint32 urand(uint32 min, uint32 max)
@ TARGET_UNIT_SRC_AREA_ENEMY
@ SPELL_EFFECT_SCRIPT_EFFECT
@ TRIGGERED_FULL_MASK
Used when doing CastSpell with triggered == true.
#define SpellEffectFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
@ UNIT_FLAG_NON_ATTACKABLE
@ SPELL_WAKING_NIGHTMARE_H
@ SPELL_EADRIC_ACHIEVEMENT
@ SPELL_MEMORY_KALITHRESH
@ SPELL_MEMORY_THUNDERAAN
@ SPELL_MEMORY_ARCHIMONDE
@ SPELL_MEMORY_MALCHEZAAR
@ SPELL_MEMORY_CHROMAGGUS
uint32 constexpr memorySpellId[25]
void AddSC_boss_argent_challenge()
virtual void EnterEvadeMode(EvadeReason why=EvadeReason::Other)
void SetReactState(ReactStates st)
virtual bool SetBossState(uint32 id, EncounterState state)
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={})
static ObjectGuid GetGUID(Object const *o)
bool operator()(WorldObject *object)
OrientationCheck(Unit *_caster)
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
void DoMeleeAttackIfReady()
Unit * SelectTarget(SelectTargetMethod targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
SpellCastResult DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
void RemoveAura(AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
void SetFaction(uint32 faction) override
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
MotionMaster * GetMotionMaster()
TempSummon * ToTempSummon()
void SetFacingTo(float const ori, bool force=true)
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
void SetUnitFlag(UnitFlags flags)
InstanceScript * GetInstanceScript() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
virtual uint32 GetData(uint32) const
virtual void SetData(uint32, uint32)
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 FilterTargets(std::list< WorldObject * > &unitList)
SpellScript * GetSpellScript() const override
bool Validate(SpellInfo const *) override
void FilterTargets(std::list< WorldObject * > &targets)
void HandleScript(SpellEffIndex)
SpellScript * GetSpellScript() const override
spell_paletress_summon_memory()
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 &
void Start(bool isActiveAttacker=true, ObjectGuid playerGUID=ObjectGuid::Empty, Quest const *quest=nullptr, bool instantRespawn=false, bool canLoopPath=false)
void AddWaypoint(uint32 id, float x, float y, float z, bool run)
void SetDespawnAtEnd(bool despawn)
void UpdateAI(uint32 diff) override
bool HealthAbovePct(uint32 pct) const
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
InstanceScript * instance
void MovementInform(uint32 MovementType, uint32) override
boss_eadricAI(Creature *creature)
void UpdateAI(uint32 uiDiff) override
uint32 uiHammerJusticeTimer
void MovementInform(uint32 MovementType, uint32 Point) override
void SetData(uint32 uiId, uint32) override
boss_paletressAI(Creature *creature)
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
InstanceScript * instance
void UpdateAI(uint32 uiDiff) override
void JustSummoned(Creature *summon) override
void SetData(uint32 uiType, uint32) override
npc_argent_soldierAI(Creature *creature)
void WaypointReached(uint32 waypointId, uint32) override
void UpdateAI(uint32 uiDiff) override
InstanceScript * instance
void JustDied(Unit *) override
void JustDied(Unit *) override
npc_memoryAI(Creature *creature)
void UpdateAI(uint32 uiDiff) override
@ DATA_ARGENT_SOLDIER_DEFEATED
@ BOSS_ARGENT_CHALLENGE_P
@ BOSS_ARGENT_CHALLENGE_E