Esempio n. 1
0
    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>");
    }