1 |
################## RESEARCH LAB LEVEL LOGIC ########################## |
2 |
|
3 |
################ SCRIPTS BY Hardy AND Joseph ######################### |
4 |
|
5 |
################# START, SAVE & OBJECTIVES ########################### |
6 |
|
7 |
|
8 |
# creates counterS for stuff |
9 |
|
10 |
var int door_counter=3; |
11 |
var int passage_counter=3; |
12 |
var int count_dead_end=2; |
13 |
|
14 |
func void turnoffcompass(string ai_name) |
15 |
{ |
16 |
target_set(143, 0.0) |
17 |
} |
18 |
|
19 |
func void level_start(string ai_name) |
20 |
{ |
21 |
dprint func_void_start |
22 |
|
23 |
if (my_save_point eq 1) |
24 |
{ |
25 |
dprint restore_game_1 |
26 |
|
27 |
set_objective_1 |
28 |
|
29 |
ai2_spawn Barabus |
30 |
|
31 |
dprint SPAWN_BARABUS |
32 |
|
33 |
ai2_attack Barabus konoko |
34 |
|
35 |
env_show 10 1 |
36 |
env_show 9 1 |
37 |
env_show 8 1 |
38 |
|
39 |
#obj_kill 8 10 |
40 |
|
41 |
trigvolume_enable save_1_trig 0 |
42 |
trigvolume_enable floor1 0 |
43 |
trigvolume_enable outside_left 0 |
44 |
trigvolume_enable outside_right 0 |
45 |
trigvolume_enable outside_back 0 |
46 |
|
47 |
#chr_animate Barabus STRIKElev3_startle |
48 |
#ai2_setmovementmode Barabus walk |
49 |
#playback Barabus IntroSubboss01 |
50 |
playback 0 IntroKonoko01 |
51 |
|
52 |
sound_music_start mus_main01_hd 0.8 |
53 |
|
54 |
restore_game |
55 |
} |
56 |
|
57 |
if (my_save_point eq 2) |
58 |
{ |
59 |
dprint restore_game_2 |
60 |
|
61 |
set_objective_2_from_save |
62 |
|
63 |
dprint restore_game_2_a |
64 |
|
65 |
door_lock 43 |
66 |
|
67 |
dprint restore_game_2_b |
68 |
|
69 |
particle lock99_locklight01 do stop |
70 |
|
71 |
dprint restore_game_2_c |
72 |
|
73 |
spawn_floor1_guards |
74 |
|
75 |
dprint restore_game_2_d |
76 |
|
77 |
restore_game |
78 |
cm_reset |
79 |
} |
80 |
|
81 |
if (my_save_point eq 3) |
82 |
{ |
83 |
dprint restore_game_3 |
84 |
|
85 |
spawn_lobby_tctf |
86 |
|
87 |
trigvolume_enable save_3_trig 0 |
88 |
|
89 |
door_lock 35 |
90 |
dprint objective5 |
91 |
objective_set(5, silent) |
92 |
target_set(142, 30.0) |
93 |
|
94 |
restore_game |
95 |
} |
96 |
} |
97 |
|
98 |
func void you_lose(string ai_name) |
99 |
{ |
100 |
sleep 240 |
101 |
fade_out 0 0 0 180 |
102 |
sleep 240 |
103 |
lose |
104 |
} |
105 |
|
106 |
func void you_win(int char_index) |
107 |
{ |
108 |
outro |
109 |
win |
110 |
} |
111 |
|
112 |
func void save_game_1(string ai_name) |
113 |
{ |
114 |
dprint savegame_1 |
115 |
if (my_save_point ne 1) |
116 |
{ |
117 |
save_game 1 autosave |
118 |
} |
119 |
} |
120 |
|
121 |
func void save_game_2(string ai_name) |
122 |
{ |
123 |
dprint savegame_2 |
124 |
if (my_save_point ne 2) |
125 |
{ |
126 |
save_game 2 autosave |
127 |
} |
128 |
} |
129 |
|
130 |
func void save_game_3(string ai_name) |
131 |
{ |
132 |
dprint savegame_3 |
133 |
|
134 |
if (my_save_point ne 3) |
135 |
{ |
136 |
save_game 3 autosave |
137 |
} |
138 |
} |
139 |
|
140 |
########### GAME OBJECTIVES ############################3 |
141 |
|
142 |
func void set_objective_1(void) |
143 |
{ |
144 |
dprint objective_1 |
145 |
objective_set(1) |
146 |
} |
147 |
|
148 |
func void set_objective_2_from_save(void) |
149 |
{ |
150 |
objective_set(2) |
151 |
} |
152 |
|
153 |
func void set_objective_2(string chr_index) |
154 |
{ |
155 |
sleep 180 |
156 |
dprint objective_2 |
157 |
objective_set(2) |
158 |
particle lock99_locklight01 do start |
159 |
door_unlock 43 |
160 |
} |
161 |
|
162 |
func void set_objective_3(string chr_index) |
163 |
{ |
164 |
dprint objective_3 |
165 |
#sound_dialog_play_block c00_01_20shinatama |
166 |
#sound_dialog_play_block pause |
167 |
objective_set(3) |
168 |
target_set(205, 30.0) |
169 |
} |
170 |
|
171 |
func void set_objective_4(string chr_index) |
172 |
{ |
173 |
dprint objective_4 |
174 |
sound_dialog_play_block c00_01_19shinatama |
175 |
sound_dialog_play_block pause |
176 |
objective_set(4) |
177 |
target_set(110, 30.0) |
178 |
} |
179 |
|
180 |
func void set_objective_5(string chr_index) |
181 |
{ |
182 |
dprint objective_5 |
183 |
#sound_dialog_play_block c00_01_18shinatama |
184 |
#sound_dialog_play_block pause |
185 |
objective_set(5) |
186 |
target_set(142, 30.0) |
187 |
} |
188 |
|
189 |
func void set_objective_6(string chr_index) |
190 |
{ |
191 |
dprint objective_6 |
192 |
sound_dialog_play_block c00_01_22shinatama |
193 |
sound_dialog_play_block pause |
194 |
objective_set(6) |
195 |
target_set(256, 30.0) |
196 |
} |
197 |
|
198 |
func void set_target_4(string chr_index) |
199 |
{ |
200 |
sound_dialog_play_block c00_01_26shinatama |
201 |
sound_dialog_play_block pause |
202 |
target_set(253, 30.0) |
203 |
} |
204 |
|
205 |
func void set_target_5(string chr_index) |
206 |
{ |
207 |
sound_dialog_play_block c00_01_28shinatama |
208 |
sound_dialog_play_block pause |
209 |
target_set(254, 30.0) |
210 |
} |
211 |
|
212 |
func void set_target_6(string chr_index) |
213 |
{ |
214 |
target_set(256, 30.0) |
215 |
} |
216 |
|
217 |
|
218 |
### MARTY'S HUGE SACK ### |
219 |
|
220 |
var int music_counter; |
221 |
|
222 |
func void music_force_stop(void) |
223 |
{ |
224 |
sleep 4500 |
225 |
|
226 |
if (0 ne music_counter) |
227 |
{ |
228 |
dprint music_force_stop |
229 |
music_counter = 0 |
230 |
all_music_counters |
231 |
} |
232 |
} |
233 |
|
234 |
func void music_script_start(void) |
235 |
{ |
236 |
music_counter = 2 |
237 |
} |
238 |
|
239 |
func void striker_siesta_1(string ai_name) |
240 |
{ |
241 |
dprint striker_siesta1 |
242 |
music_counter = music_counter - 1 |
243 |
|
244 |
if (music_counter eq 0) |
245 |
{ |
246 |
all_music_counters(); |
247 |
} |
248 |
|
249 |
} |
250 |
func void striker_siesta_2(string ai_name) |
251 |
{ |
252 |
dprint striker_siesta2 |
253 |
music_counter = music_counter - 1 |
254 |
|
255 |
if (music_counter eq 0) |
256 |
{ |
257 |
all_music_counters(); |
258 |
} |
259 |
} |
260 |
|
261 |
func void all_music_counters(void) |
262 |
{ |
263 |
dprint WHEN_THE_LIGHTS_GO_DOWN_IN_THE_CITY |
264 |
|
265 |
sound_music_stop mus_trt |
266 |
# sound_music_stop mus_fiteb |
267 |
# sound_music_stop mus_asian |
268 |
} |
269 |
|
270 |
|
271 |
### TEXT CONSOLES ### |
272 |
|
273 |
func void level3a(string chr_index) |
274 |
{ |
275 |
dprint text3a |
276 |
text_console level_3a |
277 |
console_reset 7 |
278 |
} |
279 |
|
280 |
func void level3b(string chr_index) |
281 |
{ |
282 |
dprint text3b |
283 |
text_console level_3b |
284 |
console_reset 6 |
285 |
} |
286 |
|
287 |
func void level3c(string chr_index) |
288 |
{ |
289 |
dprint text3c |
290 |
text_console level_3c |
291 |
console_reset 1 |
292 |
} |
293 |
|
294 |
func void level3d(string chr_index) |
295 |
{ |
296 |
dprint text3d |
297 |
text_console level_3d |
298 |
day_264 |
299 |
} |
300 |
|
301 |
|
302 |
|
303 |
|
304 |
### GAMEPLAY PROGRESSION ### |
305 |
|
306 |
func void tower_lock_1(string chr_index) |
307 |
{ |
308 |
sound_music_stop mus_main03 |
309 |
|
310 |
ai2_spawn Tower_MB_1 |
311 |
trigvolume_enable towertrig_2 0 |
312 |
door_lock 41 |
313 |
} |
314 |
|
315 |
func void sapper_damage_on(string chr_index) |
316 |
{ |
317 |
dprint sapper_dmg_start |
318 |
particle sapper start |
319 |
} |
320 |
|
321 |
func void sapper_damage_off(string chr_index) |
322 |
{ |
323 |
dprint sapper_dmg_stop |
324 |
particle sapper stop |
325 |
} |
326 |
|
327 |
func void spawn_floor1_guards(string ai_name) |
328 |
{ |
329 |
dprint spawn_floor1 |
330 |
particle lock1_locklight01 do stop |
331 |
particle lockA_locklight01 do start |
332 |
ai2_spawn Floor1_Striker_1 |
333 |
ai2_spawn Floor1_Striker_2 |
334 |
ai2_spawn Floor1_Sci_1 |
335 |
ai2_spawn Floor1_Sci_2 |
336 |
ai2_spawn Floor1_Sci_3 |
337 |
ai2_spawn Floor1_Sci_4 |
338 |
|
339 |
set_objective_3 |
340 |
} |
341 |
|
342 |
func void spawn_right_patrol(string ai_name) |
343 |
{ |
344 |
dprint spawn_right_patrol |
345 |
ai2_spawn right_patrol_striker_1 |
346 |
} |
347 |
|
348 |
func void spawn_left_patrol(string ai_name) |
349 |
{ |
350 |
dprint spawn_right_patrol |
351 |
ai2_spawn left_patrol_striker_1 |
352 |
} |
353 |
|
354 |
func void spawn_back_patrol(string ai_name) |
355 |
{ |
356 |
dprint spawn_right_patrol |
357 |
ai2_spawn back_patrol_striker_1 |
358 |
ai2_spawn back_patrol_striker_2 |
359 |
} |
360 |
|
361 |
func void spawn_floor1_striker_10(string ai_name) |
362 |
{ |
363 |
dprint spawn_ambush_striker_10 |
364 |
# trig_activate 1 |
365 |
ai2_spawn Floor1_Striker_10 |
366 |
ai2_spawn Floor1_Striker_12 |
367 |
} |
368 |
|
369 |
func void spawn_floor1_striker_11(string ai_name) |
370 |
{ |
371 |
dprint spawn_ambush_striker_11 |
372 |
# trig_activate 1 |
373 |
ai2_spawn Floor1_Striker_11 |
374 |
ai2_spawn Floor1_Striker_12 |
375 |
} |
376 |
|
377 |
func void fake_console(string ai_name) |
378 |
{ |
379 |
sleep 180 |
380 |
dprint fake_console |
381 |
|
382 |
door_unlock 2 |
383 |
door_unlock 9 |
384 |
door_unlock 12 |
385 |
door_unlock 15 |
386 |
door_unlock 18 |
387 |
door_unlock 21 |
388 |
door_unlock 24 |
389 |
door_unlock 27 |
390 |
|
391 |
particle lock2_locklight01 do start |
392 |
} |
393 |
|
394 |
func void spawn_floor2_guards(string ai_name) |
395 |
{ |
396 |
dprint spawn_floor2 |
397 |
|
398 |
particle lock2_locklight01 do stop |
399 |
|
400 |
ai2_spawn Floor2_Striker_2 |
401 |
ai2_spawn Floor2_Striker_3 |
402 |
ai2_spawn Floor2_Striker_4 |
403 |
|
404 |
sleep 15 |
405 |
|
406 |
ai2_spawn Floor2_Striker_1 |
407 |
ai2_doalarm Floor2_Striker_1 3 |
408 |
|
409 |
sleep 15 |
410 |
|
411 |
ai2_spawn Floor2_Sci_1 |
412 |
ai2_spawn Floor2_Sci_2 |
413 |
ai2_spawn Floor2_Sci_3 |
414 |
ai2_spawn Floor2_Sci_4 |
415 |
ai2_spawn Floor2_Sci_5 |
416 |
|
417 |
trigvolume_enable attack_trigger 0 |
418 |
} |
419 |
|
420 |
func void commence_attack(string ai_name) |
421 |
{ |
422 |
dprint commence_attack |
423 |
|
424 |
ai2_setalert Floor2_Striker_2 high |
425 |
ai2_setalert Floor2_Striker_3 high |
426 |
ai2_setalert Floor2_Striker_4 high |
427 |
|
428 |
ai2_dopath Floor2_Striker_1 Floor2_Stk_1 |
429 |
ai2_dopath Floor2_Striker_2 scram_path |
430 |
ai2_dopath Floor2_Striker_3 attack_path_1 |
431 |
ai2_dopath Floor2_Striker_4 attack_path_2 |
432 |
|
433 |
ai2_setjobstate Floor2_Striker_1 |
434 |
ai2_setjobstate Floor2_Striker_2 |
435 |
ai2_setjobstate Floor2_Striker_3 |
436 |
ai2_setjobstate Floor2_Striker_4 |
437 |
|
438 |
ai2_attack Floor2_Striker_4 Floor2_Sci_4 |
439 |
ai2_attack Floor2_Striker_3 Floor2_Sci_1 |
440 |
} |
441 |
|
442 |
func void death_sentence_1(string ai_name) |
443 |
{ |
444 |
dprint death_sentence_1 |
445 |
ai2_attack Floor2_Striker_4 Floor2_Sci_5 |
446 |
} |
447 |
|
448 |
func void death_sentence_2(string ai_name) |
449 |
{ |
450 |
dprint death_sentence_2 |
451 |
ai2_attack Floor2_Striker_3 Floor2_Sci_2 |
452 |
} |
453 |
|
454 |
func void death_sentence_3(string ai_name) |
455 |
{ |
456 |
dprint death_sentence_2 |
457 |
ai2_attack Floor2_Striker_3 Floor2_Sci_3 |
458 |
} |
459 |
|
460 |
func void spawn_floor3_guards(string ai_name) |
461 |
{ |
462 |
dprint spawn_floor3 |
463 |
|
464 |
ai2_spawn Floor3_Striker_1 |
465 |
ai2_spawn Floor3_Striker_2 |
466 |
ai2_spawn Floor3_Striker_3 |
467 |
ai2_spawn Floor3_Striker_4 |
468 |
|
469 |
ai2_spawn Floor3_Comguy_1 |
470 |
|
471 |
particle lock3_locklight01 do stop |
472 |
} |
473 |
|
474 |
func void spawn_roof_guards(string ai_name) |
475 |
{ |
476 |
dprint spawn_roof_guards |
477 |
|
478 |
ai2_spawn Roof_Striker_1 |
479 |
ai2_spawn Roof_Striker_2 |
480 |
ai2_spawn Roof_Striker_3 |
481 |
|
482 |
# particle lock3_locklight01 do start |
483 |
} |
484 |
|
485 |
func void roof_surprise(string ai_name) |
486 |
{ |
487 |
dprint roof_surprise |
488 |
ai2_dopath Roof_Striker_3 Roof_Striker_3b |
489 |
ai2_setjobstate Roof_Striker_3 |
490 |
} |
491 |
|
492 |
func void spawn_tower_guards(string ai_name) |
493 |
{ |
494 |
dprint spawn_tower_guards |
495 |
|
496 |
ai2_spawn Tower_Striker_1 |
497 |
ai2_spawn Tower_Striker_2 |
498 |
# particle lock3_locklight01 do start |
499 |
} |
500 |
|
501 |
func void spawn_lobby_tctf(string ai_name) |
502 |
{ |
503 |
dprint spawn_lobby_guards |
504 |
ai2_spawn Lobby_TCL_1 |
505 |
ai2_spawn Lobby_TCL_2 |
506 |
ai2_spawn Lobby_TCS_1 |
507 |
|
508 |
# particle lock3_locklight01 do start |
509 |
} |
510 |
|
511 |
func void spawn_lobby_synd(string ai_name) |
512 |
{ |
513 |
dprint spawn_lobby_attackers |
514 |
|
515 |
sleep 600 |
516 |
|
517 |
ai2_spawn Lobby_Striker_1 |
518 |
ai2_spawn Lobby_Striker_2 |
519 |
ai2_spawn Lobby_Striker_3 |
520 |
ai2_spawn Lobby_Striker_4 |
521 |
|
522 |
door_lock 35 |
523 |
|
524 |
# particle lock3_locklight01 do start |
525 |
} |
526 |
|
527 |
func void spawn_lively_1(string ai_name) |
528 |
{ |
529 |
dprint spawn_lively_1 |
530 |
|
531 |
ai2_spawn lively_striker_1 |
532 |
} |
533 |
|
534 |
func void spawn_lively_2(string ai_name) |
535 |
{ |
536 |
dprint spawn_lively_2 |
537 |
|
538 |
ai2_spawn lively_striker_2 |
539 |
} |
540 |
|
541 |
func void spawn_lively_3(string ai_name) |
542 |
{ |
543 |
dprint spawn_lively_3 |
544 |
|
545 |
ai2_spawn lively_striker_3 |
546 |
ai2_spawn lively_striker_4 |
547 |
} |
548 |
|
549 |
func void spawn_opposite_striker_1(string ai_name) |
550 |
{ |
551 |
dprint spawn_opposite_1 |
552 |
|
553 |
ai2_spawn opposite_striker_1 |
554 |
trigvolume_enable spawn_opposite_2 0 |
555 |
} |
556 |
|
557 |
func void spawn_opposite_striker_2(string ai_name) |
558 |
{ |
559 |
dprint spawn_opposite_2 |
560 |
|
561 |
ai2_spawn opposite_striker_2 |
562 |
trigvolume_enable spawn_opposite_1 0 |
563 |
} |
564 |
|
565 |
func void backdoor(string ai_name) |
566 |
{ |
567 |
dprint spawn_backdoor_squad |
568 |
|
569 |
ai2_spawn backdoor_striker_1 |
570 |
ai2_spawn backdoor_striker_3 |
571 |
} |
572 |
|
573 |
func void spawn_vats(string ai_name) |
574 |
{ |
575 |
dprint spawn_vats |
576 |
|
577 |
ai2_spawn Vat_Striker_1 |
578 |
ai2_spawn Vat_Striker_2 |
579 |
ai2_spawn Vat_Striker_3 |
580 |
ai2_spawn Vat_Striker_4 |
581 |
ai2_spawn Vat_Striker_5 |
582 |
|
583 |
particle lock4_locklight01 do stop |
584 |
trigvolume_enable final_ambush 0 |
585 |
trigvolume_enable outro_volume_1 0 |
586 |
door_lock 49 |
587 |
door_lock 50 |
588 |
} |
589 |
|
590 |
func void gethelp(string ai_name) |
591 |
{ |
592 |
trigvolume_enable outro_volume_1 1 |
593 |
sleep 120 |
594 |
door_unlock 49 |
595 |
door_unlock 50 |
596 |
ai2_attack Ambush_Striker_2 Konoko |
597 |
particle lock177_locklight01 do start |
598 |
sound_music_stop mus_main03 |
599 |
} |
600 |
|
601 |
func void final_ambush(string ai_name) |
602 |
{ |
603 |
dprint spawn_final_ambush |
604 |
ai2_spawn Ambush_Striker_1 |
605 |
ai2_spawn Ambush_Striker_2 |
606 |
} |
607 |
|
608 |
func void unlock_floor1_doors(string ai_name) |
609 |
{ |
610 |
dprint unlock_floor1_doors |
611 |
|
612 |
trigvolume_enable trigger_volume_10 0 |
613 |
|
614 |
door_unlock 3 |
615 |
door_unlock 8 |
616 |
door_unlock 11 |
617 |
door_unlock 14 |
618 |
door_unlock 17 |
619 |
door_unlock 20 |
620 |
door_unlock 23 |
621 |
door_unlock 26 |
622 |
|
623 |
if(trigvolume_count(36) eq 0) |
624 |
{ |
625 |
input 0 |
626 |
# begin_cutscene |
627 |
cm_interpolate lock1 0 |
628 |
sleep 60 |
629 |
particle lock1_locklight01 do start |
630 |
sleep 150 |
631 |
cm_interpolate tophint 0 |
632 |
sleep 60 |
633 |
particle lock4a_locklight01 do start |
634 |
sleep 150 |
635 |
cm_reset |
636 |
end_cutscene |
637 |
input 1 |
638 |
cm_reset |
639 |
# end_cutscene |
640 |
input 1 |
641 |
} |
642 |
|
643 |
particle lock1_locklight01 do start |
644 |
particle lock4a_locklight01 do start |
645 |
|
646 |
door_counter = door_counter - 1 |
647 |
if (door_counter eq 0) |
648 |
{ |
649 |
unlock_roof(); |
650 |
} |
651 |
} |
652 |
|
653 |
func void unlock_floor2_doors(string ai_name) |
654 |
{ |
655 |
dprint unlock_floor2_doors |
656 |
|
657 |
trigvolume_enable attack_trigger 1 |
658 |
|
659 |
door_unlock 2 |
660 |
door_unlock 9 |
661 |
door_unlock 12 |
662 |
door_unlock 15 |
663 |
door_unlock 18 |
664 |
door_unlock 21 |
665 |
door_unlock 24 |
666 |
door_unlock 27 |
667 |
|
668 |
if(trigvolume_count(37) eq 0) |
669 |
{ |
670 |
input 0 |
671 |
# begin_cutscene |
672 |
cm_interpolate lock2 0 |
673 |
sleep 60 |
674 |
particle lock2_locklight01 do start |
675 |
sleep 150 |
676 |
cm_interpolate tophint 0 |
677 |
sleep 60 |
678 |
particle lock4b_locklight01 do start |
679 |
sleep 150 |
680 |
cm_reset |
681 |
end_cutscene |
682 |
input 1 |
683 |
cm_reset |
684 |
# end_cutscene |
685 |
input 1 |
686 |
} |
687 |
|
688 |
particle lock2_locklight01 do start |
689 |
particle lock4b_locklight01 do start |
690 |
|
691 |
door_counter = door_counter - 1 |
692 |
if (door_counter eq 0) |
693 |
{ |
694 |
unlock_roof(); |
695 |
} |
696 |
|
697 |
sleep 60 |
698 |
|
699 |
ai2_dopath Floor2_Striker_1 Floor2_Stk_1 |
700 |
ai2_setjobstate Floor2_Striker_1 |
701 |
} |
702 |
|
703 |
func void unlock_floor3_doors(string ai_name) |
704 |
{ |
705 |
dprint unlock_floor3_doors |
706 |
|
707 |
door_unlock 28 |
708 |
door_unlock 22 |
709 |
door_unlock 16 |
710 |
door_unlock 1 |
711 |
door_unlock 10 |
712 |
door_unlock 13 |
713 |
door_unlock 19 |
714 |
door_unlock 25 |
715 |
|
716 |
if(trigvolume_count(37) eq 0) |
717 |
{ |
718 |
input 0 |
719 |
# begin_cutscene |
720 |
cm_interpolate lock3 0 |
721 |
sleep 60 |
722 |
particle lock3_locklight01 do start |
723 |
sleep 150 |
724 |
cm_interpolate tophint 0 |
725 |
sleep 60 |
726 |
particle lock4c_locklight01 do start |
727 |
sleep 150 |
728 |
cm_reset |
729 |
# end_cutscene |
730 |
input 1 |
731 |
} |
732 |
|
733 |
particle lock3_locklight01 do start |
734 |
particle lock4c_locklight01 do start |
735 |
|
736 |
door_counter = door_counter - 1 |
737 |
if (door_counter eq 0) |
738 |
{ |
739 |
unlock_roof(); |
740 |
} |
741 |
} |
742 |
|
743 |
func void unlock_roof(string ai_name) |
744 |
{ |
745 |
dprint unlock_roof |
746 |
door_unlock 4 |
747 |
spawn_roof_guards |
748 |
door_unlock 56 |
749 |
|
750 |
sound_music_start mus_main03 |
751 |
} |
752 |
|
753 |
func void passage_1(string ai_name) |
754 |
{ |
755 |
dprint unlock_floor1_doors |
756 |
|
757 |
input 0 |
758 |
cm_interpolate passage 0 |
759 |
sleep 60 |
760 |
particle lock69a_locklight01 do start |
761 |
sleep 150 |
762 |
cm_reset |
763 |
input 1 |
764 |
|
765 |
passage_counter = passage_counter - 1 |
766 |
if (passage_counter eq 0) |
767 |
{ |
768 |
unlock_passage(); |
769 |
} |
770 |
} |
771 |
|
772 |
func void passage_2(string ai_name) |
773 |
{ |
774 |
dprint unlock_floor1_doors |
775 |
|
776 |
input 0 |
777 |
cm_interpolate passage 0 |
778 |
sleep 60 |
779 |
particle lock69b_locklight01 do start |
780 |
sleep 150 |
781 |
cm_reset |
782 |
input 1 |
783 |
|
784 |
passage_counter = passage_counter - 1 |
785 |
if (passage_counter eq 0) |
786 |
{ |
787 |
unlock_passage(); |
788 |
} |
789 |
} |
790 |
|
791 |
func void passage_3(string ai_name) |
792 |
{ |
793 |
dprint unlock_floor1_doors |
794 |
|
795 |
input 0 |
796 |
cm_interpolate passage 0 |
797 |
sleep 60 |
798 |
particle lock69c_locklight01 do start |
799 |
sleep 150 |
800 |
cm_reset |
801 |
input 1 |
802 |
|
803 |
passage_counter = passage_counter - 1 |
804 |
if (passage_counter eq 0) |
805 |
{ |
806 |
unlock_passage(); |
807 |
} |
808 |
} |
809 |
|
810 |
func void unlock_passage(string ai_name) |
811 |
{ |
812 |
dprint unlock_passage |
813 |
|
814 |
sound_music_start mus_main03 1.0 |
815 |
|
816 |
door_unlock 48 |
817 |
#target_set(256, 0.0) |
818 |
} |
819 |
|
820 |
func void unlock_end_door(string ai_name) |
821 |
{ |
822 |
dprint unlock_end_door |
823 |
|
824 |
door_unlock 56 |
825 |
|
826 |
trigvolume_enable final_ambush 1 |
827 |
|
828 |
input 0 |
829 |
cm_interpolate lock5 0 |
830 |
sleep 60 |
831 |
particle lockend_locklight02 do start |
832 |
sleep 150 |
833 |
cm_reset |
834 |
input 1 |
835 |
|
836 |
target_set(52, 30.0) |
837 |
sleep 30 |
838 |
ai2_spawn Vat_MB_1 |
839 |
} |
840 |
|
841 |
|
842 |
func void Lobby_Hurt_TCL_1(string ai_name) |
843 |
{ |
844 |
dprint Hurt_TCL_1 |
845 |
ai2_dopath Lobby_TCL_1 Lobby_Hurt_TCL_1 |
846 |
} |
847 |
|
848 |
|
849 |
func void Lobby_Hurt_TCL_2(string ai_name) |
850 |
{ |
851 |
dprint Hurt_TCL_2 |
852 |
|
853 |
sleep 120 |
854 |
|
855 |
ai2_dopath Lobby_TCL_2 Lobby_Hurt_TCL_2 |
856 |
} |
857 |
|
858 |
|
859 |
### MISE EN SCENE ### |
860 |
|
861 |
|
862 |
func void miseenscene_start(string ai_name) |
863 |
{ |
864 |
dprint scene_start |
865 |
particle scene create |
866 |
|
867 |
ai2_spawn scene_thug_1 |
868 |
ai2_spawn scene_thug_2 |
869 |
} |
870 |
|
871 |
func void miseenscene_stop(string ai_name) |
872 |
{ |
873 |
dprint scene_stop |
874 |
particle scene kill |
875 |
} |
876 |
|
877 |
func void day_264(string ai_name) |
878 |
{ |
879 |
dprint day264 |
880 |
|
881 |
sleep 150 |
882 |
particle day264 create |
883 |
particle dayafter create |
884 |
particle dayafter start |
885 |
|
886 |
ai2_dopath scene_thug_1 scene_flee_1 1 |
887 |
ai2_dopath scene_thug_2 scene_flee_2 1 |
888 |
|
889 |
sleep 300 |
890 |
ai2_spawn arcy |
891 |
|
892 |
sleep 1000 |
893 |
chr_delete scene_thug_1 |
894 |
chr_delete scene_thug_2 |
895 |
|
896 |
sleep 500 |
897 |
chr_delete arcy |
898 |
} |