home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 51 / PCGamer51_17Demos.iso / games / colobotdemo / colobotdemo10e.exe / script / ant01.txt next >
Text File  |  2001-06-10  |  1KB  |  54 lines

  1. extern void object::Attack( )
  2. {
  3.     object    p;
  4.     float    dist, prox;
  5.     point    nav1, nav2, dest;
  6.     boolean    advance = true;
  7.  
  8.     errmode(0);  // ne stoppe pas si erreur
  9.     while ( ismovie() != 0 )  wait(1);
  10.  
  11.     while ( true )
  12.     {
  13.         p = radar(WingedShooter, 0, 360, 0, 50);
  14.         if ( p == null )
  15.         {
  16.             nav1.x = position.x-5;
  17.             nav1.y = position.y;
  18.             nav2.x = position.x+5;
  19.             nav2.y = position.y;
  20.  
  21.             while ( true )
  22.             {
  23.                 goto(nav1);
  24.                 p = radar(WingedShooter, 0, 360, 0, 50);
  25.                 if ( p != null )  break;
  26.  
  27.                 goto(nav2);
  28.                 p = radar(WingedShooter, 0, 360, 0, 50);
  29.                 if ( p != null )  break;
  30.             }
  31.         }
  32.         else
  33.         {
  34.             dist = distance(p.position, position);
  35.             if ( dist <= 40 && !advance )
  36.             {
  37.                 fire(p.position);
  38.                 advance = true;
  39.             }
  40.             else
  41.             {
  42.                 prox = dist-5;
  43.                 if ( prox > 40 )  prox = 40;
  44.                 if ( prox <  5 )  prox = 5;
  45.                 dest.x = (position.x-p.position.x)*prox/dist + p.position.x;
  46.                 dest.y = (position.y-p.position.y)*prox/dist + p.position.y;
  47.                 dest.z = (position.z-p.position.z)*prox/dist + p.position.z;
  48.                 goto(dest);
  49.                 advance = false;
  50.             }
  51.         }
  52.     }
  53. }
  54.