source: nikanabo/current/bsl/original/IGMD/compound/compound.bsl @ 185

Last change on this file since 185 was 185, checked in by geyser, 14 years ago
File size: 30.1 KB
Line 
1#       mountain compound
2#       scripts for level 19 by wu
3#       
4#       LEGEND
5#
6#       character naming convention: X_Yx
7#       where X = area letter (A=first area, B=second area, etc.)
8#             Y = character type (N=ninja, T=tanker, S=striker, R=red, etc.)
9#               x = character number, usually same as character's initial patrol id
10#
11#       trigger volume scripts: t##, where ## refers to trigger volume id
12#       
13#       CONTENTS
14#       
15#       0.temporary debugging scripts
16#       1.variables defined
17#       1b.music scripts
18#       2.start and objectives scripts
19#       3.save game scripts
20#       4.cut scene scripts
21#       5.console scripts
22#       6.trigger volume scripts
23
24#       temporary debugging scripts     #
25
26func void xxx(void)
27{
28        ParkLeft
29        t11
30        sleep 300
31        Truck
32}
33
34func void truck(string ai_name)
35{
36#       ai2_ignore_player=1
37        omnipotent=1
38        invincible=1
39        chr_teleport 0 4
40}
41
42func void computer(string ai_name)
43{
44#       ai2_ignore_player=1
45        dprint WALK_BACKWARDS_DOWN_THE_STAIRS_TO_OPEN_DOOR
46        omnipotent=1
47        invincible=1
48        chr_teleport 0 6
49}
50
51func void e(string ai_name)
52{
53        ai2_ignore_player=1
54        chr_teleport 0 100
55}
56
57func void butcher_test(void)
58{
59        invincible = 1
60        omnipotent = 1
61        extra_guys = 1
62        fork dish
63}
64
65func void test_setup(void)
66{
67        ai2_allpassive 1       
68
69        playback GrifElite01 GrifElite01Set
70        playback GrifElite02 GrifElite02Set
71        playback GrifElite03 GrifElite03Set
72        sleep f10
73        playback GrifElite02 GrifElite02Set
74        sleep f5
75        playback GrifElite03 GrifElite03Set
76        sleep f300
77
78
79        chr_envanim Griffin GrifGrifBox01
80        if (extra_guys eq 1) {
81                chr_envanim GrifOps01 GrifOps01Box01
82                chr_envanim GrifOps02 GrifOps02Box01
83        }
84        if (extra_guys eq 0) {
85                chr_envanim GrifOps02 GrifOps01Box01
86        }
87        chr_envanim GrifOps03 GrifOps03Box01
88        chr_animate Griffin COMGUYlev7_helistand 500
89        chr_animate GrifOps01 STRIKEcrouch_idle 400
90        chr_animate GrifOps02 STRIKEcrouch_idle 400
91        chr_animate GrifOps03 STRIKEcrouch_idle 400
92        sleep f90
93        sleep f200
94        chr_envanim Griffin GrifGrifBox02 norotation
95        if (extra_guys eq 1) {
96                chr_envanim GrifOps01 GrifOps01Box02 norotation
97                chr_envanim GrifOps02 GrifOps02Box02 norotation
98        }
99        if (extra_guys eq 0) {
100                chr_envanim GrifOps02 GrifOps01Box02 norotation
101        }
102        chr_envanim GrifOps03 GrifOps03Box02 norotation
103        chr_animate Griffin COMGUYlev7_Grif
104        if (extra_guys eq 1) {
105                chr_animate GrifOps01 STRIKElev7_Ops01
106                chr_animate GrifOps02 STRIKElev7_Ops02
107        }
108        if (extra_guys eq 0) {
109                chr_animate GrifOps02 STRIKElev7_Ops01
110        }
111        chr_animate GrifOps03 STRIKElev7_Ops03
112        sleep f240
113        playback Griffin GrifGrifRunAlt
114        if (extra_guys eq 1) {
115                playback GrifOps01 GrifOps01Run
116                playback GrifOps02 GrifOps02Run
117        }
118        if (extra_guys eq 0) {
119                playback GrifOps02 GrifOps01Run
120        }
121        sleep f10
122        playback_block GrifOps03 GrifOps03Run
123
124        sleep f300
125
126        playback GrifElite04 GrifWave2_Run1
127        playback GrifElite06 GrifWave2_Run3
128        playback_block GrifElite05 GrifWave2_Run1
129        sleep f300
130       
131
132        ai2_allpassive 0
133}
134
135func void test_boyz(void)
136{
137        playback Griffin GrifGrifRunAlt
138        if (extra_guys eq 1) {
139                playback GrifOps01 GrifOps01Run
140                playback GrifOps02 GrifOps02Run
141        }
142        if (extra_guys eq 0) {
143                playback GrifOps02 GrifOps01Run
144        }
145        sleep f10
146        playback_block GrifOps03 GrifOps03Run
147}
148
149###############################
150#       variables defined       #
151###############################
152
153var int counter=2;
154var int my_save_point=0;
155var int console_count=0;
156var int stairs_open=0;
157var int comdies_ok=0;
158var int conused_ok=0;
159var int platform_ok=0;
160var int thru_door;
161var int count_swat_dies=3;
162var int console100used;
163var int console200used;
164var int console300used;
165var int console101used;
166var int count_attack3;
167var int muro_in_danger=0;
168var int round2_spawned=0;
169var int extra_guys=0;
170
171###############################
172#               music                 #
173###############################
174
175func void music_intro(void)
176{
177        sound_music_start mus_om01 .9
178#       stopped at set_objective_2
179}
180
181func void music_guns_timer(void)
182{
183        dprint OBSOLETE_music_guns_timer
184}
185
186func void music_truck(void)
187{
188        sound_music_start mus_asianb
189#       this music stopped at the end of the truck cutscene
190}
191
192func void stop_music_truck(void)
193{
194        sound_music_stop mus_asianb
195#       this music stopped at the end of the truck cutscene
196}
197
198func void music_guns(void)
199{
200        sound_music_start mus_main03_hd
201#       this music stopped in console301 or console300
202}
203
204func void music_guns_stop(void)
205{
206        sound_music_stop mus_main03_hd
207}
208
209func void music_battle(void)
210{
211        dprint MUSIC_BATTLE
212        sound_music_start mus_ot
213#       this music stopped in Outro
214}
215
216func void music_stop(void)
217{
218        dprint STOP_THE_MUSIC
219        sound_music_stop mus_om01
220        sound_music_stop mus_asianb
221        sound_music_stop mus_main03
222        sound_music_stop mus_main03_hd
223}
224
225###############################
226#       start and objectives    #
227###############################
228func void paths(string ai_name)
229{
230        ai2_dopath GrifOps01 patrol_521
231        ai2_dopath GrifOps02 patrol_515
232        ai2_dopath GrifOps03 patrol_517
233        ai2_dopath GrifElite01 patrol_513
234        ai2_dopath GrifElite02 patrol_514
235        ai2_dopath GrifElite03 patrol_518
236}
237
238func void spawnA(void)
239{
240        ai2_spawn A_S1
241        ai2_spawn A_S2
242        ai2_spawn A_E3
243        ai2_spawn A_E5
244        ai2_spawn A_E5b
245}
246
247func void start(string ai_name)
248{
249        dprint start   
250
251        trigvolume_enable trigger_volume_21 0
252        trigvolume_enable trigger_volume_21_copy 0
253        trigvolume_enable trigger_volume_44 0
254        trigvolume_enable trigger_volume_45 0
255        trigvolume_enable attack_1tv 0
256        trigvolume_enable attack_2tv 0
257        trigvolume_enable attack_3tv 0
258        trigvolume_enable attack_3tv_copy 0
259        trigvolume_enable attack_4tv 0
260
261        particle door12_locklight01 do start
262
263        door_lock 35
264        door_lock 36
265        door_lock 37
266        door_lock 39
267        door_lock 40
268        door_lock 41
269
270        if (my_save_point eq 0)
271        {
272                objective_set(1)
273                spawnA()
274        }
275
276        if (my_save_point eq 1)
277        {
278                save_point=1;   
279                objective_set(1)
280                music_intro
281                ai2_dopath A_S1 patrol_01b
282                ai2_setjobstate A_S1
283                spawnA()
284                restore_game
285                chr_set_health 0 400
286        }
287
288        if (my_save_point eq 2)
289        {
290                save_point=2;   
291                dprint restore2_beforetruck
292                objective_set(2)
293                door_lock 12
294                particle door12_locklight01 do stop
295                ai2_spawn C_Sr18
296                ai2_dopath C_Sr18 patrol_18
297                ai2_spawn C_Sr17
298                ai2_spawn C_Sr19
299                ai2_spawn C_Sb75
300                ai2_spawn C_Sb76
301                trigvolume_enable trigger_volume_39 0
302                restore_game
303        }
304
305        if (my_save_point eq 3)
306        {
307                save_point=3;   
308                dprint restore3_aftertruck
309                objective_set(4)
310                target_set (501,30.0)
311                env_show 151 0
312                env_show 152 0
313                env_show 153 0
314                env_show 154 0
315                env_show 155 0
316                env_show 156 0
317                env_show 157 0
318                env_show 158 0
319                env_show 159 0
320                #Hides door, unhides broken door
321                env_show 911 1
322                env_show 912 0
323                env_show 913 0
324                #Shows Gunk truck
325                env_show 251 1
326                env_show 252 1
327                env_show 253 1
328                env_show 254 1
329                env_show 255 1
330                env_show 256 1
331                env_show 257 1
332                env_show 258 1
333                env_show 259 1
334                env_show 911 1
335                env_show 912 0
336                env_show 913 0
337                env_show 914 1
338                env_show 915 1
339                env_show 916 1
340
341                ai2_spawn D_R33
342                restore_game
343        }
344
345        if (my_save_point eq 4)
346        {
347                dprint restore4_finalbattle
348                #hides original dish
349                env_show 301 0
350                env_show 302 0
351                env_show 303 0
352                env_show 304 0
353                env_show 305 0
354                env_show 306 0
355                env_show 307 0
356                env_show 308 0
357                env_show 309 0
358                #Shows in place dish
359                env_show 401 1
360                env_show 402 1
361                env_show 403 1
362                env_show 404 1
363                env_show 405 1
364                env_show 406 1
365                env_show 407 1
366                env_show 408 1
367                env_show 409 1
368                music_battle
369                gs_farclipplane_set 3000
370                particle dishpulse do start
371                particle sturm_ambient start
372
373                # start the dish loop
374                sp_start_dish_loop
375       
376
377                if (did_kill_griffen() eq 1)
378                {
379                        dprint restoreMutant
380                        ai2_spawn MutantMuro
381                        chr_boss_shield MutantMuro
382                        restore_game
383                        objective_set(7,silent)
384                }
385
386                if (did_kill_griffen() eq 0)
387                {
388                        dprint restoreGriffin
389                        ai2_boss_battle = 1
390                        ai2_spawn Griffin
391                        if (extra_guys eq 1)
392                        {
393                                ai2_spawn GrifOps01
394                        }
395                        ai2_spawn GrifOps02
396                        ai2_spawn GrifOps03                     
397                        ai2_spawn Muro
398                        chr_boss_shield Muro
399                        if (extra_guys eq 1)
400                        {
401                                ai2_spawn GrifElite01
402                        }
403                        ai2_spawn GrifElite02
404                        ai2_spawn GrifElite03
405                        chr_set_health Muro 500
406                        fork wait_to_help
407                        restore_game
408                        objective_set(6,silent)
409                        paths                   
410                }
411        }
412}
413
414func void deathfall(void)
415{
416        cm_detach
417        sleep f90
418        chr_set_health 0 0
419}
420
421func void you_lose(string ai_name)
422{
423        sleep 240
424        fade_out 0 0 0 180
425        sleep 240
426        lose
427}
428
429func void you_win(int char_index)
430{
431        outro
432        win
433}
434
435func void set_objective_1(string ai_name)
436{
437        dprint set_objective_1
438        objective_set(1)
439        target_set (1,0.0)
440}
441
442func void set_objective_2(string ai_name)
443{
444        dprint set_objective_2
445        ai2_spawn B_Eb11
446        ai2_spawn B_Eb16
447        ai2_spawn B_Esb15
448        ai2_spawn B_N1
449        ai2_spawn B_Sr9
450        ai2_spawn C_Sr17
451        ai2_spawn C_Sr18
452        ai2_spawn C_Sb75
453        ai2_spawn C_Sb76
454#       ai2_spawn C_Sb77
455        ai2_spawn C_Sb78
456        objective_set(2)
457        target_set (558,30.0)
458        music_stop
459}
460
461func void set_objective_5(string ai_name)
462{
463        dprint set_objective_5
464        objective_set(5)
465#       target_set (258,30.0)
466}
467
468###################
469#       save game       #
470###################
471
472func void s1(string ai_name)
473{
474        dprint SAVEDGAME1       
475
476        if (my_save_point ne 1)
477        {
478                save_game 1 autosave
479        }
480}
481
482func void s2(string ai_name)
483{
484        dprint SAVEDGAME2       
485
486        if (my_save_point ne 2)
487        {
488                save_game 2 autosave
489        }
490
491        ai2_dopath C_Sr17 patrol_17
492        ai2_setjobstate C_Sr17
493        ai2_dopath C_Sr18 patrol_18
494        ai2_setjobstate C_Sr18
495
496}
497
498func void s3(string ai_name)
499{
500        dprint SAVEDGAME3       
501
502        if (my_save_point ne 3)
503        {
504                save_game 3 autosave
505        }
506}
507
508func void s4(string ai_name)
509{
510        dprint SAVEDGAME4       
511
512        if (my_save_point ne 4)
513        {
514                save_game 4 autosave
515        }
516}
517
518##########################
519#       cut scene scripts  #
520##########################
521
522var int run_truck_once = 0;
523
524func void runTruck(string ai_name)
525{
526        dprint runTruck_check
527        if (run_truck_once eq 0)
528        {
529                ai2_tripalarm 1 char_0
530        }
531        run_truck_once = 1;
532
533        if (chr_has_lsi(0))
534        {
535                dprint LSI_OK
536                if (trigvolume_count(29) eq 0)
537                {
538                        trigvolume_enable trigger_volume_23 0
539                        dprint truck_ok
540                        chr_delete C_b74
541                        chr_delete C_Eb73
542                        Truck
543                        sleep 30
544                        ai2_spawn D_R33
545                        chr_delete C_Eb21
546                        chr_delete C_Eb22
547                        chr_delete C_Eb27                       
548                        chr_delete C_Eb29
549                        chr_delete C_Eb30
550                        chr_delete C_N23
551                        chr_delete C_N24
552                        chr_delete C_Sb25
553                        chr_delete C_Sb26
554                        chr_delete C_Sr17
555                        chr_delete C_Sr18
556                        chr_delete C_Tb20
557                        chr_delete C_Tr28       
558                        #chr_delete C_Sb77
559                        chr_delete C_Sb78               
560                        objective_set(4)
561                        target_set (501,30.0)
562                        particle obj1 kill
563                        s3
564                }       
565        }
566}
567
568
569func void t10(string ai_name)
570{
571
572        dprint t10
573        if (trigvolume_count(25) eq 0)
574        {
575                if (stairs_open eq 1)
576                {
577                        trigvolume_enable trigger_volume_10 0
578                        trigvolume_enable trigger_volume_12 0
579                        trigvolume_enable trigger_volume_26 0
580                        dprint ParkLeft
581                        ParkLeft       
582                        particle obj1 create
583                        objective_set(3)
584                        target_set(511,30.0)
585#                       ai2_makeignoreplayer ParkStriker 1
586                }
587        }
588}
589
590func void t12(string ai_name)
591{
592
593        dprint t12
594        if (trigvolume_count(26) eq 0)
595        {       
596                if (stairs_open eq 1)
597                {
598                        trigvolume_enable trigger_volume_12 0
599                        trigvolume_enable trigger_volume_10 0
600                        trigvolume_enable trigger_volume_25 0
601                        dprint ParkRight
602                        ParkRight
603                        particle obj1 create
604                        objective_set(3)
605                        target_set(511,30.0)
606#                       ai2_makeignoreplayer ParkStriker 1
607                }
608        }
609}
610
611func void patrolscript0027(string ai_name)
612{
613        dprint patrolscript0027
614        ai2_dopath C_Sb25 patrol_52
615        ai2_setjobstate C_Sb25
616        ai2_dopath C_Sb26 patrol_53
617        ai2_setjobstate C_Sb26
618        ai2_dopath C_Eb27 patrol_27b
619        ai2_setjobstate C_Eb27
620}
621
622func void com_ok(string ai_name)
623{
624        dprint final_ok
625        comdies_ok = 1
626}
627
628func void fconsole_ok(string ai_name)
629{
630        dprint fconsole_ok
631        conused_ok = 1
632        objective_set(6)
633        text_console level_19d
634        target_set(502,30.0)
635        particle green create
636        sleep 400
637        particle green2 create
638        particle green3 create
639}
640
641func void t31(string ai_name)
642{
643        dprint t31
644        if (conused_ok eq 1)
645        {
646#               if (comdies_ok eq 1)
647#               {
648                        dprint TO_FINAL_BATTLE
649                        target_set(1,0.0)
650                        music_stop
651                        dish
652#               }
653        }
654}
655
656func void check_death1a(string ai_name)
657{
658        dprint death1a
659        Round2a
660}
661
662func void check_death1b(string ai_name)
663{
664        dprint death1a
665        Round2b
666}
667
668func void final_round(string ai_name)
669{
670        dprint check_ROUND_3
671        counter = counter - 1
672        if(counter eq 0)
673        {
674                Round3
675        }
676}
677
678func void check_death2(string ai_name)
679{
680        Outro
681}
682
683func void Round2a(string ai_name)
684{
685        dprint ROUND_2a
686        round2_spawned = round2_spawned + 1;
687
688        ai2_spawn GrifElite04
689
690        ai2_passive GrifElite04 1
691
692        playback_block GrifElite04 GrifWave2_Run1
693
694        ai2_passive GrifElite04 0
695
696        if (muro_in_danger eq 1) {
697                # force the backup to go after konoko only
698                ai2_attack GrifElite04 char_0
699        }
700        if (muro_in_danger eq 0) {
701                ai2_makeaware GrifElite04 char_0
702        }
703}
704
705func void Round2b(string ai_name)
706{
707        dprint ROUND_2b
708        round2_spawned = round2_spawned + 1;
709
710        ai2_spawn GrifElite05
711
712        ai2_passive GrifElite05 1
713
714        playback_block GrifElite05 GrifWave2_Run1
715
716        ai2_passive GrifElite05 0
717
718        if (muro_in_danger eq 1) {
719                # force the backup to go after konoko only
720                ai2_attack GrifElite05 char_0
721        }
722        if (muro_in_danger eq 0) {
723                ai2_makeaware GrifElite05 char_0
724        }
725}
726
727func void Round3(string ai_name)
728{
729        dprint ROUND_3
730        round2_spawned = round2_spawned + 1;
731
732        ai2_spawn GrifElite06
733
734        ai2_passive GrifElite06 1
735
736        playback_block GrifElite06 GrifWave2_Run3
737
738        ai2_passive GrifElite06 0
739
740
741        if (muro_in_danger eq 1) {
742                # force the backup to go after konoko only
743                ai2_attack GrifElite06 char_0
744        }
745        if (muro_in_danger eq 0) {
746                # go after other dudes
747                ai2_makeaware GrifElite06 char_0
748        }
749}
750
751func void wait_to_help(void)
752{
753        chr_wait_health Muro 200
754       
755        dprint MURO_IN_DANGER
756        ai2_boss_battle = 0;
757        muro_in_danger = 1;
758        ai2_attack GrifElite01 char_0
759        ai2_attack GrifElite02 char_0
760        ai2_attack GrifElite03 char_0
761        ai2_attack GrifElite04 char_0
762        ai2_attack GrifElite05 char_0
763        ai2_attack GrifElite06 char_0
764}
765
766###################
767#       console #
768###################
769
770func void console_truckinfo(void)
771{
772        text_console level_19e
773        console_reset 6
774}
775
776func void unlock44(string ai_name)
777{
778#       begin_cutscene
779#       ai2_makeignoreplayer C_Sb77 1
780#       ai2_makeignoreplayer C_Sb78 1
781#       ai2_makeignoreplayer C_Eb22 1
782#       ai2_makeignoreplayer C_Eb21 1
783#       ai2_makeignoreplayer C_Tb20 1
784#       ai2_makeignoreplayer C_Sr19 1
785#       ai2_makeignoreplayer C_Sr18 1
786#       ai2_makeignoreplayer C_Sr17 1
787#       ai2_makeignoreplayer C_Sb76 1
788#       ai2_makeignoreplayer C_Sb75 1
789        input 0
790        chr_invincible char_0 1
791        letterbox 1
792        fade_out 0 0 0 30
793        ai2_spawn C_Er79
794        music_guns
795        cm_interpolate door44 0
796        fade_in 30
797        target_set(559,30.0)
798}
799
800func void patrolscript0079(string ai_name)
801{
802        particle d1_locklight01 do start
803#       sleep 60
804        door_unlock 44
805        sleep 60
806        sound_dialog_play c18_70_13elite
807        sound_dialog_play_block
808}
809
810func void patrolscript0080(string ai_name)
811{
812        sleep 90
813        cm_interpolate door44b 300
814        sleep 160
815        sound_dialog_play c18_74_05elite
816#       sound_dialog_play_block
817        sleep 80
818        fade_out 0 0 0 60
819        sleep 60
820        cm_reset
821        fade_in 30
822        input 1
823#       end_cutscene
824        letterbox 0
825        chr_invincible char_0 0
826#       ai2_makeignoreplayer C_Sb77 0
827#       ai2_makeignoreplayer C_Sb78 0
828#       ai2_makeignoreplayer C_Eb22 0
829#       ai2_makeignoreplayer C_Eb21 0
830#       ai2_makeignoreplayer C_Tb20 0
831#       ai2_makeignoreplayer C_Sr19 0
832#       ai2_makeignoreplayer C_Sr18 0
833#       ai2_makeignoreplayer C_Sr17 0
834#       ai2_makeignoreplayer C_Sb76 0
835#       ai2_makeignoreplayer C_Sb75 0
836#       ai2_dopath C_Sr17 patrol_81
837#       ai2_dopath C_Sb75 patrol_81
838#       ai2_dopath C_Sb76 patrol_81
839        ai2_tripalarm 1 char_0
840}
841
842func void run1(string ai_name)
843{
844        dprint run1
845        ai2_doalarm A_Sb7 1
846        ai2_dopath A_Sb7 patrol_00
847#       ai2_setjobstate A_Sb7
848}
849
850func void patrolscript0054(string ai_name)
851{
852        dprint doalarm
853        ai2_doalarm A_Sb7 1
854}
855
856func void do_alarm_sound(void)
857{
858        sound_ambient_start alarm_loop
859        sleep 900
860        sound_ambient_stop alarm_loop
861}
862
863func void run1_alarm(string ai_name)
864{
865        dprint run1_alarm
866        fork do_alarm_sound
867        ai2_dopath A_E3 patrol_49       
868        ai2_dopath A_E4 patrol_49
869        ai2_dopath A_E5 patrol_49
870        ai2_dopath A_E6 patrol_49
871        ai2_spawn B_Sr9
872        sleep 7
873        ai2_dopath B_Sr9 patrol_10
874        ai2_spawn B_Eb11
875        sleep 60
876        ai2_dopath B_Eb11 patrol_10
877}
878
879func void driverhurt(string ai_name)
880{
881        dprint driverhurt
882        ai2_tripalarm 1 char_0
883}
884
885func void AreaF(string ai_name)
886{
887        console_count = console_count + 1
888        if(console_count eq 1)
889        {
890                text_console level_19a
891                sound_dialog_play_block c15_57_01konoko
892                sound_dialog_play_block pause
893                end_cutscene
894        }
895        if(console_count eq 2)
896        {
897                text_console level_19b
898                sound_dialog_play_block c15_57_02konoko
899        }
900        if (console_count eq 3)
901        {
902                dprint Area_F_now_open
903                trigvolume_enable attack_1tv 1
904                trigvolume_enable attack_2tv 1
905                trigvolume_enable attack_3tv 1
906                trigvolume_enable attack_3tv_copy 1
907                trigvolume_enable attack_4tv 1
908                text_console level_19c
909                set_objective_5
910                sound_dialog_play_block c15_57_03konoko
911                sound_dialog_play_block pause
912                sleep 60
913                music_guns
914        }
915}
916
917func void target100(void)
918{
919        console100used = 1;
920        if(console200used eq 0)
921        {
922                target_set(556,30.0)
923        }
924        if(console200used eq 1)
925        {
926                if(console300used eq 0)
927                {
928                        target_set(557,30.0)
929                }
930        }
931        if(console200used eq 1)
932        {
933                if(console300used eq 1)
934                {
935                        target_set(547,30.0)
936                }
937        }
938}
939       
940func void target200(void)
941{
942        console200used = 1;
943        if(console300used eq 0)
944        {
945                target_set(557,30.0)
946        }
947        if(console300used eq 1)
948        {
949                if(console100used eq 0)
950                {
951                        target_set(555,30.0)
952                }
953        }
954        if(console300used eq 1)
955        {
956                if(console100used eq 1)
957                {
958                        target_set(547,30.0)
959                }
960        }
961}
962
963func void target300(void)
964{
965        console300used = 1;
966        if(console200used eq 0)
967        {
968                target_set(556,30.0)
969        }
970        if(console200used eq 1)
971        {
972                if(console100used eq 0)
973                {
974                        target_set(555,30.0)
975                }
976        }
977        if(console200used eq 1)
978        {
979                if(console100used eq 1)
980                {
981                        target_set(547,30.0)
982                }
983        }
984}
985
986#func void console100(string ai_name)
987#{
988#       dprint console100
989#       console_deactivate 101
990#       AreaF
991#       target100
992#}
993
994func void console101(string ai_name)
995{
996        dprint console101
997        console101used = 1;
998        target100
999#       console_deactivate 100
1000        AreaF
1001}
1002
1003func void console200(string ai_name)
1004{
1005        dprint console200
1006        target200
1007        AreaF
1008}
1009
1010func void console300(string ai_name)
1011{
1012        music_guns_stop
1013        dprint console300
1014        console_deactivate 301
1015        target300
1016        AreaF
1017}
1018
1019func void console301(string ai_name)
1020{
1021        music_guns_stop
1022        dprint console301
1023        console_deactivate 300
1024        target300
1025        AreaF
1026}
1027
1028func void purp2(void)
1029{
1030        input 0
1031        fade_out 0 0 0 30
1032        cm_interpolate unlock_door 0
1033        fade_in 30
1034        sleep 60
1035        particle purple2_locklight01 do start
1036        door_unlock 20
1037        door_unlock 21
1038        door_unlock 22
1039        door_unlock 23
1040        door_unlock 24
1041        door_unlock 25
1042        door_unlock 26
1043        door_unlock 27
1044        door_unlock 28
1045        sleep 90
1046        fade_out 0 0 0 30
1047        cm_reset
1048        fade_in 30
1049        input 1
1050}
1051
1052func void purple2_unlock(string ai_name)
1053{
1054        dprint purple2_unlock
1055        purp2()
1056        trigvolume_enable trigger_volume_21 1
1057        trigvolume_enable trigger_volume_21_copy 1
1058        trigvolume_enable trigger_volume_44 1
1059        trigvolume_enable trigger_volume_45 1
1060        console_deactivate 100
1061}
1062
1063func void purple2_unlock_b(string ai_name)
1064{
1065        dprint purple2_unlockb
1066        purp2()
1067        if(console101used eq 0)
1068        {
1069                target_set(555,30.0)
1070        }
1071        console_deactivate 200
1072}
1073
1074func void unlock_stairs(string ai_name)
1075{
1076        dprint unlock_stairs
1077        music_stop
1078        door_unlock 10
1079        door_unlock 15
1080        door_unlock 16
1081        door_unlock 17
1082        particle stair_locklight01 do start
1083        ai2_spawn S_Tr41
1084        console_deactivate 4
1085#       console_deactivate 5
1086        console_deactivate 3
1087        stairs_open = 1
1088        target_set(1,0.0)
1089}
1090
1091
1092func void unlock_stairs2(string ai_name)
1093{
1094        dprint unlock_stairs
1095        music_stop
1096        door_unlock 10
1097        door_unlock 15
1098        door_unlock 16
1099        door_unlock 17
1100        particle stair_locklight01 do start
1101        console_deactivate 3
1102#       console_deactivate 5
1103        ai2_spawn S_Tr41
1104        ai2_spawn C_b74
1105        ai2_spawn C_Eb73
1106        chr_teleport C_b74 224
1107        ai2_dopath C_b74 patrol_80
1108        chr_teleport C_Eb73 237
1109        ai2_dopath C_Eb73 patrol_80
1110        stairs_open = 1
1111}
1112
1113
1114#########################
1115#  trigger volume stuff #
1116#########################
1117func void t8(string ai_name)
1118{
1119        dprint t8
1120#       ai2_spawn C_Sb77
1121        ai2_spawn C_Sb78
1122        ai2_spawn C_Sr19
1123        ai2_spawn C_Tb20
1124        ai2_spawn C_Eb21
1125        ai2_spawn C_Eb22
1126        ai2_spawn C_N23
1127        ai2_spawn C_N24
1128        ai2_spawn C_Eb29
1129        ai2_spawn C_Eb30
1130}
1131
1132
1133func void t9(string ai_name)
1134{
1135        dprint t9
1136        ai2_spawn B_Eb16
1137}
1138
1139func void t11(string ai_name)
1140{
1141        dprint t11
1142        ai2_dopath C_Sb25 patrol_48
1143        sleep 60
1144        ai2_dopath C_Sb26 patrol_48
1145        sleep 60
1146        ai2_dopath C_Eb27 patrol_48
1147
1148}
1149
1150
1151func void t13(string ai_name)
1152{
1153        dprint t13
1154        ai2_spawn E_Er34
1155        sleep 60
1156        door_unlock 24
1157#       door_unlock 23
1158#       door_unlock 22
1159        particle purple_locklight01 do start
1160        ai2_dopath E_Er34 patrol_34
1161        ai2_setjobstate E_Er34
1162        ai2_spawn E_Eb35
1163        target_set(501,30.0)   
1164}
1165
1166func void t14(string ai_name)
1167{
1168        dprint t14
1169        ai2_spawn E_N36
1170        ai2_spawn E_Tr40
1171        trigvolume_enable trigger_volume_15 0   
1172}
1173
1174func void t15(string ai_name)
1175{
1176        dprint t15
1177        ai2_spawn E_N35
1178        ai2_spawn E_Nr46
1179        trigvolume_enable trigger_volume_14 0   
1180}
1181
1182func void t16(string ai_name)
1183{
1184        dprint t16
1185        ai2_spawn E_Nr36
1186        ai2_spawn E_Nb37
1187        ai2_spawn E_Nr39
1188        target_set (556,30.0)
1189        door_unlock 22
1190        particle purple3_locklight01 do start
1191}
1192
1193func void t20(string ai_name)
1194{
1195        dprint t20
1196        ai2_spawn E_N42
1197        trigvolume_enable trigger_volume_18 0
1198#       console_deactivate 100 
1199       
1200}
1201
1202func void t18(string ai_name)
1203{
1204        dprint t18
1205        ai2_spawn E_N44
1206        ai2_spawn E_R46
1207        trigvolume_enable trigger_volume_20 0   
1208#       console_deactivate 101 
1209
1210}
1211
1212func void t19(string ai_name)
1213{
1214        dprint t19
1215        ai2_spawn E_Er45
1216        ai2_spawn E_N41
1217        trigvolume_enable trigger_volume_17 0
1218#       console_deactivate 300 
1219}
1220
1221func void t17(string ai_name)
1222{
1223        dprint t17
1224        ai2_spawn E_N43
1225        trigvolume_enable trigger_volume_19 0
1226#       console_deactivate 301 
1227       
1228}
1229
1230func void t45(string ai_name)
1231{
1232        ai2_makeignoreplayer E_Eb35 1
1233        ai2_makeignoreplayer E_Er34 1
1234        ai2_makeignoreplayer E_Er45 1
1235        ai2_makeignoreplayer E_Nb37 1
1236        ai2_makeignoreplayer E_Nb38 1
1237        ai2_makeignoreplayer E_Nr36 1
1238        ai2_makeignoreplayer E_Nr39 1
1239        ai2_makeignoreplayer E_Nr46 1
1240        ai2_makeignoreplayer E_R46 1
1241        ai2_makeignoreplayer E_Tr40 1
1242        sleep 600
1243        if(thru_door eq 0)
1244        {
1245                dprint DIDNOTGOTHRUDOOR
1246        ai2_makeignoreplayer E_Eb35 0
1247        ai2_makeignoreplayer E_Er34 0
1248        ai2_makeignoreplayer E_Er45 0
1249        ai2_makeignoreplayer E_Nb37 0
1250        ai2_makeignoreplayer E_Nb38 0
1251        ai2_makeignoreplayer E_Nr36 0
1252        ai2_makeignoreplayer E_Nr39 0
1253        ai2_makeignoreplayer E_Nr46 0
1254        ai2_makeignoreplayer E_R46 0
1255        ai2_makeignoreplayer E_Tr40 0
1256        }
1257}
1258
1259func void t21(string ai_name)
1260{
1261        dprint t21
1262        input 0
1263        letterbox 1
1264        cm_interpolate red1 260
1265        music_guns
1266        sleep 90
1267        particle mainchamber_locklight01 do start
1268        door_unlock 18
1269        door_unlock 19
1270        ai2_spawn D_R31
1271        ai2_spawn D_R32
1272        ai2_spawn D_E83
1273        door_open 18
1274        door_open 19
1275        sleep 180
1276        door_lock 18
1277        door_lock 19
1278        particle mainchamber_locklight01 do stop
1279        sleep 15
1280        cm_interpolate red2 400
1281        sleep 90
1282        fade_out 0 0 0 30
1283        sleep 30
1284        cm_reset
1285        fade_in 30
1286        letterbox 0
1287        input 1
1288        trigvolume_enable trigger_volume_21_copy 0
1289        trigvolume_enable trigger_volume_45 0
1290        sleep 60
1291        ai2_makeignoreplayer E_Eb35 0
1292        ai2_makeignoreplayer E_Er34 0
1293        ai2_makeignoreplayer E_Er45 0
1294        ai2_makeignoreplayer E_Nb37 0
1295        ai2_makeignoreplayer E_Nb38 0
1296        ai2_makeignoreplayer E_Nr36 0
1297        ai2_makeignoreplayer E_Nr39 0
1298        ai2_makeignoreplayer E_Nr46 0
1299        ai2_makeignoreplayer E_R46 0
1300        ai2_makeignoreplayer E_Tr40 0
1301        thru_door = 1;
1302        sleep 300
1303}
1304
1305func void t22(string ai_name)
1306{
1307        dprint t22
1308        ai2_makeignoreplayer E_Eb35 1
1309        ai2_makeignoreplayer E_Er34 1
1310        ai2_makeignoreplayer E_Er45 1
1311        ai2_makeignoreplayer E_Nb37 1
1312        ai2_makeignoreplayer E_Nb38 1
1313        ai2_makeignoreplayer E_Nr36 1
1314        ai2_makeignoreplayer E_Nr39 1
1315        ai2_makeignoreplayer E_Nr46 1
1316        ai2_makeignoreplayer E_R46 1
1317        ai2_makeignoreplayer E_Tr40 1
1318        input 0
1319        letterbox 1
1320        cm_interpolate red3 260
1321        music_guns
1322        sleep 90
1323        particle mainchamber_locklight01 do start
1324        door_unlock 18
1325        door_unlock 19
1326        ai2_spawn D_R31
1327        ai2_spawn D_R32
1328        ai2_spawn D_E83
1329        door_open 18
1330        door_open 19
1331        sleep 180
1332        door_lock 18
1333        door_lock 19
1334        particle mainchamber_locklight01 do stop
1335        sleep 15
1336        cm_interpolate red4 400
1337        sleep 90
1338        fade_out 0 0 0 30
1339        sleep 30
1340        cm_reset
1341        fade_in 30
1342        letterbox 0
1343        input 1
1344        trigvolume_enable trigger_volume_21 0
1345        trigvolume_enable trigger_volume_44 0
1346        sleep 60
1347        ai2_makeignoreplayer E_Eb35 0
1348        ai2_makeignoreplayer E_Er34 0
1349        ai2_makeignoreplayer E_Er45 0
1350        ai2_makeignoreplayer E_Nb37 0
1351        ai2_makeignoreplayer E_Nb38 0
1352        ai2_makeignoreplayer E_Nr36 0
1353        ai2_makeignoreplayer E_Nr39 0
1354        ai2_makeignoreplayer E_Nr46 0
1355        ai2_makeignoreplayer E_R46 0
1356        ai2_makeignoreplayer E_Tr40 0
1357        thru_door = 1;
1358        sleep 300
1359        music_stop
1360}
1361
1362func void wake_E(string ai_name)
1363{
1364        sleep 60
1365        ai2_makeignoreplayer E_Eb35 0
1366        ai2_makeignoreplayer E_Er34 0
1367        ai2_makeignoreplayer E_Er45 0
1368        ai2_makeignoreplayer E_Nb37 0
1369        ai2_makeignoreplayer E_Nb38 0
1370        ai2_makeignoreplayer E_Nr36 0
1371        ai2_makeignoreplayer E_Nr39 0
1372        ai2_makeignoreplayer E_Nr46 0
1373        ai2_makeignoreplayer E_R46 0
1374        ai2_makeignoreplayer E_Tr40 0
1375}
1376
1377func void sleep_E(string ai_name)
1378{
1379        ai2_makeignoreplayer E_Eb35 1
1380        ai2_makeignoreplayer E_Er34 1
1381        ai2_makeignoreplayer E_Er45 1
1382        ai2_makeignoreplayer E_Nb37 1
1383        ai2_makeignoreplayer E_Nb38 1
1384        ai2_makeignoreplayer E_Nr36 1
1385        ai2_makeignoreplayer E_Nr39 1
1386        ai2_makeignoreplayer E_Nr46 1
1387        ai2_makeignoreplayer E_R46 1
1388        ai2_makeignoreplayer E_Tr40 1
1389}
1390
1391func void fpath(string ai_name)
1392{
1393        ai2_dopath F_Eb43 patrol_43
1394        ai2_setjobstate F_Eb43
1395        sleep 30
1396        ai2_dopath F_Eb44 patrol_44
1397        ai2_setjobstate F_Eb44
1398        sleep 30
1399        ai2_dopath F_Eb47 patrol_47
1400        ai2_setjobstate F_Eb47
1401        music_stop
1402}
1403
1404func void attack_1(string ai_name)
1405{
1406        dprint attack_1
1407        sleep_E
1408        chr_invincible char_0 1
1409        letterbox 1
1410        sleep 15
1411        input 0
1412        cm_interpolate attack1 90
1413        ai2_spawn F_Eb43
1414        ai2_spawn F_Eb44
1415        ai2_spawn F_Eb47
1416        door_unlock 43 
1417#       sleep 60
1418        sleep 90
1419        particle F_locklight01 do start
1420        fpath
1421
1422        cm_interpolate attack2 240
1423        sleep 300
1424        cm_interpolate attack1 600
1425        chr_teleport 0 506
1426        sleep 90
1427        letterbox 0
1428        cm_reset
1429        chr_invincible char_0 0
1430        trigvolume_enable attack_2tv 0
1431        trigvolume_enable attack_3tv 0
1432        trigvolume_enable attack_3tv_copy 0
1433        trigvolume_enable attack_4tv 0
1434        input 1
1435        ai2_dopath F_Eb43 patrol_43b
1436        ai2_setjobstate F_Eb43
1437        ai2_dopath F_Eb44 patrol_44b
1438        ai2_setjobstate F_Eb44
1439        ai2_dopath F_Eb47 patrol_47b
1440        ai2_setjobstate F_Eb47
1441        wake_E
1442}
1443
1444func void attack_2(string ai_name)
1445{
1446        dprint attack_2
1447        sleep_E
1448        chr_invincible char_0 1
1449        letterbox 1
1450        sleep 15
1451        input 0
1452        cm_interpolate attack2b 120
1453        sleep 120
1454        cm_interpolate attack2 400
1455        sleep 100
1456        particle F_locklight01 do start
1457        sleep 80
1458        ai2_spawn F_Eb43
1459        ai2_spawn F_Eb44
1460        ai2_spawn F_Eb47
1461        door_unlock 43
1462        fpath
1463        sleep 290
1464        cm_interpolate attack2b 500
1465        chr_teleport 0 507
1466        sleep 90
1467        letterbox 0
1468        cm_reset
1469        chr_invincible char_0 0
1470        trigvolume_enable attack_1tv 0
1471        trigvolume_enable attack_3tv 0
1472        trigvolume_enable attack_3tv_copy 0
1473        trigvolume_enable attack_4tv 0
1474        input 1
1475        ai2_dopath F_Eb43 patrol_43b
1476        ai2_setjobstate F_Eb43
1477        ai2_dopath F_Eb44 patrol_44b
1478        ai2_setjobstate F_Eb44
1479        ai2_dopath F_Eb47 patrol_47b
1480        ai2_setjobstate F_Eb47
1481        wake_E
1482}
1483
1484
1485func void attack_3(string ai_name)
1486{
1487  if(count_attack3 eq 0)
1488  {
1489        count_attack3 = count_attack3 + 1;
1490        dprint attack_3
1491        chr_invincible char_0 1
1492        sleep_E
1493        letterbox 1
1494        sleep 15
1495        input 0
1496        cm_interpolate attack3 90
1497        ai2_spawn F_Eb43
1498        ai2_spawn F_Eb44
1499        ai2_spawn F_Eb47
1500        door_unlock 43 
1501        sleep 90
1502        cm_interpolate attack4 210
1503        particle F_locklight01 do start
1504        fpath
1505        sleep 150
1506        cm_interpolate attack3 400
1507        chr_teleport 0 508
1508        sleep 90
1509        letterbox 0
1510        cm_reset
1511        chr_invincible char_0 0
1512        trigvolume_enable attack_2tv 0
1513        trigvolume_enable attack_3tv_copy 0
1514        trigvolume_enable attack_3tv 0
1515        trigvolume_enable attack_1tv 0
1516        trigvolume_enable attack_4tv 0
1517        input 1
1518        ai2_dopath F_Eb43 patrol_43b
1519        ai2_setjobstate F_Eb43
1520        ai2_dopath F_Eb44 patrol_44b
1521        ai2_setjobstate F_Eb44
1522        ai2_dopath F_Eb47 patrol_47b
1523        ai2_setjobstate F_Eb47
1524        wake_E
1525  }
1526}
1527
1528func void attack_4(string ai_name)
1529{
1530        dprint attack_4
1531        chr_invincible char_0 1
1532        sleep_E
1533        letterbox 1
1534        sleep 15
1535        input 0
1536        cm_interpolate attack3b 120
1537        sleep 120
1538        cm_interpolate attack4 300
1539        sleep 240
1540        particle F_locklight01 do start
1541        ai2_spawn F_Eb43
1542        ai2_spawn F_Eb44
1543        ai2_spawn F_Eb47
1544        door_unlock 43
1545        fpath
1546        sleep 160
1547        cm_interpolate attack3b 500
1548        chr_teleport 0 509
1549        sleep 90
1550        letterbox 0
1551        cm_reset
1552        chr_invincible char_0 0
1553        trigvolume_enable attack_2tv 0
1554        trigvolume_enable attack_3tv 0
1555        trigvolume_enable attack_3tv_copy 0
1556        trigvolume_enable attack_1tv 0
1557        input 1
1558        ai2_dopath F_Eb43 patrol_43b
1559        ai2_setjobstate F_Eb43
1560        ai2_dopath F_Eb44 patrol_44b
1561        ai2_setjobstate F_Eb44
1562        ai2_dopath F_Eb47 patrol_47b
1563        ai2_setjobstate F_Eb47
1564        wake_E
1565}
1566
1567
1568func void t27(string ai_name)
1569{
1570        dprint t27
1571        ai2_dopath C_Sb25 patrol_54
1572        ai2_dopath C_Sb26 patrol_54
1573        ai2_dopath C_Eb27 patrol_54
1574}
1575
1576func void t30(string ai_name)
1577{
1578        dprint t30
1579        ai2_makeignoreplayer F_C62 0
1580        ai2_spawn F_Er89
1581}
1582
1583func void t33(string ai_name)
1584{
1585        dprint t33
1586        ai2_spawn F_Er86
1587        ai2_spawn F_Nr87
1588        target_set(258,30.0)
1589        sound_dialog_play c15_57_04konoko
1590}
1591func void t41(string ai_name)
1592{
1593        dprint t41
1594        ai2_spawn F_Er59
1595}
1596
1597func void t42(string ai_name)
1598{
1599        dprint t42
1600        ai2_spawn F_Nr60
1601}
1602
1603func void t43(string ai_name)
1604{
1605        dprint t43
1606        ai2_spawn F_R61
1607        ai2_spawn F_Er88
1608        ai2_spawn F_C62
1609        ai2_makeignoreplayer F_C62 1
1610}
1611
1612func void comalarm(string ai_name)
1613{
1614        dprint comalarm
1615        ai2_tripalarm 2 char_0
1616}
1617
1618func void t38(string ai_name)
1619{
1620        dprint t38
1621        ai2_spawn A_E4
1622        ai2_spawn A_Sb63
1623        ai2_spawn A_E6
1624        ai2_spawn A_Sb7
1625        ai2_spawn new_2
1626}
1627
1628func void t40(string ai_name)
1629{
1630        dprint t40
1631        input 0
1632        letterbox 1
1633        cm_interpolate red1 240
1634        sleep 60
1635        particle purple2_locklight01 do start
1636        sleep 90
1637        fade_out 0 0 0 30
1638        cm_reset
1639        fade_in 30
1640        input 1
1641}
1642
1643func void swat_dies(void)
1644{
1645        count_swat_dies = count_swat_dies - 1;
1646        if(count_swat_dies eq 0)
1647        {
1648                ai2_attack GrifElite01 char_0
1649                ai2_attack GrifElite02 char_0
1650                ai2_attack GrifElite03 char_0
1651                ai2_attack GrifElite04 char_0
1652                ai2_attack GrifElite05 char_0
1653        }
1654}
Note: See TracBrowser for help on using the repository browser.