AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
npc_forest_frog::npc_forest_frogAI Struct Reference
Inheritance diagram for npc_forest_frog::npc_forest_frogAI:
ScriptedAI CreatureAI UnitAI

Public Member Functions

 npc_forest_frogAI (Creature *creature)
 
void Reset () override
 
void JustEngagedWith (Unit *) override
 Called for reaction when initially engaged.
 
void MovementInform (uint32 type, uint32 data) override
 
void UpdateAI (uint32 diff) override
 
void DoSpawnRandom ()
 
void SpellHit (Unit *caster, SpellInfo const *spell) override
 
- Public Member Functions inherited from ScriptedAI
 ScriptedAI (Creature *creature)
 
 ~ScriptedAI () override
 
void AttackStartNoMove (Unit *target)
 
void DamageTaken (Unit *, uint32 &, DamageEffectType, SpellSchoolMask) override
 
void UpdateAI (uint32 diff) override
 
void JustDied (Unit *) override
 
void KilledUnit (Unit *) override
 
void JustSummoned (Creature *) override
 
void SummonedCreatureDespawn (Creature *) override
 
void SpellHit (Unit *, SpellInfo const *) override
 
void SpellHitTarget (Unit *, SpellInfo const *) override
 
void MovementInform (uint32, uint32) override
 
void OnPossess (bool)
 
bool IsInRoom (const Position *pos, Axis axis, bool above)
 
void Reset () override
 
void JustEngagedWith (Unit *) override
 Called for reaction when initially engaged.
 
void AttackStart (Unit *) override
 
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 DoPlayMusic (uint32 soundId, bool zone)
 
void DoAddThreat (Unit *unit, float amount)
 
void DoModifyThreatByPercent (Unit *unit, int32 pct)
 
void DoResetThreat (Unit *unit)
 
void DoResetThreatList ()
 
float DoGetThreat (Unit *unit)
 
void DoTeleportPlayer (Unit *unit, float x, float y, float z, float o)
 
void DoTeleportAll (float x, float y, float z, float o)
 
UnitDoSelectLowestHpFriendly (float range, uint32 minHPDiff=1)
 
std::list< Creature * > DoFindFriendlyCC (float range)
 
std::list< Creature * > DoFindFriendlyMissingBuff (float range, uint32 spellId)
 
PlayerGetPlayerAtMinimumRange (float minRange)
 
CreatureDoSpawnCreature (uint32 entry, float offsetX, float offsetY, float offsetZ, float angle, uint32 type, uint32 despawntime)
 
bool IsUniqueTimedEventDone (uint32 id) const
 
void SetUniqueTimedEventDone (uint32 id)
 
void ResetUniqueTimedEvent (uint32 id)
 
void ClearUniqueTimedEventsDone ()
 
void ScheduleTimedEvent (Milliseconds timerMin, Milliseconds timerMax, std::function< void()> exec, Milliseconds repeatMin, Milliseconds repeatMax=0s, uint32 uniqueId=0)
 
void ScheduleTimedEvent (Milliseconds timerMax, std::function< void()> exec, Milliseconds repeatMin, Milliseconds repeatMax=0s, uint32 uniqueId=0)
 
void ScheduleUniqueTimedEvent (Milliseconds timer, std::function< void()> exec, uint32 uniqueId)
 
bool HealthBelowPct (uint32 pct) const
 
bool HealthAbovePct (uint32 pct) const
 
SpellInfo const * SelectSpell (Unit *target, uint32 school, uint32 mechanic, SelectTargetType targets, uint32 powerCostMin, uint32 powerCostMax, 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
 
virtual bool CheckEvadeIfOutOfCombatArea () const
 
bool IsHeroic () const
 
Difficulty GetDifficulty () const
 
bool Is25ManRaid () const
 
template<class T >
const T & DUNGEON_MODE (const T &normal5, const T &heroic10) const
 
template<class T >
const T & RAID_MODE (const T &normal10, const T &normal25) const
 
template<class T >
const T & RAID_MODE (const T &normal10, const T &normal25, const T &heroic10, const T &heroic25) const
 
PlayerSelectTargetFromPlayerList (float maxdist, uint32 excludeAura=0, bool mustBeInLOS=false) const
 
- Public Member Functions inherited from CreatureAI
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 *)
 
- Public Member Functions inherited from UnitAI
 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
 
UnitSelectTarget (SelectTargetMethod targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
 
template<class PREDICATE >
UnitSelectTarget (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
 

Public Attributes

InstanceScriptinstance
 
EventMap events
 
uint8 eventTimer
 
ObjectGuid PlayerGUID
 
- Public Attributes inherited from ScriptedAI
Creatureme
 
bool IsFleeing
 

Additional Inherited Members

- Public Types inherited from ScriptedAI
enum class  Axis {
  AXIS_X ,
  AXIS_Y
}
 
- Public Types inherited from CreatureAI
enum  EvadeReason {
  EVADE_REASON_NO_HOSTILES ,
  EVADE_REASON_BOUNDARY ,
  EVADE_REASON_SEQUENCE_BREAK ,
  EVADE_REASON_NO_PATH ,
  EVADE_REASON_OTHER
}
 
- Static Public Member Functions inherited from CreatureAI
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 AISpellInfoTypeAISpellInfo
 
- Protected Member Functions inherited from CreatureAI
bool UpdateVictim ()
 
bool UpdateVictimWithGaze ()
 
void SetGazeOn (Unit *target)
 
CreatureDoSummon (uint32 entry, Position const &pos, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
CreatureDoSummon (uint32 entry, WorldObject *obj, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
CreatureDoSummonFlyer (uint32 entry, WorldObject *obj, float flightZ, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
virtual void MoveInLineOfSight (Unit *)
 
bool _EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER)
 
- Protected Attributes inherited from CreatureAI
Creature *const me
 
EventMap events
 
TaskScheduler scheduler
 
CreatureBoundary const * _boundary
 
bool _negateBoundary
 
- Protected Attributes inherited from UnitAI
Unit *const me
 

Detailed Description

Constructor & Destructor Documentation

◆ npc_forest_frogAI()

npc_forest_frog::npc_forest_frogAI::npc_forest_frogAI ( Creature creature)
inline
135 : ScriptedAI(creature)
136 {
137 instance = creature->GetInstanceScript();
138 }
Definition: ScriptedCreature.h:192
InstanceScript * GetInstanceScript() const
Definition: Object.cpp:1192
InstanceScript * instance
Definition: zulaman.cpp:140

References WorldObject::GetInstanceScript(), and instance.

Member Function Documentation

◆ DoSpawnRandom()

void npc_forest_frog::npc_forest_frogAI::DoSpawnRandom ( )
inline
367 {
368 if (instance)
369 {
370 uint32 cEntry = NPC_MANNUTH;
371 switch (urand(0, 9))
372 {
373 case 1:
374 cEntry = NPC_DEEZ;
375 break;
376 case 2:
377 cEntry = NPC_GALATHRYN;
378 break;
379 case 3:
380 cEntry = NPC_ADARRAH;
381 break;
382 case 4:
383 cEntry = NPC_FUDGERICK;
384 break;
385 case 5:
386 cEntry = NPC_DARWEN;
387 break;
388 case 6:
389 cEntry = NPC_MITZI;
390 break;
391 case 7:
392 cEntry = NPC_CHRISTIAN;
393 break;
394 case 8:
395 cEntry = NPC_BRENNAN;
396 break;
397 case 9:
398 cEntry = NPC_HOLLEE;
399 break;
400 }
401
403 {
404 cEntry = NPC_GUNTER;
406 }
408 {
409 cEntry = NPC_KYREN;
411 }
412
413 // start generic rp
414 eventTimer = 1;
415 events.ScheduleEvent(eventTimer, 3000);
416
417 me->UpdateEntry(cEntry);
418 }
419 }
std::uint32_t uint32
Definition: Define.h:108
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:44
bool roll_chance_i(int chance)
Definition: Random.h:59
@ DONE
Definition: InstanceScript.h:60
@ NPC_HOLLEE
Definition: zulaman.cpp:64
@ NPC_GUNTER
Definition: zulaman.cpp:59
@ NPC_BRENNAN
Definition: zulaman.cpp:63
@ NPC_CHRISTIAN
Definition: zulaman.cpp:62
@ NPC_FUDGERICK
Definition: zulaman.cpp:57
@ NPC_DEEZ
Definition: zulaman.cpp:54
@ NPC_GALATHRYN
Definition: zulaman.cpp:55
@ NPC_MANNUTH
Definition: zulaman.cpp:53
@ NPC_MITZI
Definition: zulaman.cpp:61
@ NPC_KYREN
Definition: zulaman.cpp:60
@ NPC_ADARRAH
Definition: zulaman.cpp:56
@ NPC_DARWEN
Definition: zulaman.cpp:58
@ TYPE_RAND_VENDOR_1
Definition: zulaman.h:36
@ TYPE_RAND_VENDOR_2
Definition: zulaman.h:37
events
Definition: boss_sartura.cpp:43
Creature * me
Definition: ScriptedCreature.h:282
bool UpdateEntry(uint32 entry, const CreatureData *data=nullptr, bool changelevel=true, bool updateAI=false)
Definition: Creature.cpp:482
virtual uint32 GetData(uint32) const
Definition: ZoneScript.h:52
virtual void SetData(uint32, uint32)
Definition: ZoneScript.h:53
uint8 eventTimer
Definition: zulaman.cpp:142

References DONE, eventTimer, ZoneScript::GetData(), instance, ScriptedAI::me, NPC_ADARRAH, NPC_BRENNAN, NPC_CHRISTIAN, NPC_DARWEN, NPC_DEEZ, NPC_FUDGERICK, NPC_GALATHRYN, NPC_GUNTER, NPC_HOLLEE, NPC_KYREN, NPC_MANNUTH, NPC_MITZI, roll_chance_i(), ZoneScript::SetData(), TYPE_RAND_VENDOR_1, TYPE_RAND_VENDOR_2, Creature::UpdateEntry(), and urand().

Referenced by SpellHit().

◆ JustEngagedWith()

void npc_forest_frog::npc_forest_frogAI::JustEngagedWith ( Unit )
inlineoverridevirtual

Called for reaction when initially engaged.

Reimplemented from ScriptedAI.

147{ }

◆ MovementInform()

void npc_forest_frog::npc_forest_frogAI::MovementInform ( uint32  type,
uint32  data 
)
inlineoverridevirtual

Reimplemented from ScriptedAI.

150 {
151 if (type == POINT_MOTION_TYPE && data == POINT_DESPAWN)
152 me->DespawnOrUnsummon(1000);
153 }
@ POINT_MOTION_TYPE
Definition: MotionMaster.h:46
@ POINT_DESPAWN
Definition: zulaman.cpp:125
void DespawnOrUnsummon(Milliseconds msTimeToDespawn, Seconds forcedRespawnTimer)
Definition: Creature.cpp:2117

References Creature::DespawnOrUnsummon(), ScriptedAI::me, POINT_DESPAWN, and POINT_MOTION_TYPE.

◆ Reset()

void npc_forest_frog::npc_forest_frogAI::Reset ( )
inlineoverridevirtual

Reimplemented from ScriptedAI.

145{ }

◆ SpellHit()

void npc_forest_frog::npc_forest_frogAI::SpellHit ( Unit caster,
SpellInfo const *  spell 
)
inlineoverridevirtual

Reimplemented from ScriptedAI.

422 {
423 if (spell->Id == SPELL_REMOVE_AMANI_CURSE && caster->GetTypeId() == TYPEID_PLAYER && me->GetEntry() == NPC_FOREST_FROG)
424 {
426 me->SetFacingToObject(caster);
427 PlayerGUID = caster->GetGUID();
428
429 if (roll_chance_i(2))
430 {
431 DoCast(caster, SPELL_PUSH_MOJO, true);
432 me->GetMotionMaster()->MovePoint(POINT_DESPAWN, caster->GetPositionX(), caster->GetPositionY(), caster->GetPositionZ());
433 }
434 else
436 }
437 }
@ TYPEID_PLAYER
Definition: ObjectGuid.h:38
@ SPELL_REMOVE_AMANI_CURSE
Definition: zulaman.cpp:44
@ NPC_FOREST_FROG
Definition: zulaman.cpp:52
@ SPELL_PUSH_MOJO
Definition: zulaman.cpp:45
SpellCastResult DoCast(uint32 spellId)
Definition: UnitAI.cpp:177
TypeID GetTypeId() const
Definition: Object.h:121
uint32 GetEntry() const
Definition: Object.h:109
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
float GetPositionZ() const
Definition: Position.h:119
float GetPositionX() const
Definition: Position.h:117
float GetPositionY() const
Definition: Position.h:118
MotionMaster * GetMotionMaster()
Definition: Unit.h:2276
void SetFacingToObject(WorldObject *object)
Definition: Unit.cpp:20894
void MovePoint(uint32 id, const Position &pos, bool generatePath=true, bool forceDestination=true)
Definition: MotionMaster.h:211
void MoveIdle()
Definition: MotionMaster.cpp:232
ObjectGuid PlayerGUID
Definition: zulaman.cpp:143
void DoSpawnRandom()
Definition: zulaman.cpp:366

References UnitAI::DoCast(), DoSpawnRandom(), Object::GetEntry(), Object::GetGUID(), Unit::GetMotionMaster(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), Object::GetTypeId(), SpellInfo::Id, ScriptedAI::me, MotionMaster::MoveIdle(), MotionMaster::MovePoint(), NPC_FOREST_FROG, PlayerGUID, POINT_DESPAWN, roll_chance_i(), Unit::SetFacingToObject(), SPELL_PUSH_MOJO, SPELL_REMOVE_AMANI_CURSE, and TYPEID_PLAYER.

◆ UpdateAI()

void npc_forest_frog::npc_forest_frogAI::UpdateAI ( uint32  diff)
inlineoverridevirtual

Reimplemented from ScriptedAI.

156 {
157 events.Update(diff);
158 if (eventTimer)
159 {
161 switch (events.ExecuteEvent())
162 {
163 case 1:
164 switch (me->GetEntry())
165 {
166 case NPC_MANNUTH:
167 Talk(SAY_MANNUTH_0, player);
168 break;
169 case NPC_DEEZ:
170 Talk(SAY_DEEZ_0, player);
171 break;
172 case NPC_GALATHRYN:
173 Talk(SAY_GALATHRYN_0, player);
174 break;
175 case NPC_ADARRAH:
176 Talk(SAY_ADARRAH_1, player);
177 break;
178 case NPC_DARWEN:
179 Talk(SAY_DARWEN_0, player);
180 break;
181 case NPC_FUDGERICK:
182 Talk(SAY_FUDGERICK_0, player);
183 break;
184 case NPC_GUNTER:
185 Talk(SAY_GUNTER_0, player);
186 break;
187 case NPC_KYREN:
188 Talk(SAY_KYREN_0, player);
189 break;
190 case NPC_MITZI:
191 Talk(SAY_MITZI_0, player);
192 break;
193 case NPC_CHRISTIAN:
194 Talk(SAY_CHRISTIAN_0, player);
195 break;
196 case NPC_BRENNAN:
197 Talk(SAY_BRENNAN_0, player);
198 break;
199 case NPC_HOLLEE:
200 Talk(SAY_HOLLEE_0, player);
201 break;
202 }
203 eventTimer = 2;
204 events.ScheduleEvent(eventTimer, urand(4000, 5000));
205 break;
206 case 2:
207 if (me->GetEntry() != NPC_GUNTER && me->GetEntry() != NPC_KYREN) // vendors don't kneel?
209
210 switch (me->GetEntry())
211 {
212 case NPC_MANNUTH:
214 Talk(SAY_MANNUTH_1, player);
215 break;
216 case NPC_DEEZ:
218 Talk(SAY_DEEZ_1, player);
219 break;
220 case NPC_GALATHRYN:
222 Talk(SAY_GALATHRYN_1, player);
223 break;
224 case NPC_ADARRAH:
226 Talk(SAY_ADARRAH_2, player);
227 break;
228 case NPC_DARWEN:
230 me->LoadEquipment(0, true);
231 Talk(SAY_DARWEN_1, player);
232 break;
233 case NPC_FUDGERICK:
235 me->LoadEquipment(0, true);
236 Talk(SAY_FUDGERICK_1, player);
237 break;
238 case NPC_GUNTER:
239 Talk(SAY_GUNTER_1, player);
240 break;
241 case NPC_KYREN:
242 Talk(SAY_KYREN_1, player);
243 break;
244 case NPC_MITZI:
246 Talk(SAY_MITZI_1, player);
247 break;
248 case NPC_CHRISTIAN:
250 Talk(SAY_CHRISTIAN_1, player);
251 break;
252 case NPC_BRENNAN:
254 Talk(SAY_BRENNAN_1, player);
255 break;
256 case NPC_HOLLEE:
258 Talk(SAY_HOLLEE_1, player);
259 break;
260 }
261 eventTimer = 3;
262 events.ScheduleEvent(eventTimer, urand(6000, 7000));
263 break;
264 case 3:
266 switch (me->GetEntry())
267 {
268 case NPC_MANNUTH:
269 Talk(SAY_MANNUTH_2, player);
270 break;
271 case NPC_DEEZ:
272 Talk(SAY_DEEZ_2, player);
273 break;
274 case NPC_GALATHRYN:
275 Talk(SAY_GALATHRYN_2, player);
276 break;
277 case NPC_ADARRAH:
278 Talk(SAY_ADARRAH_3, player);
279 break;
280 case NPC_DARWEN:
281 Talk(SAY_DARWEN_2, player);
282 break;
283 case NPC_FUDGERICK:
284 Talk(SAY_FUDGERICK_2, player);
285 break;
286 case NPC_GUNTER:
287 Talk(SAY_GUNTER_2, player);
288 break;
289 case NPC_KYREN:
290 Talk(SAY_KYREN_2, player);
291 break;
292 case NPC_MITZI:
293 Talk(SAY_MITZI_2, player);
294 break;
295 case NPC_CHRISTIAN:
296 Talk(SAY_CHRISTIAN_2, player);
297 break;
298 case NPC_BRENNAN:
299 Talk(SAY_BRENNAN_2, player);
300 break;
301 case NPC_HOLLEE:
302 Talk(SAY_HOLLEE_2, player);
303 break;
304 }
305 eventTimer = 4;
306 if (me->GetEntry() == NPC_GUNTER || me->GetEntry() == NPC_KYREN)
307 events.ScheduleEvent(eventTimer, 5 * MINUTE * IN_MILLISECONDS); // vendors wait for 5 minutes before running away and despawning
308 else
309 events.ScheduleEvent(eventTimer, 6000);
310 break;
311 case 4:
313 switch (me->GetEntry())
314 {
315 case NPC_MANNUTH:
316 Talk(SAY_MANNUTH_3, player);
317 break;
318 case NPC_DEEZ:
319 Talk(SAY_DEEZ_3, player);
320 break;
321 case NPC_GALATHRYN:
322 Talk(SAY_GALATHRYN_3, player);
323 break;
324 case NPC_ADARRAH:
325 Talk(SAY_ADARRAH_4, player);
326 break;
327 case NPC_DARWEN:
328 Talk(SAY_DARWEN_3, player);
329 break;
330 case NPC_FUDGERICK:
331 Talk(SAY_FUDGERICK_3, player);
332 break;
333 case NPC_MITZI:
334 Talk(SAY_MITZI_3, player);
335 break;
336 case NPC_CHRISTIAN:
337 Talk(SAY_CHRISTIAN_3, player);
338 break;
339 case NPC_BRENNAN:
340 Talk(SAY_BRENNAN_3, player);
341 break;
342 case NPC_HOLLEE:
343 Talk(SAY_HOLLEE_3, player);
344 break;
345 }
346 eventTimer = 5;
347 events.ScheduleEvent(eventTimer, 2000);
348 break;
349 case 5:
350 switch (me->GetEntry())
351 {
352 case NPC_ADARRAH:
353 DoCast(me, SPELL_STEALTH_, true);
354 break;
355 }
356 if (me->GetPositionY() > 1290.0f)
357 me->GetMotionMaster()->MovePoint(POINT_DESPAWN, 118.2742f, 1400.657f, -9.118711f);
358 else
359 me->GetMotionMaster()->MovePoint(POINT_DESPAWN, 114.3155f, 1244.244f, -20.97606f);
360 eventTimer = 0;
361 break;
362 }
363 }
364 }
constexpr auto IN_MILLISECONDS
Definition: Common.h:55
constexpr auto MINUTE
Definition: Common.h:49
@ UNIT_STAND_STATE_KNEEL
Definition: Unit.h:61
@ SAY_KYREN_0
Definition: zulaman.cpp:101
@ SPELL_SUMMON_MONEY_BAG
Definition: zulaman.cpp:48
@ SAY_MANNUTH_2
Definition: zulaman.cpp:69
@ SAY_GUNTER_1
Definition: zulaman.cpp:98
@ SAY_GUNTER_0
Definition: zulaman.cpp:97
@ SAY_CHRISTIAN_0
Definition: zulaman.cpp:110
@ SAY_KYREN_1
Definition: zulaman.cpp:102
@ SAY_HOLLEE_0
Definition: zulaman.cpp:120
@ SAY_GALATHRYN_0
Definition: zulaman.cpp:77
@ SAY_BRENNAN_3
Definition: zulaman.cpp:118
@ SAY_MANNUTH_1
Definition: zulaman.cpp:68
@ SAY_FUDGERICK_2
Definition: zulaman.cpp:94
@ SAY_FUDGERICK_3
Definition: zulaman.cpp:95
@ SAY_HOLLEE_3
Definition: zulaman.cpp:123
@ SAY_ADARRAH_2
Definition: zulaman.cpp:83
@ SAY_DARWEN_3
Definition: zulaman.cpp:90
@ SAY_FUDGERICK_0
Definition: zulaman.cpp:92
@ SAY_MITZI_0
Definition: zulaman.cpp:105
@ SPELL_SUMMON_AMANI_CHARM_CHEST_2
Definition: zulaman.cpp:47
@ SAY_DEEZ_1
Definition: zulaman.cpp:73
@ SPELL_STEALTH_
Definition: zulaman.cpp:49
@ SAY_DEEZ_0
Definition: zulaman.cpp:72
@ SAY_ADARRAH_3
Definition: zulaman.cpp:84
@ SAY_ADARRAH_1
Definition: zulaman.cpp:82
@ SAY_CHRISTIAN_2
Definition: zulaman.cpp:112
@ SAY_HOLLEE_1
Definition: zulaman.cpp:121
@ SAY_GUNTER_2
Definition: zulaman.cpp:99
@ SAY_GALATHRYN_3
Definition: zulaman.cpp:80
@ SAY_DEEZ_2
Definition: zulaman.cpp:74
@ SAY_MANNUTH_0
Definition: zulaman.cpp:67
@ SAY_FUDGERICK_1
Definition: zulaman.cpp:93
@ SAY_CHRISTIAN_3
Definition: zulaman.cpp:113
@ SAY_DARWEN_2
Definition: zulaman.cpp:89
@ SAY_MITZI_1
Definition: zulaman.cpp:106
@ SAY_GALATHRYN_2
Definition: zulaman.cpp:79
@ SAY_DEEZ_3
Definition: zulaman.cpp:75
@ SAY_DARWEN_1
Definition: zulaman.cpp:88
@ SAY_MITZI_3
Definition: zulaman.cpp:108
@ SAY_BRENNAN_1
Definition: zulaman.cpp:116
@ SAY_MANNUTH_3
Definition: zulaman.cpp:70
@ SAY_MITZI_2
Definition: zulaman.cpp:107
@ SAY_BRENNAN_2
Definition: zulaman.cpp:117
@ SAY_HOLLEE_2
Definition: zulaman.cpp:122
@ SAY_CHRISTIAN_1
Definition: zulaman.cpp:111
@ SAY_KYREN_2
Definition: zulaman.cpp:103
@ SAY_DARWEN_0
Definition: zulaman.cpp:87
@ SAY_ADARRAH_4
Definition: zulaman.cpp:85
@ SAY_GALATHRYN_1
Definition: zulaman.cpp:78
@ SPELL_SUMMON_AMANI_CHARM_CHEST_1
Definition: zulaman.cpp:46
@ SAY_BRENNAN_0
Definition: zulaman.cpp:115
Talk
Definition: boss_fathomlord_karathress.cpp:25
@ EMOTE_ONESHOT_NONE
Definition: SharedDefines.h:1894
@ EMOTE_ONESHOT_WAVE
Definition: SharedDefines.h:1897
Player * GetPlayer(Map const *, ObjectGuid const guid)
Definition: ObjectAccessor.cpp:223
void LoadEquipment(int8 id=1, bool force=false)
Definition: Creature.cpp:1746
Map * GetMap() const
Definition: Object.h:517
Definition: Player.h:1056
void HandleEmoteCommand(uint32 emoteId)
Definition: Unit.cpp:1980
void SetStandState(uint8 state)
Definition: Unit.cpp:16994

References UnitAI::DoCast(), EMOTE_ONESHOT_NONE, EMOTE_ONESHOT_WAVE, eventTimer, Object::GetEntry(), WorldObject::GetMap(), Unit::GetMotionMaster(), ObjectAccessor::GetPlayer(), Position::GetPositionY(), Unit::HandleEmoteCommand(), IN_MILLISECONDS, Creature::LoadEquipment(), ScriptedAI::me, MINUTE, MotionMaster::MovePoint(), NPC_ADARRAH, NPC_BRENNAN, NPC_CHRISTIAN, NPC_DARWEN, NPC_DEEZ, NPC_FUDGERICK, NPC_GALATHRYN, NPC_GUNTER, NPC_HOLLEE, NPC_KYREN, NPC_MANNUTH, NPC_MITZI, PlayerGUID, POINT_DESPAWN, SAY_ADARRAH_1, SAY_ADARRAH_2, SAY_ADARRAH_3, SAY_ADARRAH_4, SAY_BRENNAN_0, SAY_BRENNAN_1, SAY_BRENNAN_2, SAY_BRENNAN_3, SAY_CHRISTIAN_0, SAY_CHRISTIAN_1, SAY_CHRISTIAN_2, SAY_CHRISTIAN_3, SAY_DARWEN_0, SAY_DARWEN_1, SAY_DARWEN_2, SAY_DARWEN_3, SAY_DEEZ_0, SAY_DEEZ_1, SAY_DEEZ_2, SAY_DEEZ_3, SAY_FUDGERICK_0, SAY_FUDGERICK_1, SAY_FUDGERICK_2, SAY_FUDGERICK_3, SAY_GALATHRYN_0, SAY_GALATHRYN_1, SAY_GALATHRYN_2, SAY_GALATHRYN_3, SAY_GUNTER_0, SAY_GUNTER_1, SAY_GUNTER_2, SAY_HOLLEE_0, SAY_HOLLEE_1, SAY_HOLLEE_2, SAY_HOLLEE_3, SAY_KYREN_0, SAY_KYREN_1, SAY_KYREN_2, SAY_MANNUTH_0, SAY_MANNUTH_1, SAY_MANNUTH_2, SAY_MANNUTH_3, SAY_MITZI_0, SAY_MITZI_1, SAY_MITZI_2, SAY_MITZI_3, Unit::SetStandState(), SPELL_STEALTH_, SPELL_SUMMON_AMANI_CHARM_CHEST_1, SPELL_SUMMON_AMANI_CHARM_CHEST_2, SPELL_SUMMON_MONEY_BAG, UNIT_STAND_STATE_KNEEL, and urand().

Member Data Documentation

◆ events

EventMap npc_forest_frog::npc_forest_frogAI::events

◆ eventTimer

uint8 npc_forest_frog::npc_forest_frogAI::eventTimer

Referenced by DoSpawnRandom(), and UpdateAI().

◆ instance

InstanceScript* npc_forest_frog::npc_forest_frogAI::instance

Referenced by DoSpawnRandom(), and npc_forest_frogAI().

◆ PlayerGUID

ObjectGuid npc_forest_frog::npc_forest_frogAI::PlayerGUID

Referenced by SpellHit(), and UpdateAI().