Skip to content

分支树系统

强化分支树允许玩家在特定星级选择不同的强化路线,实现装备的差异化成长。

概念

  • 分支节点:强化路径中的分叉点,玩家需要选择一条路线继续。
  • 分支路径:玩家选择的路线记录,存储在装备状态中。
  • 路线影响:不同路线提供不同的属性加成、技能和展示效果。
text
+1 → +2 → +3 → +4 → +5 ─┬─ [锋利] +6 → +7 → +8
                          └─ [致命] +6 → +7 → +8

配置结构

在强化配方中通过 branch_tree 配置分支:

yaml
id: weapon_physical
branch_tree:
  fork_at: 5
  branches:
    sharp:
      display_name: "<yellow>锋利路线"
      description:
        - "<gray>提升物理攻击和攻击速度"
      stages:
        6:
          stats:
            physical_attack: "15 + star * 3"
            attack_speed: 2
        7:
          stats:
            physical_attack: "20 + star * 4"
            attack_speed: 3
    lethal:
      display_name: "<red>致命路线"
      description:
        - "<gray>提升暴击率和暴击伤害"
      stages:
        6:
          stats:
            physical_crit_rate: 5
            physical_crit_damage: 15
        7:
          stats:
            physical_crit_rate: 8
            physical_crit_damage: 25

字段说明

字段类型说明
branch_tree.fork_atinteger分叉点星级。到达此星级时玩家需要选择分支。
branch_tree.branchesmap分支定义,key 为分支 ID。
branches.<id>.display_namestring分支显示名。
branches.<id>.descriptionlist分支描述。
branches.<id>.stagesmap该分支的星级阶段配置。

分支选择

当装备到达 fork_at 星级时:

  1. GUI 中显示可选分支列表。
  2. 玩家选择一条路线。
  3. 选择结果写入装备状态(StrengthenState.branchPath)。
  4. 后续强化按所选分支的 stages 配置执行。

分支选择后不可更改。设计时应确保各路线有明确的定位差异。

分支对装备的影响

选择分支后,该分支的配置会影响:

  • 属性累计:按分支 stages 中的 stats 累计属性。
  • 技能绑定:分支 stages 中的 skillIds 绑定技能。
  • 展示效果:分支 stages 中的 structuredPresentation 控制展示。
  • 名称/Lore 操作:分支 stages 中的 nameActions/loreActions 修改外观。

分支配方文件

默认资源中包含 recipes/example_branch_recipe.yml,可作为分支强化配方的参考。分支配方适合用于以下设计:

  • 武器在中高星后选择输出路线,例如攻速、暴击、穿透。
  • 防具在特定星级选择防御、生命、韧性或抗性路线。
  • 饰品根据职业定位选择资源、技能或功能属性。

建议把普通线性强化和分支强化拆成不同配方,避免一个文件同时承担过多规则。分支节点越多,玩家理解成本越高,通常 1~2 次分叉更容易维护。

强化转移

运行时包含强化转移服务,用于把一件装备的强化状态迁移到另一件装备。转移设计通常需要额外规则约束:

  • 源装备和目标装备是否必须匹配同一配方。
  • 是否允许跨装备类型转移。
  • 星级、锻印、分支路径和里程碑是否完整继承。
  • 转移是否需要材料、货币或权限。
  • 转移后源装备是否清空强化状态。

在正式开放转移玩法前,应先用低价值装备测试状态回退、属性刷新和物品展示重建,避免出现双份强化属性或旧 Lore 残留。

里程碑标记

装备状态中的 milestoneFlags 记录历史上首次达到的星级集合,用于:

  • 防止重复触发广播。
  • 记录装备成长历程。
  • 支持成就系统集成。