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); }
public void Switch(PacType toType) { Console.Write($"SWITCH {Id >> 1} {toType.ToString().ToUpper()} |"); }