Beispiel #1
0
    public Chest(ChestSdo sdo) : base("0", BuildingPrefabStore.GetChestPrefab(), true)
    {
        _contents = new Dictionary <Guid, Item>();

        foreach (var itemId in sdo.ContentIds)
        {
            var item = WorldData.Instance.Items[itemId];
            _contents.Add(item.Id, item);
        }
    }
Beispiel #2
0
    private void Furnish(bool isStartingBuilding = false)
    {
        var maxFurniture = Height * Width / 20;

        var minFurniture = Height * Width / 40;

        if (minFurniture < 4)
        {
            minFurniture = 4;
        }

        var numFurnitureToPlace = Random.Range(minFurniture, maxFurniture);

        var tilesAdjacentToWall = FindAllTilesAdjacentToWall();

        for (var i = 0; i < numFurnitureToPlace; i++)
        {
            for (var numTries = 0; numTries < MaxTriesToPlaceObject; numTries++)
            {
                var row    = Random.Range(0, Height);
                var column = Random.Range(0, Width);

                if (isStartingBuilding)
                {
                    if ((row == 2 || row == 1) && (column == 1 || column == 2))
                    {
                        continue;
                    }
                }

                if (tilesAdjacentToWall[row, column] && Props[row, column] == null)
                {
                    //todo pick furniture based on room type

                    var roll = Random.Range(0, 100);

                    if (roll < 58)
                    {
                        var furniturePrefab = BuildingPrefabStore.GetRandomBasicFurniturePrefab();
                        Props[row, column] = new Furniture(furniturePrefab.Key, furniturePrefab.Value);
                    }
                    else
                    {
                        var chestPrefab = BuildingPrefabStore.GetChestPrefab();
                        Props[row, column] = new Chest("0", chestPrefab);
                    }

                    break;
                }
            }
        }
    }