private static bool IsPossibleAddTower(this GameLevel level, Vector2D gridPosition) { var index = level.GetIndexForMapData(gridPosition); if (level.UpdateExistingCreeps(gridPosition + Vector2D.Half) && level.UpdatePathsIfPossible()) { return(true); } level.MapData[index] = LevelTileType.Placeable; level.GetPathFinding().SetReachableAndUpdate(index); return(false); }