From e1d38c5a6dd36be2ff591a854bfcfae135705b70 Mon Sep 17 00:00:00 2001 From: RCiBot Date: Thu, 12 Nov 2026 18:02:26 +0800 Subject: [PATCH] feat(equipment): persist mech loadouts and recover ejection safe case loot --- Assets/Editor/LocalizationSmoke.cs | 4 +- Assets/Game/Localization/Tables/en.json | 68 ++++- Assets/Game/Localization/Tables/zh-Hans.json | 68 ++++- .../Game/Scripts/Equipment/InventoryGrid.cs | 113 ++++++++ .../Scripts/Equipment/InventoryGrid.cs.meta | 2 + .../Scripts/Localization/GameLocalization.cs | 22 ++ Assets/Game/Scripts/Mechs/MechPilot.cs | 11 +- Assets/Game/Scripts/Runs/GameSession.cs | 96 ++++--- Assets/Game/Scripts/Save/ProfileInventory.cs | 253 ++++++++++++++++++ .../Scripts/Save/ProfileInventory.cs.meta | 2 + Assets/Game/Scripts/Save/ProfileStore.cs | 156 ++++------- Assets/Game/Scripts/UI/GameHud.cs | 42 +-- Assets/Game/Scripts/UI/GameHudInventory.cs | 241 +++++++++++++++++ .../Game/Scripts/UI/GameHudInventory.cs.meta | 2 + Assets/Game/UI/GameHud.uss | 6 + Assets/Tests/EditMode/LocalizationTests.cs | 2 +- Assets/Tests/EditMode/ProfileStoreTests.cs | 126 ++++++++- Docs/Design/GameDesign.md | 26 +- .../Production/EjectionSafeCaseAndGridPlan.md | 139 ++++++++++ Docs/Production/EquipmentSystemPlan.md | 146 ++++++++++ Docs/Production/ImplementationPlan.md | 29 +- Docs/QA/Equipment/DataFoundation.md | 21 ++ Docs/QA/Equipment/Grid-zh-1920x1080.png | Bin 0 -> 305561 bytes 23 files changed, 1371 insertions(+), 204 deletions(-) create mode 100644 Assets/Game/Scripts/Equipment/InventoryGrid.cs create mode 100644 Assets/Game/Scripts/Equipment/InventoryGrid.cs.meta create mode 100644 Assets/Game/Scripts/Save/ProfileInventory.cs create mode 100644 Assets/Game/Scripts/Save/ProfileInventory.cs.meta create mode 100644 Assets/Game/Scripts/UI/GameHudInventory.cs create mode 100644 Assets/Game/Scripts/UI/GameHudInventory.cs.meta create mode 100644 Docs/Production/EjectionSafeCaseAndGridPlan.md create mode 100644 Docs/Production/EquipmentSystemPlan.md create mode 100644 Docs/QA/Equipment/DataFoundation.md create mode 100644 Docs/QA/Equipment/Grid-zh-1920x1080.png diff --git a/Assets/Editor/LocalizationSmoke.cs b/Assets/Editor/LocalizationSmoke.cs index 6f03e47..38c3c0c 100644 --- a/Assets/Editor/LocalizationSmoke.cs +++ b/Assets/Editor/LocalizationSmoke.cs @@ -23,7 +23,7 @@ namespace Ironspore.Editor static int[] initialEquipment; static float nextAt; static VisualElement Root => game.Hud.GetComponent().rootVisualElement; - static string MainPath => Path.Combine(Application.persistentDataPath, "Ironspore", "profile.json"); + static string MainPath => ProfileStore.SavePath(false); static byte[] mainBytes; [Serializable] @@ -97,7 +97,7 @@ namespace Ironspore.Editor initialChassis = game.SelectedChassis; initialEquipment = (int[])game.InitialEquipment.Clone(); rangeFiles.Clear(); - string range = Path.Combine(Application.persistentDataPath, "Ironspore", "range.json"); + string range = ProfileStore.SavePath(true); foreach (string path in new[] { range, range + ".bak", range + ".tmp" }) rangeFiles[path] = File.Exists(path) ? File.ReadAllBytes(path) : null; Directory.CreateDirectory(Folder + "/Screenshots"); diff --git a/Assets/Game/Localization/Tables/en.json b/Assets/Game/Localization/Tables/en.json index b60691f..e620342 100644 --- a/Assets/Game/Localization/Tables/en.json +++ b/Assets/Game/Localization/Tables/en.json @@ -46,7 +46,7 @@ }, { "key": "ui.home.locked", - "value": "Selected advanced part needs schematic research. Try any loadout in the driving range." + "value": "Selected gear is out of stock. Standard slots can use loaners. All models are available in the range." }, { "key": "ui.home.moveHint", @@ -158,7 +158,7 @@ }, { "key": "ui.hud.telemetry", - "value": "{0}\n{1} / {2}\nCARGO {3} / 4\n{4}" + "value": "{0}\n{1} / {2}\nCARGO {3} / 16\n{4}" }, { "key": "ui.hud.transportReady", @@ -174,15 +174,15 @@ }, { "key": "ui.cargo.title", - "value": "FIELD CARGO" + "value": "Cargo and ejection safe case" }, { "key": "ui.cargo.used", - "value": "POD ALREADY USED / remaining cargo must leave with your mech." + "value": "Pod launched. On destruction, only items in the safe case return." }, { "key": "ui.cargo.help", - "value": "Select up to two stacks. Close this panel, stand still and hold G for 3 seconds to send the pod." + "value": "Drag an item or select it and click a cell. Press R to rotate. The safe case returns on destruction. Mark cargo, close this panel and hold G while stationary for three seconds to launch the pod." }, { "key": "ui.cargo.stack", @@ -194,7 +194,7 @@ }, { "key": "ui.cargo.capacity", - "value": "HOLD {0} / 4 POD {1} / 2" + "value": "Hold {0}/16 cells Pod {1}/4 cells" }, { "key": "ui.return", @@ -290,7 +290,7 @@ }, { "key": "report.destroyed", - "value": "MECH LOST / {0} carried stack(s) lost. Previously shipped cargo remains in the hangar." + "value": "Mech destroyed. Lost {0} equipped items or cargo stacks. The safe case returned {1} items or stacks." }, { "key": "report.complete", @@ -298,7 +298,7 @@ }, { "key": "report.extracted", - "value": "EARLY EXTRACTION / all carried materials and schematics secured." + "value": "Extracted. Equipped gear, cargo and safe case contents recovered." }, { "key": "notice.unfinished", @@ -310,7 +310,7 @@ }, { "key": "notice.researchFirst", - "value": "Research the selected equipment schematic first, or try it in the driving range." + "value": "Selected gear is out of stock." }, { "key": "notice.saveFailed", @@ -334,7 +334,7 @@ }, { "key": "notice.twoSlots", - "value": "The cargo pod has two slots." + "value": "The marked items do not fit in the 2×2 pod." }, { "key": "notice.holdFull", @@ -535,6 +535,54 @@ { "key": "item.blueprint_reactive_guard", "value": "SCHEMATIC / REACTIVE SHIELD" + }, + { + "key": "ui.cargo.hold", + "value": "Cargo hold · 4×4" + }, + { + "key": "ui.cargo.case", + "value": "Ejection safe case · 2×2" + }, + { + "key": "ui.cargo.selection", + "value": "Selected {0} {1}×{2} cells Quantity {3}" + }, + { + "key": "ui.cargo.rotate", + "value": "Rotate (R)" + }, + { + "key": "ui.cargo.cancel", + "value": "Deselect" + }, + { + "key": "ui.cargo.install", + "value": "Install" + }, + { + "key": "ui.cargo.mark", + "value": "Mark for pod" + }, + { + "key": "ui.cargo.unmark", + "value": "Unmark" + }, + { + "key": "notice.installFailed", + "value": "Cannot install. Check the loadout budget and the space for the replaced part." + }, + { + "key": "notice.placement", + "value": "Cannot place here. Check bounds, occupied cells and stack quantity." + }, + { + "key": "ui.home.chooseItem", + "value": "Equip {0} · {1}" + }, + { + "key": "ui.home.manufacture", + "value": "Build {0} · {1} alloy / {2} cells" } ] } diff --git a/Assets/Game/Localization/Tables/zh-Hans.json b/Assets/Game/Localization/Tables/zh-Hans.json index 861fd8b..a687f57 100644 --- a/Assets/Game/Localization/Tables/zh-Hans.json +++ b/Assets/Game/Localization/Tables/zh-Hans.json @@ -46,7 +46,7 @@ }, { "key": "ui.home.locked", - "value": "所选高级部件尚未研究蓝图。可在驾驶试验场试用任意配装。" + "value": "所选装备库存不足。基础槽位可借用救济装,试验场可试用所有型号。" }, { "key": "ui.home.moveHint", @@ -158,7 +158,7 @@ }, { "key": "ui.hud.telemetry", - "value": "{0}\n{1} / {2}\n货仓 {3} / 4\n{4}" + "value": "{0}\n{1} / {2}\n货仓 {3} / 16\n{4}" }, { "key": "ui.hud.transportReady", @@ -174,15 +174,15 @@ }, { "key": "ui.cargo.title", - "value": "随身货仓" + "value": "货仓与弹射式安全箱" }, { "key": "ui.cargo.used", - "value": "回收舱已使用 / 剩余货物需要随整机撤离。" + "value": "主动货舱已发射。机毁时只有弹射式安全箱中的物品返航。" }, { "key": "ui.cargo.help", - "value": "最多选择两组货物。关闭面板后原地按住 G 3 秒,发射回收舱。" + "value": "拖动物品或选中后点击目标格,按 R 旋转。安全箱在机毁时自动返航。标记货物后关闭面板,原地按住 G 三秒发射主动货舱。" }, { "key": "ui.cargo.stack", @@ -194,7 +194,7 @@ }, { "key": "ui.cargo.capacity", - "value": "随身货仓 {0} / 4 回收舱 {1} / 2" + "value": "普通货仓 {0}/16 格 主动货舱 {1}/4 格" }, { "key": "ui.return", @@ -290,7 +290,7 @@ }, { "key": "report.destroyed", - "value": "机甲损失 / 丢失 {0} 组随身货物。已送回的货物仍保留在机库。" + "value": "机体损毁。损失 {0} 件装备或货物,弹射式安全箱送回 {1} 件物品。" }, { "key": "report.complete", @@ -298,7 +298,7 @@ }, { "key": "report.extracted", - "value": "提前撤离 / 随身材料与蓝图已全部入库。" + "value": "撤离成功。已装装备、普通货仓和安全箱物品已回收。" }, { "key": "notice.unfinished", @@ -310,7 +310,7 @@ }, { "key": "notice.researchFirst", - "value": "请先研究所选装备蓝图,或在驾驶试验场试用。" + "value": "机库中没有所选装备。" }, { "key": "notice.saveFailed", @@ -334,7 +334,7 @@ }, { "key": "notice.twoSlots", - "value": "回收舱最多容纳两组货物。" + "value": "所选物品放不进 2×2 主动货舱。" }, { "key": "notice.holdFull", @@ -535,6 +535,54 @@ { "key": "item.blueprint_reactive_guard", "value": "蓝图 / 反应护盾" + }, + { + "key": "ui.cargo.hold", + "value": "普通货仓 · 4×4" + }, + { + "key": "ui.cargo.case", + "value": "弹射式安全箱 · 2×2" + }, + { + "key": "ui.cargo.selection", + "value": "已选 {0} {1}×{2} 格 移动数量 {3}" + }, + { + "key": "ui.cargo.rotate", + "value": "旋转 (R)" + }, + { + "key": "ui.cargo.cancel", + "value": "取消选择" + }, + { + "key": "ui.cargo.install", + "value": "安装" + }, + { + "key": "ui.cargo.mark", + "value": "标记发射" + }, + { + "key": "ui.cargo.unmark", + "value": "取消标记" + }, + { + "key": "notice.installFailed", + "value": "无法安装。请检查机体预算和旧件所需的空间。" + }, + { + "key": "notice.placement", + "value": "无法放置。请检查边界、占用和堆叠数量。" + }, + { + "key": "ui.home.chooseItem", + "value": "选用 {0} · {1}" + }, + { + "key": "ui.home.manufacture", + "value": "制造 {0} · 合金 {1} / 电芯 {2}" } ] } diff --git a/Assets/Game/Scripts/Equipment/InventoryGrid.cs b/Assets/Game/Scripts/Equipment/InventoryGrid.cs new file mode 100644 index 0000000..9f8e04f --- /dev/null +++ b/Assets/Game/Scripts/Equipment/InventoryGrid.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; + +namespace Ironspore +{ + public enum Hold { Cargo, SafeCase } + + // Stable content IDs also resolve the existing four gameplay slot indices. + public static class InventoryGrid + { + public const int CargoSize = 4, CaseSize = 2, PodSize = 2; + static readonly string[][] Slots = { + new[] { "rapid", "coil", "siege" }, new[] { "guided", "pulse" }, + new[] { "efficient", "vector" }, new[] { "composite_guard", "reactive_guard" } + }; + + public static string EquipmentId(int slot, int index) => + slot >= 0 && slot < Slots.Length && index >= 0 && index < Slots[slot].Length ? Slots[slot][index] : null; + + public static int Slot(string id) => Array.FindIndex(Slots, group => Array.IndexOf(group, id) >= 0); + public static int Index(int slot, string id) => Array.IndexOf(Slots[slot], id); + public static bool IsMaterial(string id) => id == "alloy" || id == "cells"; + public static bool IsBlueprint(string id) => id != null && id.StartsWith("blueprint_", StringComparison.Ordinal) && id.Length > 10; + public static bool Known(string id) => IsMaterial(id) || IsBlueprint(id) || Slot(id) >= 0; + + public static (string item, int alloy, int cells) Recipe(string blueprint) + { + switch (blueprint) + { + case "blueprint_coil_capacitor": return ("coil", 4, 2); + case "blueprint_boost_efficient": return ("vector", 3, 2); + case "blueprint_reactive_guard": return ("reactive_guard", 4, 1); + default: return (null, 0, 0); + } + } + + public static void Size(string id, bool rotated, out int width, out int height) + { + width = 1; + height = 1; + switch (id) + { + case "rapid": height = 3; break; + case "coil": width = 2; height = 3; break; + case "siege": width = 2; height = 4; break; + case "pulse": case "reactive_guard": case "vector": width = 2; height = 2; break; + case "guided": case "efficient": case "composite_guard": height = 2; break; + } + if (rotated) (width, height) = (height, width); + } + + public static int Area(CargoStack item) + { + Size(item.itemId, false, out int w, out int h); + return w * h; + } + + public static bool Fits(List items, int size, CargoStack item, int x, int y, bool rotated) + { + Size(item.itemId, rotated, out int w, out int h); + if (x < 0 || y < 0 || x > size - w || y > size - h) return false; + foreach (var other in items) + { + if (other == null) return false; + if (ReferenceEquals(item, other)) continue; + Size(other.itemId, other.rotated, out int ow, out int oh); + if (x < other.x + ow && x + w > other.x && y < other.y + oh && y + h > other.y) + return false; + } + return true; + } + + public static bool Place(List items, int size, CargoStack item, int x, int y, bool rotated) + { + if (items.Contains(item) || !Fits(items, size, item, x, y, rotated)) return false; + item.x = x; + item.y = y; + item.rotated = rotated; + items.Add(item); + return true; + } + + public static bool AutoPlace(List items, int size, CargoStack item) + { + for (int turn = 0; turn < 2; turn++) + for (int y = 0; y < size; y++) + for (int x = 0; x < size; x++) + if (Place(items, size, item, x, y, turn == 1)) return true; + return false; + } + + // The pod is small. Try alternate placements so a greedy choice cannot reject a valid manifest. + public static bool PodFits(List selection) + { + if (selection.Count == 0 || selection.Count > PodSize * PodSize) return false; + return Pack(0, new List()); + bool Pack(int index, List placed) + { + if (index == selection.Count) return true; + var next = new CargoStack(selection[index].itemId, selection[index].count) { uid = selection[index].uid }; + for (int turn = 0; turn < 2; turn++) + for (int y = 0; y < PodSize; y++) + for (int x = 0; x < PodSize; x++) + { + if (!Place(placed, PodSize, next, x, y, turn == 1)) continue; + if (Pack(index + 1, placed)) return true; + placed.RemoveAt(placed.Count - 1); + } + return false; + } + } + } +} diff --git a/Assets/Game/Scripts/Equipment/InventoryGrid.cs.meta b/Assets/Game/Scripts/Equipment/InventoryGrid.cs.meta new file mode 100644 index 0000000..63c7c9b --- /dev/null +++ b/Assets/Game/Scripts/Equipment/InventoryGrid.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 2e9cb0228d5ccb643a654d0e82090d2a \ No newline at end of file diff --git a/Assets/Game/Scripts/Localization/GameLocalization.cs b/Assets/Game/Scripts/Localization/GameLocalization.cs index 1c5605c..6238cf2 100644 --- a/Assets/Game/Scripts/Localization/GameLocalization.cs +++ b/Assets/Game/Scripts/Localization/GameLocalization.cs @@ -7,7 +7,11 @@ namespace Ironspore { public static class GameLocalization { +#if UNITY_EDITOR + public static string PreferenceKey => "settings.locale." + Hash128.Compute(Application.dataPath); +#else public const string PreferenceKey = "settings.locale"; +#endif public const string FallbackCode = "en"; public static event Action Changed; public static string CurrentCode { get; private set; } = FallbackCode; @@ -40,6 +44,7 @@ namespace Ironspore tables.Add(locale.code, ReadTable(locale.table)); if (!tables.ContainsKey(FallbackCode)) throw new InvalidOperationException("English fallback table is missing."); + if (catalog.uiFont) PrepareGlyphs(catalog); string system = CultureInfo.CurrentUICulture.Name; if (Application.systemLanguage == SystemLanguage.ChineseSimplified || Application.systemLanguage == SystemLanguage.ChineseTraditional || Application.systemLanguage == SystemLanguage.Chinese) system = "zh-Hans"; @@ -48,6 +53,23 @@ namespace Ironspore CurrentCode = FallbackCode; } + static void PrepareGlyphs(LocalizationCatalog catalog) + { + // A clean import can start with an empty dynamic atlas. + var missingGlyphs = new SortedSet(); + foreach (var table in tables.Values) + foreach (string value in table.Values) + foreach (char glyph in value) + if (!char.IsControl(glyph) && !catalog.uiFont.HasCharacter(glyph)) missingGlyphs.Add(glyph); + if (missingGlyphs.Count > 0) + { + var glyphs = new char[missingGlyphs.Count]; + missingGlyphs.CopyTo(glyphs); + catalog.uiFont.TryAddCharacters(new string(glyphs), out string absent); + if (!string.IsNullOrEmpty(absent)) Debug.LogWarning("Missing UI font glyphs: " + absent); + } + } + public static Dictionary ReadTable(TextAsset source) { if (!source) diff --git a/Assets/Game/Scripts/Mechs/MechPilot.cs b/Assets/Game/Scripts/Mechs/MechPilot.cs index 2b49b8f..d5381fd 100644 --- a/Assets/Game/Scripts/Mechs/MechPilot.cs +++ b/Assets/Game/Scripts/Mechs/MechPilot.cs @@ -92,12 +92,12 @@ namespace Ironspore pitch = Mathf.Clamp(pitch - look.y * .105f, -72, 75); if (game.Action("View").WasPressedThisFrame()) FirstPerson = !FirstPerson; - if (game.Action("Guard").WasPressedThisFrame() && Energy >= 20) + if (game.Action("Guard").WasPressedThisFrame() && game.Run.equipment[3] >= 0 && Energy >= 20) { Energy -= 20; Guard = 2.5f; } - if (game.Action("Boost").WasPressedThisFrame() && boostCooldown <= 0 && Energy >= 18) + if (game.Action("Boost").WasPressedThisFrame() && game.Run.equipment[2] >= 0 && boostCooldown <= 0 && Energy >= 18) { boostDirection = Quaternion.Euler(0, yaw, 0) * new Vector3(movement.x, 0, movement.y == 0 && movement.x == 0 ? 1 : movement.y); boostDirection.Normalize(); @@ -116,7 +116,7 @@ namespace Ironspore } } Vector3 velocity = Quaternion.Euler(0, yaw, 0) * new Vector3(movement.x, 0, movement.y); - float speed = frame.speed * game.Part(2, game.Run.equipment[2]).speedFactor; + float speed = frame.speed * (game.Part(2, game.Run.equipment[2])?.speedFactor ?? 1f); velocity = Vector3.ClampMagnitude(velocity, 1) * speed; if (boostRemaining > 0) { @@ -141,7 +141,7 @@ namespace Ironspore freshTrigger = false; if (!freshTrigger && game.Action("Fire").IsPressed() && shotCooldown <= 0) Shoot(false); - if (game.Action("Secondary").WasPressedThisFrame() && sideCooldown <= 0 && Energy >= 15) + if (game.Action("Secondary").WasPressedThisFrame() && game.Run.equipment[1] >= 0 && sideCooldown <= 0 && Energy >= 15) { Energy -= 15; Shoot(true); @@ -171,6 +171,7 @@ namespace Ironspore void Shoot(bool secondary) { var part = game.Part(secondary ? 1 : 0, game.Run.equipment[secondary ? 1 : 0]); + if (!part) return; shotCooldown = secondary ? shotCooldown : 1 / part.fireRate; Ray ray = view.ViewportPointToRay(new Vector3(.5f, .5f)); Vector3 target = ray.GetPoint(180); @@ -211,7 +212,7 @@ namespace Ironspore if (!game.InField || Health <= 0) return; LastDamageFrame = Time.frameCount; - float armorFactor = game.Part(3, game.Run.equipment[3]).id == "reactive_guard" ? .72f : 1; + float armorFactor = game.Part(3, game.Run.equipment[3])?.id == "reactive_guard" ? .72f : 1; Health = Mathf.Max(0, Health - amount * armorFactor * (Guard > 0 ? .2f : 1)); game.Run.armor = Health; } diff --git a/Assets/Game/Scripts/Runs/GameSession.cs b/Assets/Game/Scripts/Runs/GameSession.cs index b9a6394..eb7177d 100644 --- a/Assets/Game/Scripts/Runs/GameSession.cs +++ b/Assets/Game/Scripts/Runs/GameSession.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.IO; using UnityEngine; using UnityEngine.InputSystem; @@ -53,6 +52,7 @@ namespace Ironspore get; private set; } public int SelectedChassis = 1; + public readonly string[] SelectedInstances = new string[4]; public int[] InitialEquipment = { 0, 0, 0, 0 }; LocalizedMessage noticeMessage; public string Notice => noticeMessage?.ToString() ?? ""; @@ -76,7 +76,7 @@ namespace Ironspore Active = this; GameLocalization.Initialize(localization); Application.targetFrameRate = 120; - mainStore = new ProfileStore(Path.Combine(Application.persistentDataPath, "Ironspore", "profile.json")); + mainStore = new ProfileStore(ProfileStore.SavePath(false)); Store = mainStore; Input = Instantiate(inputTemplate); Input.Enable(); @@ -90,14 +90,16 @@ namespace Ironspore World.BuildHangar(); Hud.ShowHangar(); SetMenu(true); + if (Run.active && (Run.destructionPending || Run.armor <= 0)) + EndSortie(true); if (startInRange) StartTrial(); } public EquipmentDefinition Part(int slot, int index) { - var list = Array.FindAll(equipment, x => x.slot == slot); - return list[Mathf.Clamp(index, 0, list.Length - 1)]; + string id = InventoryGrid.EquipmentId(slot, index); + return Array.Find(equipment, x => x.id == id); } public int PartCount(int slot) => Array.FindAll(equipment, x => x.slot == slot).Length; public bool Fits(int frame, int[] parts) @@ -106,6 +108,8 @@ namespace Ironspore for (int i = 0; i < 4; i++) { var p = Part(i, parts[i]); + if (parts[i] == -1) continue; + if (!p) return false; mass += p.mass; power += p.power; } @@ -113,10 +117,13 @@ namespace Ironspore } public bool StartingPartsUnlocked() { - var unlocked = mainStore.Data.unlocked; - return (InitialEquipment[0] != 1 || unlocked.Contains("blueprint_coil_capacitor")) - && (InitialEquipment[2] != 1 || unlocked.Contains("blueprint_boost_efficient")) - && (InitialEquipment[3] != 1 || unlocked.Contains("blueprint_reactive_guard")); + for (int slot = 0; slot < 4; slot++) + { + if (InitialEquipment[slot] == 0 && SelectedInstances[slot] == null) continue; + string id = InventoryGrid.EquipmentId(slot, InitialEquipment[slot]); + if (!mainStore.Data.warehouse.Exists(i => i.itemId == id && (SelectedInstances[slot] == null || i.uid == SelectedInstances[slot]))) return false; + } + return true; } public void BeginSortie() @@ -138,7 +145,7 @@ namespace Ironspore } Trial = false; Store = mainStore; - if (!Store.Begin(SelectedChassis, InitialEquipment, chassis[SelectedChassis].armor, Environment.TickCount)) + if (!Store.Begin(SelectedChassis, InitialEquipment, chassis[SelectedChassis].armor, Environment.TickCount, selected: SelectedInstances)) { NotifySaveFailure(); return; @@ -147,17 +154,23 @@ namespace Ironspore } public void StartTrial() { + var range = new ProfileStore(ProfileStore.SavePath(true)); + if ((range.Data.run.active && !range.Finish(true)) || + !range.Begin(SelectedChassis, InitialEquipment, chassis[SelectedChassis].armor, 1739, trial: true)) + { + Notify("notice.saveFailed"); + return; + } Trial = true; - Store = new ProfileStore(Path.Combine(Application.persistentDataPath, "Ironspore", "range.json")); - Store.Begin(SelectedChassis, InitialEquipment, chassis[SelectedChassis].armor, 1739); + Store = range; EnterField(); } public void Resume() { Trial = false; Store = mainStore; - if (Run.active) - EnterField(); + if (Run.active && (Run.destructionPending || Run.armor <= 0)) EndSortie(true); + else if (Run.active) EnterField(); } void EnterField() { @@ -211,6 +224,11 @@ namespace Ironspore noticeMessage = null; if (!InField || !Pilot || ending) return; + if (Pilot.Health <= 0 || Run.destructionPending) + { + EndSortie(true); + return; + } if (Action("Pause").WasPressedThisFrame()) { if (MenuOpen) @@ -239,11 +257,6 @@ namespace Ironspore if (!MenuOpen && Action("Interact").WasPressedThisFrame() && World.Focused) World.Focused.Activate(); TickCargo(); - if (Pilot.Health <= 0) - { - EndSortie(true); - return; - } autosaveTimer += Time.deltaTime; if (autosaveTimer >= 10) { @@ -281,10 +294,12 @@ namespace Ironspore { if (SelectedCargo.Contains(uid)) SelectedCargo.Remove(uid); - else if (SelectedCargo.Count < 2) - SelectedCargo.Add(uid); else - Notify("notice.twoSlots"); + { + var next = new List(SelectedCargo) { uid }; + if (Store.CanSendCargo(next)) SelectedCargo.Add(uid); + else Notify("notice.twoSlots"); + } Hud.ShowCargo(); } public void SnapshotVitals() @@ -296,7 +311,9 @@ namespace Ironspore } public void Search(WorldInteractable target) { - if (!Store.AddCargo(target.itemId, target.amount, target.key)) + int index = target.offersPart ? Mathf.Clamp(target.partIndex, 0, PartCount(target.partSlot) - 1) : -1; + string offered = target.offersPart ? Part(target.partSlot, index).id : null; + if (!Store.AddCargo(target.itemId, target.amount, target.key, offered)) { NotifySaveFailure("notice.holdFull"); return; @@ -308,22 +325,27 @@ namespace Ironspore if (target.offersPart) { SetMenu(true); - Hud.ShowPart(target.partSlot, target.partIndex); + Hud.ShowPart(target.partSlot, index); } } public void Install(int slot, int index) { - var next = (int[])Run.equipment.Clone(); - next[slot] = index; - if (!Fits(Run.chassis, next)) - { - Notify("notice.partBudget"); - return; - } - Store.Commit(s => { s.run.equipment = next; return true; }); - Pilot.ApplyLoadout(); + var item = Run.cargo.FindLast(i => i.itemId == InventoryGrid.EquipmentId(slot, index)); + if (item == null || !InstallItem(item, Hold.Cargo)) return; CloseMenu(); - Notify("notice.refit", GameLocalization.Message("equipment." + Part(slot, index).id + ".name")); + } + + public bool InstallItem(CargoStack item, Hold from) + { + if (!Store.InstallItem(item.uid, from, parts => Fits(Run.chassis, parts))) + { + NotifySaveFailure("notice.installFailed"); + return false; + } + SelectedCargo.Remove(item.uid); + Pilot.ApplyLoadout(); + Notify("notice.refit", GameLocalization.Message("equipment." + item.itemId + ".name")); + return true; } public void CompleteObjective() { @@ -398,15 +420,19 @@ namespace Ironspore return; SnapshotVitals(); bool complete = Run.routeCompleted; - int lost = Run.cargo.Count; + int lost = Run.cargo.Count + Run.installed.Count; + int protectedCount = Run.safeCase.FindAll(i => !i.borrowed).Count; if (!Store.Finish(destroyed)) { NotifySaveFailure(); return; } ending = true; - reportMessage = GameLocalization.Message(Trial ? "report.range" : destroyed ? "report.destroyed" : complete ? "report.complete" : "report.extracted", lost); + reportMessage = GameLocalization.Message(Trial ? "report.range" : destroyed ? "report.destroyed" : complete ? "report.complete" : "report.extracted", lost, protectedCount); InField = false; + Paused = false; + Time.timeScale = 1; + Array.Clear(SelectedInstances, 0, SelectedInstances.Length); Trial = false; Store = mainStore; Pilot = null; diff --git a/Assets/Game/Scripts/Save/ProfileInventory.cs b/Assets/Game/Scripts/Save/ProfileInventory.cs new file mode 100644 index 0000000..0d772e9 --- /dev/null +++ b/Assets/Game/Scripts/Save/ProfileInventory.cs @@ -0,0 +1,253 @@ +using System; +using System.Collections.Generic; + +namespace Ironspore +{ + public sealed partial class ProfileStore + { + static bool Live(RunRecord run) => run.active && !run.destructionPending && run.armor > 0; + static List Items(RunRecord r, Hold hold) => hold == Hold.Cargo ? r.cargo : r.safeCase; + static int Capacity(Hold hold) => hold == Hold.Cargo ? InventoryGrid.CargoSize : InventoryGrid.CaseSize; + static bool ValidHold(Hold hold) => hold == Hold.Cargo || hold == Hold.SafeCase; + + static bool Valid(GameSave s) + { + if (s?.run == null || s.receipts == null || s.blueprints == null || s.unlocked == null || + s.warehouse == null || s.run.cargo == null || s.run.safeCase == null || s.run.installed == null || + s.run.searched == null || s.run.equipment?.Length != 4 || s.version != GameSave.CurrentVersion) return false; + var ids = new HashSet(); + var slots = new HashSet(); + bool Check(CargoStack i) => i != null && !string.IsNullOrEmpty(i.uid) && ids.Add(i.uid) && + InventoryGrid.Known(i.itemId) && i.count > 0 && i.count <= (InventoryGrid.IsMaterial(i.itemId) ? 10 : 1); + foreach (var i in s.warehouse) + if (!Check(i) || i.borrowed || InventoryGrid.Slot(i.itemId) < 0) return false; + foreach (var hold in new[] { Hold.Cargo, Hold.SafeCase }) + { + var list = Items(s.run, hold); + foreach (var i in list) + if (!Check(i) || !InventoryGrid.Fits(list, Capacity(hold), i, i.x, i.y, i.rotated)) return false; + } + foreach (var i in s.run.installed) + { + if (!Check(i)) return false; + int slot = InventoryGrid.Slot(i.itemId); + if (slot < 0 || !slots.Add(slot) || InventoryGrid.EquipmentId(slot, s.run.equipment[slot]) != i.itemId) return false; + } + if (s.run.active) + { + if (string.IsNullOrEmpty(s.run.id)) return false; + for (int slot = 0; slot < 4; slot++) + if (!slots.Contains(slot) && s.run.equipment[slot] != -1) return false; + } + else if (s.run.destructionPending || s.run.installed.Count + s.run.cargo.Count + s.run.safeCase.Count != 0) return false; + return new HashSet(s.receipts).Count == s.receipts.Count; + } + + public bool Manufacture(string blueprint) => Commit(s => + { + var recipe = InventoryGrid.Recipe(blueprint); + if (s.run.active || recipe.item == null || !s.unlocked.Contains(blueprint) || + s.alloy < recipe.alloy || s.cells < recipe.cells) return false; + s.alloy -= recipe.alloy; + s.cells -= recipe.cells; + s.warehouse.Add(new CargoStack(recipe.item, 1)); + return true; + }); + + public bool AddCargo(string id, int count, string sourceKey = "", string offeredPart = null) + { + if (!InventoryGrid.Known(id) || count < 1 || count > (InventoryGrid.IsMaterial(id) ? 10 : 1)) return false; + return Commit(s => + { + var r = s.run; + if (!Live(r) || (!string.IsNullOrEmpty(sourceKey) && r.searched.Contains(sourceKey))) return false; + int remaining = count; + if (InventoryGrid.IsMaterial(id)) + { + foreach (var stack in r.cargo) + { + if (stack.itemId != id) continue; + int added = Math.Min(10 - stack.count, remaining); + stack.count += added; + remaining -= added; + if (remaining == 0) break; + } + } + if (remaining > 0 && !InventoryGrid.AutoPlace(r.cargo, InventoryGrid.CargoSize, new CargoStack(id, remaining))) return false; + if (offeredPart != null && (InventoryGrid.Slot(offeredPart) < 0 || + !InventoryGrid.AutoPlace(r.cargo, InventoryGrid.CargoSize, new CargoStack(offeredPart, 1)))) return false; + if (!string.IsNullOrEmpty(sourceKey)) r.searched.Add(sourceKey); + return true; + }); + } + + // Omitting coordinates requests first-fit placement. Explicit placement also rotates in place. + public bool MoveItem(string uid, Hold from, Hold to, int x = -1, int y = -1, bool rotated = false, int quantity = 0) + { + if (!ValidHold(from) || !ValidHold(to)) return false; + return Commit(s => + { + if (!Live(s.run)) return false; + var source = Items(s.run, from); + var item = source.Find(i => i.uid == uid); + if (item == null || quantity < 0 || quantity > item.count) return false; + if (quantity == 0 || quantity == item.count) source.Remove(item); + else + { + item.count -= quantity; + item = new CargoStack(item.itemId, quantity); + } + var target = Items(s.run, to); + return x == -1 && y == -1 ? InventoryGrid.AutoPlace(target, Capacity(to), item) + : InventoryGrid.Place(target, Capacity(to), item, x, y, rotated); + }); + } + + public bool SwapItems(string uid, Hold from, string otherUid, Hold to, bool rotated) + { + if (!ValidHold(from) || !ValidHold(to) || uid == otherUid) return false; + return Commit(s => + { + if (!Live(s.run)) return false; + var source = Items(s.run, from); + var target = Items(s.run, to); + var first = source.Find(i => i.uid == uid); + var second = target.Find(i => i.uid == otherUid); + if (first == null || second == null) return false; + int x = first.x, y = first.y; + source.Remove(first); + target.Remove(second); + return InventoryGrid.Place(target, Capacity(to), first, second.x, second.y, rotated) && + InventoryGrid.Place(source, Capacity(from), second, x, y, second.rotated); + }); + } + + public bool MergeMaterial(string sourceUid, Hold from, string targetUid, Hold to, int quantity) + { + if (!ValidHold(from) || !ValidHold(to) || sourceUid == targetUid || quantity < 1) return false; + return Commit(s => + { + if (!Live(s.run)) return false; + var source = Items(s.run, from).Find(i => i.uid == sourceUid); + var target = Items(s.run, to).Find(i => i.uid == targetUid); + if (source == null || target == null || source.itemId != target.itemId || !InventoryGrid.IsMaterial(source.itemId) + || quantity > source.count || quantity > 10 - target.count) return false; + source.count -= quantity; + target.count += quantity; + if (source.count == 0) Items(s.run, from).Remove(source); + return true; + }); + } + + public bool Uninstall(int slot, Hold to, int x, int y, bool rotated) + { + if (!ValidHold(to)) return false; + return Commit(s => + { + var r = s.run; + if (!Live(r) || slot < 0 || slot > 3) return false; + var item = r.installed.Find(i => InventoryGrid.Slot(i.itemId) == slot); + if (item == null || !InventoryGrid.Place(Items(r, to), Capacity(to), item, x, y, rotated)) return false; + r.installed.Remove(item); + r.equipment[slot] = -1; + return true; + }); + } + + public bool InstallItem(string uid, Hold from, Func fitsBudget) + { + if (!ValidHold(from) || fitsBudget == null) return false; + return Commit(s => + { + var r = s.run; + if (!Live(r)) return false; + var source = Items(r, from); + var item = source.Find(i => i.uid == uid); + if (item == null) return false; + int slot = InventoryGrid.Slot(item.itemId); + if (slot < 0) return false; + r.equipment[slot] = InventoryGrid.Index(slot, item.itemId); + if (!fitsBudget(r.equipment)) return false; + source.Remove(item); + var old = r.installed.Find(i => InventoryGrid.Slot(i.itemId) == slot); + if (old != null) + { + if (!InventoryGrid.AutoPlace(source, Capacity(from), old)) return false; + r.installed.Remove(old); + } + r.installed.Add(item); + return true; + }); + } + + static void Bank(GameSave s, CargoStack item) + { + if (item.borrowed) return; + if (InventoryGrid.Slot(item.itemId) >= 0) s.warehouse.Add(item); + else if (item.itemId == "alloy") s.alloy += item.count; + else if (item.itemId == "cells") s.cells += item.count; + else if (!s.blueprints.Contains(item.itemId)) s.blueprints.Add(item.itemId); + else s.alloy += 2; + } + + static List Manifest(RunRecord r, IReadOnlyCollection selection) + { + if (!Live(r) || r.podUsed || selection == null || selection.Count == 0 || selection.Count > 4) return null; + var ids = new HashSet(selection); + var picked = r.cargo.FindAll(i => ids.Contains(i.uid)); + return picked.Count == selection.Count && InventoryGrid.PodFits(picked) ? picked : null; + } + + public bool CanSendCargo(IReadOnlyCollection selection) => Manifest(Data.run, selection) != null; + + public bool SendCargo(IReadOnlyCollection selection) => Commit(s => + { + string receipt = s.run.id + ":cargo"; + var picked = Manifest(s.run, selection); + if (picked == null || s.receipts.Contains(receipt)) return false; + foreach (var item in picked) + { + Bank(s, item); + s.run.cargo.Remove(item); + } + s.run.podUsed = true; + s.receipts.Add(receipt); + return true; + }); + + public bool MarkDestroyed() => Commit(s => + { + if (!s.run.active) return false; + s.run.armor = 0; + s.run.destructionPending = true; + return true; + }); + + public bool Finish(bool destroyed) + { + if (destroyed && !Data.run.destructionPending && !MarkDestroyed()) return false; + return Write(s => + { + var r = s.run; + string receipt = r.id + ":return"; + if (!r.active || r.destructionPending != destroyed || s.receipts.Contains(receipt)) return false; + if (destroyed) s.receipts.Add(r.id + ":secure_eject"); + else + { + if (r.armor <= 0) return false; + foreach (var item in r.cargo) Bank(s, item); + foreach (var item in r.installed) Bank(s, item); + s.extractions++; + } + foreach (var item in r.safeCase) Bank(s, item); + r.safeCase.Clear(); + r.cargo.Clear(); + r.installed.Clear(); + r.active = false; + r.destructionPending = false; + s.receipts.Add(receipt); + return true; + }); + } + } +} diff --git a/Assets/Game/Scripts/Save/ProfileInventory.cs.meta b/Assets/Game/Scripts/Save/ProfileInventory.cs.meta new file mode 100644 index 0000000..5a31e51 --- /dev/null +++ b/Assets/Game/Scripts/Save/ProfileInventory.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 988a620c32c371a4da682504221e3651 \ No newline at end of file diff --git a/Assets/Game/Scripts/Save/ProfileStore.cs b/Assets/Game/Scripts/Save/ProfileStore.cs index 9ec2cd8..2d790ba 100644 --- a/Assets/Game/Scripts/Save/ProfileStore.cs +++ b/Assets/Game/Scripts/Save/ProfileStore.cs @@ -11,12 +11,14 @@ namespace Ironspore public string uid = Guid.NewGuid().ToString("N"); public string itemId; public int count; + public int x, y; + public bool rotated, borrowed; public CargoStack(string id, int amount) { itemId = id; count = amount; } - public string Name => GameLocalization.ItemName(itemId); + public string Name => InventoryGrid.Slot(itemId) >= 0 ? GameLocalization.Text("equipment." + itemId + ".name") : GameLocalization.ItemName(itemId); } [Serializable] @@ -39,13 +41,18 @@ namespace Ironspore public float elapsed; public float escortArmor = 250; public List cargo = new List(); + public List safeCase = new List(); + public List installed = new List(); + public bool destructionPending; public List searched = new List(); } [Serializable] public sealed class GameSave { - public int version = 1; + public const int CurrentVersion = 2; + public int version = CurrentVersion; + public List warehouse = new List(); public int alloy; public int cells; public int sorties; @@ -57,7 +64,7 @@ namespace Ironspore public RunRecord run = new RunRecord(); } - public sealed class ProfileStore + public sealed partial class ProfileStore { readonly string path; public GameSave Data @@ -69,10 +76,28 @@ namespace Ironspore get; private set; } + public static string SavePath(bool trial) + { +#if UNITY_EDITOR + string root = Path.Combine(Path.GetDirectoryName(Application.dataPath), "UserSettings"); +#else + string root = Application.persistentDataPath; +#endif + return Path.Combine(root, "Ironspore", trial ? "range-v2.json" : "profile-v2.json"); + } + public ProfileStore(string savePath) { path = savePath; - Data = Load(path) ?? Load(path + ".bak") ?? new GameSave(); + Data = Load(path) ?? Load(path + ".bak"); + if (Data == null) + { + if (File.Exists(path) || File.Exists(path + ".bak")) + throw new InvalidDataException("No valid equipment snapshot: " + path); + Data = new GameSave(); + for (int slot = 0; slot < 4; slot++) + Data.warehouse.Add(new CargoStack(InventoryGrid.EquipmentId(slot, 0), 1)); + } } static GameSave Load(string file) @@ -82,19 +107,25 @@ namespace Ironspore if (!File.Exists(file)) return null; var save = JsonUtility.FromJson(File.ReadAllText(file)); - if (save == null || save.version != 1 || save.run == null || save.receipts == null || save.blueprints == null || save.unlocked == null) - return null; - if (save.run.cargo == null || save.run.equipment == null || save.run.equipment.Length != 4) - return null; + if (save != null && save.version != GameSave.CurrentVersion) + throw new NotSupportedException("Unsupported equipment save version: " + save.version); + if (!Valid(save)) return null; return save; } - catch (Exception) { return null; } + catch (ArgumentException) { return null; } } public bool Commit(Func change) { + if (Data.run.destructionPending) return false; + return Write(change); + } + + bool Write(Func change) + { + Error = null; var candidate = JsonUtility.FromJson(JsonUtility.ToJson(Data)); - if (!change(candidate)) + if (!change(candidate) || !Valid(candidate)) return false; try { @@ -107,7 +138,7 @@ namespace Ironspore stream.Flush(true); } if (File.Exists(path)) - File.Replace(temp, path, path + ".bak"); + File.Replace(temp, path, Load(path) == null ? null : path + ".bak"); else File.Move(temp, path); Data = candidate; @@ -117,102 +148,31 @@ namespace Ironspore catch (Exception ex) { Error = ex.Message; return false; } } - public bool Begin(int chassis, int[] equipment, float armor, int seed) + public bool Begin(int chassis, int[] equipment, float armor, int seed, bool trial = false, string[] selected = null) { return Commit(s => { + if ((selected != null && selected.Length != 4) || s.run.active || equipment == null || equipment.Length != 4 || armor <= 0) return false; s.run = new RunRecord { id = Guid.NewGuid().ToString("N"), active = true, seed = seed, chassis = chassis, equipment = (int[])equipment.Clone(), armor = armor }; + for (int slot = 0; slot < 4; slot++) + { + string id = InventoryGrid.EquipmentId(slot, equipment[slot]); + if (id == null) return false; + var requested = selected?[slot]; + var item = s.warehouse.Find(part => part.itemId == id && (requested == null || requested == part.uid)); + if (item == null) + { + if (requested != null || (!trial && equipment[slot] != 0)) return false; + item = new CargoStack(id, 1) { borrowed = true }; + } + else s.warehouse.Remove(item); + s.run.installed.Add(item); + } s.sorties++; return true; }); } - public bool AddCargo(string id, int count, string sourceKey = "") - { - if (count <= 0) - return false; - return Commit(s => - { - if (!s.run.active) - return false; - if (sourceKey.Length > 0 && s.run.searched.Contains(sourceKey)) - return false; - foreach (var stack in s.run.cargo) - { - if (id.StartsWith("blueprint_") || stack.itemId != id || stack.count + count > 10) - continue; - stack.count += count; - if (sourceKey.Length > 0) - s.run.searched.Add(sourceKey); - return true; - } - if (s.run.cargo.Count >= 4 || (id.StartsWith("blueprint_") ? count != 1 : count > 10)) - return false; - s.run.cargo.Add(new CargoStack(id, count)); - if (sourceKey.Length > 0) - s.run.searched.Add(sourceKey); - return true; - }); - } - - static void Bank(GameSave s, CargoStack stack) - { - if (stack.itemId == "alloy") - s.alloy += stack.count; - else if (stack.itemId == "cells") - s.cells += stack.count; - else if (!s.blueprints.Contains(stack.itemId)) - s.blueprints.Add(stack.itemId); - else - s.alloy += 2; - } - - public bool SendCargo(IReadOnlyCollection selection) - { - if (selection == null || selection.Count == 0 || selection.Count > 2) - return false; - var ids = new HashSet(selection); - if (ids.Count != selection.Count) - return false; - return Commit(s => - { - string receipt = s.run.id + ":cargo"; - if (!s.run.active || s.run.armor <= 0 || s.run.podUsed || s.receipts.Contains(receipt)) - return false; - var picked = s.run.cargo.FindAll(x => ids.Contains(x.uid)); - if (picked.Count != ids.Count) - return false; - foreach (var stack in picked) - { - Bank(s, stack); - s.run.cargo.Remove(stack); - } - s.run.podUsed = true; - s.receipts.Add(receipt); - return true; - }); - } - - public bool Finish(bool destroyed) - { - return Commit(s => - { - string receipt = s.run.id + ":return"; - if (!s.run.active || s.receipts.Contains(receipt)) - return false; - if (!destroyed) - { - foreach (var stack in s.run.cargo) - Bank(s, stack); - s.extractions++; - } - s.run.cargo.Clear(); - s.run.active = false; - s.receipts.Add(receipt); - return true; - }); - } - public bool CompleteRoute() { return Commit(s => diff --git a/Assets/Game/Scripts/UI/GameHud.cs b/Assets/Game/Scripts/UI/GameHud.cs index 7bfe1ad..3841f62 100644 --- a/Assets/Game/Scripts/UI/GameHud.cs +++ b/Assets/Game/Scripts/UI/GameHud.cs @@ -1,11 +1,12 @@ using System; +using System.Linq; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.UIElements; namespace Ironspore { - public sealed class GameHud : MonoBehaviour + public sealed partial class GameHud : MonoBehaviour { GameSession game; VisualElement root; @@ -37,6 +38,9 @@ namespace Ironspore root.styleSheets.Add(game.uiStyle); root.pickingMode = PickingMode.Ignore; root.style.unityFontDefinition = FontDefinition.FromSDFFont(game.localization.uiFont); + root.RegisterCallback(DragMove, TrickleDown.TrickleDown); + root.RegisterCallback(DragEnd, TrickleDown.TrickleDown); + root.RegisterCallback(_ => ResetDrag(), TrickleDown.TrickleDown); root.RegisterCallback(HandleLanguageKey, TrickleDown.TrickleDown); GameLocalization.Changed += RefreshLocale; } @@ -106,6 +110,7 @@ namespace Ironspore } void Clear() { + ResetDrag(); root.Clear(); mission = prompt = status = notice = telemetry = null; armor = energy = cargo = null; @@ -225,7 +230,7 @@ namespace Ironspore { int s = slot; var p = game.Part(s, game.InitialEquipment[s]); - Button(content, L("ui.home.part", L("ui.slot." + s), p.LocalizedName, p.mass, p.power), () => { game.InitialEquipment[s] = (game.InitialEquipment[s] + 1) % game.PartCount(s); ShowHangar(); }, "loadout"); + Button(content, L("ui.home.part", L("ui.slot." + s), p.LocalizedName, p.mass, p.power), () => { game.SelectedInstances[s] = null; game.InitialEquipment[s] = (game.InitialEquipment[s] + 1) % game.PartCount(s); ShowHangar(); }, "loadout"); } float mass = 0, power = 0; for (int i = 0; i < 4; i++) @@ -249,12 +254,27 @@ namespace Ironspore var save = game.Store.Data; Text(content, L("ui.home.inventory"), "section"); Text(content, L("ui.home.stock", save.alloy, save.cells, save.blueprints.Count, save.extractions, save.completed), "budget"); + foreach (var item in save.warehouse) + { + int slot = InventoryGrid.Slot(item.itemId); + Button(content, L("ui.home.chooseItem", item.Name, item.uid.Substring(0, Math.Min(6, item.uid.Length))), () => + { + game.SelectedInstances[slot] = item.uid; + game.InitialEquipment[slot] = InventoryGrid.Index(slot, item.itemId); + ShowHangar(); + }, game.SelectedInstances[slot] == item.uid ? "loadout selected" : "loadout"); + } foreach (string blueprint in save.blueprints) { string id = blueprint; bool unlocked = save.unlocked.Contains(id); var b = Button(content, L(unlocked ? "ui.home.researched" : "ui.home.research", GameLocalization.ItemName(id)), () => game.Unlock(id), "loadout"); b.SetEnabled(!unlocked); + var recipe = InventoryGrid.Recipe(id); + if (unlocked && recipe.item != null) + Button(content, L("ui.home.manufacture", L("equipment." + recipe.item + ".name"), recipe.alloy, recipe.cells), + () => { if (!game.Store.Manufacture(id)) game.Notify("notice.saveFailed"); ShowHangar(); }, "loadout") + .SetEnabled(!save.run.active && save.alloy >= recipe.alloy && save.cells >= recipe.cells); } hangarNotice = Text(content, game.Notice, "warning"); RefreshHangarNotice(); @@ -314,19 +334,6 @@ namespace Ironspore Text(panel, body, "body"); return panel; } - public void ShowCargo() - { - var panel = Overlay(L("ui.cargo.title"), L(game.Run.podUsed ? "ui.cargo.used" : "ui.cargo.help")); - view = View.Cargo; - foreach (var stack in game.Run.cargo) - { - string uid = stack.uid; - var b = Button(panel, L("ui.cargo.stack", game.SelectedCargo.Contains(uid) ? L("ui.cargo.selected") : "[ ]", stack.Name, stack.count), () => game.ToggleCargo(uid), "loadout"); - b.SetEnabled(!game.Run.podUsed); - } - Text(panel, L("ui.cargo.capacity", game.Run.cargo.Count, game.SelectedCargo.Count), "budget"); - Button(panel, L("ui.return"), game.CloseMenu, "primary"); - } public void ShowPart(int slot, int index) { index = Mathf.Clamp(index, 0, game.PartCount(slot) - 1); @@ -337,7 +344,7 @@ namespace Ironspore var next = game.Part(slot, index); var panel = Overlay(L("ui.refit.title"), L("ui.refit.help")); view = View.Part; - Text(panel, L("ui.refit.equipped", old.LocalizedName, old.mass, old.power), "body"); + Text(panel, L("ui.refit.equipped", old?.LocalizedName ?? "—", old?.mass ?? 0, old?.power ?? 0), "body"); Text(panel, L("ui.refit.recovered", next.LocalizedName, next.mass, next.power), "budget"); Button(panel, L("ui.refit.install"), () => game.Install(slot, partIndex), "primary"); Button(panel, L("ui.refit.keep"), game.CloseMenu); @@ -378,6 +385,7 @@ namespace Ironspore ActivateFocusedLanguage(); } } + if (view == View.Cargo && selectedUid != null && Keyboard.current?.rKey.wasPressedThisFrame == true) RotateSelection(); if (!game.InField || !game.Pilot) return; var run = game.Run; @@ -409,7 +417,7 @@ namespace Ironspore if (notice != null) notice.text = game.Notice; if (telemetry != null) - telemetry.text = L("ui.hud.telemetry", game.chassis[run.chassis].LocalizedName, L(p.FirstPerson ? "ui.hud.cockpit" : "ui.hud.shoulder"), game.Part(0, run.equipment[0]).LocalizedName, run.cargo.Count, game.World.ExtractionRemaining >= 0 ? game.World.TransportReady ? L("ui.hud.transportReady") : L("ui.hud.transportEta", Mathf.CeilToInt(game.World.ExtractionRemaining)) : L("ui.hud.extractionAvailable")); + telemetry.text = L("ui.hud.telemetry", game.chassis[run.chassis].LocalizedName, L(p.FirstPerson ? "ui.hud.cockpit" : "ui.hud.shoulder"), game.Part(0, run.equipment[0])?.LocalizedName ?? "—", run.cargo.Sum(InventoryGrid.Area), game.World.ExtractionRemaining >= 0 ? game.World.TransportReady ? L("ui.hud.transportReady") : L("ui.hud.transportEta", Mathf.CeilToInt(game.World.ExtractionRemaining)) : L("ui.hud.extractionAvailable")); if (cross != null) cross.style.opacity = p.RecentHit ? 1 : .65f; } diff --git a/Assets/Game/Scripts/UI/GameHudInventory.cs b/Assets/Game/Scripts/UI/GameHudInventory.cs new file mode 100644 index 0000000..d128a5d --- /dev/null +++ b/Assets/Game/Scripts/UI/GameHudInventory.cs @@ -0,0 +1,241 @@ +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEngine.UIElements; + +namespace Ironspore +{ + public sealed partial class GameHud + { + string selectedUid; + Hold selectedHold; + int selectedSlot = -1; + bool rotated; + int quantity; + const int CellWidth = 103, CellHeight = 55; + + sealed class GridCell + { + public Hold hold; + public int x, y; + public CargoStack occupant; + } + + CargoStack dragItem; + Hold dragHold; + int dragSlot, dragPointer; + Vector2 dragStart; + VisualElement dragPreview; + + CargoStack Selection => selectedSlot >= 0 ? game.Run.installed.Find(i => i.uid == selectedUid) : + Contents(selectedHold).Find(i => i.uid == selectedUid); + + List Contents(Hold hold) => hold == Hold.Cargo ? game.Run.cargo : game.Run.safeCase; + + void SelectInventoryItem(CargoStack item, Hold hold, int slot = -1) + { + selectedUid = item?.uid; + selectedSlot = slot; + selectedHold = hold; + rotated = item?.rotated ?? false; + quantity = item?.count ?? 0; + ShowCargo(); + } + + void RotateSelection() + { + rotated = !rotated; + if (dragPreview == null) ShowCargo(); + else SizePreview(); + } + + public void ShowCargo() + { + var panel = Overlay(L("ui.cargo.title"), L(game.Run.podUsed ? "ui.cargo.used" : "ui.cargo.help")); + view = View.Cargo; + var installed = Element(panel, "row"); + foreach (var part in game.Run.installed) + { + int slot = InventoryGrid.Slot(part.itemId); + var button = Button(installed, part.Name, () => SelectInventoryItem(part, Hold.Cargo, slot), + part.uid == selectedUid ? "loadout selected" : "loadout"); + EnableDrag(button, part, Hold.Cargo, slot); + } + var grids = Element(panel, "row"); + DrawHold(grids, Hold.Cargo, InventoryGrid.CargoSize); + DrawHold(grids, Hold.SafeCase, InventoryGrid.CaseSize); + Text(panel, L("ui.cargo.capacity", game.Run.cargo.Sum(InventoryGrid.Area), + game.Run.cargo.Where(i => game.SelectedCargo.Contains(i.uid)).Sum(InventoryGrid.Area)), "budget"); + var item = Selection; + if (item != null) + { + InventoryGrid.Size(item.itemId, rotated, out int w, out int h); + Text(panel, L("ui.cargo.selection", item.Name, w, h, quantity), "body"); + var actions = Element(panel, "row"); + Button(actions, L("ui.cargo.rotate"), RotateSelection); + if (item.count > 1) + { + Button(actions, "−", () => { quantity--; ShowCargo(); }).SetEnabled(quantity > 1); + Button(actions, "+", () => { quantity++; ShowCargo(); }).SetEnabled(quantity < item.count); + } + if (selectedSlot < 0) + { + if (selectedHold == Hold.Cargo && !game.Run.podUsed) + Button(actions, L(game.SelectedCargo.Contains(item.uid) ? "ui.cargo.unmark" : "ui.cargo.mark"), () => game.ToggleCargo(item.uid)); + if (InventoryGrid.Slot(item.itemId) >= 0) + Button(actions, L("ui.cargo.install"), () => + { + if (game.InstallItem(item, selectedHold)) selectedUid = null; + ShowCargo(); + }); + } + Button(actions, L("ui.cargo.cancel"), () => SelectInventoryItem(null, Hold.Cargo)); + } + Text(panel, game.Notice, "warning"); + Button(panel, L("ui.return"), game.CloseMenu, "primary"); + } + + void DrawHold(VisualElement parent, Hold hold, int size) + { + var column = Element(parent, "inventory-column"); + Text(column, L(hold == Hold.Cargo ? "ui.cargo.hold" : "ui.cargo.case"), "section"); + var grid = new VisualElement(); + column.Add(grid); + grid.style.width = size * CellWidth; + grid.style.height = size * CellHeight; + var items = Contents(hold); + for (int y = 0; y < size; y++) + for (int x = 0; x < size; x++) + { + int cx = x, cy = y; + var occupant = items.Find(i => + { + InventoryGrid.Size(i.itemId, i.rotated, out int w, out int h); + return cx >= i.x && cy >= i.y && cx < i.x + w && cy < i.y + h; + }); + var cell = Button(grid, "", () => InventoryClick(hold, cx, cy, occupant), "inventory-cell"); + cell.name = hold + "-" + x + "-" + y; + cell.tooltip = occupant?.Name ?? ""; + cell.userData = new GridCell { hold = hold, x = x, y = y, occupant = occupant }; + if (occupant != null) EnableDrag(cell, occupant, hold, -1); + PositionInGrid(cell, x, y, 1, 1); + } + foreach (var item in items) + { + InventoryGrid.Size(item.itemId, item.rotated, out int w, out int h); + string prefix = game.SelectedCargo.Contains(item.uid) ? "✓ " : ""; + var label = Text(grid, prefix + item.Name + (item.count > 1 ? " ×" + item.count : ""), "inventory-item"); + label.pickingMode = PickingMode.Ignore; + if (item.uid == selectedUid) label.AddToClassList("selected"); + PositionInGrid(label, item.x, item.y, w, h); + } + } + + void EnableDrag(Button button, CargoStack item, Hold hold, int slot) + { + // Captured pointer events can be dispatched directly to the pressed button. + button.RegisterCallback(DragMove, TrickleDown.TrickleDown); + button.RegisterCallback(DragEnd, TrickleDown.TrickleDown); + button.RegisterCallback(evt => + { + if (evt.button != 0) return; + dragItem = item; + dragHold = hold; + dragSlot = slot; + dragStart = evt.position; + dragPointer = evt.pointerId; + }, TrickleDown.TrickleDown); + } + + void DragMove(PointerMoveEvent evt) + { + if (dragItem == null || evt.pointerId != dragPointer) return; + Vector2 pos = evt.position; + if (dragPreview == null) + { + if ((pos - dragStart).sqrMagnitude < 36) return; + if (selectedUid != dragItem.uid) + { + quantity = dragItem.count; + rotated = dragItem.rotated; + } + selectedUid = dragItem.uid; + selectedSlot = dragSlot; + selectedHold = dragHold; + dragPreview = Text(root, dragItem.Name, "inventory-item selected"); + dragPreview.pickingMode = PickingMode.Ignore; + dragPreview.style.position = UnityEngine.UIElements.Position.Absolute; + SizePreview(); + } + var target = root.panel.Pick(pos); + Vector2 anchor = target?.userData is GridCell ? target.worldBound.min : pos; + Vector2 local = root.WorldToLocal(anchor); + dragPreview.style.left = local.x; + dragPreview.style.top = local.y; + } + + void SizePreview() + { + InventoryGrid.Size(dragItem.itemId, rotated, out int w, out int h); + dragPreview.style.width = CellWidth * w - 2; + dragPreview.style.height = CellHeight * h - 2; + } + + void DragEnd(PointerUpEvent evt) + { + if (dragItem == null || evt.pointerId != dragPointer) return; + bool dragged = dragPreview != null; + ResetDrag(); + if (!dragged) return; + evt.StopImmediatePropagation(); + var owner = root.panel.GetCapturingElement(evt.pointerId) as VisualElement; + owner?.ReleasePointer(evt.pointerId); + var target = root.panel.Pick(evt.position)?.userData as GridCell; + if (target != null) InventoryClick(target.hold, target.x, target.y, target.occupant); + else ShowCargo(); + } + + void ResetDrag() + { + dragPreview?.RemoveFromHierarchy(); + dragPreview = null; + dragItem = null; + } + + static void PositionInGrid(VisualElement element, int x, int y, int w, int h) + { + element.style.position = UnityEngine.UIElements.Position.Absolute; + element.style.left = x * CellWidth; + element.style.top = y * CellHeight; + element.style.width = w * CellWidth - 2; + element.style.height = h * CellHeight - 2; + } + + void InventoryClick(Hold hold, int x, int y, CargoStack occupant) + { + var item = Selection; + if (item == null) + { + SelectInventoryItem(occupant, hold); + return; + } + bool ok; + if (selectedSlot >= 0) + ok = game.Store.Uninstall(selectedSlot, hold, x, y, rotated); + else if (occupant == null || item.uid == occupant.uid) + ok = game.Store.MoveItem(item.uid, selectedHold, hold, x, y, rotated, quantity); + else if (item.itemId == occupant.itemId && InventoryGrid.IsMaterial(item.itemId)) + ok = game.Store.MergeMaterial(item.uid, selectedHold, occupant.uid, hold, quantity); + else + ok = quantity == item.count && game.Store.SwapItems(item.uid, selectedHold, occupant.uid, hold, rotated); + if (ok) + { + selectedUid = null; + game.SelectedCargo.RemoveAll(uid => !game.Run.cargo.Exists(i => i.uid == uid)); + game.Pilot.ApplyLoadout(); + } + else game.Notify(string.IsNullOrEmpty(game.Store.Error) ? "notice.placement" : "notice.saveFailed"); + ShowCargo(); + } + } +} diff --git a/Assets/Game/Scripts/UI/GameHudInventory.cs.meta b/Assets/Game/Scripts/UI/GameHudInventory.cs.meta new file mode 100644 index 0000000..5823caa --- /dev/null +++ b/Assets/Game/Scripts/UI/GameHudInventory.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 6faff651d0fe95448b2711a92bce81d3 \ No newline at end of file diff --git a/Assets/Game/UI/GameHud.uss b/Assets/Game/UI/GameHud.uss index b66329f..26629d0 100644 --- a/Assets/Game/UI/GameHud.uss +++ b/Assets/Game/UI/GameHud.uss @@ -53,3 +53,9 @@ .language-option:hover,.language-option:focus { background-color:rgb(43,79,78); border-color:rgb(127,240,204); } .language-option.selected { background-color:rgb(38,77,72); border-color:rgb(127,240,204); } .language-dismiss { position:absolute; left:0; right:0; top:0; bottom:0; } + +.inventory-column { margin-right:16px; } +.inventory-cell { background-color:rgb(22,41,47); border-width:1px; border-color:rgb(58,91,91); margin:0; padding:0; } +.inventory-cell:hover,.inventory-cell:focus { border-color:rgb(135,235,200); background-color:rgb(38,77,72); } +.inventory-item { background-color:rgba(47,85,83,.8); color:rgb(225,239,233); border-width:1px; border-color:rgb(80,137,126); -unity-text-align:middle-center; white-space:normal; font-size:13px; } +.inventory-item.selected { border-color:rgb(155,247,207); background-color:rgba(61,115,105,.85); } diff --git a/Assets/Tests/EditMode/LocalizationTests.cs b/Assets/Tests/EditMode/LocalizationTests.cs index 3745fe3..6270344 100644 --- a/Assets/Tests/EditMode/LocalizationTests.cs +++ b/Assets/Tests/EditMode/LocalizationTests.cs @@ -97,7 +97,7 @@ namespace Ironspore.Tests StringAssert.Contains("×3", notice.ToString()); StringAssert.Contains("电磁电容", state.run.cargo[0].Name); Assert.AreEqual(before, JsonUtility.ToJson(state)); - Assert.AreEqual(1, state.version); + Assert.AreEqual(GameSave.CurrentVersion, state.version); } [Test] public void MissingTranslationUsesEnglishFallback() diff --git a/Assets/Tests/EditMode/ProfileStoreTests.cs b/Assets/Tests/EditMode/ProfileStoreTests.cs index 8e9fc58..492e53c 100644 --- a/Assets/Tests/EditMode/ProfileStoreTests.cs +++ b/Assets/Tests/EditMode/ProfileStoreTests.cs @@ -42,14 +42,15 @@ namespace Ironspore.Tests [Test] public void PodRejectsOvercapacityAndDuplicateSelectionsWithoutConsuming() { - for (int i = 0; i < 3; i++) + for (int i = 0; i < 5; i++) Assert.IsTrue(store.AddCargo("blueprint_" + i, 1, "crate" + i)); var bag = store.Data.run.cargo; - Assert.IsFalse(store.SendCargo(new[] { bag[0].uid, bag[1].uid, bag[2].uid })); + Assert.IsFalse(store.SendCargo(new[] { bag[0].uid, bag[1].uid, bag[2].uid, bag[3].uid, bag[4].uid })); Assert.IsFalse(store.SendCargo(new[] { bag[0].uid, bag[0].uid })); Assert.IsFalse(store.Data.run.podUsed); - Assert.AreEqual(3, store.Data.run.cargo.Count); + Assert.AreEqual(5, store.Data.run.cargo.Count); Assert.AreEqual(0, store.Data.blueprints.Count); + Assert.IsTrue(store.SendCargo(new[] { bag[0].uid, bag[1].uid, bag[2].uid, bag[3].uid })); } [Test] public void SearchedSourceCannotDuplicateLootAfterReload() @@ -77,6 +78,125 @@ namespace Ironspore.Tests Assert.AreEqual(1, store.Data.completed); Assert.AreEqual(1, store.Data.extractions); } + [Test] + public void SafeCaseChecksShapeAndPersistsRotatedWeapon() + { + Assert.IsFalse(store.Uninstall(0, Hold.SafeCase, 0, 0, false)); + Assert.IsFalse(store.Uninstall(0, Hold.SafeCase, 0, 0, true)); + Assert.IsTrue(store.AddCargo("cells", 1)); + Assert.IsTrue(store.MoveItem(store.Data.run.cargo[0].uid, Hold.Cargo, Hold.SafeCase, 0, 1)); + string weapon = store.Data.run.installed.Find(i => i.itemId == "guided").uid; + Assert.IsFalse(store.Uninstall(1, Hold.SafeCase, 0, 0, false)); + Assert.IsTrue(store.Uninstall(1, Hold.SafeCase, 0, 0, true)); + store = new ProfileStore(path); + var saved = store.Data.run.safeCase.Find(i => i.uid == weapon); + Assert.IsTrue(saved.rotated); + Assert.AreEqual(0, saved.x); + Assert.AreEqual(0, saved.y); + Assert.AreEqual(-1, store.Data.run.equipment[1]); + Assert.IsTrue(store.Finish(false)); + Assert.IsTrue(store.Begin(1, new[] { 0, 0, 0, 0 }, 180, 8)); + Assert.IsTrue(store.Data.run.installed.Exists(i => i.uid == weapon)); + Assert.IsFalse(store.Data.warehouse.Exists(i => i.uid == weapon)); + } + + [Test] + public void DeathLocksInventoryAndRetriesOnlyTheProtectedReturn() + { + string run = store.Data.run.id; + Assert.IsTrue(store.AddCargo("alloy", 4, "a", "pulse")); + string pulse = store.Data.run.cargo.Find(i => i.itemId == "pulse").uid; + Assert.IsTrue(store.MoveItem(pulse, Hold.Cargo, Hold.SafeCase)); + Assert.IsTrue(store.SendCargo(new[] { store.Data.run.cargo[0].uid })); + Assert.IsTrue(store.AddCargo("coil", 1, "b")); + Assert.IsTrue(store.MarkDestroyed()); + store = new ProfileStore(path); + Assert.IsFalse(store.MoveItem(pulse, Hold.SafeCase, Hold.Cargo)); + Assert.IsFalse(store.Finish(false)); + Directory.CreateDirectory(path + ".tmp"); + Assert.IsFalse(store.Finish(true)); + Assert.IsTrue(store.Data.run.destructionPending); + Assert.AreEqual(0, store.Data.warehouse.Count); + Directory.Delete(path + ".tmp"); + store = new ProfileStore(path); + Assert.IsTrue(store.Finish(true)); + Assert.IsFalse(store.Finish(true)); + Assert.AreEqual(4, store.Data.alloy); + Assert.AreEqual(1, store.Data.warehouse.Count); + Assert.AreEqual(pulse, store.Data.warehouse[0].uid); + CollectionAssert.AreEquivalent(new[] { run + ":secure_eject", run + ":cargo", run + ":return" }, store.Data.receipts); + } + + [Test] + public void SplitMergeSwapAndAtomicPlacementPreserveOwnership() + { + Assert.IsTrue(store.AddCargo("cells", 10)); + string cells = store.Data.run.cargo[0].uid; + Assert.IsTrue(store.MoveItem(cells, Hold.Cargo, Hold.SafeCase, 1, 1, false, 4)); + string split = store.Data.run.safeCase[0].uid; + Assert.AreNotEqual(cells, split); + Assert.IsFalse(store.MergeMaterial(cells, Hold.Cargo, split, Hold.SafeCase, 7)); + Assert.IsTrue(store.MergeMaterial(cells, Hold.Cargo, split, Hold.SafeCase, 2)); + Assert.IsTrue(store.AddCargo("rapid", 1)); + string rapid = store.Data.run.cargo.Find(i => i.itemId == "rapid").uid; + Assert.IsFalse(store.SwapItems(rapid, Hold.Cargo, split, Hold.SafeCase, true)); + Assert.IsTrue(store.SwapItems(cells, Hold.Cargo, split, Hold.SafeCase, false)); + Assert.IsFalse(store.MoveItem(rapid, Hold.Cargo, Hold.SafeCase)); + Assert.IsTrue(store.Finish(true)); + Assert.AreEqual(4, store.Data.cells); + } + + [Test] + public void FailedRefitOrWriteKeepsOldSlotAndLootSource() + { + Assert.IsTrue(store.AddCargo("alloy", 1, "crate", "coil")); + string uid = store.Data.run.cargo.Find(i => i.itemId == "coil").uid; + Assert.IsFalse(store.InstallItem(uid, Hold.Cargo, parts => false)); + Assert.AreEqual(0, store.Data.run.equipment[0]); + Directory.CreateDirectory(path + ".tmp"); + Assert.IsFalse(store.Uninstall(1, Hold.SafeCase, 0, 0, false)); + Assert.IsFalse(store.AddCargo("alloy", 1, "retry")); + Assert.IsFalse(store.Data.run.searched.Contains("retry")); + Directory.Delete(path + ".tmp"); + Assert.IsTrue(store.InstallItem(uid, Hold.Cargo, parts => true)); + Assert.AreEqual(1, store.Data.run.equipment[0]); + Assert.IsTrue(store.Data.run.cargo.Exists(i => i.itemId == "rapid")); + Assert.IsTrue(store.Data.run.installed.Exists(i => i.uid == uid)); + } + + [Test] + public void BorrowedStarterDoesNotReplaceLostStock() + { + Assert.IsTrue(store.Finish(true)); + Assert.IsFalse(store.Begin(1, new[] { 1, 0, 0, 0 }, 180, 8)); + Assert.IsTrue(store.Begin(1, new[] { 0, 0, 0, 0 }, 180, 8)); + Assert.IsTrue(store.Data.run.installed.TrueForAll(i => i.borrowed)); + Assert.IsTrue(store.Uninstall(1, Hold.SafeCase, 0, 0, false)); + Assert.IsTrue(store.Finish(false)); + Assert.IsEmpty(store.Data.warehouse); + } + + [Test] + public void ManufacturingRequiresResearchAndMaterialsAndCreatesDistinctInstances() + { + Assert.IsTrue(store.Finish(false)); + const string blueprint = "blueprint_coil_capacitor"; + Assert.IsTrue(store.Commit(s => { s.alloy = 8; s.cells = 4; return true; })); + Assert.IsFalse(store.Manufacture(blueprint)); + Assert.IsTrue(store.Commit(s => { s.unlocked.Add(blueprint); return true; })); + Assert.IsTrue(store.Manufacture(blueprint)); + Assert.IsTrue(store.Manufacture(blueprint)); + Assert.IsFalse(store.Manufacture(blueprint)); + var copies = store.Data.warehouse.FindAll(i => i.itemId == "coil"); + Assert.AreNotEqual(copies[0].uid, copies[1].uid); + Assert.IsTrue(store.Begin(1, new[] { 1, 0, 0, 0 }, 180, 8, selected: new[] { copies[1].uid, null, null, null })); + Assert.IsTrue(store.Data.run.installed.Exists(i => i.uid == copies[1].uid)); + Assert.IsTrue(store.Finish(true)); + Assert.IsTrue(store.Data.warehouse.Exists(i => i.uid == copies[0].uid)); + Assert.AreEqual(0, store.Data.alloy); + Assert.AreEqual(0, store.Data.cells); + } + [Test] public void WriteFailureLeavesOriginalMemoryState() { diff --git a/Docs/Design/GameDesign.md b/Docs/Design/GameDesign.md index 3a0be7a..e70588b 100644 --- a/Docs/Design/GameDesign.md +++ b/Docs/Design/GameDesign.md @@ -12,9 +12,12 @@ | 机体与改装 | 底盘给出基础机动、承重与能源,装备及改装决定实际打法。出击前选初始配装,局内可以更换装备并追加改装。 | | 单局结构 | 完整通关目标为 20–30 分钟,包含选路、搜索和改装。沿分支路线进入独立战区,中段选择首领战或护送任务,两条路线均可通关。提前整机撤离可缩短本局。 | | 战区与情报 | 选路时显示任务目标和物资类别。例如「重启升降机 · 推进器零件较多」。具体型号、数量和品质进场搜索后揭晓。普通战区完成目标即开放下一站,玩家也可留场继续搜。 | -| 运货 | 每次出击配发 1 个货物回收舱,共 2 格。每格装 1 张蓝图或 1 组有堆叠上限的同类材料。目标完成前即可使用。机甲停下操作几秒,舱升空才消耗并入库。中断时舱和货物都留在机甲上,可重试。 | +| 运货 | 每次出击配发 1 个主动货物回收舱,按物品长宽在舱内实际摆放,可旋转;不是按条目数计容量。目标完成前即可使用。机甲停下操作几秒,舱升空才消耗并入库。中断时舱和货物都留在机甲上,可重试。 | +| 弹射式安全箱 | 独立于主动货舱的保全空间,机体被摧毁时自动弹射回基地。任何放得下的未安装物品均可放入,包括完整武器和机体模块;放入成功的物品在机毁时保全。 | | 整机撤离 | **每个战区**都有撤离点。抵达后可呼叫接应,等待期间能移动、作战,运输机到达后主动登机。登机结算随身战利品并结束出击。 | -| 跨局成长 | 已解锁的底盘、装备蓝图和配装方案永久保留。成功回收的材料与蓝图进入机库。局内实际捡到的武器、替换件和临时强化在出击结束时重置。 | +| 跨局成长 | 已解锁的底盘、装备蓝图和配装方案永久保留。装备实物可带出入库、下局带入;机毁时安全箱内容弹射保全,箱外携带装备与未回收物资损失,机库库存与已回收物资保留。局内临时强化在出击结束时重置。 | + +2026-11-12,用户已确认上述实物跨局规则、弹射式安全箱及可旋转的二维格子库存。具体工作按[装备系统扩展计划](../Production/EquipmentSystemPlan.md)与[安全箱和多格库存计划](../Production/EjectionSafeCaseAndGridPlan.md)推进;当前原型已接入实物库存、安全箱与二维网格,使用独立 v2 新档。 首页机库的视口右下角提供语言切换,首批支持简体中文与 English,即时刷新并保存偏好。所有玩法界面、物品、通知和标牌共用语言配置,出击与结算数据保持稳定。实施与验收见 [多语言计划](../Production/LocalizationPlan.md)。 @@ -31,7 +34,7 @@ 推荐用手工制作的战区拼出路线,让同一个区域轮换任务、物资分布和敌人组合。每条路线都要有重装机体可走的地面通路,也给高速机体留出跨层移动的空间。普通推进目标可以是重启装卸平台或回收导航模块,守卫与额外物资给玩家留下作战的理由。 -**一个典型抉择。** 玩家在第二站找到推进器蓝图、一组合金和一组电芯。可以先把蓝图和合金装进两格货舱。成功发射后,电芯与此后新捡到的物资要由整机带回。此时玩家可以去本区撤离点呼叫运输机,也可以完成战区目标,再去中段选择终点。 +**一个典型抉择。** 按首测建议尺寸,玩家找到 2×3 的主武器、2×2 的完整推进器和 1×1 的蓝图。2×2 安全箱可以装下推进器,或选择蓝图并为其他小件留位;主武器需要更大的安全箱或整机撤离。主动货舱还可先送回一批装得下的货物。玩家据此决定保住哪件物品、是否冒险继续探索。 ## 驾驶、战斗与装备 @@ -58,27 +61,28 @@ | 左 Shift、空格 | Shift 沿移动方向推进。空格起跳,有升空能力的推进器支持按住爬升。 | | V | 在越肩与驾驶舱之间切换,继承当前瞄准方向。 | | E | 对准目标后按提示搜索、操作设施或呼叫接应。运输机抵达后须再次按 E 才会登机。 | -| Tab、G | Tab 打开货仓,用鼠标选择要送回的货物。回到驾驶状态后,在原地按住 G 准备发射,松开或受击按中断处理。 | +| Tab、R、G | Tab 打开普通货仓与安全箱,拖拽时 R 旋转物品;主动货舱先完成装舱预览。回到驾驶状态后原地按住 G 准备发射,松开或受击按中断处理。安全箱在机毁时自动弹射。 | | Esc | 关闭当前界面或打开暂停菜单。 | 驾驶时鼠标控制准星。打开货仓或路线图时显示指针,由界面接收点击。回到驾驶时,主武器等待下一次按下左键再开火。HUD 中央显示准星与当前交互提示,边缘显示能源、装甲、货舱格位和接应状态。驾驶舱边框为这些信息留出空间。 ## 搜索、回收与存档 -搜索点直接放在场景里。货架、补给箱和可拆取的机甲残骸提示物资大类,交互时显示实际内容。战利品界面区分「现在可装」的局内装备与「可送回机库」的材料、蓝图。第一张蓝图增加机库选项,重复蓝图推荐折成对应材料。材料用来解锁新的配装选择。 +搜索点直接放在场景里。货架、补给箱和可拆取的机甲残骸提示物资大类,交互时显示实际内容。战利品包括可立即安装或带出入库的装备实物,以及材料、蓝图。第一张蓝图增加研究选项,重复蓝图推荐折成对应材料;具体制造与材料消耗规则按装备系统扩展计划细化。 -例如,找到一件推进器实物时,可以在本局装上试用。找到同款蓝图并成功带回后,玩家在机库用材料解锁该推进器,下次出击就能把它编入初始配装。首轮经济测试先用合金、电芯两种材料,每种每 10 个成一组。机甲随身货仓先试 4 格,货物回收舱从中选至多 2 格送回。 +例如,找到一件推进器实物时,可以在本局装上试用;成功带出后,这件实物进入机库,下次出击可再次携入。如果提前卸下并成功放入安全箱,机毁也可保全。对应蓝图用于研究该型号的后续制作与配装选项,具体规则见装备系统扩展计划。材料每堆最多 10 个;首测建议普通货仓 4×4、主动货舱 2×2、安全箱 2×2,尺寸可调。物品可占多格并旋转,既要有足够空格,也要有符合形状的连续空位。 | 事件 | 结算结果 | | --- | --- | | 装舱或发射准备被打断 | 解除所选货物的占用,物品仍在随身清单,货舱还可使用。 | | 货舱成功升空 | 同一次存档写入货物入库、从随身清单扣除、货舱已用三项变化,然后显示成功反馈。机甲可继续本局。 | -| 已呼叫整机接应,运输机到达 | 提示「可登机」。玩家仍控制机甲,主动登机时才结算随身材料与蓝图。 | +| 安全箱物品放入或取出 | 按实际摆放保存唯一归属,放入成功后成为机毁可保全物品,取出后按其新位置处理。箱内物品不能仍在原容器或装备槽保留一份。 | +| 已呼叫整机接应,运输机到达 | 提示「可登机」。玩家仍控制机甲,主动登机时才回收入库本次携带的装备实物、材料与蓝图。 | | 未完成终局就登机 | 记录为成功提前撤离,保住已携带的可回收物资。 | | 击败首领或护送到达 | 记录本局路线目标达成。通关记录与随身货物的入库分别处理,带出随身货物需要完成登机。护送目标损毁时,存活的机甲仍可从本区撤离。 | -| 机甲被击毁 | 失去尚在机上的战利品,本局装备与强化一起重置。之前已成功送回的物资归机库所有。 | +| 机甲被击毁 | 锁定机毁现场,安全箱自动弹射,箱内物品返基地;箱外装备实物与未回收战利品损失,局内临时强化重置。机库库存及之前已成功送回的物资保留。 | -初测可用 **3 秒**货舱发射准备和 **15 秒**整机接应等待。地图和 HUD 显示撤离点、接应进度、是否可登机。存档按「出击编号+事件类型」分别登记货舱发射、终局目标达成和整机返航,每个事件只结算一次。重新加载时恢复已用的货舱、机库与剩余随身物资。试玩时比较提前撤离和深入终局的收益,再调整战利品价值和敌群压力。 +初测可用 **3 秒**主动货舱发射准备和 **15 秒**整机接应等待;安全箱机毁弹射不需要额外输入。地图和 HUD 显示撤离点、接应进度、是否可登机及安全箱保护状态。存档按「出击编号+事件类型」分别登记主动货舱发射、安全箱弹射、终局目标达成和整机返航,每个事件只结算一次。机毁保全、普通物资损失与结束出击共同提交,重新加载保持布局、归属和回收状态。试玩比较提前撤离、主动回收与机毁保全的收益,再调整容量、战利品价值和敌群压力。 ## 首轮内容预算 @@ -94,9 +98,9 @@ | 阶段 | 交付一个可以实际操作的结果 | 通过条件 | | --- | --- | --- | | 1 · 驾驶试验场 | 一个有地面和高差的灰盒场景、一种武器、一个敌人、三套底盘参数和双视角。 | 在 Windows 独立构建中用键鼠操作。三套底盘都能到达目标并作战,两种视角均可瞄准、推进和射击,连续切换时射击判定一致。 | -| 2 · 单战区搜打撤 | 一项推进目标、一个搜索点、一处撤离点,以及货舱与本地机库存档。 | 在目标完成前试一次货舱中断和一次成功发射。分别试玩带货登机与机毁,重开后核对机库物资、舱数与两格上限。 | +| 2 · 单战区搜打撤 | 一项推进目标、一个搜索点、一处撤离点,以及主动货舱、安全箱与本地机库存档。 | 在目标完成前试一次货舱中断和一次成功发射。分别试玩带货登机与机毁,重开后核对二维布局、货舱次数、安全箱保全和机库物资。 | | 3 · 构筑与分支 | 机库初装、局内换件、可复用的普通战区、带情报的路线图和两种终局。 | 完成目标开放下一站,任何战区均能整机撤离。中段可选择两条路线,并能用前半程获得的部件改变后半程打法。 | -| 4 · 完整出击 | 把两种终局、三种机体风格、永久解锁与局内重置串成可重复游玩的版本。 | 三类底盘各试首领与护送,两种视角均有完整战斗记录。记录完整通关用时,按 20–30 分钟目标调节。提前撤离、货舱发射后机毁、终局达成但未登机分别核对结算。 | +| 4 · 完整出击 | 把两种终局、三种机体风格、永久解锁、装备实物流转与临时强化重置串成可重复游玩的版本。 | 三类底盘各试首领与护送,两种视角均有完整战斗记录。记录完整通关用时,按 20–30 分钟目标调节。提前撤离、货舱发射后机毁、终局达成但未登机分别核对结算,并验证带出装备可在下一局携入。 | 先用占位模型和声音跑通上述流程,再把 Blender 导出物与合适的免费素材替换进已验证的场景。工程与素材约定见 [项目文件与素材规范](../Production/ProjectConventions.md)。 diff --git a/Docs/Production/EjectionSafeCaseAndGridPlan.md b/Docs/Production/EjectionSafeCaseAndGridPlan.md new file mode 100644 index 0000000..97c4c92 --- /dev/null +++ b/Docs/Production/EjectionSafeCaseAndGridPlan.md @@ -0,0 +1,139 @@ +# 弹射式安全箱与多格库存计划 + +2026-11-12。工作区:`D:/vibeCoding/unityRouge/workTree/tree1`;分支:`codex/models-weapons-equipment-animation`。 + +本计划扩展[装备系统计划](EquipmentSystemPlan.md),统一弹射保全、二维格子库存和机毁结算。首个可玩切片与实测范围见[装备验证](../QA/Equipment/DataFoundation.md)。 + +## 已确认的玩法与首测参数 + +用户已确认以下规则: + +- 增加**弹射式安全箱**。机体被摧毁时,安全箱自动发射回基地,保护箱内物品。 +- **任何放得下的未安装物品都能放入安全箱**,包括完整武器和机体模块。准入按装配状态与空间判断,不按物品类别限制。 +- 库存采用**二维格子**,物品有宽、高,可旋转,必须实际放进连续空位。 +- 安全箱是已确认的机毁损失例外:普通携带装备及货物仍会损失,基地库存与已经回收的物品保留。 + +以下容量和物品尺寸为首轮试玩建议值,可依据实际收益和背包操作调整,尚不是最终平衡数值。本阶段使用新建的 v2 存档。 + +| 容器 | 建议尺寸 | 使用方式 | +| --- | --- | --- | +| 普通货仓 | 4×4,16 格 | 携带战利品和卸下的装备,机毁损失。替代原先“最多 4 个条目”的容量规则。 | +| 主动货舱 | 2×2,4 格 | 每次出击 1 次,继续原地准备 3 秒后发射;按装舱布局校验,替代原先“至多 2 个条目”的选择限制。 | +| 弹射式安全箱 | 2×2,4 格 | 独立保护空间;机毁自动返库,正常撤离随整机回收。后续可配置更大型号。 | +| 基地库存 | 首轮沿用无硬上限的库存与收货列表 | 显示物品尺寸并支持整理;回收不能因基地摆不下而失败。以后增加有限网格仓库时提供待整理区。 | + +两种回收舱分别记录状态与次数。主动货舱发射不消耗安全箱,安全箱也不占主武器、副武装、推进器或防护槽。 + +## 多格物品与二维摆放 + +### 物品占格示例 + +| 物品 | 建议占格 | 说明 | +| --- | --- | --- | +| 合金、电芯材料堆 | 1×1 | 每堆最多 10 个,1–10 个仍占同一块空间;第 11 个需要另一个堆叠与空位。 | +| 蓝图 | 1×1 或 1×2 | 不同型号可以有不同尺寸,单张不可堆叠。 | +| 小型电子配件 | 1×1 或 1×2 | 作为后续配件内容的尺寸约定,首轮不要求先完成配件玩法。 | +| 紧凑副武器 | 1×2 | 可整体放入建议的 2×2 安全箱。 | +| 轻型主武器 | 1×3 | 占 3 格,但两个朝向都放不进 2×2 安全箱。 | +| 标准主武器 | 2×3 | 占 6 格,需要普通货仓或更大的安全箱。 | +| 重型主武器 | 2×4 | 占 8 格,以占用空间形成携带取舍。 | +| 推进器、防护模块 | 1×2 或 2×2 | 完整模块只要尺寸匹配即可放入安全箱。 | + +具体型号通过物品配置填写尺寸,不根据模型包围盒推算,也不通过名称或品质猜测。首轮使用矩形占格;附件或折叠状态以后若改变尺寸,需重新校验完整摆放,不能挤出或删除其他物品。 + +### 摆放与流转规则 + +1. 配置记录 `width`、`height`;摆放记录容器、格子坐标与朝向。旋转为 90°,宽高互换,面积不变。所有未安装矩形物品支持旋转。 +2. 放置需要每个覆盖格都在边界内且未被占用。既检查面积,也检查形状;总空格足够仍可能摆不下。 +3. 拖拽时显示物品轮廓和有效/无效位置,R 键旋转。保留点击选择物品再选择目标容器、键盘确认/取消的操作途径,避免必须依赖精确拖拽。 +4. 自动放置按稳定次序寻找连续空位,并提示采用的方向。自动放置不移动其他物品;整理只在玩家明确操作的容器内进行。 +5. 容器之间移动、交换与旋转全部先预检,再一次提交。失败、取消或保存失败时保持原位置和数量;交换时同时计算双方移出后的空位。 +6. 材料支持拆分、合并与部分转移。数量总和保持,拆分产生新堆叠 UID,合并退休被合并堆叠的 UID;装备实例 UID 始终不变。 +7. 已安装装备先卸下才进入货仓或安全箱。直接卸入安全箱时要在同一事务中清空装备槽并放入;放不下则整个动作失败。 +8. 局内允许卸件后出现空槽。运行时使用明确的无装备状态:空主/副武器槽不能射击,空推进器/防护槽只保留底盘固有能力,不以索引回退偷偷生成默认装备。 +9. 占格、物品数量、质量与额定功率分别定义。二维体积不直接换算载重;已安装装备继续遵守底盘配装预算。 + +## 弹射式安全箱的使用 + +- 每台机体出击时携带一个独立安全箱。首轮视为底盘的基础保全功能,箱体本身不作为可重复刷取的战利品;安全箱内容是有实际归属的库存物品。 +- 玩家可以在出击前或局内把物品放入安全箱,也可以取回普通货仓或安装。放入成功保存后即显示“机毁可保全”;拖拽预览和未完成转移不形成保护。 +- 所有普通未安装物品一视同仁,包括武器、模块、材料、蓝图。没有按价值、品质或装备类别设置的准入黑名单。容器尺寸、空位、当前归属与事务锁仍需有效。 +- 救济借用件若装入安全箱,返基地后归还救济池;保留其借用来源,不转换为个人永久装备或材料。该来源规则不改变普通物品的占格与准入方式。 +- 机体被摧毁时自动触发一次弹射,首轮可靠返基地,不设置额外按键、准备条、费用、成功概率或途中被击毁的判定。 +- 正常撤离时安全箱内容随整机一起入库,不额外再结算一次弹射。普通退出、切换战区、断开视角或手动关闭菜单都不触发返库。 +- 致命状态锁定后不能再塞物品、拆分、卸件或改摆放;弹射内容取自机毁时最后一份有效归属快照。 +- 空箱机毁可显示“无保全物品”,但仍将本次机毁与箱状态一并完成,重复回调不能再次产生收益。 + +安全箱内的高价值整件装备同样可保全,机毁的实际损失取决于玩家此前如何分配空间。容量升级的费用与获取方式在基础循环实测后设计,不改变准入原则。 + +## 三种回收方式与结算顺序 + +| 事件 | 回收范围 | 后续状态 | +| --- | --- | --- | +| 主动发射货舱 | 普通货仓中选定且可实际装进主动货舱的物品。允许拆分材料后再选取。 | 发射成功即入库,货舱已用;安全箱与机上其余物品仍属当前出击。 | +| 正常登机撤离 | 已安装装备、普通货仓与安全箱内容,按实际归属回收。 | 结束出击;不生成机毁弹射收益。 | +| 机体被摧毁 | 仅安全箱中已保存的物品自动弹射返库。 | 普通货仓、已安装装备和留在战区的物品损失,结束出击。此前主动送回的收益保留。 | +| 致命帧与货舱发射同时发生 | 先锁定致命状态;此前已经成功提交的主动回收保留,尚未提交的发射取消。 | 同一物品只按一次已完成的所有权转移处理。 | +| 写入失败 | 不提前改变物品归属,不播放返库成功。 | 锁定机毁现场并重试;从有效快照恢复后继续同一笔结算。 | + +建议为弹射保留独立事件键 `:secure_eject`,原 `:cargo` 与 `:return` 保持不变。具体新字段和事件常量随存档方案确认后冻结。 + +机毁流程按以下顺序实现: + +1. 识别并锁存机毁,关闭库存操作、换装、主动货舱提交和登机入口。`GameSession` 必须优先处理致命状态,避免当前“交互/货舱之后才检查生命”的顺序允许临终补放物品。 +2. 在候选快照记录待结算的毁坏状态及安全箱条目引用,冻结其内容与本次事件键。此步骤不将条目同时复制到基地;待结算记录不是第二个所有者。 +3. 计算完整机毁结果:安全箱内容转基地库存或收货区,清除箱内归属;记录弹射收据;清除普通出击物品;结束本次出击并记录既有 `:return` 收据。上述变更一次写入后共同生效。 +4. 成功保存后播放脱离、点火、返航效果和机毁报告;动画结束或取消都不再修改库存。报告分列“主动送回”“安全箱保全”“机毁损失”。 +5. 若最终写入失败,保留可重试的待结算状态,不能返回可自由操作的战区。重载发现待结算机毁或已保存的零装甲活动出击时,先恢复结算再开放输入。 + +待结算记录也无法写入时,不声称未落盘的机毁已经持久化;保持当前锁定状态重试,重启按上一份完整有效快照恢复。基地库存后来若引入硬容量,自动弹射物品进入待整理区,不因摆放失败而丢失,整理也不重新发放收益。 + +## 数据、迁移与界面安排 + +| 模块 | 扩展内容 | +| --- | --- | +| 物品配置 | 物品类型、基础长宽、堆叠上限和尺寸版本;装备型号 ID、实例 ID、蓝图 ID 保持稳定。 | +| 容器定义与运行记录 | 容器类型、宽高、物品摆放坐标与朝向;普通货仓、安全箱、主动装舱布局分别记录,避免共用一个物品列表。 | +| 网格服务 | 放置/移出/旋转/交换/拆并堆叠/自动摆放的预检与事务;每个格子的占用从权威摆放记录派生。 | +| 出击与存档 | 安全箱状态、物品唯一归属、待机毁结算记录与弹射收据;与既有回收、完整快照和备份逻辑共用一个提交入口。 | +| 装备与属性 | 支持空槽与按实例卸装;保存成功后才刷新属性、模型和预算显示。 | +| UI 与本地化 | 普通货仓/安全箱并列展示、物品尺寸、旋转与错误原因、可保全标记、装舱预览、保全/损失明细,完整支持中英文与键鼠。 | + +本轮按用户要求直接写入新 v2 档。恢复时校验唯一归属、坐标、堆叠上限、已装槽位及回收收据;损坏主文件可从完整备份恢复。旧版迁移延后。 + +UI 推荐同屏展示普通货仓与安全箱,并始终显示当前箱内内容的保护状态。主动货舱打开单独的装舱预览;选择数量不再限制为 2 个,最终以合法摆放为准。颜色之外提供文字与形状提示,拖拽或旋转不改变当前战斗菜单的输入交接规则。 + +## 实施顺序 + +| 编号 | 与装备计划的关系 | 交付与完成条件 | +| --- | --- | --- | +| S1 | E1 数据底座 | 冻结长宽、容器坐标、朝向、空槽、安全箱与待结算结构。 | +| S2 | E2/E3 前置 | 网格预检与转移、旋转、拆并堆叠;覆盖面积够但形状不符、交换和失败回滚,确保无复制或吞物。 | +| S3 | E3 搜刮换装 | 同屏普通货仓/安全箱 UI、卸入安全箱、拖拽旋转与替代键盘操作;跨区和重载保留布局、归属与保护状态。 | +| S4 | E4 回收结算 | 主动货舱改为按布局装载,加入机毁锁存、自动弹射、独立收据与可恢复的完整结算。 | +| S5 | E5/E6 展示 | 保全/损失报告、双语与布局回归;Blender MCP 制作弹射箱及挂点,Unity MCP 接入弹射效果,画面不承担库存结算。 | +| S6 | E7 验收 | Unity MCP 测试、编辑器回放、Windows 构建与实机操作,记录保护收益与空间选择,对首测容量进行平衡。 | + +先完成网格与唯一归属,再接安全箱 UI 和自动结算;第一轮可用占位效果验证弹射,不等待最终模型才验证数据行为。 + +## 必须覆盖的验收 + +| 场景 | 预期结果 | +| --- | --- | +| 2×2 箱尝试放入 1×3 武器 | 两个朝向都拒绝,虽然面积足够;物品保持原处。 | +| 1×2 武器放入仅有横向连续空位的区域 | 旋转后可放入,重载保留同一 UID、坐标和朝向。 | +| 未安装完整武器或 2×2 模块装入安全箱 | 合法尺寸即可成功,机毁后整体保全,不能按装备类别拒绝。 | +| 已安装武器直接卸入安全箱,成功/放不下/写入失败 | 成功时槽位为空且箱内独占该 UID;失败时原装备、属性、模型和箱布局均保持。 | +| 空格数足够但连续形状不足、越界或重叠 | 拒绝并显示具体原因,取消与拖出界面不丢物。 | +| 材料拆分、合并至上限,移动部分数量进入安全箱 | 各处数量总和守恒,超限部分明确保留;只保全实际放入数量。 | +| 已装满安全箱的正常撤离 | 内容只入库一次,没有额外弹射收益。 | +| 普通货仓有武器、安全箱有另一件武器后机毁 | 安全箱武器以原 UID 返库,普通武器损失;基地原库存保持。 | +| 主动货舱已发射后机毁 | 主动送回与安全箱保全各结算一次,剩余普通物品损失,两个舱互不消耗。 | +| 机毁同帧尝试塞箱、换装、发射、登机或重复机毁回调 | 已锁存机毁阻止后续操作,结果遵守提交顺序,不双结算、不临终补塞。 | +| 待结算快照重载、结算写入失败后重试、动画重复回调 | 使用同一事件键与物品归属重试,只形成一次基地收益。 | +| 普通退出、跨区、试验场机毁 | 不将未结算物品凭空送回;跨区保持箱布局;试验场收据与物品不进入正式档。 | +| 鼠标拖拽、R 旋转、键盘确认/取消、切换中英文 | 逻辑结果一致,错误说明与保护标记完整,物品位置和选中状态保持。 | + +原有“3 个条目超过两格货舱”的容量测试需改写为空间断言,不能让过时的条目数量限制继续影响新规则;重复选择、事件去重、写入失败和完整快照恢复覆盖继续保留。 + +归档沿用 `Docs/QA/Equipment/` 与 `Builds/Windows/x64/Equipment/`。按实际完成情况分别记录静态检查、Unity 编辑器测试、独立程序操作与性能采样;本轮设计文档不代表功能或测试已经交付。 diff --git a/Docs/Production/EquipmentSystemPlan.md b/Docs/Production/EquipmentSystemPlan.md new file mode 100644 index 0000000..7a2c568 --- /dev/null +++ b/Docs/Production/EquipmentSystemPlan.md @@ -0,0 +1,146 @@ +# 搜打撤装备系统扩展计划 + +2026-11-12。工作区:`D:/vibeCoding/unityRouge/workTree/tree1`;分支:`codex/models-weapons-equipment-animation`。 + +首个装备数据切片已接入运行时,验证记录见 [装备验证](../QA/Equipment/DataFoundation.md)。关联文档:[玩法设计](../Design/GameDesign.md)、[总实施计划](ImplementationPlan.md)、[文件规范](ProjectConventions.md)。 + +## 目标与决策状态 + +将现有的蓝图解锁与局内换件,扩展为装备实物循环:**机库配装 → 携装出击 → 搜索与换装 → 主动货舱/整机回收或机毁安全箱弹射 → 整理、制造与维修 → 再次出击**。每件装备有独立身份,上一局带出的那件武器可以成为下一局的带入装备。 + +2026-11-12,用户已确认:**装备实物可带出入库、下局带入;机毁时安全箱自动弹射回基地,箱内物品保全,箱外携带装备与未回收物资损失,机库库存保留。** 安全箱可装下任何尺寸合适的未安装物品,包括完整武器与机体模块;库存采用可旋转的二维格子。[玩法设计](../Design/GameDesign.md)已据此更新;局内临时强化仍在出击结束时重置。本轮使用独立 v2 存档。 + +| 决策 | 状态 | 方案与影响 | +| --- | --- | --- | +| 装备跨局归属与损失 | 用户已确认 | 实物装备可回收入库、下局带入;机毁保全安全箱内容,损失箱外装备和未回收货物。底盘解锁、蓝图和已入库物资继续保留。 | +| 弹射式安全箱 | 用户已确认 | 机毁自动发射返基地,任何放得下的未安装物品均可放入,包括完整武器与模块。 | +| 多格库存 | 用户已确认 | 物品有长宽,在二维格子中实际摆放,可旋转;容量不再只按物品条目数判断。 | +| 存档演进 | 用户已确认 | 本阶段从 v2 新档开始,正式档与试验场档分别保存。旧档迁移延后。 | + +具体容量、制造、救济装和后续配件等细则仍按推荐方案规划。弹射箱与格子规则详见[弹射式安全箱与多格库存计划](EjectionSafeCaseAndGridPlan.md),其 S1–S6 合入本计划首个可玩工作包。 + +## 开发前的工程基线 + +| 位置 | 已有能力 | 本次需要补齐 | +| --- | --- | --- | +| [EquipmentDefinition.cs](../../Assets/Game/Scripts/Equipment/EquipmentDefinition.cs) 与 `Assets/Game/Data/Equipment/` | 9 件静态定义;主武器、副武装、推进器、防护四槽;载重、功率、伤害、射速、速度系数等字段。 | 独立实物实例、内容索引、明确的装备效果和模型绑定。 | +| [GameSession.cs](../../Assets/Game/Scripts/Runs/GameSession.cs) | 初始配装、预算检查、三项蓝图研究、局内替换和跨战区状态。 | 真实库存扣取、旧件去向、实例归属;换装提交失败时不能应用外观或显示成功。当前 `Install` 没有处理提交返回值。 | +| [ProfileStore.cs](../../Assets/Game/Scripts/Save/ProfileStore.cs) | v1 快照、材料与蓝图、4 格货仓、2 格货舱、回收事件去重、备份与写入失败处理。 | 装备入库/携出/损失、容器余量、迁移与未知版本保护。当前装备是 `int[4]` 索引;`Bank` 会将合金、电芯以外的物品当作蓝图处理。 | +| [WarzoneDirector.cs](../../Assets/Game/Scripts/Runs/WarzoneDirector.cs) | 固定灰盒搜索点、搜索来源编号、部分箱体附带换件选项。 | 可保留剩余物品的容器、真实装备掉落与地面旧件。当前领取材料/蓝图与换件选项绑定。 | +| [MechPilot.cs](../../Assets/Game/Scripts/Mechs/MechPilot.cs) | 共用双视角命中、武器伤害与射速、推进器速度、防护减伤。 | 配装后的统一属性结果、实际装备模型和枪口挂点。当前枪口位置为代码偏移,`ApplyLoadout` 主要处理机体缩放。 | +| [GameHud.cs](../../Assets/Game/Scripts/UI/GameHud.cs) | 机库轮选配装、简单部件比较、货舱选择、研究与双语刷新。 | 实物库存、装备详情、明确的换装/丢弃/回收动作和收益明细。 | +| [ProfileStoreTests.cs](../../Assets/Tests/EditMode/ProfileStoreTests.cs) | 原有 6 项存档与回收测试。 | 保留去重与故障恢复覆盖,容量断言按二维规则更新;新增实例、迁移、格子与安全箱场景。已有验收记录不代表 tree1 已通过本轮测试。 | + +## 首个可玩版本的装备规则提案 + +### 1. 配装与装备价值 + +- 沿用四槽:主武器、副武装、推进器、防护模块。先复用现有 9 件定义,保存其 ID 与 GUID;底盘仍作为永久解锁的平台。 +- 同型号可拥有多件实物,分别用唯一 `instanceId` 区分。型号配置与物品实例分开,界面按物品实例进行携出、换装和回收。 +- 出击前从机库选择实物。开始出击的一次成功保存,将所选装备从机库转入本次出击;配装预览不转移所有权。 +- 蓝图研究解锁制造配方;制造消耗库存材料并产生一件实物。研究费用与制造费用分别配置,已研究不再等同于无限免费携装。 +- 新存档获得一次基础四槽装备。无可用配装时可使用绑定本次出击的低配救济装;借用件可以按尺寸放入容器和安全箱,返基地时归还救济池,不能转成个人永久库存或制造材料,避免资源循环套利。 +- 首轮直接比较伤害、射速、机动、防护、载重和功率。型号需要有明确取舍;更强火力也可能带来更高负担。 + +### 2. 搜索、存放与换装 + +- 物品按定义的宽高在二维容器中摆放,支持 90° 旋转。首测建议普通货仓 4×4、主动货舱 2×2、安全箱 2×2,具体数值可调;每次出击仍只有 1 次主动货舱发射。材料每堆最多 10 个,装备不可堆叠,不同装备可占多格。 +- 搜索箱显示实际物品,玩家逐件领取、比较或直接换装。领取后剩余内容仍保存在容器中,满仓不会消耗物品或锁死来源。 +- 换装时重新校验槽位兼容、载重、功率和旧件去向。旧件可进入货仓;没有位置时需明确选择交换回原容器或放到地面,不能静默删除。 +- 地面装备与容器剩余装备均有稳定实例 ID,跨存档重载保持;卸件、拾取、交换、丢弃均按一次完整事务提交。 +- 安装中的武器、推进器和防护模块参与额定功率与配装载重检查;携带的货物不消耗额定功率。普通货仓、安全箱及主动货舱分别校验边界、重叠与可用形状,货物重量影响机动列入后续平衡。 +- 可将装备直接卸入安全箱:校验并保存后清空槽位,不能通过默认索引重新生成装备。局内空槽采用明确的无武器/无模块行为。 +- 局内菜单沿用现有输入与暂停规则;打开装备界面交接战斗输入,关闭后需要重新按射击键,完整保留双视角操作。 + +### 3. 主动货舱、安全箱、撤离与机毁 + +| 事件 | 装备与货物归属 | +| --- | --- | +| 发射准备被移动、受击或松键打断 | 物品继续在机上,货舱可重试;首轮沿用 3 秒准备。 | +| 成功发射货舱 | 从普通货仓装入可实际放进主动货舱网格的未安装物品;扣货、入库、货舱已用、事件编号在同一快照中保存。安全箱状态不变,不能继续按“至多 2 个条目”限选。 | +| 运输机抵达但未登机 | 所有剩余装备和货物仍在本次出击;沿用 15 秒接应等待与主动登机。 | +| 主动登机 | 已安装装备、普通货仓和安全箱内容按实际归属回收,借用件归还救济池,结束出击;不额外结算一次弹射。 | +| 机毁 | 先锁存机毁,安全箱中已保存物品自动弹射返库;清除箱外携带和留在战区内的装备、货物。安全箱入库、机毁损失与结束出击共同提交;之前已送回的物品、永久解锁和终局战果保留。 | +| 写入失败 | 普通操作保留原归属并可重试;机毁则锁定待结算现场,不开放库存或战斗输入。不先移除物品、播放成功回收或应用新配装。 | +| 正常退出或重载当前出击 | 恢复已保存的装备、容器、地面物品、货舱与收据;退出不直接触发返库。 | + +货舱仍用既有 `:cargo`,整机结算仍用 `:return` 去重;安全箱拟用独立 `:secure_eject`,在具体存档方案中冻结。相同物品不会同时归属基地与安全箱,致命状态锁存后不能临时补塞物品。蓝图、材料、装备按明确类型分别入库,禁止继续依靠“其他物品就是蓝图”的分支。 + +### 4. 首轮内容与后续扩展 + +| 层级 | 交付内容 | +| --- | --- | +| 首个可玩切片 | 现有 9 件定义、四槽实物配装、机库库存、制造、二维货仓与旋转、多格物品、弹射式安全箱、旧件流转、主动货舱/撤离/机毁与旧档迁移;装备界面随各步骤提供基本操作。 | +| 模型与动作接入 | 先完成 1 把主武器及 1 件替换部件的独立模型与实际挂接,再覆盖现有 9 件;补充开火后坐、瞄准、推进和换装展示。 | +| 下一轮装备深度 | 装备耐久与维修;少量固定品质与型号变体;瞄准、枪口、供能类配件及兼容规则;基于完整出击收益调整制造消耗与掉落。 | +| 另行设计的扩展 | 有限弹药与装填、仓库扩容、额外机体槽、保险、交易及随机词条。各项需单独评估对经济、动作和存档的影响。 | + +首轮保留现有射击与能源规则,品质、配件、耐久不会一次性引入;核心循环通过后再逐项增加。 + +## 数据与实现安排 + +| 数据/模块 | 拟定职责 | +| --- | --- | +| `EquipmentDefinition` 与内容索引 | 保留稳定型号 ID 与槽位编号;明确蓝图/配方映射及效果,绑定展示资源。用内容索引查询,避免把数组顺序继续写进新存档。 | +| `EquipmentInstance` | 保存实物唯一 ID、型号 ID 与来源标记;耐久和配件随对应阶段新增,静态数值由定义读取。 | +| 机库、出击槽、普通货仓、安全箱、容器、地面记录 | 一个实例同时只属于一处。各处持有实例或稳定引用的具体序列化方式在 E1 冻结;归属只保留一个权威来源,界面列表由它派生。 | +| 物品条目与容器快照 | 显式区分材料、蓝图、装备;记录物品长宽及尺寸版本、容器大小、坐标、朝向、剩余条目和掉落结果。以出击/战区/来源组成稳定键,重载不会重新抽取或改变布局。 | +| `EquipmentService` / 网格与配装校验 | 在候选快照内处理制造、携出、换装、卸件、旋转、拆并堆叠和流转;统一校验唯一归属、摆放合法性、兼容与预算。支持局内空槽;先成功保存,再通知运行时与 UI。 | +| 有效属性与外观绑定 | 根据已安装定义计算属性结果;在配装变更时更新,战斗读取同一结果。模型/动作按定义挂接,枪口判定读取实际挂点并保留近墙检测。 | +| `ProfileStore` | 延续快照提交、备份与既有事件语义,接入布局迁移、待机毁结算、安全箱弹射与装备回收。玩法服务执行校验,存档层负责完整状态落盘。 | + +主要代码放在现有 `Scripts/Equipment/`、`Scripts/Save/`、`Scripts/Runs/`,物品与容器按职责进入 `Scripts/Loot/`。配置沿用 `Data/Equipment/`,未来掉落表进入 `Data/Loot/`。计划中的新路径在实际实施时建立。 + +装备 UI 消费查询结果与明确的装备操作接口,地图通过容器来源 ID 和掉落配置接入,便于界面与地图工作整合。避免把库存、掉落和展示继续集中追加到 `GameSession` 或 `GameHud`。 + +### 当前存档与恢复 + +正式档为 `profile-v2.json`,试验场档为 `range-v2.json`。编辑器在各自工程的 `UserSettings/Ironspore/` 下运行。物品 UID、格子坐标、朝向、已装槽位和收据随完整快照写入,机毁结算失败后使用同一出击编号重试。v1 迁移留待后续独立安排。 + +## 实施顺序与完成条件 + +| 编号 | 依赖 | 工作与交付 | 完成条件 | +| --- | --- | --- | --- | +| E0 | 跨局规则已确认 | 核对 tree1 完整路径,完成独立存档与 PlayerPrefs 隔离;用准确 `Name@hash` 绑定 Unity MCP,完成导入、编译并记录原测试基线。需要建模时另读 Blender 当前文件与场景。 | 目标工程和测试数据路径明确,原有测试实际通过,能够独立启动当前原型。 | +| E1 | E0 | 固定槽位/型号映射,建立装备实例、物品尺寸、二维容器、安全箱与待机毁记录、唯一归属校验,合入 S1/S2 并冻结字段清单。 | 非法索引、未知版本、重复实例、无效布局和写入失败均保留有效原状态。 | +| E2 | E1 | 机库实物库存、出击配装、一次性基础装与救济装、研究配方与制造;提供最小库存/配装 UI。 | 预览不扣库存;出击仅携出所选实例;制造正确扣料;不能从同一库存实例装两处或刷救济收益。 | +| E3 | E2 | 可持久化容器、二维摆放/旋转、逐件领取、比较换装、卸入安全箱及空槽行为,合入 S3;接入载重/功率与有效属性。 | 面积与形状均合法才转移;完整武器/模块可按尺寸保全;旧件始终有去向;重载保留布局,换装失败保持属性、模型和库存一致。 | +| E4 | E3 | 主动货舱改按实际摆放装载,扩展整机回收、机毁自动弹射、待结算恢复与报告明细,合入 S4,沿用既有结算编号。 | 同一实物带出后可在下一局再次带入;安全箱保全、普通损失与出击结束共同提交;重复货舱、弹射、登机或机毁回调不会增物。 | +| E5 | E2–E4 | 完成库存筛选、尺寸/旋转、装备详情、预算差值、制造材料、装舱预览与保全/损失报告,覆盖双语、焦点和快捷操作。 | 鼠标拖拽和键盘替代操作均可用;切换语言保持布局、选择和页面;1280×720、1920×1080、2560×1440 中关键操作可见、无溢出。 | +| E6 | E1 定义与挂点接口;联调依赖 E3 | Blender MCP 制作可拆换的模型,沿用 `Mount_Primary`、`Mount_Secondary`、`View_Cockpit`,约定新增推进/防护挂点;Unity MCP 导入组装并连接动作。 | 先验证一把武器和一个替换件;挂载、枪口、碰撞、第一人称视野、后坐与命中一致,重复导入保持 GUID 与引用。 | +| E7 | E4、E5、E6 | 通过 Unity MCP 完成 EditMode、编辑器回放与 Windows x64 构建,轮询任务结束;启动完整产物目录试玩并归档。 | 下方验收用例实际通过,Console 与报告可查;完整出击与单独实例性能采样有实测记录。 | + +第一个开发工作包按 **E0 → E1 → E2 → E3 → E4** 推进,各步附带必要 UI。E5 完成界面回归,E6 完成模型与动作;二者通过后进入 E7。完成首个切片后,再安排耐久、配件与经济扩展的独立工作包。 + +安全箱箱体、弹射挂点、脱离与返航效果随 E6/S5 制作,库存提交由数据层负责,动画回调不发放收益。S6 与 E7 共用测试、构建和试玩归档。 + +## 模型与动作交付约定 + +- Blender 源文件进入 `SourceAssets/Blender/Mechs/` 或相应装备子目录,导出进入 `Assets/Game/Art/Models/`;源、导出物、预制体与定义使用可追溯的资产编号。 +- 保留既有机体与挂点名称。装备模型单独挂接到项目预制体,重复导出检查单位、朝向、原点和枪口,避免更换武器时重做整台机甲。 +- 首轮动作覆盖待机/移动中的开火与瞄准、后坐恢复、推进反馈及换装后外观更新。两种视角读取同一次开火事件和枪口,动作不另行决定伤害。 +- 在现有试验场及战区中逐件替换和验证。独立模型、挂点、动画、材质与必要音效按[素材台账](AssetSources.md)登记来源;下载内容保留许可。 + +## 验收用例与归档 + +| 场景 | 必须观察到的结果 | +| --- | --- | +| 同型号两件、同一实例重复选择 | 两件独立保存并显示;同一实例不能装入两个位置。 | +| 携装出击后重载/继续出击 | 机库不保留同一件实物,活动出击持有它,继续出击不再次扣取。 | +| 出击开始、制造、换装、拾取或回收写入失败 | 材料、装备、来源、收据与运行时属性仍为操作前的完整状态,可安全重试。 | +| 满仓换武器、取消换装、原地丢弃并拾回 | 玩家明确选择旧件去向;实例 ID 不变,无删除、复制或满仓吞物。 | +| 部分搜取后重载、重复打开同一容器 | 只显示剩余物品;型号、数量、实例 ID 保持一致。 | +| 送回装备后机毁 | 已主动送回装备在库,安全箱内容自动保全;箱外已装与剩余货物损失,各自只结算一次。 | +| 运输机抵达但未登机,随后登机 | 到场时不入库,主动登机后才将已装装备与剩余货物一起入库。 | +| 终局完成但未登机,随后机毁 | 战果保留,安全箱物品保全,箱外未回收装备和物资损失。 | +| 一件装备完成“出击→回收→再次出击” | UID 持续相同;每个检查点恰好处于一个位置。 | +| 救济装拆解、转移、安全箱保全或普通回收 | 借用来源保持,返基地归还救济池,各入口不能产生个人永久物品或资源;正常实物仍按规则带出。 | +| 多格摆放、旋转与安全箱完整保全 | 几何空间合法才放置;未安装完整武器/模块不按类别拒绝,机毁按原 UID 保全。详见 S1–S6 验收。 | +| 载重/功率超限、试验场退出、语言反复切换 | 预算提示准确;正式库存不被试验场修改;页面上下文、提示与已有报告正确刷新。 | +| 两种视角换装与近墙射击 | 枪口与命中保持一致,装备不遮挡关键视野;菜单关闭及失焦恢复后不误开火。 | + +自动化重点为数据归属、状态流转、迁移、去重与写入失败,放入 `Assets/Tests/EditMode/`;通过 Unity MCP 定向运行并查询 job 到完成。UI、双视角和动作在编辑器与独立程序中分别实际核对。 + +阶段记录进入 `Docs/QA/Equipment/`,构建进入 `Builds/Windows/x64/Equipment/`。记录区分静态检查、编辑器测试和独立程序实测。60 FPS 按 1080p、中等画质、指定测试机与 P95 帧耗时目标采样;单局 20–30 分钟继续通过完整出击记录验收。 + +已执行的用例和剩余工作以本阶段验证记录为准。 diff --git a/Docs/Production/ImplementationPlan.md b/Docs/Production/ImplementationPlan.md index ef296b1..8a9767b 100644 --- a/Docs/Production/ImplementationPlan.md +++ b/Docs/Production/ImplementationPlan.md @@ -4,7 +4,9 @@ ## 工程起点 -tree1–tree3 的普通目录与资源副本已按 [资源初始化计划](TreeInitializationPlan.md) 完成,结果见 [初始化验收](../QA/Workspaces/Initialization.md)。三个目录暂为普通资源副本,未创建分支或注册 worktree。 +tree1–tree3 最初按 [资源初始化计划](TreeInitializationPlan.md) 建立普通资源副本,初始化阶段未创建分支或注册 worktree,结果见 [初始化验收](../QA/Workspaces/Initialization.md)。`tree1` 后续已在 `D:/vibeCoding/unityRouge/workTree/tree1` 注册独立工作区,分支为 `codex/models-weapons-equipment-animation`,用于玩家机甲模型、武器、动作与装备系统改善。 + +2026-11-12 增补的[搜打撤装备系统扩展计划](EquipmentSystemPlan.md)梳理实物库存、携装出击、搜索换装、回收与损失、存档迁移及模型动作交接,按 E0–E7 分步实施。用户已确认实物可带出并再次携入,并增补[弹射式安全箱与多格库存计划](EjectionSafeCaseAndGridPlan.md):机毁时安全箱自动返基地,任何放得下的未安装物品均可保全,箱外物品损失、机库库存保留;容器采用可旋转的二维网格。S1–S6 合入首个装备工作包,玩法设计已同步;当前原型已接入实物库存、安全箱与网格,按用户要求以 v2 新档开发。已测范围见[装备验证](../QA/Equipment/DataFoundation.md)。 2026-11-12 增补的主页语言切换及全局双语工作按 [多语言实施计划](LocalizationPlan.md) 的 L1–L7 执行,完成后继续原有美术、实战与性能工作。 @@ -89,23 +91,23 @@ Unity 工具名已对照工程内插件源码核查。场景使用 manage_scene | 编号 | 依赖 | 工作与文件产出 | 完成条件 | | --- | --- | --- | --- | -| 2.1 | 1.4 | Loot 下的物品定义、搜索交互、随身货仓和货物选择界面。固定样本为一张蓝图、合金和电芯。 | 搜索后可选取物资。随身 4 格、材料每组 10 个作为首测值。超出格数或堆叠上限时明确显示余量。 | +| 2.1 | 1.4;二维扩展按 S1–S3 | Loot 下的物品定义、长宽与旋转、搜索交互、普通货仓/安全箱和货物选择界面。固定样本为蓝图、合金、电芯与多格装备。 | 搜索后可摆放物资。材料每堆最多 10 个;容量按边界、连续形状和重叠检查,超过堆叠上限或摆不下时明确说明。 | | 2.2 | 2.1 | Save 下的版本化存档,Runs 下的出击状态,一次性入库逻辑和基础机库库存页。 | 同一次货舱或整机结算重试两遍,机库只增加一次。写入失败时保留原状态,玩家可重试。 | -| 2.3 | 2.2 | Extraction 下的货物回收舱,选择至多 2 格,原地按住 G 准备发射。 | 每次出击仅 1 舱。移动、松键或受击时可中断,舱与物资保留。成功升空时扣货、入库、标记舱已用一起保存。 | +| 2.3 | 2.2;网格回收与安全箱按 S4 | Extraction 下的主动回收舱,按二维布局装舱,原地按住 G 准备发射;机毁另行触发安全箱自动弹射。 | 每次出击仅 1 次主动货舱发射。主动准备可中断并保留物资;成功后共同保存扣货、入库和已用。安全箱不占该次数,机毁按已保存的箱内归属保全。 | | 2.4 | 2.2 | 本区撤离点、接应倒计时、运输机占位体和主动登机交互。 | 任意任务进度均可到点呼叫,等待期间能移动作战。运输机到达后再次按 E 登机才结算。 | | 2.5 | 2.3、2.4 | WarzonePrototype.unity,含一项推进目标、搜索物、一个守卫和下一站出口。 | 完成目标开放出口。目标完成前可以搜物资、发射货舱或整机撤离。每次成功返航在基础机库库存页查看所得。 | | 2.6 | 2.5 | Windows 单战区构建,结算逻辑测试与实机操作记录。 | 跑完下方「关键结算验证」。重开游戏后,机库物资、舱使用状态、机毁损失符合记录。 | -这一阶段的重点样例是「搜到蓝图 → 货舱送回 → 机甲被击毁 → 回机库看到蓝图,机上其余物资丢失」。 +这一阶段的重点样例是「主动货舱先送回蓝图 → 另一件装备放进安全箱 → 机甲被击毁 → 回机库看到蓝图与弹射保全装备,箱外其余物资丢失」。 ## 3 · 配装与分支出击 | 编号 | 依赖 | 工作与文件产出 | 完成条件 | | --- | --- | --- | --- | | 3.1 | 2.6 | Equipment 下的四槽装配、载重与额定功率检查,局内候选部件比较与替换。 | 替换推进器或防护模块,下一场立即体验到动作差异。装配超预算时能看见原因,三种底盘共用这套规则。 | -| 3.2 | 3.1 | Hangar.unity、蓝图解锁、材料消耗与初始配装方案。 | 蓝图和材料来自实际回收。解锁后可在下次出击初装,开始新出击时重置当局装备、强化与货舱次数。 | +| 3.2 | 3.1;实物库存按 E1–E4 扩展 | Hangar.unity、机库实物库存、蓝图研究、材料消耗与初始配装方案。 | 蓝图和材料来自实际回收,初始配装引用可用装备实例。成功带出的装备可再次携入,机毁保全安全箱、损失箱外物品;新出击保留机库库存与解锁,重置临时强化与货舱次数。 | | 3.3 | 3.2 | Runs 下的路线生成、节点情报、普通目标与中段终局分流。 | 地图公开任务与物资类别,具体战利品入场才发现。中段选首领或护送方向,任务完成后可继续搜再进下一站。 | -| 3.4 | 3.3 | 战区切换与当前出击存档,三个普通战区布局及轮换任务。 | 进入下一站保留机体状态、当局装备、随身物资和已用货舱标记。每站都能呼叫整机撤离。 | +| 3.4 | 3.3 | 战区切换与当前出击存档,三个普通战区布局及轮换任务。 | 进入下一站保留机体状态、当局装备、普通货仓与安全箱布局、已用主动货舱标记。每站都能呼叫整机撤离。 | ## 4 · 完整试玩版 @@ -123,24 +125,27 @@ Unity 工具名已对照工程内插件源码核查。场景使用 manage_scene | 数据 | 谁持有 | 何时保存或变化 | | --- | --- | --- | | 底盘、部件、战区定义 | Data 下的配置资产 | 制作阶段调整,以内容编号关联。 | -| 永久解锁、机库材料和配装方案 | 玩家存档 | 解锁或成功回收时提交。 | -| 出击编号、随机种子、当前节点、机体状态、当局装备和货仓 | 当前出击 | 出击开始、进入战区、成功回收、返航或机毁时提交对应状态。 | +| 永久解锁、机库材料、装备实物和配装方案 | 玩家存档 | 解锁、制造、携装出击或成功回收时提交,保存唯一归属。 | +| 出击编号、随机种子、当前节点、机体状态、当局装备、普通货仓和安全箱布局 | 当前出击 | 出击开始、合法流转/摆放、进入战区、成功回收、返航或机毁时提交对应状态。 | | 舱可用/准备中/已用 | 当前出击中的货舱记录 | 准备中锁住所选货物,成功发射后提交已用。加载一个发射前的完整快照时,从可重试状态恢复。 | +| 安全箱携带中/已弹射/随整机返回,机毁待结算记录 | 当前出击 | 致命状态锁存后冻结库存输入;安全箱返库、箱外损失、弹射收据与出击结束共同提交。正常登机只回收一次,跨区不重置箱内容。 | | 接应未呼叫/等待中/可登机 | 当前战区 | E 呼叫后进入等待。可登机时玩家主动交互返航。进入下一战区后,由该区自己的撤离点接应。 | | 终局达成与物资返航 | 两类独立事件记录 | 首领或护送目标达成时记战果,登机时结算机上可回收物资。 | -货舱和整机结算都先校验物资、机体状态与事件编号,在新快照中计算扣货与入库。写入成功后采用新状态并显示完成。损坏的临时文件从上一份完整备份恢复,相关流程用针对性的存档测试覆盖。 +主动货舱、整机回收和安全箱结算都先校验物资、布局、机体状态与事件编号,在新快照中计算归属转移。写入成功后采用新状态并显示完成,动画不发放库存。机毁写入失败时保持锁定并重试待结算记录;损坏文件从上一份完整备份恢复,相关流程用针对性的存档测试覆盖。 ## 关键结算验证 | 操作 | 预期结果 | 首次验收 | | --- | --- | --- | -| 选择 3 张蓝图装入 2 格舱 | 可选择至多 2 张,第三张留在机甲上。 | 2.3 | +| 将 1×3 物品装入 2×2 舱,或多件物品争用同一格 | 两个朝向均不适配或发生重叠时拒绝;不按物品件数替代几何校验。 | 2.3、S2/S4 | | 发射准备期间松键、移动或受击 | 原有物资仍在随身清单,货舱可再次使用。 | 2.3 | -| 发射成功后机甲被击毁 | 已回收货物在机库,机上货物丢失。 | 2.6 | +| 发射成功后机甲被击毁 | 已主动回收货物在机库,安全箱内容弹射保全,箱外机上货物损失。 | 2.6、S4 | +| 安全箱放入未安装完整武器或模块,随后机毁 | 尺寸合法即可装入,箱内装备按原 UID 弹射入库,箱外装备损失,机库原库存保留。 | E4、S4 | +| 已保存安全箱布局后跨区、正常撤离或待机毁结算重载 | 跨区保留摆放,正常撤离不再发放弹射收益,待机毁结算使用同一事件键完成一次。 | E4、S4/S6 | | 已用货舱后进入下一站,再打开货仓 | 舱保持已用,格位与机库物资正确。 | 3.4 | | 运输机到达但玩家尚未登机 | 玩家仍可操作,随身货物仍由机甲携带。 | 2.4 | -| 已完成终局但尚未登机,随后机毁 | 终局战果保留,未送回的随身物资丢失。 | 4.1 | +| 已完成终局但尚未登机,随后机毁 | 终局战果保留,安全箱物资保全,箱外未送回的随身物资丢失。 | 4.1、S4 | | 同一事件回调重复、保存后重开游戏 | 同一份货物只结算一次。货舱回收后还可正常结算整机返航。 | 2.6 | | 结算写入失败或临时快照损坏 | 可从有效状态恢复,背包、机库与结算标记相互一致。 | 2.6 | diff --git a/Docs/QA/Equipment/DataFoundation.md b/Docs/QA/Equipment/DataFoundation.md new file mode 100644 index 0000000..8680db4 --- /dev/null +++ b/Docs/QA/Equipment/DataFoundation.md @@ -0,0 +1,21 @@ +# 装备与弹射式安全箱验证 + +2026-11-12,Unity 6000.6.8f1,工作区 `tree1`,分支 `codex/models-weapons-equipment-animation`。 + +## 数据与编辑器测试 + +Unity MCP EditMode 作业 `304ef548c87d4fc6b6643e93b6c4588d` 通过 25/25 项。覆盖货舱形状与数量、装备与材料在容器间的归属、旋转和拆并、制造费用、同型号实例选择、借用件归还、机毁锁定、备份和写入失败重试。机毁后仅安全箱和此前主动送回的物品保全。首次运行发现动态字体图集为空,启动时预载翻译用字后,双语键、参数和字形测试通过。 + +## 编辑器试玩 + +- 从 Bootstrap 进入独立试验场。用 UI Toolkit 导航提交选择已装副武器,旋转并放入安全箱第二行,检查槽位为空、朝向与 UID。随后触发致命伤害,自动返回机库。试验场重新读取到同 UID 的一件装备,以及各一条弹射和返航收据。正式档未写入。 +- 在 1920×1080 中文界面通过指针事件把完整副武器从货仓拖进安全箱,再通过选择、旋转和目标格提交横放。普通货仓的合金与箱内武器在正常返航后均可查到。[界面截图](Grid-zh-1920x1080.png) +- 切换 1280×720 英文界面后,保留所选物品和旋转状态。读取到 20 个格子按钮,按钮中心均在面板内。编辑器退出播放后恢复原来的未命名场景,清理本次生成的试验场临时存档。 + +## Windows x64 + +Unity MCP 构建作业 `build-00b68c9a5c` 成功,0 错误、0 警告。产物目录为 `Builds/Windows/x64/Equipment/`。从该目录启动 Ironspore.exe,确认 Unity 创建 1280×720 客户区、初始化 D3D12 和输入系统,并响应关闭消息正常退出。独立程序本轮验证到启动和退出;上述装备操作在编辑器内验证。 + +## 后续验收 + +逐件搜取及地面丢弃回拾、弹射箱模型与飞行动画、双视角武器动作、完整独立程序出击和性能采样仍待实施或验证。当前默认容量为货仓 4×4、安全箱与主动货舱各 2×2。装备制造使用试玩费用;低配借用件返航后归还。 diff --git a/Docs/QA/Equipment/Grid-zh-1920x1080.png b/Docs/QA/Equipment/Grid-zh-1920x1080.png new file mode 100644 index 0000000000000000000000000000000000000000..92c764cf6ee09c3572e126ce8891daa76ade1194 GIT binary patch literal 305561 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�TGa+mTe!2zwt$alj(U*5 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