From 27d839b86fb049bddbbb3a205b038159979542b1 Mon Sep 17 00:00:00 2001 From: Rendo Date: Mon, 21 Jul 2025 02:13:02 +0500 Subject: [PATCH] player progress --- assets/rewards/DefaultReward.tres | 12 +++ assets/sprites/atlases/atlas1.png | Bin 33806 -> 34637 bytes assets/sprites/money_bag.tres | 7 ++ assets/sprites/pon.png | Bin 0 -> 1626 bytes assets/sprites/pon.png.import | 34 ++++++ project.godot | 3 +- scenes/gui/reward_scene.tscn | 3 +- scenes/templates/level_template.tscn | 6 +- scenes/templates/money_reward.tscn | 16 +++ scripts/PlayerProgress.cs | 17 +++ scripts/PlayerProgress.cs.uid | 1 + scripts/SaveSerializer.cs | 99 ++++++++++++++++++ ...erializer.cs.uid => SaveSerializer.cs.uid} | 0 scripts/SettingsSerializer.cs | 41 -------- scripts/droppable-items/DroppableItem.cs | 5 +- .../droppable-items/DroppableSeedpacket.cs | 5 - scripts/gui/almanach/AlmanachGrid.cs | 2 +- scripts/gui/choose_your_seeds/GridLoader.cs | 2 +- scripts/gui/seedpackets/ChoosableHandler.cs | 2 +- scripts/level/LevelController.cs | 1 - scripts/level/LevelRunner.cs | 19 +++- scripts/resources/MoneyReward.cs | 5 + scripts/resources/PlantReward.cs | 13 +++ scripts/resources/RewardResource.cs | 1 + scripts/systems/GameRegistry.cs | 2 +- scripts/systems/static-data/PlayerInfo.cs | 7 -- scripts/systems/static-data/PlayerInfo.cs.uid | 1 - 27 files changed, 236 insertions(+), 68 deletions(-) create mode 100644 assets/rewards/DefaultReward.tres create mode 100644 assets/sprites/money_bag.tres create mode 100644 assets/sprites/pon.png create mode 100644 assets/sprites/pon.png.import create mode 100644 scenes/templates/money_reward.tscn create mode 100644 scripts/PlayerProgress.cs create mode 100644 scripts/PlayerProgress.cs.uid create mode 100644 scripts/SaveSerializer.cs rename scripts/{SettingsSerializer.cs.uid => SaveSerializer.cs.uid} (100%) delete mode 100644 scripts/SettingsSerializer.cs delete mode 100644 scripts/systems/static-data/PlayerInfo.cs delete mode 100644 scripts/systems/static-data/PlayerInfo.cs.uid diff --git a/assets/rewards/DefaultReward.tres b/assets/rewards/DefaultReward.tres new file mode 100644 index 0000000..ddf91f8 --- /dev/null +++ b/assets/rewards/DefaultReward.tres @@ -0,0 +1,12 @@ +[gd_resource type="Resource" script_class="MoneyReward" load_steps=3 format=3 uid="uid://kqqqjubwm37a"] + +[ext_resource type="PackedScene" uid="uid://3x821ng2yf57" path="res://scenes/templates/money_reward.tscn" id="1_g5bk7"] +[ext_resource type="Script" uid="uid://dtfmy3los1si1" path="res://scripts/resources/MoneyReward.cs" id="1_qd0ii"] + +[resource] +script = ExtResource("1_qd0ii") +Cost = 500 +Scene = ExtResource("1_g5bk7") +Name = "moneybag" +Description = "rwd_moneybag" +metadata/_custom_type_script = "uid://dtfmy3los1si1" diff --git a/assets/sprites/atlases/atlas1.png b/assets/sprites/atlases/atlas1.png index 9bd9d0aff6cdba1baef9e38653598edff07f8621..d9cff530e4c66401f52461dc0aefbaf05249708e 100644 GIT binary patch literal 34637 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 literal 33806 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 W_&a&x*!TK(RTVWA%HO>I_J07v;7ODK diff --git a/assets/sprites/money_bag.tres b/assets/sprites/money_bag.tres new file mode 100644 index 0000000..196d1ab --- /dev/null +++ b/assets/sprites/money_bag.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://c3qw52yoseb1k"] + +[ext_resource type="Texture2D" uid="uid://dvldjlg0nr355" path="res://assets/sprites/atlases/atlas1.png" id="1_rucxc"] + +[resource] +atlas = ExtResource("1_rucxc") +region = Rect2(504, 16, 46, 49) diff --git a/assets/sprites/pon.png b/assets/sprites/pon.png new file mode 100644 index 0000000000000000000000000000000000000000..524f2a1b61f2b22c6108839ed2947479db7c3ca7 GIT binary patch literal 1626 zcmV-g2BrClP)uV8ar@9NRS(s9uN{-pwL8!A8G}ng8oniN?KY# z9N-_|l1mS8fW)Ti0X2!$&|a!mRQM7Oi4=#riT81^XFWTeS;1m> z&71e$CJY_o;0v!15ux|MJ}|}r1~4#O`~F+j>9x~9wYa7sQ?vi7@)! zi7gQ!QYowxK$jo1`GBa^JOL;fkJJALHR%wMJDgMuJ`)o!iON&1-UM&i+2Gcxb;nB4-PgX-x{n$!J)!99V(0) z=aNX@LbOaO0XSs)Z)|M9bsIv|>va$j@-M#&*R3OaV8FAx_liiqx^UNfpUn*#xgnGT zM3|Pu0N}cWdcBT%y^d0;f>P-peDTRgn7w)#mTk9Q5y@8JGx zrfGhD6%QXiK%uY~j^n^?M%;0NBOg>w7mF24EPNI!;xZyH0iYp*ocMG_Q8xQ8`um^8 z&Ye%8uP=+9o+q(m#}nGf2ccN3pjfOluG@xuyFMeb12|Mp0Q}2fad8Q6fBh5a{wi+F z{pdR`Op6V`BhE+k_&Lg5x6qLTbPx%Z%YWg`^FP4-dlkJy1Ipur+G-U%^5}d36N>=4 z&hh5WTX_AAPvPEQMRsT(0K(|;)7tBp2qBU;MbI*c%>l9qOG~$L>()9hoc66~JCpS>-+UX!fT?VoD-SU>WwpK+ZlYwnpzJh0L;w> zWE&LG*OygRd$ZFgz4vk+P{AZIMsY#n4rqN&V2t_N<4h*wJ4Q8JQ3(=MJel+kH|AzM z-ibSagGZmY#2Xu%SXo*19iw^zW!h}D1Me6`@<2iYsO-vrwrv}mn|0J`HLS1yr#&Bt zFB$TVQ6>*0>;Rnzy}do?@85|B4{BIix*hsDrVyj9A`c{#1A=Z?j_Sg~P2_U>eV>JW z?x4c+V{ZXaM_ojs4ludlTyDSD;fd#UQVAA|mB6TrNYnwUak>0CN3HhIs})|HJO?2B zw#J3jJ?2-T<9R?7sJ1cNw!A;F<4|pBVj&}Lxlzai2@9Zdf;cu4f5!`@Fw-H^$M``= zbReP|kExbG)QNDXNGu7OwzX+>eLAF43F?xe{JX6{YNfD_EOdjbCJuoKIxCOL5- zm0h5dC6Od~AjNJl?2<^DI7jMrfQcK@A`c`m5D5d>4N-ggZ4IJjB3dThf2%ykVOV07*qoM6N<$f~ PlayerPlants { get; set; } = new(); + public int MaxSeedpackets = 9; + public int Money { get; set; } +} diff --git a/scripts/PlayerProgress.cs.uid b/scripts/PlayerProgress.cs.uid new file mode 100644 index 0000000..57798df --- /dev/null +++ b/scripts/PlayerProgress.cs.uid @@ -0,0 +1 @@ +uid://bkexfs6kuuuf2 diff --git a/scripts/SaveSerializer.cs b/scripts/SaveSerializer.cs new file mode 100644 index 0000000..b06581a --- /dev/null +++ b/scripts/SaveSerializer.cs @@ -0,0 +1,99 @@ +using Godot; +using Godot.Collections; +using Newlon; +using System.Text.Json; +using System.Collections.Generic; + +public partial class SaveSerializer : Node +{ + const string SAVE_PATH = "user://save.json"; + public override void _Ready() + { + GetTree().AutoAcceptQuit = false; + LoadGame(); + } + + public override void _Notification(int what) + { + if (what == NotificationWMCloseRequest) + { + SaveGame(); + GetTree().Quit(); + } + } + public static void SaveGame() + { + var access = FileAccess.Open(SAVE_PATH, FileAccess.ModeFlags.Write); + var playerProgress = PlayerProgress.Instance; + var save = new SaveData + { + + SFXVolume = (float)Settings.SFX, + MusicVolume = (float)Settings.Music, + SplashSeen = Settings.Splash, + Money = playerProgress.Money, + SeedpacketSlots = playerProgress.MaxSeedpackets, + PlayerPlants = [], + + SaveGameVersion = (string)ProjectSettings.GetSetting("application/config/version") + }; + + foreach (var plant in playerProgress.PlayerPlants) + { + save.PlayerPlants.Add(plant.internal_id); + } + + access.StoreString(JsonSerializer.Serialize(save)); + + access.Close(); + } + public static void LoadGame() + { + if (FileAccess.FileExists(SAVE_PATH) == false) + { + InitiateCleanSave(); + return; + } + + var access = FileAccess.Open(SAVE_PATH, FileAccess.ModeFlags.Read); + + var parsed = JsonSerializer.Deserialize(access.GetAsText()); + + Settings.SFX = parsed.SFXVolume; + Settings.Music = parsed.MusicVolume; + Settings.Splash = parsed.SplashSeen; + + AudioServer.SetBusVolumeDb(1, Mathf.LinearToDb((float)Settings.SFX)); + AudioServer.SetBusVolumeDb(2, Mathf.LinearToDb((float)Settings.Music)); + + var playerProgress = PlayerProgress.Instance; + playerProgress.MaxSeedpackets = parsed.SeedpacketSlots; + playerProgress.PlayerPlants = []; + + foreach (var plantId in parsed.PlayerPlants) + { + playerProgress.PlayerPlants.Add(GameRegistry.GetPlantByName(plantId)); + } + + + access.Close(); + } + private static void InitiateCleanSave() + { + PlayerProgress.Instance.PlayerPlants = new List([GameRegistry.GetPlantByName("peashooter")]); + PlayerProgress.Instance.Money = 0; + + SaveGame(); + } + private partial class SaveData + { + public float SFXVolume { get; set; } + public float MusicVolume { get; set; } + public string SaveGameVersion { get; set; } + public bool SplashSeen { get; set; } + public List PlayerPlants { get; set; } + public int Money { get; set; } = 0; + public int SeedpacketSlots { get; set; } = 6; + public List FinishedLevels { get; set; } = new(); + } +} diff --git a/scripts/SettingsSerializer.cs.uid b/scripts/SaveSerializer.cs.uid similarity index 100% rename from scripts/SettingsSerializer.cs.uid rename to scripts/SaveSerializer.cs.uid diff --git a/scripts/SettingsSerializer.cs b/scripts/SettingsSerializer.cs deleted file mode 100644 index b9e637c..0000000 --- a/scripts/SettingsSerializer.cs +++ /dev/null @@ -1,41 +0,0 @@ -using Godot; - -public partial class SettingsSerializer : Node -{ - const string CFG_PATH = "user://config.cfg"; - public override void _EnterTree() - { - GetTree().AutoAcceptQuit = false; - if (FileAccess.FileExists(CFG_PATH) == false) return; - - var access = FileAccess.Open(CFG_PATH, FileAccess.ModeFlags.Read); - - Settings.SFX = float.Parse(access.GetLine().Split(" ")[1]); - Settings.Music = float.Parse(access.GetLine().Split(" ")[1]); - Settings.Splash = bool.Parse(access.GetLine().Split(" ")[1]); - - AudioServer.SetBusVolumeDb(0, Mathf.LinearToDb((float)Settings.SFX)); - AudioServer.SetBusVolumeDb(1, Mathf.LinearToDb((float)Settings.Music)); - - access.Close(); - } - public override void _ExitTree() - { - var access = FileAccess.Open(CFG_PATH, FileAccess.ModeFlags.Write); - access.Resize(0); - access.StoreString(string.Format("SFX {0}\nMusic {1}\nSplash {2}\n", Settings.SFX,Settings.Music,Settings.Splash)); - - access.Close(); - } - - public override void _Notification(int what) - { - if (what == NotificationWMCloseRequest) - { - _ExitTree(); - GetTree().Quit(); - } - } - - -} diff --git a/scripts/droppable-items/DroppableItem.cs b/scripts/droppable-items/DroppableItem.cs index ea05cbe..2281cfe 100644 --- a/scripts/droppable-items/DroppableItem.cs +++ b/scripts/droppable-items/DroppableItem.cs @@ -2,7 +2,7 @@ using Godot; [GlobalClass] -public abstract partial class DroppableItem : Area2D +public partial class DroppableItem : Area2D { [Signal] public delegate void PickedUpEventHandler(); public override void _InputEvent(Viewport viewport, InputEvent @event, int shapeIdx) @@ -10,8 +10,9 @@ public abstract partial class DroppableItem : Area2D if (@event.IsActionPressed("primary_action")) { PickUp(); + EmitSignal(SignalName.PickedUp); } } - public abstract void PickUp(); + public virtual void PickUp() {} } diff --git a/scripts/droppable-items/DroppableSeedpacket.cs b/scripts/droppable-items/DroppableSeedpacket.cs index ed18e41..acc952f 100644 --- a/scripts/droppable-items/DroppableSeedpacket.cs +++ b/scripts/droppable-items/DroppableSeedpacket.cs @@ -17,9 +17,4 @@ public partial class DroppableSeedpacket : DroppableItem _cost.LabelSettings = plant.customFrame.font; } } - - public override void PickUp() - { - EmitSignal(SignalName.PickedUp); - } } diff --git a/scripts/gui/almanach/AlmanachGrid.cs b/scripts/gui/almanach/AlmanachGrid.cs index f14ad0b..911cec4 100644 --- a/scripts/gui/almanach/AlmanachGrid.cs +++ b/scripts/gui/almanach/AlmanachGrid.cs @@ -28,7 +28,7 @@ public partial class AlmanachGrid : GridContainer } else { - var list = GameRegistry.GetPlants(); + var list = PlayerProgress.Instance.PlayerPlants; list.Sort((a, b) => { return a.Order - b.Order; diff --git a/scripts/gui/choose_your_seeds/GridLoader.cs b/scripts/gui/choose_your_seeds/GridLoader.cs index 21d0198..fba5db8 100644 --- a/scripts/gui/choose_your_seeds/GridLoader.cs +++ b/scripts/gui/choose_your_seeds/GridLoader.cs @@ -11,7 +11,7 @@ public partial class GridLoader : GridContainer { _plantCard = ResourceLoader.Load(SEEDPACKED_UID); - var list = GameRegistry.GetPlants(); + var list = PlayerProgress.Instance.PlayerPlants; list.Sort((a, b) => { return a.Order - b.Order; diff --git a/scripts/gui/seedpackets/ChoosableHandler.cs b/scripts/gui/seedpackets/ChoosableHandler.cs index 7af1730..40e2749 100644 --- a/scripts/gui/seedpackets/ChoosableHandler.cs +++ b/scripts/gui/seedpackets/ChoosableHandler.cs @@ -8,7 +8,7 @@ public class ChoosableHandler : SeedpacketHandler, ISeedpacketPress public void Pressed() { - if (LevelGUIElements.Instance.SeedpacketsHotbar.GetChildCount() >= PlayerInfo.MaxSeedpackets) return; + if (LevelGUIElements.Instance.SeedpacketsHotbar.GetChildCount() >= PlayerProgress.Instance.MaxSeedpackets) return; _owner.disablePacket = true; var hotbarSeedpacket = Seedpacket.Prefab.Instantiate(); diff --git a/scripts/level/LevelController.cs b/scripts/level/LevelController.cs index a975d18..7119457 100644 --- a/scripts/level/LevelController.cs +++ b/scripts/level/LevelController.cs @@ -58,7 +58,6 @@ public partial class LevelController : Node RuntimeLevelData.LevelResource = null; _isLevelRunning = false; - if (Reward != null) { GetTree().ChangeSceneToFile(REWARD_SCENE_UID); diff --git a/scripts/level/LevelRunner.cs b/scripts/level/LevelRunner.cs index 34462af..c717029 100644 --- a/scripts/level/LevelRunner.cs +++ b/scripts/level/LevelRunner.cs @@ -127,13 +127,24 @@ public partial class LevelRunner : Node RuntimeLevelData.Instance.SetLevelState(RuntimeLevelData.LevelStates.Win); - var reward = resource.reward.Scene.Instantiate(); + DroppableItem reward; + if (resource.reward.Redeem()) + { + reward = resource.reward.Scene.Instantiate(); + LevelController.Instance.SetReward(resource.reward); + } + else + { + defaultReward.Redeem(); + reward = defaultReward.Scene.Instantiate(); + LevelController.Instance.SetReward(defaultReward); + + } + if (reward is DroppableSeedpacket seedpacket && resource.reward is PlantReward plantReward) { seedpacket.plant = plantReward.Plant; } - LevelController.Instance.SetReward(resource.reward); - player.Play("win"); Callable.From(() => { rewardParent.AddChild(reward); @@ -145,6 +156,8 @@ public partial class LevelRunner : Node }).CallDeferred(); reward.PickedUp += () => { + player.Play("win"); + var tween = CreateTween(); var camera = GetViewport().GetCamera2D(); tween.TweenProperty(reward, "global_position", camera.GlobalPosition, 4.0); diff --git a/scripts/resources/MoneyReward.cs b/scripts/resources/MoneyReward.cs index 4808e76..a87ca82 100644 --- a/scripts/resources/MoneyReward.cs +++ b/scripts/resources/MoneyReward.cs @@ -9,5 +9,10 @@ public partial class MoneyReward : RewardResource { return Scene; } + public override bool Redeem() + { + PlayerProgress.Instance.Money += Cost; + return true; + } } diff --git a/scripts/resources/PlantReward.cs b/scripts/resources/PlantReward.cs index 7700d68..1ea5d19 100644 --- a/scripts/resources/PlantReward.cs +++ b/scripts/resources/PlantReward.cs @@ -11,5 +11,18 @@ public partial class PlantReward : RewardResource { return Plant.Scene; } + public override bool Redeem() + { + if (PlayerProgress.Instance.PlayerPlants.Contains(Plant) == false) + { + PlayerProgress.Instance.PlayerPlants.Add(Plant); + return true; + } + else + { + return false; + } + } + } diff --git a/scripts/resources/RewardResource.cs b/scripts/resources/RewardResource.cs index 258bb69..e1a4bbb 100644 --- a/scripts/resources/RewardResource.cs +++ b/scripts/resources/RewardResource.cs @@ -9,4 +9,5 @@ public abstract partial class RewardResource : Resource [Export] public string Name { get; private set; } [Export] public string Description { get; private set; } public abstract PackedScene GetPreview(); + public abstract bool Redeem(); } diff --git a/scripts/systems/GameRegistry.cs b/scripts/systems/GameRegistry.cs index 4e4ccd5..dae99e2 100644 --- a/scripts/systems/GameRegistry.cs +++ b/scripts/systems/GameRegistry.cs @@ -10,7 +10,7 @@ public partial class GameRegistry : Node public static readonly Dictionary PlantDictionary = []; public static readonly Dictionary ZombieDictionary = []; - public override void _Ready() + public override void _EnterTree() { //Plant init string[] plantFiles = ResourceLoader.ListDirectory(PLANT_RESOURCE_PATH); diff --git a/scripts/systems/static-data/PlayerInfo.cs b/scripts/systems/static-data/PlayerInfo.cs deleted file mode 100644 index cda1ee7..0000000 --- a/scripts/systems/static-data/PlayerInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -using Godot; -using System; - -public partial class PlayerInfo : Node -{ - public static int MaxSeedpackets = 9; -} diff --git a/scripts/systems/static-data/PlayerInfo.cs.uid b/scripts/systems/static-data/PlayerInfo.cs.uid deleted file mode 100644 index f99278c..0000000 --- a/scripts/systems/static-data/PlayerInfo.cs.uid +++ /dev/null @@ -1 +0,0 @@ -uid://dpbaw8osly0ir