home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 76 / XENIATGM66.iso / Messiah / data1.cab / Program_Executable_Files / messiahscripts / Enemies / ABeastActions.hxx < prev    next >
Text File  |  1999-11-29  |  21KB  |  893 lines

  1. //Armored beast actions:
  2.  
  3. #define ABeastMaxTurnSpeed 75
  4. #define ABeastTurnAcc 7
  5. #define ABeastMaxTurnSpeedWounded 10
  6. #define ABeastTurnAccWounded 1
  7.  
  8. #define ABeastJumpSpeed 14
  9. #define ABeastJumpGravity 0.9
  10.  
  11. #define ABeastMaxTurnSpeedair 60
  12. #define ABeastTurnAccair 5
  13. #define ABeastAirSpeed 20
  14. #define ABeastAirBulb 0.05    //0.1=very soft, 1.0=get speed immediately
  15.  
  16. #define ABeastMaxFall        -500    //Fall before he breaks his legs.
  17. #define    DamageABeastFall    500    //Maximum, depends on altitude you fall
  18.  
  19. action(ABeastCrouchDown)
  20. {
  21.         file("pc\actors\Behemoth\xxx\BCrchStr.ske",100,off);
  22.             
  23.         trigger(_allDIR);
  24.         AIclass(_AIClassABeastSkeleton);
  25.         break(off);
  26.         nrintframes(4);
  27.         ColSphereScale(50);
  28.         ColSphereYOffsetScale(100);
  29.         connections(ABeastCrouchIdle);
  30. }
  31.  
  32. action(ABeastCrouchUp)
  33. {
  34.         file("pc\actors\Behemoth\xxx\BCrchEnd.ske",100,off);
  35.         trigger(_allDIR);
  36.         AIclass(_AIClassABeastSkeleton);
  37.         break(off);
  38.         nrintframes(4);
  39.         ColSphereScale(50);
  40.         ColSphereYOffsetScale(100);
  41.         connections(ABeastSpreadOut,ABeastIdle);
  42. }
  43.  
  44. action(ABeastCrouchIdle)
  45. {
  46.         file("pc\actors\Behemoth\xxx\BCrchIdl.ske",100,on);
  47.             
  48.         trigger(_noDIR);
  49.         break(on);
  50.         nrintframes(4);
  51.         ColSphereScale(50);
  52.         ColSphereYOffsetScale(100);
  53.         connections(ABeastCrouchIdle,ABeastSpreadOut);
  54. }
  55.  
  56.  
  57. action(ABeastAngry)
  58. {
  59.         file("pc\actors\Abeast\xxx\mspan13.ske",100,on);            //Roaring and beating chest
  60.         trigger(_allDIR);
  61.         break(on);
  62.         nrintframes(6);
  63.         intforloop(on);
  64.         connections(ABeastIdle);
  65. }
  66.  
  67.  
  68.  
  69. /*
  70. ** ABeast Action Animations
  71. */
  72. /* *************   ******************* */
  73. action(ABeastElectricShock0)
  74. {
  75.         file("pc\actors\Chot\xxx\aelectLP.ske",100,off,130);
  76.         trigger(_allDIR);
  77.         AIclass(_AIClassABeastSkeleton);
  78.         break(off);
  79.         nrintframes(4);
  80.         intforloop(off);
  81.         nomove(true)
  82.         connections(GENElectricShock1);
  83.         collision(on);
  84.         gravity(off);
  85. }
  86.  
  87. action(ABeastElectricShock1)
  88. {
  89.         file("pc\actors\Chot\xxx\aelectHL.ske",100,on);
  90.         move(0,0,20);
  91.         trigger(_allDIR);
  92.         AIclass(_AIClassABeastSkeleton);
  93.         break(off);
  94.         nrintframes(6);
  95.         intforloop(off);
  96.         nomove(true)
  97.         connections(GENElectricShock1);
  98.         gravity(off);
  99.         collision(on);
  100. }
  101.  
  102.  
  103. SubRoutine(Sub_PowerUp)
  104. {
  105.     if(VFrame==1)                        //powerup
  106.     {
  107.         Sample(SFXPAbeastPowerUp2D,-1);
  108.     }
  109.     elseif(VFrame==75)                    //right foot down
  110.     {
  111.         Sample(SFXPAbeastStep2D,-1);
  112.     }
  113.     elseif(VFrame==90)                    //left foot down
  114.     {
  115.         Sample(SFXPAbeastStep2D,-1);
  116.     }
  117.     elseif(VFrame==150)
  118.     {
  119.         Sample(SFXABeastStretch2D,-1);
  120.     }
  121. }
  122.  
  123. action(ABeastPowerUp)
  124. {
  125.         file("pc\actors\Abeast\xxx\AbPowrUp.ske",100,off,100,-1,-1,Sub_PowerUp);
  126.         trigger(_allDIR);
  127.         break(off);
  128.         connections(ABeastIdle);
  129. }
  130.  
  131.  
  132. action(ABeastShutDown)
  133. {
  134.         file("pc\actors\Abeast\xxx\AbOffIdl.ske",100,on);            //Roaring and beating chest
  135.         trigger(_allDIR);
  136.         break(on);
  137.         connections(ABeastShutDown);
  138. }
  139.  
  140.  
  141. action(ABeastIdle)
  142. {
  143. //        file("pc\actors\Abeast\xxx\mbeidl3g.ske",20,on);
  144. //        file("pc\actors\Abeast\xxx\mbeidl1g.ske",50,on);
  145. //        file("pc\actors\Abeast\xxx\mbeidl2g.ske",100,on);
  146.         file("pc\actors\Abeast\xxx\AbIdle1.ske",80,on);//breathing anim, do this 80% of the time
  147.         file("pc\actors\Abeast\xxx\AbIdle2.ske",100,on);//look right & left anim, do this 20% of the time
  148.         trigger(_allDIR);
  149.         AIclass(_AIClassAbeastSkeleton);
  150.         break(on);
  151.         nrintframes(6);
  152.         intforloop(on);
  153.         connections(ABeastSpreadOut,ABeastStandShoot,ABeastTurnLeft,ABeastTurnRight,ABeastIdle);
  154. }
  155.  
  156. Action(ABeastAttentionIdle)
  157. {
  158.         file("pc\actors\Chot\xxx\Matnidlg.ske",100,on);
  159.         break(on);
  160.         connections(ABeastSpreadOut,ABeastStandShoot,ABeastTurnLeft,ABeastTurnRight,ABeastAttentionIdle);
  161. }
  162.  
  163. Action(ABeastAttention)
  164. {
  165.         file("pc\actors\Chot\xxx\matnshng.ske",100,on);    //respond to attention command
  166.         break(off);
  167.         nrintframes(8);
  168.         connections(ABeastAttentionIdle);
  169. }
  170.  
  171. action(ABeastSpreadOut)    //Lead directly to next animation
  172. {
  173.         trigger(_DIRMove);
  174.         AIclass(_AIClassABeastSkeleton);
  175.         nrintframes(-1);
  176.         connections(ABeastWalkDiagFL,ABeastWalkDiagFR,ABeastWalkDiagBL,ABeastWalkDiagBR,ABeastWalk,ABeastWalkBack,ABeastWalkL,ABeastWalkR,ABeastRunDiagFL,ABeastRunDiagFR,ABeastRunDiagBL,ABeastRunDiagBR,ABeastRun,ABeastRunBack,ABeastRunL,ABeastRunR);
  177. }
  178.  
  179. action(ABeastIdleLongTime)
  180. {
  181.         file("pc\actors\Chot\xxx\Macaren3.ske",100,on);
  182.         trigger(_DIRNotEndOfAnim);
  183.         AIclass(_AIClassAbeastSkeleton);
  184.         break(on);
  185.         nrintframes(8);
  186.         intforloop(on);
  187.         connections(ABeastSpreadOut,ABeastStandShoot,ABeastTurnLeft,ABeastTurnRight,ABeastIdleLongTime,ABeastIdle);
  188. }
  189.  
  190. action(ABeastIdleHitWall)    //used just after you bounce into a wall
  191. {
  192.         file("pc\actors\Chot\xxx\Mneidl2p.xxx",2,on,-1,-1,Sub_RandomCopScratchesCrotch);    //ass scratch
  193.         file("pc\actors\Chot\xxx\Mneidl3p.xxx",4,on,-1,-1,Sub_RandomCopScratchesCrotch);    //crotch scratch
  194.         file("pc\actors\Chot\xxx\Mneidl1p.xxx",100,on);    //look around
  195.         trigger(_allDIR);
  196.         AIclass(_AIClassABeastSkeleton);
  197.         break(on);
  198.         nrintframes(8);
  199.         intforloop(on);
  200.         nomove(true)
  201.         connections(ABeastHitWallSpreadOut);
  202. }
  203. action(ABeastHitWallSpreadOut)    //Lead directly to next animation
  204. {
  205.         trigger(_allDIR);
  206.         AIclass(_AIClassABeastSkeleton);
  207.         nrintframes(-1);
  208.         connections(ABeastHitWallStandShoot,ABeastHitWallTurnLeft,ABeastHitWallTurnRight,ABeastIdleHitWall);
  209. }
  210.  
  211. action(ABeastIdleHitWallFront)    //used just after you bounce into a wall, face first
  212. {
  213. //MISSING Animation
  214.         file("pc\actors\Chot\xxx\Mneidl1p.xxx",100,on);    //look around
  215.         trigger(_allDIR);
  216.         AIclass(_AIClassABeastSkeleton);
  217.         break(on);
  218.         nrintframes(8);
  219.         intforloop(on);
  220.         nomove(true)
  221.         connections(ABeastHitWallStandShoot,ABeastHitWallTurnLeft,ABeastHitWallTurnRight,ABeastIdleHitWallFront);
  222. }
  223.  
  224. action(ABeastTurnLeftRightEnd)
  225. {
  226.         file("pc\actors\ABeast\xxx\AbTrStop.ske",100,off,100);
  227.         trigger(_DIRnotendofanim|_noDIR);
  228.         break(on);
  229.         nrintframes(3);
  230.         intforloop(off);
  231.         connections(ABeastTurnRight,ABeastTurnLeft,ABeastIdle);
  232. }
  233.  
  234. action(ABeastTurnLeft)
  235. {
  236. //        file("pc\actors\Chot\xxx\mtrnlft2.ske",100,on);
  237.         file("pc\actors\ABeast\xxx\AbTrLSt.ske",100,off,100);//start turn right
  238.         file("pc\actors\ABeast\xxx\AbTrLLp.ske",100,on,100);//turn right loop
  239. //        move(2,0,0);
  240.         trigger(_DIRleft);
  241.         break(on);
  242.         nrintframes(6);
  243.         connections(ABeastSpreadOut,ABeastStandShoot,ABeastTurnLeft,ABeastTurnRight,ABeastTurnLeftRightEnd,ABeastIdle);
  244. }
  245.  
  246. action(ABeastTurnRight)
  247. {
  248. //        file("pc\actors\Chot\xxx\mtrnrt2.ske",100,on);
  249.         file("pc\actors\ABeast\xxx\AbTrRSt.ske",100,off,100);//start turn right
  250.         file("pc\actors\ABeast\xxx\AbTrRLp.ske",100,on,100);//turn right loop
  251. //        move(-2,0,0);
  252.         trigger(_DIRright);
  253.         break(on);
  254.         nrintframes(6);
  255.         connections(ABeastSpreadOut,ABeastStandShoot,ABeastTurnLeft,ABeastTurnRight,ABeastTurnLeftRightEnd,ABeastIdle);
  256. }
  257.  
  258. action(ABeastHitWallTurnLeft)
  259. {
  260.         file("pc\actors\Chot\xxx\mtrnlft2.ske",100,on);
  261.         move(2,0,0);
  262.         trigger(_DIRleft);
  263.         break(on);
  264.         nrintframes(6);
  265.         connections(ABeastHitWallSpreadOut);
  266. }
  267.  
  268. action(ABeastHitWallTurnRight)
  269. {
  270.         file("pc\actors\Chot\xxx\mtrnlft2.ske",100,on);
  271.         move(-2,0,0)
  272.         trigger(_DIRright);
  273.         break(on);
  274.         nrintframes(6);
  275.         connections(ABeastHitWallSpreadOut);
  276. }
  277.  
  278.  
  279.  
  280. /* *************   Standard moves with gun ******************* */
  281.  
  282. /* *************   Standard moves without gun ******************* */
  283.  
  284.  
  285. action(ABeastWalk)
  286. {
  287.         file("pc\actors\Abeast\xxx\Mblwkcyp.xxx",100,on);
  288.         trigger(_DIRwalking|_DIRforward);
  289.         break(on);
  290.  
  291.         nrintframes(4);
  292.         intforloop(off);
  293.         offset(4);
  294.         connections(ABeastSpreadOut,ABeastIdle);
  295. }
  296.  
  297. action(ABeastWalkBack)
  298. {
  299.         //file("pc\actors\Chot\xxx\Mwkbkngn.ske",100,on);
  300.         file("pc\actors\Abeast\xxx\MblwkBcy.ske",100,on);
  301.         
  302.         nrintframes(8);
  303.         trigger(_DIRwalking|_DIRbackward);
  304.         break(on);
  305.         offset(4);
  306.         connections(ABeastSpreadOut,ABeastIdle);
  307. }
  308.  
  309. action(ABeastWalkL)
  310. {
  311.         file("pc\actors\Behemoth\xxx\BWlkL.ske",100,on);
  312.         nrintframes(8);
  313.         trigger(_DIRwalking|_DIRsideleft);
  314.         break(on);
  315.         offset(36);
  316.         connections(ABeastSpreadOut,ABeastIdle);
  317. }
  318.  
  319. action(ABeastWalkR)
  320. {
  321.         file("pc\actors\Behemoth\xxx\BWlkR.ske",100,on);
  322.         nrintframes(8);
  323.         trigger(_DIRwalking|_DIRsideright);
  324.         break(on);
  325.         offset(36);
  326.         connections(ABeastSpreadOut,ABeastIdle);
  327. }
  328.  
  329. action(ABeastWalkDiagFL)
  330. {
  331.         file("pc\actors\Behemoth\xxx\BWlkFL.ske",100,on);
  332.         trigger(_DIRwalking|_DIRsideleft|_DIRforward);
  333.         break(on);
  334.         nrintframes(8);
  335.         offset(36)
  336.         connections(ABeastSpreadOut,ABeastIdle);
  337. }
  338.  
  339. action(ABeastWalkDiagFR)
  340. {
  341.         file("pc\actors\Behemoth\xxx\BWlkFr.ske",100,on);
  342.         trigger(_DIRwalking|_DIRsideright|_DIRforward);
  343.         break(on);
  344.         nrintframes(8);
  345.         offset(36)
  346.         connections(ABeastSpreadOut,ABeastIdle);
  347. }
  348.  
  349. action(ABeastWalkDiagBL)
  350. {
  351.         file("pc\actors\Behemoth\xxx\BWlkBL.ske",100,on);
  352.         trigger(_DIRwalking|_DIRsideleft|_DIRbackward);
  353.         break(on);
  354.         offset(13);
  355.         nrintframes(8);
  356.         connections(ABeastSpreadOut,ABeastIdle);
  357. }
  358. action(ABeastWalkDiagBR)
  359. {
  360.         file("pc\actors\Behemoth\xxx\BWlkBR.ske",100,on);
  361.         trigger(_DIRwalking|_DIRsideright|_DIRbackward);
  362.         break(on);
  363.         offset(13);
  364.         nrintframes(8);
  365.         connections(ABeastSpreadOut,ABeastIdle);
  366. }
  367.  
  368.  
  369.  
  370. action(ABeastRun)
  371. {
  372.     //    file("pc\actors\Abeast\xxx\Mblrncyp.xxx",100,on);
  373.         file("pc\actors\Abeast\xxx\MblrnFg.ske",100,on);
  374.  
  375.         offset(30);
  376.         nrintframes(4);
  377.         intforloop(off);
  378.  
  379.         trigger(_DIRforward);
  380.         break(on);
  381.         connections(ABeastSpreadOut,ABeastIdle);
  382. }
  383. action(ABeastRunBack)
  384. {
  385.     //    file("pc\actors\Abeast\xxx\MblrnBcy.ske",100,on);
  386.         file("pc\actors\Abeast\xxx\MblrnBg.ske",100,on);
  387.         nrintframes(8);
  388.         trigger(_DIRbackward);
  389.         break(on);
  390.         offset(30);
  391.         connections(ABeastSpreadOut,ABeastIdle);
  392. }
  393.  
  394. action(ABeastRunL)
  395. {
  396.         file("pc\actors\Abeast\xxx\MblrnLg.ske",100,on);
  397.         nrintframes(8);
  398.         trigger(_DIRsideleft);
  399.         break(on);
  400.         offset(16)
  401.         connections(ABeastSpreadOut,ABeastIdle);
  402. }
  403. action(ABeastRunR)
  404. {
  405.         file("pc\actors\Abeast\xxx\MblrnRg.ske",100,on);
  406.         nrintframes(8);
  407.         trigger(_DIRsideright);
  408.         break(on);
  409.         offset(16)
  410.         connections(ABeastSpreadOut,ABeastIdle);
  411. }
  412. action(ABeastRunDiagFL)
  413. {
  414.         file("pc\actors\Abeast\xxx\MblrnFLg.ske",100,on);
  415.         trigger(_DIRsideleft|_DIRforward);
  416.         break(on);
  417.         offset(16)
  418.         nrintframes(8);
  419.         connections(ABeastSpreadOut,ABeastIdle);
  420. }
  421. action(ABeastRunDiagFR)
  422. {
  423.         file("pc\actors\Abeast\xxx\MblrnFRg.ske",100,on);
  424.         trigger(_DIRsideright|_DIRforward);
  425.         break(on);
  426.         offset(16)
  427.         nrintframes(8);
  428.         connections(ABeastSpreadOut,ABeastIdle);
  429. }
  430.  
  431. action(ABeastRunDiagBL)
  432. {
  433.         file("pc\actors\Abeast\xxx\MblrnBLg.ske",100,on);
  434.         trigger(_DIRsideleft|_DIRbackward);
  435.         break(on);
  436.         nrintframes(8)
  437.         offset(8)
  438.         connections(ABeastSpreadOut,ABeastIdle);
  439. }
  440.  
  441. action(ABeastRunDiagBR)
  442. {
  443.         file("pc\actors\Abeast\xxx\MblrnBRg.ske",100,on);
  444.         trigger(_DIRsideright|_DIRbackward);
  445.         break(on);
  446.         offset(8)
  447.         nrintframes(8);
  448.         connections(ABeastSpreadOut,ABeastIdle);
  449. }
  450.  
  451. /* *************   Jump And Fall ******************* */
  452.  
  453.  
  454.  
  455. action(ABeastJump)    //Lead directly to next animation
  456. {
  457.         trigger(_DIRjump);
  458.         AIclass(_AIClassABeastSkeleton);
  459.         nrintframes(-1);
  460.         connections(ABeastJumpBL,ABeastJumpBR,ABeastJumpBackwards,ABeastJumpFL,ABeastJumpL,ABeastJumpFR,ABeastJumpR,ABeastJumpForward,ABeastJumpInPlace);
  461. }
  462.  
  463.  
  464. action(ABeastJumpInPlace)
  465. {
  466.         //file("pc\actors\chot\xxx\mjinplc5.ske",100,off,100);
  467.         file("pc\actors\Abeast\xxx\AbJmpS.ske",100,off,100);
  468.         trigger(_DIRjump);
  469.         nrintframes(4);
  470.         break(off);
  471.         gravity(off);
  472.         ydeltafromzeroframe(off);
  473.         connections(ABeastFallInplace);
  474. }
  475.  
  476. action(ABeastJumpForward)
  477. {
  478.         file("pc\actors\Abeast\xxx\AbJmpS.ske",100,off,100);
  479.         trigger(_DIRforward);
  480.         nrintframes(5);
  481.         break(off);
  482.         gravity(off);
  483.         ydeltafromzeroframe(off);
  484.         connections(ABeastFallForward);
  485. }
  486.  
  487. action(ABeastJumpL)
  488. {
  489.         file("pc\actors\Abeast\xxx\AbJmpS.ske",100,off,100);
  490.         trigger(_DIRsideleft);
  491.         rotate(-90)
  492.         nrintframes(5);
  493.         break(off);
  494.         gravity(off);
  495.         ydeltafromzeroframe(off);
  496.         connections(ABeastFallL);
  497. }
  498.  
  499. action(ABeastJumpFL)
  500. {
  501.         file("pc\actors\Abeast\xxx\AbJmpS.ske",100,off,100);
  502.         trigger(_DIRsideleft|_DIRforward);
  503.         rotate(-45)
  504.         nrintframes(5);
  505.         break(off);
  506.         gravity(off);
  507.         ydeltafromzeroframe(off);
  508.         connections(ABeastFallFL);
  509. }
  510. action(ABeastJumpR)
  511. {
  512.         file("pc\actors\Abeast\xxx\AbJmpS.ske",100,off,100);
  513.         trigger(_DIRsideright);
  514.         rotate(90)
  515.         nrintframes(5);
  516.         break(off);
  517.         gravity(off);
  518.         ydeltafromzeroframe(off);
  519.         connections(ABeastFallR);
  520. }
  521.  
  522. action(ABeastJumpFR)
  523. {
  524.         file("pc\actors\chot\xxx\Mjmp6Hg.ske",100,off,100);
  525.         trigger(_DIRsideright|_DIRforward);
  526.         rotate(45)
  527.         nrintframes(5);
  528.         break(off);
  529.         gravity(off);
  530.         ydeltafromzeroframe(off);
  531.         connections(ABeastFallFR);
  532. }
  533.  
  534. action(ABeastJumpBackwards)
  535. {
  536.         file("pc\actors\chot\xxx\arnbkjms.ske",100,off,100);
  537.         trigger(_DIRbackward);
  538.         nrintframes(5);
  539.         break(off);
  540.         gravity(off);
  541.         ydeltafromzeroframe(off);
  542.         connections(ABeastFallBackwards);
  543. }
  544.  
  545. action(ABeastJumpBR)
  546. {
  547.         file("pc\actors\chot\xxx\arnbkjms.ske",100,off,100);
  548.         trigger(_DIRbackward|_DIRsideright);
  549.         nrintframes(5);
  550.         break(off);
  551.         gravity(off);
  552.         rotate(-45)
  553.         ydeltafromzeroframe(off);
  554.         connections(ABeastFallBR);
  555. }
  556.  
  557. action(ABeastJumpBL)
  558. {
  559.         file("pc\actors\chot\xxx\arnbkjms.ske",100,off,100);
  560.         trigger(_DIRbackward|_DIRsideleft);
  561.         nrintframes(5);
  562.         break(off);
  563.         gravity(off);
  564.         rotate(45)
  565.         ydeltafromzeroframe(off);
  566.         connections(ABeastFallBL);
  567. }
  568.  
  569. action(ABeastfallForward)
  570. {
  571.         file("pc\actors\Abeast\xxx\AbJmpH.ske",100,off,150);
  572.         trigger(_AllDir);
  573.         nrintframes(4);
  574.         ydeltafromzeroframe(off);
  575.         break(off);
  576.         connections(ABeastfallForward);
  577. }
  578.  
  579. action(ABeastfallFL)
  580. {
  581.         file("pc\actors\Abeast\xxx\AbJmpH.ske",100,off,150);
  582.         trigger(_AllDir);
  583.         nrintframes(4);
  584.         ydeltafromzeroframe(off);
  585.         break(on);
  586.         rotate(-45)
  587.         connections(ABeastfallFL);
  588. }
  589. action(ABeastfallFR)
  590. {
  591.         file("pc\actors\Abeast\xxx\AbJmpH.ske",100,off,150);
  592.         trigger(_AllDir);
  593.         nrintframes(4);
  594.         ydeltafromzeroframe(off);
  595.         break(on);
  596.         rotate(45)
  597.         connections(ABeastfallFR);
  598. }
  599. action(ABeastfallL)
  600. {
  601.         file("pc\actors\Abeast\xxx\AbJmpH.ske",100,off,150);
  602.         trigger(_AllDir);
  603.         nrintframes(4);
  604.         ydeltafromzeroframe(off);
  605.         break(on);
  606.         rotate(-90)
  607.         connections(ABeastfallL);
  608. }
  609. action(ABeastfallR)
  610. {
  611.         file("pc\actors\Abeast\xxx\AbJmpH.ske",100,off,150);
  612.         trigger(_AllDir);
  613.         nrintframes(4);
  614.         ydeltafromzeroframe(off);
  615.         break(on);
  616.         rotate(90)
  617.         connections(ABeastfallR);
  618. }
  619.  
  620. action(ABeastfallInPlace)
  621. {
  622.         file("pc\actors\Abeast\xxx\AbJmpL.ske",100,on,150);
  623.         trigger(_AllDir);
  624.         nrintframes(7);
  625.         ydeltafromzeroframe(off);
  626.         break(off);
  627.         connections(ABeastfallInPlace);
  628. }
  629.  
  630. action(ABeastfallBackwards)
  631. {
  632.         file("pc\actors\Chot\xxx\arnbkjml.ske",100,on,100);
  633.         trigger(_AllDir);
  634.         nrintframes(7);
  635.         ydeltafromzeroframe(off);
  636.         break(on);
  637.         connections(ABeastfallBackwards);
  638. }
  639. action(ABeastfallBL)
  640. {
  641.         file("pc\actors\Chot\xxx\arnbkjml.ske",100,on,100);
  642.         trigger(_AllDir);
  643.         nrintframes(7);
  644.         ydeltafromzeroframe(off);
  645.         break(on);
  646.         rotate(45)
  647.         connections(ABeastfallBL);
  648. }
  649. action(ABeastfallBR)
  650. {
  651.         file("pc\actors\Chot\xxx\arnbkjml.ske",100,on,100);
  652.         trigger(_AllDir);
  653.         nrintframes(7);
  654.         ydeltafromzeroframe(off);
  655.         break(on);
  656.         rotate(-45)
  657.         connections(ABeastfallBR);
  658. }
  659.  
  660. action(ABeastfall)    //Fall when falling from edge only
  661. {
  662.         file("pc\actors\Chot\xxx\MJmp5Lp.ske",100,on,150);
  663. //        file("pc\actors\Chot\xxx\afallfst.ske",100,on,150);
  664.         trigger(_AllDir);
  665.         AIclass(_AIClassABeastSkeleton);
  666.         nrintframes(7);
  667.         offset(8);
  668.         ydeltafromzeroframe(off);
  669.         break(off);
  670.         connections(ABeastFall);
  671. }
  672.  
  673. action(ABeastTouchDown)
  674. {
  675.         file("pc\actors\Abeast\xxx\AbJmpL.ske",100,off);
  676.         trigger(_DIRNotEndOfAnim);
  677.         AIclass(_AIClassABeastSkeleton);
  678.         nrintframes(5);
  679.         break(off);
  680.  
  681.         ActionSubRoutine(Sub_HeavyLand);
  682.  
  683.         connections(ABeastSpreadOut,ABeastStandShoot,ABeastIdle);
  684. }
  685.  
  686. /* *************   Other Moves ******************* */
  687.  
  688. action(AbeastStomp)
  689. {
  690.         file("pc\actors\abeast\xxx\Mbestmp2.ske",100,off);
  691.         trigger(_DIRjump);
  692.         break(off);
  693.         connections(Abeastidle);
  694. }
  695.  
  696.  
  697. action(AbeastShot)
  698. {
  699.         file("pc\actors\abeast\xxx\mspan13.ske",100,on);
  700.         trigger(_allDIR);
  701.         break(off);
  702.         nrintframes(4);
  703.         intforloop(off);
  704.         //connections(AbeastShot);
  705.         connections(Abeastidle);
  706. }
  707.  
  708. action(ABeastTearDoorOpen)
  709. {
  710.         file("pc\actors\Behemoth\xxx\BTearDr.ske",100,off);
  711.         trigger(_allDIR);
  712.         break(off);
  713.         nrintframes(4);
  714.         intforloop(off);
  715.         connections(Abeastidle);
  716. }
  717.  
  718. action(AbeastPunch)
  719. {
  720.         file("pc\actors\abeast\xxx\Mbegrnd.ske",100,off);
  721.         trigger(_allDIR);
  722.         connections(Abeastidle);
  723. }
  724.  
  725. action(ABeastStandShoot)
  726. {
  727.         //file("pc\actors\abeast\xxx\mspan13.xxx",100,on);
  728.         file("pc\actors\Abeast\xxx\MbFrM1.ske",33,on);
  729.         file("pc\actors\Abeast\xxx\MbFrM2.ske",66,on);
  730.         file("pc\actors\Abeast\xxx\MbFrM3.ske",100,on);
  731.         trigger(_DIRshoot);
  732.         break(off);
  733.         connections(ABeastStandShoot,ABeastTurnLeft,ABeastTurnRight,ABeastIdle);
  734. }
  735.  
  736. action(ABeastHitWallStandShoot)
  737. {
  738.         file("pc\actors\chot\xxx\Mfire3h2.ske",100,on);
  739.         trigger(_DIRshoot|_DIRHaveGun);
  740.         break(on);
  741.         nrintframes(4);
  742.         connections(ABeastHitWallSpreadOut);
  743. }
  744. action(ABeastPossesed)
  745. {
  746.         file("pc\actors\Abeast\xxx\mblprosp.ske",100,off);
  747.         trigger(_allDIR);
  748.         AIclass(_AIClassAbeastSkeleton);
  749.         break(off);
  750.         connections(ABeastidle);
  751. }
  752. action(ABeastDepossesed)
  753. {
  754.         file("pc\actors\chot\xxx\Mstun1g.ske",50,on);
  755.         file("pc\actors\chot\xxx\Mstun2g.ske",100,on);
  756.         trigger(_allDIR);
  757.         AIclass(_AIClassAbeastSkeleton);
  758.         nrintframes(4);
  759.         break(off);
  760.         connections(ABeastidle);
  761. }
  762.  
  763. action(ABeastThrowGrenade)
  764. {
  765.         //file("pc\actors\chot\xxx\MthrwgrA.ske",100,on);
  766.         //file("pc\actors\Abeast\xxx\MbFrGrH.ske",100,on);
  767.         file("pc\actors\Abeast\xxx\MbFrGrL.ske",100,on);
  768.         trigger(_allDIR);
  769.         AIclass(_AIClassABeastSkeleton);
  770.         break(off);
  771.         nrintframes(4);
  772.         connections(ABeastThrowGrenade2);
  773. }
  774.  
  775. action(ABeastThrowGrenade2)
  776. {
  777.         file("pc\actors\Abeast\xxx\MbFrGrSn.ske",100,on);
  778.         trigger(_DIRNotEndOfAnim);
  779.         break(on);
  780.         nrintframes(0);
  781.         connections(ABeastSpreadOut,ABeastStandShoot,ABeastThrowGrenade2,ABeastidle);
  782. }
  783.  
  784. /* *************   Wounded ******************* */
  785.  
  786. action(ABeastWoundLight)
  787. {    
  788. //        file("pc\actors\Abeast\xxx\MbWund1.ske",50,off);
  789. //        file("pc\actors\Abeast\xxx\MbWund2.ske",100,off);
  790.         file("pc\actors\Abeast\xxx\AbWnd1.ske",25,off);
  791.         file("pc\actors\Abeast\xxx\AbWnd2.ske",50,off);
  792.         file("pc\actors\Abeast\xxx\AbWnd3.ske",75,off);
  793.         file("pc\actors\Abeast\xxx\AbWnd4.ske",100,off);
  794.         trigger(_DIRNotEndOfAnim);
  795.         AIclass(_AIClassABeastSkeleton);
  796.         break(on);
  797.         collision(on);
  798.         nrintframes(1);
  799.         connections(ABeastSpreadOut,ABeastStandShoot,ABeastWoundLight,ABeastTurnLeft,ABeastTurnRight,ABeastIdle);
  800. }
  801.  
  802. action(ABeastWoundLightNoBreak)    //Identical to the one above except for break
  803. {
  804. //        file("pc\actors\Chot\xxx\FstWnd1.ske",10,off);
  805. //        file("pc\actors\Chot\xxx\FstWnd2.ske",100,off);
  806. //        //file("pc\actors\Chot\xxx\FstWnd3.ske",100,off);
  807.         file("pc\actors\Abeast\xxx\AbWnd1.ske",25,off);
  808.         file("pc\actors\Abeast\xxx\AbWnd2.ske",50,off);
  809.         file("pc\actors\Abeast\xxx\AbWnd3.ske",75,off);
  810.         file("pc\actors\Abeast\xxx\AbWnd4.ske",100,off);
  811.         trigger(_DIRNotEndOfAnim);
  812.         AIclass(_AIClassABeastSkeleton);
  813.         break(off);
  814.         collision(on);
  815.         nrintframes(1);
  816.         connections(ABeastSpreadOut,ABeastStandShoot,ABeastWoundLight,ABeastTurnLeft,ABeastTurnRight,ABeastIdle);
  817. }
  818. /*
  819. action(ABeastWoundFlyBack1)    //Hold frame
  820. {
  821.         file("pc\actors\Chot\xxx\ThBkHld1.ske",100,off);
  822.         trigger(_alldir);
  823.         break(on);
  824.         collision(on);
  825.         nrintframes(4);
  826.         connections(ABeastWoundFlyBack2);
  827. }
  828.  
  829. action(ABeastWoundFlyBack2)    //Hitting wall+hold frame
  830. {
  831.         file("pc\actors\Chot\xxx\ThBkhtwl.ske",100,off);
  832.         trigger(_DIRVerCol);
  833.         break(on);
  834.         collision(on);
  835.         nrintframes(4);
  836.         connections(ABeastWoundFlyBack3);
  837. }
  838. action(ABeastWoundFlyBack3)    //Land on ground
  839. {
  840.         file("pc\actors\Chot\xxx\ThBklnd.ske",100,off);
  841.         trigger(_DIRHorCol);
  842.         break(off);
  843.         collision(on);
  844.         nrintframes(4);
  845.         connections(ABeastIdle);
  846. }
  847. */
  848. /* *************   Burned, steamed and blind ******************* */
  849.  
  850.  
  851.  
  852. /* *************   Crawling+Being Dragged+Other deaths ******************* */
  853.  
  854.  
  855. action(ABeastStandDead)
  856. {
  857.         file("pc\actors\Abeast\xxx\MbDeath1.ske",50,off);//70=slower anim speed (fall-down slower) default is 100
  858.         file("pc\actors\Abeast\xxx\MbDeath2.ske",100,off);
  859.         trigger(_allDIR);
  860.         AIclass(_AIClassABeastSkeleton);
  861.         break(off);
  862.         nrintframes(12);
  863. }
  864. action(ABeastFallDead)
  865. {
  866.         file("pc\actors\Abeast\xxx\MbDeath1.ske",50,off);//70=slower anim speed (fall-down slower) default is 100
  867.         file("pc\actors\Abeast\xxx\MbDeath2.ske",100,off);
  868.         trigger(_allDIR);
  869.         AIclass(_AIClassABeastSkeleton);
  870.         break(off);
  871.         nrintframes(12);
  872. }
  873.  
  874. /*
  875.     Abeast Fire machine gun:
  876.         Fires 6 bullets a second, one every 5th frame. 
  877.         The animations should be played randomly:
  878.             Abeast\prj\Handanim\MbFrM1.3ds
  879.             Abeast\xxx\MbFrM1.ske
  880.  
  881.             Abeast\prj\Handanim\MbFrM2.3ds
  882.             Abeast\xxx\MbFrM2.ske
  883.  
  884.             Abeast\prj\Handanim\MbFrM3.3ds
  885.             Abeast\xxx\MbFrM3.ske
  886.  
  887.         Hold frame:
  888.             Abeast\prj\Handanim\MbFrM0.3ds
  889.             Abeast\xxx\MbFrM0.ske
  890. */
  891.  
  892.  
  893.