1 |
### AIRPORT 1 LEVEL LOGIC ### |
2 |
|
3 |
### START, SAVE & OBJECTIVES ### |
4 |
|
5 |
func void func_start(string ai_name) |
6 |
{ |
7 |
dprint start_active |
8 |
|
9 |
trigvolume_enable hidden1 1 |
10 |
trigvolume_enable hidden1 1 |
11 |
|
12 |
if (save_point eq 0) |
13 |
{ |
14 |
my_save_point=0; |
15 |
particle auto1 start |
16 |
particle auto1fire start |
17 |
particle auto1spark start |
18 |
particle door1spark start |
19 |
particle tctf1 start |
20 |
} |
21 |
|
22 |
if (save_point eq 1) |
23 |
{ |
24 |
my_save_point=1; |
25 |
env_show 10 1 |
26 |
env_show 11 1 |
27 |
env_show 12 1 |
28 |
dprint restore1_active |
29 |
particle auto1 start |
30 |
particle auto1fire start |
31 |
particle auto1spark start |
32 |
particle door1spark start |
33 |
particle tctf1 start |
34 |
sound_music_start mus_asian 0.5 |
35 |
music_script_start(); |
36 |
ai2_spawn IntroStriker01 |
37 |
ai2_spawn IntroStriker02 |
38 |
restore_game |
39 |
sleep 30 |
40 |
set_target_1 |
41 |
set_objective_1 |
42 |
} |
43 |
|
44 |
if (save_point eq 2) |
45 |
{ |
46 |
my_save_point=2; |
47 |
dprint restore_2 |
48 |
particle fx3 do start |
49 |
particle exhaust create |
50 |
Tarmac1 |
51 |
trigvolume_enable tarmac 0 |
52 |
trigvolume_enable trigger_volume_03 0 |
53 |
trigvolume_enable bomberboom 0 |
54 |
trigvolume_enable madbomberbait 0 |
55 |
door_lock 3 |
56 |
obj_kill 991 992 |
57 |
restore_game |
58 |
sleep 30 |
59 |
set_target_3 |
60 |
set_objective_2 |
61 |
} |
62 |
|
63 |
if (save_point eq 3) |
64 |
{ |
65 |
my_save_point=3; |
66 |
dprint restore3_active |
67 |
door_lock 3 |
68 |
door_unlock 6 |
69 |
particle lock1_locklight01 do stop |
70 |
particle lock2_locklight01 do start |
71 |
console_deactivate 5 |
72 |
particle door7_locklight01 do start |
73 |
particle door2_locklight01 do start |
74 |
console_deactivate 6 |
75 |
trigvolume_enable trigger_volume_02 0 |
76 |
trigvolume_enable trigger_volume_03 0 |
77 |
trigvolume_enable trigger_volume_04 0 |
78 |
trigvolume_enable trigger_volume_08 0 |
79 |
trigvolume_enable trigger_volume_10 0 |
80 |
trigvolume_enable trigger_volume_11 0 |
81 |
trigvolume_enable save_game 0 |
82 |
trigvolume_enable secondcoming 0 |
83 |
TerminalTwo1 |
84 |
particle auto1 stop |
85 |
particle auto1fire stop |
86 |
particle auto1spark stop |
87 |
particle door1spark stop |
88 |
particle tctf1 stop |
89 |
ai2_spawn TerminalTwo_Striker_1 |
90 |
ai2_spawn TerminalTwo_Striker_2 |
91 |
particle fx4 do start |
92 |
particle fx5 do start |
93 |
particle fx6 do start |
94 |
particle fx1 do stop |
95 |
particle fx2 do stop |
96 |
particle fx3 do stop |
97 |
music_script_start(); |
98 |
restore_game |
99 |
sleep 30 |
100 |
set_objective_3 |
101 |
set_target_5 |
102 |
} |
103 |
} |
104 |
|
105 |
func void you_lose(string ai_name) |
106 |
{ |
107 |
all_music_counters |
108 |
sleep 240 |
109 |
fade_out 0 0 0 180 |
110 |
sleep 240 |
111 |
lose |
112 |
} |
113 |
|
114 |
func void you_win(int char_index) |
115 |
{ |
116 |
all_music_counters |
117 |
win |
118 |
} |
119 |
|
120 |
func void save_point_1(string player_name) |
121 |
{ |
122 |
dprint save_point_1_active |
123 |
save_game 1 autosave |
124 |
} |
125 |
|
126 |
func void save_point_2(string player_name) |
127 |
{ |
128 |
dprint save_point_2_active |
129 |
save_game 2 autosave |
130 |
} |
131 |
|
132 |
func void save_point_3(string player_name) |
133 |
{ |
134 |
dprint save_point_3_active |
135 |
save_game 3 autosave |
136 |
ai2_spawn TerminalTwo_Striker_1 |
137 |
ai2_spawn TerminalTwo_Striker_2 |
138 |
particle fx5 do start |
139 |
particle fx6 do start |
140 |
particle fx3 do stop |
141 |
door_unlock 6 |
142 |
particle door7_locklight01 do start |
143 |
particle lock2_locklight01 do start |
144 |
particle door2_locklight01 do start |
145 |
} |
146 |
|
147 |
|
148 |
func void set_objective_1(string chr_index) |
149 |
{ |
150 |
dprint objective_1 |
151 |
objective_set(1) |
152 |
sound_dialog_play c00_01_22shinatama |
153 |
} |
154 |
func void set_objective_2(string chr_index) |
155 |
{ |
156 |
dprint objective_2 |
157 |
objective_set(2) |
158 |
sound_dialog_play c00_01_19shinatama |
159 |
} |
160 |
|
161 |
func void set_objective_3(string chr_index) |
162 |
{ |
163 |
dprint objective_3 |
164 |
objective_set(3) |
165 |
console_deactivate 2 |
166 |
sound_dialog_play c00_01_18shinatama |
167 |
} |
168 |
|
169 |
func void set_objective_4(string chr_index) |
170 |
{ |
171 |
dprint objective_4 |
172 |
objective_set(4) |
173 |
sound_dialog_play c00_01_20shinatama |
174 |
} |
175 |
|
176 |
func void set_target_1(string chr_index) |
177 |
{ |
178 |
dprint set_target1 |
179 |
target_set(1095, 30.0) |
180 |
sound_dialog_play c00_01_28shinatama |
181 |
} |
182 |
|
183 |
func void set_target_2(string chr_index) |
184 |
{ |
185 |
dprint set_target2 |
186 |
target_set(1132, 30.0) |
187 |
sound_dialog_play c00_01_27shinatama |
188 |
} |
189 |
|
190 |
func void set_target_3(string chr_index) |
191 |
{ |
192 |
dprint set_target3 |
193 |
target_set(1109, 30.0) |
194 |
sound_dialog_play c00_01_26shinatama |
195 |
} |
196 |
|
197 |
func void set_target_4(string chr_index) |
198 |
{ |
199 |
dprint set_target4 |
200 |
target_set(1112, 30.0) |
201 |
sound_dialog_play c00_01_25shinatama |
202 |
} |
203 |
|
204 |
func void set_target_5(string chr_index) |
205 |
{ |
206 |
dprint set_target5 |
207 |
target_set(1115, 30.0) |
208 |
sound_dialog_play c00_01_24shinatama |
209 |
} |
210 |
|
211 |
func void set_target_6(string chr_index) |
212 |
{ |
213 |
dprint set_target6 |
214 |
target_set(1139, 30.0) |
215 |
sound_dialog_play c00_01_28shinatama |
216 |
} |
217 |
|
218 |
func void set_target_blank(string chr_index) |
219 |
{ |
220 |
dprint set_targetblank |
221 |
target_set(0, 0.0) |
222 |
} |
223 |
|
224 |
### MUSIC ### |
225 |
|
226 |
var int music_counter; |
227 |
|
228 |
func void music_force_stop(void) |
229 |
{ |
230 |
sleep 4500 |
231 |
if (0 ne music_counter) |
232 |
{ |
233 |
dprint music_force_stop |
234 |
music_counter = 0 |
235 |
all_music_counters |
236 |
} |
237 |
} |
238 |
|
239 |
func void music_script_start(void) |
240 |
{ |
241 |
music_counter = 2 |
242 |
} |
243 |
|
244 |
func void striker_lullaby_1(string ai_name) |
245 |
{ |
246 |
dprint striker_lullaby1 |
247 |
music_counter = music_counter - 1 |
248 |
if (music_counter eq 0) |
249 |
{ |
250 |
all_music_counters(); |
251 |
sleep f120 |
252 |
} |
253 |
} |
254 |
|
255 |
func void striker_lullaby_2(string ai_name) |
256 |
{ |
257 |
dprint striker_lullaby2 |
258 |
music_counter = music_counter - 1 |
259 |
if (music_counter eq 0) |
260 |
{ |
261 |
all_music_counters(); |
262 |
sleep f120 |
263 |
} |
264 |
} |
265 |
|
266 |
func void all_music_counters(void) |
267 |
{ |
268 |
dprint STOP_THE_MUSIC |
269 |
sound_music_stop mus_fitec_hd |
270 |
sound_music_stop mus_fitec |
271 |
sound_music_stop mus_fiteb |
272 |
sound_music_stop mus_asian |
273 |
sound_music_stop atm_gr06 |
274 |
} |
275 |
|
276 |
### TEXT CONSOLES ### |
277 |
|
278 |
func void level_4a(void) |
279 |
{ |
280 |
dprint set_text_4a |
281 |
text_console level_4a |
282 |
console_reset 7 |
283 |
} |
284 |
|
285 |
func void level_4b(void) |
286 |
{ |
287 |
dprint set_text_4b |
288 |
text_console level_4b |
289 |
console_reset 7 |
290 |
} |
291 |
|
292 |
func void level_4c(void) |
293 |
{ |
294 |
dprint set_text_4c |
295 |
text_console level_4c |
296 |
console_reset 8 |
297 |
} |
298 |
|
299 |
### GAMEPLAY PROGRESSION ### |
300 |
|
301 |
func void FixDoors(string char_index) |
302 |
{ |
303 |
dprint Fix_Doors |
304 |
particle door2_locklight01 do stop |
305 |
door_lock 10 |
306 |
} |
307 |
|
308 |
func void hidden_civilian1(string ai_name) |
309 |
{ |
310 |
dprint hidden_civilian |
311 |
ai2_spawn hidden_civ_1 |
312 |
} |
313 |
|
314 |
func void panic1a(string char_index) |
315 |
{ |
316 |
dprint panic_1a |
317 |
|
318 |
ai2_spawn civ_victim_6 |
319 |
playback civ_victim_6 civ_victim6_flee interp 30 |
320 |
ai2_spawn civ_victim_4 |
321 |
playback civ_victim_4 civ_victim4_flee interp 30 |
322 |
sleep 30 |
323 |
ai2_spawn Intro_Striker_4 |
324 |
playback Intro_Striker_4 striker4_advance interp 30 |
325 |
ai2_spawn Intro_Comguy_1 |
326 |
} |
327 |
|
328 |
func void panic1b(string char_index) |
329 |
{ |
330 |
dprint panic_1b |
331 |
ai2_passive Intro_Striker_4 1 |
332 |
ai2_spawn civ_victim_2 |
333 |
ai2_spawn civ_victim_3 |
334 |
playback civ_victim_3 civ_victim3_flee interp 30 |
335 |
sleep 120 |
336 |
ai2_spawn Intro_Striker_3 |
337 |
ai2_attack Intro_Striker_3 civ_victim_2 |
338 |
ai2_spawn Friend_Thug_1 |
339 |
ai2_spawn Neutral_Thug_1 |
340 |
ai2_spawn Neutral_Thug_3 |
341 |
particle fx1 do start |
342 |
particle fx2 do start |
343 |
chr_delete civ_victim_4 |
344 |
chr_delete civ_victim_6 |
345 |
} |
346 |
|
347 |
func void hide_1(string char_index) |
348 |
{ |
349 |
dprint hide1 |
350 |
ai2_spawn civ_victim_5 |
351 |
playback_block civ_victim_5 civ_victim5_flee interp 30 |
352 |
ai2_dopath civ_victim_5 civ_victim_5 |
353 |
} |
354 |
|
355 |
func void horror_1(string char_index) |
356 |
{ |
357 |
dprint horror1 |
358 |
ai2_passive Intro_Striker_4 0 |
359 |
ai2_spawn civ_victim_10 |
360 |
ai2_spawn civ_victim_11 |
361 |
ai2_spawn civ_victim_20 |
362 |
ai2_spawn civ_victim_21 |
363 |
particle fx1 do start |
364 |
particle fx2 do start |
365 |
} |
366 |
|
367 |
func void ambush_striker_1(string char_index) |
368 |
{ |
369 |
dprint ambush_1 |
370 |
ai2_spawn Terminal_Striker_1 |
371 |
ai2_spawn Terminal_Striker_2 |
372 |
ai2_spawn mad_bomber_1 |
373 |
obj_create 991 992 |
374 |
} |
375 |
|
376 |
func void civ_victim_20s_flee(string char_index) |
377 |
{ |
378 |
dprint civ_victim_20s |
379 |
ai2_dopath civ_victim_20 civ20s_flee1 |
380 |
ai2_dopath civ_victim_21 civ20s_flee2 |
381 |
} |
382 |
|
383 |
func void LoadingBay1(string char_index) |
384 |
{ |
385 |
dprint spawn_guards |
386 |
ai2_spawn LoadingBay_Thug_1 |
387 |
ai2_spawn LoadingBay_Thug_2 |
388 |
ai2_spawn LoadingBay_Striker_2 |
389 |
ai2_spawn LoadingBay_Comguy_1 |
390 |
particle fx3 do start |
391 |
} |
392 |
|
393 |
func void bomber_boom(string char_index) |
394 |
{ |
395 |
dprint bomberboom |
396 |
particle bomb1 do explode |
397 |
obj_kill 991 992 |
398 |
sleep 300 |
399 |
particle bomb1 stop |
400 |
} |
401 |
|
402 |
func void mad_bomber_bait(string char_index) |
403 |
{ |
404 |
dprint bomber_bait |
405 |
ai2_dopath mad_bomber_1 bomber_flee 1 |
406 |
} |
407 |
|
408 |
func void patrolscript0200(string char_index) |
409 |
{ |
410 |
dprint bomber1_death |
411 |
chr_delete mad_bomber_1 |
412 |
} |
413 |
|
414 |
func void Tarmac1(string char_index) |
415 |
{ |
416 |
dprint spawn_guards |
417 |
ai2_spawn Tarmac_Striker_1 |
418 |
ai2_spawn Tarmac_Striker_2 |
419 |
ai2_spawn Tarmac_Striker_3 |
420 |
ai2_spawn Tarmac_Striker_4 |
421 |
ai2_spawn Tarmac_Friend_1 |
422 |
ai2_spawn LoadingBay_Striker_1 |
423 |
sound_music_start atm_gr06 0.75 |
424 |
particle tarmacfire do start |
425 |
particle exhaust create |
426 |
} |
427 |
|
428 |
func void back9a(string ai_name) |
429 |
{ |
430 |
dprint hidden_striker1 |
431 |
ai2_spawn hidden_striker1 |
432 |
} |
433 |
|
434 |
func void back9b(string ai_name) |
435 |
{ |
436 |
dprint hidden_striker1 |
437 |
ai2_spawn hidden_striker2 |
438 |
} |
439 |
|
440 |
func void bay1_particles(void) |
441 |
{ |
442 |
dprint bay1_fires_on |
443 |
particle fx3 do start |
444 |
particle fx4 do stop |
445 |
} |
446 |
|
447 |
func void fire_damage(string ai_name) |
448 |
{ |
449 |
dprint fire_hurt_konoko |
450 |
chr_poison (ai_name, 5, 30, 30); |
451 |
} |
452 |
|
453 |
func void bay2_particles(void) |
454 |
{ |
455 |
dprint bay2_fires_on |
456 |
particle fx3 do stop |
457 |
particle fx4 do start |
458 |
} |
459 |
|
460 |
# COME TO ME |
461 |
func void come_to_me(string ai_name) |
462 |
{ |
463 |
dprint go_to_konoko |
464 |
ai2_dopath Tarmac_Striker_2 come_to_me 1 |
465 |
ai2_dopath Tarmac_Striker_3 come_to_me 1 |
466 |
ai2_dopath mad_bomber_2 come_to_me 1 |
467 |
} |
468 |
|
469 |
# COME TO ME REDUX |
470 |
func void second_coming(string ai_name) |
471 |
{ |
472 |
dprint go_to_konoko_again |
473 |
ai2_dopath Tarmac_Striker_2 come_to_me 1 |
474 |
ai2_dopath Tarmac_Striker_3 come_to_me 1 |
475 |
ai2_dopath mad_bomber_2 come_to_me 1 |
476 |
} |
477 |
|
478 |
# PROGRESS CHECK |
479 |
|
480 |
var int progress_counter=2; |
481 |
|
482 |
func void progress_check_1(string ai_name) |
483 |
{ |
484 |
dprint progress_check1 |
485 |
progress_counter = progress_counter - 1 |
486 |
if (progress_counter eq 0) |
487 |
{ |
488 |
pass_go_collect_whupass(); |
489 |
} |
490 |
} |
491 |
|
492 |
func void progress_check_2(string ai_name) |
493 |
{ |
494 |
dprint progress_check2 |
495 |
progress_counter = progress_counter - 1 |
496 |
if (progress_counter eq 0) |
497 |
{ |
498 |
pass_go_collect_whupass(); |
499 |
} |
500 |
} |
501 |
|
502 |
func void progress_check_3(string ai_name) |
503 |
{ |
504 |
dprint progress_check3 |
505 |
progress_counter = progress_counter - 1 |
506 |
if (progress_counter eq 0) |
507 |
{ |
508 |
pass_go_collect_whupass(); |
509 |
} |
510 |
} |
511 |
|
512 |
func void progress_check_4(string ai_name) |
513 |
{ |
514 |
dprint progress_check4 |
515 |
progress_counter = progress_counter - 1 |
516 |
if (progress_counter eq 0) |
517 |
{ |
518 |
pass_go_collect_whupass(); |
519 |
} |
520 |
} |
521 |
|
522 |
func void exhaust_on(string ai_name) |
523 |
{ |
524 |
dprint start_exhaust |
525 |
particle exhaust create |
526 |
} |
527 |
|
528 |
func void exhaust_off(string ai_name) |
529 |
{ |
530 |
dprint stop_exhaust |
531 |
particle exhaust kill |
532 |
} |
533 |
|
534 |
func void pass_go_collect_whupass(string ai_name) |
535 |
{ |
536 |
dprint let_the_whupping_continue |
537 |
trigvolume_enable save_game_2 1 |
538 |
trigvolume_enable secondcoming 0 |
539 |
} |
540 |
|
541 |
func void patrolscript000(string ai_name) |
542 |
{ |
543 |
dprint do_my_bidding |
544 |
particle lock2_locklight01 do start |
545 |
door_unlock 6 |
546 |
} |
547 |
|
548 |
func void BayTwo1(string char_index) |
549 |
{ |
550 |
dprint spawn_guards |
551 |
ai2_spawn BayTwo_Striker_1 |
552 |
ai2_spawn hidden_friend2 |
553 |
ai2_spawn mad_bomber_2 |
554 |
sound_music_stop atm_gr06 |
555 |
} |
556 |
|
557 |
func void Repair1(string char_index) |
558 |
{ |
559 |
dprint spawn_guards |
560 |
ai2_spawn Repair_Striker_1 |
561 |
ai2_spawn Repair_Comguy_1 |
562 |
ai2_spawn alamo_thug_1 |
563 |
} |
564 |
|
565 |
func void Repair2(string char_index) |
566 |
{ |
567 |
dprint spawn_guards |
568 |
ai2_spawn Repair_Striker_2 |
569 |
ai2_spawn Repair_Comguy_2 |
570 |
} |
571 |
|
572 |
func void console_2_activate(string char_index) |
573 |
{ |
574 |
dprint console2_activate |
575 |
console_activate 2 |
576 |
} |
577 |
|
578 |
func void final_ambush(string char_index) |
579 |
{ |
580 |
dprint finalambush |
581 |
input 0 |
582 |
begin_cutscene |
583 |
sleep 60 |
584 |
cm_interpolate ambush1 0 |
585 |
sleep 150 |
586 |
console_activate 4 |
587 |
sleep 150 |
588 |
sound_music_start mus_fitec_hd 0.91 |
589 |
music_script_start |
590 |
cm_interpolate ambush2 0 |
591 |
cm_interpolate_block ambush3 300 |
592 |
sleep 350 |
593 |
cm_interpolate ambush4 300 |
594 |
door_unlock 14 |
595 |
particle door3_locklight01 do start |
596 |
ai2_spawn finalam_striker_1 |
597 |
ai2_spawn finalam_striker_2 |
598 |
ai2_setmovementmode finalam_striker_1 walk |
599 |
ai2_setmovementmode finalam_striker_2 walk |
600 |
playback finalam_striker_1 finalam_striker1 interp 30 |
601 |
playback finalam_striker_2 finalam_striker2 interp 30 |
602 |
sleep 300 |
603 |
particle door3_locklight01 do stop |
604 |
sleep 300 |
605 |
door_lock 14 |
606 |
ai2_dopath finalam_striker1 finalam_1 1 |
607 |
ai2_dopath finalam_striker2 finalam_2 1 |
608 |
trigvolume_enable i_uh_heheheh1 1 |
609 |
cm_reset |
610 |
end_cutscene |
611 |
input 1 |
612 |
} |
613 |
|
614 |
func void i_uh_heheheh(string char_index) |
615 |
{ |
616 |
dprint iuh_heheheh |
617 |
ai2_dopath finalam_striker_1 strategic_retreat1 |
618 |
ai2_dopath finalam_striker_2 strategic_retreat2 |
619 |
} |
620 |
|
621 |
### DOOR LOCK LIGHTS ### |
622 |
|
623 |
func void change_terminaldoor_light(void) |
624 |
{ |
625 |
dprint door1 |
626 |
input 0 |
627 |
cm_interpolate door1 0 |
628 |
sleep 60 |
629 |
particle door1_locklight01 do start |
630 |
sleep 150 |
631 |
cm_reset |
632 |
input 1 |
633 |
} |
634 |
|
635 |
func void change_door2_light(void) |
636 |
{ |
637 |
dprint door2 |
638 |
input 0 |
639 |
cm_interpolate door2 0 |
640 |
sleep 60 |
641 |
particle door2_locklight01 do start |
642 |
sleep 150 |
643 |
set_objective_3 |
644 |
set_target_6 |
645 |
cm_reset |
646 |
input 1 |
647 |
} |
648 |
|
649 |
func void change_enddoor_light(void) |
650 |
{ |
651 |
dprint end_door |
652 |
input 0 |
653 |
cm_interpolate ambush4 0 |
654 |
sleep 60 |
655 |
particle door3_locklight01 do start |
656 |
sleep 150 |
657 |
door_unlock 14 |
658 |
cm_reset |
659 |
input 1 |
660 |
} |
661 |
|
662 |
### Level scripted by Joseph ### |