From 370ba7bcca37d298fe64a13274032f13ecf59bd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leevi=20Gr=C3=B6nlund?= <lejugr@utu.fi> Date: Sun, 3 Mar 2019 14:50:20 +0200 Subject: [PATCH] BerryBush respawn style changed etc --- Assets/Scripts/Resources/BerryBush.cs | 47 ++++++++++++++++----------- Assets/Scripts/Resources/Outcrop.cs | 36 ++++++++++++++++++-- Assets/Scripts/Resources/Quarry.cs | 1 + Assets/Scripts/Resources/Resource.cs | 23 +++++++++---- 4 files changed, 78 insertions(+), 29 deletions(-) diff --git a/Assets/Scripts/Resources/BerryBush.cs b/Assets/Scripts/Resources/BerryBush.cs index d8c6703..f708c7e 100644 --- a/Assets/Scripts/Resources/BerryBush.cs +++ b/Assets/Scripts/Resources/BerryBush.cs @@ -4,32 +4,51 @@ using UnityEngine; public class BerryBush : Resource { - private float growthspeed; + public bool coroutineRunning =false; public override void checkExistence() { - + if (!coroutineRunning) + { + StartCoroutine("timer"); + coroutineRunning = true; + } + } + + private IEnumerator timer() + { + yield return new WaitForSeconds(3); + setAmount(500); + coroutineRunning = false; + + + } + + + public override void setAmount(int i) + { + base.setAmount(i); } public override void refreshSprite() { - if (getAmount() < 100) + if (getAmount() < 1) { gameObject.GetComponent<SpriteRenderer>().sprite = sprites[5]; } - else if (getAmount() < 200) + else if (getAmount() < 100) { gameObject.GetComponent<SpriteRenderer>().sprite = sprites[4]; } - else if (getAmount() < 300) + else if (getAmount() < 200) { gameObject.GetComponent<SpriteRenderer>().sprite = sprites[3]; } - else if (getAmount() < 400) + else if (getAmount() < 300) { gameObject.GetComponent<SpriteRenderer>().sprite = sprites[2]; } - else if (getAmount() < 500) + else if (getAmount() < 400) { gameObject.GetComponent<SpriteRenderer>().sprite = sprites[1]; } @@ -42,18 +61,7 @@ public class BerryBush : Resource // Start is called before the first frame update void Start() { - setAmount(Random.Range(50, 200)); - growthspeed = 1; - StartCoroutine("Grow"); - } - - IEnumerator Grow() - { - while (getAmount() < 600) - { - setAmount(getAmount() + 1); - yield return new WaitForSeconds(growthspeed); - } + setAmount(500); } // Update is called once per frame @@ -61,4 +69,5 @@ public class BerryBush : Resource { } + } diff --git a/Assets/Scripts/Resources/Outcrop.cs b/Assets/Scripts/Resources/Outcrop.cs index 0cbd2e5..9f1f36f 100644 --- a/Assets/Scripts/Resources/Outcrop.cs +++ b/Assets/Scripts/Resources/Outcrop.cs @@ -3,10 +3,39 @@ using System.Collections.Generic; using UnityEngine; // Luokka, joka vaatii collectoreilta 100 puuta ennen kuin Quarry voidaan luoda samaan pisteeseen kartalla -public class Outcrop : Resource +public class Outcrop : MonoBehaviour { - public override void checkExistence() { } - public override void refreshSprite() { } + [SerializeField] + private int wood; + + [SerializeField] + private GameObject quarry; + + public int getAmount() + { + return wood; + } + + public void setAmount(int amount) + { + wood += amount; + } + + public void checkExistence() + { + if (getAmount() >= 100) + { + GameObject go = Instantiate<GameObject>(quarry); + go.transform.position = this.transform.position; + Destroy(gameObject); + } + } + + public void addResource(int amount) + { + setAmount(getAmount() + amount); + checkExistence(); + } // Start is called before the first frame update void Start() @@ -22,4 +51,5 @@ public class Outcrop : Resource // luo Quarry -olio samaan pisteeseen kartalla ja tuhoa Outcrop -olio } } + } diff --git a/Assets/Scripts/Resources/Quarry.cs b/Assets/Scripts/Resources/Quarry.cs index c96b955..2975e62 100644 --- a/Assets/Scripts/Resources/Quarry.cs +++ b/Assets/Scripts/Resources/Quarry.cs @@ -44,6 +44,7 @@ public class Quarry : Resource // Start is called before the first frame update void Start() { + setAmount(Random.Range(2000, 4000)); } diff --git a/Assets/Scripts/Resources/Resource.cs b/Assets/Scripts/Resources/Resource.cs index 04e0e19..cd22d75 100644 --- a/Assets/Scripts/Resources/Resource.cs +++ b/Assets/Scripts/Resources/Resource.cs @@ -7,14 +7,27 @@ public abstract class Resource : MonoBehaviour [SerializeField] private int resources; + [SerializeField] + private bool resourceSource; + [SerializeField] protected Sprite[] sprites; + public bool isResourceSource() + { + return resourceSource; + } + + public void setResourceSource(bool i) + { + resourceSource = i; + } - public void setAmount(int i) + public virtual void setAmount(int i) { resources = i; refreshSprite(); + checkExistence(); } public int getAmount() @@ -27,16 +40,12 @@ public abstract class Resource : MonoBehaviour if (resources-amount < 0) { int r = resources; - resources = 0; - refreshSprite(); - checkExistence(); + setAmount(0); return r; } else { - resources = resources - amount; - refreshSprite(); - checkExistence(); + setAmount(resources - amount); return amount; } -- GitLab