|
| npc_q24545_lich_kingAI (Creature *c) |
|
void | CleanAll (bool fromReset=true) |
|
void | Reset () override |
|
void | SetGUID (ObjectGuid guid, int32) override |
|
void | SetData (uint32 type, uint32 data) override |
|
void | UpdateAI (uint32 diff) override |
|
void | JustSummoned (Creature *summon) override |
|
void | SummonedCreatureDespawn (Creature *summon) override |
|
void | SpellHitTarget (Unit *target, SpellInfo const *spell) override |
|
| NullCreatureAI (Creature *c) |
|
void | MoveInLineOfSight (Unit *) override |
|
void | AttackStart (Unit *) override |
|
void | UpdateAI (uint32) override |
|
void | EnterEvadeMode (EvadeReason) override |
|
void | OnCharmed (bool) override |
|
void | Talk (uint8 id, WorldObject const *whisperTarget=nullptr, Milliseconds delay=0s) |
| Causes the creature to talk/say the text assigned to their entry in the creature_text database table.
|
|
void | Talk (uint8 id, Milliseconds delay) |
|
| CreatureAI (Creature *creature) |
|
| ~CreatureAI () override |
|
void | MoveCircleChecks () |
|
void | MoveBackwardsChecks () |
|
void | MoveInLineOfSight_Safe (Unit *who) |
| == Reactions At =================================
|
|
void | TriggerAlert (Unit const *who) const |
|
virtual bool | CanRespawn () |
|
virtual void | EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER) |
|
virtual void | JustEngagedWith (Unit *) |
| Called for reaction when initially engaged.
|
|
virtual void | JustDied (Unit *) |
|
virtual void | KilledUnit (Unit *) |
|
virtual void | JustSummoned (Creature *) |
|
virtual void | IsSummonedBy (WorldObject *) |
|
virtual void | SummonedCreatureDespawn (Creature *) |
|
virtual void | SummonedCreatureDies (Creature *, Unit *) |
|
virtual void | SummonedCreatureDespawnAll () |
|
virtual void | SpellHit (Unit *, SpellInfo const *) |
|
virtual void | SpellHitTarget (Unit *, SpellInfo const *) |
|
virtual void | AttackedBy (Unit *) |
|
virtual bool | IsEscorted () |
|
virtual void | JustRespawned () |
|
virtual void | MovementInform (uint32, uint32) |
|
virtual void | PathEndReached (uint32) |
|
void | OnCharmed (bool apply) override |
|
virtual void | JustReachedHome () |
|
void | DoZoneInCombat (Creature *creature=nullptr, float maxRangeToNearestTarget=250.0f) |
|
virtual void | ReceiveEmote (Player *, uint32) |
|
virtual void | OwnerAttackedBy (Unit *) |
|
virtual void | OwnerAttacked (Unit *) |
|
virtual void | CorpseRemoved (uint32 &) |
| == Triggered Actions Requested ==================
|
|
virtual void | PassengerBoarded (Unit *, int8, bool) |
| == Fields =======================================
|
|
virtual bool | BeforeSpellClick (Unit *) |
|
virtual void | OnSpellClick (Unit *, bool &) |
|
virtual bool | CanSeeAlways (WorldObject const *) |
|
virtual bool | CanBeSeen (Player const *) |
|
virtual bool | CanAlwaysBeDetectable (WorldObject const *) |
|
virtual void | PetStopAttack () |
|
virtual bool | CheckInRoom () |
|
CreatureBoundary const * | GetBoundary () const |
|
void | SetBoundary (CreatureBoundary const *boundary, bool negativeBoundaries=false) |
|
bool | IsInBoundary (Position const *who=nullptr) const |
|
virtual void | CalculateThreat (Unit *, float &, SpellInfo const *) |
|
virtual bool | OnTeleportUnreacheablePlayer (Player *) |
|
| UnitAI (Unit *unit) |
|
virtual | ~UnitAI () |
|
virtual bool | CanAIAttack (Unit const *) const |
|
virtual void | AttackStart (Unit *) |
|
virtual void | UpdateAI (uint32)=0 |
|
virtual void | InitializeAI () |
|
virtual void | Reset () |
|
virtual void | OnCharmed (bool apply)=0 |
|
virtual void | DoAction (int32) |
|
virtual uint32 | GetData (uint32) const |
|
virtual void | SetData (uint32, uint32) |
|
virtual void | SetGUID (ObjectGuid, int32=0) |
|
virtual ObjectGuid | GetGUID (int32=0) const |
|
Unit * | SelectTarget (SelectTargetMethod targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0) |
|
template<class PREDICATE > |
Unit * | SelectTarget (SelectTargetMethod targetType, uint32 position, PREDICATE const &predicate) |
|
void | SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, uint32 position=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 position, PREDICATE const &predicate) |
|
virtual void | JustEnteredCombat (Unit *) |
| Called when the unit enters combat (NOTE: Creature engage logic should NOT be here, but in JustEngagedWith, which happens once threat is established!)
|
|
virtual void | JustExitedCombat () |
| Called when the unit leaves combat.
|
|
virtual void | DamageDealt (Unit *, uint32 &, DamageEffectType) |
|
virtual void | DamageTaken (Unit *, uint32 &, DamageEffectType, SpellSchoolMask) |
|
virtual void | HealReceived (Unit *, uint32 &) |
|
virtual void | OnPowerUpdate (Powers, int32, int32, uint32) |
|
virtual void | HealDone (Unit *, uint32 &) |
|
virtual void | OnCalculateMeleeDamageReceived (uint32 &, Unit *) |
|
virtual void | OnCalculateSpellDamageReceived (int32 &, Unit *) |
|
virtual void | OnCalculatePeriodicTickReceived (uint32 &, Unit *) |
|
void | AttackStartCaster (Unit *victim, float dist) |
|
SpellCastResult | DoAddAuraToAllHostilePlayers (uint32 spellid) |
|
SpellCastResult | DoCast (uint32 spellId) |
|
SpellCastResult | DoCast (Unit *victim, uint32 spellId, bool triggered=false) |
|
SpellCastResult | DoCastSelf (uint32 spellId, bool triggered=false) |
|
SpellCastResult | DoCastToAllHostilePlayers (uint32 spellid, bool triggered=false) |
|
SpellCastResult | DoCastVictim (uint32 spellId, bool triggered=false) |
|
SpellCastResult | DoCastAOE (uint32 spellId, bool triggered=false) |
|
SpellCastResult | DoCastRandomTarget (uint32 spellId, uint32 threatTablePosition=0, float dist=0.0f, bool playerOnly=true, bool triggered=false) |
|
SpellCastResult | DoCastMaxThreat (uint32 spellId, uint32 threatTablePosition=0, float dist=0.0f, bool playerOnly=true, bool triggered=false) |
| Cast spell on the max threat target, which may not always be the current victim.
|
|
float | DoGetSpellMaxRange (uint32 spellId, bool positive=false) |
|
void | DoMeleeAttackIfReady () |
|
bool | DoSpellAttackIfReady (uint32 spell) |
|
void | DoSpellAttackToRandomTargetIfReady (uint32 spell, uint32 threatTablePosition=0, float dist=0.f, bool playerOnly=true) |
|
virtual void | SummonMovementInform (Creature *, uint32, uint32) |
|
virtual void | sGossipHello (Player *) |
|
virtual void | sGossipSelect (Player *, uint32, uint32) |
|
virtual void | sGossipSelectCode (Player *, uint32, uint32, char const *) |
|
virtual void | sQuestAccept (Player *, Quest const *) |
|
virtual void | sQuestSelect (Player *, Quest const *) |
|
virtual void | sQuestComplete (Player *, Quest const *) |
|
virtual void | sQuestReward (Player *, Quest const *, uint32) |
|
virtual void | sOnGameEvent (bool, uint16) |
|
virtual std::string | GetDebugInfo () const |
|
void npc_q24545_lich_king::npc_q24545_lich_kingAI::UpdateAI |
( |
uint32 |
diff | ) |
|
|
inlineoverridevirtual |
Reimplemented from NullCreatureAI.
1165 {
1167 switch (
events.ExecuteEvent())
1168 {
1169 case 0:
1170 break;
1171 case 998:
1173 break;
1174 case 999:
1177 {
1180 }
1181 break;
1182 case 1:
1184 {
1185 bool valid = false;
1187 if (p->IsAlive() && p->GetPhaseMask() & 2 && p->GetExactDistSq(
me) < 100.0f * 100.0f && !p->IsGameMaster())
1188 valid = true;
1189 if (!valid)
1190 {
1192 return;
1193 }
1194 }
1195 events.ScheduleEvent(1, 3s);
1196 break;
1197 case 2:
1199 break;
1200 case 3:
1202 {
1207 path.push_back(G3D::Vector3(4825.35f, -582.99f, 164.83f));
1208 path.push_back(G3D::Vector3(4813.38f, -580.94f, 162.62f));
1210 events.ScheduleEvent(4, 10s);
1211 }
1212 break;
1213 case 4:
1215 events.ScheduleEvent(5, 6s);
1216 break;
1217 case 5:
1219 events.ScheduleEvent(6, 4s);
1220 events.ScheduleEvent(7, 11s);
1221 break;
1222 case 6:
1226
1227 events.ScheduleEvent(65, 3500ms);
1228 break;
1229 case 65:
1231 {
1234 }
1235 break;
1236 case 7:
1238 events.ScheduleEvent(8, 8s);
1239 events.ScheduleEvent(9, 11s + 500ms);
1240 break;
1241 case 8:
1243 break;
1244 case 9:
1246 events.ScheduleEvent(10, 10s);
1247 break;
1248 case 10:
1250 events.ScheduleEvent(11, 4s);
1251 events.ScheduleEvent(12, 5s);
1252 break;
1253 case 11:
1256 break;
1257 case 12:
1261 events.ScheduleEvent(13, 3500ms);
1262 events.ScheduleEvent(14, 6s);
1263 break;
1264 case 13:
1266 break;
1267 case 14:
1271 {
1272 c->AI()->Talk(0);
1274 }
1277 break;
1278 case 15:
1281 {
1284 {
1285 x->SetCanFly(true);
1286 x->SetDisableGravity(true);
1287 x->SetHover(true);
1288 x->NearTeleportTo(4812.09f, -585.55f, 172.03f, 3.75f);
1289 l->EnterVehicle(x, 1);
1290
1293 events.ScheduleEvent(16, 5s);
1294 }
1295 }
1296 break;
1297 case 16:
1302 events.ScheduleEvent(17, 12s);
1303 break;
1304 case 17:
1305 {
1309
1313 {
1315 v->SetDisplayId(11686);
1316 v->DespawnOrUnsummon(1000);
1320 {
1323 pass->ToCreature()->DespawnOrUnsummon(1);
1324 vb->RemoveAllAuras();
1325 vb->ToCreature()->DespawnOrUnsummon(1);
1326 }
1327 c->ToCreature()->DespawnOrUnsummon(1);
1328 }
1329 }
1330 break;
1331 case 18:
1333 break;
1334 }
1335 }
@ TEMPSUMMON_MANUAL_DESPAWN
Definition: Object.h:49
@ SPELL_SAC_VEHICLE_CONTROL_AURA
Definition: zone_dragonblight.cpp:1042
@ NPC_SAC_VEGARD_1
Definition: zone_dragonblight.cpp:1014
@ SPELL_SAC_SUMMON_GHOULS_AURA
Definition: zone_dragonblight.cpp:1023
@ SPELL_SAC_VEGARD_SUMMON_GHOULS_AURA
Definition: zone_dragonblight.cpp:1028
@ SPELL_SAC_SUMMON_VEGARD_SKELETON
Definition: zone_dragonblight.cpp:1036
@ SPELL_SAC_LK_DESPAWN_ANIM
Definition: zone_dragonblight.cpp:1027
@ SPELL_SAC_ZAP_PLAYER
Definition: zone_dragonblight.cpp:1026
@ SPELL_SAC_SUMMON_GO_2
Definition: zone_dragonblight.cpp:1035
@ SPELL_SAC_KILL_VEGARD
Definition: zone_dragonblight.cpp:1034
@ SPELL_SAC_BLUE_EXPLOSION
Definition: zone_dragonblight.cpp:1041
@ SPELL_SAC_HOLY_BOMB_EXPLOSION
Definition: zone_dragonblight.cpp:1031
@ SPELL_SAC_SHIELD_OF_THE_LICH_KING
Definition: zone_dragonblight.cpp:1025
@ SPELL_SAC_STUN
Definition: zone_dragonblight.cpp:1018
@ SPELL_SAC_SUMMON_GO_1
Definition: zone_dragonblight.cpp:1022
@ SPELL_SAC_HOLY_BOMB_VISUAL
Definition: zone_dragonblight.cpp:1030
@ SPELL_SAC_ZAP_GHOULS_AURA
Definition: zone_dragonblight.cpp:1032
Talk
Definition: boss_fathomlord_karathress.cpp:25
std::vector< Vector3 > PointsArray
Definition: MoveSplineInitArgs.h:28
TempSummon * SummonCreature(uint32 id, const Position &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition: Object.cpp:2343
float GetPositionZ() const
Definition: Position.h:119
float GetPositionX() const
Definition: Position.h:117
float GetPositionY() const
Definition: Position.h:118
Vehicle * GetVehicleKit() const
Definition: Unit.h:2367
Unit * GetPassenger(int8 seatId) const
Definition: Vehicle.cpp:226
void MoveSplinePath(Movement::PointsArray *path)
Definition: MotionMaster.cpp:436
void Reset() override
Definition: zone_dragonblight.cpp:1097
References Unit::CastSpell(), CleanAll(), WorldObject::FindNearestCreature(), WorldObject::FindNearestGameObject(), Unit::GetMotionMaster(), Vehicle::GetPassenger(), ObjectAccessor::GetPlayer(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), Unit::GetVehicleBase(), Unit::GetVehicleKit(), GO_FLAG_NOT_SELECTABLE, GO_SAC_LIGHTS_VENGEANCE_1, CreatureAI::me, MotionMaster::MoveSplinePath(), NPC_SAC_LIGHTS_VENGEANCE, NPC_SAC_LIGHTS_VENGEANCE_BUNNY, NPC_SAC_LIGHTS_VENGEANCE_VEH_1, NPC_SAC_LIGHTS_VENGEANCE_VEH_2, NPC_SAC_VEGARD_1, playerGUID, Unit::RemoveAllAuras(), Reset(), Unit::SetVisible(), SPELL_SAC_BLUE_EXPLOSION, SPELL_SAC_HOLY_BOMB_EXPLOSION, SPELL_SAC_HOLY_BOMB_VISUAL, SPELL_SAC_HOLY_ZONE_AURA, SPELL_SAC_KILL_VEGARD, SPELL_SAC_LK_DESPAWN_ANIM, SPELL_SAC_REPEL_HAMMER, SPELL_SAC_SHIELD_OF_THE_LICH_KING, SPELL_SAC_STUN, SPELL_SAC_SUMMON_GHOULS_AURA, SPELL_SAC_SUMMON_GO_1, SPELL_SAC_SUMMON_GO_2, SPELL_SAC_SUMMON_VEGARD_SKELETON, SPELL_SAC_VEGARD_SUMMON_GHOULS_AURA, SPELL_SAC_VEHICLE_CONTROL_AURA, SPELL_SAC_ZAP_GHOULS_AURA, SPELL_SAC_ZAP_PLAYER, WorldObject::SummonCreature(), TEMPSUMMON_MANUAL_DESPAWN, TYPEID_UNIT, and Cell::VisitGridObjects().