source: AE/packages/VanillaBSL/IGMD/power/power_spawn.bsl @ 313

Last change on this file since 313 was 313, checked in by gumby, 12 years ago
File size: 12.8 KB
Line 
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.