From 63820cae8d4df2320e329c02b6fa9f2be344f11d Mon Sep 17 00:00:00 2001 From: bottlefish <781230111@qq.com> Date: Thu, 23 Jul 2026 18:55:01 +0800 Subject: [PATCH] =?UTF-8?q?feat(devsave):=20=E6=94=AF=E6=8C=81launchNode?= =?UTF-8?q?=E5=B9=B6=E6=B7=BB=E5=8A=A0=E7=81=AB=E5=B1=B1=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E5=AD=98=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- .../DevSavePromoteWindow.cs | 2 +- Assets/Scripts/Utility/DevSaveJumpTool.cs | 34 ++++++++++-- DevSaveFiles/Huoshan1/01_开头对话/meta.json | 11 ++++ .../Huoshan1/01_开头对话/snapshot.json | 1 + DevSaveFiles/Huoshan1/02_Stage2就绪/meta.json | 11 ++++ .../Huoshan1/02_Stage2就绪/snapshot.json | 1 + DevSaveFiles/Huoshan1/03_Stage3就绪/meta.json | 11 ++++ .../Huoshan1/03_Stage3就绪/snapshot.json | 1 + DevSaveFiles/Huoshan1/04_Stage4就绪/meta.json | 11 ++++ .../Huoshan1/04_Stage4就绪/snapshot.json | 1 + DevSaveFiles/Huoshan1/05_Stage5就绪/meta.json | 11 ++++ .../Huoshan1/05_Stage5就绪/snapshot.json | 1 + DevSaveFiles/Huoshan1/06_Stage6就绪/meta.json | 11 ++++ .../Huoshan1/06_Stage6就绪/snapshot.json | 1 + DevSaveFiles/Huoshan1/07_结束对话/meta.json | 11 ++++ .../Huoshan1/07_结束对话/snapshot.json | 1 + DevSaveFiles/catalog.json | 52 ++++++++++++++++++- 17 files changed, 166 insertions(+), 6 deletions(-) create mode 100644 DevSaveFiles/Huoshan1/01_开头对话/meta.json create mode 100644 DevSaveFiles/Huoshan1/01_开头对话/snapshot.json create mode 100644 DevSaveFiles/Huoshan1/02_Stage2就绪/meta.json create mode 100644 DevSaveFiles/Huoshan1/02_Stage2就绪/snapshot.json create mode 100644 DevSaveFiles/Huoshan1/03_Stage3就绪/meta.json create mode 100644 DevSaveFiles/Huoshan1/03_Stage3就绪/snapshot.json create mode 100644 DevSaveFiles/Huoshan1/04_Stage4就绪/meta.json create mode 100644 DevSaveFiles/Huoshan1/04_Stage4就绪/snapshot.json create mode 100644 DevSaveFiles/Huoshan1/05_Stage5就绪/meta.json create mode 100644 DevSaveFiles/Huoshan1/05_Stage5就绪/snapshot.json create mode 100644 DevSaveFiles/Huoshan1/06_Stage6就绪/meta.json create mode 100644 DevSaveFiles/Huoshan1/06_Stage6就绪/snapshot.json create mode 100644 DevSaveFiles/Huoshan1/07_结束对话/meta.json create mode 100644 DevSaveFiles/Huoshan1/07_结束对话/snapshot.json diff --git a/Assets/Editor/SaveSystemValidation/DevSavePromoteWindow.cs b/Assets/Editor/SaveSystemValidation/DevSavePromoteWindow.cs index e91c73ece..e374c1698 100644 --- a/Assets/Editor/SaveSystemValidation/DevSavePromoteWindow.cs +++ b/Assets/Editor/SaveSystemValidation/DevSavePromoteWindow.cs @@ -470,7 +470,7 @@ namespace AibisDream.EditorTools Assert.That(section.Entries.All(entry => entry.IsValid), Is.True, string.Join("\n", section.Entries.Where(entry => !entry.IsValid).Select(entry => $"{entry.Label}: {entry.Error}"))); Assert.That(section.Entries.Select(entry => entry.Order).Distinct().Count(), Is.EqualTo(section.Entries.Count)); - Assert.That(section.Entries.Select(entry => entry.AnchorNode).Distinct().Count(), Is.EqualTo(section.Entries.Count)); + Assert.That(section.Entries.Select(entry => entry.DestinationNode).Distinct().Count(), Is.EqualTo(section.Entries.Count)); } } diff --git a/Assets/Scripts/Utility/DevSaveJumpTool.cs b/Assets/Scripts/Utility/DevSaveJumpTool.cs index 076681ca6..7ae04f9f4 100644 --- a/Assets/Scripts/Utility/DevSaveJumpTool.cs +++ b/Assets/Scripts/Utility/DevSaveJumpTool.cs @@ -131,7 +131,8 @@ namespace AibisDream { if (string.IsNullOrWhiteSpace(search)) return true; return entry.Label.IndexOf(search, StringComparison.OrdinalIgnoreCase) >= 0 - || entry.AnchorNode.IndexOf(search, StringComparison.OrdinalIgnoreCase) >= 0; + || entry.AnchorNode.IndexOf(search, StringComparison.OrdinalIgnoreCase) >= 0 + || entry.LaunchNode.IndexOf(search, StringComparison.OrdinalIgnoreCase) >= 0; } private IEnumerator LoadDevSave(DevSaveEntry entry) @@ -144,7 +145,7 @@ namespace AibisDream RestoreResult result = null; var completed = false; var accepted = GameManager.Instance.TryRestoreFile( - entry.SnapshotPathWithoutExtension, + entry.PrepareRestorePath(), RestoreOptions.DevJump, value => { @@ -199,7 +200,7 @@ namespace AibisDream RestoreResult result = null; var completed = false; var accepted = GameManager.Instance.TryRestoreFile( - entry.SnapshotPathWithoutExtension, + entry.PrepareRestorePath(), RestoreOptions.DevJump, value => { @@ -321,6 +322,7 @@ namespace AibisDream dto.order, string.IsNullOrWhiteSpace(dto.label) ? dto.anchorNode : dto.label, dto.anchorNode, + dto.launchNode, snapshotPath, section.expectedSceneName, section.expectedSceneSoName, @@ -368,6 +370,8 @@ namespace AibisDream public int Order { get; } public string Label { get; } public string AnchorNode { get; } + public string LaunchNode { get; } + public string DestinationNode => string.IsNullOrWhiteSpace(LaunchNode) ? AnchorNode : LaunchNode; public string SnapshotPathWithoutExtension { get; } public bool IsValid => string.IsNullOrEmpty(Error); public string Error { get; private set; } @@ -377,12 +381,18 @@ namespace AibisDream private readonly string expectedSceneSoName; private readonly string expectedYarnProjectId; - public DevSaveEntry(int order, string label, string anchorNode, string snapshotPathWithoutExtension, + public DevSaveEntry( + int order, + string label, + string anchorNode, + string launchNode, + string snapshotPathWithoutExtension, string expectedSceneName, string expectedSceneSoName, string expectedYarnProjectId, string initialError = null) { Order = order; Label = label ?? string.Empty; AnchorNode = anchorNode ?? string.Empty; + LaunchNode = launchNode ?? string.Empty; SnapshotPathWithoutExtension = snapshotPathWithoutExtension; this.expectedSceneName = expectedSceneName; this.expectedSceneSoName = expectedSceneSoName; @@ -390,6 +400,21 @@ namespace AibisDream Error = initialError; } + public string PrepareRestorePath() + { + if (string.IsNullOrWhiteSpace(LaunchNode) || Snapshot?.anchor == null) + return SnapshotPathWithoutExtension; + + var launchSnapshot = SnapshotPersistence.Deserialize(SnapshotPersistence.Serialize(Snapshot)); + launchSnapshot.anchor.nodeName = LaunchNode; + var directory = Path.Combine(Application.temporaryCachePath, "DevSaveJump"); + var safeLabel = string.Concat(Label.Select(ch => + Path.GetInvalidFileNameChars().Contains(ch) ? '_' : ch)); + var path = Path.Combine(directory, $"launch_{Order:000}_{safeLabel}"); + SnapshotPersistence.Save(launchSnapshot, path); + return path; + } + public void Validate() { if (!string.IsNullOrEmpty(Error)) return; @@ -456,6 +481,7 @@ namespace AibisDream public string label; public string path; public string anchorNode; + public string launchNode; } } #endif diff --git a/DevSaveFiles/Huoshan1/01_开头对话/meta.json b/DevSaveFiles/Huoshan1/01_开头对话/meta.json new file mode 100644 index 000000000..c29301388 --- /dev/null +++ b/DevSaveFiles/Huoshan1/01_开头对话/meta.json @@ -0,0 +1,11 @@ +{ + "slotIndex": -1, + "savedAt": "2026-07-23 13:58:41", + "sceneName": "Scene/HuoShanFixScene", + "sceneSoName": "Day2_FIRST_HS1", + "yarnProjectId": "FP_Huoshan1", + "nodeName": "开头对话", + "schemaVersion": 1, + "gameVersion": "0.6.0.1-20260720-160830", + "thumbnailFile": "thumbnail.png" +} \ No newline at end of file diff --git a/DevSaveFiles/Huoshan1/01_开头对话/snapshot.json b/DevSaveFiles/Huoshan1/01_开头对话/snapshot.json new file mode 100644 index 000000000..9beb33331 --- /dev/null +++ b/DevSaveFiles/Huoshan1/01_开头对话/snapshot.json @@ -0,0 +1 @@ +{"schemaVersion":1,"gameVersion":"0.6.0.1-20260720-160830","savedAt":"2026-07-23 13:58:41","scene":{"sceneName":"Scene/HuoShanFixScene"},"anchor":{"sceneSoName":"Day2_FIRST_HS1","yarnProjectId":"FP_Huoshan1","nodeName":"开头对话"},"yarnVariables":{"floats":{},"strings":{},"bools":{}},"sections":{"env":{"curTime":"Day","curWeather":"Sunny","isInitialized":true},"actor":{"actors":[]},"audio":{"musicPaths":{},"sfxPaths":{},"ambState":"Clinic"},"timeline":{"entries":[{"directorName":"检索","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"进入维修间","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"彩带","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"引擎仓面板","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"插线面板","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"钳子","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"火山Glitch","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"火山表达模块","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"透镜","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false}]},"fix":{"state":"Clinic","args":""},"fixPanel":{"isSystemOn":true,"lightState":"Normal","currentRepairSystemType":"BodyModuleSystem","isCableRetracted":true,"isTaskPanelVisible":false,"tasks":[]},"bodyModule":{"moduleState":"Body","isUFCoverRemoved":false,"isUFRemoved":false,"isColorRemoved":false,"isChipRemoved":false,"highlightedModules":[],"alarmedModules":[],"moduleConditions":{}},"playTool":{"isObjVisible":false,"isFullScreenVisible":false},"screen":{"saturationWeight":0.0,"isFadeScreenCovered":false}}} \ No newline at end of file diff --git a/DevSaveFiles/Huoshan1/02_Stage2就绪/meta.json b/DevSaveFiles/Huoshan1/02_Stage2就绪/meta.json new file mode 100644 index 000000000..e3082b2a6 --- /dev/null +++ b/DevSaveFiles/Huoshan1/02_Stage2就绪/meta.json @@ -0,0 +1,11 @@ +{ + "slotIndex": -1, + "savedAt": "2026-07-23 13:58:52", + "sceneName": "Scene/HuoShanFixScene", + "sceneSoName": "Day2_FIRST_HS1", + "yarnProjectId": "FP_Huoshan1", + "nodeName": "Stage2就绪", + "schemaVersion": 1, + "gameVersion": "0.6.0.1-20260720-160830", + "thumbnailFile": "thumbnail.png" +} \ No newline at end of file diff --git a/DevSaveFiles/Huoshan1/02_Stage2就绪/snapshot.json b/DevSaveFiles/Huoshan1/02_Stage2就绪/snapshot.json new file mode 100644 index 000000000..d88d48837 --- /dev/null +++ b/DevSaveFiles/Huoshan1/02_Stage2就绪/snapshot.json @@ -0,0 +1 @@ +{"schemaVersion":1,"gameVersion":"0.6.0.1-20260720-160830","savedAt":"2026-07-23 13:58:52","scene":{"sceneName":"Scene/HuoShanFixScene"},"anchor":{"sceneSoName":"Day2_FIRST_HS1","yarnProjectId":"FP_Huoshan1","nodeName":"Stage2就绪"},"yarnVariables":{"floats":{"$gameStage":2.0},"strings":{},"bools":{}},"sections":{"env":{"curTime":"Day","curWeather":"Sunny","isInitialized":true},"actor":{"actors":[{"actorName":"火山","slotName":"clinic","actorType":"FrameAnimation","stateName":"捂头表情idle","stateNormalizedTime":0.0,"alpha":1.0,"isTalking":false}]},"audio":{"musicPaths":{},"sfxPaths":{},"ambState":"Body"},"timeline":{"entries":[{"directorName":"检索","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"进入维修间","isActive":true,"phase":"AtStart","hasEverAppliedPlayback":true},{"directorName":"彩带","isActive":true,"phase":"AtStart","hasEverAppliedPlayback":true},{"directorName":"引擎仓面板","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"插线面板","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"钳子","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"火山Glitch","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"火山表达模块","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"透镜","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false}]},"fix":{"state":"BodyModule","args":"Head"},"fixPanel":{"isSystemOn":true,"lightState":"Normal","currentRepairSystemType":"BodyModuleSystem","isCableRetracted":false,"isTaskPanelVisible":true,"tasks":[{"lineId":"line:0f2a6c8","text":"● 检查表达模块"}]},"bodyModule":{"moduleState":"Head","isUFCoverRemoved":false,"isUFRemoved":false,"isColorRemoved":false,"isChipRemoved":false,"highlightedModules":[],"alarmedModules":[],"moduleConditions":{}},"playTool":{"isObjVisible":false,"isFullScreenVisible":false},"screen":{"saturationWeight":0.0,"isFadeScreenCovered":false}}} \ No newline at end of file diff --git a/DevSaveFiles/Huoshan1/03_Stage3就绪/meta.json b/DevSaveFiles/Huoshan1/03_Stage3就绪/meta.json new file mode 100644 index 000000000..ab10d9e8f --- /dev/null +++ b/DevSaveFiles/Huoshan1/03_Stage3就绪/meta.json @@ -0,0 +1,11 @@ +{ + "slotIndex": -1, + "savedAt": "2026-07-23 13:59:36", + "sceneName": "Scene/HuoShanFixScene", + "sceneSoName": "Day2_FIRST_HS1", + "yarnProjectId": "FP_Huoshan1", + "nodeName": "Stage3就绪", + "schemaVersion": 1, + "gameVersion": "0.6.0.1-20260720-160830", + "thumbnailFile": "thumbnail.png" +} \ No newline at end of file diff --git a/DevSaveFiles/Huoshan1/03_Stage3就绪/snapshot.json b/DevSaveFiles/Huoshan1/03_Stage3就绪/snapshot.json new file mode 100644 index 000000000..8dfbb70b6 --- /dev/null +++ b/DevSaveFiles/Huoshan1/03_Stage3就绪/snapshot.json @@ -0,0 +1 @@ +{"schemaVersion":1,"gameVersion":"0.6.0.1-20260720-160830","savedAt":"2026-07-23 13:59:36","scene":{"sceneName":"Scene/HuoShanFixScene"},"anchor":{"sceneSoName":"Day2_FIRST_HS1","yarnProjectId":"FP_Huoshan1","nodeName":"Stage3就绪"},"yarnVariables":{"floats":{"$gameStage":3.0,"$PlugCount":3.0},"strings":{},"bools":{"$global.IsPlugHighLight":true,"$speakerChecked":true,"$colorChecked":true,"$emoChecked":true}},"sections":{"env":{"curTime":"Day","curWeather":"Sunny","isInitialized":true},"actor":{"actors":[{"actorName":"火山","slotName":"clinic","actorType":"FrameAnimation","stateName":"捂头表情idle","stateNormalizedTime":0.0,"alpha":1.0,"isTalking":false}]},"audio":{"musicPaths":{},"sfxPaths":{},"ambState":"Body"},"timeline":{"entries":[{"directorName":"检索","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"进入维修间","isActive":true,"phase":"AtStart","hasEverAppliedPlayback":true},{"directorName":"彩带","isActive":true,"phase":"AtStart","hasEverAppliedPlayback":true},{"directorName":"引擎仓面板","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"插线面板","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"钳子","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"火山Glitch","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"火山表达模块","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"透镜","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false}]},"fix":{"state":"BodyModule","args":"Head"},"fixPanel":{"isSystemOn":true,"lightState":"Normal","currentRepairSystemType":"BodyModuleSystem","isCableRetracted":false,"pluggedModuleName":"Emo","isTaskPanelVisible":true,"tasks":[{"lineId":"line:018dc78","text":"● 连接销售语言拓展模块,进入深入检查"}]},"bodyModule":{"moduleState":"Head","isUFCoverRemoved":false,"isUFRemoved":false,"isColorRemoved":false,"isChipRemoved":false,"highlightedModules":[],"alarmedModules":[],"moduleConditions":{}},"playTool":{"isObjVisible":false,"isFullScreenVisible":false},"screen":{"saturationWeight":0.0,"isFadeScreenCovered":false}}} \ No newline at end of file diff --git a/DevSaveFiles/Huoshan1/04_Stage4就绪/meta.json b/DevSaveFiles/Huoshan1/04_Stage4就绪/meta.json new file mode 100644 index 000000000..c2a96a4ad --- /dev/null +++ b/DevSaveFiles/Huoshan1/04_Stage4就绪/meta.json @@ -0,0 +1,11 @@ +{ + "slotIndex": -1, + "savedAt": "2026-07-23 14:00:08", + "sceneName": "Scene/HuoShanFixScene", + "sceneSoName": "Day2_FIRST_HS1", + "yarnProjectId": "FP_Huoshan1", + "nodeName": "Stage4就绪", + "schemaVersion": 1, + "gameVersion": "0.6.0.1-20260720-160830", + "thumbnailFile": "thumbnail.png" +} \ No newline at end of file diff --git a/DevSaveFiles/Huoshan1/04_Stage4就绪/snapshot.json b/DevSaveFiles/Huoshan1/04_Stage4就绪/snapshot.json new file mode 100644 index 000000000..3fc9511f2 --- /dev/null +++ b/DevSaveFiles/Huoshan1/04_Stage4就绪/snapshot.json @@ -0,0 +1 @@ +{"schemaVersion":1,"gameVersion":"0.6.0.1-20260720-160830","savedAt":"2026-07-23 14:00:08","scene":{"sceneName":"Scene/HuoShanFixScene"},"anchor":{"sceneSoName":"Day2_FIRST_HS1","yarnProjectId":"FP_Huoshan1","nodeName":"Stage4就绪"},"yarnVariables":{"floats":{"$gameStage":4.0,"$PlugCount":3.0,"$salesTurnIndex":3.0,"$knobFailCount":2.0},"strings":{},"bools":{"$global.IsPlugHighLight":true,"$speakerChecked":true,"$colorChecked":true,"$emoChecked":true}},"sections":{"env":{"curTime":"Day","curWeather":"Sunny","isInitialized":true},"actor":{"actors":[{"actorName":"火山","slotName":"clinic","actorType":"FrameAnimation","stateName":"捂头表情idle","stateNormalizedTime":0.0,"alpha":1.0,"isTalking":false}]},"audio":{"musicPaths":{},"sfxPaths":{},"ambState":"Body"},"timeline":{"entries":[{"directorName":"检索","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"进入维修间","isActive":true,"phase":"AtStart","hasEverAppliedPlayback":true},{"directorName":"彩带","isActive":true,"phase":"AtStart","hasEverAppliedPlayback":true},{"directorName":"引擎仓面板","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"插线面板","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"钳子","isActive":true,"phase":"AtStart","loadedAddressableKey":"放下盖子","hasEverAppliedPlayback":true},{"directorName":"火山Glitch","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"火山表达模块","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"透镜","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"步进模式","isActive":true,"phase":"AtStart","loadedAddressableKey":"进入步进模式","hasEverAppliedPlayback":true}]},"fix":{"state":"BodyModule","args":"Head"},"fixPanel":{"isSystemOn":true,"lightState":"Normal","currentRepairSystemType":"BodyModuleSystem","isCableRetracted":false,"isTaskPanelVisible":true,"tasks":[{"lineId":"line:032ec2b","text":"● 检查表达模块"}]},"bodyModule":{"moduleState":"Head","isUFCoverRemoved":false,"isUFRemoved":false,"isColorRemoved":false,"isChipRemoved":false,"highlightedModules":[],"alarmedModules":[],"moduleConditions":{}},"playTool":{"isObjVisible":false,"isFullScreenVisible":false},"screen":{"saturationWeight":0.0,"isFadeScreenCovered":false}}} \ No newline at end of file diff --git a/DevSaveFiles/Huoshan1/05_Stage5就绪/meta.json b/DevSaveFiles/Huoshan1/05_Stage5就绪/meta.json new file mode 100644 index 000000000..37fc8edb2 --- /dev/null +++ b/DevSaveFiles/Huoshan1/05_Stage5就绪/meta.json @@ -0,0 +1,11 @@ +{ + "slotIndex": -1, + "savedAt": "2026-07-23 14:00:18", + "sceneName": "Scene/HuoShanFixScene", + "sceneSoName": "Day2_FIRST_HS1", + "yarnProjectId": "FP_Huoshan1", + "nodeName": "Stage5就绪", + "schemaVersion": 1, + "gameVersion": "0.6.0.1-20260720-160830", + "thumbnailFile": "thumbnail.png" +} \ No newline at end of file diff --git a/DevSaveFiles/Huoshan1/05_Stage5就绪/snapshot.json b/DevSaveFiles/Huoshan1/05_Stage5就绪/snapshot.json new file mode 100644 index 000000000..576ab14d5 --- /dev/null +++ b/DevSaveFiles/Huoshan1/05_Stage5就绪/snapshot.json @@ -0,0 +1 @@ +{"schemaVersion":1,"gameVersion":"0.6.0.1-20260720-160830","savedAt":"2026-07-23 14:00:18","scene":{"sceneName":"Scene/HuoShanFixScene"},"anchor":{"sceneSoName":"Day2_FIRST_HS1","yarnProjectId":"FP_Huoshan1","nodeName":"Stage5就绪"},"yarnVariables":{"floats":{"$gameStage":5.0,"$PlugCount":3.0,"$salesTurnIndex":3.0,"$knobFailCount":2.0},"strings":{},"bools":{"$global.IsPlugHighLight":true,"$speakerChecked":true,"$colorChecked":true,"$emoChecked":true}},"sections":{"env":{"curTime":"Day","curWeather":"Sunny","isInitialized":true},"actor":{"actors":[{"actorName":"火山","slotName":"clinic","actorType":"FrameAnimation","stateName":"捂头表情idle","stateNormalizedTime":0.0,"alpha":1.0,"isTalking":false}]},"audio":{"musicPaths":{},"sfxPaths":{},"ambState":"Clinic"},"timeline":{"entries":[{"directorName":"检索","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"进入维修间","isActive":true,"phase":"AtStart","hasEverAppliedPlayback":true},{"directorName":"彩带","isActive":true,"phase":"AtStart","hasEverAppliedPlayback":true},{"directorName":"引擎仓面板","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"插线面板","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"钳子","isActive":true,"phase":"AtStart","loadedAddressableKey":"放下盖子","hasEverAppliedPlayback":true},{"directorName":"火山Glitch","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"火山表达模块","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"透镜","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"步进模式","isActive":true,"phase":"AtStart","loadedAddressableKey":"进入步进模式","hasEverAppliedPlayback":true}]},"fix":{"state":"Clinic","args":""},"fixPanel":{"isSystemOn":true,"lightState":"Normal","currentRepairSystemType":"BodyModuleSystem","isCableRetracted":true,"isTaskPanelVisible":true,"tasks":[]},"bodyModule":{"moduleState":"Head","isUFCoverRemoved":false,"isUFRemoved":false,"isColorRemoved":false,"isChipRemoved":false,"highlightedModules":[],"alarmedModules":[],"moduleConditions":{}},"playTool":{"isObjVisible":false,"isFullScreenVisible":false},"screen":{"saturationWeight":0.0,"isFadeScreenCovered":false}}} \ No newline at end of file diff --git a/DevSaveFiles/Huoshan1/06_Stage6就绪/meta.json b/DevSaveFiles/Huoshan1/06_Stage6就绪/meta.json new file mode 100644 index 000000000..da39e8457 --- /dev/null +++ b/DevSaveFiles/Huoshan1/06_Stage6就绪/meta.json @@ -0,0 +1,11 @@ +{ + "slotIndex": -1, + "savedAt": "2026-07-23 14:00:22", + "sceneName": "Scene/HuoShanFixScene", + "sceneSoName": "Day2_FIRST_HS1", + "yarnProjectId": "FP_Huoshan1", + "nodeName": "Stage6就绪", + "schemaVersion": 1, + "gameVersion": "0.6.0.1-20260720-160830", + "thumbnailFile": "thumbnail.png" +} \ No newline at end of file diff --git a/DevSaveFiles/Huoshan1/06_Stage6就绪/snapshot.json b/DevSaveFiles/Huoshan1/06_Stage6就绪/snapshot.json new file mode 100644 index 000000000..ab8571b79 --- /dev/null +++ b/DevSaveFiles/Huoshan1/06_Stage6就绪/snapshot.json @@ -0,0 +1 @@ +{"schemaVersion":1,"gameVersion":"0.6.0.1-20260720-160830","savedAt":"2026-07-23 14:00:22","scene":{"sceneName":"Scene/HuoShanFixScene"},"anchor":{"sceneSoName":"Day2_FIRST_HS1","yarnProjectId":"FP_Huoshan1","nodeName":"Stage6就绪"},"yarnVariables":{"floats":{"$gameStage":6.0,"$PlugCount":3.0,"$salesTurnIndex":3.0,"$knobFailCount":2.0},"strings":{},"bools":{"$global.IsPlugHighLight":true,"$speakerChecked":true,"$colorChecked":true,"$emoChecked":true}},"sections":{"env":{"curTime":"Day","curWeather":"Sunny","isInitialized":true},"actor":{"actors":[{"actorName":"火山","slotName":"clinic","actorType":"FrameAnimation","stateName":"捂头表情idle","stateNormalizedTime":0.0,"alpha":1.0,"isTalking":false}]},"audio":{"musicPaths":{},"sfxPaths":{},"ambState":"Body"},"timeline":{"entries":[{"directorName":"检索","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"进入维修间","isActive":true,"phase":"AtStart","hasEverAppliedPlayback":true},{"directorName":"彩带","isActive":true,"phase":"AtStart","hasEverAppliedPlayback":true},{"directorName":"引擎仓面板","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"插线面板","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"钳子","isActive":true,"phase":"AtStart","loadedAddressableKey":"放下盖子","hasEverAppliedPlayback":true},{"directorName":"火山Glitch","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"火山表达模块","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"透镜","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"步进模式","isActive":true,"phase":"AtStart","loadedAddressableKey":"进入步进模式","hasEverAppliedPlayback":true}]},"fix":{"state":"BodyModule","args":"Head"},"fixPanel":{"isSystemOn":true,"lightState":"Normal","currentRepairSystemType":"BodyModuleSystem","isCableRetracted":false,"isTaskPanelVisible":true,"tasks":[{"lineId":"line:028e9bd","text":"● 释放表达模块的阻塞log"}]},"bodyModule":{"moduleState":"Head","isUFCoverRemoved":false,"isUFRemoved":false,"isColorRemoved":false,"isChipRemoved":false,"highlightedModules":[],"alarmedModules":[],"moduleConditions":{}},"playTool":{"isObjVisible":false,"isFullScreenVisible":false},"screen":{"saturationWeight":0.0,"isFadeScreenCovered":false}}} \ No newline at end of file diff --git a/DevSaveFiles/Huoshan1/07_结束对话/meta.json b/DevSaveFiles/Huoshan1/07_结束对话/meta.json new file mode 100644 index 000000000..c5535c853 --- /dev/null +++ b/DevSaveFiles/Huoshan1/07_结束对话/meta.json @@ -0,0 +1,11 @@ +{ + "slotIndex": -1, + "savedAt": "2026-07-22 20:23:52", + "sceneName": "Scene/HuoShanFixScene", + "sceneSoName": "Day2_FIRST_HS1", + "yarnProjectId": "FP_Huoshan1", + "nodeName": "结束对话", + "schemaVersion": 1, + "gameVersion": "0.6.0.1-20260720-160830", + "thumbnailFile": "thumbnail.png" +} \ No newline at end of file diff --git a/DevSaveFiles/Huoshan1/07_结束对话/snapshot.json b/DevSaveFiles/Huoshan1/07_结束对话/snapshot.json new file mode 100644 index 000000000..5e5d6ebc5 --- /dev/null +++ b/DevSaveFiles/Huoshan1/07_结束对话/snapshot.json @@ -0,0 +1 @@ +{"schemaVersion":1,"gameVersion":"0.6.0.1-20260720-160830","savedAt":"2026-07-22 20:23:52","scene":{"sceneName":"Scene/HuoShanFixScene"},"anchor":{"sceneSoName":"Day2_FIRST_HS1","yarnProjectId":"FP_Huoshan1","nodeName":"结束对话"},"yarnVariables":{"floats":{"$gameStage":8.0,"$PlugCount":3.0,"$salesTurnIndex":3.0,"$knobFailCount":2.0},"strings":{},"bools":{"$global.IsPlugHighLight":true,"$speakerChecked":true,"$colorChecked":true,"$emoChecked":true}},"sections":{"env":{"curTime":"Day","curWeather":"Sunny","isInitialized":true},"actor":{"actors":[{"actorName":"火山","slotName":"clinic","actorType":"FrameAnimation","stateName":"捂头表情idle","stateNormalizedTime":0.0,"alpha":1.0,"isTalking":false}]},"audio":{"musicPaths":{},"sfxPaths":{},"ambState":"Clinic"},"timeline":{"entries":[{"directorName":"检索","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"进入维修间","isActive":true,"phase":"AtStart","hasEverAppliedPlayback":true},{"directorName":"彩带","isActive":true,"phase":"AtStart","hasEverAppliedPlayback":true},{"directorName":"引擎仓面板","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"插线面板","isActive":true,"phase":"Stopped","hasEverAppliedPlayback":false},{"directorName":"钳子","isActive":true,"phase":"AtStart","loadedAddressableKey":"放下盖子","hasEverAppliedPlayback":true},{"directorName":"火山Glitch","isActive":true,"phase":"AtStart","loadedAddressableKey":"头痛","hasEverAppliedPlayback":true},{"directorName":"火山表达模块","isActive":true,"phase":"AtStart","loadedAddressableKey":"火山表达确认","hasEverAppliedPlayback":true},{"directorName":"透镜","isActive":true,"phase":"AtStart","loadedAddressableKey":"透镜out","hasEverAppliedPlayback":true},{"directorName":"步进模式","isActive":true,"phase":"AtStart","loadedAddressableKey":"进入步进模式","hasEverAppliedPlayback":true}]},"fix":{"state":"Clinic","args":""},"fixPanel":{"isSystemOn":true,"lightState":"Normal","currentRepairSystemType":"BodyModuleSystem","isCableRetracted":true,"isTaskPanelVisible":true,"tasks":[]},"bodyModule":{"moduleState":"Head","isUFCoverRemoved":false,"isUFRemoved":false,"isColorRemoved":false,"isChipRemoved":false,"highlightedModules":[],"alarmedModules":[],"moduleConditions":{}},"playTool":{"isObjVisible":false,"isFullScreenVisible":false},"screen":{"saturationWeight":0.0,"isFadeScreenCovered":false}}} \ No newline at end of file diff --git a/DevSaveFiles/catalog.json b/DevSaveFiles/catalog.json index 3d65aa1b0..9b442b802 100644 --- a/DevSaveFiles/catalog.json +++ b/DevSaveFiles/catalog.json @@ -274,7 +274,57 @@ "expectedSceneName": "Scene/HuoShanFixScene", "expectedSceneSoName": "Day2_FIRST_HS1", "expectedYarnProjectId": "FP_Huoshan1", - "entries": [] + "entries": [ + { + "order": 1, + "label": "开头对话", + "path": "Huoshan1/01_开头对话", + "anchorNode": "开头对话" + }, + { + "order": 2, + "label": "Stage2就绪", + "path": "Huoshan1/02_Stage2就绪", + "anchorNode": "Stage2就绪" + }, + { + "order": 3, + "label": "Stage3就绪", + "path": "Huoshan1/03_Stage3就绪", + "anchorNode": "Stage3就绪" + }, + { + "order": 4, + "label": "Stage4就绪", + "path": "Huoshan1/04_Stage4就绪", + "anchorNode": "Stage4就绪" + }, + { + "order": 5, + "label": "Stage5就绪", + "path": "Huoshan1/05_Stage5就绪", + "anchorNode": "Stage5就绪" + }, + { + "order": 6, + "label": "Stage6就绪", + "path": "Huoshan1/06_Stage6就绪", + "anchorNode": "Stage6就绪" + }, + { + "order": 7, + "label": "LOG1 演出预览", + "path": "Huoshan1/06_Stage6就绪", + "anchorNode": "Stage6就绪", + "launchNode": "DEV_LOG1演出预览" + }, + { + "order": 8, + "label": "结束对话", + "path": "Huoshan1/07_结束对话", + "anchorNode": "结束对话" + } + ] }, { "order": 6,