Explorar o código

disable line renderer when there is no energy left to drain from player

DasGewehr %!s(int64=9) %!d(string=hai) anos
pai
achega
c561fb0279
Modificáronse 1 ficheiros con 39 adicións e 17 borrados
  1. 39 17
      game/Assets/Scripts/Station.cs

+ 39 - 17
game/Assets/Scripts/Station.cs

@@ -15,20 +15,21 @@ public class Station : MonoBehaviour
     private Transform lineTarget;
 
     // Use this for initialization
-	void Start ()
-	{
-	    powerLevel = 0;
-	    lineTarget = lineRenderer.transform;
+    void Start()
+    {
+        powerLevel = 0;
+        lineTarget = lineRenderer.transform;
         lineRenderer.SetPositions(new Vector3[]{
             lineRenderer.transform.position,
             lineTarget.position,
         });
-	}
-	
-	// Update is called once per frame
-	void Update () {
-		UpdatePowerBar();
-	}
+    }
+
+    // Update is called once per frame
+    void Update()
+    {
+        UpdatePowerBar();
+    }
 
     void PowerUp(float delta)
     {
@@ -69,16 +70,37 @@ public class Station : MonoBehaviour
 
     private IEnumerator DrainPower(Player player)
     {
-        while (player.PowerLevel >= 2f)
+        
+
+        while (true)
+        {
+            yield return new WaitForSeconds(powerSuckDelay);
+
+            switchLineRenderer(player);
+
+            if (player.PowerLevel >= 2f)
+            {
+                if (powerLevel >= maxPower)
+                {
+                    yield break;
+                }
+                
+                PowerUp(1);
+                player.PowerLevel -= 1f;
+                UpdatePowerBar();
+            }
+        }
+    }
+
+    private void switchLineRenderer(Player player)
+    {
+        lineRenderer.enabled = false;
+        if (player != null)
         {
-            if (powerLevel >= maxPower)
+            if (player.PowerLevel >= 2f)
             {
-                yield break;
+                lineRenderer.enabled = true;
             }
-            yield return new WaitForSeconds(powerSuckDelay);
-            PowerUp(1);
-            player.PowerLevel -= 1f;
-            UpdatePowerBar();
         }
     }
 }