Skip to content
Snippets Groups Projects
Commit 27edacba authored by Matti Loimaranta's avatar Matti Loimaranta
Browse files

Upgrade max levels based on city level

parent 3cdfd5bc
No related branches found
No related tags found
No related merge requests found
......@@ -22,7 +22,11 @@ public class CollectorUpgrade : Upgrade
UpgradeTargets target = UpgradeTargets.collector;
City city = gameObject.GetComponent<City>();
int currentLevel = city.GetLevel(target);
city.UseResources(GetPrices(currentLevel));
city.AddCollector();
if (currentLevel <= city.GetLevel(UpgradeTargets.city) * maxLevelModifier)
{
city.UseResources(GetPrices(currentLevel));
city.AddCollector();
}
}
}
......@@ -21,8 +21,12 @@ public class PopulationUpgrade : Upgrade
UpgradeTargets target = UpgradeTargets.population;
City city = gameObject.GetComponent<City>();
int currentLevel = city.GetLevel(target);
city.UseResources(GetPrices(currentLevel));
city.AddPopulation(currentLevel * 10);
Debug.Log("population upgraded");
if (currentLevel <= city.GetLevel(UpgradeTargets.city) * maxLevelModifier)
{
city.UseResources(GetPrices(currentLevel));
city.AddPopulation(currentLevel * 10);
Debug.Log("population upgraded");
}
}
}
......@@ -21,9 +21,13 @@ public class ResourceCapacityUpgrade : Upgrade
UpgradeTargets target = UpgradeTargets.capacity;
City city = gameObject.GetComponent<City>();
int currentLevel = city.GetLevel(target);
city.UseResources((GetPrices(currentLevel)));
city.IncreaseCapacity(currentLevel * 100);
Debug.Log("Capacity upgraded");
if (currentLevel <= city.GetLevel(UpgradeTargets.city) * maxLevelModifier)
{
city.UseResources((GetPrices(currentLevel)));
city.IncreaseCapacity(currentLevel * 100);
Debug.Log("Capacity upgraded");
}
}
}
......@@ -7,7 +7,7 @@ public class ResourceEfficiencyUpgrade : Upgrade
// Start is called before the first frame update
void Start()
{
maxLevelModifier = 5;
}
// Update is called once per frame
......@@ -19,8 +19,11 @@ public class ResourceEfficiencyUpgrade : Upgrade
public void UpgradeEfficiency()
{
City city = gameObject.GetComponent<City>();
IncreaseEfficiencyLevel();
city.UseResources(GetPrices(GetEfficiencyLevel() * GetEfficiencyLevel()));
Debug.Log("Efficienfy upgraded to: " + GetEfficiencyLevel());
if (GetEfficiencyLevel() <= maxLevelModifier)
{
IncreaseEfficiencyLevel();
city.UseResources(GetPrices(GetEfficiencyLevel() * GetEfficiencyLevel()));
Debug.Log("Efficienfy upgraded to: " + GetEfficiencyLevel());
}
}
}
......@@ -22,10 +22,14 @@ public class RoadUpgrade : Upgrade
UpgradeTargets target = UpgradeTargets.speed;
Road road = gameObject.GetComponent<Road>();
City city = gameObject.GetComponent<City>();
float currentLevel = road.GetLevel(target);
city.UseResources(GetPrices(currentLevel));
road.IncreaseSpeed(1 / currentLevel);
Debug.Log("Road upgraded");
int currentLevel = (int) road.GetLevel(target);
if (currentLevel <= city.GetLevel(UpgradeTargets.city) * maxLevelModifier)
{
city.UseResources(GetPrices(currentLevel));
road.IncreaseSpeed(1 / currentLevel);
Debug.Log("Road upgraded");
}
}
}
......@@ -8,7 +8,12 @@ public abstract class Upgrade : MonoBehaviour
private float efficiencyLevel = 1;
private Dictionary<Resources, int> resources = new Dictionary<Resources, int>();
private Dictionary<Resource, int> resources = new Dictionary<Resource, int>()
{
{ null , 1},
{ null , 1},
{ null , 0},
};
// Start is called before the first frame update
void Start()
......@@ -58,7 +63,7 @@ public abstract class Upgrade : MonoBehaviour
public List<int> GetPrices(float modifier)
{
List<int> prices = new List<int>();
foreach(KeyValuePair<Resources, int> key in resources)
foreach(KeyValuePair<Resource, int> key in resources)
{
prices.Add((int) (key.Value * modifier * 50 * GetEfficiency()));
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment