public Point GetTarget(ref Pac pac)
        {
            Point target   = null;
            Pac   enemyPac = PacController.GetClosestEnemy(pac);
            //Pac enemyPac = PacController.GetClosestVisibleEnemy(pac, true);
            int distanceToEnemy;

            if (enemyPac != null)
            {
                distanceToEnemy = pac.origin.GetDistanceTo(enemyPac.origin);
                PacType strongerThanMe  = Common.GetStrongerPacType(pac.pacType);
                PacType strongerThanHim = Common.GetStrongerPacType(enemyPac.pacType);

                Console.Error.WriteLine("ATTACK! pacType" + pac.pacType.ToString() + " strongerThanHim:" + strongerThanHim.ToString() + " distance:" + distanceToEnemy.ToString());
                if (pac.pacType == strongerThanHim && distanceToEnemy <= 6)
                {
                    pac.shouldActivateSpeed = true;
                    pac.inPursuit           = true;
                    target = enemyPac.origin;
                }
                else
                {
                    if (pac.cooldown > (enemyPac.speedTurnsLeft > 0 ? distanceToEnemy / 2 : distanceToEnemy))
                    {
                        //Bezanija!!!
                        //Level.GetClosestJunctionInDirection();
                    }
                }
            }
            Console.Error.WriteLine("PacId:" + pac.id + " Strategy: Attack " + ((target == null) ? "null" : target.ToString()) + " inPursuit:" + pac.inPursuit.ToString());
            return(target);
        }
Example #2
0
 public void Switch(PacType toType)
 {
     Console.Write($"SWITCH {Id >> 1} {toType.ToString().ToUpper()} |");
 }