剧情+对话完善

This commit is contained in:
SoulliesOfficial
2026-07-21 15:24:42 -04:00
parent 8f230831e9
commit 810d019619
161 changed files with 7271 additions and 1893 deletions

View File

@@ -2,6 +2,7 @@ using System.Collections;
using System.Collections.Generic;
using AK.Wwise;
using Ichni.Menu;
using Ichni.Story;
using UnityEngine;
using UnityEngine.Serialization;
@@ -28,6 +29,12 @@ namespace Ichni
/// </summary>
public MenuReturnDestination menuReturnDestination;
/// <summary>
/// 由剧情 SongBlock 发起的单次选曲上下文。它是运行时路由数据,不属于玩家存档;
/// 仅用于校验目标歌曲、决定返回页面并还原剧情树浏览位置。
/// </summary>
[System.NonSerialized] public StorySongEntryContext storySongEntryContext = new StorySongEntryContext();
public ChapterSelectionUnit chapter;
public SongItemData song;
public DifficultyData difficulty;
@@ -57,7 +64,12 @@ namespace Ichni
{
// 保留旧入口,供现有选曲流程在播放过场前预先写入歌曲信息。
// 真正进入 GameScene 时MenuManager.EnterGame 会补充 SongSelection 返回目标。
PrepareGameLaunch(chapter, song, difficulty, MenuReturnDestination.None);
if (PrepareGameLaunch(chapter, song, difficulty, MenuReturnDestination.None))
{
// 只有玩家真正确认“进入游戏”且命中剧情目标歌曲时,才完成对应 SongBlock。
// 单纯从剧情打开选曲、浏览其它歌曲或返回菜单都不会写入剧情进度。
StoryManager.instance?.HandleSongSelectionConfirmed(chapter, song);
}
}
/// <summary>
@@ -79,6 +91,10 @@ namespace Ichni
chapterSwitch = chapter.chapterSwitch;
songSwitch = song.songSwitch;
menuReturnDestination = returnDestination;
// “确认进入游戏”是歌曲尝试的统一边界。无论入口来自普通选曲、Story SongBlock 或教程,
// 都由 SongSaves 记录这一次尝试StoryTree 会在构建/返回时据此同步 SongBlock 完成状态。
GameSaveManager.instance?.SongSaveModule?.MarkSongTried(song.songName);
return true;
}