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