diff --git a/Assets/Scripts/City/City.cs b/Assets/Scripts/City/City.cs index 36f61e31b2f6688cbcd294309493ed2a87f01a7e..3d541d577393f21d6631bcc32510e289efab8e47 100644 --- a/Assets/Scripts/City/City.cs +++ b/Assets/Scripts/City/City.cs @@ -107,7 +107,19 @@ public class City : MonoBehaviour this.population += v; } + private void Update() + { + if (Input.GetKey(KeyCode.S)) + { + GameObject go = new GameObject(); + Quarry q = go.AddComponent<Quarry>(); + + AddResource(q, 4000); + AddResource(go.AddComponent<Forest>(), 4000); + AddResource(go.AddComponent<BerryBush>(), 4000); + } + } /** * Lisaa resurssia r, maaran 'amount' verran (amount >= 0). * Voidaan lisata maximissaan resurssin maximikapasiteettiin asti, @@ -163,10 +175,11 @@ public class City : MonoBehaviour { for(int k = 0; k<resurssit.Count; k++) { - if(resurssit[k].GetType().Equals(lista[i].GetType())) - resurssit.Remove(poolit[j].GetResource()); + if (resurssit[k].GetType().Equals(lista[i].GetType())) + resurssit.RemoveAt(k); } + Debug.Log(poolit[j].GetAmount()); if (poolit[j].GetAmount() < amount) { return false; @@ -174,7 +187,7 @@ public class City : MonoBehaviour } } } - + Debug.Log(resurssit.Count); return resurssit.Count == 0; } /** @@ -204,6 +217,7 @@ public class City : MonoBehaviour } private void OnMouseEnter() { - Instantiate<GameObject>(shopPreFab); + GameObject go = Instantiate<GameObject>(shopPreFab); + go.transform.SetParent(transform); } } diff --git a/Assets/Scripts/City/ResourcePool.cs b/Assets/Scripts/City/ResourcePool.cs index bfb1ad059f74605ab3cfa4625d3d2f0b3eef6ba7..7125c6a429b5a58aca5607f87e7479cd9ca80f9a 100644 --- a/Assets/Scripts/City/ResourcePool.cs +++ b/Assets/Scripts/City/ResourcePool.cs @@ -28,6 +28,7 @@ public class ResourcePool : MonoBehaviour // Start is called before the first frame update void Start() { + } public void SetResource(Resource r) { diff --git a/Assets/Scripts/Resources/BerryBush.cs b/Assets/Scripts/Resources/BerryBush.cs index 797fb98aa170407edd0a99fe6665388247d4737b..a59fb0c266193d36c1604fd310c3d9ded8408302 100644 --- a/Assets/Scripts/Resources/BerryBush.cs +++ b/Assets/Scripts/Resources/BerryBush.cs @@ -32,6 +32,7 @@ public class BerryBush : Resource public override void refreshSprite() { + if (sprites == null) return; if (getAmount() < 1) { gameObject.GetComponent<SpriteRenderer>().sprite = sprites[5]; diff --git a/Assets/Scripts/Resources/Forest.cs b/Assets/Scripts/Resources/Forest.cs index 89d95640fb37c4d177290d8c524b5982e5dfd04a..479bc3769ced9b80243de47d65fd66937b397fce 100644 --- a/Assets/Scripts/Resources/Forest.cs +++ b/Assets/Scripts/Resources/Forest.cs @@ -22,6 +22,7 @@ public class Forest : Resource public override void refreshSprite() { + if (sprites == null) return; if (getAmount() < 125) { gameObject.GetComponent<SpriteRenderer>().sprite = sprites[7]; diff --git a/Assets/Scripts/Resources/Quarry.cs b/Assets/Scripts/Resources/Quarry.cs index 4d2136b445f644cab6d5d7b895c58303f95ae274..d9369494e23d9d56d6e60a2af09f78edce1a7454 100644 --- a/Assets/Scripts/Resources/Quarry.cs +++ b/Assets/Scripts/Resources/Quarry.cs @@ -15,6 +15,7 @@ public class Quarry : Resource public override void refreshSprite() { + if (sprites == null) return; if (getAmount() < 100) { gameObject.GetComponent<SpriteRenderer>().sprite = sprites[5]; diff --git a/Assets/Scripts/UI/Border.cs b/Assets/Scripts/UI/Border.cs index 1ab79087a14694a315c71a20335d5195df85c639..db78d55b4e219640c62f7200069781f91783ceef 100644 --- a/Assets/Scripts/UI/Border.cs +++ b/Assets/Scripts/UI/Border.cs @@ -18,7 +18,6 @@ public class Border : MonoBehaviour private void OnMouseEnter() { - Debug.Log("Kauppa kiinni"); Destroy(transform.parent.gameObject); } } diff --git a/Assets/Scripts/UI/BuyCapacity.cs b/Assets/Scripts/UI/BuyCapacity.cs index eccf28eae58ff6dcadbd47880cf91e40f7b71933..0ed57f6cfb39d1f6ebafedd5d4934df77ec5017e 100644 --- a/Assets/Scripts/UI/BuyCapacity.cs +++ b/Assets/Scripts/UI/BuyCapacity.cs @@ -4,6 +4,7 @@ using UnityEngine; public class BuyCapacity : MonoBehaviour { + // Start is called before the first frame update void Start() { @@ -20,7 +21,23 @@ public class BuyCapacity : MonoBehaviour { if (Input.GetMouseButtonDown(1)) { - Debug.Log("Ostit Tilaa"); + City c = transform.root.gameObject.GetComponent<City>(); + if (c.IsSufficientResources(createResourceGO(), 50)) + { + List<int> cost = new List<int>() { 50, 50, 50 }; + c.UseResources(cost); + c.IncreaseCapacity(50); + + EventSystem.EventHappened(EventType.UpgradeBuilt); + } } } + + private List<Resource> createResourceGO() { + GameObject go = new GameObject(); + go.AddComponent<Forest>(); + go.AddComponent<Quarry>(); + go.AddComponent<BerryBush>(); + return new List<Resource>(go.GetComponents<Resource>()); + } } diff --git a/Assets/Scripts/UI/BuyCity.cs b/Assets/Scripts/UI/BuyCity.cs index 71795aff48c302bbf8f5cd5641822a4522ef54fa..e9c49804f3c76f2949e9779f440b1f1f3ba0b2ae 100644 --- a/Assets/Scripts/UI/BuyCity.cs +++ b/Assets/Scripts/UI/BuyCity.cs @@ -11,20 +11,35 @@ public class BuyCity : MonoBehaviour // Start is called before the first frame update void Start() { - + } // Update is called once per frame void Update() { - + } private void OnMouseOver() { if (Input.GetMouseButtonDown(1)) { - Instantiate<GameObject>(endGame); + City c = transform.root.gameObject.GetComponent<City>(); + + if (c.population > 200 && c.IsSufficientResources(createResourceGO(), 150)) + { + Instantiate<GameObject>(endGame); + } } } + + private List<Resource> createResourceGO() + { + GameObject go = new GameObject(); + go.AddComponent<Forest>(); + go.AddComponent<Quarry>(); + go.AddComponent<BerryBush>(); + return new List<Resource>(go.GetComponents<Resource>()); + } } + diff --git a/Assets/Scripts/UI/BuyCollector.cs b/Assets/Scripts/UI/BuyCollector.cs index 3af7ce3e8a5ff41fb4619d9f3678e49d27136026..d74e9c6a43f70da97be8dbc07fb966a406447a12 100644 --- a/Assets/Scripts/UI/BuyCollector.cs +++ b/Assets/Scripts/UI/BuyCollector.cs @@ -20,7 +20,26 @@ public class BuyCollector : MonoBehaviour { if (Input.GetMouseButtonDown(1)) { - Debug.Log("Ostit Tyovoimaa"); + City c = transform.root.gameObject.GetComponent<City>(); + + + if (c.IsSufficientResources(createResourceGO(), 50)) + { + List<int> cost = new List<int>() { 50, 50, 50 }; + c.UseResources(cost); + c.AddCollector(); + + EventSystem.EventHappened(EventType.UpgradeBuilt); + } } } + + private List<Resource> createResourceGO() + { + GameObject go = new GameObject(); + go.AddComponent<Forest>(); + go.AddComponent<Quarry>(); + go.AddComponent<BerryBush>(); + return new List<Resource>(go.GetComponents<Resource>()); + } } diff --git a/Assets/Scripts/UI/BuyEfficiency.cs b/Assets/Scripts/UI/BuyEfficiency.cs index e0dc181f72f7870d7ad0a2b52c0c88d16b9eee80..feb55dd3657526db35cd416c2987c6ecd9cce90f 100644 --- a/Assets/Scripts/UI/BuyEfficiency.cs +++ b/Assets/Scripts/UI/BuyEfficiency.cs @@ -20,9 +20,15 @@ public class BuyEfficiency : MonoBehaviour { if (Input.GetMouseButtonDown(1)) { - Debug.Log("Ostit Tehokkuutta"); - ResourceEfficiencyUpgrade reu = gameObject.GetComponent<ResourceEfficiencyUpgrade>(); - reu.UpgradeEfficiency(); + List<Resource> resources = new List<Resource>(3); + City c = transform.root.gameObject.GetComponent<City>(); + if (c.IsSufficientResources(resources, 50)) + { + List<int> cost = new List<int>() { 50, 50, 50 }; + c.UseResources(cost); + + EventSystem.EventHappened(EventType.UpgradeBuilt); + } } } } diff --git a/Assets/Scripts/UI/BuyPopulation.cs b/Assets/Scripts/UI/BuyPopulation.cs index d746afbb26df5dab5832f666f2b5beef125533f4..2da19d4b43ddf97cfc04d28ae5bc8e7e1dc2c559 100644 --- a/Assets/Scripts/UI/BuyPopulation.cs +++ b/Assets/Scripts/UI/BuyPopulation.cs @@ -20,8 +20,27 @@ public class BuyPopulation : MonoBehaviour { if (Input.GetMouseButtonDown(1)) { - PopulationUpgrade pop = gameObject.GetComponent<PopulationUpgrade>(); - pop.UpgradePopulation(); + City c = transform.root.gameObject.GetComponent<City>(); + List<int> cost = new List<int>() { 50, 50, 50 }; + if (c.IsSufficientResources(createResourceGO(), 50)) + { + c.UseResources(cost); + c.AddPopulation(50); + + EventSystem.EventHappened(EventType.UpgradeBuilt); + } else + { + Debug.Log("Not enough resources"); + } } } + + private List<Resource> createResourceGO() + { + GameObject go = new GameObject(); + go.AddComponent<Forest>(); + go.AddComponent<Quarry>(); + go.AddComponent<BerryBush>(); + return new List<Resource>(go.GetComponents<Resource>()); + } } diff --git a/Assets/Scripts/UI/BuySpeed.cs b/Assets/Scripts/UI/BuySpeed.cs index 52b0f92d83270581be0f57948b97a4105fc2f952..22e3bfdad0c34f45e4a75afd795620b953bbef3f 100644 --- a/Assets/Scripts/UI/BuySpeed.cs +++ b/Assets/Scripts/UI/BuySpeed.cs @@ -20,7 +20,24 @@ public class BuySpeed : MonoBehaviour { if (Input.GetMouseButtonDown(1)) { - Debug.Log("Ostit Nopeutta"); + City c = transform.root.gameObject.GetComponent<City>(); + if (c.IsSufficientResources(createResourceGO(), 50)) + { + c.UpgradeWorkerSpeed(); + List<int> cost = new List<int>() { 50, 50, 50 }; + c.UseResources(cost); + + EventSystem.EventHappened(EventType.UpgradeBuilt); + } } } + + private List<Resource> createResourceGO() + { + GameObject go = new GameObject(); + go.AddComponent<Forest>(); + go.AddComponent<Quarry>(); + go.AddComponent<BerryBush>(); + return new List<Resource>(go.GetComponents<Resource>()); + } } diff --git a/Assets/Scripts/UI/UpgradeShop.cs b/Assets/Scripts/UI/UpgradeShop.cs index e68e8d001d296926d90b87d2771b3c9a341bec22..228458b368a7db4862173bd374d9fddc883d4dcb 100644 --- a/Assets/Scripts/UI/UpgradeShop.cs +++ b/Assets/Scripts/UI/UpgradeShop.cs @@ -19,6 +19,6 @@ public class UpgradeShop : MonoBehaviour private void OnMouseEnter() { - Debug.Log("Kauppa auki"); + } } diff --git a/Assets/Scripts/UI/UsableResources.cs b/Assets/Scripts/UI/UsableResources.cs new file mode 100644 index 0000000000000000000000000000000000000000..fad98447aaf46d7f7f1e7c339f84f90031aa767a --- /dev/null +++ b/Assets/Scripts/UI/UsableResources.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class UsableResources : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/UI/UsableResources.cs.meta b/Assets/Scripts/UI/UsableResources.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..ef47aea0a173a56999fd3216c86536bb75eaaaab --- /dev/null +++ b/Assets/Scripts/UI/UsableResources.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 132e9ec36ed413a4b868b617846af5e7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Upgrades/CollectorUpgrade.cs b/Assets/Scripts/Upgrades/CollectorUpgrade.cs index 698c69f81df2271713aa2f59445cbd456d772dcb..00d6f3c3f00cd3769e5846220d469299fa6e49f5 100644 --- a/Assets/Scripts/Upgrades/CollectorUpgrade.cs +++ b/Assets/Scripts/Upgrades/CollectorUpgrade.cs @@ -23,8 +23,9 @@ public class CollectorUpgrade : Upgrade City city = gameObject.GetComponent<City>(); int currentLevel = city.GetLevel(target); - if (currentLevel <= city.GetLevel(UpgradeTargets.city) * maxLevelModifier) + if (currentLevel <= maxLevelModifier) { + Debug.Log("Collector Upgraded"); city.UseResources(GetPrices(currentLevel)); city.AddCollector(); } diff --git a/Assets/Scripts/Upgrades/PopulationUpgrade.cs b/Assets/Scripts/Upgrades/PopulationUpgrade.cs index e53bb682b2e5661e566d529373ee74dfc4634541..7ab9a5c28cab234c007d8a26d93761ef03a50513 100644 --- a/Assets/Scripts/Upgrades/PopulationUpgrade.cs +++ b/Assets/Scripts/Upgrades/PopulationUpgrade.cs @@ -39,9 +39,10 @@ public class PopulationUpgrade : Upgrade break; } */ - if (currentLevel <= city.GetLevel(UpgradeTargets.city) * maxLevelModifier) + if (currentLevel <= maxLevelModifier) { city.UseResources(GetPrices(currentLevel + 1)); + city.populationLevel++; city.AddPopulation(currentLevel * 10); Debug.Log("population upgraded"); } diff --git a/Assets/Scripts/Upgrades/ResourceCapacityUpgrade.cs b/Assets/Scripts/Upgrades/ResourceCapacityUpgrade.cs index 3f17ea3427668157c75c22cb8f418d61ca06e607..b76775598b3eb8f3d37f535ff103657ef360a629 100644 --- a/Assets/Scripts/Upgrades/ResourceCapacityUpgrade.cs +++ b/Assets/Scripts/Upgrades/ResourceCapacityUpgrade.cs @@ -22,10 +22,11 @@ public class ResourceCapacityUpgrade : Upgrade City city = gameObject.GetComponent<City>(); int currentLevel = city.GetLevel(target); - if (currentLevel <= city.GetLevel(UpgradeTargets.city) * maxLevelModifier) + if (currentLevel <= maxLevelModifier) { city.UseResources((GetPrices(currentLevel))); - city.IncreaseCapacity(currentLevel * 100); + city.resourcePoolLevel++; + city.IncreaseCapacity(currentLevel * 100); Debug.Log("Capacity upgraded"); } } diff --git a/Assets/Scripts/Upgrades/RoadUpgrade.cs b/Assets/Scripts/Upgrades/RoadUpgrade.cs index 6ef9e4daafc52f2d623ddcaed3cd1e86dc5d898e..eda086959b26353e13a84509044bb7861235c3b2 100644 --- a/Assets/Scripts/Upgrades/RoadUpgrade.cs +++ b/Assets/Scripts/Upgrades/RoadUpgrade.cs @@ -24,7 +24,7 @@ public class RoadUpgrade : Upgrade City city = gameObject.GetComponent<City>(); int currentLevel = (int) road.GetLevel(target); - if (currentLevel <= city.GetLevel(UpgradeTargets.city) * maxLevelModifier) + if (currentLevel <= maxLevelModifier) { city.UseResources(GetPrices(currentLevel)); road.IncreaseSpeed(1 / currentLevel); diff --git a/Assets/Scripts/Upgrades/Upgrade.cs b/Assets/Scripts/Upgrades/Upgrade.cs index 9bc13dc5d1fafcfc3df4ab2134527ff2e795af59..6a52a277c876b2ac0f06b06392eba23184cb2e4b 100644 --- a/Assets/Scripts/Upgrades/Upgrade.cs +++ b/Assets/Scripts/Upgrades/Upgrade.cs @@ -8,13 +8,6 @@ public abstract class Upgrade : MonoBehaviour private float efficiencyLevel = 1; - 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() { @@ -63,10 +56,9 @@ public abstract class Upgrade : MonoBehaviour public List<int> GetPrices(float modifier) { List<int> prices = new List<int>(); - foreach(KeyValuePair<Resource, int> key in resources) - { - prices.Add((int) (key.Value * modifier * 50 * GetEfficiency())); - } + + prices.Add((int) (1 * modifier * 50 * GetEfficiency())); + return prices; }