added license to scripts and shaders
[dd2d.git] / data / scripts / monster / sergeant.dacs
blobc00572ae7de2c9ed82245058c510b70d4cdc9fe3
1 /* DooM2D: Midnight on the Firing Line
2  * coded by Ketmar // Invisible Vector <ketmar@ketmar.no-ip.org>
3  * Understanding is not required. Only obedience.
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 module monsterSergeant is "monster" "Sergeant";
20 import apiActor;
21 import aiMonster;
24 // setup actor animations
25 public void initializeAnim () {
26   // sleep
27   animClearFrames("monster", "Sergeant", "sleep");
28   // left
29   animAddFrame("monster", "Sergeant", "sleep", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/shared/sposa1a2.vga");
30   animAddFrame("monster", "Sergeant", "sleep", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/shared/sposa1a2.vga");
31   animAddFrame("monster", "Sergeant", "sleep", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/shared/sposa1a2.vga");
32   animAddFrame("monster", "Sergeant", "sleep", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/shared/sposb1b2.vga");
33   animAddFrame("monster", "Sergeant", "sleep", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/shared/sposb1b2.vga");
34   animAddFrame("monster", "Sergeant", "sleep", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/shared/sposb1b2.vga");
35   // right
36   animAddFrame("monster", "Sergeant", "sleep", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/shared/sposa1a2_mirrored.vga");
37   animAddFrame("monster", "Sergeant", "sleep", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/shared/sposa1a2_mirrored.vga");
38   animAddFrame("monster", "Sergeant", "sleep", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/shared/sposa1a2_mirrored.vga");
39   animAddFrame("monster", "Sergeant", "sleep", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/shared/sposb1b2_mirrored.vga");
40   animAddFrame("monster", "Sergeant", "sleep", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/shared/sposb1b2_mirrored.vga");
41   animAddFrame("monster", "Sergeant", "sleep", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/shared/sposb1b2_mirrored.vga");
42   // go
43   animClearFrames("monster", "Sergeant", "go");
44   // left
45   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/shared/sposa1a2.vga");
46   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/shared/sposa1a2.vga");
47   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/shared/sposb1b2.vga");
48   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/shared/sposb1b2.vga");
49   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/go/sposd1d2.vga");
50   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/go/sposd1d2.vga");
51   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/shared/sposa1a2.vga");
52   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/shared/sposa1a2.vga");
53   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/go/sposc1c2.vga");
54   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/go/sposc1c2.vga");
55   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/go/sposd1d2.vga");
56   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/go/sposd1d2.vga");
57   // right
58   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/shared/sposa1a2_mirrored.vga");
59   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/shared/sposa1a2_mirrored.vga");
60   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/shared/sposb1b2_mirrored.vga");
61   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/shared/sposb1b2_mirrored.vga");
62   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/go/sposd1d2_mirrored.vga");
63   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/go/sposd1d2_mirrored.vga");
64   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/shared/sposa1a2_mirrored.vga");
65   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/shared/sposa1a2_mirrored.vga");
66   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/go/sposc1c2_mirrored.vga");
67   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/go/sposc1c2_mirrored.vga");
68   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/go/sposd1d2_mirrored.vga");
69   animAddFrame("monster", "Sergeant", "go", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/go/sposd1d2_mirrored.vga");
70   // pain
71   animClearFrames("monster", "Sergeant", "pain");
72   // left
73   animAddFrame("monster", "Sergeant", "pain", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/pain/sposg1g2.vga");
74   // right
75   animAddFrame("monster", "Sergeant", "pain", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/pain/sposg1g2_mirrored.vga");
76   // wait
77   animClearFrames("monster", "Sergeant", "wait");
78   // left
79   animAddFrame("monster", "Sergeant", "wait", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/shared/sposa1a2.vga");
80   // right
81   animAddFrame("monster", "Sergeant", "wait", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/shared/sposa1a2_mirrored.vga");
82   // attack
83   animClearFrames("monster", "Sergeant", "attack");
84   // left
85   animAddFrame("monster", "Sergeant", "attack", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/attack/spose1e2.vga");
86   animAddFrame("monster", "Sergeant", "attack", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/attack/spose1e2.vga");
87   animAddFrame("monster", "Sergeant", "attack", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/attack/spose1e2.vga");
88   animAddFrame("monster", "Sergeant", "attack", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/attack/spose1e2.vga");
89   animAddFrame("monster", "Sergeant", "attack", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/attack/spose1e2.vga");
90   animAddFrame("monster", "Sergeant", "attack", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/attack/sposf1f2.vga");
91   // right
92   animAddFrame("monster", "Sergeant", "attack", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/attack/spose1e2_mirrored.vga");
93   animAddFrame("monster", "Sergeant", "attack", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/attack/spose1e2_mirrored.vga");
94   animAddFrame("monster", "Sergeant", "attack", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/attack/spose1e2_mirrored.vga");
95   animAddFrame("monster", "Sergeant", "attack", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/attack/spose1e2_mirrored.vga");
96   animAddFrame("monster", "Sergeant", "attack", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/attack/spose1e2_mirrored.vga");
97   animAddFrame("monster", "Sergeant", "attack", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/attack/sposf1f2_mirrored.vga");
98   // die
99   animClearFrames("monster", "Sergeant", "die");
100   // left
101   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/die/sposh0.vga");
102   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/die/sposh0.vga");
103   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/die/sposh0.vga");
104   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/die/sposi0.vga");
105   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/die/sposi0.vga");
106   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/die/sposi0.vga");
107   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/die/sposj0.vga");
108   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/die/sposj0.vga");
109   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/die/sposj0.vga");
110   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/die/sposk0.vga");
111   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/die/sposk0.vga");
112   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/die/sposk0.vga");
113   // right
114   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/die/sposh0.vga");
115   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/die/sposh0.vga");
116   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/die/sposh0.vga");
117   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/die/sposi0.vga");
118   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/die/sposi0.vga");
119   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/die/sposi0.vga");
120   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/die/sposj0.vga");
121   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/die/sposj0.vga");
122   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/die/sposj0.vga");
123   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/die/sposk0.vga");
124   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/die/sposk0.vga");
125   animAddFrame("monster", "Sergeant", "die", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/die/sposk0.vga");
126   // slop
127   animClearFrames("monster", "Sergeant", "slop");
128   // left
129   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposm0.vga");
130   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposm0.vga");
131   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposm0.vga");
132   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposn0.vga");
133   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposn0.vga");
134   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposn0.vga");
135   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposo0.vga");
136   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposo0.vga");
137   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposo0.vga");
138   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposp0.vga");
139   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposp0.vga");
140   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposp0.vga");
141   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposr0.vga");
142   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposr0.vga");
143   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposr0.vga");
144   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposs0.vga");
145   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposs0.vga");
146   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/sposs0.vga");
147   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/spost0.vga");
148   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/spost0.vga");
149   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/slop/spost0.vga");
150   // right
151   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposm0.vga");
152   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposm0.vga");
153   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposm0.vga");
154   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposn0.vga");
155   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposn0.vga");
156   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposn0.vga");
157   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposo0.vga");
158   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposo0.vga");
159   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposo0.vga");
160   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposp0.vga");
161   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposp0.vga");
162   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposp0.vga");
163   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposr0.vga");
164   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposr0.vga");
165   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposr0.vga");
166   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposs0.vga");
167   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposs0.vga");
168   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/sposs0.vga");
169   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/spost0.vga");
170   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/spost0.vga");
171   animAddFrame("monster", "Sergeant", "slop", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/slop/spost0.vga");
172   // dead
173   animClearFrames("monster", "Sergeant", "dead");
174   // left
175   animAddFrame("monster", "Sergeant", "dead", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/dead/sposl0.vga");
176   // right
177   animAddFrame("monster", "Sergeant", "dead", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/dead/sposl0.vga");
178   // mess
179   animClearFrames("monster", "Sergeant", "mess");
180   // left
181   animAddFrame("monster", "Sergeant", "mess", ACTOR_DIR_LEFT, "monsters/sergeant/graphics/mess/sposu0.vga");
182   // right
183   animAddFrame("monster", "Sergeant", "mess", ACTOR_DIR_RIGHT, "monsters/sergeant/graphics/mess/sposu0.vga");
187 // change actor animation
188 public void setAnim (Actor me, string state) {
189   me.animidx = 0;
190   switch (state) {
191     case "sleep": me.animname = "sleep"; me.animstr = "AAABBB"; break;
192     case "go": me.animname = "go"; me.animstr = "AABBDDAACCDD"; break;
193     case "pain": me.animname = "pain"; me.animstr = "G"; break;
194     case "wait": me.animname = "wait"; me.animstr = "A"; break;
195     case "attack": me.animname = "attack"; me.animstr = "EEEEEF"; break;
196     case "die": me.animname = "die"; me.animstr = "HHHIIIJJJKKK"; break;
197     case "slop": me.animname = "slop"; me.animstr = "MMMNNNOOOPPPRRRSSSTTT"; break;
198     case "dead": me.animname = "dead"; me.animstr = "L"; break;
199     case "mess": me.animname = "mess"; me.animstr = "U"; break;
200     case "run": me.animname = "go"; me.animstr = "AABBDDAACCDD"; break;
201     case "climb": me.animname = "go"; me.animstr = "AABBDDAACCDD"; break;
202     case "runout": me.animname = "go"; me.animstr = "AABBDDAACCDD"; break;
203     case "shoot": me.animname = "attack"; me.animstr = "EEEEEF"; break;
204     case "revive": me.animname = "revive"; me.animstr = "KKKJJJIIIHHH"; break;
205     default: me.animname = "sleep"; me.animstr = "AAABBB"; break;
206   }
207   me.actorSetAnimation(state);
211 // setup actor properties
212 public void initialize (Actor me) {
213   // `classname` and `classtype` will be set by the engine
214   //me.classname = "Sergeant";
215   //me.classtype = "monster";
216   me.radius = 10;
217   me.height = 28;
218   me.hitpoints = me.life = 20;
219   me.painin = 10;
220   me.xvel = 3;
221   me.yvel = 10;
222   me.slophit = 30;
223   me.painout = 0;
224   me.angertime = 90;
225   me.setAnim("sleep");
229 // thinker
230 public void think (Actor me) {
231   monsterThink(me);