Save when talking to stele and record their ID in the save file

This commit is contained in:
2026-06-04 23:06:01 -07:00
parent 22ca9076e8
commit d8b99e07de
8 changed files with 57 additions and 10 deletions
+11 -3
View File
@@ -72,6 +72,8 @@ public partial class Game : Node3D, IGame
public SarcoData SarcoData { get; private set; }
public NpcData NpcData { get; private set; }
public ItemRescueMenu ItemRescueMenu { get => InGameUI.ItemRescueMenu; }
private EffectService _effectService;
@@ -100,6 +102,7 @@ public partial class Game : Node3D, IGame
QuestData = new QuestData();
RescuedItems = new RescuedItemDatabase(20);
SarcoData = new SarcoData();
NpcData = new NpcData() { SteleDiscovered = [] };
ItemDatabase = ItemDatabase.Instance;
GameChunk = new SaveChunk<GameData>(
@@ -122,6 +125,10 @@ public partial class Game : Node3D, IGame
FerrumSarcoAcquired = SarcoData.FerrumSarcoAcquired,
SanktaSarcoAcquired = SarcoData.SanktaSarcoAcquired,
ShuraSarcoAcquired = SarcoData.ShuraSarcoAcquired,
},
NpcData = new NpcData()
{
SteleDiscovered = NpcData.SteleDiscovered
}
};
return gameData;
@@ -129,9 +136,10 @@ public partial class Game : Node3D, IGame
onLoad:
(chunk, data) =>
{
RescuedItems = data.RescuedItems;
QuestData = data.QuestData;
SarcoData = data.SarcoData;
RescuedItems = data.RescuedItems ?? new RescuedItemDatabase();
QuestData = data.QuestData ?? new QuestData();
SarcoData = data.SarcoData ?? new SarcoData();
NpcData = data.NpcData ?? new NpcData() { SteleDiscovered = [] };
}
);
+3
View File
@@ -14,5 +14,8 @@ public partial record GameData
[Save("sarco_data")]
public required SarcoData SarcoData { get; init; }
[Save("npc_data")]
public required NpcData NpcData { get; init; }
}
+2
View File
@@ -48,6 +48,8 @@ public interface IGame : IProvide<IGame>, IProvide<IGameRepo>, IProvide<IPlayer>
public SarcoData SarcoData { get; }
public NpcData NpcData { get; }
public event Action GameExitRequested;
public event Action GameLoaded;