修了不少东西

This commit is contained in:
2026-07-16 23:04:59 +08:00
parent 29972d0705
commit 73fe474cc6
134 changed files with 7673 additions and 741 deletions
+19 -2
View File
@@ -15,8 +15,11 @@ namespace Bansonic
private const string NextGeneratedIdPrefsKey = "bansonic_equipment_next_id_v1";
private const string RuntimeSaveCategory = "runtime_equipment";
private const string RuntimeSaveKey = "generated_list";
private const string RuntimeRecoverySlotKey = "runtime_generated_equipment_list";
private static readonly List<equipmentSO> RuntimeGeneratedEquipments = new List<equipmentSO>();
private static bool runtimeGeneratedLoaded;
private static bool runtimeGeneratedLoadedFromSave;
private static bool runtimeGeneratedHasRecoverableState;
private enum QualityRollMode { Default, High }
@@ -113,7 +116,10 @@ namespace Bansonic
{
RuntimeGeneratedEquipments.Clear();
runtimeGeneratedLoaded = true;
runtimeGeneratedLoadedFromSave = false;
runtimeGeneratedHasRecoverableState = false;
SecureSaveVault.Delete(RuntimeSaveCategory, RuntimeSaveKey);
LocalRecoveryMirror.DeleteSlot(RuntimeRecoverySlotKey);
}
public static List<equipmentSO> generateEquipment(
@@ -630,12 +636,16 @@ namespace Bansonic
}
runtimeGeneratedLoaded = true;
runtimeGeneratedLoadedFromSave = false;
runtimeGeneratedHasRecoverableState =
SecureSaveVault.HasAnyRecoverableState(RuntimeSaveCategory, RuntimeSaveKey)
|| LocalRecoveryMirror.HasSlotData(RuntimeRecoverySlotKey);
RuntimeGeneratedEquipments.Clear();
RuntimeGeneratedEquipmentListPayload payload;
if (!SecureSaveVault.TryLoadJson(RuntimeSaveCategory, RuntimeSaveKey, out payload) || payload == null || payload.items == null)
{
if (!LocalRecoveryMirror.TryLoadJson("runtime_generated_equipment_list", out payload) || payload == null || payload.items == null)
if (!LocalRecoveryMirror.TryLoadJson(RuntimeRecoverySlotKey, out payload) || payload == null || payload.items == null)
{
return;
}
@@ -643,6 +653,7 @@ namespace Bansonic
SecureSaveVault.SaveJson(RuntimeSaveCategory, RuntimeSaveKey, payload);
}
runtimeGeneratedLoadedFromSave = true;
for (int i = 0; i < payload.items.Count; i++)
{
RuntimeGeneratedEquipmentPayload itemPayload = payload.items[i];
@@ -656,6 +667,12 @@ namespace Bansonic
private static void SaveRuntimeGeneratedState()
{
if (!runtimeGeneratedLoadedFromSave && runtimeGeneratedHasRecoverableState)
{
Debug.LogWarning("[EquipmentGenerator] Recoverable runtime equipment state exists but could not be loaded; skip saving to avoid overwriting older equipment data.");
return;
}
RuntimeGeneratedEquipmentListPayload payload = new RuntimeGeneratedEquipmentListPayload();
for (int i = 0; i < RuntimeGeneratedEquipments.Count; i++)
{
@@ -669,7 +686,7 @@ namespace Bansonic
}
SecureSaveVault.SaveJson(RuntimeSaveCategory, RuntimeSaveKey, payload);
LocalRecoveryMirror.SaveJson("runtime_generated_equipment_list", payload);
LocalRecoveryMirror.SaveJson(RuntimeRecoverySlotKey, payload);
}
private static RuntimeGeneratedEquipmentPayload BuildPayload(equipmentSO equipment)