1 |
# warehouse_level_scripts.bsl |
2 |
# |
3 |
# LEVEL LOGIC |
4 |
# |
5 |
########################### START & SAVE ############################## |
6 |
var int outro_has_started = 0; |
7 |
var int count_alarm; |
8 |
var int count_end_striker = 0; |
9 |
var int count_end_console = 0; |
10 |
var int td; |
11 |
var int ns; |
12 |
var int in_t64; |
13 |
var int d6; |
14 |
var int ul5; |
15 |
# music # |
16 |
|
17 |
func void music_train1(void) |
18 |
{ |
19 |
sound_music_start atm_gr06 0 |
20 |
sound_music_volume atm_gr06 0.7 3.0 |
21 |
# stopped by moving into combat rooms |
22 |
} |
23 |
|
24 |
func void music_train2(void) |
25 |
{ |
26 |
sound_music_start atm_ft68 0 |
27 |
sound_music_volume atm_ft68 0.75 3.0 |
28 |
# stopped by moving into firing range |
29 |
} |
30 |
|
31 |
func void music_train3(void) |
32 |
{ |
33 |
sound_music_start mus_amasian 0 |
34 |
sound_music_volume mus_amasian 0.75 3.0 |
35 |
# stopped by using last review console |
36 |
} |
37 |
|
38 |
func void music_firstfight(void) |
39 |
{ |
40 |
sound_music_start mus_ambgrv1 0 |
41 |
sound_music_volume mus_ambgrv1 0.75 3.0 |
42 |
# stopped by intro_enemies thug die or hurt scripts |
43 |
} |
44 |
|
45 |
func void music_timer(void) |
46 |
{ |
47 |
sound_music_start mus_chase 0 |
48 |
sound_music_volume mus_chase 0.75 3.0 |
49 |
# stopped in end_console or end_striker |
50 |
} |
51 |
|
52 |
func void music_stop(void) |
53 |
{ |
54 |
dprint STOP_THE_MUSIC |
55 |
sound_music_volume atm_gr06 0.0 2.0 |
56 |
sound_music_stop atm_gr06 |
57 |
sound_music_volume atm_ft68 0.0 2.0 |
58 |
sound_music_stop atm_ft68 |
59 |
sound_music_volume mus_amasian 0.0 2.0 |
60 |
sound_music_stop mus_amasian |
61 |
sound_music_volume mus_ambgrv1 0.0 2.0 |
62 |
sound_music_stop mus_ambgrv1 |
63 |
sound_music_volume mus_chase 0.0 3.0 |
64 |
sound_music_stop mus_chase |
65 |
} |
66 |
|
67 |
func void level_start(string ai_name) |
68 |
{ |
69 |
# These functions are used when the game is restored. |
70 |
|
71 |
trigvolume_enable(intro_enemies_tv, 0); |
72 |
trigvolume_enable(setup_bay3_tv, 0); |
73 |
trigvolume_enable gotLSI_tv 0 |
74 |
trigvolume_enable trigger_volume_06 0 |
75 |
particle bigdoor_locklight02 do start |
76 |
|
77 |
my_save_point = save_point; |
78 |
|
79 |
if (my_save_point eq 0) |
80 |
{ |
81 |
can_train_movement=1; |
82 |
dprint SAVE_POINT_0 |
83 |
# USE THIS FUNC TO SET UP TRAINING SEQUENCE AGAIN |
84 |
splash_screen training_splash_screen |
85 |
dprint hello |
86 |
} |
87 |
|
88 |
if (my_save_point eq 1) |
89 |
{ |
90 |
# this is a built in save point for |
91 |
can_train_movement=0; |
92 |
# objective_set(1) |
93 |
door_lock(15); |
94 |
door_lock(16); |
95 |
particle(lock1_locklight01, do, stop); |
96 |
restore_game |
97 |
playback 0 SwingKonokoSet |
98 |
target_set(1,0.0) |
99 |
dprint RESTORE_SAVE_Point_1 |
100 |
splash_screen warehouse_splash_screen |
101 |
swing_cutscene |
102 |
} |
103 |
|
104 |
if (my_save_point eq 2) |
105 |
{ |
106 |
can_train_movement=0; |
107 |
# objective_set(1) |
108 |
door_lock(15); |
109 |
door_lock(16); |
110 |
particle(lock1_locklight01, do, stop); |
111 |
restore_game |
112 |
ai2_spawn A_t48 |
113 |
playback 0 SwingKonokoSet |
114 |
target_set(1,0.0) |
115 |
dprint RESTORE_SAVE_Point_2_begin |
116 |
splash_screen warehouse_splash_screen |
117 |
cm_reset |
118 |
sleep 30 |
119 |
chr_forceholster 0 0 |
120 |
} |
121 |
|
122 |
if (my_save_point eq 3) |
123 |
{ |
124 |
dprint RESTORE_SAVE_POINT_3 |
125 |
can_train_movement=0; |
126 |
trigvolume_enable trigger_volume_03 0 |
127 |
target_set(7053, 15.0) |
128 |
door_lock 16 |
129 |
ai2_spawn Mid_Thug_2 |
130 |
ai2_spawn Mid_Thug_1 |
131 |
restore_game |
132 |
objective_set 2 silent |
133 |
splash_screen warehouse_splash_screen |
134 |
} |
135 |
|
136 |
if (my_save_point eq 4) |
137 |
{ |
138 |
dprint RESTORE_SAVE_POINT_4 |
139 |
can_train_movement=0; |
140 |
door_lock 65 |
141 |
trigvolume_enable trigger_volume_68 0 |
142 |
target_set(7054, 30.0) |
143 |
# spawn_top |
144 |
restore_game |
145 |
objective_set 2 silent |
146 |
splash_screen warehouse_splash_screen |
147 |
} |
148 |
|
149 |
if (my_save_point eq 5) |
150 |
{ |
151 |
dprint RESTORE_SAVE_POINT_5 |
152 |
can_train_movement=0; |
153 |
door_lock 48 |
154 |
particle bigdoor_locklight02 do stop |
155 |
ai2_spawn WH_Thug_A |
156 |
ai2_spawn WH_Striker_B |
157 |
ai2_spawn WH_Striker_C |
158 |
ai2_spawn WH_Striker_D |
159 |
ai2_dopath WH_Thug_A WH_Thug_A |
160 |
ai2_dopath WH_Striker_B WH_Striker_B |
161 |
ai2_dopath WH_Striker_D WH_Striker_D |
162 |
ai2_setjobstate WH_Thug_A |
163 |
ai2_setjobstate WH_Striker_B |
164 |
ai2_setjobstate WH_Striker_D |
165 |
chr_teleport WH_Striker_D 95 |
166 |
trigvolume_enable tv78 0 |
167 |
trigvolume_enable mid_warehouse_target 0 |
168 |
restore_game |
169 |
splash_screen warehouse_splash_screen |
170 |
sleep 7 |
171 |
train_timer |
172 |
} |
173 |
} |
174 |
|
175 |
func void unholstergun(void) |
176 |
{ |
177 |
sleep 30 |
178 |
chr_forceholster 0 0 |
179 |
} |
180 |
|
181 |
# This is an example of a save game console. |
182 |
|
183 |
func void s1(string player_name) |
184 |
{ |
185 |
dprint saveit_1 |
186 |
|
187 |
if (my_save_point ne 2) |
188 |
{ |
189 |
save_game 2 autosave |
190 |
} |
191 |
} |
192 |
|
193 |
func void s2(string player_name) |
194 |
{ |
195 |
dprint saveit_2 |
196 |
|
197 |
if (my_save_point ne 3) |
198 |
{ |
199 |
save_game 3 autosave |
200 |
} |
201 |
} |
202 |
|
203 |
func void s3(string player_name) |
204 |
{ |
205 |
dprint saveit_3 |
206 |
|
207 |
if (my_save_point ne 4) |
208 |
{ |
209 |
save_game 4 autosave |
210 |
} |
211 |
} |
212 |
|
213 |
func void s4(string player_name) |
214 |
{ |
215 |
dprint saveit_4 |
216 |
|
217 |
if (my_save_point ne 5) |
218 |
{ |
219 |
save_game 5 autosave |
220 |
} |
221 |
} |
222 |
|
223 |
func void you_lose(string ai_name) |
224 |
{ |
225 |
sleep 240 |
226 |
fade_out 0 0 0 180 |
227 |
sleep 240 |
228 |
lose |
229 |
} |
230 |
|
231 |
func void unlock1(string ai_name) |
232 |
{ |
233 |
dprint unlock1 |
234 |
target_set(33, 15.0) |
235 |
|
236 |
door_unlock 15 |
237 |
door_unlock 16 |
238 |
|
239 |
input 0 |
240 |
cm_interpolate lock1 0 |
241 |
sleep 60 |
242 |
particle lock1_locklight01 do start |
243 |
sleep 150 |
244 |
cm_reset |
245 |
input 1 |
246 |
sleep 120 |
247 |
ai2_spawn Bay1_Thug_1 |
248 |
trigvolume_enable intro_enemies_tv 1 |
249 |
trigvolume_enable trigger_volume_77 0 |
250 |
} |
251 |
|
252 |
func void unlock2(string ai_name) |
253 |
{ |
254 |
dprint unlock2 |
255 |
|
256 |
music_stop |
257 |
|
258 |
target_set(84, 15.0) |
259 |
|
260 |
door_unlock 24 |
261 |
door_unlock 26 |
262 |
|
263 |
input 0 |
264 |
cm_interpolate lock2 0 |
265 |
sleep 60 |
266 |
particle lock2_locklight01 do start |
267 |
sleep 150 |
268 |
cm_reset |
269 |
input 1 |
270 |
trigvolume_enable(setup_bay3_tv, 1); |
271 |
} |
272 |
|
273 |
func void setup_bay3(string ai_name) |
274 |
{ |
275 |
dprint setup_bay_3 |
276 |
target_set(84, 15.0) |
277 |
# particle lock3_locklight01 do start |
278 |
} |
279 |
|
280 |
func void checkLSI(string ai_name) |
281 |
{ |
282 |
var int has_lsi = chr_has_lsi(0); |
283 |
|
284 |
dprint checkLSI |
285 |
trigvolume_enable gotLSI_tv 0 |
286 |
|
287 |
if (has_lsi eq 1) |
288 |
{ |
289 |
input 0 |
290 |
sleep 25 |
291 |
chr_animate 0 KONOKOwatch_start 60 12 |
292 |
sleep 59 |
293 |
chr_animate 0 KONOKOwatch_idle 15 |
294 |
text_console level_1e |
295 |
chr_animate 0 KONOKOwatch_stop |
296 |
sleep 15 |
297 |
input 1 |
298 |
sleep 15 |
299 |
door_unlock 37 |
300 |
particle lock3_locklight01 do start |
301 |
ai2_spawn Ambush_Striker_1 |
302 |
ai2_spawn Mid_Thug_1 |
303 |
ai2_spawn Mid_Thug_2 |
304 |
target_set(7053,30.0) |
305 |
chung_music_stop |
306 |
objective_set(2) |
307 |
sound_dialog_play_block c00_01_21shinatama |
308 |
sound_dialog_play_block pause |
309 |
} |
310 |
|
311 |
if (has_lsi eq 0) |
312 |
{ |
313 |
# sleep and turn the trigger volume back on later |
314 |
sleep 60 |
315 |
trigvolume_enable gotLSI_tv 1 |
316 |
} |
317 |
} |
318 |
|
319 |
func void t09(string ai_name) |
320 |
{ |
321 |
target_set(62,30.0) |
322 |
} |
323 |
|
324 |
func void spawn_top(string ai_name) |
325 |
{ |
326 |
dprint spawn_top |
327 |
ai2_spawn Top_Striker_1 |
328 |
ai2_spawn Top_Comguy_1 |
329 |
ai2_spawn Top_Thug_3 |
330 |
ai2_spawn Top_Thug_5 |
331 |
ai2_spawn WH_Thug_A |
332 |
ai2_spawn WH_Striker_B |
333 |
ai2_spawn WH_Striker_C |
334 |
ai2_spawn WH_Striker_D |
335 |
} |
336 |
|
337 |
func void spawn_mid2(string ai_name) |
338 |
{ |
339 |
dprint spawn_mid2 |
340 |
ai2_spawn Mid2_Striker_1 |
341 |
ai2_spawn Mid2_Striker_2 |
342 |
target_set(66, 15.0) |
343 |
} |
344 |
|
345 |
func void unlock4(string ai_name) |
346 |
{ |
347 |
dprint unlock4 |
348 |
target_set(7054, 15.0) |
349 |
|
350 |
door_unlock 65 |
351 |
|
352 |
input 0 |
353 |
cm_interpolate lock4 0 |
354 |
sleep 60 |
355 |
particle lock4_locklight01 do start |
356 |
sleep 150 |
357 |
cm_reset |
358 |
input 1 |
359 |
|
360 |
} |
361 |
|
362 |
func void unlock5(string ai_name) |
363 |
{ |
364 |
dprint unlock5 |
365 |
target_set(72, 30.0) |
366 |
console_deactivate 4 |
367 |
door_unlock 73 |
368 |
door_unlock 74 |
369 |
door_unlock 81 |
370 |
door_unlock 82 |
371 |
ul5 = 1; |
372 |
input 0 |
373 |
cm_interpolate lock5 0 |
374 |
sleep 60 |
375 |
particle lock5_locklight01 do start |
376 |
sleep 150 |
377 |
cm_reset |
378 |
input 1 |
379 |
console_deactivate 7 |
380 |
} |
381 |
|
382 |
func void hurt1(string ai_name) |
383 |
{ |
384 |
dprint HURT |
385 |
ai2_makeignoreplayer Bay4_Comguy_1 1 |
386 |
ai2_doalarm Bay4_Comguy_1 6 |
387 |
ai2_dopath Bay4_Comguy_1 Run_To_Alarm |
388 |
ai2_setjobstate Bay4_Comguy_1 |
389 |
sleep 60 |
390 |
sound_dialog_play_block c00_01_96shinatama |
391 |
|
392 |
} |
393 |
|
394 |
func void patrolscript0001(string ai_name) |
395 |
{ |
396 |
dprint comguy_do_alarm |
397 |
ai2_doalarm Bay4_Comguy_1 6 |
398 |
} |
399 |
|
400 |
func void unlock_alarm(void) |
401 |
{ |
402 |
dprint unlock_alarm |
403 |
door_unlock 73 |
404 |
door_unlock 74 |
405 |
door_unlock 81 |
406 |
door_unlock 82 |
407 |
ai2_dopath Alarm_Bay4_Striker_1 Alarm_Bay4_Striker_1 |
408 |
sleep 107 |
409 |
particle lock5_locklight01 do start |
410 |
console_deactivate 7 |
411 |
} |
412 |
|
413 |
func void do_alarm_sound(void) |
414 |
{ |
415 |
sound_ambient_start alarm_loop |
416 |
sleep 900 |
417 |
sound_ambient_stop alarm_loop |
418 |
} |
419 |
|
420 |
func void alarm_trig(string ai_name) |
421 |
{ |
422 |
dprint alarm_trig |
423 |
trigvolume_enable alarm_trigvol 0 |
424 |
target_set(72,30.0) |
425 |
if(ul5 eq 0) |
426 |
{ |
427 |
#watch comguy set alarm, doors initially locked |
428 |
if(count_alarm eq 0) |
429 |
{ |
430 |
ai2_passive Bay4_Comguy_1 1 |
431 |
ai2_spawn Alarm_Bay4_Striker_1 |
432 |
ai2_makeignoreplayer Alarm_Bay4_Striker_1 1 |
433 |
ai2_spawn Alarm_Bay4_Striker_2 |
434 |
ai2_makeignoreplayer Alarm_Bay4_Striker_2 1 |
435 |
# ai2_spawn Bay5_Thug_1 |
436 |
ai2_spawn Bay5_Thug_2 |
437 |
ai2_doalarm Alarm_Bay4_Striker_1 4 |
438 |
input 0 |
439 |
chr_animate Bay4_Comguy_1 COMGUYconsole |
440 |
fade_out 0 0 0 30 |
441 |
letterbox 1 |
442 |
sleep 30 |
443 |
cm_interpolate alarm5 0 |
444 |
fade_in |
445 |
sleep 90 |
446 |
fade_out 0 0 0 15 |
447 |
chr_teleport Alarm_Bay4_Striker_1 7033 |
448 |
sleep 15 |
449 |
cm_interpolate alarm1 0 |
450 |
fork do_alarm_sound |
451 |
fade_in |
452 |
sleep 40 |
453 |
cm_interpolate alarm2 240 |
454 |
sleep 320 |
455 |
cm_interpolate alarm3 90 |
456 |
sleep 70 |
457 |
particle lock5_locklight01 do start |
458 |
sleep 20 |
459 |
cm_interpolate alarm4 0 |
460 |
sleep 60 |
461 |
fade_out 0 0 0 60 |
462 |
sleep 60 |
463 |
ai2_passive Bay4_Comguy_1 0 |
464 |
} |
465 |
|
466 |
#no watch comguy set alarm, doors initially locked |
467 |
if(count_alarm eq 1) |
468 |
{ |
469 |
ai2_spawn Alarm_Bay4_Striker_1 |
470 |
ai2_makeignoreplayer Alarm_Bay4_Striker_1 1 |
471 |
ai2_spawn Alarm_Bay4_Striker_2 |
472 |
ai2_makeignoreplayer Alarm_Bay4_Striker_2 1 |
473 |
# ai2_spawn Bay5_Thug_1 |
474 |
ai2_spawn Bay5_Thug_2 |
475 |
input 0 |
476 |
fade_out 0 0 0 30 |
477 |
sleep 15 |
478 |
chr_teleport Alarm_Bay4_Striker_1 7033 |
479 |
ai2_doalarm Alarm_Bay4_Striker_1 4 |
480 |
sleep 15 |
481 |
letterbox 1 |
482 |
cm_interpolate alarm1 0 |
483 |
fork do_alarm_sound |
484 |
fade_in |
485 |
sleep 40 |
486 |
cm_interpolate alarm2 240 |
487 |
sleep 320 |
488 |
cm_interpolate alarm3 90 |
489 |
sleep 70 |
490 |
particle lock5_locklight01 do start |
491 |
sleep 20 |
492 |
cm_interpolate alarm4 0 |
493 |
sleep 60 |
494 |
fade_out 0 0 0 60 |
495 |
sleep 60 |
496 |
} |
497 |
} |
498 |
|
499 |
#watch comguy set alarm, doors already unlocked |
500 |
if(ul5 eq 1) |
501 |
{ |
502 |
if(trigvolume_count (66) eq 0) |
503 |
{ |
504 |
if(count_alarm eq 0) |
505 |
{ |
506 |
ai2_passive Bay4_Comguy_1 1 |
507 |
ai2_spawn Alarm_Bay4_Striker_1 |
508 |
ai2_makeignoreplayer Alarm_Bay4_Striker_1 1 |
509 |
input 0 |
510 |
chr_animate Bay4_Comguy_1 COMGUYconsole |
511 |
fade_out 0 0 0 30 |
512 |
letterbox 1 |
513 |
sleep 30 |
514 |
cm_interpolate alarm5 0 |
515 |
fade_in |
516 |
sleep 90 |
517 |
fade_out 0 0 0 15 |
518 |
# chr_teleport Alarm_Bay4_Striker_1 7033 |
519 |
sleep 15 |
520 |
cm_interpolate alarm1 0 |
521 |
fork do_alarm_sound |
522 |
fade_in |
523 |
sleep 90 |
524 |
fade_out 0 0 0 60 |
525 |
sleep 60 |
526 |
ai2_passive Bay4_Comguy_1 0 |
527 |
} |
528 |
|
529 |
#no watch comguy set alarm, doors already unlocked |
530 |
if(count_alarm eq 1) |
531 |
{ |
532 |
ai2_spawn Alarm_Bay4_Striker_1 |
533 |
ai2_makeignoreplayer Alarm_Bay4_Striker_1 1 |
534 |
input 0 |
535 |
fade_out 0 0 0 30 |
536 |
sleep 7 |
537 |
chr_teleport Alarm_Bay4_Striker_1 7033 |
538 |
sleep 23 |
539 |
letterbox 1 |
540 |
cm_interpolate alarm1 0 |
541 |
fork do_alarm_sound |
542 |
fade_in |
543 |
sleep 90 |
544 |
fade_out 0 0 0 60 |
545 |
sleep 60 |
546 |
} |
547 |
} |
548 |
} |
549 |
|
550 |
cm_reset |
551 |
fade_in |
552 |
letterbox 0 |
553 |
input 1 |
554 |
#sleep 15 |
555 |
ai2_makeignoreplayer Alarm_Bay4_Striker_1 0 |
556 |
ai2_makeignoreplayer Alarm_Bay4_Striker_2 0 |
557 |
ai2_makeignoreplayer Bay4_Comguy_1 0 |
558 |
ai2_dopath Bay4_Comguy_1 patrol_42 |
559 |
ai2_setjobstate Bay4_Comguy_1 |
560 |
# ai2_attack Alarm_Bay4_Striker_1 char_0 |
561 |
ai2_attack Alarm_Bay4_Striker_2 char_0 |
562 |
|
563 |
} |
564 |
|
565 |
func void set_bay6_objective(string ai_name) |
566 |
{ |
567 |
dprint set_bay6_objective |
568 |
target_set(92, 15.0) |
569 |
|
570 |
} |
571 |
|
572 |
func void spawn_bay6_top(string ai_name) |
573 |
{ |
574 |
ai2_spawn Bay6_Striker_1 |
575 |
ai2_spawn Bay6_Neutral_1 |
576 |
ai2_spawn Bay6_Neutral_2 |
577 |
ai2_spawn guard1 |
578 |
trigvolume_enable spawn_bay6_bot_tv 0 |
579 |
|
580 |
train_neutral(); |
581 |
} |
582 |
|
583 |
func void spawn_bay6_bot(string ai_name) |
584 |
{ |
585 |
ai2_spawn Bay6_Striker_1b |
586 |
ai2_spawn Bay6_Neutral_1b |
587 |
ai2_spawn Bay6_Neutral_2 |
588 |
ai2_spawn guard1 |
589 |
trigvolume_enable spawn_bay6_top_tv 0 |
590 |
|
591 |
train_neutral(); |
592 |
} |
593 |
|
594 |
func void open_warehouse(string ai_name) |
595 |
{ |
596 |
trigvolume_enable trigger_volume_06 0 |
597 |
objective_set(3) |
598 |
sleep 10 |
599 |
target_set(93,15.0) |
600 |
ai2_dopath Bay6_Neutral_2 Open_Warehouse |
601 |
ai2_setjobstate Bay6_Neutral_2 |
602 |
ai2_spawn WH_Thug_A |
603 |
ai2_spawn WH_Striker_B |
604 |
ai2_spawn WH_Striker_C |
605 |
ai2_spawn WH_Striker_D |
606 |
particle lock7_locklight01 do start |
607 |
door_unlock 84 |
608 |
door_unlock 85 |
609 |
door_unlock 86 |
610 |
|
611 |
ai2_spawn Final_Thug_1 |
612 |
ai2_spawn Final_Thug_2 |
613 |
ai2_spawn Final_Thug_3 |
614 |
ai2_spawn Final_Thug_5 |
615 |
|
616 |
ai2_dopath WH_Thug_A WH_Thug_A |
617 |
ai2_dopath WH_Striker_B WH_Striker_B |
618 |
ai2_dopath WH_Striker_D WH_Striker_D |
619 |
|
620 |
ai2_setjobstate WH_Thug_A |
621 |
ai2_setjobstate WH_Striker_B |
622 |
ai2_setjobstate WH_Striker_D |
623 |
} |
624 |
|
625 |
func void t47(string ai_name) |
626 |
{ |
627 |
ai2_spawn Bay5_Thug_1 |
628 |
ai2_spawn Bay5_Thug_2 |
629 |
} |
630 |
|
631 |
func void mid_warehouse_target(string ai_name) |
632 |
{ |
633 |
# Reset Target |
634 |
target_set(96, 15.0) |
635 |
} |
636 |
func void stair1_target(string ai_name) |
637 |
{ |
638 |
# Reset Target |
639 |
target_set(31,15.0) |
640 |
} |
641 |
|
642 |
func void stair2_target(string ai_name) |
643 |
{ |
644 |
# Reset Target |
645 |
target_set(81,15.0) |
646 |
} |
647 |
|
648 |
func void enable_end(string ai_name) |
649 |
{ |
650 |
# trigvolume_enable end 1 |
651 |
timer_stop |
652 |
} |
653 |
|
654 |
func void gotoconsole(string ai_name) |
655 |
{ |
656 |
# dprint Guard_A_RTAlarm |
657 |
console_activate 9 |
658 |
sleep 7 |
659 |
ai2_doalarm Bay6_Neutral_2 9 |
660 |
sleep 180 |
661 |
trigvolume_enable trigger_volume_06 1 |
662 |
} |
663 |
|
664 |
func void t06(string ai_name) |
665 |
{ |
666 |
dprint t06 |
667 |
ai2_doalarm Bay6_Neutral_2 9 |
668 |
} |
669 |
|
670 |
func void t10(string ai_name) |
671 |
{ |
672 |
dprint t10 |
673 |
ai2_makeignoreplayer Bay6_Neutral_1 1 |
674 |
ai2_makeignoreplayer Bay6_Neutral_1b 1 |
675 |
ai2_dopath Bay6_Neutral_1 Bay6_Thug_1 |
676 |
ai2_dopath Bay6_Neutral_1b Bay6_Thug_1_copy |
677 |
sleep 240 |
678 |
ai2_makeignoreplayer Bay6_Neutral_1 0 |
679 |
ai2_makeignoreplayer Bay6_Neutral_1b 0 |
680 |
} |
681 |
|
682 |
func void final_striker_attack(void) |
683 |
{ |
684 |
ai2_attack WH_Striker_C char_0 |
685 |
} |
686 |
|
687 |
func void end_console(string ai_name) |
688 |
{ |
689 |
dprint end_console |
690 |
count_end_console = 1; |
691 |
music_stop |
692 |
timer_stop |
693 |
|
694 |
if (count_end_striker eq 0) |
695 |
{ |
696 |
final_striker_attack |
697 |
} |
698 |
|
699 |
if (count_end_striker eq 1) |
700 |
{ |
701 |
outro_start |
702 |
} |
703 |
|
704 |
} |
705 |
|
706 |
func void end_striker(string ai_name) |
707 |
{ |
708 |
dprint end_striker |
709 |
count_end_striker = 1 |
710 |
music_stop |
711 |
|
712 |
if (count_end_console eq 1) |
713 |
{ |
714 |
outro_start |
715 |
} |
716 |
} |
717 |
|
718 |
# we can only start the trigger volume once |
719 |
# and only if there are no bad guys in the area |
720 |
|
721 |
func void outro_start2(void) |
722 |
{ |
723 |
dprint READY_TO_BATTLE |
724 |
outro_has_started = 1; |
725 |
sleep 20 |
726 |
outro |
727 |
} |
728 |
|
729 |
func void outro_start(void) |
730 |
{ |
731 |
if (outro_has_started eq 0) |
732 |
{ |
733 |
if (trigvolume_count (76) eq 0) |
734 |
{ |
735 |
if (trigvolume_count (70) eq 1) |
736 |
{ |
737 |
outro_start2 |
738 |
} |
739 |
} |
740 |
} |
741 |
} |
742 |
|
743 |
# once every 2/3 of a second, check to see if we are in the |
744 |
# trigger and have no badguys near us |
745 |
|
746 |
func void t70(string ai_name) |
747 |
{ |
748 |
var int count_end_both = 0; |
749 |
|
750 |
dprint t70_END |
751 |
|
752 |
count_end_both = count_end_both + count_end_console; |
753 |
count_end_both = count_end_both + count_end_striker; |
754 |
|
755 |
trigvolume_enable trigger_volume_70 0 |
756 |
|
757 |
if (count_end_console eq 1) |
758 |
{ |
759 |
outro_start |
760 |
} |
761 |
|
762 |
if (outro_has_started eq 0) |
763 |
{ |
764 |
if (count_end_console eq 1) |
765 |
{ |
766 |
final_striker_attack |
767 |
} |
768 |
} |
769 |
|
770 |
if(outro_has_started eq 0) |
771 |
{ |
772 |
sleep 40 |
773 |
trigvolume_enable trigger_volume_70 1 |
774 |
} |
775 |
} |
776 |
|
777 |
func void t01(string ai_name) |
778 |
{ |
779 |
dprint t01 |
780 |
ai2_spawn A_t50 |
781 |
} |
782 |
|
783 |
func void compass(void) |
784 |
{ |
785 |
target_set(44, 30.0) |
786 |
ui_flash_element compass 1 |
787 |
sound_dialog_play_block c00_01_26shinatama |
788 |
message xincoming 130 |
789 |
sleep 60 |
790 |
input 0 |
791 |
sleep 30 |
792 |
chr_animate 0 KONOKOwatch_start 60 |
793 |
sleep 59 |
794 |
chr_animate 0 KONOKOwatch_idle 15 |
795 |
text_console level_1d |
796 |
ui_flash_element compass 0 |
797 |
chr_animate 0 KONOKOwatch_stop |
798 |
input 1 |
799 |
sleep 60 |
800 |
objective_set (1) |
801 |
} |
802 |
|
803 |
func void t48_dead(string ai_name) |
804 |
{ |
805 |
dprint t48dead |
806 |
td = 1; |
807 |
door_unlock 108 |
808 |
if(in_t64 eq 1) |
809 |
{ |
810 |
sleep 180 |
811 |
compass |
812 |
} |
813 |
} |
814 |
|
815 |
func void t63(string ai_name) |
816 |
{ |
817 |
dprint t63 |
818 |
# ai2_spawn A_t47 |
819 |
ai2_spawn A_t48 |
820 |
} |
821 |
|
822 |
func void t64(string ai_name) |
823 |
{ |
824 |
dprint t64 |
825 |
if(in_t64 eq 0) |
826 |
{ |
827 |
in_t64 = 1; |
828 |
ai2_dopath A_t48 patrol_49 |
829 |
ai2_setjobstate A_t48 |
830 |
ai2_attack A_t48 char_0 |
831 |
} |
832 |
if(td eq 1) |
833 |
{ |
834 |
trigvolume_enable trigger_volume_64 0 |
835 |
compass |
836 |
} |
837 |
} |
838 |
|
839 |
func void t65(string ai_name) |
840 |
{ |
841 |
|
842 |
dprint t65 |
843 |
if(d6 eq 0) |
844 |
{ |
845 |
message xdoorislocked |
846 |
dprint door_is_locked |
847 |
} |
848 |
} |
849 |
|
850 |
func void t65b(string ai_name) |
851 |
{ |
852 |
|
853 |
dprint t65b |
854 |
if(d6 eq 0) |
855 |
{ |
856 |
message_remove xdoorislocked |
857 |
} |
858 |
} |
859 |
func void t67(string ai_name) |
860 |
{ |
861 |
|
862 |
dprint t67 |
863 |
chr_changeteam guard1 Syndicate |
864 |
} |
865 |
|
866 |
func void t07(string ai_name) |
867 |
{ |
868 |
|
869 |
dprint t07 |
870 |
ai2_spawn Top_Thug_5 |
871 |
ai2_spawn WH_Striker_C |
872 |
ai2_spawn WH_Striker_D |
873 |
} |
874 |
|
875 |
func void t69(string ai_name) |
876 |
{ |
877 |
|
878 |
dprint t69 |
879 |
ai2_spawn Top_Striker_1 |
880 |
ai2_spawn Top_Comguy_1 |
881 |
ai2_spawn Top_Thug_3 |
882 |
} |
883 |
|
884 |
func void unlock6(string ai_name) |
885 |
{ |
886 |
dprint unlock6 |
887 |
d6 = 1 |
888 |
door_unlock 6 |
889 |
particle d1_locklight01 do start |
890 |
trigvolume_enable trigger_volume_65 1 |
891 |
} |
892 |
|
893 |
func void yhealth(string ai_name) |
894 |
{ |
895 |
dprint yhealth |
896 |
message_remove |
897 |
lock_keys |
898 |
input 1 |
899 |
ui_show_element right 1 |
900 |
sound_dialog_play_block c00_01_92shinatama |
901 |
sound_dialog_play_block pause |
902 |
ui_flash_element health 1 |
903 |
chr_animate 0 KONOKOwatch_start 60 |
904 |
sleep 59 |
905 |
chr_animate 0 KONOKOwatch_idle 15 |
906 |
text_console level_1m |
907 |
ui_flash_element health 0 |
908 |
chr_animate 0 KONOKOwatch_stop |
909 |
chr_forceholster 0 0 |
910 |
lock_keys keys_all |
911 |
end_cutscene |
912 |
if (trigvolume_count (63) eq 1) |
913 |
{ |
914 |
ai2_spawn A_t48 |
915 |
} |
916 |
} |
917 |
|
918 |
func void console_evidence1(string ai_name) |
919 |
{ |
920 |
text_console level_1a |
921 |
console_reset 19 |
922 |
} |
923 |
|
924 |
func void console_evidence2(string ai_name) |
925 |
{ |
926 |
text_console level_1b |
927 |
console_reset 20 |
928 |
} |
929 |
|
930 |
func void t02(string ai_name) |
931 |
{ |
932 |
dprint t02 |
933 |
sleep 60 |
934 |
if(trigvolume_count (2) eq 1) |
935 |
{ |
936 |
dprint spawned_secret |
937 |
ai2_spawn secret2 |
938 |
trigvolume_enable trigger_volume_01 0 |
939 |
ai2_spawn A_t50 |
940 |
ai2_dopath A_t50 patrol_secret1 |
941 |
ai2_setjobstate A_t50 |
942 |
} |
943 |
} |
944 |
|
945 |
func void t05(string ai_name) |
946 |
{ |
947 |
dprint t05 |
948 |
ai2_spawn ambush_striker |
949 |
} |