69static float m_afAmbushA[]= {-1568.805786f, 8533.873047f, 1.958f};
70static float m_afAmbushB[]= {-1491.554321f, 8506.483398f, 1.248f};
655 FrostShock.Repeat(
Seconds(12));
703 return !ai->IsBannered();
730 if (
Unit* summoner = casterSummon->GetSummonerUnit())
std::chrono::seconds Seconds
Seconds shorthand typedef.
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
@ TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
uint32 urand(uint32 min, uint32 max)
#define RegisterSpellScript(spell_script)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ FACTION_ESCORTEE_A_NEUTRAL_ACTIVE
@ FACTION_ESCORTEE_H_NEUTRAL_ACTIVE
#define SpellEffectFn(F, I, N)
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void DoFleeToGetAssistance()
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={})
static Creature * ToCreature(Object *o)
static ObjectGuid GetGUID(Object const *o)
uint32 GetQuestId() const
HookList< EffectHandler > OnEffectHit
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
TaskContext & Repeat(std::chrono::duration< _Rep, _Period > const &duration)
TaskScheduler & CancelAll()
TaskScheduler & Schedule(std::chrono::duration< _Rep, _Period > const &time, task_handler_t const &task)
TaskScheduler & Update(success_t const &callback=EmptyCallback)
TaskScheduler & SetValidator(P &&predicate)
Sets a validator which is asked if tasks are allowed to be executed.
void DoMeleeAttackIfReady()
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
Unit * SelectTarget(SelectTargetMethod targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
virtual void AttackStart(Unit *)
SpellCastResult DoCast(uint32 spellId)
void SetFaction(uint32 faction) override
MotionMaster * GetMotionMaster()
Unit * EnsureVictim() const
bool SetWalk(bool enable)
bool HasUnitState(const uint32 f) const
void SetStandState(UnitStandStateType state)
bool HealthBelowPctDamaged(int32 pct, uint32 damage) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
TempSummon * SummonCreature(uint32 entry, Position const &pos, TempSummonType despawnType=TEMPSUMMON_MANUAL_DESPAWN, Milliseconds despawnTime=0s, uint32 vehId=0, uint32 spellId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty)
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
bool OnConditionCheck(Condition const *condition, ConditionSourceInfo &sourceInfo) override
condition_nagrand_banner()
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
PrepareSpellScript(spell_nagrand_fire_bomb_damage_missile)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_nagrand_fire_bomb_target_summon_effect)
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_nagrand_fire_bomb_target_summon_trigger)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
WorldObject * mConditionTargets[MAX_CONDITION_TARGETS]
void Start(bool isActiveAttacker=true, ObjectGuid playerGUID=ObjectGuid::Empty, Quest const *quest=nullptr, bool instantRespawn=false, bool canLoopPath=false)
bool HasEscortState(uint32 escortState)
void LoadPath(uint32 pathId)
Player * GetPlayerForEscort()
void UpdateAI(uint32 diff) override
float GetPositionZ() const
float GetPositionX() const
float GetPositionY() const
bool HealthBelowPct(uint32 pct) const
void JustDied(Unit *) override
void JustSummoned(Creature *summoned) override
void OnQuestAccept(Player *player, Quest const *quest) override
uint32 ChainLightningTimer
void JustEngagedWith(Unit *) override
npc_kurenai_captiveAI(Creature *creature)
void UpdateAI(uint32 diff) override
void SpellHitTarget(WorldObject *, SpellInfo const *spellInfo) override
void WaypointReached(uint32 waypointId, uint32) override
void UpdateAI(uint32 diff) override
void JustEngagedWith(Unit *) override
void SpellHitTarget(WorldObject *, SpellInfo const *spellInfo) override
uint32 ChainLightningTimer
void OnQuestAccept(Player *player, Quest const *quest) override
npc_maghar_captiveAI(Creature *creature)
void JustDied(Unit *) override
void WaypointReached(uint32 waypointId, uint32) override
void JustSummoned(Creature *summoned) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
@ SPELL_GISELDA_TRANSFORM_DND
npc_giselda_the_croneAI(Creature *creature)
void JustEngagedWith(Unit *) override
npc_kil_sorrow_cultistAI(Creature *creature)
void JustEngagedWith(Unit *) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
npc_kil_sorrow_deathswornAI(Creature *creature)
void JustEngagedWith(Unit *) override
uint32 interrupt_cooldown
void JustEngagedWith(Unit *) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
npc_kil_sorrow_spellbinderAI(Creature *creature)
void UpdateAI(uint32 diff) override
npc_nagrand_bannerAI(Creature *creature)
void UpdateAI(uint32 diff) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void JustEngagedWith(Unit *) override
npc_warmaul_shamanAI(Creature *creature)
@ PATH_ESCORT_KURENAI_CAPTIVE
@ SPELL_KUR_EARTHBIND_TOTEM
@ SPELL_KUR_CHAIN_LIGHTNING
@ SPELL_PLANT_WARMAUL_OGRE_BANNER
@ SPELL_PLANT_KIL_SORROW_BANNER
@ NPC_KIL_SORROW_DEATHSWORN
@ NPC_KIL_SORROW_SPELLBINDER
static float kurenaiAmbushA[]
@ SPELL_FIRE_BOMB_DAMAGE_MISSILE
@ SPELL_FIRE_BOMB_TARGET_SUMMON_EFFECT
@ SPELL_FIRE_BOMB_SUMMON_CATAPULT_BLAZE
@ PATH_ESCORT_MAGHAR_CAPTIVE
static float m_afAmbushB[]
static float m_afAmbushA[]
static float kurenaiAmbushB[]