diff options
author | Shocker <none@none> | 2010-08-29 06:01:14 +0300 |
---|---|---|
committer | Shocker <none@none> | 2010-08-29 06:01:14 +0300 |
commit | f81dcf55bb0aef9e23f30f152b9d560ceb68ccb0 (patch) | |
tree | 4d1a134dc8c0338ace7c735a3e17b4d0d36eb7b4 /src | |
parent | 2d877bbbfd0babec91011d472870e230a314d512 (diff) |
Add HealReceived event for Creature AI to be used in scripts
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/AI/CreatureAI.h | 3 | ||||
-rw-r--r-- | src/server/game/AI/EventAI/CreatureEventAI.h | 1 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 3 |
3 files changed, 7 insertions, 0 deletions
diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h index c257af0fbe0..df2ee13836e 100644 --- a/src/server/game/AI/CreatureAI.h +++ b/src/server/game/AI/CreatureAI.h @@ -103,6 +103,9 @@ class CreatureAI : public UnitAI // for attack reaction use AttackedBy called for not DOT damage in Unit::DealDamage also virtual void DamageTaken(Unit * /*done_by*/, uint32 & /*damage*/) {} + // Called when the creature receives heal + virtual void HealReceived(Unit* /*done_by*/, uint32& /*addhealth*/) {} + // Called when the creature is killed virtual void JustDied(Unit *) {} diff --git a/src/server/game/AI/EventAI/CreatureEventAI.h b/src/server/game/AI/EventAI/CreatureEventAI.h index 1c3d1f4e6e4..493a7f7c29e 100644 --- a/src/server/game/AI/EventAI/CreatureEventAI.h +++ b/src/server/game/AI/EventAI/CreatureEventAI.h @@ -608,6 +608,7 @@ class CreatureEventAI : public CreatureAI void MoveInLineOfSight(Unit *who); void SpellHit(Unit* pUnit, const SpellEntry* pSpell); void DamageTaken(Unit* done_by, uint32& damage); + void HealReceived(Unit* /*done_by*/, uint32& /*addhealth*/) {} void UpdateAI(const uint32 diff); void ReceiveEmote(Player* pPlayer, uint32 text_emote); static int Permissible(const Creature *); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 65d10d94e44..3593e1f7996 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -9912,6 +9912,9 @@ int32 Unit::DealHeal(Unit *pVictim, uint32 addhealth) { int32 gain = 0; + if (pVictim->GetTypeId() == TYPEID_UNIT && pVictim->ToCreature()->IsAIEnabled) + pVictim->ToCreature()->AI()->HealReceived(this, addhealth); + if (addhealth) gain = pVictim->ModifyHealth(int32(addhealth)); |