![]() |
TrinityCore
|
Inheritance diagram for boss_flame_leviathan::boss_flame_leviathanAI:Public Member Functions | |
| boss_flame_leviathanAI (Creature *creature) | |
| void | Initialize () |
| void | InitializeAI () override |
| void | Reset () override |
| void | JustEngagedWith (Unit *who) override |
| void | ActiveTower () |
| void | JustDied (Unit *) override |
| void | SpellHit (WorldObject *, SpellInfo const *spellInfo) override |
| uint32 | GetData (uint32 type) const override |
| void | SetData (uint32 id, uint32 data) override |
| void | UpdateAI (uint32 diff) override |
| void | SpellHitTarget (WorldObject *target, SpellInfo const *spellInfo) override |
| void | DoAction (int32 action) override |
| void | MovementInform (uint32, uint32 id) override |
Public Member Functions inherited from BossAI | |
| BossAI (Creature *creature, uint32 bossId) noexcept | |
| virtual | ~BossAI () |
| void | JustSummoned (Creature *summon) override |
| void | SummonedCreatureDespawn (Creature *summon) override |
| virtual void | ExecuteEvent (uint32) |
| virtual void | ScheduleTasks () |
| void | Reset () override |
| void | JustEngagedWith (Unit *who) override |
| void | JustDied (Unit *) override |
| void | JustReachedHome () override |
| bool | CanAIAttack (Unit const *target) const override |
| uint32 | GetBossId () const |
Public Member Functions inherited from ScriptedAI | |
| ScriptedAI (Creature *creature, uint32 scriptId=0) noexcept | |
| virtual | ~ScriptedAI () |
| void | AttackStartNoMove (Unit *target) |
| void | AttackStart (Unit *) override |
| == Triggered Actions Requested ================== | |
| void | DoStartMovement (Unit *target, float distance=0.0f, float angle=0.0f) |
| void | DoStartNoMovement (Unit *target) |
| void | DoStopAttack () |
| void | DoCastSpell (Unit *target, SpellInfo const *spellInfo, bool triggered=false) |
| void | DoPlaySoundToSet (WorldObject *source, uint32 soundId) |
| void | AddThreat (Unit *victim, float amount, Unit *who=nullptr) |
| void | ModifyThreatByPercent (Unit *victim, int32 pct, Unit *who=nullptr) |
| void | ResetThreat (Unit *victim, Unit *who=nullptr) |
| void | ResetThreatList (Unit *who=nullptr) |
| float | GetThreat (Unit const *victim, Unit const *who=nullptr) |
| void | ForceCombatStop (Creature *who, bool reset=true) |
| void | ForceCombatStopForCreatureEntry (uint32 entry, float maxSearchRange=250.0f, bool samePhase=true, bool reset=true) |
| void | ForceCombatStopForCreatureEntry (std::vector< uint32 > creatureEntries, float maxSearchRange=250.0f, bool samePhase=true, bool reset=true) |
| void | DoTeleportTo (float x, float y, float z, uint32 time=0) |
| void | DoTeleportTo (float const pos[4]) |
| void | DoTeleportPlayer (Unit *unit, float x, float y, float z, float o) |
| void | DoTeleportAll (float x, float y, float z, float o) |
| Unit * | DoSelectLowestHpFriendly (float range, uint32 minHPDiff=1) |
| Unit * | DoSelectBelowHpPctFriendlyWithEntry (uint32 entry, float range, uint8 hpPct=1, bool excludeSelf=true) |
| std::list< Creature * > | DoFindFriendlyCC (float range) |
| std::list< Creature * > | DoFindFriendlyMissingBuff (float range, uint32 spellId) |
| Player * | GetPlayerAtMinimumRange (float minRange) |
| Creature * | DoSpawnCreature (uint32 entry, float offsetX, float offsetY, float offsetZ, float angle, uint32 type, Milliseconds despawntime) |
| bool | HealthBelowPct (uint32 pct) const |
| bool | HealthAbovePct (uint32 pct) const |
| SpellInfo const * | SelectSpell (Unit *target, uint32 school, uint32 mechanic, SelectTargetType targets, float rangeMin, float rangeMax, SelectEffect effect) |
| void | SetEquipmentSlots (bool loadDefault, int32 mainHand=EQUIP_NO_CHANGE, int32 offHand=EQUIP_NO_CHANGE, int32 ranged=EQUIP_NO_CHANGE) |
| void | SetCombatMovement (bool allowMovement) |
| bool | IsCombatMovementAllowed () const |
| bool | IsLFR () const |
| bool | IsNormal () const |
| bool | IsHeroic () const |
| bool | IsMythic () const |
| bool | IsMythicPlus () const |
| bool | IsHeroicOrHigher () const |
| bool | IsTimewalking () const |
| Difficulty | GetDifficulty () const |
| bool | Is25ManRaid () const |
| void | SetAggressiveStateAfter (Milliseconds timer, Creature *who=nullptr, bool startCombat=true, Creature *summoner=nullptr, StartCombatArgs const &combatArgs={ }) |
| void | DoAddEvent (Milliseconds timer, BasicEvent *event, WorldObject *who=nullptr) |
| template<class T > | |
| T const & | DUNGEON_MODE (T const &normal5, T const &heroic10) const |
| template<class T > | |
| T const & | RAID_MODE (T const &normal10, T const &normal25) const |
| template<class T > | |
| T const & | RAID_MODE (T const &normal10, T const &normal25, T const &heroic10, T const &heroic25) const |
Public Member Functions inherited from CreatureAI | |
| CreatureAI (Creature *creature, uint32 scriptId={}) noexcept | |
| virtual | ~CreatureAI () |
| uint32 | GetId () const |
| bool | IsEngaged () const |
| void | Talk (uint8 id, WorldObject const *whisperTarget=nullptr) |
| void | MoveInLineOfSight_Safe (Unit *who) |
| == Reactions At ================================= | |
| void | TriggerAlert (Unit const *who) const |
| virtual void | EnterEvadeMode (EvadeReason why=EvadeReason::Other) |
| void | JustEnteredCombat (Unit *) override |
| virtual void | JustStartedThreateningMe (Unit *who) |
| virtual void | OnHealthDepleted (Unit *, bool) |
| virtual void | KilledUnit (Unit *) |
| virtual void | IsSummonedBy (WorldObject *) |
| virtual void | SummonedCreatureDies (Creature *, Unit *) |
| virtual void | JustSummonedGameobject (GameObject *) |
| virtual void | SummonedGameobjectDespawn (GameObject *) |
| virtual void | JustRegisteredDynObject (DynamicObject *) |
| virtual void | JustUnregisteredDynObject (DynamicObject *) |
| virtual void | JustRegisteredAreaTrigger (AreaTrigger *) |
| virtual void | JustUnregisteredAreaTrigger (AreaTrigger *) |
| virtual void | OnSpellCast (SpellInfo const *) |
| virtual void | OnSpellFailed (SpellInfo const *) |
| virtual void | OnSpellStart (SpellInfo const *) |
| virtual void | OnChannelFinished (SpellInfo const *) |
| virtual void | OnAuraApplied (AuraApplication const *) |
| virtual void | OnAuraRemoved (AuraApplication const *) |
| virtual bool | IsEscorted () const |
| virtual void | JustAppeared () |
| void | OnCharmed (bool isNew) override |
| void | DoZoneInCombat () |
| virtual void | ReceiveEmote (Player *, uint32) |
| virtual void | OwnerAttackedBy (Unit *attacker) |
| virtual void | OwnerAttacked (Unit *target) |
| virtual void | CorpseRemoved (uint32 &) |
| == State checks ================================= | |
| virtual Optional< QuestGiverStatus > | GetDialogStatus (Player const *player) |
| == Gossip system ================================ | |
| virtual bool | OnGossipHello (Player *) |
| virtual bool | OnGossipSelect (Player *, uint32, uint32) |
| virtual bool | OnGossipSelectCode (Player *, uint32, uint32, char const *) |
| virtual void | OnQuestAccept (Player *, Quest const *) |
| virtual void | OnQuestReward (Player *, Quest const *, LootItemType, uint32) |
| virtual void | WaypointStarted (uint32, uint32) |
| == Waypoints system ============================= | |
| virtual void | WaypointReached (uint32, uint32) |
| virtual void | WaypointPathEnded (uint32, uint32) |
| virtual void | PassengerBoarded (Unit *, int8, bool) |
| == Fields ======================================= | |
| virtual void | OnSpellClick (Unit *, bool) |
| virtual bool | CanSeeAlways (WorldObject const *) |
| virtual PlayerAI * | GetAIForCharmedPlayer (Player *) |
| int32 | VisualizeBoundary (Seconds duration, Unit *owner=nullptr, bool fill=false) const |
| virtual bool | CheckInRoom () |
| CreatureBoundary const * | GetBoundary () const |
| void | SetBoundary (CreatureBoundary const *boundary, bool negativeBoundaries=false) |
| bool | IsInBoundary (Position const *who=nullptr) const |
Public Member Functions inherited from UnitAI | |
| UnitAI (Unit *unit) | |
| virtual | ~UnitAI () |
| virtual void | SetGUID (ObjectGuid const &guid, int32 id) |
| virtual ObjectGuid | GetGUID (int32 id) const |
| Unit * | SelectTarget (SelectTargetMethod targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0) |
| template<class PREDICATE > | |
| Unit * | SelectTarget (SelectTargetMethod targetType, uint32 offset, PREDICATE const &predicate) |
| void | SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0) |
| template<class PREDICATE > | |
| void | SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, uint32 offset, PREDICATE const &predicate) |
| virtual void | JustExitedCombat () |
| virtual void | OnDespawn () |
| virtual void | DamageDealt (Unit *, uint32 &, DamageEffectType) |
| virtual void | DamageTaken (Unit *, uint32 &, DamageEffectType, SpellInfo const *) |
| virtual void | HealReceived (Unit *, uint32 &) |
| virtual void | HealDone (Unit *, uint32 &) |
| virtual void | SpellInterrupted (uint32, uint32) |
| void | AttackStartCaster (Unit *victim, float dist) |
| SpellCastResult | DoCast (uint32 spellId) |
| SpellCastResult | DoCast (Unit *victim, uint32 spellId, CastSpellExtraArgs const &args={}) |
| SpellCastResult | DoCastSelf (uint32 spellId, CastSpellExtraArgs const &args={}) |
| SpellCastResult | DoCastVictim (uint32 spellId, CastSpellExtraArgs const &args={}) |
| SpellCastResult | DoCastAOE (uint32 spellId, CastSpellExtraArgs const &args={}) |
| bool | DoSpellAttackIfReady (uint32 spellId) |
| virtual void | OnGameEvent (bool, uint16) |
| virtual std::string | GetDebugInfo () const |
Public Attributes | |
| uint8 | ActiveTowersCount |
| uint8 | Shutdown |
| bool | ActiveTowers |
| bool | towerOfStorms |
| bool | towerOfLife |
| bool | towerOfFlames |
| bool | towerOfFrost |
| bool | Shutout |
| bool | Unbroken |
Public Attributes inherited from BossAI | |
| InstanceScript *const | instance |
Private Member Functions | |
| void | DoBatteringRamIfReady () |
Private Attributes | |
| ObjectGuid | _pursueTarget |
Additional Inherited Members | |
Static Public Member Functions inherited from CreatureAI | |
| static void | DoZoneInCombat (Creature *creature) |
| static bool | IsInBounds (CreatureBoundary const &boundary, Position const *who) |
Static Public Member Functions inherited from UnitAI | |
| static void | FillAISpellInfo () |
Static Public Attributes inherited from UnitAI | |
| static std::unordered_map< std::pair< uint32, Difficulty >, AISpellInfoType > | AISpellInfo |
Protected Member Functions inherited from BossAI | |
| void | _Reset () |
| void | _JustEngagedWith (Unit *who) |
| void | _JustDied () |
| void | _JustReachedHome () |
| void | _DespawnAtEvade (Seconds delayToRespawn=30s, Creature *who=nullptr) |
| void | TeleportCheaters () |
Protected Member Functions inherited from CreatureAI | |
| bool | UpdateVictim () |
| Creature * | DoSummon (uint32 entry, Position const &pos, Milliseconds despawnTime=30s, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN) |
| Creature * | DoSummon (uint32 entry, WorldObject *obj, float radius=5.0f, Milliseconds despawnTime=30s, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN) |
| Creature * | DoSummonFlyer (uint32 entry, WorldObject *obj, float flightZ, float radius=5.0f, Milliseconds despawnTime=30s, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN) |
| void | EngagementStart (Unit *who) |
| void | EngagementOver () |
| virtual void | MoveInLineOfSight (Unit *) |
| bool | _EnterEvadeMode (EvadeReason why=EvadeReason::Other) |
Protected Attributes inherited from BossAI | |
| EventMap | events |
| SummonList | summons |
| TaskScheduler | scheduler |
Protected Attributes inherited from CreatureAI | |
| Creature *const | me |
| CreatureBoundary const * | _boundary |
| bool | _negateBoundary |
Protected Attributes inherited from UnitAI | |
| Unit *const | me |
Definition at line 224 of file boss_flame_leviathan.cpp.
|
inline |
Definition at line 226 of file boss_flame_leviathan.cpp.
References Initialize(), CreatureAI::me, and Creature::SetCanMelee().
|
inline |
Definition at line 292 of file boss_flame_leviathan.cpp.
References ActiveTowers, Unit::AddAura(), EVENT_FREYA_S_WARD, EVENT_HODIR_S_FURY, EVENT_MIMIRON_S_INFERNO, EVENT_THORIM_S_HAMMER, BossAI::events, CreatureAI::me, SAY_AGGRO, SAY_HARDMODE, SAY_TOWER_NONE, EventMap::ScheduleEvent(), SPELL_BUFF_TOWER_OF_FLAMES, SPELL_BUFF_TOWER_OF_FR0ST, SPELL_BUFF_TOWER_OF_LIFE, SPELL_BUFF_TOWER_OF_STORMS, towerOfFlames, towerOfFrost, towerOfLife, and towerOfStorms.
Referenced by JustEngagedWith().
|
inlineoverridevirtual |
Reimplemented from UnitAI.
Definition at line 499 of file boss_flame_leviathan.cpp.
References ACTION_MOVE_TO_CENTER_POSITION, ACTION_START_HARD_MODE, ACTION_TOWER_OF_FLAMES_DESTROYED, ACTION_TOWER_OF_FROST_DESTROYED, ACTION_TOWER_OF_LIFE_DESTROYED, ACTION_TOWER_OF_STORM_DESTROYED, ActiveTowers, ActiveTowersCount, Center, InstanceScript::DoUpdateWorldState(), Unit::GetMotionMaster(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), Creature::HasLootMode(), Creature::HasReactState(), BossAI::instance, Unit::isDead(), LOOT_MODE_DEFAULT, LOOT_MODE_HARD_MODE_1, LOOT_MODE_HARD_MODE_2, LOOT_MODE_HARD_MODE_3, LOOT_MODE_HARD_MODE_4, CreatureAI::me, MotionMaster::MoveCharge(), REACT_PASSIVE, Creature::RemoveLootMode(), Creature::SetHomePosition(), Creature::SetLootMode(), towerOfFlames, towerOfFrost, towerOfLife, towerOfStorms, and WORLD_STATE_FLAME_LEVIATHAN_DESTROYED_TOWERS.
|
inlineprivate |
Copypasta from DoSpellAttackIfReady, only difference is the target - it cannot be selected trough GetVictim this way - I also removed the spellInfo check
Definition at line 583 of file boss_flame_leviathan.cpp.
References _pursueTarget, UnitAI::DoCast(), EVENT_PURSUE, BossAI::events, ObjectAccessor::GetUnit(), Unit::isAttackReady(), Unit::IsWithinCombatRange(), CreatureAI::me, EventMap::RescheduleEvent(), Unit::resetAttackTimer(), and SPELL_BATTERING_RAM.
Referenced by UpdateAI().
|
inlineoverridevirtual |
Reimplemented from UnitAI.
Definition at line 348 of file boss_flame_leviathan.cpp.
References DATA_SHUTOUT, DATA_UNBROKEN, Shutout, and Unbroken.
|
inline |
Definition at line 232 of file boss_flame_leviathan.cpp.
References ActiveTowers, ActiveTowersCount, Shutdown, Shutout, towerOfFlames, towerOfFrost, towerOfLife, towerOfStorms, and Unbroken.
Referenced by boss_flame_leviathanAI(), and InitializeAI().
|
inlineoverridevirtual |
Reimplemented from UnitAI.
Definition at line 245 of file boss_flame_leviathan.cpp.
References UnitAI::DoCast(), Initialize(), Unit::isDead(), CreatureAI::me, REACT_PASSIVE, Reset(), Creature::SetReactState(), Unit::SetUninteractible(), Unit::SetUnitFlag(), SPELL_INVIS_AND_STEALTH_DETECT, UNIT_FLAG_NON_ATTACKABLE, and UNIT_FLAG_STUNNED.
|
inlineoverridevirtual |
Reimplemented from CreatureAI.
Definition at line 329 of file boss_flame_leviathan.cpp.
References BossAI::_JustDied(), and SAY_DEATH.
|
inlineoverridevirtual |
Reimplemented from CreatureAI.
Definition at line 279 of file boss_flame_leviathan.cpp.
References ActiveTower(), EVENT_MISSILE, EVENT_PURSUE, EVENT_SHUTDOWN, EVENT_SPEED, EVENT_SUMMON, EVENT_VENT, BossAI::events, BossAI::JustEngagedWith(), CreatureAI::me, REACT_PASSIVE, EventMap::ScheduleEvent(), and Creature::SetReactState().
|
inlineoverridevirtual |
Reimplemented from CreatureAI.
Definition at line 571 of file boss_flame_leviathan.cpp.
References ACTION_MOVE_TO_CENTER_POSITION, CreatureAI::me, REACT_AGGRESSIVE, Unit::RemoveUnitFlag(), Creature::SetReactState(), Unit::SetUninteractible(), UNIT_FLAG_NON_ATTACKABLE, and UNIT_FLAG_STUNNED.
|
inlineoverridevirtual |
Reimplemented from UnitAI.
Definition at line 269 of file boss_flame_leviathan.cpp.
References _pursueTarget, BossAI::_Reset(), ObjectGuid::Clear(), CreatureAI::me, REACT_DEFENSIVE, Creature::SetReactState(), and Shutdown.
Referenced by InitializeAI().
|
inlineoverridevirtual |
Reimplemented from UnitAI.
Definition at line 363 of file boss_flame_leviathan.cpp.
References DATA_UNBROKEN, and Unbroken.
|
inlineoverridevirtual |
Reimplemented from CreatureAI.
Definition at line 335 of file boss_flame_leviathan.cpp.
References CURRENT_CHANNELED_SPELL, Unit::GetVehicleKit(), SpellInfo::Id, Unit::InterruptSpell(), CreatureAI::me, Shutdown, SPELL_ELECTROSHOCK, SPELL_OVERLOAD_CIRCUIT, and SPELL_START_THE_ENGINE.
|
inlineoverridevirtual |
Reimplemented from CreatureAI.
Definition at line 477 of file boss_flame_leviathan.cpp.
References _pursueTarget, ScriptedAI::AttackStart(), EMOTE_PURSUE, BaseEntity::GetGUID(), ObjectAccessor::GetPlayer(), Unit::GetVehicleKit(), SpellInfo::Id, CreatureAI::me, Vehicle::Seats, SPELL_PURSUED, and Object::ToUnit().
|
inlineoverridevirtual |
Reimplemented from BossAI.
Definition at line 369 of file boss_flame_leviathan.cpp.
References EventMap::CancelEvent(), WorldObject::CastSpell(), Unit::ClearUnitState(), EventMap::DelayEvents(), DoBatteringRamIfReady(), UnitAI::DoCast(), UnitAI::DoCastAOE(), CreatureAI::DoSummon(), CreatureAI::DoSummonFlyer(), EMOTE_OVERLOAD, EMOTE_REPAIR, CreatureAI::EnterEvadeMode(), EVENT_FREYA_S_WARD, EVENT_HODIR_S_FURY, EVENT_MIMIRON_S_INFERNO, EVENT_MISSILE, EVENT_PURSUE, EVENT_REPAIR, EVENT_SHUTDOWN, EVENT_SPEED, EVENT_SUMMON, EVENT_THORIM_S_HAMMER, EVENT_VENT, BossAI::events, EventMap::ExecuteEvent(), FOUR_SEATS, FreyaBeacons, Unit::HasUnitState(), InfernoStart, Unit::InterruptNonMeleeSpells(), Creature::IsEngaged(), Unit::IsInCombat(), CreatureAI::me, NoHostiles, NPC_FREYA_BEACON, NPC_HODIR_BEACON, NPC_MECHANOLIFT, NPC_MIMIRON_BEACON, NPC_THORIM_BEACON, ScriptedAI::RAID_MODE(), Random, Unit::RemoveAurasDueToSpell(), SAY_OVERLOAD, SAY_TARGET, SAY_TOWER_FLAME, SAY_TOWER_FROST, SAY_TOWER_NATURE, SAY_TOWER_STORM, EventMap::ScheduleEvent(), UnitAI::SelectTarget(), Shutdown, Shutout, SummonList::size(), SPELL_FLAME_VENTS, SPELL_FREYA_S_WARD, SPELL_GATHERING_SPEED, SPELL_MISSILE_BARRAGE, SPELL_OVERLOAD_CIRCUIT, SPELL_PURSUED, SPELL_SYSTEMS_SHUTDOWN, WorldObject::SummonCreature(), BossAI::summons, TEMPSUMMON_TIMED_DESPAWN, TWO_SEATS, UNIT_STATE_CASTING, UNIT_STATE_ROOT, UNIT_STATE_STUNNED, EventMap::Update(), and urand().
|
private |
Definition at line 603 of file boss_flame_leviathan.cpp.
Referenced by DoBatteringRamIfReady(), Reset(), and SpellHitTarget().
| bool boss_flame_leviathan::boss_flame_leviathanAI::ActiveTowers |
Definition at line 261 of file boss_flame_leviathan.cpp.
Referenced by ActiveTower(), DoAction(), and Initialize().
| uint8 boss_flame_leviathan::boss_flame_leviathanAI::ActiveTowersCount |
Definition at line 259 of file boss_flame_leviathan.cpp.
Referenced by DoAction(), and Initialize().
| uint8 boss_flame_leviathan::boss_flame_leviathanAI::Shutdown |
Definition at line 260 of file boss_flame_leviathan.cpp.
Referenced by Initialize(), Reset(), SpellHit(), and UpdateAI().
| bool boss_flame_leviathan::boss_flame_leviathanAI::Shutout |
Definition at line 266 of file boss_flame_leviathan.cpp.
Referenced by GetData(), Initialize(), and UpdateAI().
| bool boss_flame_leviathan::boss_flame_leviathanAI::towerOfFlames |
Definition at line 264 of file boss_flame_leviathan.cpp.
Referenced by ActiveTower(), DoAction(), and Initialize().
| bool boss_flame_leviathan::boss_flame_leviathanAI::towerOfFrost |
Definition at line 265 of file boss_flame_leviathan.cpp.
Referenced by ActiveTower(), DoAction(), and Initialize().
| bool boss_flame_leviathan::boss_flame_leviathanAI::towerOfLife |
Definition at line 263 of file boss_flame_leviathan.cpp.
Referenced by ActiveTower(), DoAction(), and Initialize().
| bool boss_flame_leviathan::boss_flame_leviathanAI::towerOfStorms |
Definition at line 262 of file boss_flame_leviathan.cpp.
Referenced by ActiveTower(), DoAction(), and Initialize().
| bool boss_flame_leviathan::boss_flame_leviathanAI::Unbroken |
Definition at line 267 of file boss_flame_leviathan.cpp.
Referenced by GetData(), Initialize(), and SetData().