ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/nikanabo/current/bsl/onilight/IGMD/lab/lab.bsl
Revision: 185
Committed: Mon May 21 18:48:22 2007 UTC (18 years, 4 months ago) by geyser
File size: 13171 byte(s)
Log Message:

File Contents

# Content
1 #################
2 ### VARIABLES ###
3 #################
4
5 var int var_counter = 0;
6
7 ############
8 ### MAIN ###
9 ############
10
11 func void main(void)
12 {
13 gl_fog_red = .30
14 gl_fog_blue = .15
15 gl_fog_green = .17
16 gl_fog_start = .995
17 gs_farclipplane_set 5000
18 ui_suppress_prompt = 1
19 chr_auto_aim_dist = 0
20 start
21 }
22
23 #############
24 ### START ###
25 #############
26
27 func void start(string ai_name)
28 {
29 if(save_point eq 0) save_point = 1
30 if(save_point eq 1) fork intro
31 if (save_point eq 2) restore_game
32 if (save_point eq 3) restore_game
33 sleep 5
34 fork sp_all
35 }
36
37 func void deactivate_stuff(void)
38 {
39 #not used
40 trigvolume_enable floor1 0
41 trigvolume_enable save_1_trig 0
42 trigvolume_enable save_3_trig 0
43 trigvolume_enable sapperdamageon 0
44 trigvolume_enable trigger_volume_36 0
45 trigvolume_enable trigger_volume_36_copy 0
46 trigvolume_enable trigger_volume_36_copy_copy 0
47 #used
48 trigvolume_enable outro_volume_1 0
49 trigvolume_enable attack_trigger 0
50 trigvolume_enable final_ambush 0
51 env_show 776 0
52 env_show 777 0
53 obj_create 2 7
54 }
55
56 func void you_lose(string ai_name)
57 {
58 fade_out 0 0 0 30
59 sleep 30
60 lose
61 }
62
63 ####################################
64 ### SEVERAL TIMES USED FUNCTIONS ###
65 ####################################
66
67 func void sp_all(void)
68 {
69 co_message_display = 0
70 if(save_point eq 1) save_game 1 autosave
71 if(save_point eq 2) save_game 2 autosave
72 if(save_point eq 3) save_game 3 autosave
73 sleep 180
74 co_message_display = 1
75 }
76
77 func void remove_ai(void)
78 {
79 ai2_kill
80 sleep 60
81 powerup_reset
82 weapon_reset
83 sleep 240
84 corpse_reset
85 }
86
87 func void music_stop(void)
88 {
89 sound_music_stop mus_main01_hd
90 sound_music_stop mus_main03
91 }
92
93 ##########
94 ### SP1 ###
95 ##########
96
97 func void intro(void)
98 {
99 ai2_spawn Barabus
100 ai2_attack Barabus konoko
101 playback 0 IntroKonoko01
102 chr_inv_reset 0
103 env_show 8 1
104 env_show 9 1
105 env_show 10 1
106 objective_set 1 silent
107 sleep 1
108 sound_music_start mus_main01_hd 0.8
109 }
110
111 #tv31 - at the place, where Konoko gets off the bike (inside func: save_game_1); I've disabled it
112
113 #lose func of Barabus
114 func void rocket(void)
115 {
116 music_stop
117 chr_animate Barabus STRIKEknockdown1
118 fade_out 0 0 0 30
119 sleep 30
120 chr_animate_block Barabus BARABlev3_rocket
121 chr_envanim Barabus RocketBox01
122 sound_ambient_start c01_00_02barjet
123 particle lock99_locklight01 do start
124 door_unlock 43
125 objective_set 2 silent
126 target_set 143 30
127 fade_in 30
128 sleep 360
129 chr_delete Barabus
130 sleep 600
131 sound_dialog_play c00_01_98shinatama
132 }
133
134 #tv22 - if you look to the gate, on the left, around the place where you find the plasma gun
135 func void spawn_right_patrol(string ai_name)
136 {
137 ai2_spawn right_patrol_striker_1
138 }
139
140 #tv23 - between the last pillar and the 5 glass doors
141 func void spawn_back_patrol(string ai_name)
142 {
143 ai2_spawn back_patrol_striker_1
144 ai2_spawn back_patrol_striker_2
145 }
146
147 #tv21 - if you look to the gate, on the right, nearly at the end of the way
148 func void spawn_left_patrol(string ai_name)
149 {
150 ai2_spawn left_patrol_striker_1
151 }
152
153 #tv8 - in front of door 43 (func: spawn_floor1_guards); I've disabled it
154
155 ##########
156 ### SP2 ###
157 ##########
158
159 ### GROUND FLOOR ###
160
161 #tv33 - after door 43
162 func void turnoffcompass(string ai_name)
163 {
164 if(save_point ne 2)
165 {
166 save_game 2 autosave
167 target_set 143 0
168 }
169 ai2_spawn Floor1_Striker_1
170 ai2_spawn Floor1_Striker_2
171 ai2_spawn Floor1_Sci_1
172 ai2_spawn Floor1_Sci_2
173 ai2_spawn Floor1_Sci_3
174 ai2_spawn Floor1_Sci_4
175 objective_set 3 silent
176 tr_write_animation KONCOMpunch_heavy tramph.txt
177 }
178
179 #tv35 - complete room with console 2 (no funcs); I've disabled it
180
181 #console 2
182 func void unlock_floor1_doors(string ai_name)
183 {
184 particle lock1_locklight01 do start
185 particle lock4a_locklight01 do start
186 door_unlock 3
187 door_unlock 8
188 door_unlock 11
189 door_unlock 14
190 door_unlock 17
191 door_unlock 20
192 door_unlock 23
193 door_unlock 26
194 check_doors
195 }
196
197 #tv3 - long box in some distance after door 3, door 14, door 20 and door 26
198 func void spawn_floor1_striker_11(string ai_name)
199 {
200 ai2_spawn Floor1_Striker_11
201 ai2_spawn Floor1_Striker_12
202 }
203
204 #tv4 - long box in some distance after door 8, door 11, door 17 and door 23
205 func void spawn_floor1_striker_10(string ai_name)
206 {
207 ai2_spawn Floor1_Striker_10
208 ai2_spawn Floor1_Striker_12
209 }
210
211 #tv1 - in front of the stairs
212 func void spawn_floor2_guards(string ai_name)
213 {
214 ai2_spawn Floor2_Striker_2
215 ai2_spawn Floor2_Striker_3
216 ai2_spawn Floor2_Striker_4
217 sleep 15
218 ai2_spawn Floor2_Striker_1
219 ai2_doalarm Floor2_Striker_1 3
220 sleep 15
221 ai2_spawn Floor2_Sci_1
222 ai2_spawn Floor2_Sci_2
223 ai2_spawn Floor2_Sci_3
224 ai2_spawn Floor2_Sci_4
225 ai2_spawn Floor2_Sci_5
226 }
227
228 #tv10 - on the platform between the ground floor and the first floor
229 func void set_target_4(string chr_index)
230 {
231 sound_dialog_play c00_01_26shinatama
232 target_set 253 30
233 }
234
235 ### FIRST FLOOR ###
236
237 #tv36 - complete room with console 3 (no funcs); I've disabled it
238
239 #console 3
240 func void unlock_floor2_doors(void)
241 {
242 trigvolume_enable attack_trigger 1
243 particle lock2_locklight01 do start
244 particle lock4b_locklight01 do start
245 door_unlock 2
246 door_unlock 9
247 door_unlock 12
248 door_unlock 15
249 door_unlock 18
250 door_unlock 21
251 door_unlock 24
252 door_unlock 27
253 check_doors
254 sleep 60
255 ai2_dopath Floor2_Striker_1 Floor2_Stk_1
256 ai2_setjobstate Floor2_Striker_1
257 }
258
259 #tv24 - after door 6; outside of the room with console 3 (tv name: attack_trigger)
260 func void commence_attack(string ai_name)
261 {
262 ai2_setalert Floor2_Striker_2 high
263 ai2_setalert Floor2_Striker_3 high
264 ai2_setalert Floor2_Striker_4 high
265 ai2_dopath Floor2_Striker_1 Floor2_Stk_1
266 ai2_dopath Floor2_Striker_2 scram_path
267 ai2_dopath Floor2_Striker_3 attack_path_1
268 ai2_dopath Floor2_Striker_4 attack_path_2
269 ai2_setjobstate Floor2_Striker_1
270 ai2_setjobstate Floor2_Striker_2
271 ai2_setjobstate Floor2_Striker_3
272 ai2_setjobstate Floor2_Striker_4
273 ai2_attack Floor2_Striker_4 Floor2_Sci_4
274 ai2_attack Floor2_Striker_3 Floor2_Sci_1
275 }
276
277 #lose func of Floor2_Sci_4
278 func void death_sentence_1(string ai_name)
279 {
280 ai2_attack Floor2_Striker_4 Floor2_Sci_5
281 }
282
283 #lose func of Floor2_Sci_1
284 func void death_sentence_2(string ai_name)
285 {
286 ai2_attack Floor2_Striker_3 Floor2_Sci_2
287 }
288
289 #lose func of Floor2_Sci_2
290 func void death_sentence_3(string ai_name)
291 {
292 ai2_attack Floor2_Striker_3 Floor2_Sci_3
293 }
294
295 #tv2 - in front of the stairs
296 func void spawn_floor3_guards(string ai_name)
297 {
298 ai2_spawn Floor3_Striker_1
299 ai2_spawn Floor3_Striker_2
300 ai2_spawn Floor3_Striker_3
301 ai2_spawn Floor3_Comguy_1
302 }
303
304 #tv11 - on the platform between the first and the second floor
305 func void set_target_5(string chr_index)
306 {
307 sound_dialog_play c00_01_28shinatama
308 target_set 254 30
309 }
310
311 ### SECOND FLOOR ###
312
313 #tv37 - complete room with console 4 (no funcs); I've disabled it
314
315 #console 4
316 func void unlock_floor3_doors(string ai_name)
317 {
318 particle lock3_locklight01 do start
319 particle lock4c_locklight01 do start
320 door_unlock 1
321 door_unlock 10
322 door_unlock 13
323 door_unlock 16
324 door_unlock 19
325 door_unlock 22
326 door_unlock 25
327 door_unlock 28
328 check_doors
329 }
330
331 ### ROOF ###
332
333 #tv12 - in front of door 4
334 func void set_objective_4(string chr_index)
335 {
336 sound_dialog_play c00_01_19shinatama
337 objective_set 4 silent
338 target_set 110 30
339 }
340
341 #tv30 - in some distance after the ramp to the lower roof; box from left to right
342 func void roof_surprise(string ai_name)
343 {
344 ai2_dopath Roof_Striker_3 Roof_Striker_3b
345 ai2_setjobstate Roof_Striker_3
346 }
347
348 #tv5 - after door 39
349 func void spawn_tower_guards(string ai_name)
350 {
351 ai2_spawn Tower_Striker_1
352 ai2_spawn Tower_Striker_2
353 }
354
355 #tv18 - after door 41; on the right side
356 func void tower_lock_1(string chr_index)
357 {
358 ai2_spawn Tower_MB_1
359 particle sapper do start
360 music_stop
361 }
362
363 #tv17 - right next to the furniture in the middle of the tower; from left to right (entry func: sapper_damage_on); I've disabled it
364
365 #lose func of Tower_MB_1
366 func void bomber(void)
367 {
368 fade_out 0 0 0 30
369 sleep 30
370 chr_delete Tower_MB_1
371 fork remove_ai
372 particle sapper do stop
373 chr_teleport 0 99
374 chr_facetoflag 0 90
375 fade_in 30
376 }
377
378 ##########
379 ### SP3 ###
380 ##########
381
382 ### LOBBY - GROUND FLOOR ###
383
384 #tv9 - in front of door 35; in the elevator shaft
385 func void spawn_lobby_tctf(string ai_name)
386 {
387 if(save_point ne 3)
388 {
389 sleep 30
390 save_game 3 autosave
391 }
392 env_show 540 0
393 env_show 777 1
394 env_show 778 0
395 ai2_spawn Lobby_TCL_1
396 ai2_spawn Lobby_TCL_2
397 ai2_spawn Lobby_TCS_1
398 objective_set 5 silent
399 target_set 142 30
400 }
401
402 #tv34 - after door 35 (inside func: save_game_3); I've disabled it
403
404 #tv13 - big box from door 59 and door 60 to the opposite wall; includes console 1
405 func void spawn_lobby_synd(string ai_name)
406 {
407 ai2_spawn Lobby_Striker_1
408 ai2_spawn Lobby_Striker_2
409 ai2_spawn Lobby_Striker_3
410 ai2_spawn Lobby_Striker_4
411 }
412
413 #hit func of Lobby_TCL_1
414 func void Lobby_Hurt_TCL_1(string ai_name)
415 {
416 ai2_dopath Lobby_TCL_1 Lobby_Hurt_TCL_1
417 }
418
419 #hit func of Lobby_TCL_2
420 func void Lobby_Hurt_TCL_2(string ai_name)
421 {
422 sleep 120
423 ai2_dopath Lobby_TCL_2 Lobby_Hurt_TCL_2
424 }
425
426 #tv32 - at the end of the stairs to the lower floor with console 11; big box from left to right
427 func void backdoor(string ai_name)
428 {
429 ai2_spawn backdoor_striker_1
430 ai2_spawn backdoor_striker_3
431 }
432
433 #console 11
434 func void passage_1(string ai_name)
435 {
436 particle lock69a_locklight01 do start
437 check_doors
438 }
439
440 ### LOBBY - FIRST FLOOR ###
441
442 #tv28 - long box; starts in some after door 53 and ends in front of console 9
443 func void spawn_lively_2(string ai_name)
444 {
445 ai2_spawn lively_striker_2
446 }
447
448 #console 9
449 func void passage_2(string ai_name)
450 {
451 particle lock69b_locklight01 do start
452 check_doors
453 }
454
455 #tv26 - in some distance after door 37
456 func void spawn_opposite_striker_1(string ai_name)
457 {
458 ai2_spawn opposite_striker_1
459 }
460
461 #tv27 - in some distance after door 31
462 func void spawn_opposite_striker_2(string ai_name)
463 {
464 ai2_spawn opposite_striker_2
465 }
466
467 ### LOBBY - SECOND FLOOR ###
468
469 #tv25 - around the green energy clip; in the room with door 46
470 func void spawn_lively_1(string ai_name)
471 {
472 ai2_spawn lively_striker_1
473 }
474
475 #tv29 - at the end of the room with door 29; from left to right; includes the hypo
476 func void spawn_lively_3(string ai_name)
477 {
478 ai2_spawn lively_striker_3
479 ai2_spawn lively_striker_4
480 }
481
482 #console 8
483 func void passage_3(string ai_name)
484 {
485 particle lock69c_locklight01 do start
486 check_doors
487 }
488
489 func void check_doors(void)
490 {
491 var_counter = var_counter + 1
492 if(var_counter eq 3)
493 {
494 if(save_point eq 2)
495 {
496 door_unlock 4
497 ai2_spawn Roof_Striker_1
498 ai2_spawn Roof_Striker_2
499 ai2_spawn Roof_Striker_3
500 sound_music_start mus_main03
501 }
502 if(save_point eq 3)
503 {
504 door_unlock 48
505 sound_music_start mus_main03 1.0
506 }
507 var_counter = 0
508 }
509 }
510
511 #tv20 - in front of door 48
512 func void miseenscene_start(string ai_name)
513 {
514 particle scene create
515 ai2_spawn scene_thug_1
516 ai2_spawn scene_thug_2
517 }
518
519 #tv6 - in the middle between door 48 and door 55
520 func void spawn_vats(string ai_name)
521 {
522 ai2_spawn Vat_Striker_1
523 ai2_spawn Vat_Striker_2
524 ai2_spawn Vat_Striker_3
525 ai2_spawn Vat_Striker_4
526 ai2_spawn Vat_Striker_5
527 }
528
529 #console 10 (text console)
530 func void day_264(string ai_name)
531 {
532 ai2_idle scene_thug_1
533 ai2_movetoflag scene_thug_1 7010
534 ai2_setmovementmode scene_thug_1 run
535 sleep 300
536 particle day264 create
537 particle dayafter create
538 particle dayafter do start
539 chr_animate scene_thug_1 STRIKEknockdown3
540 ai2_dopath scene_thug_1 scene_flee_1
541 ai2_dopath scene_thug_2 scene_flee_2
542 sleep 300
543 ai2_spawn arcy
544 sleep 1000
545 chr_delete scene_thug_1
546 chr_delete scene_thug_2
547 sleep 500
548 chr_delete arcy
549 }
550
551 #tv19 - in front of door 55
552 func void set_objective_6(string chr_index)
553 {
554 sound_dialog_play c00_01_22shinatama
555 objective_set 6 silent
556 target_set 256 30
557 }
558
559 ### HALL ###
560
561 #tv16 - the complete acid volume
562 func void fallinthevat(string character)
563 {
564 if(chr_is_player(character) eq 1)
565 {
566 cm_detach
567 chr_animate 0 KONOKOacid
568 sleep 10
569 sound_impulse_play konoko_gruesome_death
570 chr_set_health 0 0
571 }
572 else
573 {
574 chr_animate(character, KONOKOacid);
575 sleep 10
576 chr_set_health(character, 0);
577 }
578 }
579
580 #console 5
581 func void unlock_end_door(string ai_name)
582 {
583 trigvolume_enable final_ambush 1
584 particle lockend_locklight02 do start
585 door_unlock 56
586 target_set 52 30
587 ai2_spawn Vat_MB_1
588 }
589
590 #tv7 - in some distance in front three pillars; from left to right
591 func void final_ambush(string ai_name)
592 {
593 ai2_spawn Ambush_Striker_1
594 ai2_spawn Ambush_Striker_2
595 }
596
597 #hit func of Ambush_Striker_1
598 func void gethelp(string ai_name)
599 {
600 trigvolume_enable outro_volume_1 1
601 particle lock177_locklight01 do start
602 door_unlock 49
603 door_unlock 50
604 ai2_attack Ambush_Striker_2 Konoko
605 music_stop
606 }
607
608 #tv14 - after door 50
609 #tv15 - after door 49
610 func void outro(void)
611 {
612 fade_out 0 0 0 30
613 sleep 30
614 win
615 }
616
617 #####################
618 ### TEXT CONSOLES ###
619 #####################
620
621 func void level3a(string chr_index)
622 {
623 text_console level_3a
624 console_reset 7
625 }
626
627 func void level3b(string chr_index)
628 {
629 text_console level_3b
630 console_reset 6
631 }
632
633 func void level3c(string chr_index)
634 {
635 text_console level_3c
636 console_reset 1
637 }
638
639 func void level3d(string chr_index)
640 {
641 text_console level_3d
642 day_264
643 }