From d7bcdfc065dac1f29d7cf72520f69c0a783a91a0 Mon Sep 17 00:00:00 2001
From: Audino723 <rioaudino723@gmail.com>
Date: Sun, 16 Apr 2023 15:56:56 +0700
Subject: [PATCH] fix bug

---
 Assets/SaveSlotMenu.cs                       | 20 +++++---
 Assets/Scenes/Level_02.unity                 |  4 +-
 Assets/Scenes/Level_Final.unity              | 14 ++----
 Assets/Scenes/New Animation.anim             | 53 ++++++++++++++++++++
 Assets/Scenes/New Animation.anim.meta        |  8 +++
 Assets/Scripts/GameManager.cs                |  7 ++-
 Assets/Scripts/Managers/BossQuestManager.cs  | 15 ++++++
 Assets/Scripts/Managers/PlayerDataManager.cs | 19 ++++++-
 Assets/Scripts/Managers/QuestManager.cs      |  4 ++
 Assets/Scripts/Menu/MainMenu.cs              |  3 +-
 Assets/Scripts/Pet/PetAttackerMovement.cs    |  7 ++-
 Assets/Scripts/Player/PlayerData.cs          |  2 +-
 12 files changed, 133 insertions(+), 23 deletions(-)
 create mode 100644 Assets/Scenes/New Animation.anim
 create mode 100644 Assets/Scenes/New Animation.anim.meta

diff --git a/Assets/SaveSlotMenu.cs b/Assets/SaveSlotMenu.cs
index aa20adf6..0fc2c868 100644
--- a/Assets/SaveSlotMenu.cs
+++ b/Assets/SaveSlotMenu.cs
@@ -12,9 +12,22 @@ public class SaveSlotMenu : MonoBehaviour
     List<bool> availableSlot;
     public GameObject saveSlotUIHighlight;
 
-    void Start()
+    private void Awake()
     {
+
         action = PlayerPrefs.GetString("saveLoadAction");
+
+        if (action == "nextQuest")
+        {
+            saveGame(-1);
+            loadGame(-1);
+
+            continueNextStage();
+        }
+    }
+
+    void Start()
+    {
         availableSlot = pdm.availableSlot;
         Debug.Log(availableSlot[0].ToString() + availableSlot[1].ToString() + availableSlot[2].ToString());
 
@@ -67,11 +80,6 @@ public class SaveSlotMenu : MonoBehaviour
         {
             loadGame(slot);
         }
-        if (action == "nextQuest")
-        {
-            saveGame(-1);
-            loadGame(-1);
-        }
     }
 
     void saveGame(int slot)
diff --git a/Assets/Scenes/Level_02.unity b/Assets/Scenes/Level_02.unity
index 0941efb6..8b3296ba 100644
--- a/Assets/Scenes/Level_02.unity
+++ b/Assets/Scenes/Level_02.unity
@@ -1979,7 +1979,7 @@ MonoBehaviour:
   bgMusic: {fileID: 1558343257}
   shopUI: {fileID: 1444128283}
   shopLocation: {fileID: 1084676478}
-  playerLocation: {fileID: 1186615826}
+  playerLocation: {fileID: 1108823915}
   shopRadius: 10
   weaponsUI: {fileID: 848333705}
   weaponsUIHighlight: {fileID: 840802840}
@@ -3032,7 +3032,7 @@ MonoBehaviour:
   petRabbitPrefab: {fileID: 8517487645339449119, guid: cc8c27e2635d7fd478bdafbd044d6871, type: 3}
   petSparrowPrefab: {fileID: 8956976848956587104, guid: c830dfca790c01b49ab17476a096582c, type: 3}
   petCultistPrefab: {fileID: 8732158265285773930, guid: c0b8db47470676444be922ddb6d2d7df, type: 3}
-  PlayerTransform: {fileID: 1186615826}
+  PlayerTransform: {fileID: 1108823915}
   pawImage: {fileID: 274458333}
   petHealthSlider: {fileID: 1910954028}
 --- !u!4 &734232484
diff --git a/Assets/Scenes/Level_Final.unity b/Assets/Scenes/Level_Final.unity
index da2c1e0e..a0493ce4 100644
--- a/Assets/Scenes/Level_Final.unity
+++ b/Assets/Scenes/Level_Final.unity
@@ -7678,7 +7678,7 @@ MonoBehaviour:
   bgMusic: {fileID: 1558343257}
   shopUI: {fileID: 1444128283}
   shopLocation: {fileID: 1084676478}
-  playerLocation: {fileID: 1186615826}
+  playerLocation: {fileID: 1487061330}
   shopRadius: 10
   weaponsUI: {fileID: 1232357377}
   weaponsUIHighlight: {fileID: 339215615}
@@ -15549,11 +15549,6 @@ MonoBehaviour:
   deathClip: {fileID: 8300000, guid: d36a393bca4582043982db9089e1694f, type: 3}
   flashSpeed: 5
   flashColour: {r: 1, g: 0, b: 0, a: 0.1}
---- !u!95 &1186615828 stripped
-Animator:
-  m_CorrespondingSourceObject: {fileID: 9500000, guid: f1d84cc28597f5641a3d9cbc4df7e306, type: 3}
-  m_PrefabInstance: {fileID: 1714408640}
-  m_PrefabAsset: {fileID: 0}
 --- !u!1 &1191536072
 GameObject:
   m_ObjectHideFlags: 0
@@ -17562,6 +17557,7 @@ MonoBehaviour:
   isShopOpen: 1
   isShopping: 0
   isEnemyActive: 0
+  isBoss: 0
   isMenu: 0
   petFactory: {fileID: 1713238116}
   pdm: {fileID: 268888277}
@@ -17629,7 +17625,7 @@ MonoBehaviour:
   cheatMenu: {fileID: 1093198192}
   btn: {fileID: 1029574653}
   inputText: {fileID: 1146729427}
-  animPlayer: {fileID: 1186615828}
+  animPlayer: {fileID: 1487061329}
   animSpeedControl: 1
 --- !u!1 &1645784431
 GameObject:
@@ -18100,7 +18096,7 @@ MonoBehaviour:
   petRabbitPrefab: {fileID: 8517487645339449119, guid: cc8c27e2635d7fd478bdafbd044d6871, type: 3}
   petSparrowPrefab: {fileID: 8956976848956587104, guid: c830dfca790c01b49ab17476a096582c, type: 3}
   petCultistPrefab: {fileID: 8732158265285773930, guid: c0b8db47470676444be922ddb6d2d7df, type: 3}
-  PlayerTransform: {fileID: 0}
+  PlayerTransform: {fileID: 1487061330}
   pawImage: {fileID: 1860914021}
   petHealthSlider: {fileID: 1645784431}
 --- !u!4 &1713238117
@@ -18116,7 +18112,7 @@ Transform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 0}
-  m_RootOrder: 14
+  m_RootOrder: 15
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!1001 &1714408640
 PrefabInstance:
diff --git a/Assets/Scenes/New Animation.anim b/Assets/Scenes/New Animation.anim
new file mode 100644
index 00000000..bb5fc5ba
--- /dev/null
+++ b/Assets/Scenes/New Animation.anim	
@@ -0,0 +1,53 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!74 &7400000
+AnimationClip:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: New Animation
+  serializedVersion: 6
+  m_Legacy: 0
+  m_Compressed: 0
+  m_UseHighQualityCurve: 1
+  m_RotationCurves: []
+  m_CompressedRotationCurves: []
+  m_EulerCurves: []
+  m_PositionCurves: []
+  m_ScaleCurves: []
+  m_FloatCurves: []
+  m_PPtrCurves: []
+  m_SampleRate: 60
+  m_WrapMode: 0
+  m_Bounds:
+    m_Center: {x: 0, y: 0, z: 0}
+    m_Extent: {x: 0, y: 0, z: 0}
+  m_ClipBindingConstant:
+    genericBindings: []
+    pptrCurveMapping: []
+  m_AnimationClipSettings:
+    serializedVersion: 2
+    m_AdditiveReferencePoseClip: {fileID: 0}
+    m_AdditiveReferencePoseTime: 0
+    m_StartTime: 0
+    m_StopTime: 1
+    m_OrientationOffsetY: 0
+    m_Level: 0
+    m_CycleOffset: 0
+    m_HasAdditiveReferencePose: 0
+    m_LoopTime: 0
+    m_LoopBlend: 0
+    m_LoopBlendOrientation: 0
+    m_LoopBlendPositionY: 0
+    m_LoopBlendPositionXZ: 0
+    m_KeepOriginalOrientation: 0
+    m_KeepOriginalPositionY: 1
+    m_KeepOriginalPositionXZ: 0
+    m_HeightFromFeet: 0
+    m_Mirror: 0
+  m_EditorCurves: []
+  m_EulerEditorCurves: []
+  m_HasGenericRootTransform: 0
+  m_HasMotionFloatCurves: 0
+  m_Events: []
diff --git a/Assets/Scenes/New Animation.anim.meta b/Assets/Scenes/New Animation.anim.meta
new file mode 100644
index 00000000..7bf3b38d
--- /dev/null
+++ b/Assets/Scenes/New Animation.anim.meta	
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2e3cd7faad8947446bc8b29427b25a64
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 7400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs
index 82c5fd55..b1a15b7e 100644
--- a/Assets/Scripts/GameManager.cs
+++ b/Assets/Scripts/GameManager.cs
@@ -18,6 +18,7 @@ public class GameManager : MonoBehaviour
     public bool isShopOpen = true; // shop only open after finishing quest
     public bool isShopping = false; // sedang berbelanja
     public bool isEnemyActive = true;
+    public bool isBoss = false;
     public bool isMenu = false;
     public PetFactory petFactory;
     public PlayerDataManager pdm;
@@ -43,8 +44,10 @@ public class GameManager : MonoBehaviour
 
     private void Awake()
     {
-        enemySpawner.SetActive(isEnemyActive);
-        score.SetActive(isEnemyActive);
+        if (!isBoss) {
+            enemySpawner.SetActive(isEnemyActive);
+            score.SetActive(isEnemyActive);
+        }
         if (gameManager == null)
         {
             int slot = PlayerPrefs.GetInt("activeSlot");
diff --git a/Assets/Scripts/Managers/BossQuestManager.cs b/Assets/Scripts/Managers/BossQuestManager.cs
index 297d6889..7c3c3d83 100644
--- a/Assets/Scripts/Managers/BossQuestManager.cs
+++ b/Assets/Scripts/Managers/BossQuestManager.cs
@@ -6,6 +6,21 @@ public class BossQuestManager : QuestManager
 {
   public static BossQuestManager questManager;
   
+  void Awake() {
+    GameManager gameManager = FindObjectOfType<GameManager>();
+    gameManager.isBoss = true;
+
+
+    if (questManager == null)
+    {
+        questManager = this;
+    }
+    else
+    {
+        Destroy(questManager);
+    }
+  }
+  
   void Start() {
     quests[0] = GenerateQuest();
     ShowQuestToUI();
diff --git a/Assets/Scripts/Managers/PlayerDataManager.cs b/Assets/Scripts/Managers/PlayerDataManager.cs
index 584f991c..c3e02b7b 100644
--- a/Assets/Scripts/Managers/PlayerDataManager.cs
+++ b/Assets/Scripts/Managers/PlayerDataManager.cs
@@ -5,6 +5,7 @@ using UnityEngine;
 
 public class PlayerDataManager : MonoBehaviour
 {
+    private PlayerData data0;
     private PlayerData data1;
     private PlayerData data2;
     private PlayerData data3;
@@ -44,9 +45,14 @@ public class PlayerDataManager : MonoBehaviour
             return data1;
         } else if (data == 2) {
             return data2;
-        } else {
+        } else if (data == 3)
+        {
             return data3;
         }
+        else
+        {
+            return data0;
+        }
     }
 
     public void SetCoins(int num_data, int coins) {
@@ -157,10 +163,19 @@ public class PlayerDataManager : MonoBehaviour
         SavePlayerData(num_data);
     }
 
+    public void ClearTemp()
+    {
+        PlayerData data0 = new PlayerData();
+        data0.timeStr = DateTime.Now.ToString("dd/MM/yyyy");
+
+        FileHandler.SaveToJsonPrefs<PlayerData>(data0, "PlayerData" + 0 + ".json");
+    }
+
     public void ClearAll() {
         data1 = new PlayerData();
         data2 = new PlayerData();
         data3 = new PlayerData();
+        data0 = new PlayerData();
         SavePlayerDataAll();
     }
 
@@ -180,8 +195,10 @@ public class PlayerDataManager : MonoBehaviour
         data1.timeStr = DateTime.Now.ToString("dd/MM/yyyy");
         data2.timeStr = DateTime.Now.ToString("dd/MM/yyyy");
         data3.timeStr = DateTime.Now.ToString("dd/MM/yyyy");
+        data0.timeStr = DateTime.Now.ToString("dd/MM/yyyy");
         FileHandler.SaveToJsonPrefs<PlayerData>(data1, "PlayerData1.json");
         FileHandler.SaveToJsonPrefs<PlayerData>(data2, "PlayerData2.json");
         FileHandler.SaveToJsonPrefs<PlayerData>(data3, "PlayerData3.json");
+        FileHandler.SaveToJsonPrefs<PlayerData>(data0, "PlayerData0.json");
     }
 }
diff --git a/Assets/Scripts/Managers/QuestManager.cs b/Assets/Scripts/Managers/QuestManager.cs
index 2356aaf9..e9d6e9cd 100644
--- a/Assets/Scripts/Managers/QuestManager.cs
+++ b/Assets/Scripts/Managers/QuestManager.cs
@@ -26,6 +26,10 @@ public class QuestManager : MonoBehaviour
     protected void Awake()
     {
         GameManager gameManager = FindObjectOfType<GameManager>();
+        if (gameManager != null)
+        {
+            gameManager.isBoss = false;
+        }
         if (questManager == null)
         {
             questManager = this;
diff --git a/Assets/Scripts/Menu/MainMenu.cs b/Assets/Scripts/Menu/MainMenu.cs
index b63dc0f6..3faae791 100644
--- a/Assets/Scripts/Menu/MainMenu.cs
+++ b/Assets/Scripts/Menu/MainMenu.cs
@@ -46,7 +46,8 @@ public class MainMenu : MonoBehaviour
     public void NewGame()
     {
         // pdm.Clear(PlayerPrefs.GetInt("savedSlot"));
-        PlayerPrefs.DeleteKey("savedSlot");
+        pdm.ClearTemp();
+        PlayerPrefs.SetInt("activeSlot", 0);
         PlayerPrefs.DeleteKey("isWin");
         PlayerPrefs.SetString("lastScene", "Level_01");
         PlayerPrefs.DeleteKey("timeElapsed");
diff --git a/Assets/Scripts/Pet/PetAttackerMovement.cs b/Assets/Scripts/Pet/PetAttackerMovement.cs
index 39aa67a2..29a0d553 100644
--- a/Assets/Scripts/Pet/PetAttackerMovement.cs
+++ b/Assets/Scripts/Pet/PetAttackerMovement.cs
@@ -11,7 +11,12 @@ public class PetAttackerMovement : PetMovement
     public float maxDistanceToEnemy = 2f;
 
     RaycastHit raycastHit;
-    int shootableMask = LayerMask.GetMask("Shootable");
+    int shootableMask;
+
+    private void Awake()
+    {
+        shootableMask = LayerMask.GetMask("Shootable");
+    }
 
     void Update()
     {
diff --git a/Assets/Scripts/Player/PlayerData.cs b/Assets/Scripts/Player/PlayerData.cs
index d749cd95..8fefa5b3 100644
--- a/Assets/Scripts/Player/PlayerData.cs
+++ b/Assets/Scripts/Player/PlayerData.cs
@@ -21,7 +21,7 @@ public class PlayerData
         lastScene = "Level_01";
         coins = 0;
         time = 0;
-        availableWeapon = new List<bool>() { false, false, false, false };
+        availableWeapon = new List<bool>() { true, false, false, false };
     }
 
     public PlayerData(string lastScene, int coins, float time, string name, string timeStr, PetData petData, List<bool> availableWeapon) {
-- 
GitLab