ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/AE/packages/VanillaBSL/IGMD/power_II/power2_spawn.bsl
Revision: 313
Committed: Sun May 3 07:36:58 2009 UTC (16 years, 5 months ago) by gumby
File size: 12198 byte(s)
Log Message:

File Contents

# Content
1 ### POWER PLANT II LEVEL LOGIC ###
2
3 ### START, SAVE & OBJECTIVES ###
4
5 var int inside_final_cutscene = 0;
6
7 func void start(string ai_name)
8 {
9 particle save3_locklight01 do start
10
11 if (save_point eq 0)
12 {
13 my_save_point = 0
14 trigvolume_enable trigger_volume_07 0
15 particle_room1_start
16 particle doorA_locklight01 do stop
17 ai2_spawn ambush_striker_10
18 ai2_spawn ambush_striker_11
19 set_objective_1
20 chr_invincible ShinShin 1
21 chr_unstoppable ShinShin 1
22 }
23 if (save_point eq 1)
24 {
25 my_save_point = 1;
26 dprint restore1_active
27 trigvolume_enable room3_particle_control 0
28 door_lock 3
29 particle Shindoor_locklight01 do stop
30 particle room4 do start
31 ai2_spawn A3_n05
32 restore_game
33 set_objective_3
34 }
35 if (save_point eq 2)
36 {
37 my_save_point = 2;
38 dprint restore2_active
39 particle doorA_locklight01 do stop
40 particle doorB_locklight01 do start
41 door_lock 15
42 trigvolume_enable save2 0
43 ai2_spawn vat_bot_1
44 ai2_spawn vat_bot_2
45 ai2_spawn vat_bot_3
46 ai2_spawn vat_bot_4
47 ai2_spawn vat_bot_5
48 chr_weapon_immune(vat_bot_1);
49 chr_weapon_immune(vat_bot_2);
50 chr_weapon_immune(vat_bot_3);
51 chr_weapon_immune(vat_bot_4);
52 chr_weapon_immune(vat_bot_5);
53 restore_game
54 set_objective_4
55 sound_music_start atm_cl12 0.75
56 }
57 if (save_point eq 3)
58 {
59 my_save_point = 3;
60 dprint restore3_active
61 particle save3_locklight01 do stop
62 door_lock 23
63 door_lock 28
64 ai2_spawn E1_sr28
65 ai2_spawn E1_sr30
66 ai2_spawn E1_sb29
67 ai2_spawn ambush_comguy_1
68 ai2_spawn E1_n31
69 ai2_spawn E1_n32
70 ai2_spawn E1_n37
71 trigvolume_enable save_point3 0
72 trigvolume_enable p11b_vol 0
73 restore_game
74 pipe3_start
75 set_objective_5
76 }
77 }
78
79 func void you_lose(string ai_name)
80 {
81 sleep 240
82 fade_out 0 0 0 180
83 sleep 240
84 lose
85 }
86
87 func void you_win(int char_index)
88 {
89 outro
90 win
91 }
92
93 func void new_save1(string ai_name)
94 {
95 if (my_save_point ne 1)
96 {
97 save_game 1 autosave
98 }
99 }
100
101 func void save_point_1(string ai_name)
102 {
103 dprint savegame_1
104 door_lock 3
105 particle Shindoor_locklight01 do stop
106 }
107
108 func void save_point_2(string ai_name)
109 {
110 dprint savegame_2
111 save_game 2 autosave
112 }
113
114 func void save_point_3(string ai_name)
115 {
116 dprint savegame_3
117 save_game 3 autosave
118 }
119
120 func void set_objective_1(string ai_name)
121 {
122 dprint set_objective1
123 objective_set(1)
124 }
125
126 func void set_objective_2(string ai_name)
127 {
128 dprint set_objective2
129 objective_set(2)
130 target_set(7020,60.00)
131 }
132
133 func void set_objective_3(string ai_name)
134 {
135 dprint set_objective3
136 objective_set(3)
137 target_set(0,0)
138 }
139
140 func void set_objective_4(string ai_name)
141 {
142 dprint set_objective4
143 objective_set(4)
144 trigvolume_enable setobjective_4 0
145 }
146
147 func void set_objective_5(string ai_name)
148 {
149 dprint set_objective5
150 objective_set(5)
151 trigvolume_enable setobjective_5 0
152 }
153
154 ### MUSIC ###
155
156 var int music_counter;
157
158 func void music_force_stop(void)
159 {
160 sleep 4500
161 if (0 ne music_counter)
162 {
163 dprint music_force_stop
164 music_counter = 0
165 all_music_counters
166 }
167 }
168
169 func void music_script_start(void)
170 {
171 music_counter = 2
172 }
173
174 func void striker_lullaby_1(string ai_name)
175 {
176 dprint striker_lullaby1
177 music_counter = music_counter - 1
178 if (music_counter eq 0)
179 {
180 all_music_counters();
181 }
182 }
183
184 func void striker_lullaby_2(string ai_name)
185 {
186 dprint striker_lullaby2
187 music_counter = music_counter - 1
188 if (music_counter eq 0)
189 {
190 all_music_counters();
191 }
192 }
193
194 func void all_music_counters(void)
195 {
196 dprint ELVIS_HAS_LEFT_THE_BUILDING
197 sound_music_stop mus_trt
198 sound_music_stop mus_sad1
199 sound_music_stop atm_cl10
200 sound_music_stop atm_ft66
201 sound_music_stop atm_cl09
202 sound_music_stop atm_cl11
203 sound_music_stop mus_xtr2
204 sound_music_stop mus_lz
205 }
206
207 ### TEXT CONSOLES ###
208
209 func void level10a(string chr_index)
210 {
211 dprint text10a
212 text_console level_10a
213 console_reset 2
214 }
215
216 func void level10b(string chr_index)
217 {
218 dprint text10b
219 text_console level_10b
220 console_reset 7
221 }
222
223 ### GAMEPLAY PROGRESSION ###
224
225 # STRIKER BACKUPS
226 func void backup_1(string ai_name)
227 {
228 dprint backup1
229 ai2_spawn backup_striker1
230 particle blast1_locklight01 do start
231 door_unlock 1
232 door_open 1
233 }
234
235 func void backup_2(string ai_name)
236 {
237 dprint backup2
238 ai2_spawn backup_striker2
239 particle blast2_locklight01 do start
240 door_unlock 2
241 door_open 2
242 }
243
244
245 # COME TO ME
246 func void come_to_me(string ai_name)
247 {
248 dprint go_to_konoko
249 ai2_dopath ambush_striker1 come_to_me 1
250 ai2_dopath ambush_striker2 come_to_me 1
251 ai2_dopath A1_t02 come_to_me 1
252 ai2_dopath A1_sr01 come_to_me 1
253 ai2_dopath ambush_striker1 come_to_me 1
254 ai2_dopath ambush_striker2 come_to_me 1
255 }
256
257 # SHIN CUTSCENE CHECK
258 func void shin_check(string ai_name)
259 {
260 var int inside_count;
261 dprint shin_cutscene_check
262 trigvolume_enable trigger_volume_03 0
263
264 inside_count = trigvolume_count(32);
265
266 if (inside_count ne 0)
267 {
268 sleep 60
269 trigvolume_enable trigger_volume_03 1
270 }
271
272 if (inside_count eq 0)
273 {
274 Shin
275 }
276 }
277
278 func void t43(string ai_name)
279 {
280 dprint konoko_dies
281 inroom = 1
282 }
283
284 func void t43b(string ai_name)
285 {
286 dprint konoko_lives
287 inroom = 0
288 }
289
290 func void delete_script(string ai_name)
291 {
292 dprint dead_or_not
293 chr_delete ai_name
294 }
295
296 func void shin_dies(void)
297 {
298 dprint KABOOM
299 particle ShinBomb do explode
300 fade_out 1 1 1 30
301 if (inroom eq 1)
302 {
303 chr_set_health 0 0
304 }
305
306 trigvolume_kill 64
307
308 chr_delete ShinShin
309 fade_in 60
310 door_lock 3
311 particle Shindoor_locklight01 do stop
312 set_objective_3
313 }
314
315 func void p1(string ai_name)
316 {
317 dprint p1_trigger_entered
318 sound_music_stop mus_trt
319 sound_music_start atm_cl09 1.0
320 ai2_spawn A1_sr01
321 ai2_lookatme A1_sr01
322 ai2_spawn A1_t02
323 ai2_lookatme A1_t02
324 sleep 120
325 door_lock 1
326 door_lock 2
327 }
328
329 func void open_ambush1(string ai_name)
330 {
331 dprint ambush_1
332 particle blast1_locklight01 do start
333 door_unlock 1
334 ai2_spawn ambush_striker1
335 }
336
337 func void open_ambush2(string ai_name)
338 {
339 dprint ambush_2
340 particle blast2_locklight01 do start
341 door_unlock 2
342 ai2_spawn ambush_striker2
343 }
344
345 func void p2(string ai_name)
346 {
347 dprint p2
348 ai2_spawn A2_r03
349 playback A2_r03 redjump
350 ai2_lookatme A2_r03
351 ai2_spawn aerial_red_2
352 ai2_passive aerial_red_2 1
353 playback aerial_red_2 redjump2
354 ai2_passive aerial_red_2 0
355 ai2_lookatme aerial_red_2
356 ai2_spawn red_guard_1
357 ai2_dopath A1_sr01 patrol_31
358 ai2_dopath A1_t02 patrol_31
359 ai2_setjobstate A1_sr01
360 ai2_setjobstate A1_t02 patrol_31
361 sleep 120
362 }
363
364 func void p5(string ai_name)
365 {
366 dprint p5
367 ai2_spawn A3_n05
368 ai2_spawn A3_sb06
369 ai2_spawn A4_n07
370 }
371
372 func void p6(string ai_name)
373 {
374 dprint p6
375 ai2_spawn A4_sr08
376 ai2_spawn B1_c07
377 }
378
379 func void enableP7(string ai_name)
380 {
381 dprint enableP7
382 trigvolume_enable trigger_volume_07 1
383 }
384
385 func void do_console_1(string ai_name)
386 {
387 dprint do_console
388 ai2_doalarm A3_n05 1
389 }
390
391 func void p8(string ai_name)
392 {
393 dprint p8
394 ai2_spawn B2_sb09
395 ai2_spawn B2_n10
396 trigvolume_enable trigger_volume_07 0
397 trigvolume_enable trigger_volume_08 0
398 }
399
400 func void p9(string ai_name)
401 {
402 dprint p9
403 ai2_spawn C1_c16
404 ai2_spawn C1_t11
405 ai2_spawn C1_sb12
406 ai2_spawn C1_t13
407 ai2_spawn C2_sg15
408 ai2_spawn C2_sr17
409 ai2_spawn C2_sb14
410 ai2_spawn C2_t19
411 particle room1 stop
412 }
413
414 func void red_ambush(string ai_name)
415 {
416 dprint ambush_red
417 ai2_spawn ambush_red_1
418 }
419
420 func void p10(string ai_name)
421 {
422 dprint p10
423 ai2_spawn D1_sr20
424 ai2_spawn D1_sb21
425 }
426
427 func void p11(string ai_name)
428 {
429 dprint p11
430 particle room6 do start
431 pipe3_start
432 }
433 func void p11b(string ai_name)
434 {
435 dprint p11b
436 particle room6 do stop
437 }
438
439 func void striker_guards(string ai_name)
440 {
441 dprint spawn_strikers
442 ai2_spawn striker_guard_1
443 ai2_spawn striker_guard_2
444 }
445
446 func void spawn_EC_guards(string ai_name)
447 {
448 dprint spawn_guards
449 ai2_spawn E1_sb29
450 ai2_spawn E1_c33
451 ai2_spawn E1_c40
452 ai2_spawn E1_f34
453 ai2_spawn E1_f40
454 ai2_spawn E1_f35
455 }
456
457 func void final_guards(string ai_name)
458 {
459 dprint last_guards_activated
460 ai2_spawn final_guard_1
461 ai2_spawn final_guard_2
462 }
463
464 func void p12(string ai_name)
465 {
466 dprint p12
467 ai2_spawn D2_sb26
468 playback D2_sb26 piperun
469 ai2_spawn pipe_guard_1
470 ai2_spawn pipe_guard_2
471 }
472
473 func void p13(string ai_name)
474 {
475 dprint p13
476 ai2_spawn E1_sr28
477 ai2_spawn E1_sb29
478 ai2_spawn E1_sr30
479 ai2_spawn ambush_comguy_1
480 ai2_spawn E1_n31
481 ai2_spawn E1_n32
482 ai2_spawn E1_n37
483 particle elev1_locklight01 do stop
484 particle elev2_locklight01 do stop
485 }
486
487 func void p14(string ai_name)
488 {
489 dprint p14
490 chr_teleport 0 105
491 ai2_spawn F_r40
492 particle pipe3 do start
493 }
494
495 func void p36(string ai_name)
496 {
497 dprint spawned_muro_runner_p36
498 ai2_spawn muro_runner
499 ai2_spawn muro_runner2
500 }
501
502 func void p39(string ai_name)
503 {
504 dprint p39
505 ai2_spawn F_r40
506 }
507
508 func void cross_fire(string ai_name)
509 {
510 dprint crossfire
511 ai2_spawn D2_sg24
512 ai2_spawn D2_f25
513 }
514
515 func void tctf_control(string ai_name)
516 {
517 dprint tctfcontrol_start
518 sound_music_start mus_amasian 1.0
519 input 0
520 letterbox 1
521 door_unlock 38
522 ai2_spawn E2_sr38
523 ai2_spawn E2_sr39
524 particle elev1_locklight01 do start
525 particle elev2_locklight01 do start
526 cm_interpolate tctf_3 0
527 cm_interpolate_block tctf_1 300
528 cm_interpolate_block tctf_2 150
529 sleep 180
530 cm_reset
531 letterbox 0
532 input 1
533 door_unlock 37
534 }
535
536 func void warnbigroom(string ai_name)
537 {
538 dprint warnbigroom
539 ai2_tripalarm 1
540 }
541
542 func void zap_cinematic(string ai_name)
543 {
544 dprint doorA
545 input 0
546 begin_cutscene
547 sound_music_start atm_cl12 0.75
548 particle zap1 create
549 particle zap1 start
550 cm_interpolate zap_cinematic1 0
551 cm_interpolate_block zap_cinematic3 700
552 sleep 750
553 cm_interpolate zap_cinematic4 0
554 sleep 60
555 particle doorA_locklight01 do start
556 sleep 150
557 door_unlock 15
558 cm_reset
559 end_cutscene
560 input 1
561 ai2_spawn vat_bot_1
562 ai2_spawn vat_bot_2
563 ai2_spawn vat_bot_3
564 ai2_spawn vat_bot_4
565 ai2_spawn vat_bot_5
566 chr_weapon_immune(vat_bot_1);
567 chr_weapon_immune(vat_bot_2);
568 chr_weapon_immune(vat_bot_3);
569 chr_weapon_immune(vat_bot_4);
570 chr_weapon_immune(vat_bot_5);
571 particle doorB_locklight01 do start
572 }
573
574 func void change_patrol_1(string ai_name)
575 {
576 dprint change_patrol
577 ai2_dopath vat_bot_2 vat_bot_2b 1
578 }
579
580 func void change_patrol_2(string ai_name)
581 {
582 dprint change_patrol
583 ai2_dopath vat_bot_3 vat_bot_3b 1
584 }
585
586 func void change_patrol_3(string ai_name)
587 {
588 dprint change_patrol
589 ai2_dopath vat_bot_5 vat_bot_5b 1
590 }
591
592 func void spark_sound_off(string ai_name)
593 {
594 dprint spark_music_off
595 sound_music_stop atm_cl12
596 }
597
598 # YOUR DEATH IS ASSURED
599 func void dont_even_try_it(string ai_name)
600 {
601 chr_set_health 0 0
602 }
603
604 ### SPECIAL PARTICLES ###
605
606 func void killmuro(string ai_name)
607 {
608 dprint killedmuro
609 chr_delete muro_runner
610 chr_delete muro_runner2
611 sound_music_stop atm_cl11
612 ai2_spawn A4_n07
613 }
614
615 func void pipe1a(string ai_name)
616 {
617 dprint pipe1_discharged
618 ai2_passive A3_n05 1
619 particle room4 do stop
620 timer_start 30 pipe1b
621 sound_music_start atm_cl11
622 }
623
624 func void pipe1b(void)
625 {
626 dprint pipe1_recharged
627 particle room4 do start
628 console_reset 1
629
630 pipe1_music_off();
631 }
632
633 func void pipe1_music_off(void)
634 {
635 dprint pipe1_music_off
636 sound_music_stop atm_cl11
637 }
638
639 func void pipe2a(void)
640 {
641 dprint pipe2_discharged
642 particle room6 do stop
643 timer_start 29 pipe2b
644 sound_music_start atm_cl11
645 }
646
647 func void pipe2b(void)
648 {
649 dprint pipe2_recharged
650 particle room6 do start
651 console_reset 8
652
653 pipe2_music_off();
654 }
655
656 func void pipe2_music_off(void)
657 {
658 dprint pipe2_music_off
659 sound_music_stop atm_cl11
660 }
661
662 func void pipe3(void)
663 {
664 dprint pipe_discharged
665 timer_start 19 pipe3b
666 sound_music_volume mus_amasian 0.0 2.0
667 particle pipe3 kill
668 sound_music_start atm_cl11
669 sound_music_stop mus_amasian
670 }
671
672 func void pipe3b(void)
673 {
674 if (inside_final_cutscene eq 0)
675 {
676 dprint pipe_recharged
677 particle pipe3 create
678 particle pipe3 do start
679 console_reset 15
680 }
681 }
682
683 func void final_cutscene_trumps_particles(void)
684 {
685 inside_final_cutscene = 1;
686 particle pipe3 kill
687 }
688
689 ### Level scripted by Joseph ###