Пример #1
0
        public int BuildingCost(Building building)
        {
            BuildingContainer buildingContainer = GetBuildingContainer(building);

            return((int)(building.Cost * Mathf.Pow(1 + Currency.PercentIncr,
                                                   buildingContainer == null ? 0 : buildingContainer.Count)));
        }
Пример #2
0
        public BuildingContainer GetBuildingContainer(Building building)
        {
            BuildingContainer buildingContainer = null;

            foreach (BuildingContainer container in EarnedBuildings)
            {
                if (container.Building == building)
                {
                    buildingContainer = container;
                    break;
                }
            }

            return(buildingContainer);
        }
Пример #3
0
        public void BuyBuilding(string id)
        {
            Building building = GetBuildingByName(id);

            if (building == null)
            {
                return;
            }

            if (!CanBuild(building))
            {
                return;
            }

            BuildingContainer buildingContainer = GetBuildingContainer(building);

            float cost = buildingContainer == null ? building.Cost : BuildingCost(building);

            if (!Deduct(cost))
            {
                return;
            }

            if (buildingContainer != null)
            {
                buildingContainer.Count++;
            }
            else
            {
                Array.Resize(ref EarnedBuildings, EarnedBuildings.Length + 1);
                EarnedBuildings[EarnedBuildings.Length - 1] = new BuildingContainer
                {
                    Building = building,
                    Count    = 1
                };
            }

            UpdateUnlocks();
            OnBuyBuilding.Invoke();
        }