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

File Contents

# Content
1 func void cheater(void)
2 {
3 invincible=1
4 omnipotent=1
5 lock_keys keys_all
6 chr_teleport 0 7023
7 }
8 ###################################
9 # variables used in train2 scipts #
10 ###################################
11
12 #used to see if PPK combo was successful
13 var int combo_did;
14
15 #used to determine when to activate or deactivate blocking drone, current script comments out the usefulness of this variable
16 var int count_block;
17
18 #determines if reload in ballistics or cell
19 var int reload=0;
20
21 #makes sure reloading cells doesn't play before player has even picked up the rifle
22 var int droid_active;
23
24 #sees if you already reloaded ballistics ammo before the system had a chance to prompt you to do so
25 var int already_reloaded;
26
27 #sees if you already reloaded cell ammo before system prompted you to do so.
28 var int already_reloaded2;
29
30 #counts number of reload prompts necessary, if you reloaded more than one time, you lose rating points
31 var int had_to_reload;
32
33 #determines when inside the target shooting function
34 var int inside_target_function;
35
36 #determines when inside ammo reload function
37 var int inside_ammo_function = 0;
38
39 #determines when not to display block droid message
40 var int block_off;
41
42 ################################
43 # fight training scripts below #
44 ################################
45
46 #########################
47 # punch and kick script #
48 #########################
49 func void train_fighting(string ai_name)
50 {
51 how_far_along = 4;
52 music_stop
53 particle obj3 kill
54 particle obj4 kill
55 trig_deactivate 1
56 trig_deactivate 2
57 trig_deactivate 3
58 message_remove c01_50_23
59 message_remove jump_encourage
60 message_remove jump_encourage2
61 sleep 60
62 sound_dialog_play_interrupt c00_01_64shinatama
63 message_remove
64 message begin_fight 240
65 sleep 240
66 # PUNCH-KICK
67 lock_keys keys_attack
68 message xpunch
69 chr_wait_animtype 0 punch
70 sleep 60
71 message_remove xpunch
72 sleep 60
73 message xkick
74 chr_wait_animtype 0 kick
75 sleep 60
76 message_remove xkick
77 sleep 60
78
79 if (how_far_along eq 4)
80 {
81 #throw two punches
82 sound_dialog_play_block c00_01_65shinatama
83 message punch
84 chr_wait_animtype 0 punch2
85 message_remove punch
86 sleep 60
87 message c01_50_27 180
88 sound_dialog_play_interrupt c00_01_66shinatama
89 sound_dialog_play_block pause
90 sleep 40
91 }
92
93 if (how_far_along eq 4)
94 {
95 # more combo
96 sound_dialog_play_block c00_01_67shinatama
97 sound_dialog_play_block pause
98 sleep 60
99 }
100
101 if (how_far_along eq 4)
102 {
103 # FIRST COMBO
104 message c01_50_29
105 fork combo_wait
106 chr_wait_animtype 0 ppk
107 combo_did = 1;
108 sleep 60
109 message_remove c01_50_29
110 message_remove c01_50_29b
111 sleep 60
112 sound_dialog_play_interrupt c00_01_07shinatama
113 message xppk 180
114 sleep 180
115 }
116 if(combo_did eq 1)
117 {
118 if (how_far_along eq 4)
119 {
120 # try linking for more combos
121 sound_dialog_play_block c00_01_69shinatama
122 sound_dialog_play_block pause
123 sleep 240
124 }
125
126 if (how_far_along eq 4)
127 {
128 # you're now ready to train with a sparring partner
129 sound_dialog_play_block c00_01_70shinatama
130 sound_dialog_play_block pause
131 sleep 30
132 }
133 if (how_far_along eq 4)
134 {
135 # proceed to the next room
136 sound_dialog_play_block c00_01_71shinatama
137 message xspar2
138 ai2_spawn dum_hit_flash
139 chr_lock_active dum_hit_flash
140 chr_death_lock dum_hit_flash 1
141 door_unlock 99
142 particle door2_locklight02 do start
143 }
144 }
145 }
146
147 func void combo_wait(string ai_name)
148 {
149 sleep 600
150 if (combo_did eq 0)
151 {
152 dprint rating
153 rating = rating + 1
154 rating
155 message_remove c01_50_29
156 sound_dialog_play_block c00_01_68shinatama
157 sleep 60
158 }
159 if (combo_did eq 0)
160 {
161 message c01_50_29b 240
162 sleep 240
163 }
164 if (combo_did eq 0)
165 {
166 message c01_50_29
167 }
168
169 # if(combo_did eq 0)
170 # {
171 # if (how_far_along eq 4)
172 # {
173 # try linking for more combos
174 # sound_dialog_play_block c00_01_69shinatama
175 # sound_dialog_play_block pause
176 # sleep 240
177 # }
178 #
179 # if (how_far_along eq 4)
180 # {
181 # you're now ready to train with a sparring partner
182 # sound_dialog_play_block c00_01_70shinatama
183 # sound_dialog_play_block pause
184 # sleep 30
185 # }
186 # if (how_far_along eq 4)
187 # {
188 # proceed to the next room
189 # sound_dialog_play_block c00_01_71shinatama
190 # message xspar2
191 # ai2_spawn dum_hit_flash
192 # chr_lock_active dum_hit_flash
193 # chr_death_lock dum_hit_flash 1
194 # door_unlock 99
195 # particle door2_locklight02 do start
196 # }
197 # }
198 }
199
200 ##################################
201 # train player about hit flashes #
202 ##################################
203 func void train_hit_flash(string ai_name)
204 {
205 particle steam stop
206 music_train2
207 how_far_along = 6;
208 message_remove xspar2
209 sleep 60
210 # try hitting this dummy
211 sound_dialog_play_block c00_01_77shinatama
212 message start_hit
213 ai2_makeignoreplayer dum_hit_flash 1
214 }
215
216 func void hurt_dummy1(string ai_name)
217 {
218 message_remove start_hit
219 sleep 60
220 door_lock 99
221 particle door2_locklight02 do stop
222 # dynamic hit flashes
223 message c01_50_35 300
224 sleep 240
225 ai2_dopath dum_hit_flash patrol_dum_hit_flash
226 ai2_setjobstate dum_hit_flash
227 sleep 60
228 # more dynamic hit flashes blue
229 message blueflash 300
230 sleep 240
231 ai2_dopath dum_hit_flash patrol_dum_hit_flash
232 ai2_setjobstate dum_hit_flash
233 sleep 60
234 message c01_50_37 300
235 sleep 240
236 ai2_dopath dum_hit_flash patrol_dum_hit_flash
237 ai2_setjobstate dum_hit_flash
238 sleep 60
239 # more dynamic hit flashes
240 message c01_50_38 300
241 sleep 240
242 ai2_dopath dum_hit_flash patrol_dum_hit_flash
243 ai2_setjobstate dum_hit_flash
244 # move on to the next room to learn how to perform the most dangerous attacks.
245 sleep 60
246 sound_dialog_play_block c00_01_78shinatama
247 message goto_throw
248 sleep 60
249 door_unlock 100
250 particle door3_locklight02 do start
251 ai2_spawn dum_train_throw
252 chr_lock_active dum_train_throw
253 chr_death_lock dum_train_throw 1
254 ai2_makeignoreplayer dum_train_throw 1
255 }
256
257 ###################################
258 # train player to throw opponents #
259 ###################################
260 func void lockthrow(void)
261 {
262 door_lock 100
263 particle door3_locklight02 do stop
264 }
265
266 func void train_throw(string ai_name)
267 {
268 how_far_along = 7;
269 message_remove goto_throw
270 sleep 60
271 if (how_far_along eq 7)
272 {
273 # FIRST THROW
274 sound_dialog_play_block c00_01_79shinatama
275 message c01_50_41
276 chr_wait_animtype 0 throw_forward_punch throw_forward_kick run_throw_forward_punch run_throw_forward_kick
277 message_remove c01_50_41
278 sleep 60
279 }
280
281 if (how_far_along eq 7)
282 {
283 # more throws
284 sound_dialog_play_block c00_01_80shinatama
285 ai2_dopath dum_train_throw patrol_train_throw2
286 ai2_setjobstate dum_train_throw
287 sleep 180
288 ai2_dopath dum_train_throw patrol_train_throw2
289 ai2_setjobstate dum_train_throw
290 sleep 180
291 message xthrow1 360
292 ai2_dopath dum_train_throw patrol_train_throw2
293 ai2_setjobstate dum_train_throw
294 sleep 180
295 ai2_dopath dum_train_throw patrol_train_throw2
296 ai2_setjobstate dum_train_throw
297 sleep 180
298 ai2_dopath dum_train_throw patrol_train_throw2
299 ai2_setjobstate dum_train_throw
300 sleep 180
301 message xthrow2 360
302 ai2_dopath dum_train_throw patrol_train_throw2
303 ai2_setjobstate dum_train_throw
304 sleep 180
305 ai2_dopath dum_train_throw patrol_train_throw2
306 ai2_setjobstate dum_train_throw
307 sleep 180
308 ai2_dopath dum_train_throw patrol_train_throw2
309 ai2_setjobstate dum_train_throw
310 sleep 180
311 ai2_dopath dum_train_throw patrol_train_throw2
312 ai2_setjobstate dum_train_throw
313 }
314
315 if (how_far_along eq 7)
316 {
317 # Proceed to the next room and try blocking the training dummy'sleep 240 attacks.
318 message goto_block
319 sleep 60
320 door_unlock 101
321 particle door4_locklight02 do start
322 particle door4b_locklight02 do start
323 ai2_spawn dum_train_block
324 ai2_makeignoreplayer dum_train_block 1
325 chr_invincible char_0 1
326 }
327
328 }
329
330 ###############################
331 # train player to block blows #
332 ###############################
333 func void train_block(string ai_name)
334 {
335 #introduce blocking
336 how_far_along = 5;
337 message_remove goto_block
338 # dummy attack
339 sound_dialog_play_block c00_01_72shinatama
340 sound_dialog_play_block pause
341 sound_dialog_play_block c00_01_73shinatama
342 if(count_block eq 0)
343 {
344 message c01_50_33
345 }
346 }
347
348 func void train_block2(string ai_name)
349 {
350 ai2_makeignoreplayer dum_train_block 0
351 ai2_dopath dum_train_block patrol_56b
352 ai2_setjobstate dum_train_block
353 message_remove c01_50_33
354 if(count_block eq 0)
355 {
356 count_block = 1
357 door_lock 101
358 door_close 101
359 particle door4_locklight02 do stop
360 chr_delete dum_train_throw
361 chr_delete dum_hit_flash
362 chr_delete demo1
363 chr_delete demo2
364 chr_delete demo3
365 if (how_far_along eq 5)
366 {
367 # more blocking
368 sleep 60
369 message c01_50_32 300
370 sound_dialog_play_block c00_01_74shinatama
371 sound_dialog_play_pause
372 sleep 30
373 sound_dialog_play_block c00_01_75shinatama
374 message xblocking2 300
375 sound_dialog_play_pause
376 sleep 30
377 sound_dialog_play_block c00_01_76shinatama
378 }
379 sleep 120
380 # message_remove xdronedeactive
381 ai2_makeignoreplayer dum_train_block 1
382 ai2_dopath dum_train_block patrol_56b
383 ai2_setjobstate dum_train_block
384 sound_dialog_play_block c00_01_83shinatama
385 sound_dialog_play_block pause
386 door_unlock 102
387 particle door5_locklight02 do start
388 message goto_shoot
389 chr_inv_reset 0
390 music_stop
391 sleep 60
392 dprint spawn_shoot
393 ai2_spawn dum_train_shoot
394 ai2_spawn dum_train_shoot2
395 ai2_passive dum_train_shoot 1
396 ai2_passive dum_train_shoot2 1
397 chr_invincible dum_train_shoot 1
398 chr_invincible dum_train_shoot2 1
399 chr_invincible char_0 0
400 console_deactivate 12
401 trigvolume_enable tv75 0
402 trigvolume_enable tv74 0
403 }
404 }
405
406 func void disable_tv46(void)
407 {
408 message_remove c01_50_33
409 trigvolume_enable trigger_volume_46 0
410 }
411
412 ##################################
413 # put drones back on their spots #
414 ##################################
415 func void flash_path(string ai_name)
416 {
417 sleep 90
418 ai2_dopath dum_hit_flash patrol_dum_hit_flash
419 }
420
421 func void throw_path(string ai_name)
422 {
423 sleep 90
424 ai2_dopath dum_train_throw patrol_train_throw2
425 }
426
427 func void block_path(string ai_name)
428 {
429 if(block_off eq 0)
430 {
431 block_off = 1;
432 message xdronedeactive 180
433 }
434 ai2_makeignoreplayer dum_train_block 1
435 ai2_dopath dum_train_block patrol_56
436 sleep 180
437 block_off = 0;
438 }
439
440 func void block_path2(string ai_name)
441 {
442
443 ai2_makeignoreplayer dum_train_block 1
444 ai2_dopath dum_train_block patrol_56
445 }
446 ######################################################
447 # regenerate first two training dummies as necessary #
448 ######################################################
449
450 func void regen1(string ai_name)
451 {
452 dprint regen1
453 message_remove blueflash
454 message_remove c01_50_37
455 message_remove c01_50_38
456 sleep 60
457 message xregen1 180
458 sleep 180
459 chr_set_health dum_hit_flash 50
460 ai2_dopath dum_hit_flash patrol_dum_hit_flash
461 ai2_setjobstate dum_hit_flash
462 }
463
464 func void regen2(string ai_name)
465 {
466 dprint regen2
467 sleep 60
468 message xregen1 180
469 sleep 180
470 chr_set_health dum_train_throw 50
471 ai2_dopath dum_hit_flash patrol_train_throw2
472 ai2_setjobstate dum_train_throw
473 }
474
475 #########################
476 # train player to shoot #
477 #########################
478 func void train_shoot(string ai_name)
479 {
480 # message_remove xdroneactive
481 message_remove xdronedeactive
482 particle g_tap1 create
483 sleep 7
484 weapon_spawn w1_tap 7042
485 wp_disable_fade=1
486 how_far_along = 8;
487 message_remove goto_shoot
488 sleep 60
489 ai2_dopath dum_train_throw patrol_train_throw
490 ai2_setjobstate dum_train_throw
491
492 if (how_far_along eq 8)
493 {
494 lock_keys keys_inventory
495 lock_keys keys_reload
496 # approach weapons
497 sound_dialog_play_block c00_01_84shinatama
498 sound_dialog_play_pause
499 chr_wait_animtype char_0 Pickup_Pistol Pickup_Pistol_Mid
500 door_lock 102
501 particle door5_locklight02 do stop
502 trigvolume_enable tv75 1
503 trigvolume_enable tv74 1
504 ui_show_element left 1
505 sleep 60
506 message c01_50_54
507 # hit targets
508 sound_dialog_play_block c00_01_85shinatama
509 chr_wait_animtype char_0 Autopistol_Recoil
510 sleep 120
511 message_remove c01_50_54
512 sleep 60
513 message c01_50_53 300
514 sleep 300
515 }
516 }
517
518 func void enter_ammo_function(void)
519 {
520 dprint enter_ammo_function
521 inside_ammo_function = 1;
522 }
523
524 func void exit_ammo_function(void)
525 {
526 dprint exit_ammo_function
527 inside_ammo_function = 0;
528 }
529
530 func void need_ammo(string ai_name)
531 {
532 trigvolume_enable tv74 0
533
534 sleep 67
535 var int empty_weapon = chr_has_empty_weapon(char_0);
536
537 dprint trying_ammo_function
538
539 if (inside_ammo_function eq 0)
540 {
541 dprint doing_ammo_function
542 enter_ammo_function();
543
544 if(empty_weapon eq 1)
545 {
546 sleep 15
547 if(reload eq 0)
548 {
549 message_remove xkeepshoot
550 already_reloaded = 0;
551 sound_dialog_play_block c00_01_87shinatama
552 message c01_50_61
553 # generate powerup
554 particle g_tap1 create
555 sleep 7
556 powerup_spawn ammo 7042
557 particle g_tap2 create
558 sleep 7
559 powerup_spawn ammo 7043
560 chr_wait_animtype char_0 Pickup_Object_Mid Pickup_Object
561 fork remove_reload_message
562 # sleep 60
563 message_remove c01_50_61
564 sleep 90
565 if(already_reloaded eq 0)
566 {
567 message xreload
568 chr_wait_animtype char_0 reload_pistol
569 increase_rating()
570 message_remove xreload
571 sleep 90
572 }
573 message xkeepshoot
574 }
575 if(reload eq 1)
576 {
577 if(droid_active eq 1)
578 {
579 message c01_50_62
580 # generate powerup
581 particle g_phr1 create
582 sleep 7
583 powerup_spawn cell 7044
584 particle g_phr2 create
585 sleep 7
586 powerup_spawn cell 7045
587 chr_wait_animtype char_0 Pickup_Object_Mid Pickup_Object
588 # sleep 60
589 message_remove c01_50_62
590 fork remove_reload_message2
591 if(already_reloaded2 eq 0)
592 {
593 sleep 90
594 message xreload
595 chr_wait_animtype char_0 reload_rifle
596 dprint rating
597 increase_rating()
598 message_remove xreload
599 }
600 }
601 }
602 }
603
604 exit_ammo_function();
605 }
606
607 sleep 60
608 trigvolume_enable tv74 1
609 }
610
611 func void increase_rating(void)
612 {
613 dprint rating
614 if(had_to_reload ne 0)
615 {
616
617 rating = rating + 1;
618 }
619 had_to_reload = had_to_reload + 1;
620 }
621
622 func void remove_reload_message(void)
623 {
624 chr_wait_animtype char_0 reload_pistol
625 already_reloaded = 1;
626 }
627
628 func void remove_reload_message2(void)
629 {
630 chr_wait_animtype char_0 reload_rifle
631 already_reloaded2 = 1;
632 }
633
634 func void enter_target_function(void)
635 {
636 dprint enter_target_function
637 inside_target_function = 1;
638 }
639
640 func void exit_target_function(void)
641 {
642 dprint exit_target_function
643 inside_target_function = 0;
644 }
645
646 func void targets_are_gone(void)
647 {
648 reload=1;
649 message_remove xkeepshoot
650 trigvolume_enable tv75 0
651 sleep 7
652 particle g_phr1 create
653 sleep7
654 weapon_spawn w3_phr 7045
655 sound_dialog_play_block c00_01_86shinatama
656 sound_dialog_play_block pause
657 message_remove
658 #plasma, switch weapons
659 sound_dialog_play_block c00_01_88shinatama
660 chr_wait_animtype char_0 Pickup_Rifle Pickup_Rifle_Mid
661 droid_active = 1;
662 sleep 30
663 #activate drone, hit it
664 chr_invincible dum_train_shoot 0
665 ai2_passive dum_train_shoot 0
666 sound_dialog_play_block c00_01_89shinatama
667 ai2_dopath dum_train_shoot patrol_train_shoot
668 ai2_setjobstate dum_train_shoot
669 }
670
671 func void targets_are_not_gone(void)
672 {
673 # CB: turn off the trigger volume and sleep for a second
674 # so as not to cause hideous performance loss
675 trigvolume_enable tv75 0
676 sleep 60
677 trigvolume_enable tv75 1
678 }
679
680 func void targets_gone(string ai_name)
681 {
682 if(inside_target_function eq 0)
683 {
684 enter_target_function()
685
686 var int num_broken = env_broken(3001, 3018);
687
688 if (num_broken eq 18)
689 {
690 targets_are_gone();
691 }
692
693 if (num_broken < 18)
694 {
695 targets_are_not_gone();
696 }
697
698 exit_target_function
699 }
700 }
701
702 func void droid1_gone(string ai_name)
703 {
704 if (how_far_along eq 8)
705 {
706 chr_invincible dum_train_shoot2 0
707 # now side to side
708 sound_dialog_play_block c00_01_90shinatama
709 sound_dialog_play_block pause
710 sleep 30
711 ai2_passive dum_train_shoot2 0
712 ai2_dopath dum_train_shoot2 patrol_train_shoot2
713 ai2_setjobstate dum_train_shoot2
714 }
715 }
716
717 func void droid2_gone(string ai_name)
718 {
719 if (how_far_along eq 8)
720 {
721 reload = 2;
722 droid_active = 0;
723 message_remove
724 cinematic_start (SHINnametag, 180, 180, 15, 1, 20, false)
725 # great, done training
726 chr_changeteam char_0 Syndicate
727 music_train3
728 if(rating eq 0)
729 {
730 message poopy
731
732 }
733 if(rating eq 1)
734 {
735 message poopy2
736
737 }
738 if(rating eq 2)
739 {
740 message poopy3
741
742 }
743 if(rating eq 3)
744 {
745 message poopy4
746
747 }
748 if(rating eq 4)
749 {
750 message poopy5
751
752 }
753 if(rating eq 5)
754 {
755 message poopy6
756
757 }
758 if(rating > 5)
759 {
760 message poopy7
761
762 }
763 sound_dialog_play_block c00_01_91shinatama
764 sound_dialog_play_block pause
765 sleep 40
766 sound_dialog_play_block c00_01_81shinatama
767 sound_dialog_play_block pause
768 message_remove
769 sleep 40
770 sound_dialog_play_block c00_01_82shinatama
771 sound_dialog_play_block pause
772 cinematic_stop (SHINnametag, 15, 20)
773 message xf1 400
774 sleep 400
775 message xlastreview
776 particle obj_lastreview create
777 console_activate 12
778 wp_disable_fade=0
779 }
780 }
781
782 func void lastreview(string ai_name)
783 {
784 music_stop
785 particle obj_lastreview kill
786 message_remove
787 message_remove xlastreview
788 text_console level_1f
789 lock_keys keys_all
790 sleep 60
791 dprint swing
792 swing
793 ui_suppress_prompt=0
794 }
795
796 ######################################
797 # training scripts used in warehouse #
798 ######################################
799 # note: health function 'yhealth' is in the level_script file #
800
801 func void train_fathealth(string ai_name)
802 {
803 chr_wait_animtype char_0 Pickup_Object
804 if(trigvolume_count (80) eq 1)
805 {
806 sleep 90
807 message xtabhypo 300
808 sound_dialog_play_block c00_01_93shinatama
809 sound_dialog_play_block pause
810 sleep 40
811 sound_dialog_play_block c00_01_94shinatama
812 }
813 }
814
815 func void intro_enemies(string ai_name)
816 {
817 dprint intro_enemies
818 how_far_along = 11;
819
820 music_firstfight
821
822 if (how_far_along eq 11)
823 {
824 ai2_spawn Bay2_Thug_1
825 ai2_spawn Bay2_Thug_2
826 }
827
828 if (how_far_along eq 11)
829 {
830 # enemies
831 message c01_50_84 240
832 sleep 360
833 }
834 }
835
836 func void train_alarm(string ai_name)
837 {
838 how_far_along = 13;
839
840 if (how_far_along eq 13)
841 {
842 ai2_spawn Bay4_Comguy_1
843 # alarm
844 sleep 180
845 message c01_50_88 240
846 sleep 240
847 }
848
849 if (how_far_along eq 13)
850 {
851 # alarm
852 message c01_50_89 240
853 sleep 240
854 }
855
856 # if (how_far_along eq 13)
857 # {
858 # alarm
859 # message c01_50_90 240
860 # sleep 240
861 # }
862 }
863
864 func void train_neutral(string ai_name)
865 {
866 how_far_along = 14;
867 target_set(92,15.0)
868 if (how_far_along eq 14)
869 {
870 # neutrals
871 message c01_50_91 240
872 sleep 240
873 sound_dialog_play_block c00_01_97shinatama
874 }
875 }
876
877 func void train_timer(string ai_name)
878 {
879 how_far_along = 15;
880
881 if(how_far_along eq 15)
882 {
883 target_set(96,15.0)
884 timer_start 180 OutroLose
885 sound_dialog_play_block c00_01_95shinatama
886 sleep 180
887 objective_set(4)
888 sound_dialog_play_block pause
889 music_timer
890 }
891
892 if (how_far_along eq 15)
893 {
894 sleep 60
895 message timer_text 300
896 sleep 360
897 message timer_text2 240
898 }
899 }
900
901 ############################
902 # warn about alarm console #
903 ############################
904 func void alarm_warning(string ai_name)
905 {
906 if(count_alarm eq 0)
907 {
908 message alarm_warn 300
909 }
910 count_alarm = 1;
911 }
912
913 func void alarm_warningb(string ai_name)
914 {
915 count_alarm = 0;
916 }
917
918 #############################
919 # consoles and compass hint #
920 #############################
921 func void console_jump(string ai_name)
922 {
923 text_console level_1g
924 console_reset 18
925 }
926
927 func void console_escape(string ai_name)
928 {
929 text_console level_1h
930 console_reset 17
931 }
932
933 func void console_attack(string ai_name)
934 {
935 text_console level_1i
936 console_reset 16
937 }
938
939 func void console_flash(string ai_name)
940 {
941 text_console level_1j
942 console_reset 15
943 }
944
945 func void console_throw(string ai_name)
946 {
947 text_console level_1k
948 console_reset 14
949 }
950
951 func void console_block(string ai_name)
952 {
953 text_console level_1l
954 console_reset 13
955 }
956
957 func void t77(string ai_name)
958 {
959 message xarrow 400
960 }