存档重构,游戏内容解锁机制;教程完善(未完成)
This commit is contained in:
@@ -97,6 +97,36 @@ namespace Ichni.Story
|
||||
[LabelText("Tutorial Name")]
|
||||
public string tutorialName;
|
||||
|
||||
/// <summary>
|
||||
/// 教程曲目在 <see cref="Ichni.Menu.TutorialCollection"/> 中的稳定 Key。
|
||||
/// 只用于运行时查找,不使用展示名称或章节名称作为逻辑匹配条件。
|
||||
/// 命名统一使用小写英文、数字和下划线,例如 <c>chapter0_intro</c>。
|
||||
/// </summary>
|
||||
[FoldoutGroup("$blockId")]
|
||||
[ShowIf("blockType", StoryBlockType.Tutorial)]
|
||||
[LabelText("Tutorial Key")]
|
||||
public string tutorialKey;
|
||||
|
||||
/// <summary>
|
||||
/// 教程被玩家选择“游玩”或“跳过”后写入的全局剧情变量。
|
||||
/// 后续 Block 应通过 <see cref="VariableCondition"/> 检查该变量是否等于 1 来解锁。
|
||||
/// 命名统一使用小写英文、数字和下划线,例如
|
||||
/// <c>story_tutorial_chapter0_intro_resolved</c>。
|
||||
/// </summary>
|
||||
[FoldoutGroup("$blockId")]
|
||||
[ShowIf("blockType", StoryBlockType.Tutorial)]
|
||||
[LabelText("Progress Variable")]
|
||||
public string tutorialProgressVariable;
|
||||
|
||||
/// <summary>
|
||||
/// 要启动的教程难度的稳定存档 ID,对应 <see cref="Ichni.Menu.DifficultyData.saveDifficultyId"/>。
|
||||
/// 不使用难度列表下标,避免调整难度排列后教程进入错误谱面。
|
||||
/// </summary>
|
||||
[FoldoutGroup("$blockId")]
|
||||
[ShowIf("blockType", StoryBlockType.Tutorial)]
|
||||
[LabelText("Tutorial Difficulty Save ID")]
|
||||
public int tutorialDifficultySaveId = -1;
|
||||
|
||||
/// <summary>
|
||||
/// 预览 / 调试用的显示标题:按类型取对应字段,缺省时回退到 blockId。
|
||||
/// </summary>
|
||||
|
||||
@@ -94,6 +94,20 @@ namespace Ichni.Story
|
||||
Variables.stringVariables[key] = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除指定剧情变量在三种底层字典中的所有残留值。
|
||||
/// 仅删除内存值;需要持久化和故事树刷新时,应调用 <see cref="StoryProgress"/> 的统一接口。
|
||||
/// </summary>
|
||||
public static void Remove(string key)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(key)) return;
|
||||
|
||||
StoryVariablesSave vars = Variables;
|
||||
vars.floatVariables.Remove(key);
|
||||
vars.stringVariables.Remove(key);
|
||||
vars.boolVariables.Remove(key);
|
||||
}
|
||||
|
||||
public static void ClearAll()
|
||||
{
|
||||
StoryVariablesSave vars = Variables;
|
||||
|
||||
Reference in New Issue
Block a user