aboutsummaryrefslogtreecommitdiff
path: root/src/game/AggressorAI.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-08-23 14:20:07 -0500
committermegamage <none@none>2009-08-23 14:20:07 -0500
commit08539ec0a4eabc903d8fbaf34aba465f20e0b698 (patch)
tree8869c354aef81032c26aa085bd201b5ff94e8946 /src/game/AggressorAI.cpp
parent4a85a779c1c3fc26b0b7a61115fc2e5b47d1840f (diff)
*Rename some ai functions.
--HG-- branch : trunk
Diffstat (limited to 'src/game/AggressorAI.cpp')
-rw-r--r--src/game/AggressorAI.cpp150
1 files changed, 0 insertions, 150 deletions
diff --git a/src/game/AggressorAI.cpp b/src/game/AggressorAI.cpp
deleted file mode 100644
index 3ede976a229..00000000000
--- a/src/game/AggressorAI.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
- *
- * Copyright (C) 2008-2009 Trinity <http://www.trinitycore.org/>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "AggressorAI.h"
-#include "SpellMgr.h"
-
-int AggressorAI::Permissible(const Creature *creature)
-{
- // have some hostile factions, it will be selected by IsHostileTo check at MoveInLineOfSight
- if( !creature->isCivilian() && !creature->IsNeutralToAll() )
- return PERMIT_BASE_PROACTIVE;
-
- return PERMIT_BASE_NO;
-}
-
-void AggressorAI::UpdateAI(const uint32 /*diff*/)
-{
- if(!UpdateVictim())
- return;
-
- DoMeleeAttackIfReady();
-}
-
-int SpellAI::Permissible(const Creature *creature)
-{
- return PERMIT_BASE_NO;
-}
-
-void SpellAI::InitializeAI()
-{
- for(uint32 i = 0; i < CREATURE_MAX_SPELLS; ++i)
- if(me->m_spells[i] && GetSpellStore()->LookupEntry(me->m_spells[i]))
- spells.push_back(me->m_spells[i]);
-
- CreatureAI::InitializeAI();
-}
-
-void SpellAI::Reset()
-{
- events.Reset();
-}
-
-void SpellAI::JustDied(Unit *killer)
-{
- for(SpellVct::iterator i = spells.begin(); i != spells.end(); ++i)
- if(AISpellInfo[*i].condition == AICOND_DIE)
- me->CastSpell(killer, *i, true);
-}
-
-void SpellAI::EnterCombat(Unit *who)
-{
- for(SpellVct::iterator i = spells.begin(); i != spells.end(); ++i)
- {
- if(AISpellInfo[*i].condition == AICOND_AGGRO)
- me->CastSpell(who, *i, false);
- else if(AISpellInfo[*i].condition == AICOND_COMBAT)
- events.ScheduleEvent(*i, AISpellInfo[*i].cooldown + rand()%AISpellInfo[*i].cooldown);
- }
-}
-
-void SpellAI::UpdateAI(const uint32 diff)
-{
- if(!UpdateVictim())
- return;
-
- events.Update(diff);
-
- if(me->hasUnitState(UNIT_STAT_CASTING))
- return;
-
- if(uint32 spellId = events.ExecuteEvent())
- {
- DoCast(spellId);
- events.ScheduleEvent(spellId, AISpellInfo[spellId].cooldown + rand()%AISpellInfo[spellId].cooldown);
- }
- else
- DoMeleeAttackIfReady();
-}
-
-void SpellCasterAI::InitializeAI()
-{
- SpellAI::InitializeAI();
- float m_attackDist = 30.0f;
- for(SpellVct::iterator itr = spells.begin(); itr != spells.end(); ++itr)
- {
- if (AISpellInfo[*itr].condition == AICOND_COMBAT && m_attackDist > GetAISpellInfo(*itr)->maxRange)
- m_attackDist = GetAISpellInfo(*itr)->maxRange;
- }
- if (m_attackDist == 30.0f)
- m_attackDist = MELEE_RANGE;
-}
-
-void SpellCasterAI::EnterCombat(Unit *who)
-{
- if (spells.empty())
- return;
-
- uint32 spell = rand() % spells.size();
- uint32 count = 0;
- for(SpellVct::iterator itr = spells.begin(); itr != spells.end(); ++itr, ++count)
- {
- if(AISpellInfo[*itr].condition == AICOND_AGGRO)
- me->CastSpell(who, *itr, false);
- else if (AISpellInfo[*itr].condition == AICOND_COMBAT)
- {
- uint32 cooldown = GetAISpellInfo(*itr)->realCooldown;
- if (count == spell)
- {
- DoCast(spells[spell]);
- cooldown += me->GetCurrentSpellCastTime(*itr);
- }
- events.ScheduleEvent(*itr, cooldown);
- }
- }
-}
-
-void SpellCasterAI::UpdateAI(const uint32 diff)
-{
- if(!UpdateVictim())
- return;
-
- events.Update(diff);
-
- if(me->hasUnitState(UNIT_STAT_CASTING))
- return;
-
- if(uint32 spellId = events.ExecuteEvent())
- {
- DoCast(spellId);
- uint32 casttime = me->GetCurrentSpellCastTime(spellId);
- events.ScheduleEvent(spellId, (casttime ? casttime : 500) + GetAISpellInfo(spellId)->realCooldown);
- }
-}