private int ChooseBorder(ElevatorGeoForm form, ElevatorOpenness openness, float wealthLevel)
    {
        var border = new Dictionary <int, float>();

        int beginIndex = 0;

        if (openness == ElevatorOpenness.Opened)
        {
            beginIndex = 1;
        }

        if (form == ElevatorGeoForm.Squared)
        {
            for (int i = beginIndex; i < 4; i++)
            {
                border.Add(i, SquaredBorder[i].GetComponent <ProceduralEntity>().wealthValue);
            }
        }
        else
        {
            for (int i = beginIndex; i < 4; i++)
            {
                border.Add(i, RoundedBorder[i].GetComponent <ProceduralEntity>().wealthValue);
            }
        }

        return(ProceduralCalculations.GetRandomTFromPool(border, wealthLevel));
    }
    private GameObject LoadInsideShop(WealthLevelShop wealthLevelShop, SizeShop sizeShop, float wealthValue)
    {
        GameObject[] shops;
        if (wealthLevelShop == WealthLevelShop.Poor)
        {
            shops = (sizeShop == SizeShop.Small) ? poorSmall : poorBig;
        }
        else if (wealthLevelShop == WealthLevelShop.Normal)
        {
            shops = (sizeShop == SizeShop.Small) ? normalSmall : normalBig;
        }
        else
        {
            shops = (sizeShop == SizeShop.Small) ? richSmall : richBig;
        }

        var shopDict = new Dictionary <GameObject, float>();

        foreach (var obj in shops)
        {
            shopDict.Add(obj, obj.GetComponent <ProceduralEntity>().wealthValue);
        }

        return(Instantiate(ProceduralCalculations.GetRandomTFromPool(shopDict, wealthValue)));
    }
    private GameObject GetDoor(float wealthLevel)
    {
        var doorDictionary = new Dictionary <GameObject, float>();

        foreach (var door in doors)
        {
            doorDictionary.Add(door, door.GetComponent <ProceduralEntity>().wealthValue);
        }
        return(ProceduralCalculations.GetRandomTFromPool(doorDictionary, wealthLevel));
    }
    private ObstructedLocation GetLocationElevator(float wealthLevel)
    {
        var locations = new Dictionary <ObstructedLocation, float>();

        locations.Add(ObstructedLocation.Middle, MiddleValueProb);
        locations.Add(ObstructedLocation.Short, ShortValueProb);
        locations.Add(ObstructedLocation.Long, LongValueProb);

        return(ProceduralCalculations.GetRandomTFromPool(locations, wealthLevel));
    }
    private GameObject GetWall(GameObject[] walls, float wealthLevel)
    {
        var wallDictionary = new Dictionary <GameObject, float>();

        foreach (var wallGO in walls)
        {
            wallDictionary.Add(wallGO, wallGO.GetComponent <ProceduralEntity>().wealthValue);
        }

        return(ProceduralCalculations.GetRandomTFromPool(wallDictionary, wealthLevel));
    }
Exemple #6
0
    private StoreyPlace ChooseStoreyPlace(List <ObstructedLocation> obstructedLocations, float wealthLevel)
    {
        var placesAvailable = (from placeAvailable in places
                               where placeAvailable.place.GetComponent <ProceduralEntity>().obstructedLocation.Intersect(obstructedLocations).Count() == 0
                               select placeAvailable).ToList();

        var placesToPick = new Dictionary <StoreyPlace, float>();

        foreach (var placeAvailable in placesAvailable)
        {
            placesToPick.Add(placeAvailable, placeAvailable.place.GetComponent <ProceduralEntity>().wealthValue);
        }

        return(ProceduralCalculations.GetRandomTFromPool(placesToPick, wealthLevel));
    }
Exemple #7
0
    public void LoadMall(List <ObstructedLocation> obstructedLocation, float wealthLevel)
    {
        var mallDict = new Dictionary <GameObject, float>();

        foreach (var obj in contentMall)
        {
            if (!(obstructedLocation.Contains(ObstructedLocation.Middle) && obj.GetComponent <ProceduralEntity>().obstructedLocation.Contains(ObstructedLocation.Middle)))
            {
                mallDict.Add(obj, obj.GetComponent <ProceduralEntity>().wealthValue);
            }
        }

        GameObject temp = Instantiate(ProceduralCalculations.GetRandomTFromPool(mallDict, wealthLevel), ProceduralManager.ParentMap);

        temp.transform.position = Vector3.zero;
    }
Exemple #8
0
    private GameObject ChooseRoad(List <GameObject> roads, List <ObstructedLocation> obstructedLocations, float wealthLevel)
    {
        var roadsAvailable = (from roadAvailable in roads
                              where roadAvailable.GetComponent <ProceduralEntity>().obstructedLocation
                              .Intersect(obstructedLocations).Count() == 0
                              select roadAvailable).ToList();

        var road = new Dictionary <GameObject, float>();

        foreach (var roadAvailable in roadsAvailable)
        {
            road.Add(roadAvailable, roadAvailable.GetComponent <ProceduralEntity>().wealthValue);
        }

        return(ProceduralCalculations.GetRandomTFromPool(road, wealthLevel)); //-----------
    }
Exemple #9
0
    //public DirectionHub ChooseDirectionHub()
    public ObstructedPattern ChooseObstructedPattern(List <ObstructedLocation> obstructedLocations, ObstructedStair obstructedStair, float wealthLevel)
    {
        var obstructedPatterns = new Dictionary <ObstructedPattern, float>();

        var obstructedPatternsAvailable = (from oPAvailable in obstructedStair.ObstructedPatterns
                                           where oPAvailable.obstructedLocations.Intersect(obstructedLocations).Count() == 0
                                           select oPAvailable).ToList();


        foreach (var oPAvailable in obstructedPatternsAvailable)
        {
            obstructedPatterns.Add(oPAvailable, oPAvailable.wealthValue);
        }

        return(ProceduralCalculations.GetRandomTFromPool(obstructedPatterns, wealthLevel));
    }
Exemple #10
0
    public LengthStair ChooseLengthStair(float wealthLevel, bool isLongIntegrated)
    {
        var lengths = new Dictionary <LengthStair, float>();

        if (isLongIntegrated)
        {
            lengths.Add(LengthStair.Long, 1f);
            lengths.Add(LengthStair.Medium, .5f);
            lengths.Add(LengthStair.Short, 0f);
            return(ProceduralCalculations.GetRandomTFromPool(lengths, wealthLevel));
        }
        else
        {
            var firstLength  = new KeyValuePair <LengthStair, float>(LengthStair.Medium, 1f);
            var secondLength = new KeyValuePair <LengthStair, float>(LengthStair.Short, 0f);

            return(ProceduralCalculations.GetRandomFrom2Value(firstLength, secondLength, wealthLevel));
        }
    }
Exemple #11
0
    private void LoadApartment(float wealthValue, Vector3 position, SizeApartment sizeApartment)
    {
        GameObject[] rooms;

        switch (sizeApartment)
        {
        case SizeApartment.Small:
            rooms = smallContent;
            break;

        case SizeApartment.Medium:
            rooms = mediumContent;
            break;

        case SizeApartment.Big:
            rooms = bigContent;
            break;

        default:
            rooms = tinyContent;
            break;
        }

        var roomDict = new Dictionary <GameObject, float>();

        foreach (var room in rooms)
        {
            roomDict.Add(room, room.GetComponent <ProceduralEntity>().wealthValue);
        }

        GameObject temp = Instantiate(ProceduralCalculations.GetRandomTFromPool(roomDict, wealthValue), ProceduralManager.ParentMap);

        temp.transform.position = position;

        RotateRoom(temp.transform, position);
    }