source: nikanabo/current/bsl/original/IGMD/power/power_spawn.bsl@ 410

Last change on this file since 410 was 185, checked in by geyser, 18 years ago
File size: 12.8 KB
RevLine 
[185]1# power_spawn
2# spawn units and trigger volumes
3
4var int counter = 8;
5var int my_save_point = 0;
6var int blue01 = 1;
7var int music_counter = 0;
8var int pipe;
9var int pipe2;
10var int count_respawn1=0;
11var int count_respawn2=0;
12
13# music #
14
15func void music_intro(void)
16{
17 sound_music_start mus_main01 .75
18 music_counter = 2
19}
20
21func void music_muro(void)
22{
23 sound_music_start mus_sad1 .8
24# this music stopped in target05 in objective scripts
25}
26
27func void music_pipe(void)
28{
29 sound_music_start mus_asian .75
30# this music stopped in target13 in objective scripts
31}
32
33func void music_battle(void)
34{
35 sound_music_start mus_fiteb .75
36# this music stopped in check_death script
37}
38
39func void music_intro_timer(void)
40{
41 sleep 4500
42
43 if (music_counter ne 0)
44 {
45 dprint music_force_stop
46 music_counter = 0
47 music_stop
48 }
49}
50
51func void die_for_art(string ai_name)
52{
53 dprint DFA_1
54 music_counter = music_counter - 1
55
56 if (music_counter eq 0)
57 {
58 music_stop
59 }
60
61}
62
63func void music_stop(void)
64{
65 dprint STOP_THE_MUSIC
66 sound_music_stop mus_main01
67 sound_music_stop mus_sad1
68 sound_music_stop mus_asian
69 sound_music_stop mus_fiteb
70}
71
72# start and objectives #
73
74func void start(string ai_name)
75{
76 dprint XXX_start_script_XXX
77 particle power1 do start
78 particle power2 do start
79 trigvolume_enable trigger_volume_02 0
80 trigvolume_enable trigger_volume_06 0
81 trigvolume_enable trigger_volume_12 0
82 trigvolume_enable trigger_volume_13 0
83 trigvolume_enable trigger_volume_40 0
84
85 if (my_save_point eq 0)
86 {
87 set_objective_1
88 }
89
90 if (my_save_point eq 1)
91 {
92 dprint restore1
93 ai2_spawn A1_intro01
94 ai2_spawn A1_intro02
95 restore_game
96 music_intro
97 objective_set 1 silent
98 target_set(5007, 30.0)
99 music_intro_timer
100 }
101
102 if (my_save_point eq 2)
103 {
104 dprint restore2
105 env_show 802 1
106 ai2_spawn B1_s_green01
107 ai2_spawn new_dummy1
108 ai2_spawn C2_blue25
109 chr_delete A1_intro01
110 chr_delete A1_intro02
111 chr_delete A1_s_blue01
112 target_set(1083,30.0)
113 trigvolume_enable trigger_volume_35 0
114 music_muro
115 ai2_spawn B1_s_blue05
116 ai2_dopath B1_s_blue05 patrol_08_blue05b
117 ai2_setjobstate B1_s_blue05
118 chr_teleport B1_s_blue05 1046
119 restore_game
120 objective_set 1 silent
121 }
122
123 if (my_save_point eq 3)
124 {
125 dprint restore3
126 particle red_locklight01 do start
127 door_unlock 38
128 console_deactivate 7
129 ai2_spawn D2_blue60
130 ai2_spawn D1_neut10
131 ai2_spawn new_5
132 ai2_spawn D2_blue61
133 chr_delete A1_intro01
134 chr_delete A1_intro02
135 chr_delete A1_s_blue01
136 target_set(125,30.0)
137 trigvolume_enable trigger_volume_25 0
138 restore_game
139 objective_set 2 silent
140 }
141
142 if (my_save_point eq 4)
143 {
144 dprint restore4
145 particle red_locklight01 do start
146 door_unlock 38
147 console_deactivate 7
148 ai2_spawn D2_blue61
149 ai2_spawn D2_blue60
150 ai2_spawn new_5
151 ai2_spawn D1_neut10
152 chr_delete A1_intro01
153 chr_delete A1_intro02
154 chr_delete A1_s_blue01
155 target13
156 trigvolume_enable trigger_volume_30 0
157 trigvolume_enable trigger_volume_17 0
158 trigvolume_enable trigger_volume_25 0
159 restore_game
160 objective_set 2 silent
161 pipe = 100;
162 }
163
164 if (my_save_point eq 5)
165 {
166 dprint restore5
167 counter = 7;
168 target20
169 ai2_spawn F_blue1
170 chr_delete A1_intro01
171 chr_delete A1_intro02
172 chr_delete A1_s_blue01
173 console_deactivate 8
174 door_unlock 4
175 particle bwhite_locklight01 do start
176 trigvolume_enable trigger_volume_07 0
177 restore_game
178 objective_set 3 silent
179 pipe = 100;
180 }
181}
182
183func void blue01_dies(string ai_name)
184{
185 blue01 = 0
186}
187
188func void script_respawn1(void)
189{
190 if(trigvolume_count (42) eq 0)
191 {
192 count_respawn1 = count_respawn1 + 1;
193 if(count_respawn1 eq 1)
194 {
195 dprint rs1a
196 ai2_spawn respawn1
197 chr_giveweapon respawn1 w7_scc
198 }
199 if(count_respawn1 eq 2)
200 {
201 dprint rs1b
202 ai2_spawn respawn1
203 chr_giveweapon respawn1 w3_phr
204 ai2_dopath patrol_08_blue05
205 ai2_setjobstate respawn1
206 }
207 if(count_respawn1 eq 3)
208 {
209 dprint rs1c
210 ai2_spawn respawn1
211 chr_giveweapon respawn1 w2_sap
212 }
213 }
214}
215
216func void script_respawn2(void)
217{
218 if(trigvolume_count (42) eq 0)
219 {
220 count_respawn2 = count_respawn2 + 1;
221 if(count_respawn2 eq 1)
222 {
223 dprint rs2a
224 ai2_spawn respawn2
225 chr_giveweapon respawn2 w3_phr
226 }
227 if(count_respawn2 eq 2)
228 {
229 dprint rs2b
230 ai2_spawn respawn2
231 chr_giveweapon respawn2 w2_sap
232 ai2_dopath patrol_19_blue20b
233 ai2_setjobstate respawn2
234 }
235 if(count_respawn2 eq 3)
236 {
237 dprint rs2c
238 ai2_spawn respawn2
239 chr_giveweapon respawn2 w2_sap
240 }
241 }
242}
243
244func void script_respawn3(void)
245{
246 if(trigvolume_count (42) eq 0)
247 {
248 ai2_spawn C1_red21
249 }
250}
251func void tv01(string ai_name)
252{
253 dprint tv01 B2
254 ai2_spawn C1_blue22
255 ai2_spawn B2_s_blue08
256 ai2_spawn B2_s_tank04
257
258}
259
260func void tv02(string ai_name)
261{
262 dprint tv02
263
264 if (trigvolume_count(32) ne 0)
265 {
266 trigvolume_reset trigger_volume_02
267 }
268
269 if (trigvolume_count(32) eq 0)
270 {
271 ai2_makeignoreplayer sniper1 1
272 ai2_dopath sniper1 patrol_53
273 ai2_setjobstate sniper1
274# ai2_spawn B2_s_blue06
275 ai2_spawn B1_s_blue05
276# ai2_spawn B1_s_Red01
277 ai2_spawn B1_s_green01
278 ai2_spawn new_dummy1
279 ai2_spawn C1_blue22
280 ai2_spawn C2_blue25
281# ai2_spawn B1_neut01
282 trigvolume_corpse 32
283 Muro
284 target_set(1083, 30.0)
285 chr_delete A1_intro01
286 chr_delete A1_intro02
287 chr_delete A1_s_blue01
288 chr_delete A1_s_red01
289 chr_delete A1_s_red02
290 chr_delete A2_s_blue01
291 chr_delete A2_s_blue03
292 chr_delete A2_s_blue09
293# chr_delete A2_s_blue10
294 chr_delete A2_s_tank01
295 chr_delete A2_s_tank02
296 chr_delete char_1
297 chr_delete sniper1
298 chr_delete A2_s_blue13
299 chr_delete A2_s_red03
300 chr_delete A2_s_red04
301 chr_delete new_1
302 chr_delete new_2
303 chr_delete new_3
304 chr_delete new_4
305 chr_delete whiteneut
306 chr_delete B3_s_green02
307 }
308}
309
310func void tv03(string ai_name)
311{
312 dprint tv03
313 ai2_spawn A2_s_blue09
314# ai2_spawn A2_s_blue10
315# ai2_spawn A2_s_red04
316
317}
318
319func void ontv02(string ai_name)
320{
321 dprint ontv02
322 trigvolume_enable trigger_volume_02 1
323 particle el_red1 kill
324 particle el_1_locklight01 do start
325}
326
327func void tv04(string ai_name)
328{
329 dprint tv04
330 ai2_spawn A2_s_tank01
331 ai2_spawn A2_s_blue13
332# ai2_spawn A2_s_tank02
333 ai2_spawn A2_s_blue01
334 ai2_spawn A2_s_red03
335# ai2_spawn A2_s_blue03
336
337}
338
339func void tv05(string ai_name)
340{
341 dprint tv05_B3_C1
342 ai2_spawn B3_s_green02
343 ai2_spawn C1_blue20
344# Torture
345}
346
347func void ontv06(string ai_name)
348{
349 dprint ontv06
350 trigvolume_enable trigger_volume_06 1
351 particle el_2_locklight01 do start
352}
353
354func void start_elevator2_music(void)
355{
356 sound_music_start mus_space01 0.75
357}
358
359func void stop_elevator2_music(void)
360{
361 sound_music_stop mus_space01
362}
363
364func void tv06(string ai_name)
365{
366 dprint tv06_C3
367
368 if (trigvolume_count(31) ne 0)
369 {
370 trigvolume_reset trigger_volume_06
371 }
372
373 if (trigvolume_count(31) eq 0)
374 {
375 start_elevator2_music
376
377 ai2_spawn D1_neut05
378 trigvolume_corpse 31
379 Elev2
380 target_set(128,30.0)
381 chr_delete respawn1
382 chr_delete respawn2
383 chr_delete B1_neut01
384 chr_delete B1_s_blue05
385 chr_delete B1_s_green01
386 chr_delete B1_s_Red01
387 chr_delete B2_s_blue06
388 chr_delete B2_s_blue07
389 chr_delete B2_s_blue08
390 chr_delete B2_s_tank04
391 chr_delete B3_green02
392 chr_delete C1_blue20
393 chr_delete C1_blue22
394 chr_delete C1_red21
395 chr_delete C2_blue25
396 chr_delete C2_red26
397 chr_delete C2_tank24
398 chr_delete new_dummy1
399 objective_set(2)
400 }
401}
402
403func void power_lull_1(string ai_name)
404{
405 dprint pipe_discharged
406 ai2_neutralbehavior D1_neut02 none
407 pipe = pipe + 1
408
409 if (pipe eq 1)
410 {
411 stop_elevator2_music
412
413 input 0
414 music_pipe
415 cm_interpolate pipe_view 180
416 particle power1 do stop
417 sleep 270
418 cm_reset
419 input 1
420 timer_start 25 power_lull_1b
421 if(my_save_point ne 3)
422 {
423 s3
424 }
425 }
426
427 if(pipe ne 1)
428 {
429 particle power1 do stop
430 timer_start 20 power_lull_1b
431 }
432}
433
434func void power_lull_1b(void)
435{
436 dprint pipe_recharged
437 music_stop
438 particle power1 do start
439 sleep 300
440 console_reset 9
441}
442
443func void power_deactivate(void)
444{
445 dprint power_deactivate
446 ai2_doalarm D1_neut02 9
447 ai2_dopath D1_neut02 patrol_80
448 ai2_setjobstate D1_neut02
449}
450
451func void power_lull_2(string ai_name)
452{
453 dprint pipe_discharged
454 pipe2 = pipe2 + 1
455 if (pipe2 eq 1)
456 {
457 music_pipe
458 ai2_spawn new_67
459 }
460 particle power2 do stop
461 ai2_spawn new_10
462 ai2_spawn D3_tank65
463 timer_start 20 power_lull_2b
464}
465
466func void power_lull_2b(void)
467{
468 dprint pipe_recharged
469 music_stop
470 particle power2 do start
471 sleep 300
472 console_reset 11
473}
474
475func void tv07(string ai_name)
476{
477 dprint tv07
478 target20
479 chr_delete sci_maniac
480 chr_delete D1_blue50
481 chr_delete D1_neut02
482 chr_delete D1_neut05
483 chr_delete D1_neut10
484 chr_delete D1_red30
485 chr_delete D2_blue60
486 chr_delete D2_blue61
487 chr_delete new_5
488 chr_delete D2_red62
489 chr_delete D2_tank63
490 chr_delete new_8
491 chr_delete D3_red66
492 chr_delete D3_tank65
493 chr_delete new_1
494 chr_delete new_2
495 chr_delete new_3
496 chr_delete new_4
497 chr_delete new_6
498 chr_delete new_7
499 ai2_spawn F_friend
500 ai2_spawn F_blue73
501 ai2_spawn F_blue1
502
503}
504
505func void tv08(string ai_name)
506{
507 dprint tv08_chamber_four
508 ai2_spawn end01
509 ai2_spawn end02
510 ai2_spawn end03
511 sleep 60
512 ai2_dopath F_tank70 patrol_5004
513 ai2_setjobstate F_tank70
514 ai2_dopath F_blue69 patrol_5005
515 ai2_setjobstate F_blue69
516 ai2_dopath F_blue2 patrol_5004
517 ai2_setjobstate F_blue2
518 ai2_dopath F_blue1 patrol_5006
519 ai2_setjobstate F_blue1
520 ai2_dopath F_blue73 patrol_5006
521 ai2_setjobstate F_blue73
522 ai2_attack F_tank70 char_0
523 ai2_attack F_blue69 char_0
524 ai2_attack F_blue2 char_0
525 ai2_attack F_blue1 char_0
526 ai2_attack F_blue73 char_0
527}
528
529func check_death(string ai_name)
530{
531 dprint check_death
532 counter = counter - 1
533 if (counter eq 0)
534 {
535 dprint counterdone
536 sound_music_volume mus_fiteb 0 3
537 music_stop
538 sleep 120
539 you_win
540 }
541}
542
543func void tv09(string ai_name)
544{
545 dprint tv09_chamber_one
546
547}
548
549func void tv10(string ai_name)
550{
551 dprint tv10_chamber_two
552 ai2_spawn F_blue69
553 ai2_spawn F_blue2
554}
555
556func void spawn2tube(string ai_name)
557{
558 dprint spawn2tube
559 ai2_spawn D2_tank63
560 ai2_spawn new_8
561 ai2_spawn sci_maniac
562}
563
564func void tv11(string ai_name)
565{
566 dprint tv11_chamber_three
567 ai2_spawn F_tank70
568
569}
570
571func void tv25(string ai_name)
572{
573 dprint tv25
574# ai2_spawn D1_blue50
575 ai2_spawn D1_red30
576 ai2_spawn D1_neut02
577 ai2_spawn D2_blue60
578 ai2_spawn D1_neut10
579 ai2_spawn new_5
580 ai2_spawn D2_blue61
581}
582
583func void change_patrol(string ai_name)
584{
585 dprint change_patrol
586 ai2_dopath A1_s_red02 patrol_45
587 ai2_setjobstate A1_s_red02
588}
589
590func void spawn_sniper1(string ai_name)
591{
592 dprint spawn_sniper1
593 ai2_spawn sniper1
594 ai2_makeignoreplayer sniper1 1
595 playback_block sniper1 sniper1_jump
596 ai2_makeignoreplayer sniper1 0
597 ai2_dopath sniper1 patrol_52
598 ai2_setjobstate sniper1
599 sleep 600
600 hurt_sniper1
601}
602
603func void hurt_sniper1(string ai_name)
604{
605 dprint hurt_sniper1
606 ai2_makeignoreplayer sniper1 1
607 ai2_dopath sniper1 patrol_53
608 ai2_setjobstate sniper1
609}
610
611func void tv33(string ai_name)
612{
613 dprint neutral_leaves
614 ai2_makeignoreplayer A2_s_red04 1
615 ai2_dopath A2_s_red04 patrol_54
616 ai2_setjobstate A2_s_red04
617}
618
619func void tv34(string ai_name)
620{
621 dprint spawnneutral
622 ai2_spawn A2_s_red04
623}
624
625func void t36(string ai_name)
626{
627 dprint t36
628 ai2_spawn sbg_1
629 ai2_spawn sbg_2
630 ai2_spawn sbg_3
631}
632
633func void t37(string ai_name)
634{
635 dprint t37
636 ai2_spawn new_1
637 ai2_spawn new_2
638}
639
640func void t38(string ai_name)
641{
642 dprint t38
643 ai2_spawn new_3
644 ai2_spawn new_4
645}
646
647func void t39(string ai_name)
648{
649 dprint t39
650 trigvolume_enable trigger_volume_40 1
651}
652
653func void t40(string ai_name)
654{
655 dprint t40
656 ai2_spawn new_6
657 ai2_spawn new_7
658}
659
660###################
661# save game #
662###################
663
664func void s1(string ai_name)
665{
666 dprint SAVEDGAME1
667
668 if (my_save_point ne 1)
669 {
670 save_game 1 autosave
671 }
672}
673
674func void s2(string ai_name)
675{
676 dprint SAVEDGAME2
677
678 if (my_save_point ne 2)
679 {
680 save_game 2 autosave
681 }
682}
683
684func void s3(string ai_name)
685{
686 dprint SAVEDGAME3
687
688 if (my_save_point ne 3)
689 {
690 save_game 3 autosave
691 }
692}
693
694
695func void s4(string ai_name)
696{
697 dprint SAVEDGAME4
698
699 if (my_save_point ne 4)
700 {
701 save_game 4 autosave
702 }
703}
704
705func void s5(string ai_name)
706{
707 dprint SAVEDGAME5
708
709 if (my_save_point ne 5)
710 {
711 save_game 5 autosave
712 }
713}
714###################
715# console #
716###################
717
718func void console_pipe(void)
719{
720 text_console level_9d
721 console_reset 13
722}
723
724func void text9a(void)
725{
726 dprint level_9a
727 text_console level_9a
728 console_reset 2
729}
730
731func void text9b(void)
732{
733 dprint level_9b
734 text_console level_9b
735 console_reset 5
736}
737
738func void text9c(void)
739{
740 dprint level_9c
741 text_console level_9c
742 console_reset 14
743}
744
745func void patrolscript0031(string ai_name)
746{
747 dprint sayline
748 sound_dialog_play c18_70_04striker
749 sound_dialog_play_block
750}
Note: See TracBrowser for help on using the repository browser.