From 0dbc959c190cca08077f00f412a66505b8975349 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20LUDWIG?= Date: Sun, 9 Feb 2025 20:09:36 +0100 Subject: [PATCH] feat: save level statistics --- Assets/Resources/Levels/BackOnTrack.json | 1 - Assets/Resources/Levels/StereoMadness.json | 1 - Assets/Scripts/Level.cs | 1 - Assets/Scripts/LevelsLoader.cs | 21 ++++++++++++++++++++- Assets/Scripts/Player.cs | 2 ++ 5 files changed, 22 insertions(+), 4 deletions(-) diff --git a/Assets/Resources/Levels/BackOnTrack.json b/Assets/Resources/Levels/BackOnTrack.json index 45576ea..269fad8 100644 --- a/Assets/Resources/Levels/BackOnTrack.json +++ b/Assets/Resources/Levels/BackOnTrack.json @@ -3,7 +3,6 @@ "musicName": "BackOnTrack", "totalJumps": 0, "totalAttempts": 0, - "killedCount": 0, "order": 2, "elements": [ { diff --git a/Assets/Resources/Levels/StereoMadness.json b/Assets/Resources/Levels/StereoMadness.json index 37ce183..f76305c 100644 --- a/Assets/Resources/Levels/StereoMadness.json +++ b/Assets/Resources/Levels/StereoMadness.json @@ -3,7 +3,6 @@ "musicName": "StereoMadness", "totalJumps": 0, "totalAttempts": 0, - "killedCount": 0, "order": 1, "elements": [ { diff --git a/Assets/Scripts/Level.cs b/Assets/Scripts/Level.cs index 87f6ff0..34d70d8 100644 --- a/Assets/Scripts/Level.cs +++ b/Assets/Scripts/Level.cs @@ -7,7 +7,6 @@ public class Level public string musicName; public int totalJumps; public int totalAttempts; - public int killedCount; public int order; public static Level CreateFromJSON(string jsonString) diff --git a/Assets/Scripts/LevelsLoader.cs b/Assets/Scripts/LevelsLoader.cs index 040c9ea..f5c124d 100644 --- a/Assets/Scripts/LevelsLoader.cs +++ b/Assets/Scripts/LevelsLoader.cs @@ -1,5 +1,6 @@ -using System.Collections.Generic; using UnityEngine; +using System.Collections.Generic; +using System.IO; public class LevelsLoader : MonoBehaviour { @@ -24,6 +25,12 @@ public class LevelsLoader : MonoBehaviour levels.Sort((x, y) => x.order.CompareTo(y.order)); } + private void SaveLevelCurrent() + { + string json = JsonUtility.ToJson(levelCurrent, true); + File.WriteAllText(Path.Combine(Application.dataPath, "Resources", "Levels", levelCurrent.name + ".json"), json); + } + public void NextLevel() { int currentIndex = levels.IndexOf(levelCurrent); @@ -35,4 +42,16 @@ public class LevelsLoader : MonoBehaviour int currentIndex = levels.IndexOf(levelCurrent); levelCurrent = levels[(currentIndex - 1 + levels.Count) % levels.Count]; } + + public void IncreaseTotalJumps() + { + levelCurrent.totalJumps += 1; + SaveLevelCurrent(); + } + + public void IncreaseTotalAttempts() + { + levelCurrent.totalAttempts += 1; + SaveLevelCurrent(); + } } diff --git a/Assets/Scripts/Player.cs b/Assets/Scripts/Player.cs index 1860a4e..473bd9d 100644 --- a/Assets/Scripts/Player.cs +++ b/Assets/Scripts/Player.cs @@ -18,6 +18,7 @@ public class Player : MonoBehaviour public void Start() { levelsLoader = GameObject.FindGameObjectWithTag("LevelsLoader").GetComponent(); + levelsLoader.IncreaseTotalAttempts(); audioSource.clip = Resources.Load(Path.Combine("Musics", levelsLoader.levelCurrent.musicName)); audioSource.Play(); @@ -62,6 +63,7 @@ public class Player : MonoBehaviour { rigidBody.linearVelocity = new Vector2(rigidBody.linearVelocity.x, 0); rigidBody.AddForce(Vector2.up * 26.6581f, ForceMode2D.Impulse); + levelsLoader.IncreaseTotalJumps(); } private bool IsJumping()