public int BuildingCost(Building building) { BuildingContainer buildingContainer = GetBuildingContainer(building); return((int)(building.Cost * Mathf.Pow(1 + Currency.PercentIncr, buildingContainer == null ? 0 : buildingContainer.Count))); }
public BuildingContainer GetBuildingContainer(Building building) { BuildingContainer buildingContainer = null; foreach (BuildingContainer container in EarnedBuildings) { if (container.Building == building) { buildingContainer = container; break; } } return(buildingContainer); }
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(); }