1 module monsterImp is "monster" "Imp";
7 // setup actor animations
8 public void initializeAnim () {
10 animClearFrames("monster", "Imp", "sleep");
12 animAddFrame("monster", "Imp", "sleep", ACTOR_DIR_LEFT, "monsters/imp/graphics/shared/trooa1a2.vga");
13 animAddFrame("monster", "Imp", "sleep", ACTOR_DIR_LEFT, "monsters/imp/graphics/shared/trooa1a2.vga");
14 animAddFrame("monster", "Imp", "sleep", ACTOR_DIR_LEFT, "monsters/imp/graphics/shared/trooa1a2.vga");
15 animAddFrame("monster", "Imp", "sleep", ACTOR_DIR_LEFT, "monsters/imp/graphics/shared/troob1b2.vga");
16 animAddFrame("monster", "Imp", "sleep", ACTOR_DIR_LEFT, "monsters/imp/graphics/shared/troob1b2.vga");
17 animAddFrame("monster", "Imp", "sleep", ACTOR_DIR_LEFT, "monsters/imp/graphics/shared/troob1b2.vga");
19 animAddFrame("monster", "Imp", "sleep", ACTOR_DIR_RIGHT, "monsters/imp/graphics/shared/trooa1a2_mirrored.vga");
20 animAddFrame("monster", "Imp", "sleep", ACTOR_DIR_RIGHT, "monsters/imp/graphics/shared/trooa1a2_mirrored.vga");
21 animAddFrame("monster", "Imp", "sleep", ACTOR_DIR_RIGHT, "monsters/imp/graphics/shared/trooa1a2_mirrored.vga");
22 animAddFrame("monster", "Imp", "sleep", ACTOR_DIR_RIGHT, "monsters/imp/graphics/shared/troob1b2_mirrored.vga");
23 animAddFrame("monster", "Imp", "sleep", ACTOR_DIR_RIGHT, "monsters/imp/graphics/shared/troob1b2_mirrored.vga");
24 animAddFrame("monster", "Imp", "sleep", ACTOR_DIR_RIGHT, "monsters/imp/graphics/shared/troob1b2_mirrored.vga");
26 animClearFrames("monster", "Imp", "go");
28 animAddFrame("monster", "Imp", "go", ACTOR_DIR_LEFT, "monsters/imp/graphics/shared/trooa1a2.vga");
29 animAddFrame("monster", "Imp", "go", ACTOR_DIR_LEFT, "monsters/imp/graphics/shared/trooa1a2.vga");
30 animAddFrame("monster", "Imp", "go", ACTOR_DIR_LEFT, "monsters/imp/graphics/shared/troob1b2.vga");
31 animAddFrame("monster", "Imp", "go", ACTOR_DIR_LEFT, "monsters/imp/graphics/shared/troob1b2.vga");
32 animAddFrame("monster", "Imp", "go", ACTOR_DIR_LEFT, "monsters/imp/graphics/go/trooc1c2.vga");
33 animAddFrame("monster", "Imp", "go", ACTOR_DIR_LEFT, "monsters/imp/graphics/go/trooc1c2.vga");
34 animAddFrame("monster", "Imp", "go", ACTOR_DIR_LEFT, "monsters/imp/graphics/go/trood1d2.vga");
35 animAddFrame("monster", "Imp", "go", ACTOR_DIR_LEFT, "monsters/imp/graphics/go/trood1d2.vga");
37 animAddFrame("monster", "Imp", "go", ACTOR_DIR_RIGHT, "monsters/imp/graphics/shared/trooa1a2_mirrored.vga");
38 animAddFrame("monster", "Imp", "go", ACTOR_DIR_RIGHT, "monsters/imp/graphics/shared/trooa1a2_mirrored.vga");
39 animAddFrame("monster", "Imp", "go", ACTOR_DIR_RIGHT, "monsters/imp/graphics/shared/troob1b2_mirrored.vga");
40 animAddFrame("monster", "Imp", "go", ACTOR_DIR_RIGHT, "monsters/imp/graphics/shared/troob1b2_mirrored.vga");
41 animAddFrame("monster", "Imp", "go", ACTOR_DIR_RIGHT, "monsters/imp/graphics/go/trooc1c2_mirrored.vga");
42 animAddFrame("monster", "Imp", "go", ACTOR_DIR_RIGHT, "monsters/imp/graphics/go/trooc1c2_mirrored.vga");
43 animAddFrame("monster", "Imp", "go", ACTOR_DIR_RIGHT, "monsters/imp/graphics/go/trood1d2_mirrored.vga");
44 animAddFrame("monster", "Imp", "go", ACTOR_DIR_RIGHT, "monsters/imp/graphics/go/trood1d2_mirrored.vga");
46 animClearFrames("monster", "Imp", "pain");
48 animAddFrame("monster", "Imp", "pain", ACTOR_DIR_LEFT, "monsters/imp/graphics/pain/trooh1h2.vga");
50 animAddFrame("monster", "Imp", "pain", ACTOR_DIR_RIGHT, "monsters/imp/graphics/pain/trooh1h2_mirrored.vga");
52 animClearFrames("monster", "Imp", "wait");
54 animAddFrame("monster", "Imp", "wait", ACTOR_DIR_LEFT, "monsters/imp/graphics/shared/trooa1a2.vga");
56 animAddFrame("monster", "Imp", "wait", ACTOR_DIR_RIGHT, "monsters/imp/graphics/shared/trooa1a2_mirrored.vga");
58 animClearFrames("monster", "Imp", "attack");
60 animAddFrame("monster", "Imp", "attack", ACTOR_DIR_LEFT, "monsters/imp/graphics/attack/trooe1e2.vga");
61 animAddFrame("monster", "Imp", "attack", ACTOR_DIR_LEFT, "monsters/imp/graphics/attack/trooe1e2.vga");
62 animAddFrame("monster", "Imp", "attack", ACTOR_DIR_LEFT, "monsters/imp/graphics/attack/troof1f2.vga");
63 animAddFrame("monster", "Imp", "attack", ACTOR_DIR_LEFT, "monsters/imp/graphics/attack/troof1f2.vga");
64 animAddFrame("monster", "Imp", "attack", ACTOR_DIR_LEFT, "monsters/imp/graphics/attack/troog1g2.vga");
65 animAddFrame("monster", "Imp", "attack", ACTOR_DIR_LEFT, "monsters/imp/graphics/attack/troog1g2.vga");
67 animAddFrame("monster", "Imp", "attack", ACTOR_DIR_RIGHT, "monsters/imp/graphics/attack/trooe1e2_mirrored.vga");
68 animAddFrame("monster", "Imp", "attack", ACTOR_DIR_RIGHT, "monsters/imp/graphics/attack/trooe1e2_mirrored.vga");
69 animAddFrame("monster", "Imp", "attack", ACTOR_DIR_RIGHT, "monsters/imp/graphics/attack/troof1f2_mirrored.vga");
70 animAddFrame("monster", "Imp", "attack", ACTOR_DIR_RIGHT, "monsters/imp/graphics/attack/troof1f2_mirrored.vga");
71 animAddFrame("monster", "Imp", "attack", ACTOR_DIR_RIGHT, "monsters/imp/graphics/attack/troog1g2_mirrored.vga");
72 animAddFrame("monster", "Imp", "attack", ACTOR_DIR_RIGHT, "monsters/imp/graphics/attack/troog1g2_mirrored.vga");
74 animClearFrames("monster", "Imp", "die");
76 animAddFrame("monster", "Imp", "die", ACTOR_DIR_LEFT, "monsters/imp/graphics/die/trooi0.vga");
77 animAddFrame("monster", "Imp", "die", ACTOR_DIR_LEFT, "monsters/imp/graphics/die/trooi0.vga");
78 animAddFrame("monster", "Imp", "die", ACTOR_DIR_LEFT, "monsters/imp/graphics/die/trooi0.vga");
79 animAddFrame("monster", "Imp", "die", ACTOR_DIR_LEFT, "monsters/imp/graphics/die/trooj0.vga");
80 animAddFrame("monster", "Imp", "die", ACTOR_DIR_LEFT, "monsters/imp/graphics/die/trooj0.vga");
81 animAddFrame("monster", "Imp", "die", ACTOR_DIR_LEFT, "monsters/imp/graphics/die/trooj0.vga");
82 animAddFrame("monster", "Imp", "die", ACTOR_DIR_LEFT, "monsters/imp/graphics/die/trook0.vga");
83 animAddFrame("monster", "Imp", "die", ACTOR_DIR_LEFT, "monsters/imp/graphics/die/trook0.vga");
84 animAddFrame("monster", "Imp", "die", ACTOR_DIR_LEFT, "monsters/imp/graphics/die/trook0.vga");
85 animAddFrame("monster", "Imp", "die", ACTOR_DIR_LEFT, "monsters/imp/graphics/die/trool0.vga");
86 animAddFrame("monster", "Imp", "die", ACTOR_DIR_LEFT, "monsters/imp/graphics/die/trool0.vga");
87 animAddFrame("monster", "Imp", "die", ACTOR_DIR_LEFT, "monsters/imp/graphics/die/trool0.vga");
89 animAddFrame("monster", "Imp", "die", ACTOR_DIR_RIGHT, "monsters/imp/graphics/die/trooi0.vga");
90 animAddFrame("monster", "Imp", "die", ACTOR_DIR_RIGHT, "monsters/imp/graphics/die/trooi0.vga");
91 animAddFrame("monster", "Imp", "die", ACTOR_DIR_RIGHT, "monsters/imp/graphics/die/trooi0.vga");
92 animAddFrame("monster", "Imp", "die", ACTOR_DIR_RIGHT, "monsters/imp/graphics/die/trooj0.vga");
93 animAddFrame("monster", "Imp", "die", ACTOR_DIR_RIGHT, "monsters/imp/graphics/die/trooj0.vga");
94 animAddFrame("monster", "Imp", "die", ACTOR_DIR_RIGHT, "monsters/imp/graphics/die/trooj0.vga");
95 animAddFrame("monster", "Imp", "die", ACTOR_DIR_RIGHT, "monsters/imp/graphics/die/trook0.vga");
96 animAddFrame("monster", "Imp", "die", ACTOR_DIR_RIGHT, "monsters/imp/graphics/die/trook0.vga");
97 animAddFrame("monster", "Imp", "die", ACTOR_DIR_RIGHT, "monsters/imp/graphics/die/trook0.vga");
98 animAddFrame("monster", "Imp", "die", ACTOR_DIR_RIGHT, "monsters/imp/graphics/die/trool0.vga");
99 animAddFrame("monster", "Imp", "die", ACTOR_DIR_RIGHT, "monsters/imp/graphics/die/trool0.vga");
100 animAddFrame("monster", "Imp", "die", ACTOR_DIR_RIGHT, "monsters/imp/graphics/die/trool0.vga");
102 animClearFrames("monster", "Imp", "slop");
104 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/troon0.vga");
105 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/troon0.vga");
106 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/troon0.vga");
107 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/trooo0.vga");
108 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/trooo0.vga");
109 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/trooo0.vga");
110 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/troop0.vga");
111 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/troop0.vga");
112 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/troop0.vga");
113 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/troor0.vga");
114 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/troor0.vga");
115 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/troor0.vga");
116 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/troos0.vga");
117 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/troos0.vga");
118 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/troos0.vga");
119 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/troot0.vga");
120 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/troot0.vga");
121 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_LEFT, "monsters/imp/graphics/slop/troot0.vga");
123 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/troon0.vga");
124 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/troon0.vga");
125 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/troon0.vga");
126 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/trooo0.vga");
127 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/trooo0.vga");
128 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/trooo0.vga");
129 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/troop0.vga");
130 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/troop0.vga");
131 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/troop0.vga");
132 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/troor0.vga");
133 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/troor0.vga");
134 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/troor0.vga");
135 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/troos0.vga");
136 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/troos0.vga");
137 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/troos0.vga");
138 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/troot0.vga");
139 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/troot0.vga");
140 animAddFrame("monster", "Imp", "slop", ACTOR_DIR_RIGHT, "monsters/imp/graphics/slop/troot0.vga");
142 animClearFrames("monster", "Imp", "dead");
144 animAddFrame("monster", "Imp", "dead", ACTOR_DIR_LEFT, "monsters/imp/graphics/dead/troom0.vga");
146 animAddFrame("monster", "Imp", "dead", ACTOR_DIR_RIGHT, "monsters/imp/graphics/dead/troom0.vga");
148 animClearFrames("monster", "Imp", "mess");
150 animAddFrame("monster", "Imp", "mess", ACTOR_DIR_LEFT, "monsters/imp/graphics/mess/troou0.vga");
152 animAddFrame("monster", "Imp", "mess", ACTOR_DIR_RIGHT, "monsters/imp/graphics/mess/troou0.vga");
156 // change actor animation
157 public void setAnim (Actor me, string state) {
160 case "sleep": me.animname = "sleep"; me.animstr = "AAABBB"; break;
161 case "go": me.animname = "go"; me.animstr = "AABBCCDD"; break;
162 case "pain": me.animname = "pain"; me.animstr = "H"; break;
163 case "wait": me.animname = "wait"; me.animstr = "A"; break;
164 case "attack": me.animname = "attack"; me.animstr = "EEFFGG"; break;
165 case "die": me.animname = "die"; me.animstr = "IIIJJJKKKLLL"; break;
166 case "slop": me.animname = "slop"; me.animstr = "NNNOOOPPPRRRSSSTTT"; break;
167 case "dead": me.animname = "dead"; me.animstr = "M"; break;
168 case "mess": me.animname = "mess"; me.animstr = "U"; break;
169 case "run": me.animname = "go"; me.animstr = "AABBCCDD"; break;
170 case "climb": me.animname = "go"; me.animstr = "AABBCCDD"; break;
171 case "runout": me.animname = "go"; me.animstr = "AABBCCDD"; break;
172 case "shoot": me.animname = "attack"; me.animstr = "EEFFGG"; break;
173 case "revive": me.animname = "revive"; me.animstr = "LLLKKKJJJIII"; break;
174 default: me.animname = "sleep"; me.animstr = "AAABBB"; break;
176 me.actorSetAnimation(state);
180 // setup actor properties
181 public void initialize (Actor me) {
182 // `classname` and `classtype` will be set by the engine
183 //me.classname = "Imp";
184 //me.classtype = "monster";
187 me.hitpoints = me.life = 25;
199 public void think (Actor me) {