1 //boss brain
2 
main(void)3 void main( void )
4 {
5 
6 int &fsave_x;
7 int &kcrap;
8 int &dam;
9 int &fsave_y;
10 int &spark;
11 int &speed = 1;
12 int &resist;
13 int &mcounter;
14 int &mtarget;
15 sp_brain(&current_sprite, 10);
16 sp_timing(&current_sprite, 33);
17 sp_speed(&current_sprite, 1);
18 sp_nohit(&current_sprite, 0);
19 sp_exp(&current_sprite, 0);
20 sp_base_walk(&current_sprite, 580);
21 sp_touch_damage(&current_sprite, 30);
22 sp_hitpoints(&current_sprite, 300);
23 sp_defense(&current_sprite, 25);
24 
25  sp_target(&current_sprite, 1);
26 
27 }
28 
attack(void)29 void attack( void )
30 {
31     unfreeze(&current_sprite);
32         &mcounter = random(4000,2000);
33         sp_attack_wait(&current_sprite, &mcounter);
34 
35 
36 
37         &kcrap = sp_target(&current_sprite, -1);
38 &fsave_x = sp_x(&kcrap, -1);
39 &fsave_y = sp_y(&kcrap, -1);
40 
41 &resist = random(2, 1);
42 if (&resist == 1)
43   {
44    //cast some kind of bomb
45     freeze(&current_sprite);
46     sp_speed(&current_sprite, 0);
47 //    sp_dir(&current_sprite, 0);
48       sp_seq(&current_sprite, 0);
49       sp_frame(&current_sprite, 0);
50       sp_pseq(&current_sprite, 580);
51       sp_pframe(&current_sprite, 1);
52       wait(500);
53       &save_x = sp_x(1, -1);
54       &save_y = sp_y(1, -1);
55       sp_pseq(&current_sprite, 580);
56       sp_pframe(&current_sprite, 2);
57       wait(200);
58       sp_pseq(&current_sprite, 580);
59       sp_pframe(&current_sprite, 1);
60       wait(200);
61       sp_pseq(&current_sprite, 580);
62       sp_pframe(&current_sprite, 2);
63       wait(200);
64       sp_pseq(&current_sprite, 580);
65       sp_pframe(&current_sprite, 1);
66       wait(200);
67         say("`4<Casts explosion>", &current_sprite);
68         playsound(31, 12050,0,0, 0);
69         spawn("dam-bom2");
70     sp_brain(&current_sprite, 10);
71     sp_speed(&current_sprite, &speed);
72     unfreeze(&current_sprite);
73 
74   return;
75   }
76 &resist = random(40, 1);
77 
78 //if NPC, turn off resist option
79 if (&kcrap != 1)
80 &resist = 100000;
81 
82 if (&resist > &magic)
83         {
84         say("`4<Casts greater harm>", &current_sprite);
85 
86         playsound(31, 12050,0,0, 0);
87         hurt(&kcrap, 30);
88 
89         &fsave_y -= 29;
90         &spark = create_sprite(&fsave_x, &fsave_y, 7, 70, 1);
91         sp_seq(&spark, 70);
92         sp_que(&spark, -70);
93         sp_speed(&spark, 5);
94         return;
95         }
96 
97         playsound(31, 44050,0,0, 0);
98         &fsave_y -= 29;
99         int &spark = create_sprite(&fsave_x, &fsave_y, 7, 166, 1);
100         sp_seq(&spark, 166);
101         sp_que(&spark, -70);
102         say("Magic resisted.", &kcrap);
103 }
104 
hit(void)105 void hit( void )
106 {
107 playsound(46, 3050, 4000, &current_sprite, 0);
108     sp_speed(&current_sprite, &speed);
109 
110     sp_brain(&current_sprite, 10);
111    unfreeze(&current_sprite);
112 
113 
114 &dam = sp_hitpoints(&current_sprite, -1);
115 
116 if (&dam < 270)
117  {
118   sp_timing(&current_sprite, 0);
119    sp_speed(&current_sprite, 2);
120    &speed = 2;
121   sp_frame_delay(&current_sprite, 60);
122  }
123 
124 
125 if (&dam < 200)
126  {
127    &speed = 3;
128    sp_speed(&current_sprite, 3);
129   sp_frame_delay(&current_sprite, 50);
130 
131   }
132 
133 if (&dam < 100)
134  {
135    &speed = 4;
136    sp_speed(&current_sprite, 4);
137   sp_frame_delay(&current_sprite, 40);
138 
139   }
140 
141 if (&dam < 15)
142  {
143    &speed = 5;
144    sp_speed(&current_sprite, 5);
145   sp_frame_delay(&current_sprite, 30);
146 
147   }
148 
149 &dam = random(2,1);
150 
151         if (&dam == 1)
152         return;
153 
154 &dam = sp_hitpoints(&current_sprite, -1);
155 
156 if (&dam < 6)
157   {
158    say("`%Watch Conan O'brien!", &CURRENT_SPRITE);
159    return;
160   }
161 
162 if (&dam < 15)
163   {
164    say("`%MOTHER!!!!!!!!!!", &CURRENT_SPRITE);
165    return;
166   }
167 
168 
169 if (&dam < 50)
170   {
171    say("`%FEEL MY WRATH, SMALLWOOD!", &CURRENT_SPRITE);
172    return;
173   }
174 
175 if (&dam < 100)
176   {
177    say("`%I felt that.", &CURRENT_SPRITE);
178   return;
179   }
180 
181 
182 
183 if (&dam < 140)
184   {
185    say("`%Listen to the birds.. even they are calling for your heart.", &CURRENT_SPRITE);
186   playsound(49, 22050, 0, &current_sprite, 0);
187   return;
188   }
189 
190 
191 if (&dam < 160)
192   {
193    say("`%You'll be dead soon.", &CURRENT_SPRITE);
194   return;
195   }
196 
197 
198 if (&dam < 180)
199   {
200    say("`%Nice shot.  It will be your last.", &CURRENT_SPRITE);
201   return;
202   }
203 
204 if (&dam < 200)
205   {
206    say("`%You are starting to annoy me now.", &CURRENT_SPRITE);
207     return;
208   }
209 
210 
211 if (&dam < 240)
212   {
213    say("`%I could finish you now, but this rather amuses me.", &CURRENT_SPRITE);
214   return;
215   }
216 
217 
218 if (&dam < 260)
219   {
220    say("`%It's kind of sad that you are going to die for nothing.", &CURRENT_SPRITE);
221   return;
222   }
223 
224 
225 if (&dam < 280)
226   {
227    say("`%That kinda tickled.", &CURRENT_SPRITE);
228   return;
229   }
230 
231 
232    say("`%You are just like me you know, Dink.", &CURRENT_SPRITE);
233 
234 //lock on to the guy who just hit us
235 //playsound
236 
237 }
238 
die(void)239 void die( void )
240 {
241 	//fix, must make it so that the monster isn't hit again.
242         sp_nohit(&current_sprite, 1);
243 
244 	&save_x = sp_x(&current_sprite, -1);
245 	&save_y = sp_y(&current_sprite, -1);
246 	say("EAT IT!", 1);
247 	add_exp(10000, &current_sprite);
248 
249 	freeze(1);
250 	sp_brain(&current_sprite, 0);
251 
252 	playsound(24, 22052, 0, 0, 0);
253 	int &mcrap = create_sprite(&save_x, &save_y, 7, 167, 1);
254 	sp_seq(&mcrap, 167);
255 	wait(100);
256 
257 
258 	playsound(24, 22052, 0, 0, 0);
259 	int &mcrap = create_sprite(&save_x, &save_y, 7, 167, 1);
260 	sp_seq(&mcrap, 167);
261 	wait(100);
262 	&save_x -= 40;
263 	&save_y -= 30;
264 	playsound(24, 22052, 0, 0, 0);
265 	int &mcrap = create_sprite(&save_x, &save_y, 7, 167, 1);
266 	sp_seq(&mcrap, 167);
267 	wait(100);
268 
269 	&save_x += 80;
270 	&save_y += 60;
271 
272 	playsound(24, 22052, 0, 0, 0);
273 	int &mcrap = create_sprite(&save_x, &save_y, 7, 167, 1);
274 	sp_seq(&mcrap, 167);
275 	wait(100);
276 	&save_x += 10;
277 	&save_y += 20;
278 
279 
280 	playsound(24, 22052, 0, 0, 0);
281 	int &mcrap = create_sprite(&save_x, &save_y, 7, 167, 1);
282 	sp_seq(&mcrap, 167);
283 	wait(100);
284 	&save_x -= 30;
285 	&save_y -= 60;
286 
287 	playsound(24, 22052, 0, 0, 0);
288 	int &mcrap = create_sprite(&save_x, &save_y, 7, 167, 1);
289 	sp_seq(&mcrap, 167);
290 	wait(100);
291 	sp_brain_parm(&current_sprite, 5);
292 	sp_brain(&current_sprite, 12);
293 	script_attach(1000);
294 	wait(500);
295 	wait(2000);
296 
297 	say_stop("Too bad I had to kill him, he seemed likable enough.", 1);
298 	wait(500);
299 	say_stop("My body is tingling!", 1);
300 	&life = &lifemax;
301 	wait(500);
302 	say_stop("I must now get back to Goodheart Castle and inform the King.", 1);
303 	unfreeze(1);
304 	&story = 15;
305 
306 	//kill spawn from hell
307 	sp_kill(&current_sprite, 1);
308 	kill_this_task();
309 }
310