修了不少东西

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)
@@ -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))