Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
PassiveAI.cpp
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#include "Creature.h"
7#include "PassiveAI.h"
8#include "TemporarySummon.h"
9
13
15{
16 if (me->IsInCombat() && me->getAttackers().empty())
18}
19
21{
22 me->Attack(target, true);
23}
24
26{
27 if (me->GetVictim())
28 {
29 if (!me->IsValidAttackTarget(me->GetVictim()))
30 me->AttackStop();
31 else
33 }
34}
35
37{
38 // We died while possessed, disable our loot
40}
41
43{
44 // We killed a creature, disable victim's loot
45 if (victim->GetTypeId() == TypeID::TYPEID_UNIT)
47}
48
50{
51 if (!me->HasUnitState(UNIT_STATE_FLEEING))
52 me->SetControlled(true, UNIT_STATE_FLEEING);
53}
54
56{
57 if (me->HasUnitState(UNIT_STATE_FLEEING))
58 me->SetControlled(false, UNIT_STATE_FLEEING);
60}
61
63{
64 if (me->m_spells[0])
65 me->CastSpell(me, me->m_spells[0], false, 0, 0, summoner->GetGUID());
66}
std::uint32_t uint32
Definition Define.h:77
@ TYPEID_UNIT
Definition Object.h:54
@ UNIT_DYNFLAG_LOOTABLE
@ UNIT_STATE_FLEEING
Definition Unit.h:519
@ REACT_PASSIVE
Definition Unit.h:1156
@ OBJECT_FIELD_DYNAMIC_FLAGS
CreatureAI(Creature *creature)
Definition CreatureAI.h:69
Creature *const me
Definition CreatureAI.h:56
virtual void EnterEvadeMode()
void DamageTaken(Unit *done_by, uint32 &) OVERRIDE
Definition PassiveAI.cpp:49
void EnterEvadeMode() OVERRIDE
Definition PassiveAI.cpp:55
NullCreatureAI(Creature *c)
Definition PassiveAI.cpp:12
uint64 GetGUID() const
Definition Object.h:119
TypeID GetTypeId() const
Definition Object.h:131
void RemoveFlag(uint16 index, uint32 oldFlag)
Definition Object.cpp:1280
PassiveAI(Creature *c)
Definition PassiveAI.cpp:10
void UpdateAI(uint32) OVERRIDE
== Triggered Actions Requested ==================
Definition PassiveAI.cpp:14
void JustDied(Unit *) OVERRIDE
Definition PassiveAI.cpp:36
PossessedAI(Creature *c)
Definition PassiveAI.cpp:11
void UpdateAI(uint32) OVERRIDE
== Triggered Actions Requested ==================
Definition PassiveAI.cpp:25
void AttackStart(Unit *target) OVERRIDE
Definition PassiveAI.cpp:20
void KilledUnit(Unit *victim) OVERRIDE
Definition PassiveAI.cpp:42
void IsSummonedBy(Unit *summoner) OVERRIDE
Definition PassiveAI.cpp:62
void DoMeleeAttackIfReady()
Definition UnitAI.cpp:28
Definition Unit.h:1367