133 for (
uint8 i = 0; i < NumGlobes; ++i)
135 float Angle = i * 2 * float(
M_PI) / NumGlobes;
142 Glob->UpdateAllowedPositionZ(X, Y, Z);
143 Glob->NearTeleportTo(X, Y, Z, 0.0f);
263 return GetAQ40AI<boss_viscidusAI>(creature);
282 if (
BossAI* ViscidusAI =
dynamic_cast<BossAI*
>(Viscidus->GetAI()))
283 ViscidusAI->SummonedCreatureDespawn(
me);
285 if (Viscidus->IsAlive() && Viscidus->GetHealthPct() < 5.0f)
287 Viscidus->SetVisible(
true);
288 if (Viscidus->GetVictim())
289 Unit::Kill(Viscidus->EnsureVictim(), Viscidus);
293 Viscidus->SetHealth(Viscidus->GetHealth() - Viscidus->GetMaxHealth() / 20);
312 return GetAQ40AI<npc_glob_of_viscidusAI>(creature);
@ SPELL_SCHOOL_MASK_FROST
@ UNIT_STATE_MELEE_ATTACKING
void AddSC_boss_viscidus()
Position const ViscidusCoord
@ SPELL_VISCIDUS_TELEPORT
@ SPELL_VISCIDUS_SLOWED_MORE
@ SPELL_POISONBOLT_VOLLEY
@ SPELL_VISCIDUS_WEAKNESS
@ SPELL_MEMBRANE_VISCIDUS
@ EVENT_POISONBOLT_VOLLEY
void JustEngagedWith(Unit *who) override
virtual void EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
Creature * GetCreature(uint32 type)
SpellSchoolMask GetSchoolMask() const
void DoMeleeAttackIfReady()
SpellCastResult DoCast(uint32 spellId)
float GetHealthPct() const
void RemoveAura(AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
TempSummon * ToTempSummon()
void NearTeleportTo(Position const &pos, bool casting=false)
bool HasUnitState(const uint32 f) const
static void Kill(Unit *attacker, Unit *victim, bool durabilityLoss=true)
InstanceScript * GetInstanceScript() const
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)
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
float GetPositionZ() const
float GetOrientation() const
float GetPositionX() const
float GetPositionY() const
void ResetThreatList(Unit *who=nullptr)
void DamageTaken(Unit *attacker, uint32 &, DamageEffectType, SpellInfo const *) override
void EnterEvadeMode(EvadeReason why) override
boss_viscidusAI(Creature *creature)
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void JustEngagedWith(Unit *who) override
void JustDied(Unit *) override
void UpdateAI(uint32 diff) override
void JustDied(Unit *) override
void MovementInform(uint32, uint32 id) override
npc_glob_of_viscidusAI(Creature *creature)