private PossibleTile?GetNextPatrolTile() { if (previousTile.HasValue) { var position = transform.position + (transform.position - previousTile.Value); position = GridHelper.GetNearestTile(position); var target = new PossibleTile { position = position, cost = motor.ValidPath(position) }; if (target.cost > 0) { return(target); } } return(null); }
public void SetUpCapabilities(RoadTileConfiguration newRoadTileConfiguration) { Debug.Log("<color=green> Started seting up possibilities </color>"); if (!allInGameAvailableRoadConfigs.Contains(newRoadTileConfiguration)) { allInGameAvailableRoadConfigs.Add(newRoadTileConfiguration); } List <RoadTileConfiguration> possibleConfigsForNewRoad = PossibleRoadConfigsFor(newRoadTileConfiguration); for (int i = 0; i < allInGameAvailableRoadConfigs.Count; i++) { for (int j = 0; j < possibleConfigsForNewRoad.Count; j++) { RoadTileConfiguration concreteConfigFromAllAvailable = allInGameAvailableRoadConfigs[i]; RoadTileConfiguration concreteConfigFromAllPossible = possibleConfigsForNewRoad[j]; if (concreteConfigFromAllAvailable.asphaltType == concreteConfigFromAllPossible.asphaltType && concreteConfigFromAllAvailable.propsType == concreteConfigFromAllPossible.propsType && concreteConfigFromAllAvailable.shapeType == concreteConfigFromAllPossible.shapeType) { PossibleTile possibleTile = new PossibleTile(); possibleTile.TileName = concreteConfigFromAllAvailable.tileName; possibleTile.TileWeight = 0; if (!currentAvailablePossibleTileNames.Contains(possibleTile.TileName)) { Debug.Log($"Here was added a new possible tile with name {concreteConfigFromAllAvailable.tileName}"); currentAvailablePossibleTileNames.Add(possibleTile.TileName); PossibleTilesForThis.Add(possibleTile); } } } } SetUpWeights(); Debug.Log("<color=red> Stopped seting up possibilities </color>"); }