diff --git a/Assets/Scripts/Managers/MainManager.cs b/Assets/Scripts/Managers/MainManager.cs index ba9f206e18ac3098f284f94afdea8890f2722e6c..79d1b9dc56e70d11839d36fff428c8f516a87373 100644 --- a/Assets/Scripts/Managers/MainManager.cs +++ b/Assets/Scripts/Managers/MainManager.cs @@ -1,84 +1,88 @@ -using UnityEngine; -using System.IO; -using UnityEngine.SceneManagement; -using System; - -public class MainManager : MonoBehaviour -{ - public static MainManager Instance; - public int time; - public int money; - public string level; - - private void Awake() - { - if (Instance != null) - { - Destroy(gameObject); - return; - } - level = "Level 01"; - Instance = this; - DontDestroyOnLoad(gameObject); - } - - public void NewTime(Component sender, object data) - { - time = (int) data; - Instance.time = time; - } - public void NewMoney(Component sender, object data) - { - time = (int) data; - Instance.money = time; - } - private void addLevel() - { - string levelText = level.Substring(level.Length - 1); - int numLevel = int.Parse(levelText) + 1; - level = "Level 0" + numLevel.ToString(); - } - public void Save(int num) - { - SaveData data = new SaveData(); - data.time = time; - data.money = money; - data.level = level; - data.date = DateTime.Now.ToString("dd-MM-yyyy"); - data.base_default_weapon_atk = PlayerShooting.baseDamagePerShot; - data.base_shotgun_atk = PlayerShotgun.baseDamagePerShot; - - string json = JsonUtility.ToJson(data); - File.WriteAllText(Application.persistentDataPath + "/savefile" + num.ToString() + ".json", json); - ContinueGame(); - } - - public void Load(int num) - { - string path = Application.persistentDataPath + "/savefile"+ num.ToString() + ".json"; - if (File.Exists(path)) - { - string json = File.ReadAllText(path); - SaveData data = JsonUtility.FromJson<SaveData>(json); - - time = data.time; - money = data.money; - level = next_level(data.level); - - PlayerShooting.baseDamagePerShot = data.base_default_weapon_atk; - PlayerShooting.damagePerShot = data.base_default_weapon_atk; - - PlayerShotgun.baseDamagePerShot = data.base_shotgun_atk; - PlayerShotgun.damagePerShot = data.base_shotgun_atk; - - SceneManager.LoadScene(level); - } - else - { - print("Error No Load File"); - } - } - +using UnityEngine; +using System.IO; +using UnityEngine.SceneManagement; +using System; + +public class MainManager : MonoBehaviour +{ + public static MainManager Instance; + public int time; + public int money; + public string level; + + private void Awake() + { + if (Instance != null) + { + Destroy(gameObject); + return; + } + level = "Level 01"; + Instance = this; + DontDestroyOnLoad(gameObject); + } + + public void NewTime(Component sender, object data) + { + time = (int) data; + Instance.time = time; + } + public void NewMoney(Component sender, object data) + { + time = (int) data; + Instance.money = time; + } + private void addLevel() + { + string levelText = level.Substring(level.Length - 1); + int numLevel = int.Parse(levelText) + 1; + level = "Level 0" + numLevel.ToString(); + } + public void Save(int num) + { + SaveData data = new SaveData(); + data.time = time; + data.money = money; + data.level = level; + data.date = DateTime.Now.ToString("dd-MM-yyyy"); + data.base_default_weapon_atk = PlayerShooting.baseDamagePerShot; + data.base_shotgun_atk = PlayerShotgun.baseDamagePerShot; + data.base_sword_atk = PlayerSword.baseDamagePerTouch; + + string json = JsonUtility.ToJson(data); + File.WriteAllText(Application.persistentDataPath + "/savefile" + num.ToString() + ".json", json); + ContinueGame(); + } + + public void Load(int num) + { + string path = Application.persistentDataPath + "/savefile"+ num.ToString() + ".json"; + if (File.Exists(path)) + { + string json = File.ReadAllText(path); + SaveData data = JsonUtility.FromJson<SaveData>(json); + + time = data.time; + money = data.money; + level = next_level(data.level); + + PlayerShooting.baseDamagePerShot = data.base_default_weapon_atk; + PlayerShooting.damagePerShot = data.base_default_weapon_atk; + + PlayerShotgun.baseDamagePerShot = data.base_shotgun_atk; + PlayerShotgun.damagePerShot = data.base_shotgun_atk; + + PlayerSword.baseDamagePerTouch = data.base_sword_atk; + PlayerSword.damagePerTouch = data.base_sword_atk; + + SceneManager.LoadScene(level); + } + else + { + print("Error No Load File"); + } + } + private string next_level(string level) { int number_level = int.Parse(level.Substring(level.Length - 2)); @@ -89,16 +93,16 @@ public class MainManager : MonoBehaviour } return $"Level 0{number_level + 1}"; - } - - public void ContinueGame() - { - addLevel(); - SceneManager.LoadScene(level); - } - - - -} - - + } + + public void ContinueGame() + { + addLevel(); + SceneManager.LoadScene(level); + } + + + +} + + diff --git a/Assets/Scripts/Managers/MainMenuManager.cs b/Assets/Scripts/Managers/MainMenuManager.cs index 5650786641c698fb6ddf2666dc1b032a8bbd294a..7df7eb3aa7103633ffff1d7538a9795b9bbbbe7a 100644 --- a/Assets/Scripts/Managers/MainMenuManager.cs +++ b/Assets/Scripts/Managers/MainMenuManager.cs @@ -1,46 +1,46 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.SceneManagement; -using TMPro; -using UnityEngine.UI; - -public class MainMenuManager : MonoBehaviour -{ - public GameObject mainMenuPage; - public GameObject settingsPage; - public TMP_InputField nameInputField; - public Slider musicVolumeSlider; - public Slider sfxVolumeSlider; - - [Header("Events")] - public GameEvent musicVolumeChanged; - - void Awake() - { - // Set default player prefs on first launch - if(!PlayerPrefs.HasKey("playerName")) - { - PlayerPrefs.SetString("playerName", "Default"); - } - - if(!PlayerPrefs.HasKey("musicVolume")) - { - PlayerPrefs.SetFloat("musicVolume", 1); - } - - if(!PlayerPrefs.HasKey("sfxVolume")) - { - PlayerPrefs.SetFloat("sfxVolume", 1); - } - } - - public void NewGame() - { +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.SceneManagement; +using TMPro; +using UnityEngine.UI; + +public class MainMenuManager : MonoBehaviour +{ + public GameObject mainMenuPage; + public GameObject settingsPage; + public TMP_InputField nameInputField; + public Slider musicVolumeSlider; + public Slider sfxVolumeSlider; + + [Header("Events")] + public GameEvent musicVolumeChanged; + + void Awake() + { + // Set default player prefs on first launch + if(!PlayerPrefs.HasKey("playerName")) + { + PlayerPrefs.SetString("playerName", "Default"); + } + + if(!PlayerPrefs.HasKey("musicVolume")) + { + PlayerPrefs.SetFloat("musicVolume", 1); + } + + if(!PlayerPrefs.HasKey("sfxVolume")) + { + PlayerPrefs.SetFloat("sfxVolume", 1); + } + } + + public void NewGame() + { resetGun(); - SceneManager.LoadScene("Opening"); - } - + SceneManager.LoadScene("Opening"); + } + private void resetGun() { PlayerShotgun.baseDamagePerShot = 30; @@ -48,57 +48,60 @@ public class MainMenuManager : MonoBehaviour PlayerShooting.baseDamagePerShot = 20; PlayerShooting.damagePerShot = 20; + + PlayerSword.baseDamagePerTouch = 50; + PlayerSword.damagePerTouch = 50; } - public void LoadGame() - { - SceneManager.LoadScene("Load"); - } - - public void ShowScoreboard() - { - SceneManager.LoadScene("Highscore"); - } - - public void ShowSettings() - { - nameInputField.text = PlayerPrefs.GetString("playerName"); - musicVolumeSlider.value = PlayerPrefs.GetFloat("musicVolume"); - sfxVolumeSlider.value = PlayerPrefs.GetFloat("sfxVolume"); - - mainMenuPage.SetActive(false); - settingsPage.SetActive(true); - } - - public void changeMusicVolume() - { - PlayerPrefs.SetFloat("musicVolume", musicVolumeSlider.value); - musicVolumeChanged.Raise(this, musicVolumeSlider.value); - } - - public void changeSfxVolume() - { - PlayerPrefs.SetFloat("sfxVolume", sfxVolumeSlider.value); - AudioListener.volume = sfxVolumeSlider.value; - } - - public void UpdateSettings() - { - if (nameInputField.text == "") - { - PlayerPrefs.SetString("playerName", "Default Player"); - } - else - { - PlayerPrefs.SetString("playerName", nameInputField.text); - } - - mainMenuPage.SetActive(true); - settingsPage.SetActive(false); - } - - public void ExitGame() - { - Application.Quit(); - } -} + public void LoadGame() + { + SceneManager.LoadScene("Load"); + } + + public void ShowScoreboard() + { + SceneManager.LoadScene("Highscore"); + } + + public void ShowSettings() + { + nameInputField.text = PlayerPrefs.GetString("playerName"); + musicVolumeSlider.value = PlayerPrefs.GetFloat("musicVolume"); + sfxVolumeSlider.value = PlayerPrefs.GetFloat("sfxVolume"); + + mainMenuPage.SetActive(false); + settingsPage.SetActive(true); + } + + public void changeMusicVolume() + { + PlayerPrefs.SetFloat("musicVolume", musicVolumeSlider.value); + musicVolumeChanged.Raise(this, musicVolumeSlider.value); + } + + public void changeSfxVolume() + { + PlayerPrefs.SetFloat("sfxVolume", sfxVolumeSlider.value); + AudioListener.volume = sfxVolumeSlider.value; + } + + public void UpdateSettings() + { + if (nameInputField.text == "") + { + PlayerPrefs.SetString("playerName", "Default Player"); + } + else + { + PlayerPrefs.SetString("playerName", nameInputField.text); + } + + mainMenuPage.SetActive(true); + settingsPage.SetActive(false); + } + + public void ExitGame() + { + Application.Quit(); + } +} diff --git a/Assets/Scripts/Player/PlayerSword.cs b/Assets/Scripts/Player/PlayerSword.cs index 16676bea033635e0226fac2a808e7356bfe87757..e0296a81aa4898c861baa7a16d5f3eed35f9dd78 100644 --- a/Assets/Scripts/Player/PlayerSword.cs +++ b/Assets/Scripts/Player/PlayerSword.cs @@ -36,9 +36,16 @@ public class PlayerSword : MonoBehaviour fire.performed += Clicked; fire.canceled += Clicked; - } - - private void OnDisable() + } + + static public void upgrade() + { + baseDamagePerTouch = Mathf.RoundToInt(baseDamagePerTouch * 1.05f); + baseDamagePerTouch = Mathf.RoundToInt(baseDamagePerTouch * 1.05f); + } + + + private void OnDisable() { fire.Disable(); } diff --git a/Assets/Scripts/Player/PlayerTransaction.cs b/Assets/Scripts/Player/PlayerTransaction.cs index 08d200712478807a229db515a62e4aaec1c463f1..50cfa03b6c98e8b0d163209fb60cfd88600f593a 100644 --- a/Assets/Scripts/Player/PlayerTransaction.cs +++ b/Assets/Scripts/Player/PlayerTransaction.cs @@ -1,46 +1,46 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class PlayerTransaction : MonoBehaviour -{ - public void BoughtItem(Component sender, object data) - { - if (sender is ShopItemController && data is ShopItem.ItemType) - { - switch (data) - { - default: - case ShopItem.ItemType.Pet_None: break; - case ShopItem.ItemType.Pet_Attack: BoughtPet("attack"); break; - case ShopItem.ItemType.Pet_Heal: BoughtPet("heal"); break; - case ShopItem.ItemType.Pet_Buff: BoughtPet("buff"); break; - - case ShopItem.ItemType.Weapon_Default: break; - case ShopItem.ItemType.Weapon_Shotgun: BoughtWeapon("shotgun"); break; - case ShopItem.ItemType.Weapon_Sword: BoughtWeapon("sword"); break; - case ShopItem.ItemType.Weapon_Bow: BoughtWeapon("bow"); break; - +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class PlayerTransaction : MonoBehaviour +{ + public void BoughtItem(Component sender, object data) + { + if (sender is ShopItemController && data is ShopItem.ItemType) + { + switch (data) + { + default: + case ShopItem.ItemType.Pet_None: break; + case ShopItem.ItemType.Pet_Attack: BoughtPet("attack"); break; + case ShopItem.ItemType.Pet_Heal: BoughtPet("heal"); break; + case ShopItem.ItemType.Pet_Buff: BoughtPet("buff"); break; + + case ShopItem.ItemType.Weapon_Default: break; + case ShopItem.ItemType.Weapon_Shotgun: BoughtWeapon("shotgun"); break; + case ShopItem.ItemType.Weapon_Sword: BoughtWeapon("sword"); break; + case ShopItem.ItemType.Weapon_Bow: BoughtWeapon("bow"); break; + case ShopItem.ItemType.Weapon_Default_Upgrade: UpgradeWeapon("default"); break; case ShopItem.ItemType.Weapon_Bow_Upgrade: UpgradeWeapon("bow"); break; case ShopItem.ItemType.Weapon_Shotgun_Upgrade: UpgradeWeapon("shotgun"); break; - case ShopItem.ItemType.Weapon_Sword_Upgrade: UpgradeWeapon("sword"); break; + case ShopItem.ItemType.Weapon_Sword_Upgrade: UpgradeWeapon("sword"); break; } - } - } - - void BoughtPet(string TypeOfPet) - { - Debug.Log("Berhasil beli pet bertipe " + TypeOfPet); - // TODO : spawn pet - } - - void BoughtWeapon(string TypeOfWeapon) - { - Debug.Log("Berhasil beli senjata bertipe " + TypeOfWeapon); - // TODO : Assign weapon ke player - } - + } + } + + void BoughtPet(string TypeOfPet) + { + Debug.Log("Berhasil beli pet bertipe " + TypeOfPet); + // TODO : spawn pet + } + + void BoughtWeapon(string TypeOfWeapon) + { + Debug.Log("Berhasil beli senjata bertipe " + TypeOfWeapon); + // TODO : Assign weapon ke player + } + void UpgradeWeapon(string weaponType) { switch(weaponType) @@ -51,8 +51,11 @@ public class PlayerTransaction : MonoBehaviour case "shotgun": PlayerShotgun.upgrade(); break; + case "sword": + PlayerSword.upgrade(); + break; } Debug.Log($"Berhasil upgrade senjata {weaponType}"); - } -} + } +} diff --git a/Assets/Scripts/SaveLoad/SaveData.cs b/Assets/Scripts/SaveLoad/SaveData.cs index e317cecdd04f729702a6550d98571feef66a5f3e..f59c296deeb3e87a51d5d60eb020e5f97471283b 100644 --- a/Assets/Scripts/SaveLoad/SaveData.cs +++ b/Assets/Scripts/SaveLoad/SaveData.cs @@ -1,11 +1,13 @@ -[System.Serializable] -public class SaveData -{ - public int time; - public int money; - public string level; - public string date; - +[System.Serializable] +public class SaveData +{ + public int time; + public int money; + public string level; + public string date; + public int base_default_weapon_atk; - public int base_shotgun_atk; -} + public int base_shotgun_atk; + public int base_bow_atk; + public int base_sword_atk; +} diff --git a/Assets/Scripts/SaveLoad/SaveLoadUI.cs b/Assets/Scripts/SaveLoad/SaveLoadUI.cs index 76f221bc63b899cfd57255870e7a2c492e95e020..b67fb6bcff85810b0ee83e7fd17f1a9efd4146d9 100644 --- a/Assets/Scripts/SaveLoad/SaveLoadUI.cs +++ b/Assets/Scripts/SaveLoad/SaveLoadUI.cs @@ -1,108 +1,103 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.UI; -using System.IO; - -public class SaveLoadUI : MonoBehaviour -{ - public int sequence; - public Text levelText; - public Text moneyText; - public Text timeText; - public Text dateText; - public string type; - private bool isSaved; - - private void Awake() - { - LoadUI(); - } - - private void LoadUI() - { - string path = Application.persistentDataPath + "/savefile" + sequence.ToString() + ".json"; - if (File.Exists(path)) - { - isSaved = true; - string json = File.ReadAllText(path); - SaveData data = JsonUtility.FromJson<SaveData>(json); - LoadTime(data.time); - LoadMoney(data.money); - LoadLevel(data.level); - LoadDate(data.date); - LoadDefaultWeapon(data.base_default_weapon_atk); - } - else - { - isSaved = false; - timeText.text = ""; - moneyText.text = ""; - dateText.text = ""; - levelText.text = "No Save File"; - } - } - - private void LoadDefaultWeapon(int base_damage) { - PlayerShooting.baseDamagePerShot = base_damage; - } - - private void LoadTime(int time) - { - int minute = time / 60000; - int second = (time % 60000) / 1000; - if (second < 10) - { - if (minute < 10) - { - timeText.text = "Time: 0" + minute + ":0" + second; - } - else - { - timeText.text = "Time: " + minute + ":0" + second; - } - } - else - { - if (minute < 10) - { - timeText.text = "Time: 0" + minute + ":" + second; - } - else - { - timeText.text = "Time: " + minute + ":" + second; - } - } - } - - private void LoadMoney(int money) - { - moneyText.text = "Money: " + money; - } - - private void LoadLevel(string level) - { - levelText.text = level; - } - private void LoadDate(string date) - { - dateText.text = date; - } - - public void onClick() - { - if (type.Equals("save")) - { - MainManager.Instance.Save(sequence); - } - else if (type.Equals("load")) - { - if (isSaved) - { - MainManager.Instance.Load(sequence); - } - } - - } - -} +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using System.IO; + +public class SaveLoadUI : MonoBehaviour +{ + public int sequence; + public Text levelText; + public Text moneyText; + public Text timeText; + public Text dateText; + public string type; + private bool isSaved; + + private void Awake() + { + LoadUI(); + } + + private void LoadUI() + { + string path = Application.persistentDataPath + "/savefile" + sequence.ToString() + ".json"; + if (File.Exists(path)) + { + isSaved = true; + string json = File.ReadAllText(path); + SaveData data = JsonUtility.FromJson<SaveData>(json); + LoadTime(data.time); + LoadMoney(data.money); + LoadLevel(data.level); + LoadDate(data.date); + } + else + { + isSaved = false; + timeText.text = ""; + moneyText.text = ""; + dateText.text = ""; + levelText.text = "No Save File"; + } + } + + private void LoadTime(int time) + { + int minute = time / 60000; + int second = (time % 60000) / 1000; + if (second < 10) + { + if (minute < 10) + { + timeText.text = "Time: 0" + minute + ":0" + second; + } + else + { + timeText.text = "Time: " + minute + ":0" + second; + } + } + else + { + if (minute < 10) + { + timeText.text = "Time: 0" + minute + ":" + second; + } + else + { + timeText.text = "Time: " + minute + ":" + second; + } + } + } + + private void LoadMoney(int money) + { + moneyText.text = "Money: " + money; + } + + private void LoadLevel(string level) + { + levelText.text = level; + } + private void LoadDate(string date) + { + dateText.text = date; + } + + public void onClick() + { + if (type.Equals("save")) + { + MainManager.Instance.Save(sequence); + } + else if (type.Equals("load")) + { + if (isSaved) + { + MainManager.Instance.Load(sequence); + } + } + + } + +}