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.
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.
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.
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/>.
18 module monsterChaingunner is "monster" "Chaingunner";
24 // setup actor animations
25 public void initializeAnim () {
27 animClearFrames("monster", "Chaingunner", "sleep");
29 animAddFrame("monster", "Chaingunner", "sleep", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/shared/cposa1.vga");
30 animAddFrame("monster", "Chaingunner", "sleep", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/shared/cposa1.vga");
31 animAddFrame("monster", "Chaingunner", "sleep", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/shared/cposa1.vga");
32 animAddFrame("monster", "Chaingunner", "sleep", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/shared/cposb1.vga");
33 animAddFrame("monster", "Chaingunner", "sleep", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/shared/cposb1.vga");
34 animAddFrame("monster", "Chaingunner", "sleep", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/shared/cposb1.vga");
36 animAddFrame("monster", "Chaingunner", "sleep", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/shared/cposa2.vga");
37 animAddFrame("monster", "Chaingunner", "sleep", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/shared/cposa2.vga");
38 animAddFrame("monster", "Chaingunner", "sleep", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/shared/cposa2.vga");
39 animAddFrame("monster", "Chaingunner", "sleep", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/shared/cposb2.vga");
40 animAddFrame("monster", "Chaingunner", "sleep", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/shared/cposb2.vga");
41 animAddFrame("monster", "Chaingunner", "sleep", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/shared/cposb2.vga");
43 animClearFrames("monster", "Chaingunner", "go");
45 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/shared/cposa1.vga");
46 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/shared/cposa1.vga");
47 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/shared/cposb1.vga");
48 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/shared/cposb1.vga");
49 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/go/cposd1.vga");
50 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/go/cposd1.vga");
51 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/shared/cposa1.vga");
52 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/shared/cposa1.vga");
53 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/go/cposc1.vga");
54 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/go/cposc1.vga");
55 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/go/cposd1.vga");
56 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/go/cposd1.vga");
58 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/shared/cposa2.vga");
59 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/shared/cposa2.vga");
60 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/shared/cposb2.vga");
61 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/shared/cposb2.vga");
62 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/go/cposd2.vga");
63 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/go/cposd2.vga");
64 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/shared/cposa2.vga");
65 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/shared/cposa2.vga");
66 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/go/cposc2.vga");
67 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/go/cposc2.vga");
68 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/go/cposd2.vga");
69 animAddFrame("monster", "Chaingunner", "go", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/go/cposd2.vga");
71 animClearFrames("monster", "Chaingunner", "pain");
73 animAddFrame("monster", "Chaingunner", "pain", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/pain/cposg1.vga");
75 animAddFrame("monster", "Chaingunner", "pain", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/pain/cposg2.vga");
77 animClearFrames("monster", "Chaingunner", "wait");
79 animAddFrame("monster", "Chaingunner", "wait", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/shared/cposa1.vga");
81 animAddFrame("monster", "Chaingunner", "wait", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/shared/cposa2.vga");
83 animClearFrames("monster", "Chaingunner", "attack");
85 animAddFrame("monster", "Chaingunner", "attack", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/attack/cpose1.vga");
86 animAddFrame("monster", "Chaingunner", "attack", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/attack/cposf1.vga");
88 animAddFrame("monster", "Chaingunner", "attack", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/attack/cpose2.vga");
89 animAddFrame("monster", "Chaingunner", "attack", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/attack/cposf2.vga");
91 animClearFrames("monster", "Chaingunner", "die");
93 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposh0.vga");
94 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposh0.vga");
95 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposh0.vga");
96 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposi0.vga");
97 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposi0.vga");
98 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposi0.vga");
99 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposj0.vga");
100 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposj0.vga");
101 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposj0.vga");
102 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposk0.vga");
103 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposk0.vga");
104 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposk0.vga");
105 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposl0.vga");
106 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposl0.vga");
107 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposl0.vga");
108 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposm0.vga");
109 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposm0.vga");
110 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/die/cposm0.vga");
112 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposh0.vga");
113 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposh0.vga");
114 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposh0.vga");
115 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposi0.vga");
116 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposi0.vga");
117 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposi0.vga");
118 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposj0.vga");
119 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposj0.vga");
120 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposj0.vga");
121 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposk0.vga");
122 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposk0.vga");
123 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposk0.vga");
124 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposl0.vga");
125 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposl0.vga");
126 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposl0.vga");
127 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposm0.vga");
128 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposm0.vga");
129 animAddFrame("monster", "Chaingunner", "die", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/die/cposm0.vga");
131 animClearFrames("monster", "Chaingunner", "slop");
133 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/slop/cposo0.vga");
134 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/slop/cposo0.vga");
135 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/slop/cposo0.vga");
136 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/slop/cposp0.vga");
137 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/slop/cposp0.vga");
138 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/slop/cposp0.vga");
139 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/slop/cposq0.vga");
140 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/slop/cposq0.vga");
141 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/slop/cposq0.vga");
142 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/slop/cposr0.vga");
143 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/slop/cposr0.vga");
144 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/slop/cposr0.vga");
145 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/slop/cposs0.vga");
146 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/slop/cposs0.vga");
147 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/slop/cposs0.vga");
149 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/slop/cposo0.vga");
150 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/slop/cposo0.vga");
151 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/slop/cposo0.vga");
152 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/slop/cposp0.vga");
153 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/slop/cposp0.vga");
154 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/slop/cposp0.vga");
155 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/slop/cposq0.vga");
156 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/slop/cposq0.vga");
157 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/slop/cposq0.vga");
158 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/slop/cposr0.vga");
159 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/slop/cposr0.vga");
160 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/slop/cposr0.vga");
161 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/slop/cposs0.vga");
162 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/slop/cposs0.vga");
163 animAddFrame("monster", "Chaingunner", "slop", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/slop/cposs0.vga");
165 animClearFrames("monster", "Chaingunner", "dead");
167 animAddFrame("monster", "Chaingunner", "dead", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/dead/cposn0.vga");
169 animAddFrame("monster", "Chaingunner", "dead", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/dead/cposn0.vga");
171 animClearFrames("monster", "Chaingunner", "mess");
173 animAddFrame("monster", "Chaingunner", "mess", ACTOR_DIR_LEFT, "monsters/chaingunner/graphics/mess/cpost0.vga");
175 animAddFrame("monster", "Chaingunner", "mess", ACTOR_DIR_RIGHT, "monsters/chaingunner/graphics/mess/cpost0.vga");
179 // change actor animation
180 public void setAnim (Actor me, string state) {
183 case "sleep": me.animname = "sleep"; me.animstr = "AAABBB"; break;
184 case "go": me.animname = "go"; me.animstr = "AABBDDAACCDD"; break;
185 case "pain": me.animname = "pain"; me.animstr = "G"; break;
186 case "wait": me.animname = "wait"; me.animstr = "A"; break;
187 case "attack": me.animname = "attack"; me.animstr = "EF"; break;
188 case "die": me.animname = "die"; me.animstr = "HHHIIIJJJKKKLLLMMM"; break;
189 case "slop": me.animname = "slop"; me.animstr = "OOOPPPQQQRRRSSS"; break;
190 case "dead": me.animname = "dead"; me.animstr = "N"; break;
191 case "mess": me.animname = "mess"; me.animstr = "T"; break;
192 case "run": me.animname = "go"; me.animstr = "AABBDDAACCDD"; break;
193 case "climb": me.animname = "go"; me.animstr = "AABBDDAACCDD"; break;
194 case "runout": me.animname = "go"; me.animstr = "AABBDDAACCDD"; break;
195 case "shoot": me.animname = "attack"; me.animstr = "EF"; break;
196 case "revive": me.animname = "revive"; me.animstr = "MMMLLLKKKJJJIIIHHH"; break;
197 default: me.animname = "sleep"; me.animstr = "AAABBB"; break;
199 me.actorSetAnimation(state);
203 // setup actor properties
204 public void initialize (Actor me) {
205 // `classname` and `classtype` will be set by the engine
206 //me.classname = "Chaingunner";
207 //me.classtype = "monster";
210 me.hitpoints = me.life = 60;
222 public void think (Actor me) {