Saving and loading difficulty

This commit is contained in:
Marco 2025-04-08 15:17:21 +02:00
commit 22a1ec5ba2

View file

@ -1,6 +1,7 @@
using System; using System;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Cirno.Scripts.Enums;
using Cirno.Scripts.Resources; using Cirno.Scripts.Resources;
using Cirno.Scripts.Utils; using Cirno.Scripts.Utils;
using Godot; using Godot;
@ -214,7 +215,8 @@ public partial class GlobalState : Node
var serializedSavedata = new Godot.Collections.Dictionary<string, Variant>() var serializedSavedata = new Godot.Collections.Dictionary<string, Variant>()
{ {
{ "Items", items }, { "Items", items },
{ "Level", SessionSettings.LevelNumber } { "Level", SessionSettings.LevelNumber },
{ "Difficulty", (int)SessionSettings.Difficulty}
}; };
var saveFile = FileAccess.Open(SaveNameFile, FileAccess.ModeFlags.Write); var saveFile = FileAccess.Open(SaveNameFile, FileAccess.ModeFlags.Write);
@ -248,6 +250,8 @@ public partial class GlobalState : Node
Dictionary<string, int> items = (Dictionary<string, int>)deserializedSaveData["Items"]; Dictionary<string, int> items = (Dictionary<string, int>)deserializedSaveData["Items"];
DifficultyLevel difficulty = (DifficultyLevel)deserializedSaveData["Difficulty"].AsInt32();
int levelNumber = (int)deserializedSaveData["Level"]; int levelNumber = (int)deserializedSaveData["Level"];
var levelData = _mapsDatabase.Maps.FirstOrDefault(x => x.LevelId == levelNumber); var levelData = _mapsDatabase.Maps.FirstOrDefault(x => x.LevelId == levelNumber);
@ -259,6 +263,7 @@ public partial class GlobalState : Node
this.SessionSettings.NewSession(); this.SessionSettings.NewSession();
SessionSettings.LevelNumber = levelNumber; SessionSettings.LevelNumber = levelNumber;
SessionSettings.Items = items; SessionSettings.Items = items;
SessionSettings.Difficulty = difficulty;
this.GotoScene(levelData); this.GotoScene(levelData);