source: AE/packages/VanillaBSL/IGMD/neuro/neuro_level_logic.bsl @ 367

Last change on this file since 367 was 367, checked in by gumby, 12 years ago
File size: 21.1 KB
Line 
1# neuro_spawn_guards.bsl
2#
3# SCRIPTS TO SPAWN SECURITY GUARDS
4#
5
6################# START GAME LOGIC #############################
7
8# creates counterS for stuff
9var int neuro_counter;
10var int kerr_counter;
11var int has_probed = 0;
12var int ambush_counter = 2;
13var int final_check = 0;
14var int FTS_variable = 2;
15
16func void level_start(void)
17{
18# set counter values
19
20        neuro_counter = 3
21        end_counter = 2
22        kerr_counter = 3
23
24        ############# SAVE GAME SCRIPTS #############
25
26# These functions are used when the game is restored.
27
28        if (save_point eq 0)
29        {
30                dprint SAVE_POINT_0
31#               VOODOO COMPUTING
32        }
33
34        if (save_point eq 1)
35        {
36                fork Setup_Intro
37                fork set_objective_1
38                dprint Restore_Autosave_Point_1
39                restore_game
40        }
41
42        if (save_point eq 2)
43        {
44                dprint Restore_Autosave_Point_2
45
46                objective_set 1 silent
47                target_set(1261, 30.0)
48
49                dprint Restore_Pod_1
50                ai2_spawn Pod1_TCL_1
51                ai2_spawn Pod1_TCL_2
52                ai2_spawn Pod1_TCL_3
53                ai2_spawn Pod1_Scientist_1
54                ai2_spawn Pod1_Scientist_2
55                #particle lock1_locklight01 do start
56                door_lock(11);
57                trigvolume_enable(autosave_trigger_1, 0);
58
59                restore_game
60
61#               console_deactivate 10
62#               trigvolume_enable(trig_train_saves, 0);
63#               trigvolume_enable(trig_train_objectives, 1);
64        }
65
66        if (save_point eq 3)
67        {
68                dprint RESTORE_SAVE_POINT_3
69
70                objective_set 2 silent
71                target_set(366, 30.0)
72
73                particle lock3_locklight02 do start
74                particle lock4_locklight02 do start
75
76                door_unlock(58);
77
78                door_lock(32);
79                door_lock(33);
80                door_lock(34);
81                door_lock(35);
82
83                trig_deactivate 2
84
85                trigvolume_enable(trigger_volume_76, 0);
86                trigvolume_enable(trigger_volume_06, 1);
87                trigvolume_enable(Kerr_trig, 0);
88                console_deactivate 12
89                console_deactivate 13
90
91                restore_game
92
93                kerr_console_music
94        }
95
96        if (save_point eq 4)
97        {
98                dprint RESTORE_SAVE_POINT_4
99
100                env_show 823 0
101
102                objective_set 3 silent
103                target_set(346, 30.0)
104
105                door_lock 58
106
107                door_unlock(1);
108                door_unlock(6);
109                door_unlock(7);
110
111                particle lock5a_locklight01 do start
112                particle lock5b_locklight01 do start
113                particle lock5c_locklight01 do start
114
115                particle labalarm1_emlight01 do stop
116                particle labalarm2_emlight01 do stop
117                particle labalarm3_emlight01 do stop
118
119                particle labalarm1 do stop
120                particle labalarm2 do stop
121                particle labalarm3 do stop
122
123                particle lock6_locklight02 do start
124
125                trigvolume_enable(trigger_volume_13, 0);
126                trigvolume_enable(spawn_kerr_trig, 0);
127                #trigvolume_enable(Setup_Security_Trig, 1);
128                #trigvolume_enable(chase_trigger, 1);
129
130                # CB: set up the monologue for konoko telling herself about her next objective
131                prepare_vat_monologue();
132
133                console_deactivate 3
134                console_deactivate 4
135                console_deactivate 5
136                console_deactivate 14
137                console_deactivate 88
138
139                ai2_spawn Scan_BOS_1
140                ai2_spawn Scan_BOS_2
141                ai2_spawn Scan_BOS_3
142                ai2_spawn Scan_BOS_4
143
144                ai2_spawn CS_ScanOps01
145
146                restore_game
147
148                post_scan_music_start
149        }
150}
151
152# This is an example of a save game console.
153
154func void autosave_1(string player_name)
155{
156        dprint autosave_1
157#       PLAY AUTOSAVE SOUND - ADD LATER!!!
158        save_game 2 autosave
159}
160
161func void save_point_2(string player_name)
162{
163        dprint saveit_2
164        save_game 3 autosave
165}
166
167func void save_point_3(string player_name)
168{
169        dprint saveit_3
170        save_game 4 autosave
171}
172
173########################################################
174
175func void start_trap_music(string ai_name)
176{
177        dprint martys_baby
178        sound_music_start mus_space01 0.8
179}
180
181func void Die_For_Kerr_1(string ai_name)
182{
183        dprint DFK_1
184        kerr_counter = kerr_counter - 1
185
186        if (kerr_counter eq 0)
187        {
188                Kerr_Console_All_Counters();
189        }
190}
191
192func void Die_For_Kerr_2(string ai_name)
193{
194        dprint DFK_2
195        kerr_counter = kerr_counter - 1
196
197        if (kerr_counter eq 0)
198        {
199                Kerr_Console_All_Counters();
200        }
201}
202
203func void Die_For_Kerr_3(string ai_name)
204{
205        dprint DFK_3
206        kerr_counter = kerr_counter - 1
207
208        if (kerr_counter eq 0)
209        {
210                Kerr_Console_All_Counters();
211        }
212}
213
214func void Kerr_Console_All_Counters(void)
215{
216        dprint START_KERR
217        trigvolume_enable(Kerr_trig, 1);
218        fork Pod3_Unlock_Doors
219}
220
221func void Setup_Intro(string ai_name)
222{
223# SETUP POD 1 AREA
224        dprint Setup_Intro
225        trig_activate 1
226        particle lock99_locklight02 do start
227        particle lock100_locklight01 do stop
228
229        door_unlock 11
230}
231
232func void Setup_Pod1(string ai_name)
233{
234# SETUP POD 1 AREA
235        dprint SetupPod1
236
237        door_lock 20
238        door_lock 21
239        door_lock 22
240        door_lock 23
241
242        ai2_spawn Pod1_TCL_1
243        ai2_spawn Pod1_TCL_2
244        ai2_spawn Pod1_TCL_3
245        ai2_spawn Pod1_Scientist_1
246        ai2_spawn Pod1_Scientist_2
247
248        particle lock1_locklight01 do stop
249        #particle lock1_locklight01 do start
250        sound_music_stop mus_space01
251}
252#########################################
253func void Pod1_RTAlarm_A(string ai_name)
254{
255        dprint Guard_A_RTAlarm
256        ai2_doalarm Pod1_TCL_1 10
257}
258
259func void Pod1_RTAlarm_B(string ai_name)
260{
261        dprint Guard_B_RTAlarm
262        ai2_doalarm Pod1_TCL_2 10
263}
264#########################################
265
266func void Pod1_Alarm_Sound(void)
267{
268        sound_ambient_start alarm_loop
269        sleep 900
270        sound_ambient_stop alarm_loop
271}
272
273func void Pod1_Alarm(string ai_name)
274{
275        dprint Pod1Alarm
276        door_unlock(11);
277        particle lock99_locklight02 do start
278        sleep 180
279# SPAWN ALARM CHARACTERS
280        ai2_spawn Pod1_BOL_Alarm_1
281        ai2_spawn Pod1_BOL_Alarm_2
282        ai2_spawn pod1_a_1
283        ai2_spawn pod1_a_2
284# SET ALERT LEVELS
285        ai2_setalert Pod1_TCL_1 high
286        ai2_setalert Pod1_TCL_2 high
287        ai2_setalert Pod1_TCL_3 high
288        ai2_setalert Pod1_BOL_Alarm_1 high
289        ai2_setalert Pod1_BOL_Alarm_2 high
290# EXECUTE ALARM PATHS
291        ai2_dopath Pod1_TCL_1 Pod1_Final_Guard_A
292        ai2_dopath Pod1_TCL_2 Pod1_Final_Guard_B
293        ai2_dopath Pod1_TCL_3 Pod1_Final_Guard_C
294        ai2_dopath Pod1_Scientist_1 Pod1_Final_Sci_A
295        ai2_dopath Pod1_Scientist_2 Pod1_Final_Sci_B
296# MAKE ALARM PATHS THEIR JOBS
297        ai2_setjobstate Pod1_TCL_1
298        ai2_setjobstate Pod1_TCL_2
299        ai2_setjobstate Pod1_TCL_3
300
301        ai2_setjobstate Pod1_Scientist_1
302        ai2_setjobstate Pod1_Scientist_2
303
304# TRIP ALARM FOR BADDIES TO PURSUE KONOKO
305
306        ai2_tripalarm 11 Konoko
307
308        particle lock1_locklight01 do stop
309
310        particle alarm1_emlight01 do start
311
312# DOOR LOCK COMMAND
313        door_lock 20
314        door_lock 21
315        door_lock 22
316        door_lock 23
317
318# annoy the player with alarm sound
319        fork Pod1_Alarm_Sound
320
321        console_reset 1
322}
323
324# UNLOCK DOORS FROM CONSOLE
325func void Pod1_UnlockDoors(string ai_name)
326{
327        dprint Pod1UnlockDoors
328
329        door_unlock 20
330        door_unlock 21
331        door_unlock 22
332        door_unlock 23
333        door_lock(11);
334        particle lock99_locklight02 do stop
335
336        input 0
337        cm_interpolate lock1 0
338        sleep 30
339        particle alarm1_emlight01 do stop
340        sleep 30
341        particle lock1_locklight01 do start
342        sleep 150
343        cm_reset
344        input 1
345
346        console_reset 10
347}
348###################### POD 2 #################################
349func void Pod2_Setup(string ai_name)
350{
351        dprint SetupPod2
352        ai2_spawn Pod2_TCL_1
353        ai2_spawn Pod2_TCL_2
354        ai2_spawn Pod2_Sci_1
355
356        particle lock2_locklight01 do stop
357}
358##############################################################
359func void Pod2_RTAlarm_A(string ai_name)
360{
361        dprint Guard_A_RTAlarm
362        ai2_doalarm Pod2_TCL_1 11
363}
364
365func void Pod2_RTAlarm_B(string ai_name)
366{
367        dprint Guard_B_RTAlarm
368        ai2_doalarm Pod2_TCL_2 11
369}
370##############################################################
371
372func void Pod2_Alarm_Sound(void)
373{
374        sound_ambient_start alarm_loop
375        sleep 900
376        sound_ambient_stop alarm_loop
377}
378
379func void Pod2_Alarm(string ai_name)
380{
381        dprint Pod2Alarm
382        door_unlock(11);
383        particle lock99_locklight02 do start
384        sleep 180
385
386# SPAWN ALARM CHARACTERS
387        #ai2_spawn Pod2_BOS_1
388        ai2_spawn Pod2_BOL_Alarm_1
389        ai2_spawn pod2_a_1
390        ai2_spawn pod2_a_2
391
392# SET ALERT LEVELS
393        ai2_setalert Pod2_TCL_1 high
394        ai2_setalert Pod2_TCL_2 high
395        ai2_setalert Pod2_BOS_1 high
396
397# EXECUTE ALARM PATHS
398        ai2_dopath Pod2_TCL_1 Pod2_End_TCL_1
399        ai2_dopath Pod2_TCL_2 Pod2_End_TCL_2
400        ai2_dopath Pod2_BOS_1 Pod2_End_BOS_1
401        ai2_dopath Pod2_Sci_1 Pod2_End_Sci_1
402
403# MAKE ALARM PATHS THEIR JOBS
404        ai2_setjobstate Pod2_TCL_1
405        ai2_setjobstate Pod2_TCL_2
406        ai2_setjobstate Pod2_BOS_1
407
408        ai2_setjobstate Pod2_Sci_1
409
410# TRIP ALARM FOR BADDIES TO PURSUE KONOKO
411
412        ai2_tripalarm 12 Konoko
413
414        particle lock2_locklight01 do stop
415
416        particle alarm2_emlight01 do start
417
418# DOOR LOCK COMMANDS
419        door_lock 28
420        door_lock 29
421        door_lock 30
422        door_lock 31
423
424        console_reset 2
425
426        fork Pod2_Alarm_Sound
427}
428
429# UNLOCK DOORS FROM CONSOLE
430
431func void Pod2_UnlockDoors(string ai_name)
432{
433        dprint Pod2UnlockDoors
434
435        door_unlock 28
436        door_unlock 29
437        door_unlock 30
438        door_unlock 31
439        door_lock(11);
440        particle lock99_locklight02 do stop
441
442        input 0
443        cm_interpolate lock2 0
444        sleep 30
445        particle alarm2_emlight01 do stop
446        sleep 30
447        particle lock2_locklight01 do start
448        sleep 150
449        cm_reset
450        input 1
451
452        console_reset 11
453}
454
455func void chase_after_scan(string ai_name)
456{
457        ai2_dopath Scan_BOS_3 chase_after_3
458        ai2_dopath Scan_BOS_4 chase_after_4
459
460        ai2_setjobstate Scan_BOS_3
461        ai2_setjobstate Scan_BOS_4
462
463        ai2_tripalarm 11 Konoko
464
465        sleep 1200
466
467        ai2_dopath Scan_BOS_1 chase_after_1
468        ai2_dopath Scan_BOS_2 chase_after_2
469
470        ai2_setjobstate Scan_BOS_1
471        ai2_setjobstate Scan_BOS_2
472
473        ai2_tripalarm 9 Konoko
474}
475###################### POD 3 #################################
476func void Pod3_Setup(string ai_name)
477{
478        dprint SetupPod3
479        ai2_spawn Pod3_BOS_1
480        ai2_spawn Pod3_BOS_2
481        ai2_spawn Pod3_BOL_1
482
483        #door_lock 59
484
485        trigvolume_enable Kerr_trig 1
486}
487
488func void Pod3_Unlock_Doors(string ai_name)
489{
490        dprint Pod3UnlockDoors
491
492        door_unlock 59
493
494        input 0
495        sleep 90
496        cm_interpolate lock3 0
497        sleep 60
498        particle lock3_locklight01 do start
499        sleep 150
500        cm_reset
501        input 1
502}
503
504func void Kerr_Console(string ai_name)
505{
506        dprint Kerr_Console
507
508        door_unlock 58
509
510        input 0
511        cm_interpolate lock4 0
512        sleep 60
513        particle lock4_locklight02 do start
514        sleep 150
515        trig_deactivate 2
516        sleep 75
517        cm_reset
518        input 1
519}
520
521###################### LAB 1 #################################
522func void Setup_Lab(string ai_name)
523{
524        dprint SetUpLab
525
526        particle lock5_locklight01 do stop
527
528        door_lock 6
529        door_lock 7
530
531        ai2_spawn LabHall_BOL_1
532        ai2_spawn LabHall_BOL_2
533        ai2_spawn LabHall_BOL_3
534        ai2_spawn LabHall_BOL_4
535        ai2_spawn LabHall_BOL_5
536
537        ai2_spawn Hall_TCS_33
538
539        ai2_spawn Lab1_Sci_1
540        ai2_spawn Lab1_Sci_2
541
542        ai2_spawn Lab2_Sci_1
543        ai2_spawn Lab2_Sci_2
544
545        ai2_spawn Lab3_Sci_1
546        ai2_spawn Lab3_Sci_2
547
548        trigvolume_enable Setup_Security_Trig 0
549        trigvolume_enable(chase_trigger, 0);
550}
551
552func void Lab_Console_1(string ai_name)
553{
554        dprint LabConsole1
555
556        #particle create labalarm1_emlight02
557        particle labalarm1 do start
558
559        ai2_spawn lab_BOS_1
560
561        #ai2_spawn lab_BOS_2
562
563        ai2_tripalarm 1 Konoko
564
565        particle lock4_locklight02 do stop
566        door_lock 58
567
568        neuro_counter = neuro_counter - 1
569
570        input 0
571        cm_interpolate lock5 0
572        sleep 60
573        particle lock5a_locklight01 do start
574        sleep 150
575        cm_reset
576        target_set(1009, 30.0)
577        input 1
578
579        if (neuro_counter eq 0)
580        {
581                Lab_Console_All_Counters();
582        }
583}
584
585func void Lab_Console_2(string ai_name)
586{
587        dprint LabConsole2
588
589        particle labalarm2 do start
590
591        ai2_spawn lab_BOS_2
592
593        #ai2_spawn lab_BOS_4
594
595        ai2_tripalarm 1 Konoko
596
597        target_set(268, 30.0)
598
599        particle lock4_locklight02 do stop
600        door_lock 58
601
602        neuro_counter = neuro_counter - 1
603
604        input 0
605        cm_interpolate lock5 0
606        sleep 60
607        particle lock5b_locklight01 do start
608        sleep 150
609        cm_reset
610        target_set(1009, 30.0)
611        input 1
612
613        if (neuro_counter eq 0)
614        {
615                Lab_Console_All_Counters();
616        }
617}
618
619func void Lab_Console_3(string ai_name)
620{
621        dprint LabConsole3
622
623        ai2_spawn lab_BOS_3
624
625        #ai2_spawn lab_BOS_6
626
627        particle labalarm3 do start
628
629        ai2_tripalarm 1 Konoko
630
631        particle lock4_locklight02 do stop
632        door_lock 58
633
634        target_set(367, 30.0)
635
636        neuro_counter = neuro_counter - 1
637
638        input 0
639        cm_interpolate lock5 0
640        sleep 60
641        particle lock5c_locklight01 do start
642        sleep 150
643        cm_reset
644        target_set(1009, 30.0)
645        input 1
646
647        if (neuro_counter eq 0)
648        {
649                Lab_Console_All_Counters();
650        }
651}
652
653func void Lab_Console_All_Counters(void)
654{
655        dprint PROBE_ROOM_OPEN
656        door_unlock 6
657        door_unlock 7
658
659        kerr_console_music_stop
660}
661
662func void Lab_Unlock_Door_5(string ai_name)
663{
664        dprint Probe_Room_Unlock_Doors
665        door_unlock 1
666# CB: no idea what this was, maybe it was the same as the current 66_01
667#       sound_dialog_play c13_49a_01konoko
668        input 0
669        cm_interpolate lock6 0
670        sleep 60
671        particle lock6_locklight02 do start
672        sleep 150
673        cm_reset
674        input 1
675
676        trigvolume_enable Setup_Security_Trig 1
677        trigvolume_enable(chase_trigger, 1);
678}
679#######################DURING THE SCAN#########################
680func void Scan_Guards(string ai_name)
681{
682        dprint Scan_Guards
683
684        ai2_spawn Scan_BOS_1
685        ai2_spawn Scan_BOS_2
686        ai2_spawn Scan_BOS_3
687        ai2_spawn Scan_BOS_4
688
689        #chr_teleport LabHall_BOL_1 274
690        #chr_teleport LabHall_BOL_4 275
691
692        chr_teleport LabHall_BOL_5 272
693        chr_teleport Hall_TCS_33 7018
694
695        #chr_teleport LabHall_BOL_2 264
696        #chr_teleport LabHall_BOL_3 7004
697
698        #ai2_forget LabHall_BOL_1
699        #ai2_forget LabHall_BOL_2
700        #ai2_forget LabHall_BOL_3
701        #ai2_forget LabHall_BOL_4
702
703        ai2_forget LabHall_BOL_5
704        ai2_forget Hall_TCS_33
705
706        ai2_dopath LabHall_BOL_1 Scan_BOL_1
707        ai2_dopath LabHall_BOL_2 Scan_BOL_2
708        ai2_dopath LabHall_BOL_3 Scan_BOL_3
709        ai2_dopath LabHall_BOL_4 Scan_BOL_4
710        ai2_dopath LabHall_BOL_5 Scan_BOL_5
711        ai2_dopath Hall_TCS_33 Scan_Hall_TCS_33
712
713        ai2_setjobstate LabHall_BOL_1
714        ai2_setjobstate LabHall_BOL_2
715        ai2_setjobstate LabHall_BOL_3
716        ai2_setjobstate LabHall_BOL_4
717        ai2_setjobstate Hall_TCS_33
718
719        fork get_her
720}
721
722func void get_her(string ai_name)
723{
724        dprint get_her_timer_start
725
726        sleep 18000
727
728        ai2_tripalarm 5 Konoko
729
730        ai2_dopath LabHall_BOL_1 get_her_1
731        ai2_dopath LabHall_BOL_2 get_her_2
732
733        ai2_setjobstate LabHall_BOL_1
734        ai2_setjobstate LabHall_BOL_2
735
736        sleep 18000
737
738        ai2_tripalarm 7 Konoko
739
740        ai2_dopath LabHall_BOL_3 Scan_BOL_3
741        ai2_dopath LabHall_BOL_4 Scan_BOL_4
742
743        ai2_setjobstate LabHall_BOL_3
744        ai2_setjobstate LabHall_BOL_4
745
746        sleep 18000
747
748        ai2_tripalarm 9 Konoko
749
750        ai2_dopath Scan_BOS_1 get_her_1
751        ai2_dopath Scan_BOS_2 get_her_2
752
753        ai2_setjobstate Scan_BOS_1
754        ai2_setjobstate Scan_BOS_2
755
756        sleep 18000
757
758        ai2_tripalarm 11 Konoko
759
760        ai2_dopath Scan_BOS_3 get_her_3
761        ai2_dopath Scan_BOS_4 get_her_4
762
763        ai2_setjobstate Scan_BOS_3
764        ai2_setjobstate Scan_BOS_4
765}
766
767func void endgether(string ai_name)
768{
769        ai2_attack Final_BOL_1 Konoko
770}
771########################### SECURITY #########################
772func void Setup_Security(string ai_name)
773{
774        dprint Setup_Security
775
776        ai2_spawn Sec_BOS_1
777        ai2_spawn Sec_BOS_2
778        ai2_spawn Sec_BOL_1
779
780        trigvolume_enable Ambush_Trigger_1 1
781
782        door_lock 7
783
784        particle lock8_locklight02 do stop
785
786        door_lock 54
787        particle lock7_locklight02 do stop
788
789        post_scan_music_stop
790}
791
792func void Unlock_Door_7(string ai_name)
793{
794        dprint Unlock_Door_7
795
796        door_unlock 54
797
798        input 0
799        cm_interpolate lock7 0
800        sleep 60
801        particle lock7_locklight02 do start
802        sleep 150
803        cm_reset
804        target_set(360, 30.0)
805        input 1
806
807        post_scan_music_stop
808}
809
810func void Sec_Ambush_1(string ai_name)
811{
812        dprint AMBUSH
813        trig_deactivate 3
814        trig_deactivate 4
815        turret_deactivate 2
816        turret_deactivate 3
817
818        door_unlock 7
819        door_unlock 36
820        particle lock8_locklight02 do start
821
822        door_lock 54
823        particle lock7_locklight02 do stop
824       
825        ai2_spawn Sec_Ambush_BOS_1
826        ai2_spawn Sec_Ambush_BOL_1
827
828        ai2_attack Sec_Ambush_BOS_1 Konoko
829        ai2_attack Sec_Ambush_BOL_1 Konoko
830
831        #ai2_spawn Sec_Ambush_BOS_2
832        #ai2_spawn Sec_Ambush_BOL_2
833}
834
835
836func void nextwave_1(string ai_name)
837{
838        ambush_counter = ambush_counter - 1
839
840        if (ambush_counter eq 0)
841        {
842                Sec_Ambush_2();
843        }
844}
845
846func void nextwave_2(string ai_name)
847{
848        ambush_counter = ambush_counter - 1
849
850        if (ambush_counter eq 0)
851        {
852                Sec_Ambush_2();
853        }
854}
855
856func void closethedoor(string ai_name)
857{
858        door_lock 7
859        door_lock 36
860
861        particle lock8_locklight02 do stop
862}
863
864func void Sec_Ambush_2(string ai_name)
865{
866        dprint AMBUSH2
867
868        door_unlock 7
869        door_unlock 36
870
871        particle lock8_locklight02 do start
872
873        ai2_spawn Sec_Ambush_BOS_2
874        ai2_spawn Sec_Ambush_BOL_2
875
876        ai2_attack Sec_Ambush_BOS_2 Konoko
877        ai2_attack Sec_Ambush_BOL_2 Konoko
878}
879
880######################### FINAL #########################
881
882func void Setup_Final(string ai_name)
883{
884        dprint Setup_Final
885
886        ai2_spawn Final_BOS_1
887        ai2_spawn Final_BOL_1
888
889        ai2_spawn Final_Thug_1
890        ai2_spawn Final_Thug_2
891
892        trigvolume_enable end 0
893}
894
895func void end(string ai_name)
896{
897        dprint END
898
899        fork Outro
900       
901        ai2_forget Final_BOS_1
902        ai2_forget Final_BOL_1
903        ai2_forget Final_BOL_2
904
905        ai2_forget Sec_Ambush_BOS_1
906        ai2_forget Sec_Ambush_BOS_2
907        ai2_forget Sec_Ambush_BOL_1
908        ai2_forget Sec_Ambush_BOL_1
909
910        ai2_forget Final_Thug_1
911        ai2_forget Final_Thug_2
912
913        ai2_dopath Final_BOS_1 End_BOS_1
914        ai2_dopath Final_BOL_1 End_BOL_1
915        ai2_dopath Final_BOL_2 End_BOL_2
916
917        ai2_dopath Sec_Ambush_BOS_1 End_BOS_1
918        ai2_dopath Sec_Ambush_BOS_2 End_BOS_1
919        ai2_dopath Sec_Ambush_BOL_1 End_BOL_1
920        ai2_dopath Sec_Ambush_BOL_2 End_BOL_1
921
922        ai2_dopath Final_Thug_1 End_Thug_1
923        ai2_dopath Final_Thug_2 End_Thug_1
924
925        ai2_setjobstate Final_BOS_1
926        ai2_setjobstate Final_BOL_1
927        ai2_setjobstate Final_BOL_2
928
929        ai2_setjobstate Sec_Ambush_BOS_1
930        ai2_setjobstate Sec_Ambush_BOS_2
931
932        ai2_setjobstate Sec_Ambush_BOL_1
933        ai2_setjobstate Sec_Ambush_BOL_2
934
935        ai2_setjobstate Final_Thug_1
936        ai2_setjobstate Final_Thug_2
937}
938
939##############################################################
940
941# COUNTDOWN TO FINAL CUTSCENE
942
943func void check_1(string ai_name)
944{
945        dprint circle_squared
946        final_count = final_count - 1
947        if (final_count eq 0)
948        {
949        trigvolume_enable ending 1
950        }
951}
952
953func void check_2(string ai_name)
954{
955        dprint circle_squared
956        final_count = final_count - 1
957        if (final_count eq 0)
958        {
959        trigvolume_enable ending 1
960        }
961}
962
963func void mid_guards(string ai_name)
964{
965        dprint final_guards
966        ai2_spawn Final_BOL_2
967        ai2_spawn Final_Thug_9
968
969        ai2_attack Final_BOL_2 Konoko
970}
971
972func void end_guards(string ai_name)
973{
974        dprint final_guards
975        ai2_spawn end_guard_1
976        ai2_spawn end_guard_2
977        ai2_spawn Final_Thug_10
978}
979
980
981####################################################################
982
983func void set_objective_1(void)
984{
985        dprint set_objective_1
986        objective_set(1)
987        target_set(1261, 30.0)
988}
989
990func void set_objective_2(string chr_index)
991{
992        dprint set_objective_2
993        objective_set(2)
994        target_set(366, 30.0)
995}
996
997func void set_objective_3(string chr_index)
998{
999        dprint set_objective_3
1000        objective_set(3)
1001        target_set(346, 30.0)
1002}
1003
1004func void set_objective_4(string chr_index)
1005{
1006        dprint set_objective_4
1007        objective_set(4)
1008        target_set(222, 30.0)
1009}
1010
1011func void kerr_died(string ai_name)
1012{
1013        if (has_probed eq 0)
1014        {
1015                you_lose();
1016        }
1017}
1018
1019func void you_lose(string ai_name)
1020{
1021        sleep 240
1022        fade_out 0 0 0 180
1023        sleep 240
1024        lose
1025}
1026
1027func void level_14a(void)
1028{
1029        dprint set_text_14a
1030        text_console level_14a
1031        console_reset 12
1032}
1033
1034func void level_14b(void)
1035{
1036        dprint set_text_14b
1037        text_console level_14b
1038        console_reset 6
1039}
1040
1041
1042################## ANIM SCRIPTS ##########################################
1043func void patrolscript0001 (string ai_name)
1044{
1045        playback_block Pod1_TCL_1 alarm1 interp 20
1046}
1047
1048func void patrolscript0002 (string ai_name)
1049{
1050        playback_block Pod1_TCL_2 alarm2 interp 20
1051}
1052
1053func void patrolscript0003 (string ai_name)
1054{
1055        playback_block Pod2_TCL_1 pod2alarm1 interp 20
1056}
1057
1058func void patrolscript0004 (string ai_name)
1059{
1060        playback_block Pod2_TCL_2 pod2alarm2 interp 20
1061}
1062
1063func void patrolscript0009 (string ai_name)
1064{
1065        particle lock99_locklight02 do start
1066        door_unlock 11
1067        sleep 540
1068        particle lock99_locklight02 do stop
1069        door_lock 11
1070}
1071
1072func void patrolscript0010 (string ai_name)
1073{
1074        particle lock99_locklight02 do start
1075        door_unlock 11
1076# WAIT AND RELOCK DOORS
1077        sleep 540
1078        particle lock99_locklight02 do stop
1079        door_lock 11
1080}
1081
1082func void kerr_console_music(void)
1083{
1084        sound_music_start mus_ambgrv2 0.8
1085}
1086
1087func void kerr_console_music_stop(void)
1088{
1089        dprint stopping_kerr_console_music
1090        sound_music_stop mus_ambgrv2
1091}
1092
1093func void post_scan_music_start(void)
1094{
1095        dprint startting posctuscene
1096        sound_music_start mus_xtr1 0.7
1097}
1098
1099func void post_scan_music_stop(void)
1100{
1101        sound_music_stop mus_xtr1
1102}
1103
1104################## VAT MONOLOGUE LOGIC ##########################
1105
1106var int played_vat_monologue = 0;
1107
1108func void prepare_vat_monologue(void)
1109{
1110        trigvolume_enable tv_vat_monologue_1 1
1111        trigvolume_enable tv_vat_monologue_2 1
1112}
1113
1114func void set_vat_monologue_variable(void)
1115{
1116        played_vat_monologue = 1;
1117}
1118
1119func void play_vat_monologue(string ai_name)
1120{
1121        if (played_vat_monologue eq 0)
1122        {
1123                # this is a hack to get around the way that the scripting
1124                # language mistakenly sets variables that are inside an
1125                # if clause that isn't being run
1126                set_vat_monologue_variable();
1127
1128                sleep 90
1129
1130                EndScan();
1131        }
1132}
1133
1134################## END LEVEL LOGIC FOR TRIGGER ###################
1135
1136func void check_outro(string ai_name)
1137{
1138        trigvolume_enable tv_check_outro 0
1139       
1140        if(FTS_variable eq 0)
1141        {
1142                if(trigvolume_count (77) eq 0)
1143                {
1144                        sleep 120
1145                        trigvolume_enable ending 1
1146                        trigvolume_enable ending2 1
1147                }
1148                if(trigvolume_count (77) ne 0)
1149                {
1150                        sleep 90
1151                        trigvolume_enable tv_check_outro 1
1152                }
1153        }
1154        sleep 90
1155        trigvolume_enable tv_check_outro 1
1156}
1157
1158func void final_check_for_crane(string ai_name)
1159{
1160        final_check = final_check + 1
1161}
1162
1163func void FTS(string ai_name)
1164{
1165        FTS_variable = FTS_variable - 1
1166}
Note: See TracBrowser for help on using the repository browser.