GameLogic/SaveManager.cs
using Sandbox;
public static class SaveManager
{
private const string SaveFileName = "campaign_save.json";
public static bool HasSave() => FileSystem.Data.FileExists( SaveFileName );
public static void Save( CampaignSaveData data )
{
try
{
FileSystem.Data.WriteJson( SaveFileName, data );
Log.Info( $"💾 [SAUVEGARDE] Progression enregistrée (Round {data.CurrentRoundIndex + 1})." );
}
catch ( System.Exception ex )
{
Log.Error( $"Erreur lors de la sauvegarde : {ex.Message}" );
}
}
public static CampaignSaveData Load()
{
if ( !HasSave() ) return null;
try
{
var data = FileSystem.Data.ReadJson<CampaignSaveData>( SaveFileName );
Log.Info( $"📂 [CHARGEMENT] Partie reprise au Round {data.CurrentRoundIndex + 1}." );
return data;
}
catch ( System.Exception ex )
{
Log.Error( $"Erreur lors du chargement : {ex.Message}" );
return null;
}
}
public static void ClearSave()
{
if ( FileSystem.Data.FileExists( SaveFileName ) )
{
FileSystem.Data.DeleteFile( SaveFileName );
Log.Info( "🗑️ [SAUVEGARDE] Fichier de sauvegarde supprimé." );
}
}
}