source: nikanabo/current/bsl/onilight/IGMD/neuro/neuro.bsl @ 185

Last change on this file since 185 was 185, checked in by geyser, 14 years ago
File size: 22.2 KB
Line 
1#################
2### VARIABLES ###
3#################
4
5var int var_counter = 0;
6var int var_counter2 = 0;
7
8############
9### MAIN ###
10############
11
12func void main(void)
13{
14gl_fog_red = .15
15gl_fog_blue = .15
16gl_fog_green = .15
17gl_fog_start = .995
18gs_farclipplane_set 5000
19ui_suppress_prompt = 1
20chr_auto_aim_dist = 0
21menu2
22start
23}
24
25#############
26### START ###
27#############
28
29func void start(void)
30{
31fork deactivate_stuff
32if(save_point eq 0) save_point = 1
33if(save_point eq 1) fork intro
34if (save_point eq 2) restore_game
35if (save_point eq 3) restore_game
36if (save_point eq 4) restore_game
37sleep 5
38fork sp_all
39}
40
41func void deactivate_stuff(void)
42{
43#not used
44trigvolume_enable ending 0
45trigvolume_enable ending2 0
46trigvolume_enable sensor 0
47trigvolume_enable final_sensor 0
48trigvolume_enable spawn_kerr_trig 0
49trigvolume_enable trap_music 0
50trigvolume_enable tv_check_outro 0
51trigvolume_enable tv_vat_monologue_1 0
52trigvolume_enable tv_vat_monologue_2 0
53trigvolume_enable lab1 0
54trigvolume_enable lab1_copy 0
55trigvolume_enable lab1_copy_copy 0
56trigvolume_enable lab1_copy_copy2 0
57trigvolume_enable lab1_copy_copy3 0
58trigvolume_enable lab1_copy_copy4 0
59trigvolume_enable lab1_copy_copy5 0
60trigvolume_enable lab1_copy_copy6 0
61trigvolume_enable lab1_copy_copy7 0
62trigvolume_enable lab1_copy_copy8 0
63trigvolume_enable lab1_copy_copy9 0
64trigvolume_enable lab1_copy_copy10 0
65trigvolume_enable lab1_copy_copy3_copy 0
66trigvolume_enable lab1_copy_copy3_copy2 0
67trigvolume_enable lab1_copy_copy3_copy3 0
68trigvolume_enable lab1_copy_copy3_copy4 0
69trigvolume_enable trigger_volume_02 0
70trigvolume_enable trigger_volume_08_copy 0
71trigvolume_enable trigger_volume_19 0
72trigvolume_enable trigger_volume_19_copy2 0
73trigvolume_enable trigger_volume_19_copy3 0
74trigvolume_enable trigger_volume_19_copy4 0
75trigvolume_enable trigger_volume_19_copy5 0
76trigvolume_enable trigger_volume_19_copy6 0
77trigvolume_enable trigger_volume_19_copy3_copy 0
78trigvolume_enable trigger_volume_19_copy6_copy 0
79trigvolume_enable trigger_volume_19_copy6_copy2 0
80trigvolume_enable trigger_volume_19_copy7 0
81trigvolume_enable trigger_volume_19_copy8 0
82trigvolume_enable trigger_volume_37 0
83trigvolume_enable trigger_volume_37_copy 0
84trigvolume_enable trigger_volume_37_copy_copy 0
85trigvolume_enable trigger_volume_37_copy_copy_copy 0
86trigvolume_enable trigger_volume_37_copy_copy_copy2 0
87trigvolume_enable trigger_volume_37_copy2 0
88trigvolume_enable trigger_volume_37_copy3 0
89trigvolume_enable trigger_volume_37_copy4 0
90trigvolume_enable trigger_volume_45 0
91trigvolume_enable trigger_volume_45_copy 0
92trigvolume_enable trigger_volume_45_copy_copy 0
93trigvolume_enable trigger_volume_45_copy_copy2 0
94trigvolume_enable trigger_volume_45_copy_copy3 0
95trigvolume_enable trigger_volume_45_copy_copy4 0
96trigvolume_enable trigger_volume_45_copy_copy5 0
97trigvolume_enable trigger_volume_45_copy_copy6 0
98trigvolume_enable trigger_volume_53_copy 0
99trigvolume_enable trigger_volume_53_copy_copy 0
100trigvolume_enable trigger_volume_68 0
101trigvolume_enable trigger_volume_69 0
102trigvolume_enable trigger_volume_69_copy 0
103trigvolume_enable trigger_volume_69_copy2 0
104#used
105trigvolume_enable chase_trigger 0
106trigvolume_enable end 0
107trigvolume_enable Setup_Security_Trig 0
108trigvolume_enable trigger_volume_02 0
109trig_deactivate 2
110trig_deactivate 3
111trig_deactivate 4
112obj_create 71 74
113obj_create 401 409
114env_anim 401 409
115env_show 823 0
116console_deactivate 9
117}
118
119func void you_lose(string ai_name)
120{
121fade_out 0 0 0 30
122sleep 30
123lose
124}
125
126####################################
127### SEVERAL TIMES USED FUNCTIONS ###
128####################################
129
130func void sp_all(void)
131{
132co_message_display = 0
133if(save_point eq 1) save_game 1 autosave
134if(save_point eq 2) save_game 2 autosave
135if(save_point eq 3) save_game 3 autosave
136if(save_point eq 4) save_game 4 autosave
137sleep 180
138co_message_display = 1
139}
140
141func void remove_ai(void)
142{
143ai2_kill
144sleep 60
145powerup_reset
146weapon_reset
147sleep 240
148corpse_reset
149}
150
151func void music_stop(void)
152{
153sound_music_stop mus_space01
154sound_music_stop mus_xtr1
155}
156
157##########
158### SP1 ###
159##########
160
161#tv55 - in some distance after the door 9 (fake door) (func: start_trap_music); I've disabled it
162
163func void intro(void)
164{
165playback 0 IntroKonstart
166particle lock100_locklight01 do stop
167door_lock 11
168ai2_spawn OutroTCTF2
169chr_changeteam OutroTCTF2 TCTF
170ai2_spawn Start_Lite_1
171ai2_spawn IntroTCTF02
172chr_teleport OutroTCTF2 1010
173chr_teleport Start_Lite_1 1010
174chr_teleport IntroTCTF02 1010
175ai2_lookatme OutroTCTF2
176ai2_lookatme Start_Lite_1
177ai2_lookatme IntroTCTF02
178env_show 271 1
179env_show 272 1
180env_shade 271 272 .4 .4 .2
181objective_set 1 silent
182target_set 1261 30
183sleep 1
184sound_music_start mus_space01 0.8
185ai2_attack OutroTCTF2 Konoko
186ai2_attack Start_Lite_1 Konoko
187ai2_attack IntroTCTF02 Konoko
188fork wait1
189fork wait2
190fork wait3
191}
192
193func void wait1(void)
194{
195chr_wait_health OutroTCTF2 0
196check_counter
197}
198
199func void wait2(void)
200{
201chr_wait_health Start_Lite_1 0
202check_counter
203}
204
205func void wait3(void)
206{
207chr_wait_health IntroTCTF02 0
208check_counter
209}
210
211func void check_counter(void)
212{
213var_counter = var_counter + 1
214if(var_counter eq 3)
215        {
216        trigvolume_enable trigger_volume_02 1
217        particle lock99_locklight02 do start
218        door_unlock 11
219        var_counter = 0
220        music_stop
221        }
222}
223
224#tv1 - in front of door 11 (func: Setup_Pod1); I've disabled it
225
226##########
227### SP2 ###
228##########
229
230#tv54 - after door 11
231func void autosave_1(string player_name)
232{
233if(save_point eq 2)
234        {
235        objective_set 1 silent
236        target_set 1261 30
237        }
238else save_game 2 autosave
239ai2_spawn Pod1_Scientist_1
240ai2_spawn Pod1_Scientist_2
241ai2_spawn Pod1_TCL_1
242ai2_spawn Pod1_TCL_2
243ai2_spawn Pod1_TCL_3
244particle lab1 do start
245particle lab2 do start
246particle lab3 do start
247}
248
249func void patrolscript0001(string ai_name)
250{
251playback_block Pod1_TCL_1 alarm1 interp 20
252}
253
254func void patrolscript0002(string ai_name)
255{
256playback_block Pod1_TCL_2 alarm2 interp 20
257}
258
259#tv20 - in front of door 15 (func: lab1_stop); I've disabled it
260#tv19 - after door 15 (func: lab1_start); I've disabled it
261#tv28 - in front of door 14 (func: lab1_stop); I've disabled it
262#tv27 - after door 14 (func: lab1_start); I've disabled it
263#tv31 - in front of door 19 (func: lab1_start); I've disabled it
264#tv32 - after door 19 (func: lab1_stop); I've disabled it
265#tv24 - in front of door 18 (func: lab1_start); I've disabled it
266#tv33 - after door 18 (func: lab1_stop); I've disabled it
267#tv34 - in front of door 16 (enter func: lab1_stop, leave func: lab2_start); I've disabled it
268#tv25 - after door 16 (func: lab1_start); I've disabled it
269#tv23 - in front of door 17 (enter func: lab1_stop, leave func: lab2_start); I've disabled it
270#tv22 - after door 17 (func: lab1_start); I've disabled it
271#tv26 - in front of door 13 (func: lab1_start); I've disabled it
272#tv29 - after door 13 (func: lab1_stop); I've disabled it
273#tv21 - in front of door 12 (func: lab1_start); I've disabled it
274#tv30 - after door 12 (func: lab1_stop); I've disabled it
275
276#console1
277func void Pod1_UnlockDoors(string ai_name)
278{
279particle lock1_locklight01 do start
280door_unlock 20
281door_unlock 21
282door_unlock 22
283door_unlock 23
284particle lock99_locklight02 do stop
285door_lock 11
286particle alarm1_emlight01 do stop
287console_reset 10
288}
289
290#hit func of Pod1_TCL_1
291func void Pod1_RTAlarm_A(string ai_name)
292{
293ai2_doalarm Pod1_TCL_1 10
294}
295
296#hit func of Pod1_TCL_2
297func void Pod1_RTAlarm_B(string ai_name)
298{
299ai2_doalarm Pod1_TCL_2 10
300}
301
302#console10
303func void Pod1_Alarm(string ai_name)
304{
305door_unlock 11
306particle lock99_locklight02 do start
307sleep 180
308ai2_spawn Pod1_BOL_Alarm_1
309ai2_spawn Pod1_BOL_Alarm_2
310ai2_spawn pod1_a_1
311ai2_spawn pod1_a_2
312ai2_setalert Pod1_TCL_1 combat
313ai2_setalert Pod1_TCL_2 combat
314ai2_setalert Pod1_TCL_3 combat
315ai2_setalert Pod1_BOL_Alarm_1 combat
316ai2_setalert Pod1_BOL_Alarm_2 combat
317ai2_dopath Pod1_TCL_1 Pod1_Final_Guard_A
318ai2_dopath Pod1_TCL_2 Pod1_Final_Guard_B
319ai2_dopath Pod1_TCL_3 Pod1_Final_Guard_C
320ai2_dopath Pod1_Scientist_1 Pod1_Final_Sci_A
321ai2_dopath Pod1_Scientist_2 Pod1_Final_Sci_B
322ai2_setjobstate Pod1_TCL_1
323ai2_setjobstate Pod1_TCL_2
324ai2_setjobstate Pod1_TCL_3
325ai2_setjobstate Pod1_Scientist_1
326ai2_setjobstate Pod1_Scientist_2
327ai2_tripalarm 11 Konoko
328particle lock1_locklight01 do stop
329door_lock 20
330door_lock 21
331door_lock 22
332door_lock 23
333particle alarm1_emlight01 do start
334console_reset 1
335Pod_Alarm_Sound
336}
337
338#for the Pod_Alarm_Sound func see pod2 section
339
340#tv2 - huge box in front of door 20, door 21, door 22 and door 23
341func void Pod2_Setup(string ai_name)
342{
343trig_activate 2
344ai2_spawn Pod2_TCL_1
345ai2_spawn Pod2_TCL_2
346ai2_spawn Pod2_Sci_1
347particle lock2_locklight01 do stop
348}
349
350func void patrolscript0003(string ai_name)
351{
352playback_block Pod2_TCL_1 pod2alarm1 interp 20
353}
354
355func void patrolscript0004(string ai_name)
356{
357playback_block Pod2_TCL_2 pod2alarm2 interp 20
358}
359
360#tv36 - in front of door 27 (enter func: lab2_start, leave func: lab3_stop); I've disabled it
361#tv40 - after of door 27 (enter func: lab2_stop, leave func: lab3_start); I've disabled it
362#tv39 - in front of door 26 (enter func: lab2_start, leave func: lab3_stop); I've disabled it
363#tv35 - after of door 26 (enter func: lab2_stop, leave func: lab3_start); I've disabled it
364#tv38 - in front of door 25 (enter func: lab2_start, leave func: lab3_stop); I've disabled it
365#tv41 - after of door 25 (enter func: lab2_stop, leave func: lab3_start); I've disabled it
366#tv37 - in front of door 24 (enter func: lab2_start, leave func: lab3_stop); I've disabled it
367#tv42 - after of door 24 (enter func: lab2_stop, leave func: lab3_start); I've disabled it
368
369#console2
370func void Pod2_UnlockDoors(string ai_name)
371{
372door_unlock 28
373door_unlock 29
374door_unlock 30
375door_unlock 31
376door_lock 11
377particle lock99_locklight02 do stop
378particle alarm2_emlight01 do stop
379particle lock2_locklight01 do start
380console_reset 11
381}
382
383#hit func of Pod2_TCL_1
384func void Pod2_RTAlarm_A(string ai_name)
385{
386ai2_doalarm Pod2_TCL_1 11
387}
388
389#hit func of Pod2_TCL_2
390func void Pod2_RTAlarm_B(string ai_name)
391{
392ai2_doalarm Pod2_TCL_2 11
393}
394
395#console11
396func void Pod2_Alarm(string ai_name)
397{
398door_unlock 11
399particle lock99_locklight02 do start
400sleep 180
401ai2_spawn Pod2_BOL_Alarm_1
402ai2_spawn pod2_a_1
403ai2_spawn pod2_a_2
404ai2_setalert Pod2_TCL_1 high
405ai2_setalert Pod2_TCL_2 high
406ai2_setalert Pod2_BOS_1 high
407ai2_dopath Pod2_TCL_1 Pod2_End_TCL_1
408ai2_dopath Pod2_TCL_2 Pod2_End_TCL_2
409ai2_dopath Pod2_BOS_1 Pod2_End_BOS_1
410ai2_dopath Pod2_Sci_1 Pod2_End_Sci_1
411ai2_setjobstate Pod2_TCL_1
412ai2_setjobstate Pod2_TCL_2
413ai2_setjobstate Pod2_BOS_1
414ai2_setjobstate Pod2_Sci_1
415ai2_tripalarm 12 Konoko
416particle lock2_locklight01 do stop
417particle alarm2_emlight01 do start
418door_lock 28
419door_lock 29
420door_lock 30
421door_lock 31
422console_reset 2
423Pod_Alarm_Sound
424}
425
426func void Pod_Alarm_Sound(void)
427{
428sound_ambient_start alarm_loop
429sleep 900
430sound_ambient_stop alarm_loop
431}
432
433#tv3 - huge box in front of door 28, door 29, door 30 and door 31
434func void Pod3_Setup(string ai_name)
435{
436ai2_spawn Pod3_BOS_1
437ai2_spawn Pod3_BOS_2
438ai2_spawn Pod3_BOL_1
439trigvolume_enable Kerr_trig 1
440}
441
442#tv44 - in front of door 35 (func: lab3_start); I've disabled it
443#tv46 - after of door 35 (enter func: lab3_stop); I've disabled it
444#tv48 - in front of door 34 (func: lab3_start); I've disabled it
445#tv47 - after of door 34 (enter func: lab3_stop); I've disabled it
446#tv50 - in front of door 33 (func: lab3_start); I've disabled it
447#tv45 - after of door 33 (enter func: lab3_stop); I've disabled it
448#tv49 - in front of door 32 (func: lab3_start); I've disabled it
449#tv43 - after of door 32 (enter func: lab3_stop); I've disabled it
450#tv9 - huge box from after door 33 and door 34 to the end of the room, where you find Kerr (no funcs); not used
451#tv75 - in front of door 59 (func KerrSpawn); I've disabled it
452
453#tv67 - complete room after door 59
454func void Kerr(void)
455{
456trigvolume_enable Kerr_trig 0
457if(save_point eq 3)
458        {
459        particle lab3 do start
460        load_s3
461        }
462else console_activate 13
463}
464
465func void patrolscript0009(string ai_name)
466{
467patrolscript0010
468}
469
470func void patrolscript0010 (string ai_name)
471{
472particle lock99_locklight02 do start
473door_unlock 11
474sleep 540
475particle lock99_locklight02 do stop
476door_lock 11
477}
478
479##########
480### SP3 ###
481##########
482
483#console13
484func void Kerr_Console(string ai_name)
485{
486give_powerup hypo 2
487if(save_point ne 3) save_game 3 autosave
488trig_deactivate 2
489load_s3
490particle lock1_locklight01 do stop
491particle lock2_locklight01 do stop
492door_lock 28
493door_lock 29
494door_lock 30
495door_lock 31
496particle lab1 do stop
497particle lab2 do stop
498}
499
500func void load_s3(void)
501{
502particle lock4_locklight02 do start
503door_unlock 58
504objective_set 2 silent
505target_set 366 30
506}
507
508#tv4 - on the gangway in front of door 58
509func void Setup_Lab(string ai_name)
510{
511ai2_spawn CS_ScanOps01
512ai2_spawn LabHall_BOL_1
513ai2_spawn LabHall_BOL_2
514ai2_spawn LabHall_BOL_3
515ai2_spawn LabHall_BOL_4
516ai2_spawn LabHall_BOL_5
517ai2_spawn Hall_TCS_33
518ai2_spawn Lab1_Sci_1
519ai2_spawn Lab1_Sci_2
520ai2_spawn Lab2_Sci_1
521ai2_spawn Lab2_Sci_2
522ai2_spawn Lab3_Sci_1
523ai2_spawn Lab3_Sci_2
524particle part1 do start
525particle part2 do start
526}
527
528#tv52 - huge box after door 58 from the wall to the stairs; 1st and 2nd floor (enter func: part1_begin, leave func: part1_stop); I'vedisabled it
529#tv51 - after tv52 (enter func: part2_start, leave func: part2_stop); I'vedisabled it
530#tv14 - in front of door 6 and door 7 (func: spawn_kerr); I've disabled it
531#tv71 - in front of door 7 (no func); I've disabled it
532#tv73 - in front of door 7 (func: play_vat_monologue); I've disabled it
533#tv69 - in front of door 6 (no func); I've disabled it
534#tv74 - in front of door 6 (func: play_vat_monologue); I've disabled it
535#tv68 - complete scan lab (no func); I've disabled it
536
537#console5
538func void Lab_Console_3(string ai_name)
539{
540ai2_spawn lab_BOS_3
541ai2_tripalarm 1 Konoko
542particle lock5c_locklight01 do start
543particle labalarm3 do start
544door_check
545}
546
547#console4
548func void Lab_Console_2(string ai_name)
549{
550ai2_spawn lab_BOS_2
551ai2_tripalarm 1 Konoko
552particle lock5b_locklight01 do start
553particle labalarm2 do start
554door_check
555}
556
557#console3
558func void Lab_Console_1(string ai_name)
559{
560ai2_spawn lab_BOS_1
561ai2_tripalarm 1 Konoko
562particle lock5a_locklight01 do start
563particle labalarm1 do start
564door_check
565}
566
567func void door_check(void)
568{
569var_counter = var_counter + 1
570if(var_counter eq 1)
571        {
572        particle lock4_locklight02 do stop
573        door_lock 58
574        target_set 1009 30
575        particle lab3 do stop
576        }
577if(var_counter eq 3)
578        {
579        door_unlock 6
580        door_unlock 7
581        var_counter = 0
582        }
583}
584
585##########
586### SP4 ###
587##########
588
589#tv11 - complete scan lab
590func void scanner_start(void)
591{
592trigvolume_enable trigger_volume_13 0
593if(save_point eq 4)
594        {
595        ai2_spawn CS_ScanOps01
596        particle lock5a_locklight01 do start
597        particle lock5b_locklight01 do start
598        particle lock5c_locklight01 do start
599        door_unlock 6
600        door_unlock 7
601        console_deactivate 3
602        console_deactivate 4
603        console_deactivate 5
604        particle part1 do start
605        particle part2 do start
606        }
607else save_game 4 autosave
608objective_set 3 silent
609target_set 346 30
610sleep 1
611sound_music_start mus_xtr1 0.7
612}
613
614#lose func of CS_ScanOps01
615func void play_vat_monologue(string ai_name)
616{
617var_counter = var_counter + 1
618if(var_counter eq 1) sound_dialog_play c13_66_01konoko
619}
620
621#console14
622func void Lab_Unlock_Door_5(string ai_name)
623{
624particle lock6_locklight02 do start
625door_unlock 1
626trigvolume_enable chase_trigger 1
627trigvolume_enable Setup_Security_Trig 1
628ai2_spawn Scan_BOS_1
629ai2_spawn Scan_BOS_2
630ai2_spawn Scan_BOS_3
631ai2_spawn Scan_BOS_4
632chr_teleport LabHall_BOL_5 272
633chr_teleport Hall_TCS_33 7018
634ai2_forget LabHall_BOL_5
635ai2_forget Hall_TCS_33
636ai2_dopath LabHall_BOL_1 Scan_BOL_1
637ai2_dopath LabHall_BOL_2 Scan_BOL_2
638ai2_dopath LabHall_BOL_3 Scan_BOL_3
639ai2_dopath LabHall_BOL_4 Scan_BOL_4
640ai2_dopath LabHall_BOL_5 Scan_BOL_5
641ai2_dopath Hall_TCS_33 Scan_Hall_TCS_33
642ai2_setjobstate LabHall_BOL_1
643ai2_setjobstate LabHall_BOL_2
644ai2_setjobstate LabHall_BOL_3
645ai2_setjobstate LabHall_BOL_4
646ai2_setjobstate Hall_TCS_33
647fork get_her
648}
649
650func void get_her(string ai_name)
651{
652sleep 1800
653ai2_tripalarm 5 Konoko
654ai2_dopath LabHall_BOL_1 get_her_1
655ai2_dopath LabHall_BOL_2 get_her_2
656ai2_setjobstate LabHall_BOL_1
657ai2_setjobstate LabHall_BOL_2
658sleep 1800
659ai2_tripalarm 7 Konoko
660ai2_dopath LabHall_BOL_3 Scan_BOL_3
661ai2_dopath LabHall_BOL_4 Scan_BOL_4
662ai2_setjobstate LabHall_BOL_3
663ai2_setjobstate LabHall_BOL_4
664sleep 1800
665ai2_tripalarm 9 Konoko
666ai2_dopath Scan_BOS_1 get_her_1
667ai2_dopath Scan_BOS_2 get_her_2
668ai2_setjobstate Scan_BOS_1
669ai2_setjobstate Scan_BOS_2
670sleep 1800
671ai2_tripalarm 11 Konoko
672ai2_dopath Scan_BOS_3 get_her_3
673ai2_dopath Scan_BOS_4 get_her_4
674ai2_setjobstate Scan_BOS_3
675ai2_setjobstate Scan_BOS_4
676}
677
678#tv80 - in some distance after door 3
679func void chase_after_scan(string ai_name)
680{
681play_vat_monologue
682ai2_dopath Scan_BOS_3 chase_after_3
683ai2_dopath Scan_BOS_4 chase_after_4
684ai2_setjobstate Scan_BOS_3
685ai2_setjobstate Scan_BOS_4
686ai2_tripalarm 11 Konoko
687sleep 1200
688ai2_dopath Scan_BOS_1 chase_after_1
689ai2_dopath Scan_BOS_2 chase_after_2
690ai2_setjobstate Scan_BOS_1
691ai2_setjobstate Scan_BOS_2
692ai2_tripalarm 9 Konoko
693}
694
695#tv12 - in front of door 1
696func void Setup_Security(string ai_name)
697{
698trigvolume_enable Ambush_Trigger_1 1
699ai2_spawn Sec_BOL_1
700ai2_spawn Sec_BOS_1
701ai2_spawn Sec_BOS_2
702trig_activate 3
703trig_activate 4
704music_stop
705}
706
707#console86
708func void Unlock_Door_7(string ai_name)
709{
710particle lock7_locklight02 do start
711door_unlock 54
712target_set 360 30
713var_counter = 0
714}
715
716#tv5 - in the middle between door 54 and door 36
717func void Sec_Ambush_1(string ai_name)
718{
719fork remove_ai
720trig_deactivate 3
721trig_deactivate 4
722turret_deactivate 2
723turret_deactivate 3
724particle lock8_locklight02 do start
725door_unlock 36
726door_unlock 37
727particle lock7_locklight02 do stop
728door_lock 54
729ai2_spawn Sec_Ambush_BOS_1
730ai2_spawn Sec_Ambush_BOL_1
731ai2_attack Sec_Ambush_BOS_1 Konoko
732ai2_attack Sec_Ambush_BOL_1 Konoko
733sleep 120
734particle lock8_locklight02 do stop
735door_lock 36
736particle part1 do stop
737particle part2 do stop
738}
739
740#tv72 - in front of door 36 (func: closethedoor); I've disabled it
741
742#tv6 - in front of tv72
743func void Setup_Final(string ai_name)
744{
745ai2_spawn Final_BOS_1
746ai2_spawn Final_BOL_1
747ai2_spawn Final_Thug_1
748ai2_spawn Final_Thug_2
749}
750
751#lose func of Sec_Ambush_BOS_1
752func void nextwave_1(string ai_name)
753{
754nextwave_2
755}
756
757#lose func of Sec_Ambush_BOS_2
758func void nextwave_2(string ai_name)
759{
760var_counter = var_counter + 1
761if(var_counter eq 2)
762        {
763        particle vat1 do start
764        particle vat2 do start
765        particle vat3 do start
766        particle vat4 do start
767        particle lock8_locklight02 do start
768        door_unlock 36
769        door_unlock 37
770        ai2_spawn Sec_Ambush_BOS_2
771        ai2_spawn Sec_Ambush_BOL_2
772        ai2_attack Sec_Ambush_BOS_2 Konoko
773        ai2_attack Sec_Ambush_BOL_2 Konoko
774        var_counter = 0
775        }
776}
777
778#tv13 - in the middle of the next room, from left to right
779func void set_objective_4(string chr_index)
780{
781objective_set 4 silent
782target_set 222 30
783}
784
785#tv57 - in some distance in front of door 37 (func: vat1_start); I've disabled it
786
787#tv56 - after door 37
788func void BeginVat(void)
789{
790sound_dialog_play c13_66_02konoko
791ai2_attack Final_BOL_1 Konoko
792}
793
794#tv79 - in front of tv58
795func void mid_guards(string ai_name)
796{
797ai2_spawn Final_BOL_2
798ai2_spawn Final_Thug_9
799ai2_attack Final_BOL_2 Konoko
800}
801
802#tv58 - in front of tv62 (func: vat2_stop); I've disabled it
803#tv62 - in front of door 38 and door 39 (func: vat2_start); I've disabled it
804
805#tv18 - complete room, where you find console7
806func void CraneTalk(void)
807{
808sound_dialog_play c13_66_03konoko
809}
810
811#console7 and console8
812func void FTS(string ai_name)
813{
814var_counter = var_counter + 1
815if(var_counter eq 2) console_activate 9
816}
817
818#tv60 - in front of door 42 and door 43 (func: vat1_start); I've disabled it
819#tv59 - after door 42 and door 43 (func: vat1_stop); I've disabled it
820#tv61 - in front of tv64 (func: vat3_stop); I've disabled it
821#tv64 - in front of door 44 and door 45 (func: vat3_start); I've disabled it
822
823#tv76 - in front of tv63
824func void end_guards(string ai_name)
825{
826ai2_spawn end_guard_1
827ai2_spawn end_guard_2
828ai2_spawn Final_Thug_10
829}
830
831#tv63 - in front of door 48 and door 49 (func: vat2_start); I've disabled it
832#tv65 - after door 48 and door 49 (func: vat2_stop); I've disabled it
833#tv77 - complete last platform (no func); I've disabled it
834#tv78 - complete last platform (func: check_outro); I've disabled it
835#tv7 - complete last platform (no func); I've disabled it
836#tv8 - after door 51 (no func); I've disabled it
837#tv18 - at the end of the last platform, in front of the crusher (func: vat3_start); I've disabled it
838#tv66 - after tv18 (func: vat3_stop); I've disabled it
839
840#console9
841func void final_check_for_crane(string ai_name)
842{
843fade_out 0 0 0 30
844sleep 30
845win
846}
847
848### ACID FUNCTIONS ###
849
850#tv10 - 1st acid basin
851func void Acid01(string character)
852{
853var_counter2 = 1
854acid(character)
855}
856
857#tv15 - 2nd acid basin
858func void Acid02(string character)
859{
860var_counter2 = 2
861acid(character)
862}
863
864#tv16 - 3rd acid basin
865func void Acid03(string character)
866{
867var_counter2 = 3
868acid(character)
869}
870
871#tv53 - 4th acid basin
872func void acid04(string character)
873{
874var_counter2 = 4
875acid(character)
876}
877
878func void acid(string character)
879{
880if(chr_is_player(character) eq 1)
881        {
882        chr_animate(character, KONOKOacid);
883        input 0
884        if(var_counter2 eq 1) cm_interpolate AcidCam01 500
885        if(var_counter2 eq 2) cm_interpolate AcidCam01 400
886        if(var_counter2 eq 3) cm_interpolate AcidCam01 200
887        if(var_counter2 eq 4) cm_interpolate AcidCam01 0
888        sleep 5
889        chr_invincible(character, 1);
890        if(var_counter2 eq 1) sleep 525
891        if(var_counter2 eq 2) sleep 430
892        if(var_counter2 eq 3) sleep 230
893        if(var_counter2 eq 4) sleep 40
894        trigvolume_enable LastVat 0
895        chr_animate(character, KONOKOlev14_grinder);
896        chr_envanim(character, GrinderKonBox01, norotation);
897        sleep 60
898        sound_ambient_start c13_47_11_bonecrunch
899        sleep 10
900        sound_impulse_play konoko_gruesome_death
901        sleep 75
902        }
903else
904        {
905        chr_animate(character, KONOKOacid);
906        sleep 10
907        }
908chr_set_health(character, 0);
909}
910
911#####################
912### TEXT CONSOLES ###
913#####################
914
915func void level_14a(void)
916{
917text_console level_14a
918console_reset 12
919}
920
921func void level_14b(void)
922{
923text_console level_14b
924console_reset 6
925}
Note: See TracBrowser for help on using the repository browser.