aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2019-05-24 20:52:54 +0200
committerjackpoz <giacomopoz@gmail.com>2019-05-24 20:52:54 +0200
commit507a56d62764f63113d35dfcca9273b8d0b16cc5 (patch)
tree84fbd1323c26f3b8d0b70e91acaab8126170b7fb
parent45887846b69bce88086121f87fa40d923d6ac8b8 (diff)
Core/SmartAI: Implement SMART_EVENT_SUMMONED_UNIT and SMART_EVENT_SUMMON_DESPAWNED for GameObject owners
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.cpp10
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.h6
2 files changed, 16 insertions, 0 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp
index 461e3c2b01f..d768ae004ab 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.cpp
+++ b/src/server/game/AI/SmartScripts/SmartAI.cpp
@@ -1081,6 +1081,16 @@ void SmartGameObjectAI::SpellHit(Unit* unit, SpellInfo const* spellInfo)
GetScript()->ProcessEventsFor(SMART_EVENT_SPELLHIT, unit, 0, 0, false, spellInfo);
}
+void SmartGameObjectAI::JustSummoned(Creature* creature)
+{
+ GetScript()->ProcessEventsFor(SMART_EVENT_SUMMONED_UNIT, creature);
+}
+
+void SmartGameObjectAI::SummonedCreatureDespawn(Creature* unit)
+{
+ GetScript()->ProcessEventsFor(SMART_EVENT_SUMMON_DESPAWNED, unit, unit->GetEntry());
+}
+
class SmartTrigger : public AreaTriggerScript
{
public:
diff --git a/src/server/game/AI/SmartScripts/SmartAI.h b/src/server/game/AI/SmartScripts/SmartAI.h
index 9f083a9c9a0..6deb81c0f50 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.h
+++ b/src/server/game/AI/SmartScripts/SmartAI.h
@@ -266,6 +266,12 @@ class TC_GAME_API SmartGameObjectAI : public GameObjectAI
void EventInform(uint32 eventId) override;
void SpellHit(Unit* unit, SpellInfo const* spellInfo) override;
+ // Called when the gameobject summon successfully other creature
+ void JustSummoned(Creature* creature) override;
+
+ // Called when a summoned creature dissapears (UnSommoned)
+ void SummonedCreatureDespawn(Creature* unit) override;
+
void SetGossipReturn(bool val) { _gossipReturn = val; }
private: