From 81550c473c16d5117735540a93eba73498213032 Mon Sep 17 00:00:00 2001 From: Matti Loimaranta <makalo@utu.fi> Date: Sun, 3 Mar 2019 23:30:57 +0200 Subject: [PATCH] progressiivisesti lapaistava --- Assets/Scripts/City/City.cs | 22 ++++++++++++++---- Assets/Scripts/City/ResourcePool.cs | 1 + Assets/Scripts/Resources/BerryBush.cs | 1 + Assets/Scripts/Resources/Forest.cs | 1 + Assets/Scripts/Resources/Quarry.cs | 1 + Assets/Scripts/UI/Border.cs | 1 - Assets/Scripts/UI/BuyCapacity.cs | 19 ++++++++++++++- Assets/Scripts/UI/BuyCity.cs | 21 ++++++++++++++--- Assets/Scripts/UI/BuyCollector.cs | 21 ++++++++++++++++- Assets/Scripts/UI/BuyEfficiency.cs | 12 +++++++--- Assets/Scripts/UI/BuyPopulation.cs | 23 +++++++++++++++++-- Assets/Scripts/UI/BuySpeed.cs | 19 ++++++++++++++- Assets/Scripts/UI/UpgradeShop.cs | 2 +- Assets/Scripts/UI/UsableResources.cs | 18 +++++++++++++++ Assets/Scripts/UI/UsableResources.cs.meta | 11 +++++++++ Assets/Scripts/Upgrades/CollectorUpgrade.cs | 3 ++- Assets/Scripts/Upgrades/PopulationUpgrade.cs | 3 ++- .../Upgrades/ResourceCapacityUpgrade.cs | 5 ++-- Assets/Scripts/Upgrades/RoadUpgrade.cs | 2 +- Assets/Scripts/Upgrades/Upgrade.cs | 14 +++-------- 20 files changed, 167 insertions(+), 33 deletions(-) create mode 100644 Assets/Scripts/UI/UsableResources.cs create mode 100644 Assets/Scripts/UI/UsableResources.cs.meta diff --git a/Assets/Scripts/City/City.cs b/Assets/Scripts/City/City.cs index 36f61e3..3d541d5 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 bfb1ad0..7125c6a 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 797fb98..a59fb0c 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 89d9564..479bc37 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 4d2136b..d936949 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 1ab7908..db78d55 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 eccf28e..0ed57f6 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 71795af..e9c4980 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 3af7ce3..d74e9c6 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 e0dc181..feb55dd 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 d746afb..2da19d4 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 52b0f92..22e3bfd 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 e68e8d0..228458b 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 0000000..fad9844 --- /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 0000000..ef47aea --- /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 698c69f..00d6f3c 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 e53bb68..7ab9a5c 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 3f17ea3..b767755 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 6ef9e4d..eda0869 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 9bc13dc..6a52a27 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; } -- GitLab