home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 45 / PCGamer45_18Demos.iso / Games45 / GAMES / ONI / oni_demo.exe / GameDataFolder / IGMD / EnvWarehouse / warehouse_train2.bsl < prev    next >
Text File  |  2000-11-03  |  20KB  |  960 lines

  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. # training scripts used in warehouse #
  797. ######################################
  798. # note: health function 'yhealth' is in the level_script file #
  799.  
  800. func void train_fathealth(string ai_name)
  801. {
  802.     chr_wait_animtype char_0 Pickup_Object 
  803.     if(trigvolume_count (80) eq 1)
  804.     {
  805.         sleep 90
  806.         message xtabhypo 300
  807.         sound_dialog_play_block c00_01_93shinatama
  808.         sound_dialog_play_block pause
  809.         sleep 40
  810.         sound_dialog_play_block c00_01_94shinatama
  811.     }
  812. }
  813.  
  814. func void intro_enemies(string ai_name)
  815. {
  816.     dprint intro_enemies
  817.     how_far_along = 11;
  818.  
  819.     music_firstfight
  820.  
  821.     if (how_far_along eq 11)
  822.     {
  823.         ai2_spawn Bay2_Thug_1
  824.         ai2_spawn Bay2_Thug_2
  825.     }
  826.  
  827.     if (how_far_along eq 11)
  828.     {
  829. #        enemies
  830.         message c01_50_84 240
  831.         sleep 360
  832.     }
  833. }
  834.  
  835. func void train_alarm(string ai_name)
  836. {
  837.     how_far_along = 13;
  838.  
  839.     if (how_far_along eq 13)
  840.     {
  841.     ai2_spawn Bay4_Comguy_1
  842. #    alarm
  843.     sleep 180
  844.     message c01_50_88 240
  845.     sleep 240
  846.     }
  847.  
  848.     if (how_far_along eq 13)
  849.     {
  850. #    alarm
  851.     message c01_50_89 240
  852.     sleep 240
  853.     }
  854.  
  855. #    if (how_far_along eq 13)
  856. #    {
  857. #    alarm
  858. #    message c01_50_90 240
  859. #    sleep 240
  860. #    }
  861. }
  862.  
  863. func void train_neutral(string ai_name)
  864. {
  865.     how_far_along = 14;
  866.     target_set(92,15.0)
  867.     if (how_far_along eq 14)
  868.     {
  869. #        neutrals
  870.         message c01_50_91 240
  871.         sleep 240
  872.         sound_dialog_play_block c00_01_97shinatama
  873.     }
  874. }
  875.  
  876. func void train_timer(string ai_name)
  877. {
  878.     how_far_along = 15;
  879.  
  880.     if(how_far_along eq 15)
  881.     {
  882.         target_set(96,15.0)
  883.         timer_start 180 OutroLose
  884.         sound_dialog_play_block c00_01_95shinatama
  885.         sleep 180
  886.         objective_set(4)
  887.         sound_dialog_play_block pause
  888.         music_timer
  889.     }
  890.  
  891.     if (how_far_along eq 15)
  892.     {
  893.         sleep 60
  894.         message timer_text 300
  895.         sleep 360
  896.         message timer_text2 240
  897.     }
  898. }
  899.  
  900. ############################
  901. # warn about alarm console #
  902. ############################
  903. func void alarm_warning(string ai_name)
  904.     if(count_alarm eq 0)
  905.     {
  906.         message alarm_warn 300
  907.     }
  908.     count_alarm = 1;
  909. }
  910.  
  911. func void alarm_warningb(string ai_name)
  912.     count_alarm = 0;
  913. }
  914.  
  915. #############################
  916. # consoles and compass hint #
  917. #############################
  918. func void console_jump(string ai_name)
  919. {
  920.     text_console level_1g
  921.     console_reset 18
  922. }
  923.  
  924. func void console_escape(string ai_name)
  925. {
  926.     text_console level_1h
  927.     console_reset 17
  928. }
  929.  
  930. func void console_attack(string ai_name)
  931. {
  932.     text_console level_1i
  933.     console_reset 16
  934. }
  935.  
  936. func void console_flash(string ai_name)
  937. {
  938.     text_console level_1j
  939.     console_reset 15
  940. }
  941.  
  942. func void console_throw(string ai_name)
  943. {
  944.     text_console level_1k
  945.     console_reset 14
  946. }
  947.  
  948. func void console_block(string ai_name)
  949. {
  950.     text_console level_1l
  951.     console_reset 13
  952. }
  953.  
  954. func void t77(string ai_name)
  955. {
  956.     message xarrow 400
  957. }