mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 18:36:31 +01:00
*Use ai function issummonedby to handle creature trigger spells.
--HG-- branch : trunk
This commit is contained in:
@@ -104,6 +104,7 @@ class TRINITY_DLL_SPEC CreatureAI : public UnitAI
|
||||
|
||||
// Called when the creature summon successfully other creature
|
||||
virtual void JustSummoned(Creature* ) {}
|
||||
virtual void IsSummonedBy(Unit *summoner) {}
|
||||
|
||||
virtual void SummonedCreatureDespawn(Creature* /*unit*/) {}
|
||||
|
||||
|
||||
@@ -22,10 +22,9 @@
|
||||
#include "Creature.h"
|
||||
#include "TemporarySummon.h"
|
||||
|
||||
PassiveAI::PassiveAI(Creature *c) : CreatureAI(c)
|
||||
{
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
}
|
||||
PassiveAI::PassiveAI(Creature *c) : CreatureAI(c) { me->SetReactState(REACT_PASSIVE); }
|
||||
PossessedAI::PossessedAI(Creature *c) : CreatureAI(c) { me->SetReactState(REACT_PASSIVE); }
|
||||
NullCreatureAI::NullCreatureAI(Creature *c) : CreatureAI(c) { me->SetReactState(REACT_PASSIVE); }
|
||||
|
||||
void PassiveAI::UpdateAI(const uint32)
|
||||
{
|
||||
@@ -75,12 +74,8 @@ void CritterAI::EnterEvadeMode()
|
||||
CreatureAI::EnterEvadeMode();
|
||||
}
|
||||
|
||||
void TriggerAI::UpdateAI(const uint32 diff)
|
||||
void TriggerAI::IsSummonedBy(Unit *summoner)
|
||||
{
|
||||
if(!casted)
|
||||
{
|
||||
casted = true;
|
||||
if(me->m_spells[0] && me->isSummon())
|
||||
me->CastSpell(me, me->m_spells[0], false, 0, 0, ((TempSummon*)me)->GetSummonerGUID());
|
||||
}
|
||||
if(me->m_spells[0])
|
||||
me->CastSpell(me, me->m_spells[0], false, 0, 0, summoner->GetGUID());
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ class TRINITY_DLL_SPEC PassiveAI : public CreatureAI
|
||||
class TRINITY_DLL_DECL PossessedAI : public CreatureAI
|
||||
{
|
||||
public:
|
||||
explicit PossessedAI(Creature *c) : CreatureAI(c) {}
|
||||
explicit PossessedAI(Creature *c);
|
||||
|
||||
void MoveInLineOfSight(Unit *) {}
|
||||
void AttackStart(Unit *target);
|
||||
@@ -52,10 +52,10 @@ class TRINITY_DLL_DECL PossessedAI : public CreatureAI
|
||||
static int Permissible(const Creature *) { return PERMIT_BASE_IDLE; }
|
||||
};
|
||||
|
||||
class TRINITY_DLL_DECL NullCreatureAI : public CreatureAI
|
||||
class TRINITY_DLL_SPEC NullCreatureAI : public CreatureAI
|
||||
{
|
||||
public:
|
||||
explicit NullCreatureAI(Creature *c) : CreatureAI(c) {}
|
||||
explicit NullCreatureAI(Creature *c);
|
||||
|
||||
void MoveInLineOfSight(Unit *) {}
|
||||
void AttackStart(Unit *) {}
|
||||
@@ -75,13 +75,11 @@ class TRINITY_DLL_DECL CritterAI : public PassiveAI
|
||||
void EnterEvadeMode();
|
||||
};
|
||||
|
||||
class TRINITY_DLL_DECL TriggerAI : public NullCreatureAI
|
||||
class TRINITY_DLL_SPEC TriggerAI : public NullCreatureAI
|
||||
{
|
||||
public:
|
||||
explicit TriggerAI(Creature *c) : NullCreatureAI(c), casted(false) {}
|
||||
void UpdateAI(const uint32);
|
||||
private:
|
||||
bool casted;
|
||||
explicit TriggerAI(Creature *c) : NullCreatureAI(c) {}
|
||||
void IsSummonedBy(Unit *summoner);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -215,6 +215,7 @@ void TempSummon::InitSummon()
|
||||
if(owner->GetTypeId()==TYPEID_UNIT && ((Creature*)owner)->IsAIEnabled)
|
||||
((Creature*)owner)->AI()->JustSummoned(this);
|
||||
}
|
||||
AI()->IsSummonedBy(owner);
|
||||
}
|
||||
|
||||
void TempSummon::SetTempSummonType(TempSummonType type)
|
||||
|
||||
Reference in New Issue
Block a user