private static void ShootAndRun(IPlayerApi api)
    {
        if (IsDodge())
        {
            if ((api.GetHealth() < 40) && (api.GetNumberofVisibleMedkits() > 0))
            {
                api.GetNearestMedkit();
                return;
            }

            if (api.GetNumberOfVisibleBazookas() > 0)
            {
                api.GetNearestBazooka();
            }
            else
            {
                api.MoveToRandomLocation();
            }

            return;
        }

        Shoot(api);

        _enemyPosition = api.GetEnemyPosition();
    }
 public void Think(IPlayerApi api)
 {
     if (!api.GetEnemySighted())
     {
         if ((api.GetHealth() < 100) && (api.GetNumberofVisibleMedkits() > 0))
         {
             api.GetNearestMedkit();
         }
         else
         {
             if ((api.GetAmmo() < 3) && (api.GetNumberOfVisibleBazookas() > 0))
             {
                 api.GetNearestBazooka();
             }
             else
             {
                 api.MoveToRandomLocation();
             }
         }
     }
     else
     {
         if ((api.GetHealth() < 40) && (api.GetNumberofVisibleMedkits() > 0))
         {
             api.GetNearestMedkit();
         }
         else
         {
             if (api.GetAmmo() == 0)
             {
                 api.Stop();
                 api.ShootBullet(api.GetEnemyPosition());
             }
             else
             {
                 api.Stop();
                 api.ShootRocket(api.GetEnemyPosition());
             }
         }
     }
 }
Exemplo n.º 3
0
    private static Point Aim(IPlayerApi api, int factor)
    {
        var pos = api.GetEnemyPosition();
        if (_enemyPosition != null)
        {
            var deltaX = pos.X - _enemyPosition.X;
            var deltaY = pos.Y - _enemyPosition.Y;

            //todo: add distance

            return new Point(pos.X + factor * deltaX, pos.Y + factor * deltaY);
        }

        return pos;
    }
    private static Point Aim(IPlayerApi api, int factor)
    {
        var pos = api.GetEnemyPosition();

        if (_enemyPosition != null)
        {
            var deltaX = pos.X - _enemyPosition.X;
            var deltaY = pos.Y - _enemyPosition.Y;

            //todo: add distance

            return(new Point(pos.X + factor * deltaX, pos.Y + factor * deltaY));
        }

        return(pos);
    }
Exemplo n.º 5
0
    private static void ShootAndRun(IPlayerApi api)
    {
        if (IsDodge())
        {
            if ((api.GetHealth() < 40) && (api.GetNumberofVisibleMedkits() > 0))
            {
                api.GetNearestMedkit();
                return;
            }

            if (api.GetNumberOfVisibleBazookas() > 0)
            {
                api.GetNearestBazooka();
            }
            else
            {
                api.MoveToRandomLocation();
            }

            return;
        }

        Shoot(api);

        _enemyPosition = api.GetEnemyPosition();
    }