From 77f1457ec05d35a1f4156befe9814ab2d24c01eb Mon Sep 17 00:00:00 2001 From: Matti Loimaranta <makalo@utu.fi> Date: Sat, 2 Mar 2019 18:03:55 +0200 Subject: [PATCH] added upgrade system --- Assets/Scripts/CollectorUpgrade.cs | 24 +++++++ Assets/Scripts/CollectorUpgrade.cs.meta | 11 +++ Assets/Scripts/PopulationUpgrade.cs | 28 ++++++++ Assets/Scripts/PopulationUpgrade.cs.meta | 11 +++ Assets/Scripts/ResourceCapacityUpgrade.cs | 29 ++++++++ .../Scripts/ResourceCapacityUpgrade.cs.meta | 11 +++ Assets/Scripts/ResourceEfficiencyUpgrade.cs | 26 +++++++ .../Scripts/ResourceEfficiencyUpgrade.cs.meta | 11 +++ Assets/Scripts/RoadUpgrade.cs | 30 ++++++++ Assets/Scripts/RoadUpgrade.cs.meta | 11 +++ Assets/Scripts/Upgrade.cs | 72 +++++++++++++++++++ Assets/Scripts/Upgrade.cs.meta | 11 +++ 12 files changed, 275 insertions(+) create mode 100644 Assets/Scripts/CollectorUpgrade.cs create mode 100644 Assets/Scripts/CollectorUpgrade.cs.meta create mode 100644 Assets/Scripts/PopulationUpgrade.cs create mode 100644 Assets/Scripts/PopulationUpgrade.cs.meta create mode 100644 Assets/Scripts/ResourceCapacityUpgrade.cs create mode 100644 Assets/Scripts/ResourceCapacityUpgrade.cs.meta create mode 100644 Assets/Scripts/ResourceEfficiencyUpgrade.cs create mode 100644 Assets/Scripts/ResourceEfficiencyUpgrade.cs.meta create mode 100644 Assets/Scripts/RoadUpgrade.cs create mode 100644 Assets/Scripts/RoadUpgrade.cs.meta create mode 100644 Assets/Scripts/Upgrade.cs create mode 100644 Assets/Scripts/Upgrade.cs.meta diff --git a/Assets/Scripts/CollectorUpgrade.cs b/Assets/Scripts/CollectorUpgrade.cs new file mode 100644 index 0000000..cb793b2 --- /dev/null +++ b/Assets/Scripts/CollectorUpgrade.cs @@ -0,0 +1,24 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class CollectorUpgrade : Upgrade +{ + + // Start is called before the first frame update + void Start() + { + + UpgradeTargets target = UpgradeTargets.collector; + City city = gameObject.GetComponent<City>(); + float currentLevel = city.getLevel(target); + city.useResources(getPrices(currentLevel)); + city.addCollector(); + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/CollectorUpgrade.cs.meta b/Assets/Scripts/CollectorUpgrade.cs.meta new file mode 100644 index 0000000..c367164 --- /dev/null +++ b/Assets/Scripts/CollectorUpgrade.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f39036a325f1d1f4da3df98a7fb16119 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/PopulationUpgrade.cs b/Assets/Scripts/PopulationUpgrade.cs new file mode 100644 index 0000000..c2338c2 --- /dev/null +++ b/Assets/Scripts/PopulationUpgrade.cs @@ -0,0 +1,28 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class PopulationUpgrade : Upgrade +{ + // Start is called before the first frame update + public void Start() + { + + } + + // Update is called once per frame + public void Update() + { + + } + + public void upgrade() + { + UpgradeTargets target = UpgradeTargets.population; + City city = gameObject.GetComponent<City>(); + float currentLevel = city.getLevel(target); + city.useResources(getPrices(currentLevel)); + city.addPopulation(currentLevel * 10); + Debug.Log("population upgraded"); + } +} diff --git a/Assets/Scripts/PopulationUpgrade.cs.meta b/Assets/Scripts/PopulationUpgrade.cs.meta new file mode 100644 index 0000000..60c4be0 --- /dev/null +++ b/Assets/Scripts/PopulationUpgrade.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fcd69bbed7a9ef3409a62541648ecefa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ResourceCapacityUpgrade.cs b/Assets/Scripts/ResourceCapacityUpgrade.cs new file mode 100644 index 0000000..88ba170 --- /dev/null +++ b/Assets/Scripts/ResourceCapacityUpgrade.cs @@ -0,0 +1,29 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ResourceCapacityUpgrade : Upgrade +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } + + public void upgrade() + { + UpgradeTargets target = UpgradeTargets.capacity; + City city = gameObject.GetComponent<City>(); + float currentLevel = city.getLevel(target); + city.useResources(getPrices(currentLevel)); + city.increaseCapacity(currentLevel * 100); + Debug.Log("Capacity upgraded"); + } + +} diff --git a/Assets/Scripts/ResourceCapacityUpgrade.cs.meta b/Assets/Scripts/ResourceCapacityUpgrade.cs.meta new file mode 100644 index 0000000..a47f782 --- /dev/null +++ b/Assets/Scripts/ResourceCapacityUpgrade.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2670538e329f5494c9ccb621f90f3d23 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ResourceEfficiencyUpgrade.cs b/Assets/Scripts/ResourceEfficiencyUpgrade.cs new file mode 100644 index 0000000..adb2040 --- /dev/null +++ b/Assets/Scripts/ResourceEfficiencyUpgrade.cs @@ -0,0 +1,26 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ResourceEfficiencyUpgrade : Upgrade +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } + + public void upgrade() + { + City city = gameObject.GetComponent<City>(); + increaseEfficiencyLevel(); + city.useResources(getPrices(getEfficiencyLevel() * getEfficiencyLevel())); + Debug.Log("Efficienfy upgraded to: " + getEfficiencyLevel()); + } +} diff --git a/Assets/Scripts/ResourceEfficiencyUpgrade.cs.meta b/Assets/Scripts/ResourceEfficiencyUpgrade.cs.meta new file mode 100644 index 0000000..7d8ee32 --- /dev/null +++ b/Assets/Scripts/ResourceEfficiencyUpgrade.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 80c1408915a79524aa4536502432e25d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/RoadUpgrade.cs b/Assets/Scripts/RoadUpgrade.cs new file mode 100644 index 0000000..7ec0bef --- /dev/null +++ b/Assets/Scripts/RoadUpgrade.cs @@ -0,0 +1,30 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class RoadUpgrade : Upgrade +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } + + public void 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"); + } + +} diff --git a/Assets/Scripts/RoadUpgrade.cs.meta b/Assets/Scripts/RoadUpgrade.cs.meta new file mode 100644 index 0000000..93ef0d1 --- /dev/null +++ b/Assets/Scripts/RoadUpgrade.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9aec1805133c8c746afa3368a29d0e34 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Upgrade.cs b/Assets/Scripts/Upgrade.cs new file mode 100644 index 0000000..d521f6e --- /dev/null +++ b/Assets/Scripts/Upgrade.cs @@ -0,0 +1,72 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public abstract class Upgrade : MonoBehaviour +{ + /* + private float baseWoodCost = 10; + private float baseStoneCost = 10; + private float baseFoodCost = 10; + */ + private float efficiencyLevel = 1; + + private Dictionary<Resources, int> resources = new Dictionary<Resources, int>(); + + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } + + public float getEfficiencyLevel() + { + return efficiencyLevel; + } + + public void increaseEfficiencyLevel() + { + efficiencyLevel++; + } + + public float getEfficiency() + { + switch (efficiencyLevel) + { + case 1: + Debug.Log("effLevel 1"); + return 1; + case 2: + Debug.Log("effLevel 2"); + return 0.9f; + case 3: + return 0.8f; + case 4: + return 0.7f; + case 5: + return 0.6f; + default: + Debug.Log("Default"); + return 1; + } + + } + + public List<float> getPrices(float modifier) + { + List<float> prices = new List<float>(); + foreach(KeyValuePair<Resources, int> key in resources) + { + prices.Add(key.Value * modifier * 50 * getEfficiency()); + } + + return prices; + } + +} diff --git a/Assets/Scripts/Upgrade.cs.meta b/Assets/Scripts/Upgrade.cs.meta new file mode 100644 index 0000000..ea31029 --- /dev/null +++ b/Assets/Scripts/Upgrade.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 06620cacd9f76874d8f0e478ddea0be2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: -- GitLab