source: nikanabo/current/bsl/onilight/IGMD/EnvWarehouse/training.bsl@ 739

Last change on this file since 739 was 185, checked in by geyser, 18 years ago
File size: 24.1 KB
Line 
1#################
2### VARIABLES ###
3#################
4
5var int rating = 0;
6var int var_training_counter;
7var int var_training_counter2;
8var int var_training_counter3;
9
10#############
11### START ###
12#############
13
14func void deactivate_training_stuff(void)
15{
16#used
17co_message_display = 1
18env_show 2010 0
19particle forcefield1 do start
20particle forcefield2 do start
21particle steam start
22trigvolume_enable tv1 0
23trigvolume_enable tv2 0
24trigvolume_enable tv3 0
25trigvolume_enable tv4 0
26trigvolume_enable tv5 0
27trigvolume_enable tv6 0
28trigvolume_enable tv7 0
29trigvolume_enable tv8 0
30trigvolume_enable tv9 0
31trigvolume_enable tv10 0
32trigvolume_enable tv11 0
33trigvolume_enable tv12 0
34trigvolume_enable tv13 0
35trigvolume_enable tv14 0
36trigvolume_enable tv15 0
37trigvolume_enable tv16 0
38trigvolume_enable tv17 0
39trigvolume_enable tv74 0
40trigvolume_enable tv75 0
41trigvolume_enable tv_end 0
42trigvolume_enable tv_move4 0
43trigvolume_enable tv_review 0
44trigvolume_enable tv_train_door 0
45trigvolume_enable trigger_volume_71 0
46ui_show_element left 0
47ui_show_element right 0
48}
49
50###############
51### TRAINING ###
52###############
53
54### MOVEMENT ###
55
56#tv20 - at the start point
57func void train_movement(string ai_name)
58{
59trigvolume_enable tv_train_movement 0
60fork deactivate_training_stuff
61splash_screen training_splash_screen
62fade_out 0 0 0 0
63lock_keys
64lock_keys keys_pause
65lock_keys keys_action
66lock_keys keys_movement
67fade_in 60
68sleep 10
69sound_music_start atm_gr06 0
70sound_music_volume atm_gr06 0.7 3.0
71fork lights
72message xwelcome 240
73sound_dialog_play c00_01_29shinatama
74sound_dialog_play_block pause
75sleep 30
76sound_dialog_play c00_01_30shinatama
77sound_dialog_play_block pause
78sleep 30
79sound_dialog_play c00_01_32shinatama
80sound_dialog_play_block pause
81sleep 30
82sound_dialog_play_block c00_01_33shinatama
83sound_dialog_play_block pause
84message xdash1
85fork encourage_dash
86chr_wait_animation 0 KONSPRrun_lt KONSPRrun_rt
87var_training_counter2 = 1
88message_remove
89sleep 60
90message xdash2 180
91sound_dialog_play c00_01_37shinatama
92sleep 180
93message xgotrack
94sound_dialog_play_block c00_01_40shinatama
95particle obj_start create
96trigvolume_enable tv_move4 1
97}
98
99#tv50 - in front of console 10 (func: move2); I've disabled it
100
101func void lights(void)
102{
103particle t17 create
104sleep 60
105particle t16 create
106sleep 60
107particle t15 create
108sleep 60
109particle t14 create
110sleep 60
111particle t13 create
112sleep 60
113particle t12 create
114sleep 60
115particle t11 create
116sleep 60
117particle t10 create
118sleep 60
119particle t9 create
120sleep 60
121particle t8 create
122sleep 60
123particle t7 create
124sleep 60
125particle t6 create
126sleep 60
127particle t5 create
128sleep 60
129particle t4 create
130sleep 60
131particle t3 create
132sleep 60
133particle t2 create
134sleep 60
135particle t1 create
136}
137
138func void encourage_dash(string ai_name)
139{
140sleep 600
141if(var_training_counter2 ne 1)
142 {
143 sound_dialog_play c00_01_39shinatama
144 message xencouragedash
145 rating = rating + 1
146 }
147}
148
149#tv51 - where you start your dash
150func void move4(string ai_name)
151{
152message_remove xgotrack
153var_training_counter = 0
154trigvolume_enable tv1 1
155trigvolume_enable tv2 1
156trigvolume_enable tv3 1
157trigvolume_enable tv4 1
158trigvolume_enable tv5 1
159trigvolume_enable tv6 1
160trigvolume_enable tv7 1
161trigvolume_enable tv8 1
162trigvolume_enable tv9 1
163trigvolume_enable tv10 1
164trigvolume_enable tv11 1
165trigvolume_enable tv12 1
166trigvolume_enable tv13 1
167trigvolume_enable tv14 1
168trigvolume_enable tv15 1
169trigvolume_enable tv16 1
170trigvolume_enable tv17 1
171particle obj_start kill
172sound_dialog_play_interrupt c00_01_41shinatama
173sleep 60
174message xrun
175particle obj_end create
176trigvolume_enable tv_end 1
177}
178
179#tv34 - next to the 1st red light
180func void track17(string ai_name)
181{
182particle t17 kill
183var_training_counter = var_training_counter + 1
184}
185
186#tv33 - next to the 2nd red light
187func void track16(string ai_name)
188{
189fork speed_timer
190particle t16 kill
191var_training_counter = var_training_counter + 1
192}
193
194#tv35 - next to the 3rd red light
195func void track15(string ai_name)
196{
197particle t15 kill
198var_training_counter = var_training_counter + 1
199}
200
201#tv37 - next to the 4th red light
202func void track14(string ai_name)
203{
204particle t14 kill
205var_training_counter = var_training_counter + 1
206}
207
208#tv38 - next to the 5th red light
209func void track13(string ai_name)
210{
211particle t13 kill
212var_training_counter = var_training_counter + 1
213}
214
215#tv39 - next to the 6th red light
216func void track12(string ai_name)
217{
218particle t12 kill
219var_training_counter = var_training_counter + 1
220}
221
222#tv40 - next to the 7th red light
223func void track11(string ai_name)
224{
225particle t11 kill
226var_training_counter = var_training_counter + 1
227}
228
229#tv41 - next to the 8th red light
230func void track10(string ai_name)
231{
232particle t10 kill
233var_training_counter = var_training_counter + 1
234}
235
236#tv36 - next to the 9th red light
237func void track9(string ai_name)
238{
239particle t9 kill
240var_training_counter = var_training_counter + 1
241}
242
243#tv42 - next to the 10th red light
244func void track8(string ai_name)
245{
246particle t8 kill
247var_training_counter = var_training_counter + 1
248}
249
250#tv43 - next to the 11th red light
251func void track7(string ai_name)
252{
253particle t7 kill
254var_training_counter = var_training_counter + 1
255}
256
257#tv44 - next to the 12th red light
258func void track6(string ai_name)
259{
260particle t6 kill
261var_training_counter = var_training_counter + 1
262}
263
264#tv45 - next to the 13th red light
265func void track5(string ai_name)
266{
267particle t5 kill
268var_training_counter = var_training_counter + 1
269}
270
271#tv46 - next to the 14th red light
272func void track4(string ai_name)
273{
274particle t4 kill
275var_training_counter = var_training_counter + 1
276}
277
278#tv47 - next to the 15th red light
279func void track3(string ai_name)
280{
281particle t3 kill
282var_training_counter = var_training_counter + 1
283}
284
285#tv48 - next to the 16th red light
286func void track2(string ai_name)
287{
288particle t2 kill
289var_training_counter = var_training_counter + 1
290}
291
292#tv49 - next to the 17th red light
293func void track1(string ai_name)
294{
295particle t1 kill
296var_training_counter = var_training_counter + 1
297}
298
299func void speed_timer(void)
300{
301sleep 540
302var_training_counter3 = 1
303}
304
305#tv52 - at the end of the dash course; in some distance after tv49
306func void track_end(string ai_name)
307{
308particle obj_end kill
309message_remove
310sleep 60
311if(var_training_counter eq 17)
312 {
313 if(var_training_counter3 eq 1)
314 {
315 rating = rating + 1
316 sound_dialog_play_block c00_01_11shinatama
317 message xgoodbutslow 120
318 sleep 120
319 }
320 else
321 {
322 sound_dialog_play_block c00_01_42shinatama
323 message xgreat 120
324 sleep 120
325 }
326 message xendbasic 240
327 sound_dialog_play_block c00_01_44shinatama
328 sleep 240
329 message xgodoor
330 sound_dialog_play c00_01_48shinatama
331 trigvolume_enable tv_train_door 1
332 particle obj1 create
333 }
334if(var_training_counter < 17)
335 {
336 if(var_training_counter3 eq 1)
337 {
338 rating = rating + 2
339 sound_dialog_play_block c00_01_43shinatama
340 message xslowtoo 360
341 sleep 360
342 }
343 else
344 {
345 rating = rating + 1
346 sound_dialog_play_block c00_01_43shinatama
347 message xpractice 360
348 sleep 360
349 }
350 fork try_it_again
351 }
352}
353
354func void try_it_again(void)
355{
356var_training_counter2 = 0
357var_training_counter3 = 0
358sleep 60
359particle obj_start create
360message xgotrack
361particle t17 kill
362particle t16 kill
363particle t15 kill
364particle t14 kill
365particle t13 kill
366particle t12 kill
367particle t11 kill
368particle t10 kill
369particle t9 kill
370particle t8 kill
371particle t7 kill
372particle t6 kill
373particle t5 kill
374particle t4 kill
375particle t3 kill
376particle t2 kill
377particle t1 kill
378particle t17 create
379particle t16 create
380particle t15 create
381particle t14 create
382particle t13 create
383particle t12 create
384particle t11 create
385particle t10 create
386particle t9 create
387particle t8 create
388particle t7 create
389particle t6 create
390particle t5 create
391particle t4 create
392particle t3 create
393particle t2 create
394particle t1 create
395trigvolume_reset tv1
396trigvolume_reset tv2
397trigvolume_reset tv3
398trigvolume_reset tv4
399trigvolume_reset tv5
400trigvolume_reset tv6
401trigvolume_reset tv7
402trigvolume_reset tv8
403trigvolume_reset tv9
404trigvolume_reset tv10
405trigvolume_reset tv11
406trigvolume_reset tv12
407trigvolume_reset tv13
408trigvolume_reset tv14
409trigvolume_reset tv15
410trigvolume_reset tv16
411trigvolume_reset tv17
412trigvolume_reset tv_end
413trigvolume_reset tv_move4
414}
415
416#tv53 - in front of console 11 (func: review); I've disabled it
417
418#tv22 - in front of door 98
419func void train_door(string ai_name)
420{
421message_remove
422sleep 60
423particle obj1 kill
424message unlock_door1 240
425particle door1_locklight02 do start
426door_unlock 98
427}
428
429### JUMP ###
430
431#tv25 - after door 98
432func void train_jump(string ai_name)
433{
434var_training_counter = 0
435var_training_counter2 = 0
436var_training_counter3 = 0
437lock_keys keys_inventory
438message_remove
439sound_dialog_play_interrupt c00_01_49shinatama
440sleep 60
441message jump_basic 180
442sleep 180
443lock_keys keys_jump
444message c01_50_06
445chr_wait_animtype 0 jump
446message_remove c01_50_06
447sleep 60
448sound_dialog_play c00_01_08shinatama
449message c01_50_07
450chr_wait_animation 0 KONOKOjump_fw_start KONOKOjump_lt_start KONOKOjump_rt_start KONOKOjump_bk_start
451message_remove c01_50_07
452sleep 60
453sound_dialog_play c00_01_02shinatama
454message jump_basic2 180
455sleep 180
456message jump1
457sound_dialog_play c00_01_50shinatama
458particle forcefield1 do stop
459particle obj2 create
460env_show 2011 0
461}
462
463#tv54 - on the box with the energy cell
464func void powerup(string ai_name)
465{
466fork pickup_powerup
467sleep 80
468sound_dialog_play_interrupt c00_01_46shinatama
469sound_dialog_play_block pause
470sleep 30
471sound_dialog_play c00_01_47shinatama
472sound_dialog_play_block pause
473sleep 30
474if(var_training_counter ne 1) sound_dialog_play c00_01_50shinatama
475}
476
477func void pickup_powerup(void)
478{
479chr_wait_animtype 0 Pickup_Object
480rating = rating - 1
481sleep 80
482message xpower1 300
483}
484
485### CROUCH ###
486
487#tv21 - after the forcefield
488func void train_crouch(string ai_name)
489{
490trigvolume_enable trigger_volume_62 0
491message_remove
492var_training_counter = 1
493particle door1_locklight02 do stop
494door_lock 98
495particle obj2 kill
496sleep 60
497sound_dialog_play_interrupt c00_01_01shinatama
498ai2_spawn demo1
499ai2_spawn demo2
500ai2_spawn demo3
501chr_nocollision demo1 1
502chr_nocollision demo2 1
503chr_nocollision demo3 1
504ai2_dopath demo1 pdemo1
505ai2_dopath demo2 pdemo2
506ai2_dopath demo3 pdemo3
507ai2_setjobstate demo1
508ai2_setjobstate demo2
509ai2_setjobstate demo3
510lock_keys keys_crouch
511message shift 120
512sleep 120
513sound_dialog_play c00_01_51shinatama
514message xinterrupt 120
515sleep 120
516message xfite
517particle fight create
518trigvolume_enable trigger_volume_71 1
519}
520
521#tv66 - on the box which is in front of the window
522func void t71(string ai_name)
523{
524var_training_counter = 0
525particle fight kill
526message_remove xfite
527chr_nocollision demo1 0
528chr_nocollision demo2 0
529chr_nocollision demo3 0
530env_show 2010 1
531chr_changeteam demo1 Syndicate
532chr_changeteam demo2 Syndicate
533}
534
535#lose func of demo1 and demo2
536func void demo_over(string ai_name)
537{
538var_training_counter = var_training_counter + 1
539if(var_training_counter eq 2)
540 {
541 ai2_dopath demo3 pdemo4
542 ai2_setjobstate demo3
543 sleep 90
544 message xresume 180
545 sound_dialog_play c00_01_53shinatama
546 sound_dialog_play_block pause
547 if(var_training_counter < 10) crouch2
548 }
549}
550
551#lose func of demo3
552func void demo3dies(string ai_name)
553{
554var_training_counter = 10
555chr_changeteam demo1 Konoko
556chr_changeteam demo2 Konoko
557sleep 60
558message xresume 180
559sound_dialog_play c00_01_52shinatama
560sound_dialog_play_block pause
561crouch2
562}
563
564func void crouch2(string ai_name)
565{
566var_training_counter = 0
567message c01_50_09
568chr_wait_animtype 0 crouch_run crouch_run_backwards crouch_run_sidestep_left crouch_run_sidestep_right
569sleep 60
570message_remove c01_50_09
571sleep 60
572message c01_50_10 240
573sound_dialog_play_block c00_01_54shinatama
574sleep 240
575message c01_50_11
576chr_wait_animation 0 KONCOMcrouch_fw KONCOMcrouch_rt KONCOMcrouch_lt KONOKOcrouch_fw KONOKOss_lt_slide KONOKOss_rt_slide KONOKOrun_bk_slide
577message_remove c01_50_11
578sleep 60
579sound_dialog_play_block c00_01_05shinatama
580sound_dialog_play_block pause
581sleep 30
582message back
583chr_wait_animtype 0 crouch_back
584message_remove back
585sleep 60
586sound_dialog_play_block c00_01_07shinatama
587sound_dialog_play_block pause
588sleep 30
589sound_dialog_play_block c00_01_55shinatama
590sound_dialog_play_block pause
591message c01_50_16
592chr_wait_animstate 0 run_slide
593message_remove c01_50_16
594sleep 60
595sound_dialog_play_block c00_01_06shinatama
596sound_dialog_play_block pause
597sleep 30
598message jump_flip
599message c01_50_19
600chr_wait_animtype 0 flip
601message_remove
602sleep 60
603sound_dialog_play_block c00_01_03shinatama
604sound_dialog_play_block pause
605particle forcefield2 do stop
606env_show 2012 0
607sleep 60
608sound_dialog_play_block c00_01_61shinatama
609message c01_50_23
610particle obj3 create
611sleep 600
612if(var_training_counter ne 1)
613 {
614 rating = rating + 1
615 sound_dialog_play_block c00_01_62shinatama
616 sound_dialog_play_block pause
617 message_remove c01_50_23
618 sleep 60
619 message jump_encourage 300
620 sleep 300
621 message c01_50_23
622 sleep 900
623 }
624if(var_training_counter ne 1)
625 {
626 rating = rating + 1
627 message_remove c01_50_23
628 sleep 60
629 sound_dialog_play_block c00_01_63shinatama
630 particle obj3 kill
631 sleep 30
632 particle obj4 create
633 message jump_encourage2
634 }
635}
636
637### FIGHT ###
638
639#tv23 - after the forcefield
640func void train_fighting(string ai_name)
641{
642var_training_counter = 1
643music_stop
644particle obj3 kill
645particle obj4 kill
646trig_deactivate 1
647trig_deactivate 2
648trig_deactivate 3
649message_remove
650sleep 60
651sound_dialog_play_interrupt c00_01_64shinatama
652message begin_fight 240
653sleep 240
654lock_keys keys_attack
655message xpunch
656chr_wait_animtype 0 punch
657message_remove xpunch
658sleep 60
659message xkick
660chr_wait_animtype 0 kick
661message_remove xkick
662sleep 60
663sound_dialog_play_block c00_01_65shinatama
664message punch
665chr_wait_animtype 0 punch2
666message_remove punch
667sleep 60
668message c01_50_27 180
669sound_dialog_play_interrupt c00_01_66shinatama
670sound_dialog_play_block pause
671var_training_counter = 0
672message c01_50_29
673fork wait_for_combo
674chr_wait_animtype 0 ppk
675var_training_counter = 1
676message_remove
677sleep 60
678message xppk
679sound_dialog_play_interrupt c00_01_07shinatama
680sleep 30
681message_remove xppk
682sound_dialog_play_block c00_01_70shinatama
683sound_dialog_play_block pause
684sleep 30
685sound_dialog_play_block c00_01_71shinatama
686message xspar2
687ai2_spawn dum_hit_flash
688chr_lock_active dum_hit_flash
689chr_death_lock dum_hit_flash 1
690particle door2_locklight02 do start
691door_unlock 99
692}
693
694func void wait_for_combo(string ai_name)
695{
696sleep 600
697if(var_training_counter eq 0)
698 {
699 rating = rating + 1
700 message_remove c01_50_29
701 sound_dialog_play_block c00_01_68shinatama
702 sleep 60
703 }
704if(var_training_counter eq 0)
705 {
706 message c01_50_29b 240
707 sleep 240
708 }
709if(var_training_counter eq 0) message c01_50_29
710}
711
712### FIGHT AIGAINST NEUTRAL DRONE ###
713
714#tv27 - after door 99
715func void train_hit_flash(string ai_name)
716{
717sound_music_start atm_ft68 0
718sound_music_volume atm_ft68 0.75 3.0
719message_remove xspar2
720sleep 60
721sound_dialog_play_block c00_01_77shinatama
722message start_hit
723ai2_makeignoreplayer dum_hit_flash 1
724}
725
726#tv68 - the field with the drone (exit func)
727func void flash_path(string ai_name)
728{
729sleep 90
730ai2_dopath dum_hit_flash patrol_dum_hit_flash
731}
732
733#hit func of dum_hit_flash
734func void hurt_dummy1(string ai_name)
735{
736particle steam stop
737particle door2_locklight02 do stop
738door_lock 99
739message_remove start_hit
740sleep 60
741ai2_dopath dum_hit_flash patrol_dum_hit_flash
742ai2_setjobstate dum_hit_flash
743message c01_50_35 240
744sleep 240
745message blueflash 240
746sleep 240
747message c01_50_37 240
748sleep 240
749message c01_50_38 240
750sleep 240
751sound_dialog_play_block c00_01_78shinatama
752sleep 360
753message goto_throw
754particle door3_locklight02 do start
755door_unlock 100
756ai2_spawn dum_train_throw
757chr_lock_active dum_train_throw
758chr_death_lock dum_train_throw 1
759ai2_makeignoreplayer dum_train_throw 1
760}
761
762#lose func of dum_hit_flash
763func void regen1(string ai_name)
764{
765message_remove blueflash
766message_remove c01_50_37
767message_remove c01_50_38
768sleep 60
769message xregen1 180
770sleep 180
771chr_set_health dum_hit_flash 50
772ai2_dopath dum_hit_flash patrol_dum_hit_flash
773ai2_setjobstate dum_hit_flash
774}
775
776### THROW ###
777
778#tv26 - after door 100
779func void train_throw(string ai_name)
780{
781var_training_counter = 0
782message_remove
783sleep 60
784sound_dialog_play_interrupt c00_01_79shinatama
785ai2_dopath dum_train_throw patrol_train_throw2
786ai2_setjobstate dum_train_throw
787message c01_50_41
788chr_wait_animtype 0 throw_forward_punch throw_forward_kick run_throw_forward_punch run_throw_forward_kick
789message_remove c01_50_41
790sleep 60
791message xthrow1 300
792sleep 300
793message xthrow2 300
794sleep 300
795sound_dialog_play c00_01_48shinatama
796message goto_block
797sleep 60
798door_unlock 101
799particle door4_locklight02 do start
800particle door4b_locklight02 do start
801ai2_spawn dum_train_block
802ai2_makeignoreplayer dum_train_block 1
803chr_invincible 0 1
804}
805
806#tv67 - the field with the drone
807func void throw_path(string ai_name)
808{
809sleep 90
810ai2_dopath dum_train_throw patrol_train_throw2
811}
812
813#hit func of dum_train_throw
814func void lockthrow(void)
815{
816particle door3_locklight02 do stop
817door_lock 100
818}
819
820#lose func of dum_train_throw
821func void regen2(string ai_name)
822{
823sleep 60
824message xregen1 180
825sleep 180
826chr_set_health dum_train_throw 50
827ai2_dopath dum_train_throw patrol_train_throw2
828ai2_setjobstate dum_train_throw
829}
830
831### BLOCK ###
832
833#tv24 - after door 101
834func void train_block(string ai_name)
835{
836message_remove goto_block
837sound_dialog_play_block c00_01_72shinatama
838sound_dialog_play_block pause
839sound_dialog_play_block c00_01_73shinatama
840if(var_training_counter ne 1) message c01_50_33
841}
842
843#tv29 - the field with the drone (entry func)
844func void train_block2(string ai_name)
845{
846var_training_counter = 1
847ai2_makeignoreplayer dum_train_block 0
848ai2_dopath dum_train_block patrol_56b
849ai2_setjobstate dum_train_block
850if(var_training_counter2 ne 1) go_on
851}
852
853func void go_on(void)
854{
855var_training_counter2 = 1
856message_remove c01_50_33
857door_lock 101
858door_close 101
859particle door4_locklight02 do stop
860chr_delete dum_train_throw
861chr_delete dum_hit_flash
862chr_delete demo1
863chr_delete demo2
864chr_delete demo3
865sleep 60
866message c01_50_32 300
867sound_dialog_play_block c00_01_74shinatama
868sound_dialog_play_pause
869sleep 30
870sound_dialog_play_block c00_01_75shinatama
871message xblocking2 300
872sound_dialog_play_pause
873sleep 30
874sound_dialog_play_block c00_01_76shinatama
875sleep 120
876ai2_makeignoreplayer dum_train_block 1
877ai2_dopath dum_train_block patrol_56b
878ai2_setjobstate dum_train_block
879sound_dialog_play_block c00_01_83shinatama
880door_unlock 102
881particle door5_locklight02 do start
882message goto_shoot
883chr_inv_reset 0
884music_stop
885sleep 60
886ai2_spawn dum_train_shoot
887ai2_spawn dum_train_shoot2
888ai2_passive dum_train_shoot 1
889ai2_passive dum_train_shoot2 1
890chr_invincible dum_train_shoot 1
891chr_invincible dum_train_shoot2 1
892chr_invincible 0 0
893}
894
895#tv29 - the field with the drone (exit func)
896func void block_path(string ai_name)
897{
898var_training_counter = 0
899message xdronedeactive 180
900ai2_makeignoreplayer dum_train_block 1
901ai2_dopath dum_train_block patrol_56
902}
903
904#lose func of dum_train_block
905func void disable_tv46(void)
906{
907message_remove c01_50_33
908trigvolume_enable trigger_volume_46 0
909}
910
911#tv78 - in front of door 102
912func void block_path2(string ai_name)
913{
914ai2_makeignoreplayer dum_train_block 1
915ai2_dopath dum_train_block patrol_56
916}
917
918### SHOOT ###
919
920#tv28 - after door 102
921func void train_shoot(string ai_name)
922{
923var_training_counter = 0
924var_training_counter2 = 0
925fork wait_for_reload
926message_remove xdronedeactive
927particle g_tap1 create
928sleep 7
929weapon_spawn w1_tap 7042
930wp_disable_fade = 1
931message_remove goto_shoot
932sleep 60
933lock_keys keys_reload
934sound_dialog_play_interrupt c00_01_84shinatama
935sound_dialog_play_pause
936chr_wait_animtype 0 Pickup_Pistol Pickup_Pistol_Mid
937particle door5_locklight02 do stop
938door_lock 102
939trigvolume_enable tv74 1
940trigvolume_enable tv75 1
941ui_show_element left 1
942sleep 60
943message c01_50_54
944sound_dialog_play_block c00_01_85shinatama
945chr_wait_animtype 0 Autopistol_Recoil
946sleep 120
947message_remove c01_50_54
948}
949
950func void wait_for_reload(void)
951{
952chr_wait_animtype 0 reload_pistol reload_rifle
953var_training_counter2 = var_training_counter2 + 1
954if(var_training_counter2 > 1) rating = rating + 1
955sleep 180
956if(save_point eq 0) fork wait_for_reload
957}
958
959#tv69 - the complete room
960func void need_ammo(string ai_name)
961{
962trigvolume_enable tv74 0
963if(chr_has_empty_weapon(0) eq 1)
964 {
965 if(var_training_counter eq 0 and var_training_counter3 ne 1) need_red_clips
966 if(var_training_counter eq 1 and var_training_counter3 ne 1) need_green_cells
967 }
968sleep 60
969if(var_training_counter ne 10) trigvolume_enable tv74 1
970}
971
972func void need_red_clips(void)
973{
974var_training_counter3 = 1
975if(var_training_counter2 eq 0)
976 {
977 message_remove xkeepshoot
978 sound_dialog_play_interrupt c00_01_87shinatama
979 message c01_50_61
980 }
981particle g_tap1 create
982sleep 7
983powerup_spawn ammo 7042
984if(var_training_counter2 eq 0)
985 {
986 chr_wait_animtype 0 Pickup_Object_Mid Pickup_Object
987 message_remove c01_50_61
988 sleep 60
989 message xreload
990 chr_wait_animtype 0 reload_pistol
991 message_remove xreload
992 sleep 60
993 message xkeepshoot
994 }
995if(var_training_counter2 > 0) chr_wait_animtype 0 reload_pistol
996var_training_counter3 = 0
997}
998
999func void need_green_cells(void)
1000{
1001var_training_counter3 = 1
1002particle g_phr1 create
1003sleep 7
1004powerup_spawn cell 7044
1005chr_wait_animtype 0 reload_riffle
1006var_training_counter3 = 0
1007}
1008
1009#tv70 - the complete room
1010func void targets_gone(string ai_name)
1011{
1012trigvolume_enable tv75 0
1013if(env_broken(3001, 3018) eq 18) targets_are_gone
1014else
1015 {
1016 sleep 60
1017 trigvolume_enable tv75 1
1018 }
1019}
1020
1021func void targets_are_gone(void)
1022{
1023var_training_counter = 1
1024message_remove xkeepshoot
1025particle g_phr1 create
1026sleep 7
1027weapon_spawn w3_phr 7045
1028sound_dialog_play_interrupt c00_01_86shinatama
1029sound_dialog_play_block pause
1030message c01_50_51
1031message c01_50_53
1032sound_dialog_play_block c00_01_88shinatama
1033chr_wait_animtype 0 Pickup_Rifle Pickup_Rifle_Mid
1034message_remove
1035sleep 30
1036ai2_passive dum_train_shoot 0
1037sound_dialog_play_interrupt c00_01_89shinatama
1038ai2_dopath dum_train_shoot patrol_train_shoot
1039ai2_setjobstate dum_train_shoot
1040chr_invincible dum_train_shoot 0
1041}
1042
1043#lose func of dum_train_shoot
1044func void droid1_gone(string ai_name)
1045{
1046sound_dialog_play_block c00_01_90shinatama
1047sound_dialog_play_block pause
1048sleep 30
1049ai2_passive dum_train_shoot2 0
1050ai2_dopath dum_train_shoot2 patrol_train_shoot2
1051ai2_setjobstate dum_train_shoot2
1052chr_invincible dum_train_shoot2 0
1053}
1054
1055#lose func of dum_train_shoot2
1056func void droid2_gone(string ai_name)
1057{
1058var_training_counter = 10
1059message_remove
1060if(rating < 1) message poopy 300
1061if(rating eq 1) message poopy2 300
1062if(rating eq 2) message poopy3 300
1063if(rating eq 3) message poopy4 300
1064if(rating eq 4) message poopy5 300
1065if(rating eq 5) message poopy6 300
1066if(rating > 5) message poopy7 300
1067sound_dialog_play_block c00_01_91shinatama
1068sound_dialog_play_block pause
1069wp_disable_fade = 0
1070lock_keys keys_all
1071sleep 60
1072fade_out 0 0 0 30
1073sleep 30
1074ui_show_element right 1
1075save_point = 1
1076fork remove_ai
1077fork start
1078fade_in 30
1079}
1080
1081#####################
1082### TEXT CONSOLES ###
1083#####################
1084
1085#console 11
1086func void review2(string ai_name)
1087{
1088text_console level_1c
1089console_reset 11
1090}
1091
1092#console 18
1093func void console_jump(string ai_name)
1094{
1095text_console level_1g
1096console_reset 18
1097}
1098
1099#console 17
1100func void console_escape(string ai_name)
1101{
1102text_console level_1h
1103console_reset 17
1104}
1105
1106#console 16
1107func void console_attack(string ai_name)
1108{
1109text_console level_1i
1110console_reset 16
1111}
1112
1113#console 15
1114func void console_flash(string ai_name)
1115{
1116text_console level_1j
1117console_reset 15
1118}
1119
1120#console 14
1121func void console_throw(string ai_name)
1122{
1123text_console level_1k
1124console_reset 14
1125}
1126
1127#console 13
1128func void console_block(string ai_name)
1129{
1130text_console level_1l
1131console_reset 13
1132}
1133
1134#console 12
1135func void lastreview(string ai_name)
1136{
1137text_console level_1f
1138console_reset 12
1139}
Note: See TracBrowser for help on using the repository browser.