修了不少东西
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -303,7 +303,7 @@ public class eFinalDream : MonoBehaviour
|
||||
|
||||
if (coinRequired > 0)
|
||||
{
|
||||
SpawnMaterialItem(coinSprite, "Coins", PlayerEconomyLedger.EnsureInstance().GetCoins(), coinRequired);
|
||||
SpawnMaterialItem(coinSprite, "算力", PlayerEconomyLedger.EnsureInstance().GetCoins(), coinRequired);
|
||||
}
|
||||
|
||||
if (memoryRequired > 0)
|
||||
@@ -400,7 +400,7 @@ public class eFinalDream : MonoBehaviour
|
||||
|
||||
if (!PlayerEconomyLedger.EnsureInstance().HasEnoughCoins(coinRequired))
|
||||
{
|
||||
return "硬币不足";
|
||||
return "算力不足";
|
||||
}
|
||||
|
||||
if (!PlayerEconomyLedger.EnsureInstance().HasEnoughMaterial(memoryRequired))
|
||||
|
||||
@@ -315,7 +315,7 @@ public class equipIllusion : MonoBehaviour
|
||||
{
|
||||
SpawnMaterialItem(
|
||||
coinSprite,
|
||||
"Coins",
|
||||
"算力",
|
||||
PlayerEconomyLedger.EnsureInstance().GetCoins(),
|
||||
coinRequired);
|
||||
}
|
||||
@@ -416,7 +416,7 @@ public class equipIllusion : MonoBehaviour
|
||||
|
||||
if (!PlayerEconomyLedger.EnsureInstance().HasEnoughCoins(coinRequired))
|
||||
{
|
||||
return "硬币不足";
|
||||
return "算力不足";
|
||||
}
|
||||
|
||||
if (!PlayerEconomyLedger.EnsureInstance().HasEnoughMaterial(memoryRequired))
|
||||
|
||||
@@ -902,7 +902,7 @@ public class equipSmelt : MonoBehaviour
|
||||
|
||||
if (!PlayerEconomyLedger.EnsureInstance().HasEnoughCoins(GetStartSmeltCost()))
|
||||
{
|
||||
reasonWhy.text = "硬币不足";
|
||||
reasonWhy.text = "算力不足";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -364,7 +364,7 @@ public class equipTransfer : MonoBehaviour
|
||||
|
||||
if (coinRequired > 0)
|
||||
{
|
||||
SpawnMaterialItem(coins, "Coins", PlayerEconomyLedger.EnsureInstance().GetCoins(), coinRequired);
|
||||
SpawnMaterialItem(coins, "算力", PlayerEconomyLedger.EnsureInstance().GetCoins(), coinRequired);
|
||||
}
|
||||
|
||||
if (memoryRequired > 0)
|
||||
@@ -446,7 +446,7 @@ public class equipTransfer : MonoBehaviour
|
||||
|
||||
if (!PlayerEconomyLedger.EnsureInstance().HasEnoughCoins(coinRequired))
|
||||
{
|
||||
return "硬币不足";
|
||||
return "算力不足";
|
||||
}
|
||||
|
||||
if (!PlayerEconomyLedger.EnsureInstance().HasEnoughMaterial(memoryRequired))
|
||||
|
||||
@@ -337,7 +337,7 @@ public class equipUpdate : MonoBehaviour
|
||||
{
|
||||
SpawnMaterialItem(
|
||||
coinSprite,
|
||||
"Coins",
|
||||
"算力",
|
||||
PlayerEconomyLedger.EnsureInstance().GetCoins(),
|
||||
upgradeCoinsRequired);
|
||||
}
|
||||
@@ -440,7 +440,7 @@ public class equipUpdate : MonoBehaviour
|
||||
|
||||
if (!PlayerEconomyLedger.EnsureInstance().HasEnoughCoins(upgradeCoinsRequired))
|
||||
{
|
||||
return "硬币不足";
|
||||
return "算力不足";
|
||||
}
|
||||
|
||||
if (!PlayerEconomyLedger.EnsureInstance().HasEnoughMaterial(upgradeMemoryRequired))
|
||||
|
||||
Reference in New Issue
Block a user