Save when talking to stele and record their ID in the save file
This commit is contained in:
@@ -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 = [] };
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user