aboutsummaryrefslogtreecommitdiff
path: root/src/game/ScriptedSimpleAI.h
diff options
context:
space:
mode:
authorRat <none@none>2010-01-19 11:36:05 +0100
committerRat <none@none>2010-01-19 11:36:05 +0100
commit0cc053ea4d42ce405a915857f75ee00f0f65666b (patch)
tree7c25955ee5db618deee963f515ba061fbb1e1e8c /src/game/ScriptedSimpleAI.h
parentf5dea61b66a616110cfc82ff640ec448b1efa702 (diff)
*Integrate Script system to Core
-added ScriptMgr for loading scripts -removed bindings -moved script system to src/game -moved scripts to src/scripts -VC project files updated -cmakes updated (not 100% done yet) NOTE to Devs: -file locations changed -precompiled renamed to ScriptedPch -ecsort_ai renamed to ScriptedEscortAI -follower_ai renamed to ScriptedFollowerAI -guard_ai renamed to ScriptedGuardAI -simple_ai renamed to ScriptedSimpleAI -sc_creature renamed to ScriptedCreature -sc_gossip renamed to ScriptedGossip -sc_instance renamed to ScriptedInstance *use the new headers in scripts, thank you NOTE to ALL: cmake not fully tested, please report any errors with it could make creashes, incompability USE AT YOUR OWN RISK before further tests!! --HG-- branch : trunk
Diffstat (limited to 'src/game/ScriptedSimpleAI.h')
-rw-r--r--src/game/ScriptedSimpleAI.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/game/ScriptedSimpleAI.h b/src/game/ScriptedSimpleAI.h
new file mode 100644
index 00000000000..3a2e8a9341a
--- /dev/null
+++ b/src/game/ScriptedSimpleAI.h
@@ -0,0 +1,71 @@
+/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+* This program is free software licensed under GPL version 2
+* Please see the included DOCS/LICENSE.TXT for more information */
+
+#ifndef SC_SIMPLEAI_H
+#define SC_SIMPLEAI_H
+
+enum CastTarget
+{
+ CAST_SELF = 0, //Self cast
+ CAST_HOSTILE_TARGET, //Our current target (ie: highest aggro)
+ CAST_HOSTILE_SECOND_AGGRO, //Second highest aggro (generaly used for cleaves and some special attacks)
+ CAST_HOSTILE_LAST_AGGRO, //Dead last on aggro (no idea what this could be used for)
+ CAST_HOSTILE_RANDOM, //Just any random target on our threat list
+ CAST_FRIENDLY_RANDOM, //NOT YET IMPLEMENTED
+
+ //Special cases
+ CAST_KILLEDUNIT_VICTIM, //Only works within KilledUnit function
+ CAST_JUSTDIED_KILLER, //Only works within JustDied function
+};
+
+struct TRINITY_DLL_DECL SimpleAI : public ScriptedAI
+{
+ SimpleAI(Creature *c);// : ScriptedAI(c);
+
+ void Reset();
+
+ void EnterCombat(Unit *who);
+
+ void KilledUnit(Unit *victim);
+
+ void DamageTaken(Unit *killer, uint32 &damage);
+
+ void UpdateAI(const uint32 diff);
+
+public:
+
+ int32 Aggro_TextId[3];
+ uint32 Aggro_Sound[3];
+
+ int32 Death_TextId[3];
+ uint32 Death_Sound[3];
+ uint32 Death_Spell;
+ uint32 Death_Target_Type;
+
+ int32 Kill_TextId[3];
+ uint32 Kill_Sound[3];
+ uint32 Kill_Spell;
+ uint32 Kill_Target_Type;
+
+ struct SimpleAI_Spell
+ {
+ uint32 Spell_Id; //Spell ID to cast
+ int32 First_Cast; //Delay for first cast
+ uint32 Cooldown; //Cooldown between casts
+ uint32 CooldownRandomAddition; //Random addition to cooldown (in range from 0 - CooldownRandomAddition)
+ uint32 Cast_Target_Type; //Target type (note that certain spells may ignore this)
+ bool InterruptPreviousCast; //Interrupt a previous cast if this spell needs to be cast
+ bool Enabled; //Spell enabled or disabled (default: false)
+
+ //3 texts to many?
+ int32 TextId[3];
+ uint32 Text_Sound[3];
+ }Spell[10];
+
+protected:
+ uint32 Spell_Timer[10];
+};
+
+#endif
+