private Soldier GetAssignment(Square square, Grid grid, int armySize, int soldierNum) { if (SentriesPosted(grid) && Sentry.GetSentryPoint(grid).Contains(square)) { return(new Sentry(square)); } else if (!grid.EnemySpawnActive && grid.MySpawnActive && armySize > grid.Count(x => x == SquareType.EnemyBot) + 5) { return(new Kamikaze(square)); } else if (armySize > 6 && (soldierNum == 0 || soldierNum == 1)) { return(new Sentry(square)); } else if (square.DistanceFrom(grid.EnemySpawn) < 10 && grid.EnemySpawnActive) { return(new Demolitions(square)); } else { return(new Trooper(square)); } }
private bool SentriesPosted(Grid grid) { var sentryPoints = Sentry.GetSentryPoint(grid); return(sentryPoints.All(x => x == SquareType.PlayerBot)); }