scripts moved from dacs to d2d
[dd2d.git] / data / scripts / actor / imp.dacs
blobf4716caafb09d1293d0ec5d58983ed0b8a107e21
1 module actorImp is "monster" "Imp";
3 import actor;
4 import actorai;
7 // setup actor animations
8 public void initializeAnim () {
9   // sleep
10   animClearFrames("monster", "Imp", "sleep");
11   // left
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");
18   // right
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");
25   // go
26   animClearFrames("monster", "Imp", "go");
27   // left
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");
36   // right
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");
45   // pain
46   animClearFrames("monster", "Imp", "pain");
47   // left
48   animAddFrame("monster", "Imp", "pain", ACTOR_DIR_LEFT, "monsters/imp/graphics/pain/trooh1h2.vga");
49   // right
50   animAddFrame("monster", "Imp", "pain", ACTOR_DIR_RIGHT, "monsters/imp/graphics/pain/trooh1h2_mirrored.vga");
51   // wait
52   animClearFrames("monster", "Imp", "wait");
53   // left
54   animAddFrame("monster", "Imp", "wait", ACTOR_DIR_LEFT, "monsters/imp/graphics/shared/trooa1a2.vga");
55   // right
56   animAddFrame("monster", "Imp", "wait", ACTOR_DIR_RIGHT, "monsters/imp/graphics/shared/trooa1a2_mirrored.vga");
57   // attack
58   animClearFrames("monster", "Imp", "attack");
59   // left
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");
66   // right
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");
73   // die
74   animClearFrames("monster", "Imp", "die");
75   // left
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");
88   // right
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");
101   // slop
102   animClearFrames("monster", "Imp", "slop");
103   // left
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");
122   // right
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");
141   // dead
142   animClearFrames("monster", "Imp", "dead");
143   // left
144   animAddFrame("monster", "Imp", "dead", ACTOR_DIR_LEFT, "monsters/imp/graphics/dead/troom0.vga");
145   // right
146   animAddFrame("monster", "Imp", "dead", ACTOR_DIR_RIGHT, "monsters/imp/graphics/dead/troom0.vga");
147   // mess
148   animClearFrames("monster", "Imp", "mess");
149   // left
150   animAddFrame("monster", "Imp", "mess", ACTOR_DIR_LEFT, "monsters/imp/graphics/mess/troou0.vga");
151   // right
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) {
158   me.animidx = 0;
159   switch (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;
175   }
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";
185   me.radius = 10;
186   me.height = 28;
187   me.hitpoints = me.life = 25;
188   me.painin = 15;
189   me.xvel = 3;
190   me.yvel = 10;
191   me.slophit = 30;
192   me.painout = 0;
193   me.angertime = 90;
194   me.setAnim("sleep");
198 // thinker
199 public void think (Actor me) {
200   monsterThink(me);