62#define MUTATED_INFECTION RAID_MODE<int32>(69674, 71224, 73022, 73023)
150 professor->AI()->EnterEvadeMode();
245 me->AddThreat(summoner, 500000.0f);
250 me->DespawnOrUnsummon();
300 rotface->AI()->JustSummoned(
me);
306 rotface->AI()->SummonedCreatureDespawn(
me);
307 me->DespawnOrUnsummon();
375 summon->AI()->AttackStart(target);
387 if (rotface->IsAlive())
415 for (
uint32 i = 0; i < 11; ++i)
453 std::list<Creature*> triggers;
456 if (triggers.empty())
469 if (targets.size() > 4)
472 while (targets.size() > 2)
514 targets.push_back(target);
598 unstable->ModStackAmount(targetAura->GetStackAmount());
600 unstable->ModStackAmount(1);
639 uint8 newStack =
uint8(unstable->GetStackAmount()+1);
640 unstable->SetStackAmount(newStack);
649 if (rotface->IsAlive())
740 rotface->CastSpell(x, y, z, triggered_spell_id,
true, NULL, NULL,
GetCaster()->GetGUID());
803 std::list<WorldObject*> ranged, melee;
804 std::list<WorldObject*>::iterator itr = targets.begin();
805 while (itr != targets.end() && (*itr)->GetDistance(
GetCaster()) < 5.0f)
807 melee.push_back((*itr)->ToUnit());
811 while (itr != targets.end())
813 ranged.push_back((*itr)->ToUnit());
818 while (ranged.size() < minTargets)
824 ranged.push_back(target);
825 melee.remove(target);
831 targets.swap(ranged);
@ TEMPSUMMON_TIMED_DESPAWN
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_TRIGGER_MISSILE
@ SPELL_EFFECT_FORCE_CAST
@ TARGET_UNIT_SRC_AREA_ENTRY
@ TARGET_UNIT_SRC_AREA_ENEMY
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
#define SpellEffectFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
@ SPELL_MUTATED_INFECTION
@ SPELL_LARGE_OOZE_COMBINE
@ SPELL_UNSTABLE_OOZE_EXPLOSION
@ SPELL_UNSTABLE_OOZE_EXPLOSION_TRIGGER
@ SPELL_AWAKEN_PLAGUED_ZOMBIES
@ SPELL_WEAK_RADIATING_OOZE
@ SPELL_VILE_GAS_TRIGGER_SUMMON
@ SPELL_LITTLE_OOZE_COMBINE
@ SPELL_GREEN_ABOMINATION_HITTIN__YA_PROC
@ SPELL_LARGE_OOZE_BUFF_COMBINE
#define MUTATED_INFECTION
void AddSC_boss_rotface()
@ EMOTE_MUTATED_INFECTION
@ EMOTE_UNSTABLE_EXPLOSION
@ EVENT_MUTATED_INFECTION
@ EVENT_HASTEN_INFECTIONS
void PreventDefaultAction()
HookList< EffectPeriodicHandler > OnEffectPeriodic
InstanceScript *const instance
BossAI(Creature *creature, uint32 bossId)
void DoZoneInCombat(Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
Creature * DoSummon(uint32 entry, Position const &pos, uint32 despawnTime=30000, TempSummonType summonType=TempSummonType::TEMPSUMMON_CORPSE_TIMED_DESPAWN)
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
virtual void EnterEvadeMode()
void DespawnOrUnsummon(uint32 msTimeToDespawn=0)
CreatureScript(const char *name)
SpellEffectInfo Effects[MAX_SPELL_EFFECTS]
Creature * GetHitCreature()
WorldLocation const * GetExplTargetDest()
HookList< HitHandler > AfterHit
SpellInfo const * GetSpellInfo()
HookList< EffectHandler > OnEffectHit
void PreventHitDefaultEffect(SpellEffIndex effIndex)
HookList< EffectHandler > OnEffectHitTarget
void PreventHitEffect(SpellEffIndex effIndex)
Unit * GetOriginalCaster()
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
SpellScriptLoader(const char *name)
void DoMeleeAttackIfReady()
void DoCast(uint32 spellId)
Unit * SelectTarget(SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
void DoCastVictim(uint32 spellId, bool triggered=false)
void DoCastAOE(uint32 spellId, bool triggered=false)
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
void RemoveAurasDueToSpell(uint32 spellId, uint64 casterGUID=0, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
static Creature * GetCreature(WorldObject &object, uint64 guid)
InstanceScript * GetInstanceScript()
void GetCreatureListWithEntryInGrid(std::list< Creature * > &lList, uint32 uiEntry, float fMaxSearchRange) const
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TempSummonType::TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0) const
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 HandleScript(SpellEffIndex)
PrepareSpellScript(spell_rotface_large_ooze_buff_combine_SpellScript)
SpellScript * GetSpellScript() const OVERRIDE
spell_rotface_large_ooze_buff_combine()
PrepareSpellScript(spell_rotface_large_ooze_combine_SpellScript)
void HandleScript(SpellEffIndex)
SpellScript * GetSpellScript() const OVERRIDE
spell_rotface_large_ooze_combine()
PrepareSpellScript(spell_rotface_little_ooze_combine_SpellScript)
void HandleScript(SpellEffIndex)
spell_rotface_little_ooze_combine()
SpellScript * GetSpellScript() const OVERRIDE
void FilterTargets(std::list< WorldObject * > &targets)
PrepareSpellScript(spell_rotface_mutated_infection_SpellScript)
void ReplaceTargets(std::list< WorldObject * > &targets)
spell_rotface_mutated_infection()
SpellScript * GetSpellScript() const OVERRIDE
void FilterTargets(std::list< WorldObject * > &targets)
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_rotface_ooze_flood_SpellScript)
spell_rotface_ooze_flood()
SpellScript * GetSpellScript() const OVERRIDE
void CheckTarget(SpellEffIndex effIndex)
PrepareSpellScript(spell_rotface_unstable_ooze_explosion_SpellScript)
PrepareSpellScript(spell_rotface_unstable_ooze_explosion_init_SpellScript)
void HandleCast(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) OVERRIDE
spell_rotface_unstable_ooze_explosion_init()
SpellScript * GetSpellScript() const OVERRIDE
void DespawnSelf(AuraEffect const *)
PrepareAuraScript(spell_rotface_unstable_ooze_explosion_suicide_AuraScript)
spell_rotface_unstable_ooze_explosion_suicide()
AuraScript * GetAuraScript() const OVERRIDE
SpellScript * GetSpellScript() const OVERRIDE
spell_rotface_unstable_ooze_explosion()
void FilterTargets(std::list< WorldObject * > &targets)
PrepareSpellScript(spell_rotface_vile_gas_trigger_SpellScript)
void HandleDummy(SpellEffIndex effIndex)
SpellScript * GetSpellScript() const
spell_rotface_vile_gas_trigger()
@ NPC_UNSTABLE_EXPLOSION_STALKER
CreatureAI * GetIcecrownCitadelAI(Creature *creature)
@ LIGHT_S_HAMMER_TELEPORT
@ DATA_OOZE_DANCE_ACHIEVEMENT
@ DATA_PROFESSOR_PUTRICIDE
void RandomResizeList(std::list< T > &list, uint32 size)
C::value_type const & SelectRandomContainerElement(C const &container)
void GetPosition(float &x, float &y) const
ScriptedAI(Creature *creature)
void EnterEvadeMode() OVERRIDE
void KilledUnit(Unit *victim) OVERRIDE
void JustSummoned(Creature *summon) OVERRIDE
void SpellHitTarget(Unit *, SpellInfo const *spell) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void EnterCombat(Unit *who) OVERRIDE
void JustDied(Unit *) OVERRIDE
boss_rotfaceAI(Creature *creature)
void JustReachedHome() OVERRIDE
void MoveInLineOfSight(Unit *) OVERRIDE
void IsSummonedBy(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_big_oozeAI(Creature *creature)
InstanceScript * instance
void JustDied(Unit *) OVERRIDE
void DoAction(int32 action) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void JustDied(Unit *) OVERRIDE
void IsSummonedBy(Unit *summoner) OVERRIDE
npc_little_oozeAI(Creature *creature)
void JustDied(Unit *) OVERRIDE
void JustSummoned(Creature *summon) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void SummonedCreatureDespawn(Creature *summon) OVERRIDE
npc_precious_iccAI(Creature *creature)
InstanceScript * _instance