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(¤t_sprite, 10);
16 sp_timing(¤t_sprite, 33);
17 sp_speed(¤t_sprite, 1);
18 sp_nohit(¤t_sprite, 0);
19 sp_exp(¤t_sprite, 0);
20 sp_base_walk(¤t_sprite, 580);
21 sp_touch_damage(¤t_sprite, 30);
22 sp_hitpoints(¤t_sprite, 300);
23 sp_defense(¤t_sprite, 25);
24
25 sp_target(¤t_sprite, 1);
26
27 }
28
attack(void)29 void attack( void )
30 {
31 unfreeze(¤t_sprite);
32 &mcounter = random(4000,2000);
33 sp_attack_wait(¤t_sprite, &mcounter);
34
35
36
37 &kcrap = sp_target(¤t_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(¤t_sprite);
46 sp_speed(¤t_sprite, 0);
47 // sp_dir(¤t_sprite, 0);
48 sp_seq(¤t_sprite, 0);
49 sp_frame(¤t_sprite, 0);
50 sp_pseq(¤t_sprite, 580);
51 sp_pframe(¤t_sprite, 1);
52 wait(500);
53 &save_x = sp_x(1, -1);
54 &save_y = sp_y(1, -1);
55 sp_pseq(¤t_sprite, 580);
56 sp_pframe(¤t_sprite, 2);
57 wait(200);
58 sp_pseq(¤t_sprite, 580);
59 sp_pframe(¤t_sprite, 1);
60 wait(200);
61 sp_pseq(¤t_sprite, 580);
62 sp_pframe(¤t_sprite, 2);
63 wait(200);
64 sp_pseq(¤t_sprite, 580);
65 sp_pframe(¤t_sprite, 1);
66 wait(200);
67 say("`4<Casts explosion>", ¤t_sprite);
68 playsound(31, 12050,0,0, 0);
69 spawn("dam-bom2");
70 sp_brain(¤t_sprite, 10);
71 sp_speed(¤t_sprite, &speed);
72 unfreeze(¤t_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>", ¤t_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, ¤t_sprite, 0);
108 sp_speed(¤t_sprite, &speed);
109
110 sp_brain(¤t_sprite, 10);
111 unfreeze(¤t_sprite);
112
113
114 &dam = sp_hitpoints(¤t_sprite, -1);
115
116 if (&dam < 270)
117 {
118 sp_timing(¤t_sprite, 0);
119 sp_speed(¤t_sprite, 2);
120 &speed = 2;
121 sp_frame_delay(¤t_sprite, 60);
122 }
123
124
125 if (&dam < 200)
126 {
127 &speed = 3;
128 sp_speed(¤t_sprite, 3);
129 sp_frame_delay(¤t_sprite, 50);
130
131 }
132
133 if (&dam < 100)
134 {
135 &speed = 4;
136 sp_speed(¤t_sprite, 4);
137 sp_frame_delay(¤t_sprite, 40);
138
139 }
140
141 if (&dam < 15)
142 {
143 &speed = 5;
144 sp_speed(¤t_sprite, 5);
145 sp_frame_delay(¤t_sprite, 30);
146
147 }
148
149 &dam = random(2,1);
150
151 if (&dam == 1)
152 return;
153
154 &dam = sp_hitpoints(¤t_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, ¤t_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(¤t_sprite, 1);
243
244 &save_x = sp_x(¤t_sprite, -1);
245 &save_y = sp_y(¤t_sprite, -1);
246 say("EAT IT!", 1);
247 add_exp(10000, ¤t_sprite);
248
249 freeze(1);
250 sp_brain(¤t_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(¤t_sprite, 5);
292 sp_brain(¤t_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(¤t_sprite, 1);
308 kill_this_task();
309 }
310