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

  1. //non-armored/fleshy normal beast/behemoth
  2.  
  3. #define BeastMaxTurnSpeed 75
  4. #define BeastTurnAcc 7
  5. #define BeastMaxTurnSpeedWounded 10
  6. #define BeastTurnAccWounded 1
  7.  
  8. #define BeastJumpSpeed 32    //14
  9. #define BeastJumpGravity 2    //0.9
  10.  
  11. #define BeastMaxTurnSpeedair 60
  12. #define BeastTurnAccair 5
  13. #define BeastAirSpeed 20
  14. #define BeastAirBulb 0.05    //0.1=very soft, 1.0=get speed immediately
  15.  
  16. #define BeastMaxFall        -2000    //Fall before he breaks his legs.
  17. #define    DamageBeastFall    500    //Maximum, depends on altitude you fall
  18.  
  19. action(ChotBehEatSlow)
  20. {
  21.         file("pc\actors\MultiAnm\xxx\2EatCpSB.ske",100,off,100);
  22.  
  23.         flag(_SXAAalignmovingslave|_SXAAdisablecollision|_SXAAdisablerotation);
  24.  
  25.         AlignAngle(342);    //348
  26.         TargetAngle(0);
  27.         AttackHeight(40);
  28.         AlignDistance(146);
  29.         DistanceSlack(150);
  30.         AlignSlack(180);    
  31.  
  32.         AlignStartFrame(21);
  33.         AlignNrFrames(1);
  34.  
  35.         AttachActionStartAtFrame(21);
  36.         DamageFrame(344);
  37.         Power(100);
  38.         AttachAction(CopEatenSlowLink);
  39.         MasterAIClass(_AIClassChot);
  40.         TargetAIClass(_AIclasscop);
  41.  
  42.         //ActionSubRoutine(Sub_RandomStrangledSFX);
  43.  
  44.         trigger(_allDIR);
  45.         break(off);
  46.         nrintframes(0);
  47.         connections(BeastTurnLeft,BeastTurnRight,BeastIdle);
  48. }
  49.  
  50. action(ChotBehEat)
  51. {
  52.         file("pc\actors\MultiAnm\xxx\2EatCpFB.ske",100,off,100);
  53.  
  54.         flag(_SXAAalignmovingslave|_SXAAdisablecollision|_SXAAdisablerotation);
  55.  
  56.         AlignAngle(342);    //348
  57.         TargetAngle(0);
  58.         AttackHeight(40);
  59.         AlignDistance(146);
  60.         DistanceSlack(150);
  61.         AlignSlack(180);    
  62.  
  63.         AlignStartFrame(21);
  64.         AlignNrFrames(1);
  65.  
  66.         AttachActionStartAtFrame(21);
  67.         DamageFrame(344);
  68.         Power(100);
  69.         AttachAction(CopEatenLink);
  70.         MasterAIClass(_AIClassChot);
  71.         TargetAIClass(_AIclasscop);
  72.  
  73.         ActionSubRoutine(Sub_EatMaleSFX);
  74.  
  75.         trigger(_DIRshoot);
  76.         break(off);
  77.         nrintframes(0);
  78.         connections(BeastTurnLeft,BeastTurnRight,BeastIdle);
  79. }
  80.  
  81. action(BouncerThrowCop)
  82. {
  83.         file("pc\actors\Bouncer\xxx\B_throw.ske",100,off,100);
  84.  
  85.         flag(_SXAAalignmovingslave|_SXAAdisablecollision|_SXAAdisablerotation);
  86.  
  87.         AlignAngle(0);    //348
  88.         TargetAngle(180);
  89.         AttackHeight(40);
  90.         AlignDistance(146);
  91.         DistanceSlack(150);
  92.         AlignSlack(180);    
  93.  
  94.         AlignStartFrame(0);
  95.         AlignNrFrames(1);
  96.  
  97.         AttachActionStartAtFrame(0);
  98.         DamageFrame(50);
  99.         Power(10);
  100.         AttachAction(BouncerThrowCopLink);
  101.         MasterAIClass(_AIClassbeast);
  102.         TargetAIClass(_AIclasscop|_AIClasschot|_AIClassworker|_AIclassscientist|_AIclassdweller);
  103.  
  104.         ActionSubRoutine(Sub_EatMaleSFX);
  105.  
  106.         trigger(_DIRshoot);
  107.         break(off);
  108.         nrintframes(0);
  109.         connections(BeastIdle);
  110. }
  111.  
  112. action(BouncerKissGirl)
  113. {
  114.         file("pc\actors\Bouncer\xxx\B_girl.ske",100,off,100);
  115.  
  116.         flag(_SXAAalignmovingslave|_SXAAdisablecollision|_SXAAdisablerotation);
  117.  
  118.         AlignXYZ(-2,0,119);
  119.  
  120.         //AlignAngle(0);    //348
  121.         TargetAngle(180);
  122.         AttackHeight(40);
  123.         //AlignDistance(146);
  124.         DistanceSlack(150);
  125.         AlignSlack(180);    
  126.  
  127.         AlignStartFrame(0);
  128.         AlignNrFrames(1);
  129.  
  130.         AttachActionStartAtFrame(0);
  131.         DamageFrame(50);
  132.         Power(0);
  133.         AttachAction(BouncerKissGirlLink);
  134.         MasterAIClass(_AIClassbeast);
  135.         TargetAIClass(_AIclassfemale);
  136.  
  137.         ActionSubRoutine(Sub_EatMaleSFX);
  138.  
  139.         trigger(_DIRshoot);
  140.         break(off);
  141.         nrintframes(0);
  142.         connections(BeastIdle);
  143. }
  144.  
  145.  
  146. Action(BouncerBlockBar)
  147. {
  148.     file("pc\actors\Bouncer\xxx\B_bar1.ske",50,on);
  149.     file("pc\actors\Bouncer\xxx\B_bar2.ske",100,on);
  150.     
  151.     break(off);
  152.     trigger(_allDIR);
  153.     nrintframes(12);
  154.     intforloop(on);
  155.  
  156.     connections(BeastIdle);
  157. }
  158.  
  159. Action(BouncerNoBlock)
  160. {
  161.     file("pc\actors\Bouncer\xxx\B_no1.ske",100,off);
  162.     file("pc\actors\Bouncer\xxx\B_no2.ske",100,off);
  163.     file("pc\actors\Bouncer\xxx\B_no3.ske",100,off);
  164.     
  165.     break(off);
  166.     trigger(_allDIR);
  167.     nrintframes(4);
  168.     intforloop(on);
  169.  
  170.     connections(BeastIdle);
  171. }
  172.  
  173. Action(BouncerReject)
  174. {
  175.     file("pc\actors\Bouncer\xxx\B_out.ske",100,off);
  176.     
  177.     break(off);
  178.     trigger(_allDIR);
  179.     nrintframes(12);
  180.     intforloop(on);
  181.  
  182.     connections(BeastIdle);
  183. }
  184.  
  185. Action(BouncerAngry)
  186. {
  187.     file("pc\actors\Bouncer\xxx\B_angry.ske",100,off);
  188.     
  189.     break(off);
  190.     trigger(_allDIR);
  191.     nrintframes(12);
  192.     intforloop(on);
  193.  
  194.     connections(BeastIdle);
  195. }
  196.  
  197. Action(BouncerAccept)
  198. {
  199.     file("pc\actors\Bouncer\xxx\B_in.ske",100,off);
  200.     
  201.     break(off);
  202.     trigger(_allDIR);
  203.     nrintframes(12);
  204.     intforloop(on);
  205.  
  206.     connections(BeastIdle);
  207. }
  208.  
  209.  
  210.  
  211.  
  212. action(BeastCrouchDown)
  213. {
  214.         file("pc\actors\Behemoth\xxx\BCrchStr.ske",100,off);
  215.             
  216.         trigger(_allDIR);
  217.         AIclass(_AIClassBeastSkeleton);
  218.         break(off);
  219.         nrintframes(4);
  220.         ColSphereScale(50);
  221.         ColSphereYOffsetScale(100);
  222.         connections(BeastCrouchIdle);
  223. }
  224.  
  225. action(BeastCrouchUp)
  226. {
  227.         file("pc\actors\Behemoth\xxx\BCrchEnd.ske",100,off);
  228.         trigger(_allDIR);
  229.         AIclass(_AIClassBeastSkeleton);
  230.         break(off);
  231.         nrintframes(4);
  232.         ColSphereScale(50);
  233.         ColSphereYOffsetScale(100);
  234.         connections(BeastSpreadOut,BeastIdle);
  235. }
  236.  
  237. action(BeastCrouchIdle)
  238. {
  239.         file("pc\actors\Behemoth\xxx\BCrchIdl.ske",100,on);
  240.             
  241.         trigger(_noDIR);
  242.         break(on);
  243.         nrintframes(4);
  244.         ColSphereScale(50);
  245.         ColSphereYOffsetScale(100);
  246.         connections(BeastCrouchIdle,BeastSpreadOut);
  247. }
  248.  
  249.  
  250. /*
  251. ** Beast Action Animations
  252. */
  253. /* *************   ******************* */
  254. action(BeastElectricShock0)
  255. {
  256.         file("pc\actors\Chot\xxx\aelectLP.ske",100,off,130);
  257.         trigger(_allDIR);
  258.         AIclass(_AIClassBeastSkeleton);
  259.         break(off);
  260.         nrintframes(4);
  261.         intforloop(off);
  262.         nomove(true)
  263.         connections(GENElectricShock1);
  264.         collision(on);
  265.         gravity(off);
  266. }
  267.  
  268. action(BeastElectricShock1)
  269. {
  270.         file("pc\actors\Chot\xxx\aelectHL.ske",100,off,130);
  271.         move(0,0,20);
  272.         trigger(_allDIR);
  273.         AIclass(_AIClassBeastSkeleton);
  274.         break(off);
  275.         nrintframes(6);
  276.         intforloop(off);
  277.         nomove(true)
  278.         connections(GENElectricShock1);
  279.         gravity(off);
  280.         collision(on);
  281. }
  282.  
  283. action(BeastIdle)
  284. {
  285.         file("pc\actors\Bouncer\xxx\B_idle1.ske",50,off,100,_AIclassBouncer);
  286.         file("pc\actors\Bouncer\xxx\B_idle2.ske",100,off,100,_AIclassBouncer);
  287.         file("pc\actors\Behemoth\xxx\BIdle1Cm.ske",100,off,100,-1,_DIRcombatmode);    //Combat, Standing there and breathing:
  288.         file("pc\actors\Behemoth\xxx\BIdle1Cm.ske",100,off,100,-1,_DIRcombatmode);    //Combat, Standing there and breathing:
  289.         file("pc\actors\Behemoth\xxx\BIdle2Nc.ske",50,off);        //Noncombat, Looking Left and right
  290.         file("pc\actors\Behemoth\xxx\BIdle1Nc.ske",100,off);    //Noncombat, Standing there and breathing
  291.         trigger(_allDIR);
  292.  
  293.         AIclass(_AIClassBeastSkeleton);
  294.  
  295.         break(on);
  296.         nrintframes(6);
  297.         intforloop(on);
  298. //        connections(BeastSpreadOut,BouncerKissGirl,BouncerThrowCop,BeastStandShoot,ChotBehEat,BeastTurnLeft,BeastTurnRight,BeastTurnLeftCombat,BeastTurnRightCombat,BeastIdle);
  299.         connections(BeastSpreadOut,BouncerKissGirl,BouncerThrowCop,ChotBehEat,BeastTurnLeft,BeastTurnRight,BeastIdle);
  300. }
  301.  
  302. Action(BeastAttentionIdle)
  303. {
  304.         file("pc\actors\Chot\xxx\Matnidlg.ske",100,on);
  305.         break(on);
  306. //        connections(BeastSpreadOut,BeastStandShoot,ChotBehEat,BeastTurnLeft,BeastTurnRight,BeastAttentionIdle);
  307.         connections(BeastSpreadOut,ChotBehEat,BeastTurnLeft,BeastTurnRight,BeastAttentionIdle);
  308. }
  309.  
  310. Action(BeastAttention)
  311. {
  312.         file("pc\actors\Chot\xxx\matnshng.ske",100,on);    //respond to attention command
  313.         break(off);
  314.         nrintframes(8);
  315.         connections(BeastAttentionIdle);
  316. }
  317.  
  318. action(BeastSpreadOut)    //Lead directly to next animation
  319. {
  320.         trigger(_DIRMove);
  321.         AIclass(_AIClassBeastSkeleton);
  322.         nrintframes(-1);
  323. //        connections(BeastTurnLeftCombat,BeastTurnRightCombat,BeastTurnLeft,BeastTurnRight,BeastWalkDiagFL,BeastWalkDiagFR,BeastWalkDiagBL,BeastWalkDiagBR,BeastWalk,BeastWalkBack,BeastWalkL,BeastWalkR,BeastRunDiagFL,BeastRunDiagFR,BeastRunDiagBL,BeastRunDiagBR,BeastRun,BeastRunBack,BeastRunL,BeastRunR);
  324.         connections(BeastWalkDiagFL,BeastWalkDiagFR,BeastWalkDiagBL,BeastWalkDiagBR,BeastWalk,BeastWalkBack,BeastWalkL,BeastWalkR,BeastRunDiagFL,BeastRunDiagFR,BeastRunDiagBL,BeastRunDiagBR,BeastRun,BeastRunBack,BeastRunL,BeastRunR);
  325. }
  326.  
  327. action(BeastIdleLongTime)
  328. {
  329.         file("pc\actors\Chot\xxx\Macaren3.ske",100,on);
  330.         trigger(_DIRNotEndOfAnim);
  331.         AIclass(_AIClassBeastSkeleton);
  332.         break(on);
  333.         nrintframes(8);
  334.         intforloop(on);
  335. //        connections(BeastSpreadOut,BeastStandShoot,ChotBehEat,BeastTurnLeft,BeastTurnRight,BeastIdleLongTime,BeastIdle);
  336.         connections(BeastSpreadOut,ChotBehEat,BeastTurnLeft,BeastTurnRight,BeastIdleLongTime,BeastIdle);
  337. }
  338.  
  339. action(BeastIdleHitWall)    //used just after you bounce into a wall
  340. {
  341.         file("pc\actors\Chot\xxx\Mneidl2p.xxx",2,on,-1,-1,Sub_RandomCopScratchesCrotch);    //ass scratch
  342.         file("pc\actors\Chot\xxx\Mneidl3p.xxx",4,on,-1,-1,Sub_RandomCopScratchesCrotch);    //crotch scratch
  343.         file("pc\actors\Chot\xxx\Mneidl1p.xxx",100,on);    //look around
  344.         trigger(_allDIR);
  345.         AIclass(_AIClassBeastSkeleton);
  346.         break(on);
  347.         nrintframes(8);
  348.         intforloop(on);
  349.         nomove(true)
  350.         connections(BeastHitWallSpreadOut);
  351. }
  352. action(BeastHitWallSpreadOut)    //Lead directly to next animation
  353. {
  354.         trigger(_allDIR);
  355.         AIclass(_AIClassBeastSkeleton);
  356.         nrintframes(-1);
  357.         connections(BeastHitWallStandShoot,BeastHitWallTurnLeft,BeastHitWallTurnRight,BeastIdleHitWall);
  358. }
  359.  
  360. action(BeastIdleHitWallFront)    //used just after you bounce into a wall, face first
  361. {
  362. //MISSING Animation
  363.         file("pc\actors\Chot\xxx\Mneidl1p.xxx",100,on);    //look around
  364.         trigger(_allDIR);
  365.         AIclass(_AIClassBeastSkeleton);
  366.         break(on);
  367.         nrintframes(8);
  368.         intforloop(on);
  369.         nomove(true)
  370.         connections(BeastHitWallStandShoot,BeastHitWallTurnLeft,BeastHitWallTurnRight,BeastIdleHitWallFront);
  371. }
  372.  
  373. action(BeastTurnLeftRightEnd)
  374. {
  375.         file("pc\actors\Behemoth\xxx\BTrStpNc.ske",100,off,100);
  376.         trigger(_DIRnotendofanim|_noDIR);
  377.         break(on);
  378.         nrintframes(4);
  379.         intforloop(off);
  380.         connections(BeastTurnRight,BeastTurnLeft,BeastIdle);
  381. }
  382.  
  383. action(BeastTurnLeft)
  384. {
  385. //        file("pc\actors\Chot\xxx\mtrnlft2.ske",100,on);
  386.         file("pc\actors\Behemoth\xxx\BTrLStNc.ske",100,off);
  387.         file("pc\actors\Behemoth\xxx\BTrLLpNc.ske",100,on);
  388. //        move(2,0,0);
  389.         trigger(_DIRleft);
  390.         break(on);
  391.         nrintframes(6);
  392. //        connections(BeastSpreadOut,BeastStandShoot,ChotBehEat,BeastTurnLeft,BeastTurnRight,BeastTurnLeftRightEnd,BeastIdle);
  393.         connections(BeastSpreadOut,ChotBehEat,BeastTurnLeft,BeastTurnRight,BeastTurnLeftRightEnd,BeastIdle);
  394. }
  395.  
  396. action(BeastTurnRight)
  397. {
  398. //        file("pc\actors\Chot\xxx\mtrnrt2.ske",100,on);
  399.         file("pc\actors\Behemoth\xxx\BTrRStNc.ske",100,off);
  400.         file("pc\actors\Behemoth\xxx\BTrRLpNc.ske",100,on);
  401. //        move(-2,0,0);
  402.         trigger(_DIRright);
  403.         break(on);
  404.         nrintframes(6);
  405. //        connections(BeastSpreadOut,BeastStandShoot,ChotBehEat,BeastTurnLeft,BeastTurnRight,BeastIdle);
  406.         connections(BeastSpreadOut,ChotBehEat,BeastTurnLeft,BeastTurnRight,BeastIdle);
  407. }
  408.  
  409. action(BeastTurnLeftRightEndCombat)
  410. {
  411.         file("pc\actors\Behemoth\xxx\BTrStpCm.ske",100,off,100);
  412.         trigger(_DIRnotendofanim|_noDIR);
  413.         break(on);
  414.         nrintframes(4);
  415.         intforloop(off);
  416.         connections(BeastTurnRightCombat,BeastTurnLeftCombat,BeastIdle);
  417. }
  418.  
  419. action(BeastTurnLeftCombat)
  420. {
  421. //        file("pc\actors\Chot\xxx\mtrnlft2.ske",100,on);
  422.         file("pc\actors\Behemoth\xxx\BTrLStCm.ske",100,off);
  423.         file("pc\actors\Behemoth\xxx\BTrLLpCm.ske",100,on);
  424. //        move(2,0,0);
  425.         trigger(_DIRleft);
  426.         break(on);
  427.         nrintframes(6);
  428.         connections(BeastSpreadOut,BeastStandShoot,ChotBehEat,BeastTurnLeftCombat,BeastTurnRightCombat,BeastTurnLeftRightEndCombat,BeastIdle);
  429. }
  430.  
  431. action(BeastTurnRightCombat)
  432. {
  433. //        file("pc\actors\Chot\xxx\mtrnrt2.ske",100,on);
  434.         file("pc\actors\Behemoth\xxx\BTrRStCm.ske",100,off);
  435.         file("pc\actors\Behemoth\xxx\BTrRLpCm.ske",100,on);
  436. //        move(-2,0,0);
  437.         trigger(_DIRright);
  438.         break(on);
  439.         nrintframes(6);
  440.         connections(BeastSpreadOut,BeastStandShoot,ChotBehEat,BeastTurnLeftCombat,BeastTurnRightCombat,BeastIdle);
  441. }
  442.  
  443. action(BeastHitWallTurnLeft)
  444. {
  445.         file("pc\actors\Chot\xxx\mtrnlft2.ske",100,on);
  446.         move(2,0,0);
  447.         trigger(_DIRleft);
  448.         break(on);
  449.         nrintframes(6);
  450.         connections(BeastHitWallSpreadOut);
  451. }
  452.  
  453. action(BeastHitWallTurnRight)
  454. {
  455.         file("pc\actors\Chot\xxx\mtrnlft2.ske",100,on);
  456.         move(-2,0,0)
  457.         trigger(_DIRright);
  458.         break(on);
  459.         nrintframes(6);
  460.         connections(BeastHitWallSpreadOut);
  461. }
  462.  
  463.  
  464. /* *************   Standard moves with gun ******************* */
  465.  
  466. /* *************   Standard moves without gun ******************* */
  467.  
  468.  
  469. action(BeastWalk)
  470. {
  471.         file("pc\actors\Behemoth\xxx\BWlkFw.ske",100,on);
  472.         trigger(_DIRwalking|_DIRforward);
  473.         break(on);
  474.  
  475.         nrintframes(8);
  476.         intforloop(off);
  477.         offset(36);
  478.         connections(BeastSpreadOut,BeastIdle);
  479. }
  480.  
  481. action(BeastWalkBack)
  482. {
  483.         file("pc\actors\Behemoth\xxx\BWlkb.ske",100,on);
  484.         
  485.         nrintframes(8);
  486.         trigger(_DIRwalking|_DIRbackward);
  487.         break(on);
  488.         offset(13);
  489.         connections(BeastSpreadOut,BeastIdle);
  490. }
  491.  
  492. action(BeastWalkL)
  493. {
  494.         file("pc\actors\Behemoth\xxx\BWlkL.ske",100,on);
  495.         nrintframes(8);
  496.         trigger(_DIRwalking|_DIRsideleft);
  497.         break(on);
  498.         offset(36);
  499.         connections(BeastSpreadOut,BeastIdle);
  500. }
  501.  
  502. action(BeastWalkR)
  503. {
  504.         file("pc\actors\Behemoth\xxx\BWlkR.ske",100,on);
  505.         nrintframes(8);
  506.         trigger(_DIRwalking|_DIRsideright);
  507.         break(on);
  508.         offset(36);
  509.         connections(BeastSpreadOut,BeastIdle);
  510. }
  511.  
  512. action(BeastWalkDiagFL)
  513. {
  514.         file("pc\actors\Behemoth\xxx\BWlkFL.ske",100,on);
  515.         trigger(_DIRwalking|_DIRsideleft|_DIRforward);
  516.         break(on);
  517.         nrintframes(8);
  518.         offset(36)
  519.         connections(BeastSpreadOut,BeastIdle);
  520. }
  521.  
  522. action(BeastWalkDiagFR)
  523. {
  524.         file("pc\actors\Behemoth\xxx\BWlkFr.ske",100,on);
  525.         trigger(_DIRwalking|_DIRsideright|_DIRforward);
  526.         break(on);
  527.         nrintframes(8);
  528.         offset(36)
  529.         connections(BeastSpreadOut,BeastIdle);
  530. }
  531.  
  532. action(BeastWalkDiagBL)
  533. {
  534.         file("pc\actors\Behemoth\xxx\BWlkBL.ske",100,on);
  535.         trigger(_DIRwalking|_DIRsideleft|_DIRbackward);
  536.         break(on);
  537.         offset(13);
  538.         nrintframes(8);
  539.         connections(BeastSpreadOut,BeastIdle);
  540. }
  541. action(BeastWalkDiagBR)
  542. {
  543.         file("pc\actors\Behemoth\xxx\BWlkBR.ske",100,on);
  544.         trigger(_DIRwalking|_DIRsideright|_DIRbackward);
  545.         break(on);
  546.         offset(13);
  547.         nrintframes(8);
  548.         connections(BeastSpreadOut,BeastIdle);
  549. }
  550.  
  551.  
  552. action(BeastRun)
  553. {
  554.         file("pc\actors\behemoth\xxx\brunf.ske",100,on);
  555.  
  556.         offset(16);
  557.         nrintframes(8);
  558.         intforloop(off);
  559.  
  560.         trigger(_DIRforward);
  561.         break(on);
  562.         connections(BeastSpreadOut,BeastIdle);
  563. }
  564. action(BeastRunBack)
  565. {
  566.         file("pc\actors\behemoth\xxx\brunb.ske",100,on);
  567.         nrintframes(8);
  568.         trigger(_DIRbackward);
  569.         break(on);
  570.         offset(8);
  571.         connections(BeastSpreadOut,BeastIdle);
  572. }
  573.  
  574. action(BeastRunL)
  575. {
  576.         file("pc\actors\behemoth\xxx\brunl.ske",100,on);
  577.         nrintframes(8);
  578.         trigger(_DIRsideleft);
  579.         break(on);
  580.         offset(16)
  581.         connections(BeastSpreadOut,BeastIdle);
  582. }
  583. action(BeastRunR)
  584. {
  585.         file("pc\actors\behemoth\xxx\brunr.ske",100,on);
  586.         nrintframes(8);
  587.         trigger(_DIRsideright);
  588.         break(on);
  589.         offset(16)
  590.         connections(BeastSpreadOut,BeastIdle);
  591. }
  592. action(BeastRunDiagFL)
  593. {
  594.         file("pc\actors\behemoth\xxx\brunfl.ske",100,on);
  595.         trigger(_DIRsideleft|_DIRforward);
  596.         break(on);
  597.         offset(16)
  598.         nrintframes(8);
  599.         connections(BeastSpreadOut,BeastIdle);
  600. }
  601. action(BeastRunDiagFR)
  602. {
  603.         file("pc\actors\behemoth\xxx\brunfr.ske",100,on);
  604.         trigger(_DIRsideright|_DIRforward);
  605.         break(on);
  606.         offset(16)
  607.         nrintframes(8);
  608.         connections(BeastSpreadOut,BeastIdle);
  609. }
  610.  
  611. action(BeastRunDiagBL)
  612. {
  613.         file("pc\actors\behemoth\xxx\brunbl.ske",100,on);
  614.         trigger(_DIRsideleft|_DIRbackward);
  615.         break(on);
  616.         nrintframes(8)
  617.         offset(8)
  618.         connections(BeastSpreadOut,BeastIdle);
  619. }
  620.  
  621. action(BeastRunDiagBR)
  622. {
  623.         file("pc\actors\behemoth\xxx\brunbr.ske",100,on);
  624.         trigger(_DIRsideright|_DIRbackward);
  625.         break(on);
  626.         offset(8)
  627.         nrintframes(8);
  628.         connections(BeastSpreadOut,BeastIdle);
  629. }
  630.  
  631. /* *************   Jump And Fall ******************* */
  632.  
  633.  
  634.  
  635. action(BeastJump)    //Lead directly to next animation
  636. {
  637.         trigger(_DIRjump);
  638.         AIclass(_AIClassBeastSkeleton);
  639.         nrintframes(-1);
  640.         connections(BeastJumpBL,BeastJumpBR,BeastJumpBackwards,BeastJumpFL,BeastJumpL,BeastJumpFR,BeastJumpR,BeastJumpForward,BeastJumpInPlace);
  641. }
  642.  
  643.  
  644. action(BeastJumpInPlace)
  645. {
  646.         file("pc\actors\Behemoth\xxx\BJmpUSt.ske",100,off);
  647.         trigger(_DIRjump);
  648.         nrintframes(0);
  649.         break(off);
  650.         gravity(off);
  651.         ydeltafromzeroframe(off);
  652.         connections(BeastFallInplace);
  653. }
  654.  
  655. action(BeastJumpForward)
  656. {
  657.         file("pc\actors\Behemoth\xxx\BJmpFSt.ske",100,off);
  658.         trigger(_DIRforward);
  659.         nrintframes(0);
  660.         break(off);
  661.         gravity(off);
  662.         ydeltafromzeroframe(off);
  663.         connections(BeastFallForward);
  664. }
  665.  
  666. action(BeastJumpL)
  667. {
  668.         file("pc\actors\Abeast\xxx\AbJmpS.ske",100,off,100);
  669.         trigger(_DIRsideleft);
  670.         rotate(-90)
  671.         nrintframes(5);
  672.         break(off);
  673.         gravity(off);
  674.         ydeltafromzeroframe(off);
  675.         connections(BeastFallL);
  676. }
  677.  
  678. action(BeastJumpFL)
  679. {
  680.         file("pc\actors\Abeast\xxx\AbJmpS.ske",100,off,100);
  681.         trigger(_DIRsideleft|_DIRforward);
  682.         rotate(-45)
  683.         nrintframes(5);
  684.         break(off);
  685.         gravity(off);
  686.         ydeltafromzeroframe(off);
  687.         connections(BeastFallFL);
  688. }
  689. action(BeastJumpR)
  690. {
  691.         file("pc\actors\Abeast\xxx\AbJmpS.ske",100,off,100);
  692.         trigger(_DIRsideright);
  693.         rotate(90)
  694.         nrintframes(5);
  695.         break(off);
  696.         gravity(off);
  697.         ydeltafromzeroframe(off);
  698.         connections(BeastFallR);
  699. }
  700.  
  701. action(BeastJumpFR)
  702. {
  703.         file("pc\actors\chot\xxx\Mjmp6Hg.ske",100,off,100);
  704.         trigger(_DIRsideright|_DIRforward);
  705.         rotate(45)
  706.         nrintframes(5);
  707.         break(off);
  708.         gravity(off);
  709.         ydeltafromzeroframe(off);
  710.         connections(BeastFallFR);
  711. }
  712.  
  713. action(BeastJumpBackwards)
  714. {
  715.         file("pc\actors\Behemoth\xxx\BJmpBSt.ske",100,off);
  716.         trigger(_DIRbackward);
  717.         nrintframes(0);
  718.         break(off);
  719.         gravity(off);
  720.         ydeltafromzeroframe(off);
  721.         connections(BeastFallBackwards);
  722. }
  723.  
  724. action(BeastJumpBR)
  725. {
  726.         file("pc\actors\chot\xxx\arnbkjms.ske",100,off,100);
  727.         trigger(_DIRbackward|_DIRsideright);
  728.         nrintframes(5);
  729.         break(off);
  730.         gravity(off);
  731.         rotate(-45)
  732.         ydeltafromzeroframe(off);
  733.         connections(BeastFallBR);
  734. }
  735.  
  736. action(BeastJumpBL)
  737. {
  738.         file("pc\actors\chot\xxx\arnbkjms.ske",100,off,100);
  739.         trigger(_DIRbackward|_DIRsideleft);
  740.         nrintframes(5);
  741.         break(off);
  742.         gravity(off);
  743.         rotate(45)
  744.         ydeltafromzeroframe(off);
  745.         connections(BeastFallBL);
  746. }
  747.  
  748. action(BeastfallForward)
  749. {
  750.         file("pc\actors\Behemoth\xxx\BJmpFLCm.ske",100,off,100,-1,_DIRcombatmode);
  751.         file("pc\actors\Behemoth\xxx\BJmpFLNc.ske",100,off);
  752.         trigger(_AllDir);
  753.         nrintframes(4);
  754.         ydeltafromzeroframe(off);
  755.         break(off);
  756.         connections(BeastfallForward);
  757. }
  758.  
  759. action(BeastfallFL)
  760. {
  761.         file("pc\actors\Abeast\xxx\AbJmpH.ske",100,off,150);
  762.         trigger(_AllDir);
  763.         nrintframes(4);
  764.         ydeltafromzeroframe(off);
  765.         break(on);
  766.         rotate(-45)
  767.         connections(BeastfallFL);
  768. }
  769. action(BeastfallFR)
  770. {
  771.         file("pc\actors\Abeast\xxx\AbJmpH.ske",100,off,150);
  772.         trigger(_AllDir);
  773.         nrintframes(4);
  774.         ydeltafromzeroframe(off);
  775.         break(on);
  776.         rotate(45)
  777.         connections(BeastfallFR);
  778. }
  779. action(BeastfallL)
  780. {
  781.         file("pc\actors\Abeast\xxx\AbJmpH.ske",100,off,150);
  782.         trigger(_AllDir);
  783.         nrintframes(4);
  784.         ydeltafromzeroframe(off);
  785.         break(on);
  786.         rotate(-90)
  787.         connections(BeastfallL);
  788. }
  789. action(BeastfallR)
  790. {
  791.         file("pc\actors\Abeast\xxx\AbJmpH.ske",100,off,150);
  792.         trigger(_AllDir);
  793.         nrintframes(4);
  794.         ydeltafromzeroframe(off);
  795.         break(on);
  796.         rotate(90)
  797.         connections(BeastfallR);
  798. }
  799.  
  800. action(BeastfallInPlace)
  801. {
  802.         file("pc\actors\Behemoth\xxx\BJmpULCm.ske",100,on,100,-1,_DIRcombatmode);
  803.         file("pc\actors\Behemoth\xxx\BJmpULNc.ske",100,on);
  804.  
  805.         trigger(_AllDir);
  806.         nrintframes(7);
  807.         ydeltafromzeroframe(off);
  808.         break(off);
  809.         connections(BeastfallInPlace);
  810. }
  811.  
  812. action(BeastfallBackwards)
  813. {
  814.         file("pc\actors\Behemoth\xxx\BJmpLBCm.ske",100,on,100,-1,_DIRcombatmode);
  815.         file("pc\actors\Behemoth\xxx\BJmpLBNc.ske",100,on);
  816.         trigger(_AllDir);
  817.         nrintframes(7);
  818.         ydeltafromzeroframe(off);
  819.         break(on);
  820.         connections(BeastfallBackwards);
  821. }
  822. action(BeastfallBL)
  823. {
  824.         file("pc\actors\Chot\xxx\arnbkjml.ske",100,on,100);
  825.         trigger(_AllDir);
  826.         nrintframes(7);
  827.         ydeltafromzeroframe(off);
  828.         break(on);
  829.         rotate(45)
  830.         connections(BeastfallBL);
  831. }
  832. action(BeastfallBR)
  833. {
  834.         file("pc\actors\Chot\xxx\arnbkjml.ske",100,on,100);
  835.         trigger(_AllDir);
  836.         nrintframes(7);
  837.         ydeltafromzeroframe(off);
  838.         break(on);
  839.         rotate(-45)
  840.         connections(BeastfallBR);
  841. }
  842.  
  843. action(Beastfall)    //Fall when falling from edge only
  844. {
  845.         file("pc\actors\Chot\xxx\MJmp5Lp.ske",100,on,150);
  846. //        file("pc\actors\Chot\xxx\afallfst.ske",100,on,150);
  847.         trigger(_AllDir);
  848.         AIclass(_AIClassBeastSkeleton);
  849.         nrintframes(7);
  850.         offset(8);
  851.         ydeltafromzeroframe(off);
  852.         break(off);
  853.         connections(BeastFall);
  854. }
  855.  
  856. action(BeastTouchDown)
  857. {
  858.         file("pc\actors\Abeast\xxx\AbJmpL.ske",100,on);
  859.         trigger(_DIRNotEndOfAnim);
  860.         AIclass(_AIClassBeastSkeleton);
  861.         nrintframes(5);
  862.         break(off);
  863. //        connections(BeastSpreadOut,BeastStandShoot,ChotBehEat,BeastTouchDown,BeastIdle);
  864.  
  865.         ActionSubRoutine(Sub_HeavyLand);
  866.  
  867.         connections(BeastSpreadOut,ChotBehEat,BeastIdle);
  868. }
  869.  
  870. /* *************   Other Moves ******************* */
  871.  
  872. action(BeastStomp)
  873. {
  874.         file("pc\actors\abeast\xxx\Mbestmp2.ske",100,off);
  875.         trigger(_DIRjump);
  876.         break(off);
  877.         connections(Beastidle);
  878. }
  879.  
  880.  
  881. action(BeastShot)
  882. {
  883.         file("pc\actors\abeast\xxx\mspan13.ske",100,on);
  884.         trigger(_allDIR);
  885.         break(off);
  886.         nrintframes(4);
  887.         intforloop(off);
  888.         //connections(BeastShot);
  889.         connections(Beastidle);
  890. }
  891.  
  892.  
  893. action(BeastPunch)
  894. {
  895.         file("pc\actors\abeast\xxx\Mbegrnd.ske",100,off);
  896.         trigger(_allDIR);
  897.         connections(Beastidle);
  898. }
  899.  
  900. action(BeastStandShoot)
  901. {
  902.         //file("pc\actors\abeast\xxx\mspan13.xxx",100,on);
  903.         file("pc\actors\Abeast\xxx\MbFrM1.ske",33,on);
  904.         file("pc\actors\Abeast\xxx\MbFrM2.ske",66,on);
  905.         file("pc\actors\Abeast\xxx\MbFrM3.ske",100,on);
  906.         trigger(_DIRshoot|_DIRhavegun);
  907.         break(off);
  908.         connections(BeastStandShoot,ChotBehEat,BeastTurnLeft,BeastTurnRight,BeastTurnLeftCombat,BeastTurnRightCombat,BeastIdle);
  909. }
  910.  
  911. action(BeastHitWallStandShoot)
  912. {
  913.         file("pc\actors\chot\xxx\Mfire3h2.ske",100,on);
  914.         trigger(_DIRshoot|_DIRHaveGun);
  915.         break(on);
  916.         nrintframes(4);
  917.         connections(BeastHitWallSpreadOut);
  918. }
  919.  
  920. action(BeastPossesed)
  921. {
  922.         file("pc\actors\Abeast\xxx\mblprosp.ske",100,off);
  923.         trigger(_allDIR);
  924.         AIclass(_AIClassBeastSkeleton);
  925.         break(off);
  926.         connections(Beastidle);
  927. }
  928. action(BeastDepossesed)
  929. {
  930.         file("pc\actors\chot\xxx\Mstun1g.ske",50,on);
  931.         file("pc\actors\chot\xxx\Mstun2g.ske",100,on);
  932.         trigger(_allDIR);
  933.         AIclass(_AIClassBeastSkeleton);
  934.         nrintframes(4);
  935.         break(off);
  936.         connections(Beastidle);
  937. }
  938.  
  939.  
  940. /* *************   Wounded ******************* */
  941.  
  942. action(BeastWoundLight)
  943. {
  944.         file("pc\actors\Behemoth\xxx\BWnd1Cm.ske",25,off,100,-1,_DIRcombatmode);
  945.         file("pc\actors\Behemoth\xxx\BWnd2Cm.ske",50,off,100,-1,_DIRcombatmode);
  946.         file("pc\actors\Behemoth\xxx\BWnd3Cm.ske",75,off,100,-1,_DIRcombatmode);
  947.         file("pc\actors\Behemoth\xxx\BWnd4Cm.ske",100,off,100,-1,_DIRcombatmode);
  948.  
  949.         file("pc\actors\Behemoth\xxx\BWnd1Nc.ske",25,off);
  950.         file("pc\actors\Behemoth\xxx\BWnd2Nc.ske",50,off);
  951.         file("pc\actors\Behemoth\xxx\BWnd3Nc.ske",75,off);
  952.         file("pc\actors\Behemoth\xxx\BWnd4Nc.ske",100,off);
  953.  
  954.         trigger(_DIRNotEndOfAnim);
  955.         AIclass(_AIClassBeastSkeleton);
  956.         break(on);
  957.         collision(on);
  958.         nrintframes(4);
  959. //        connections(BeastSpreadOut,BeastStandShoot,ChotBehEat,BeastWoundLight,BeastTurnLeft,BeastTurnRight,BeastIdle);
  960.         connections(BeastSpreadOut,ChotBehEat,BeastWoundLight,BeastTurnLeft,BeastTurnRight,BeastIdle);
  961. }
  962.  
  963. action(BeastWoundLightNoBreak)    //Identical to the one above except for break
  964. {
  965.         file("pc\actors\Chot\xxx\FstWnd1.ske",10,off);
  966.         file("pc\actors\Chot\xxx\FstWnd2.ske",100,off);
  967.         //file("pc\actors\Chot\xxx\FstWnd3.ske",100,off);
  968.         trigger(_DIRNotEndOfAnim);
  969.         AIclass(_AIClassBeastSkeleton);
  970.         break(off);
  971.         collision(on);
  972.         nrintframes(4);
  973. //        connections(BeastSpreadOut,BeastStandShoot,ChotBehEat,BeastWoundLight,BeastTurnLeft,BeastTurnRight,BeastIdle);
  974.         connections(BeastSpreadOut,ChotBehEat,BeastWoundLight,BeastTurnLeft,BeastTurnRight,BeastIdle);
  975. }
  976. /*
  977. action(BeastWoundFlyBack1)    //Hold frame
  978. {
  979.         file("pc\actors\Chot\xxx\ThBkHld1.ske",100,off);
  980.         trigger(_alldir);
  981.         break(on);
  982.         collision(on);
  983.         nrintframes(4);
  984.         connections(BeastWoundFlyBack2);
  985. }
  986.  
  987. action(BeastWoundFlyBack2)    //Hitting wall+hold frame
  988. {
  989.         file("pc\actors\Chot\xxx\ThBkhtwl.ske",100,off);
  990.         trigger(_DIRVerCol);
  991.         break(on);
  992.         collision(on);
  993.         nrintframes(4);
  994.         connections(BeastWoundFlyBack3);
  995. }
  996. action(BeastWoundFlyBack3)    //Land on ground
  997. {
  998.         file("pc\actors\Chot\xxx\ThBklnd.ske",100,off);
  999.         trigger(_DIRHorCol);
  1000.         break(off);
  1001.         collision(on);
  1002.         nrintframes(4);
  1003.         connections(BeastIdle);
  1004. }
  1005. */
  1006. /* *************   Burned, steamed and blind ******************* */
  1007.  
  1008.  
  1009.  
  1010. action(BeastStandDead)
  1011. {
  1012.         file("pc\actors\Behemoth\xxx\Bdeth2.ske",50,off);    //Sway and fall to back
  1013.         file("pc\actors\Behemoth\xxx\Bdeth1.ske",100,off);    //Sway and fall to face
  1014.         trigger(_allDIR);
  1015.         AIclass(_AIClassBeastSkeleton);
  1016.         break(off);
  1017.         nrintframes(12);
  1018. }
  1019. action(BeastFallDead)
  1020. {
  1021.         file("pc\actors\Abeast\xxx\MbDeath1.ske",100,off);
  1022.         trigger(_allDIR);
  1023.         AIclass(_AIClassBeastSkeleton);
  1024.         break(off);
  1025.         nrintframes(12);
  1026. }
  1027.  
  1028. /*
  1029.     Abeast Fire machine gun:
  1030.         Fires 6 bullets a second, one every 5th frame. 
  1031.         The animations should be played randomly:
  1032.             Abeast\prj\Handanim\MbFrM1.3ds
  1033.             Abeast\xxx\MbFrM1.ske
  1034.  
  1035.             Abeast\prj\Handanim\MbFrM2.3ds
  1036.             Abeast\xxx\MbFrM2.ske
  1037.  
  1038.             Abeast\prj\Handanim\MbFrM3.3ds
  1039.             Abeast\xxx\MbFrM3.ske
  1040.  
  1041.         Hold frame:
  1042.             Abeast\prj\Handanim\MbFrM0.3ds
  1043.             Abeast\xxx\MbFrM0.ske
  1044. */
  1045.  
  1046.