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

  1.  
  2.  
  3. Action(movefast)
  4. {
  5.         trigger(_allDIR);
  6.         move(0,0,-5);
  7.         //loopframes(10,20);                                        //loopstartframe,loopendframe
  8. }
  9.  
  10. Action(moveslow)
  11. {
  12.         trigger(_allDIR);
  13.         move(0,0,-1);
  14.         //loopframes(10,20);                                        //loopstartframe,loopendframe
  15. }
  16.  
  17. Action(nomove)
  18. {
  19.         trigger(_allDIR);
  20.         //loopframes(10,20);                                        //loopstartframe,loopendframe
  21. }
  22.  
  23.  
  24. Actor(rat)
  25. {
  26.         file(RatHeader);
  27.  
  28.         rank(_RankSergeantL);
  29.  
  30.         startstate(statenormal);
  31.         startaction(nomove);
  32.  
  33.         float(_declare,RandomRatSound,0);
  34.  
  35.         if(VState==StateDead)
  36.         {
  37.             killactor();
  38.         }
  39.         else
  40.         {
  41.             if(VAICon==0)
  42.             {
  43.                 CallSub(BackGroundTriggerChecks);
  44.             }
  45.  
  46.             //random ratty noises
  47.             if(RandomRatSound<=0)
  48.             {
  49.                 float(_rnd2,RandomRatSound,100);
  50.                 float(_add,RandomRatSound,100);
  51.                 if(vrnd<50)
  52.                 {
  53.                     sample(SFXrat3,-1);
  54.                 }
  55.                 else
  56.                 {
  57.                     sample(SFXrat6,-1);
  58.                 }
  59.             }
  60.             else
  61.             {
  62.                 float(_sub,RandomRatSound,1);
  63.             }
  64.  
  65.             if(vaicon!=0)
  66.             {
  67.                 Direction(_clr,_DIRaiRemoveFlags);
  68.  
  69.                 if(VAIhaspath==0)
  70.                 {
  71.                     call(PickNewNode);
  72.                 }
  73.  
  74.                 call(AIPickdest,10);
  75.                 if(vtrigger==_DIRtempflag)
  76.                 {
  77.                     call(PickNewNode);
  78.                 }
  79.                 CallSub(Sub_AI1WayAlignToPickDestAngle);
  80.                 if(VTrigger==_DIRleft)
  81.                 {
  82.                     turn(0,-40,0);
  83.                 }
  84.                 elseif(VTrigger==_DIRright)
  85.                 {
  86.                     turn(0,40,0);
  87.                 }
  88.                 if(vpickdestanglecorr>512 || vpickdestanglecorr<-512)    //might need bigger numbers
  89.                 {
  90.                     move(0,0,-1);
  91.                 }
  92.                 else
  93.                 {
  94.                     move(0,0,-10);
  95.                 }
  96.             }
  97.             else
  98.             {
  99.                 if(vtrigger==_DIRpossesion)
  100.                 {
  101.                     Camera(rat_camera_distance,rat_camera_angle);
  102.                     Target(rat_camera_Tdistance,rat_camera_Tangle);
  103.                     callsub(Sub_InitPossesion,NoMove,NoMove,NoMove);
  104.                     FirstPerson(1);
  105.                 }
  106.                 elseif(vtrigger==_DIRdepossesion)
  107.                 {
  108.                     callsub(Sub_InitDepossesion,MoveSlow,MoveSlow,MoveSlow);
  109.                     FirstPerson(0);
  110.                 }
  111.  
  112.                 if(vtrigger==_DIRforward)
  113.                 {
  114.                     move(0,0,-10);
  115.                 }
  116.                 elseif(vtrigger==_DIRbackward)
  117.                 {
  118.                     move(0,0,5);
  119.                 }
  120.             }
  121.  
  122.             if(VHealth<=0)
  123.             {
  124.                 callsub(Sub_DieBitch);
  125.             }
  126.         }
  127. }
  128.