233 for (
auto i = players.
begin(); i != players.
end(); ++i)
235 Player* player = i->GetSource();
236 if (!player || !player->
IsAlive())
258 for (
auto i = players.
begin(); i != players.
end(); ++i)
260 Player* player = i->GetSource();
311 if (phase == visage->GetPhaseMask())
314 nextPhase = visage->GetPhaseMask();
322 for (
auto itr = playerList.
begin(); itr != playerList.
end(); ++itr)
324 if (
Player* player = itr->GetSource())
326 if (player->HasAura(spell))
328 player->RemoveAurasDueToSpell(spell);
330 player->CastSpell(player, spell2,
true);
477 mortalStrike.
Repeat(3s, 5s);
481 harmstring.
Repeat(5s, 10s);
498 bloodthirst.
Repeat(3s, 5s);
505 thunderClap.
Repeat(5s, 10s);
521 consecration.
Repeat(5s, 10s);
525 avengersShield.
Repeat(5s, 10s);
533 consecration.
Repeat(5s, 10s);
540 judgementLight.
Repeat(3s, 5s);
555 disengage.
Repeat(10s, 20s);
566 eviscerate.
Repeat(5s, 10s);
570 sinisterStrike.
Repeat(3s, 5s);
580 shadowWordPain.
Repeat(5s, 10s);
602 greaterHeal.
Repeat(4s, 6s);
623 plagueStrike.
Repeat(3s, 5s);
634 thunderstorm.
Repeat(5s, 10s);
638 lightningBolt.
Repeat(3s, 5s);
645 earthShock.
Repeat(3s, 5s);
654 earthShield.
Repeat(4s, 6s);
663 healingWave.
Repeat(4s, 6s);
675 frostNova.
Repeat(5s, 10s);
686 corruption.
Repeat(6s, 10s);
690 shadowBolt.
Repeat(3s, 5s);
788 if (!target || !caster)
803 caster->
AI()->
Talk(text, target);
@ ACHIEVEMENT_TIMED_TYPE_EVENT
@ TEMPSUMMON_CORPSE_DESPAWN
uint32 urand(uint32 min, uint32 max)
#define RegisterSpellScript(spell_script)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPEC_WARRIOR_PROTECTION
@ SPEC_PALADIN_RETRIBUTION
@ SPEC_PALADIN_PROTECTION
@ SPEC_SHAMAN_RESTORATION
@ SPEC_SHAMAN_ENHANCEMENT
#define SpellEffectFn(F, I, N)
@ UNIT_FLAG_UNINTERACTIBLE
#define RegisterAhnKahetCreatureAI(ai_name)
@ SPELL_TWISTED_VISAGE_EARTH_SHIELD
@ SPELL_INSANITY_PHASING_1
@ SPELL_SHADOW_BOLT_VOLLEY
@ SPELL_TWISTED_VISAGE_NOURISH
@ SPELL_TWISTED_VISAGE_SHOOT
@ SPELL_TWISTED_VISAGE_CAT_FORM
@ SPELL_TWISTED_VISAGE_SEAL_OF_COMMAND
@ SPELL_TWISTED_VISAGE_THUNDERSTORM
@ SPELL_TWISTED_VISAGE_HEALING_WEAVE
@ SPELL_INSANITY_PHASING_5
@ SPELL_TWISTED_VISAGE_LIGHTNING_BOLT
@ SPELL_TWISTED_VISAGE_CONSECRATION
@ SPELL_TWISTED_VISAGE_SHADOW_WORD_PAIN
@ SPELL_TWISTED_VISAGE_LIFEBLOOM
@ SPELL_TWISTED_VISAGE_WRATH
@ SPELL_TWISTED_VISAGE_RIP
@ SPELL_TWISTED_VISAGE_MANGLE
@ SPELL_TWISTED_VISAGE_SHADOW_BOLT
@ SPELL_TWISTED_VISAGE_MORTAL_STRIKE
@ SPELL_TWISTED_VISAGE_VISUAL
@ SPELL_TWISTED_VISAGE_HAMSTRING
@ SPELL_TWISTED_VISAGE_DEATH
@ SPELL_TWISTED_VISAGE_INTERCEPT
@ SPELL_TWISTED_VISAGE_SINISTER_STRIKE
@ SPELL_TWISTED_VISAGE_DEATH_GRIP
@ SPELL_TWISTED_VISAGE_JUDGEMENT_OF_LIGHT
@ SPELL_TWISTED_VISAGE_FIREBALL
@ SPELL_TWISTED_VISAGE_FROST_NOVA
@ SPELL_TWISTED_VISAGE_CORRUPTION
@ SPELL_INSANITY_PHASING_4
@ SPELL_TWISTED_VISAGE_PLAGUE_STRIKE
@ SPELL_TWISTED_VISAGE_EVISCERATE
@ SPELL_TWISTED_VISAGE_MIND_FLAY
@ SPELL_TWISTED_VISAGE_BLOODTHIRST
@ SPELL_TWISTED_VISAGE_MOONFIRE
@ SPELL_TWISTED_VISAGE_THUNDER_CLAP
@ SPELL_TWISTED_VISAGE_GREATER_HEAL
@ SPELL_TWISTED_VISAGE_RENEW
@ SPELL_INSANITY_PHASING_2
@ SPELL_INSANITY_PHASING_3
@ SPELL_TWISTED_VISAGE_DEVASTATE
@ SPELL_TWISTED_VISAGE_AVENGER__S_SHIELD
@ SPELL_TWISTED_VISAGE_EARTH_SHOCK
@ SPELL_TWISTED_VISAGE_DISENGAGE
@ ACHIEV_QUICK_DEMISE_START_EVENT
@ DATA_TWISTED_VISAGE_PLAYER_CLASS
@ DATA_TWISTED_VISAGE_PLAYER_SPEC
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void JustDied(Unit *) override
void SummonedCreatureDespawn(Creature *summon) override
void DoZoneInCombat(Creature *creature=nullptr)
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void SetPhaseMask(uint32 newPhaseMask, bool update) override
void SetReactState(ReactStates st)
void SetCanDualWield(bool value) override
void DoStartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
void DoStopTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
PlayerList const & GetPlayers() const
static Creature * ToCreature(Object *o)
Player * GetHitPlayer() const
HookList< EffectHandler > OnEffectHitTarget
SpellInfo const * GetSpellInfo() const
StorageType::const_iterator const_iterator
void Summon(Creature const *summon)
TaskContext & Repeat(std::chrono::duration< _Rep, _Period > const &duration)
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 AttackStartCaster(Unit *victim, float dist)
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)
SpellCastResult DoCast(uint32 spellId)
void SetControlled(bool apply, UnitState state)
bool IsWithinCombatRange(Unit const *obj, float dist2compare) const
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
bool HasUnitFlag(UnitFlags flags) const
uint32 GetMaxHealth() const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
bool HasUnitState(const uint32 f) const
void SetUnitFlag(UnitFlags flags)
void RemoveUnitFlag(UnitFlags flags)
uint32 GetPhaseMask() 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)
PrepareSpellScript(spell_volazj_whisper)
void HandleScriptEffect(SpellEffIndex)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
TC_GAME_API uint8 GetPlayerSpecialization(Player const *who)
float GetPositionZ() const
float GetOrientation() const
float GetPositionX() const
float GetPositionY() const
void AttackStart(Unit *) override
Unit * DoSelectLowestHpFriendly(float range, uint32 minHPDiff=1)
void JustSummoned(Creature *summon) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void ScheduleTasks() override
void JustDied(Unit *killer) override
void KilledUnit(Unit *who) override
void JustEngagedWith(Unit *who) override
void SpellHitTarget(WorldObject *target, SpellInfo const *spellInfo) override
void SummonedCreatureDespawn(Creature *summon) override
uint32 GetHealthPct(uint32 damage)
void UpdateAI(uint32 diff) override
uint32 GetSpellForPhaseMask(uint32 phase)
boss_volazj(Creature *creature)
void ResetPlayersPhaseMask()
void JustDied(Unit *) override
npc_twisted_visage(Creature *creature)
void SetData(uint32 type, uint32 data) override
void UpdateAI(uint32 diff) override
void AttackStart(Unit *who) override