From 869d53d145b7fc3b500195b78511861931e90959 Mon Sep 17 00:00:00 2001
From: bayusamudra5502 <bayusamudra.55.02.com@gmail.com>
Date: Sun, 16 Apr 2023 12:53:10 +0700
Subject: [PATCH] feat: integrate shop with upgrade weapon (default, shotgun)

---
 Assets/Scripts/Player/PlayerShooting.cs    |  7 ++++++
 Assets/Scripts/Player/PlayerShotgun.cs     | 26 +++++++++++++++++-----
 Assets/Scripts/Player/PlayerTransaction.cs | 10 +++++++++
 3 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/Assets/Scripts/Player/PlayerShooting.cs b/Assets/Scripts/Player/PlayerShooting.cs
index d59be9d..67b5702 100644
--- a/Assets/Scripts/Player/PlayerShooting.cs
+++ b/Assets/Scripts/Player/PlayerShooting.cs
@@ -45,6 +45,13 @@ public class PlayerShooting : MonoBehaviour
         gunLight = GetComponent<Light>();
     }
 
+    static public void upgrade()
+    {
+        int multiplier = damagePerShot / baseDamagePerShot;
+        baseDamagePerShot += 10;
+        damagePerShot = baseDamagePerShot * multiplier;
+    }
+
     public void buffDamage(float damageMultiplier)
     {
         damagePerShot = (int) (damageMultiplier * baseDamagePerShot);
diff --git a/Assets/Scripts/Player/PlayerShotgun.cs b/Assets/Scripts/Player/PlayerShotgun.cs
index 63d22c4..76e8d6c 100644
--- a/Assets/Scripts/Player/PlayerShotgun.cs
+++ b/Assets/Scripts/Player/PlayerShotgun.cs
@@ -50,9 +50,16 @@ public class PlayerShotgun : MonoBehaviour
 
         shootRays = new Ray[5];
         shootHits = new RaycastHit[5];
-    }
-
-    public void buffDamage(float damageMultiplier)
+    }
+
+	static public void upgrade()
+	{
+		int multiplier = damagePerShot / baseDamagePerShot;
+        baseDamagePerShot += 10;
+		damagePerShot = baseDamagePerShot * multiplier;
+	}
+
+	public void buffDamage(float damageMultiplier)
     {
         damagePerShot = (int) (damageMultiplier * baseDamagePerShot);
     }
@@ -88,9 +95,16 @@ public class PlayerShotgun : MonoBehaviour
             }
         }
         
-    }
-
-    public void onShoot(Component sender, object data)
+    }
+
+	static public void addDamage(int damage)
+	{
+		int multiplier = damagePerShot / baseDamagePerShot;
+		baseDamagePerShot += damage;
+		damagePerShot = baseDamagePerShot * multiplier;
+	}
+
+	public void onShoot(Component sender, object data)
     {
         float time = (float)data;
         StartCoroutine(AutoShooting(time));
diff --git a/Assets/Scripts/Player/PlayerTransaction.cs b/Assets/Scripts/Player/PlayerTransaction.cs
index d87dc1e..08d2007 100644
--- a/Assets/Scripts/Player/PlayerTransaction.cs
+++ b/Assets/Scripts/Player/PlayerTransaction.cs
@@ -43,6 +43,16 @@ public class PlayerTransaction : MonoBehaviour
 
     void UpgradeWeapon(string weaponType)
     {
+        switch(weaponType)
+        {
+            case "default":
+                PlayerShooting.upgrade();
+                break;
+            case "shotgun":
+                PlayerShotgun.upgrade();
+                break;
+        }
+
         Debug.Log($"Berhasil upgrade senjata {weaponType}");
     }
 }
-- 
GitLab