1 |
###################### |
2 |
# training variables # |
3 |
###################### |
4 |
|
5 |
#checks to see if player is in correct room for executing current script |
6 |
var int how_far_along=0; |
7 |
|
8 |
#number of dash track lights |
9 |
var int tcount=17; |
10 |
|
11 |
#sees if player sprinted |
12 |
var int didsprint; |
13 |
|
14 |
#sees if player jumped up to big crate with power cell |
15 |
var int powerupon; |
16 |
|
17 |
#checks to see if OK to run training (for restored game funkiness) |
18 |
var int can_train_movement = 1; |
19 |
|
20 |
#continues crouch training |
21 |
var int onto_crouch2; |
22 |
|
23 |
#used to determine if dashing on track for the first time |
24 |
var int A; |
25 |
|
26 |
#used to determine if finished run was slow |
27 |
var int B; |
28 |
|
29 |
#set if running was failed |
30 |
var int bad; |
31 |
|
32 |
#used to measure performance of player |
33 |
var int rating = 1; |
34 |
|
35 |
#karen dies! |
36 |
var int demo3dead; |
37 |
|
38 |
#determines which jump script continues after getting on biggest crate |
39 |
var int got_ammo; |
40 |
|
41 |
#prevents forcefield and particle/gunk from starting multiple times and not after jumping to the next room |
42 |
var int forcefieldstopped; |
43 |
var int particlestarted; |
44 |
|
45 |
################## |
46 |
# basic movement # |
47 |
################## |
48 |
func void train_movement(string ai_name) |
49 |
{ |
50 |
if (can_train_movement eq 1) |
51 |
{ |
52 |
train_movement_internal |
53 |
} |
54 |
} |
55 |
|
56 |
func void train_movement_internal(void) |
57 |
{ |
58 |
fade_out 0 0 0 0 |
59 |
cm_interpolate KonCamFoot01 0 |
60 |
particle forcefield1 do start |
61 |
particle forcefield2 do start |
62 |
particle steam start |
63 |
ui_suppress_prompt=1 |
64 |
ui_show_element left 0 |
65 |
ui_show_element right 0 |
66 |
target_set (1,0.0) |
67 |
env_show 2010 0 |
68 |
how_far_along = 1; |
69 |
trigvolume_enable trigger_volume_54 0 |
70 |
lock_keys |
71 |
lock_keys keys_pause |
72 |
trigvolume_enable tv_train_door 0 |
73 |
trigvolume_enable tv1 0 |
74 |
trigvolume_enable tv2 0 |
75 |
trigvolume_enable tv3 0 |
76 |
trigvolume_enable tv4 0 |
77 |
trigvolume_enable tv5 0 |
78 |
trigvolume_enable tv6 0 |
79 |
trigvolume_enable tv7 0 |
80 |
trigvolume_enable tv8 0 |
81 |
trigvolume_enable tv9 0 |
82 |
trigvolume_enable tv10 0 |
83 |
trigvolume_enable tv11 0 |
84 |
trigvolume_enable tv12 0 |
85 |
trigvolume_enable tv13 0 |
86 |
trigvolume_enable tv14 0 |
87 |
trigvolume_enable tv15 0 |
88 |
trigvolume_enable tv16 0 |
89 |
trigvolume_enable tv17 0 |
90 |
trigvolume_enable tv_move4 0 |
91 |
trigvolume_enable tv_end 0 |
92 |
trigvolume_enable tv_review 0 |
93 |
console_deactivate 11 |
94 |
|
95 |
dprint train_movement |
96 |
|
97 |
if(how_far_along eq 1) |
98 |
{ |
99 |
input 0 |
100 |
fade_in 120 |
101 |
sleep 90 |
102 |
fork Kon |
103 |
####Shinatama telling Konoko that their neurolink is working perfectly, and telling her they're about to start training. |
104 |
cinematic_start (SHINnametag, 180, 180, 15, 1, 20, false) |
105 |
sleep f10 |
106 |
music_train1 |
107 |
sound_dialog_play c00_01_29shinatama |
108 |
sound_dialog_play_block pause |
109 |
sleep 30 |
110 |
sound_dialog_play c00_01_30shinatama |
111 |
sound_dialog_play_block pause |
112 |
sleep 30 |
113 |
sound_dialog_play c00_01_31shinatama |
114 |
sound_dialog_play_block pause |
115 |
sleep 30 |
116 |
sound_dialog_play c00_01_32shinatama |
117 |
sound_dialog_play_block pause |
118 |
sleep 30 |
119 |
message xwelcome 240 |
120 |
sound_dialog_play c00_01_35shinatama |
121 |
sound_dialog_play_block pause |
122 |
cinematic_stop (SHINnametag, 15, 20) |
123 |
input 1 |
124 |
} |
125 |
|
126 |
if(how_far_along eq 1) |
127 |
{ |
128 |
#use mouse |
129 |
message xmouse |
130 |
chr_wait_animtype 0 standing_turn_left standing_turn_right |
131 |
message_remove xmouse |
132 |
sleep 60 |
133 |
#move with wads |
134 |
lock_keys keys_movement |
135 |
message xmove |
136 |
chr_wait_animtype 0 run |
137 |
sleep 60 |
138 |
message_remove xmove |
139 |
sleep 60 |
140 |
} |
141 |
if(how_far_along eq 1) |
142 |
{ |
143 |
#combine to move diag |
144 |
message xcombo 300 |
145 |
sleep 300 |
146 |
} |
147 |
if(how_far_along eq 1) |
148 |
{ |
149 |
#control console |
150 |
message xconsole1 |
151 |
sleep 30 |
152 |
particle obj_control create |
153 |
trigvolume_enable trigger_volume_54 1 |
154 |
console_activate 10 |
155 |
lock_keys keys_action |
156 |
|
157 |
} |
158 |
} |
159 |
|
160 |
func void move2(string ai_name) |
161 |
{ |
162 |
#trigger volume near control console |
163 |
message_remove xmouse |
164 |
message_remove xmove |
165 |
message_remove xcombo |
166 |
message_remove xconsole1 |
167 |
particle obj_control kill |
168 |
} |
169 |
|
170 |
func void lights(string ai_name) |
171 |
{ |
172 |
particle t17 create |
173 |
sleep 60 |
174 |
particle t16 create |
175 |
sleep 60 |
176 |
particle t15 create |
177 |
sleep 60 |
178 |
particle t14 create |
179 |
sleep 60 |
180 |
particle t13 create |
181 |
sleep 60 |
182 |
particle t12 create |
183 |
sleep 60 |
184 |
particle t11 create |
185 |
sleep 60 |
186 |
particle t10 create |
187 |
sleep 60 |
188 |
particle t9 create |
189 |
sleep 60 |
190 |
particle t8 create |
191 |
sleep 60 |
192 |
particle t7 create |
193 |
sleep 60 |
194 |
particle t6 create |
195 |
sleep 60 |
196 |
particle t5 create |
197 |
sleep 60 |
198 |
particle t4 create |
199 |
sleep 60 |
200 |
particle t3 create |
201 |
sleep 60 |
202 |
particle t2 create |
203 |
sleep 60 |
204 |
particle t1 create |
205 |
} |
206 |
|
207 |
func void move3(string ai_name) |
208 |
{ |
209 |
#used control console |
210 |
message_remove xactivate1 |
211 |
particle obj_control kill |
212 |
sleep 60 |
213 |
|
214 |
if(A eq 0) |
215 |
#first run, so warm up |
216 |
{ |
217 |
if(how_far_along eq 1) |
218 |
{ |
219 |
#we'll use lights for dash |
220 |
sound_dialog_play c00_01_36shinatama |
221 |
message xactivate2 300 |
222 |
fork lights |
223 |
sleep 30 |
224 |
#better warmup |
225 |
sound_dialog_play_block c00_01_33shinatama |
226 |
sound_dialog_play_block pause |
227 |
} |
228 |
|
229 |
if(how_far_along eq 1) |
230 |
{ |
231 |
#turn and dash |
232 |
message xdash1 |
233 |
fork encourage_dash |
234 |
chr_wait_animation 0 KONSPRrun_lt KONSPRrun_rt |
235 |
didsprint = 1 |
236 |
message_remove xdash1 |
237 |
message_remove xencouragedash |
238 |
sleep 60 |
239 |
sound_dialog_play c00_01_37shinatama |
240 |
# sound_dialog_play_block pause |
241 |
} |
242 |
|
243 |
if(how_far_along eq 1) |
244 |
{ |
245 |
#beautiful sprint |
246 |
message xdash2 240 |
247 |
sleep 240 |
248 |
} |
249 |
|
250 |
if(how_far_along eq 1) |
251 |
{ |
252 |
#dash is fast but loud |
253 |
message xdash3 |
254 |
sound_dialog_play c00_01_38shinatama |
255 |
sound_dialog_play_block pause |
256 |
} |
257 |
} |
258 |
|
259 |
if(A eq 1) |
260 |
{ |
261 |
tcount= 17; |
262 |
B = 0; |
263 |
bad = 0; |
264 |
if(how_far_along eq 1) |
265 |
{ |
266 |
# sound_dialog_play_block c00_01_41shinatama |
267 |
dprint kill_parts |
268 |
particle t17 kill |
269 |
particle t16 kill |
270 |
particle t15 kill |
271 |
particle t14 kill |
272 |
particle t13 kill |
273 |
particle t12 kill |
274 |
particle t11 kill |
275 |
particle t10 kill |
276 |
particle t9 kill |
277 |
particle t8 kill |
278 |
particle t7 kill |
279 |
particle t6 kill |
280 |
particle t5 kill |
281 |
particle t4 kill |
282 |
particle t3 kill |
283 |
particle t2 kill |
284 |
particle t1 kill |
285 |
dprint recreate_parts |
286 |
particle t17 create |
287 |
particle t16 create |
288 |
particle t15 create |
289 |
particle t14 create |
290 |
particle t13 create |
291 |
particle t12 create |
292 |
particle t11 create |
293 |
particle t10 create |
294 |
particle t9 create |
295 |
particle t8 create |
296 |
particle t7 create |
297 |
particle t6 create |
298 |
particle t5 create |
299 |
particle t4 create |
300 |
particle t3 create |
301 |
particle t2 create |
302 |
particle t1 create |
303 |
trigvolume_reset tv_move4 |
304 |
} |
305 |
} |
306 |
|
307 |
if(how_far_along eq 1) |
308 |
{ |
309 |
message_remove xdash3 |
310 |
sleep 60 |
311 |
#goto track and trigger script in volume |
312 |
particle obj_start create |
313 |
message xgotrack |
314 |
trigvolume_enable tv_move4 1 |
315 |
} |
316 |
} |
317 |
|
318 |
func void encourage_dash(string ai_name) |
319 |
{ |
320 |
sleep 600 |
321 |
if(didsprint eq 0) |
322 |
{ |
323 |
message_remove xdash1 |
324 |
sleep 60 |
325 |
#that'sleep 300 not a dash |
326 |
sound_dialog_play c00_01_39shinatama |
327 |
message xencouragedash |
328 |
dprint rating |
329 |
rating = rating + 1; |
330 |
} |
331 |
} |
332 |
|
333 |
func void move4(string ai_name) |
334 |
{ |
335 |
if(A eq 0) |
336 |
{ |
337 |
if(how_far_along eq 1) |
338 |
{ |
339 |
message_remove xgotrack |
340 |
trigvolume_enable tv1 1 |
341 |
trigvolume_enable tv2 1 |
342 |
trigvolume_enable tv3 1 |
343 |
trigvolume_enable tv4 1 |
344 |
trigvolume_enable tv5 1 |
345 |
trigvolume_enable tv6 1 |
346 |
trigvolume_enable tv7 1 |
347 |
trigvolume_enable tv8 1 |
348 |
trigvolume_enable tv9 1 |
349 |
trigvolume_enable tv10 1 |
350 |
trigvolume_enable tv11 1 |
351 |
trigvolume_enable tv12 1 |
352 |
trigvolume_enable tv13 1 |
353 |
trigvolume_enable tv14 1 |
354 |
trigvolume_enable tv15 1 |
355 |
trigvolume_enable tv16 1 |
356 |
trigvolume_enable tv17 1 |
357 |
particle obj_start kill |
358 |
sound_dialog_play c00_01_41shinatama |
359 |
sleep 60 |
360 |
message xrun |
361 |
} |
362 |
} |
363 |
if(A eq 1) |
364 |
{ |
365 |
if(how_far_along eq 1) |
366 |
{ |
367 |
message_remove xgotrack |
368 |
trigvolume_reset tv1 |
369 |
trigvolume_reset tv2 |
370 |
trigvolume_reset tv3 |
371 |
trigvolume_reset tv4 |
372 |
trigvolume_reset tv5 |
373 |
trigvolume_reset tv6 |
374 |
trigvolume_reset tv7 |
375 |
trigvolume_reset tv8 |
376 |
trigvolume_reset tv9 |
377 |
trigvolume_reset tv10 |
378 |
trigvolume_reset tv11 |
379 |
trigvolume_reset tv12 |
380 |
trigvolume_reset tv13 |
381 |
trigvolume_reset tv14 |
382 |
trigvolume_reset tv15 |
383 |
trigvolume_reset tv16 |
384 |
trigvolume_reset tv17 |
385 |
particle obj_start kill |
386 |
sound_dialog_play c00_01_41shinatama |
387 |
sleep 60 |
388 |
message xrun |
389 |
} |
390 |
} |
391 |
|
392 |
particle obj_end create |
393 |
trigvolume_reset tv_end |
394 |
trigvolume_enable tv_end 1 |
395 |
sleep 660 |
396 |
dprint timeup |
397 |
B = 1; |
398 |
} |
399 |
|
400 |
func void track_end(string ai_name) |
401 |
{ |
402 |
if(B eq 1) |
403 |
{ |
404 |
bad = 1; |
405 |
} |
406 |
if(how_far_along eq 1) |
407 |
{ |
408 |
particle obj_end kill |
409 |
particle obj_start kill |
410 |
message_remove |
411 |
message_remove xrun |
412 |
sleep 60 |
413 |
###all targets hit |
414 |
if(tcount eq 0) |
415 |
{ |
416 |
#### all hit, RUN WAS fast |
417 |
if(bad eq 0) |
418 |
{ |
419 |
sound_dialog_play_block c00_01_42shinatama |
420 |
message xgreat 240 |
421 |
A = 0; |
422 |
sleep 240 |
423 |
} |
424 |
####all hit, RUN WAS slow |
425 |
if(bad eq 1) |
426 |
{ |
427 |
dprint rating |
428 |
rating = rating + 1; |
429 |
sound_dialog_play_block c00_01_11shinatama |
430 |
message xgoodbutslow 240 |
431 |
A = 0; |
432 |
sleep 240 |
433 |
} |
434 |
} |
435 |
|
436 |
####targets were MISSED |
437 |
if(tcount ne 0) |
438 |
{ |
439 |
dprint rating |
440 |
rating = rating + 1; |
441 |
###missed, fast |
442 |
if(bad eq 0) |
443 |
{ |
444 |
sound_dialog_play_block c00_01_43shinatama |
445 |
message xpractice 360 |
446 |
A = 1; |
447 |
sleep 360 |
448 |
} |
449 |
####missed, slow |
450 |
if(bad eq 1) |
451 |
{ |
452 |
sound_dialog_play_block c00_01_43shinatama |
453 |
message xslowtoo 360 |
454 |
A = 1; |
455 |
sleep 360 |
456 |
} |
457 |
} |
458 |
} |
459 |
#####THIS ENDS BASIC MOVEMENTS FOR SUCCESSFUL RUNNERS |
460 |
if(A eq 0) |
461 |
{ |
462 |
if(how_far_along eq 1) |
463 |
{ |
464 |
sound_dialog_play_block c00_01_44shinatama |
465 |
message xendbasic 300 |
466 |
sleep 300 |
467 |
} |
468 |
|
469 |
if(how_far_along eq 1) |
470 |
{ |
471 |
sound_dialog_play c00_01_45shinatama |
472 |
message xreview |
473 |
console_activate 11 |
474 |
trigvolume_enable tv_review 1 |
475 |
particle obj_data create |
476 |
} |
477 |
} |
478 |
####IF THE RUN WASN'T GOOD, THEN RESET CONSOLE |
479 |
if(A eq 1) |
480 |
{ |
481 |
message xconsole1 |
482 |
sleep 30 |
483 |
particle obj_control create |
484 |
console_reset 10 |
485 |
console_activate 10 |
486 |
trigvolume_reset trigger_volume_54 |
487 |
trigvolume_enable trigger_volume_54 1 |
488 |
} |
489 |
} |
490 |
|
491 |
func void review(string ai_name) |
492 |
{ |
493 |
if(how_far_along eq 1) |
494 |
{ |
495 |
message_remove xreview |
496 |
particle obj_data kill |
497 |
# sleep 60 |
498 |
# message xactivate3 |
499 |
} |
500 |
} |
501 |
|
502 |
func void review2(string ai_name) |
503 |
{ |
504 |
if(how_far_along eq 1) |
505 |
{ |
506 |
# message_remove xactivate3 |
507 |
text_console level_1c |
508 |
console_reset 11 |
509 |
sleep 120 |
510 |
message xgodoor |
511 |
trigvolume_enable tv_train_door 1 |
512 |
sound_dialog_play c00_01_48shinatama |
513 |
# sound_dialog_play_block pause |
514 |
particle obj1 create |
515 |
} |
516 |
} |
517 |
|
518 |
func void track17(string ai_name) |
519 |
{ |
520 |
if(how_far_along eq 1) |
521 |
{ |
522 |
particle t17 kill |
523 |
tcount = tcount - 1 |
524 |
} |
525 |
} |
526 |
|
527 |
func void track16(string ai_name) |
528 |
{ |
529 |
if(how_far_along eq 1) |
530 |
{ |
531 |
particle t16 kill |
532 |
tcount = tcount - 1 |
533 |
} |
534 |
} |
535 |
|
536 |
func void track15(string ai_name) |
537 |
{ |
538 |
if(how_far_along eq 1) |
539 |
{ |
540 |
particle t15 kill |
541 |
tcount = tcount - 1 |
542 |
} |
543 |
} |
544 |
|
545 |
func void track14(string ai_name) |
546 |
{ |
547 |
if(how_far_along eq 1) |
548 |
{ |
549 |
particle t14 kill |
550 |
tcount = tcount - 1 |
551 |
} |
552 |
} |
553 |
|
554 |
func void track13(string ai_name) |
555 |
{ |
556 |
if(how_far_along eq 1) |
557 |
{ |
558 |
particle t13 kill |
559 |
tcount = tcount - 1 |
560 |
} |
561 |
} |
562 |
|
563 |
func void track12(string ai_name) |
564 |
{ |
565 |
if(how_far_along eq 1) |
566 |
{ |
567 |
particle t12 kill |
568 |
tcount = tcount - 1 |
569 |
} |
570 |
} |
571 |
|
572 |
func void track11(string ai_name) |
573 |
{ |
574 |
if(how_far_along eq 1) |
575 |
{ |
576 |
tcount = tcount - 1 |
577 |
particle t11 kill |
578 |
} |
579 |
} |
580 |
|
581 |
func void track10(string ai_name) |
582 |
{ |
583 |
if(how_far_along eq 1) |
584 |
{ |
585 |
particle t10 kill |
586 |
tcount = tcount - 1 |
587 |
} |
588 |
} |
589 |
|
590 |
func void track9(string ai_name) |
591 |
{ |
592 |
if(how_far_along eq 1) |
593 |
{ |
594 |
particle t9 kill |
595 |
tcount = tcount - 1 |
596 |
} |
597 |
} |
598 |
|
599 |
func void track8(string ai_name) |
600 |
{ |
601 |
if(how_far_along eq 1) |
602 |
{ |
603 |
particle t8 kill |
604 |
tcount = tcount - 1 |
605 |
} |
606 |
} |
607 |
|
608 |
func void track7(string ai_name) |
609 |
{ |
610 |
if(how_far_along eq 1) |
611 |
{ |
612 |
particle t7 kill |
613 |
tcount = tcount - 1 |
614 |
} |
615 |
} |
616 |
|
617 |
func void track6(string ai_name) |
618 |
{ |
619 |
if(how_far_along eq 1) |
620 |
{ |
621 |
particle t6 kill |
622 |
tcount = tcount - 1 |
623 |
} |
624 |
} |
625 |
|
626 |
func void track5(string ai_name) |
627 |
{ |
628 |
if(how_far_along eq 1) |
629 |
{ |
630 |
particle t5 kill |
631 |
tcount = tcount - 1 |
632 |
} |
633 |
} |
634 |
|
635 |
func void track4(string ai_name) |
636 |
{ |
637 |
if(how_far_along eq 1) |
638 |
{ |
639 |
particle t4 kill |
640 |
tcount = tcount - 1 |
641 |
} |
642 |
} |
643 |
|
644 |
func void track3(string ai_name) |
645 |
{ |
646 |
if(how_far_along eq 1) |
647 |
{ |
648 |
particle t3 kill |
649 |
tcount = tcount - 1 |
650 |
} |
651 |
} |
652 |
|
653 |
func void track2(string ai_name) |
654 |
{ |
655 |
if(how_far_along eq 1) |
656 |
{ |
657 |
particle t2 kill |
658 |
tcount = tcount - 1 |
659 |
} |
660 |
} |
661 |
|
662 |
func void track1(string ai_name) |
663 |
{ |
664 |
if(how_far_along eq 1) |
665 |
{ |
666 |
particle t1 kill |
667 |
tcount = tcount - 1 |
668 |
} |
669 |
} |
670 |
|
671 |
################### |
672 |
# use manual door # |
673 |
################### |
674 |
func void train_door(string ai_name) |
675 |
{ |
676 |
dprint train_door |
677 |
message_remove xgodoor |
678 |
sleep 60 |
679 |
# Good. Now the door will unlock as the indicator light turns green. |
680 |
particle obj1 kill |
681 |
#light goes green |
682 |
message unlock_door1 240 |
683 |
sleep 40 |
684 |
door_unlock 98 |
685 |
particle door1_locklight02 do start |
686 |
sleep 200 |
687 |
|
688 |
if (how_far_along eq 1) |
689 |
{ |
690 |
message open_door1b 300 |
691 |
sleep 300 |
692 |
} |
693 |
|
694 |
if (how_far_along eq 1) |
695 |
{ |
696 |
# Please proceed to the next room |
697 |
message proceed_door1 300 |
698 |
sleep 300 |
699 |
} |
700 |
if (how_far_along eq 1) |
701 |
{ |
702 |
# message open_door1 |
703 |
} |
704 |
} |
705 |
|
706 |
######## |
707 |
# jump # |
708 |
######## |
709 |
func void train_jump(string ai_name) |
710 |
{ |
711 |
how_far_along = 2; |
712 |
lock_keys keys_inventory |
713 |
message_remove open_door1 |
714 |
message_remove open_door1b |
715 |
message_remove proceed_door1 |
716 |
sleep 120 |
717 |
if (how_far_along eq 2) |
718 |
{ |
719 |
if(powerupon eq 0) |
720 |
{ |
721 |
sound_dialog_play c00_01_49shinatama |
722 |
message jump_basic 240 |
723 |
sleep 240 |
724 |
} |
725 |
} |
726 |
if (how_far_along eq 2) |
727 |
{ |
728 |
if(powerupon eq 0) |
729 |
{ |
730 |
lock_keys keys_jump |
731 |
# SPACE to jump |
732 |
message c01_50_06 |
733 |
chr_wait_animtype 0 jump |
734 |
sleep 60 |
735 |
message_remove c01_50_06 |
736 |
sleep 60 |
737 |
} |
738 |
} |
739 |
if (how_far_along eq 2) |
740 |
{ |
741 |
if(powerupon eq 0) |
742 |
{ |
743 |
sound_dialog_play c00_01_08shinatama |
744 |
} |
745 |
} |
746 |
if (how_far_along eq 2) |
747 |
{ |
748 |
if(powerupon eq 0) |
749 |
{ |
750 |
# directional jumping |
751 |
# (press W and then SPACE when you want to jump) |
752 |
message c01_50_07 |
753 |
chr_wait_animation 0 KONOKOjump_fw_start KONOKOjump_lt_start KONOKOjump_rt_start KONOKOjump_bk_start |
754 |
sleep 60 |
755 |
message_remove c01_50_07 |
756 |
sleep 60 |
757 |
} |
758 |
|
759 |
} |
760 |
if (how_far_along eq 2) |
761 |
{ |
762 |
if(powerupon eq 0) |
763 |
{ |
764 |
# longer hit space, longer jump |
765 |
message jump_basic2 300 |
766 |
sleep 120 |
767 |
} |
768 |
} |
769 |
########################encourage players to jump to next room unless they are on the large crate |
770 |
if (how_far_along eq 2) |
771 |
{ |
772 |
if(powerupon eq 0) |
773 |
{ |
774 |
if(forcefieldstopped eq 0) |
775 |
{ |
776 |
forcefieldstopped = 1; |
777 |
particle forcefield1 do stop |
778 |
sleep 180 |
779 |
} |
780 |
} |
781 |
if(powerupon eq 0) |
782 |
{ |
783 |
if(particlestarted eq 0) |
784 |
{ |
785 |
particlestarted = 1; |
786 |
sound_dialog_play c00_01_50shinatama |
787 |
message jump1 |
788 |
particle obj2 create |
789 |
env_show 2011 0 |
790 |
} |
791 |
|
792 |
} |
793 |
} |
794 |
} |
795 |
|
796 |
func void powerup(string ai_name) |
797 |
{ |
798 |
powerupon = 1 |
799 |
fork pickup_powerup |
800 |
dprint rating |
801 |
rating = rating - 1; |
802 |
message_remove jump_basic |
803 |
message_remove jump_basic2 |
804 |
message_remove good |
805 |
message_remove jump1 |
806 |
# particle obj2 kill |
807 |
sleep 80 |
808 |
if(how_far_along eq 2) |
809 |
{ |
810 |
sound_dialog_play c00_01_46shinatama |
811 |
sound_dialog_play_block pause |
812 |
sleep 30 |
813 |
sound_dialog_play c00_01_47shinatama |
814 |
sound_dialog_play_block pause |
815 |
} |
816 |
#############################encourage players to jump to next room unless they are getting the ammo |
817 |
if(got_ammo eq 0) |
818 |
{ |
819 |
if(how_far_along eq 2) |
820 |
{ |
821 |
# particle obj2 kill |
822 |
message_remove jump1 |
823 |
if(forcefieldstopped eq 0) |
824 |
{ |
825 |
forcefieldstopped =1; |
826 |
particle forcefield1 do stop |
827 |
sleep 180 |
828 |
} |
829 |
} |
830 |
} |
831 |
if(got_ammo eq 0) |
832 |
{ |
833 |
if(how_far_along eq 2) |
834 |
{ |
835 |
sound_dialog_play c00_01_50shinatama |
836 |
if(particlestarted eq 0) |
837 |
{ |
838 |
particlestarted = 1; |
839 |
particle obj2 create |
840 |
env_show 2011 0 |
841 |
} |
842 |
} |
843 |
} |
844 |
} |
845 |
|
846 |
func void pickup_powerup(void) |
847 |
{ |
848 |
# particle obj2 kill |
849 |
message_remove jump1 |
850 |
chr_wait_animtype 0 Pickup_Object |
851 |
got_ammo = 1; |
852 |
sleep 80 |
853 |
message xpower1 300 |
854 |
sleep 120 |
855 |
#########################encourage players to jump to next room unless the messages have already gone by |
856 |
|
857 |
forcefieldstopped = 1; |
858 |
particle forcefield1 do stop |
859 |
sleep 180 |
860 |
if(how_far_along eq 2) |
861 |
{ |
862 |
sound_dialog_play c00_01_50shinatama |
863 |
if(particlestarted eq 0) |
864 |
{ |
865 |
particlestarted = 1; |
866 |
particle obj2 create |
867 |
env_show 2011 0 |
868 |
} |
869 |
} |
870 |
if(how_far_along eq 2) |
871 |
{ |
872 |
message jump1 |
873 |
} |
874 |
} |
875 |
|
876 |
################ |
877 |
# escape moves # |
878 |
################ |
879 |
func void train_crouch(string ai_name) |
880 |
{ |
881 |
how_far_along = 3; |
882 |
trigvolume_enable trigger_volume_62 0 |
883 |
message_remove |
884 |
door_lock 98 |
885 |
particle door1_locklight02 do stop |
886 |
particle obj2 kill |
887 |
particle obj1 kill |
888 |
particle obj_start kill |
889 |
particle obj_end kill |
890 |
particle obj_control kill |
891 |
dprint train_crouch |
892 |
trigvolume_enable trigger_volume_71 0 |
893 |
sleep 60 |
894 |
message_remove |
895 |
particle obj2 kill |
896 |
sound_dialog_play_interrupt c00_01_01shinatama |
897 |
ai2_spawn demo1 |
898 |
ai2_spawn demo2 |
899 |
ai2_spawn demo3 |
900 |
chr_nocollision demo1 1 |
901 |
chr_nocollision demo2 1 |
902 |
chr_nocollision demo3 1 |
903 |
ai2_dopath demo1 pdemo1 |
904 |
ai2_dopath demo2 pdemo2 |
905 |
ai2_dopath demo3 pdemo3 |
906 |
ai2_setjobstate demo1 |
907 |
ai2_setjobstate demo2 |
908 |
ai2_setjobstate demo3 |
909 |
#shift important |
910 |
if(how_far_along eq 3) |
911 |
{ |
912 |
lock_keys keys_crouch |
913 |
message shift 240 |
914 |
sleep 240 |
915 |
} |
916 |
|
917 |
if(how_far_along eq 3) |
918 |
{ |
919 |
# SHIFT to crouch |
920 |
message c01_50_08 |
921 |
chr_wait_animtype 0 crouch |
922 |
sleep 60 |
923 |
message_remove c01_50_08 |
924 |
sleep 120 |
925 |
} |
926 |
|
927 |
if(how_far_along eq 3) |
928 |
{ |
929 |
sleep 30 |
930 |
# sorry to interrupt you |
931 |
sound_dialog_play c00_01_51shinatama |
932 |
sleep 60 |
933 |
message xinterrupt 180 |
934 |
sleep 180 |
935 |
message xfite |
936 |
sleep 30 |
937 |
particle fight create |
938 |
trigvolume_enable trigger_volume_71 1 |
939 |
} |
940 |
} |
941 |
|
942 |
func void crouch2(string ai_name) |
943 |
{ |
944 |
if (how_far_along eq 3) |
945 |
{ |
946 |
message xresume 180 |
947 |
sleep 180 |
948 |
# MOVEWHile crouching |
949 |
message c01_50_09 |
950 |
chr_wait_animtype 0 crouch_run crouch_run_backwards crouch_run_sidestep_left crouch_run_sidestep_right |
951 |
sleep 60 |
952 |
message_remove c01_50_09 |
953 |
sleep 60 |
954 |
message c01_50_10 240 |
955 |
sound_dialog_play_block c00_01_54shinatama |
956 |
sleep 240 |
957 |
|
958 |
} |
959 |
|
960 |
if (how_far_along eq 3) |
961 |
{ |
962 |
# ESCAPE MOVES somersault |
963 |
message c01_50_11 |
964 |
chr_wait_animation 0 KONCOMcrouch_fw KONCOMcrouch_rt KONCOMcrouch_lt KONOKOcrouch_fw KONOKOss_lt_slide KONOKOss_rt_slide KONOKOrun_bk_slide |
965 |
sleep 60 |
966 |
message_remove c01_50_11 |
967 |
sleep 60 |
968 |
} |
969 |
|
970 |
if (how_far_along eq 3) |
971 |
{ |
972 |
# cartwheel |
973 |
message back |
974 |
chr_wait_animtype 0 crouch_back |
975 |
sleep 60 |
976 |
sound_dialog_play_block c00_01_07shinatama |
977 |
message_remove back |
978 |
sleep 60 |
979 |
} |
980 |
|
981 |
if (how_far_along eq 3) |
982 |
{ |
983 |
# SLIDE |
984 |
sleep 30 |
985 |
sound_dialog_play_block c00_01_55shinatama |
986 |
sound_dialog_play_block pause |
987 |
message c01_50_16 |
988 |
chr_wait_animstate 0 run_slide |
989 |
sleep 60 |
990 |
message_remove c01_50_16 |
991 |
sleep 60 |
992 |
} |
993 |
|
994 |
if (how_far_along eq 3) |
995 |
{ |
996 |
# slide under traps |
997 |
# try sliding beneath these moving laser sensors |
998 |
sleep 60 |
999 |
sound_dialog_play_block c00_01_57shinatama |
1000 |
} |
1001 |
if (how_far_along eq 3) |
1002 |
{ |
1003 |
message slide 360 |
1004 |
sleep 30 |
1005 |
trig_activate 3 |
1006 |
sleep 40 |
1007 |
trig_activate 2 |
1008 |
sleep 40 |
1009 |
trig_activate 1 |
1010 |
sleep 300 |
1011 |
sound_dialog_play_block c00_01_56shinatama |
1012 |
sleep 300 |
1013 |
} |
1014 |
|
1015 |
if (how_far_along eq 3) |
1016 |
{ |
1017 |
# especially important when fighting multiple opponents |
1018 |
# message c01_50_13 240 |
1019 |
sound_dialog_play_block c00_01_59shinatama |
1020 |
sound_dialog_play_block pause |
1021 |
sleep 60 |
1022 |
} |
1023 |
|
1024 |
if (how_far_along eq 3) |
1025 |
{ |
1026 |
# JUMP-FLIP |
1027 |
message jump_flip 300 |
1028 |
sleep 300 |
1029 |
} |
1030 |
if (how_far_along eq 3) |
1031 |
{ |
1032 |
message c01_50_19 |
1033 |
chr_wait_animtype 0 flip |
1034 |
message_remove c01_50_19 |
1035 |
sleep 60 |
1036 |
sound_dialog_play_block c00_01_03shinatama |
1037 |
sound_dialog_play_block pause |
1038 |
} |
1039 |
|
1040 |
if (how_far_along eq 3) |
1041 |
{ |
1042 |
# hit opponent on ground |
1043 |
sound_dialog_play_block c00_01_60shinatama |
1044 |
sound_dialog_play_block pause |
1045 |
} |
1046 |
|
1047 |
if (how_far_along eq 3) |
1048 |
{ |
1049 |
# more jump-flip |
1050 |
# starting at the target cursor on the floor, dash and jump-flip up to the next level. |
1051 |
particle forcefield2 do stop |
1052 |
sleep 180 |
1053 |
sound_dialog_play_block c00_01_61shinatama |
1054 |
message c01_50_23 |
1055 |
particle obj3 create |
1056 |
env_show 2012 0 |
1057 |
sleep 600 |
1058 |
} |
1059 |
|
1060 |
if (how_far_along eq 3) |
1061 |
{ |
1062 |
sound_dialog_play_block c00_01_62shinatama |
1063 |
sound_dialog_play_block pause |
1064 |
message_remove c01_50_23 |
1065 |
sleep 60 |
1066 |
message jump_encourage 300 |
1067 |
sleep 300 |
1068 |
} |
1069 |
if (how_far_along eq 1) |
1070 |
{ |
1071 |
message c01_50_23 |
1072 |
sleep 900 |
1073 |
} |
1074 |
|
1075 |
if (how_far_along eq 3) |
1076 |
{ |
1077 |
message_remove c01_50_23 |
1078 |
sleep 60 |
1079 |
} |
1080 |
if (how_far_along eq 3) |
1081 |
{ |
1082 |
sound_dialog_play_block c00_01_63shinatama |
1083 |
particle obj3 kill |
1084 |
sleep 30 |
1085 |
} |
1086 |
if (how_far_along eq 3) |
1087 |
{ |
1088 |
particle obj4 create |
1089 |
message jump_encourage2 |
1090 |
dprint rating |
1091 |
rating = rating + 1; |
1092 |
} |
1093 |
} |
1094 |
|
1095 |
################ |
1096 |
# karen fights # |
1097 |
################ |
1098 |
|
1099 |
func void t71(string ai_name) |
1100 |
{ |
1101 |
message_remove xfite |
1102 |
chr_nocollision demo1 0 |
1103 |
chr_nocollision demo2 0 |
1104 |
chr_nocollision demo3 0 |
1105 |
env_show 2010 1 |
1106 |
chr_changeteam demo1 Syndicate |
1107 |
chr_changeteam demo2 Syndicate |
1108 |
particle fight kill |
1109 |
} |
1110 |
|
1111 |
func void demo3dies(string ai_name) |
1112 |
{ |
1113 |
dprint oh_no |
1114 |
demo3dead = 1; |
1115 |
chr_changeteam demo1 Konoko |
1116 |
chr_changeteam demo2 Konoko |
1117 |
if(trigvolume_count (71) eq 1) |
1118 |
{ |
1119 |
sleep 60 |
1120 |
sound_dialog_play c00_01_52shinatama |
1121 |
sound_dialog_play_block pause |
1122 |
} |
1123 |
sleep 60 |
1124 |
crouch2 |
1125 |
|
1126 |
} |
1127 |
|
1128 |
func void demo_over(string ai_name) |
1129 |
{ |
1130 |
onto_crouch2 = onto_crouch2 + 1 |
1131 |
if(onto_crouch2 eq 2) |
1132 |
{ |
1133 |
ai2_dopath demo3 pdemo4 |
1134 |
ai2_setjobstate demo3 |
1135 |
sleep 90 |
1136 |
sound_dialog_play c00_01_53shinatama |
1137 |
sound_dialog_play_block pause |
1138 |
if(demo3dead eq 0) |
1139 |
{ |
1140 |
crouch2 |
1141 |
} |
1142 |
} |
1143 |
} |