Files
pixelheros/docs/superpowers/specs/2026-10-06-boss-phase-content-design.md
panFD e662b63f80 docs: add boss phase content design based on shipped mechanics
Adapt external draft to existing BossPhaseSet capabilities: pool-wide removes for stance-swap semantics, ap/def-only attr mods, 30s/60s time triggers aligned with 90s battle timeout, and 13 ready-to-paste plans across 6 bosses.
2026-10-08 23:12:13 +08:00

15 KiB
Raw Blame History

Boss 阶段战斗内容设计 v1

定位:本文是 Boss 阶段系统的内容设计文档(配什么方案、什么数值), 技术机制见规格文档 docs/superpowers/specs/2026-10-06-boss-phase-system-design.md。 所有设计均基于现有实现能力落地,零机制新增;外部设计稿(像素大勇者-boss-阶段设计稿.md) 仅作理念借鉴,凡与现有实现冲突处一律改写(对照见 §7)。


§1 设计目标

  • 6 个现有 Boss 各自拥有 2~3 个阶段方案,生成时随机抽一(肉鸽重玩性)
  • 每个方案固定 3 阶段:P1(基线)→ P2 → P3,两个切换点
  • 两种战斗气质:追加式(技能池越打越大,数值膨胀)与换招式(整组换招,机制重组), 玩家主观强度对齐
  • P1→P2 触发条件全 Boss 统一,降低玩家学习成本;P3 是高潮,阈值按 Boss 气质差异化

§2 现有机制能力边界(设计必须遵守)

能力 现状 设计含义
触发条件 hp_pct(血量≤%)/ time(Boss 在场秒数),同点 OR 关系 混合触发可直接配
技能变更 adds 注入 + removes 按 id 删除,delete 不存在的键无副作用 换招式 = removes 列满该定位整个大招池(见 §3.2)
属性修正 仅 ap_pct / defense_pct,链式乘算 不配 hp 修正(实现已排除,避免血量同步歧义)
技能数值 overrides.ap 系数,口径同 BossUltPools(140~220) 不引用英雄技能 lv 体系
新技能 CD cd 缺省 8s,注入后 ccd: 0 需等满一个 CD 才首放 P3 注入技能有 8s 真空期,阈值设计须留窗口
战斗时长 BATTLE_TIMEOUT = 90s,Boss 延迟 1s 刷出 时间触发方案的 P3 阈值 ≤ 60s(留 ≥28s 收尾窗口)
方案校验 恰 2 切换点;hp_pct ∈(0,100) 严格递减且须构成前缀;time 严格递增 配错启动期 validateBossPhaseSet 报错
普攻保护 removes/adds 禁止操作普攻首键 只操作大招键

§3 通用设计规则

3.1 触发维度按 Boss 定位分配(借鉴外部稿注 B,映射到现有 Boss)

Boss 定位 触发维度 理由
6101 兽人首领-双刀dps 近战 Warrior 血量(P2=70% / P3=40%) 速战速决型,血量阈值直觉明显
6102 兽人首领-坦克型 近战 Tank 时间(P2=30s / P3=60s) 消耗战,时间触发逼玩家在窗口期内输出
6103 兽人首领-魔法师 远程 Mage 时间(P2=30s / P3=60s) 法系读招,时间阈值给玩家"看清招式再反应"的窗口
6104 兽人首领-射手 远程 Archer 血量(P2=70% / P3=40%) 高频弹幕,时间触发会过于喧闹
6105 亡灵首领-法师 远程 Mage 时间(P2=30s / P3=60s) 同 6103
6106 亡灵首领-骑马战士 近战 Tank 时间(P2=30s / P3=60s) 同 6102
6006 骷髅领主 近战 Tank 血量(P2=70% / P3=40%) 低攻速靶子型,血量节奏更稳

时间阈值为 Boss 在场时长(elapsed 从出生起算,暂停不计)。30s/60s 相对 90s 战斗超时 留出 P3 ≥28s 的收尾窗口。

3.2 换招式(clear_replace)的落地技巧

实现没有"清空"开关,但 removes 对不存在的 id 无副作用。因此:

换招式 = removes 列满该 Boss 定位对应的整个大招池 id(近战池 61006104 / 远程池 62006204 + 6150/6151), 无论 RogueConfig 随机注入了哪个大招、之前阶段 adds 了什么,一律清净,再 adds 新技能组。

  • 近战定位池:[6100, 6101, 6102, 6103, 6104]
  • 远程定位池:[6150, 6151, 6200, 6201, 6202, 6203, 6204]

3.3 双模式强度对齐(借鉴外部稿 Q3,改写为现有口径)

模式 新鲜感来源 数值手段 输出口径
追加式(keep_add) 技能池变大、轮转更密 attr_mod.ap_pct 每段 +15~25% 技能 overrides 维持标准档(ap 150~180)
换招式(clear_replace) 招式重组、机制差异 新技能 overrides.ap 逐段上调(180→200→220) attr_mod 少量或不配

两模式的 P3 理论 DPS 控制在 ±10% 以内;换招式清掉了随机注入的大招(可能很强), 故新技能给更高系数补偿。

3.4 方案 id 规划(10000 段,按 Boss 分组)

id 段 Boss 触发
10001~10009 6101 双刀dps 血量
10010~10019 6102 坦克型 时间
10020~10029 6103 魔法师 时间
10030~10039 6104 射手 血量
10040~10049 6105 亡灵法师 时间
10050~10059 6106 骑马战士 时间
10060~10069 6006 骷髅领主 血量

§4 各 Boss 阶段方案(可直接抄入 BossPhaseSet.ts)

以下 removes 中的整池列表即 §3.2 的换招技巧;cd 缺省 8s 不另写。

4.1 6101 兽人首领-双刀dps(血量,近战池)

// 10001 狂暴进化(已有):P2 换裂气斩、P3 加闪电斩 + 攻+20%
10001: {
    name: "狂暴进化",
    switches: [
        { trigger: { hp_pct: 70 }, adds: [{ s_uuid: 6102, overrides: { ap: 180 } }], removes: [6100] },
        { trigger: { hp_pct: 40, time: 60 }, adds: [{ s_uuid: 6103, overrides: { ap: 180 } }], attr_mod: { ap_pct: 20 } },
    ],
},
// 10002 嗜血连斩(追加式):双刀越挥越快,技能只加不换
10002: {
    name: "嗜血连斩",
    switches: [
        { trigger: { hp_pct: 70 }, adds: [{ s_uuid: 6103, overrides: { ap: 160 } }], attr_mod: { ap_pct: 15 } },
        { trigger: { hp_pct: 40 }, adds: [{ s_uuid: 6104, overrides: { ap: 180 } }], attr_mod: { ap_pct: 25, defense_pct: -10 } },
    ],
},
// 10003 换刃(换招式):每阶段换一把"刀",系数逐段上调
10003: {
    name: "换刃",
    switches: [
        { trigger: { hp_pct: 70 }, removes: [6100, 6101, 6102, 6103, 6104], adds: [{ s_uuid: 6101, overrides: { ap: 200 } }] },
        { trigger: { hp_pct: 40 }, removes: [6100, 6101, 6102, 6103, 6104], adds: [{ s_uuid: 6104, overrides: { ap: 220 } }], attr_mod: { ap_pct: 20, defense_pct: -15 } },
    ],
},

4.2 6102 兽人首领-坦克型(时间,近战池)

// 10010 重压觉醒(追加式):越久越硬,反击越痛
10010: {
    name: "重压觉醒",
    switches: [
        { trigger: { time: 30 }, adds: [{ s_uuid: 6100, overrides: { ap: 150 } }], attr_mod: { defense_pct: 20 } },
        { trigger: { time: 60 }, adds: [{ s_uuid: 6104, overrides: { ap: 180 } }], attr_mod: { ap_pct: 20 } },
    ],
},
// 10011 崩岩(换招式):外壳剥落,换进攻形态
10011: {
    name: "崩岩",
    switches: [
        { trigger: { time: 30 }, removes: [6100, 6101, 6102, 6103, 6104], adds: [{ s_uuid: 6102, overrides: { ap: 200 } }], attr_mod: { ap_pct: 15 } },
        { trigger: { time: 60 }, removes: [6100, 6101, 6102, 6103, 6104], adds: [{ s_uuid: 6104, overrides: { ap: 220 } }], attr_mod: { ap_pct: 25, defense_pct: -20 } },
    ],
},

4.3 6103 兽人首领-魔法师(时间,远程池)

// 10020 元素汇聚(追加式):元素逐一汇入,弹幕越来越密
10020: {
    name: "元素汇聚",
    switches: [
        { trigger: { time: 30 }, adds: [{ s_uuid: 6204, overrides: { ap: 150 } }] },
        { trigger: { time: 60 }, adds: [{ s_uuid: 6202, overrides: { ap: 150 } }], attr_mod: { ap_pct: 20 } },
    ],
},
// 10021 禁咒(换招式):每阶段念诵新禁咒,旧的被遗忘
10021: {
    name: "禁咒",
    switches: [
        { trigger: { time: 30 }, removes: [6150, 6151, 6200, 6201, 6202, 6203, 6204], adds: [{ s_uuid: 6201, overrides: { ap: 180 } }] },
        { trigger: { time: 60 }, removes: [6150, 6151, 6200, 6201, 6202, 6203, 6204], adds: [{ s_uuid: 6204, overrides: { ap: 200 } }], attr_mod: { ap_pct: 30, defense_pct: -15 } },
    ],
},

4.4 6104 兽人首领-射手(血量,远程池)

// 10030 箭雨升级(追加式):箭种逐段解锁
10030: {
    name: "箭雨升级",
    switches: [
        { trigger: { hp_pct: 70 }, adds: [{ s_uuid: 6150, overrides: { ap: 150 } }] },
        { trigger: { hp_pct: 40 }, adds: [{ s_uuid: 6151, overrides: { ap: 160 } }], attr_mod: { ap_pct: 20 } },
    ],
},
// 10031 狙击姿态(换招式):放弃弹幕,换单体重炮
10031: {
    name: "狙击姿态",
    switches: [
        { trigger: { hp_pct: 70 }, removes: [6150, 6151, 6200, 6201, 6202, 6203, 6204], adds: [{ s_uuid: 6203, overrides: { ap: 180 } }] },
        { trigger: { hp_pct: 40 }, removes: [6150, 6151, 6200, 6201, 6202, 6203, 6204], adds: [{ s_uuid: 6204, overrides: { ap: 200 } }], attr_mod: { ap_pct: 25, defense_pct: -15 } },
    ],
},

4.5 6105 亡灵首领-法师(时间,远程池)

// 10040 亡灵潮汐(追加式):毒雾与雷暴层层叠加
10040: {
    name: "亡灵潮汐",
    switches: [
        { trigger: { time: 30 }, adds: [{ s_uuid: 6202, overrides: { ap: 150 } }] },
        { trigger: { time: 60 }, adds: [{ s_uuid: 6204, overrides: { ap: 150 } }], attr_mod: { ap_pct: 25 } },
    ],
},
// 10041 灵魂爆发(换招式):燃尽旧躯壳换新法术
10041: {
    name: "灵魂爆发",
    switches: [
        { trigger: { time: 30 }, removes: [6150, 6151, 6200, 6201, 6202, 6203, 6204], adds: [{ s_uuid: 6200, overrides: { ap: 180 } }], attr_mod: { defense_pct: 15 } },
        { trigger: { time: 60 }, removes: [6150, 6151, 6200, 6201, 6202, 6203, 6204], adds: [{ s_uuid: 6204, overrides: { ap: 220 } }], attr_mod: { ap_pct: 30 } },
    ],
},

4.6 6106 亡灵首领-骑马战士(时间,近战池)

// 10050 冲锋陷阵(追加式):战马冲锋节奏渐强
10050: {
    name: "冲锋陷阵",
    switches: [
        { trigger: { time: 30 }, adds: [{ s_uuid: 6101, overrides: { ap: 160 } }] },
        { trigger: { time: 60 }, adds: [{ s_uuid: 6104, overrides: { ap: 180 } }], attr_mod: { ap_pct: 20, defense_pct: -10 } },
    ],
},
// 10051 背水一战(换招式):弃守转攻,每段更凶更脆
10051: {
    name: "背水一战",
    switches: [
        { trigger: { time: 30 }, removes: [6100, 6101, 6102, 6103, 6104], adds: [{ s_uuid: 6103, overrides: { ap: 200 } }], attr_mod: { ap_pct: 15, defense_pct: -10 } },
        { trigger: { time: 60 }, removes: [6100, 6101, 6102, 6103, 6104], adds: [{ s_uuid: 6104, overrides: { ap: 220 } }], attr_mod: { ap_pct: 30, defense_pct: -20 } },
    ],
},

4.7 6006 骷髅领主(血量,近战池)

// 10060 亡灵复苏(追加式):骨架越碎越硬
10060: {
    name: "亡灵复苏",
    switches: [
        { trigger: { hp_pct: 70 }, adds: [{ s_uuid: 6100, overrides: { ap: 150 } }], attr_mod: { defense_pct: 25 } },
        { trigger: { hp_pct: 40 }, adds: [{ s_uuid: 6102, overrides: { ap: 160 } }], attr_mod: { ap_pct: 15, defense_pct: 15 } },
    ],
},
// 10061 骷髅狂暴(换招式):拼装新武器,攻高防低
10061: {
    name: "骷髅狂暴",
    switches: [
        { trigger: { hp_pct: 70 }, removes: [6100, 6101, 6102, 6103, 6104], adds: [{ s_uuid: 6103, overrides: { ap: 180 } }] },
        { trigger: { hp_pct: 40 }, removes: [6100, 6101, 6102, 6103, 6104], adds: [{ s_uuid: 6104, overrides: { ap: 220 } }], attr_mod: { ap_pct: 25, defense_pct: -15 } },
    ],
},

4.8 heroSet.ts 挂载(phase_ids)

// 6101 双刀dps:  phase_ids: [10001, 10002, 10003],
// 6102 坦克型:   phase_ids: [10010, 10011],
// 6103 魔法师:   phase_ids: [10020, 10021],
// 6104 射手:     phase_ids: [10030, 10031],
// 6105 亡灵法师: phase_ids: [10040, 10041],
// 6106 骑马战士: phase_ids: [10050, 10051],
// 6006 骷髅领主: phase_ids: [10060, 10061],

§5 关卡节奏:前期教学 → 后期完整

现状约束:pickPhasePlan 从 phase_ids 均匀随机,无关卡维度;P3 阈值写死在方案里。

本版策略(零机制改动):

  • P3 阈值统一标准档(血量 40% / 时间 60s),不做关卡调节
  • 前期体验差异由数值自然产生:低关卡玩家 DPS 低、Boss 血量成长低,战斗更快结束, 时间型 Boss 的 P3(60s)在前期自然少见 → 符合"前期教学、后期完整"的意图
  • P3 新技能有 8s CD 真空期,残血/收尾阶段常来不及施放 → P3 实际强度比纸面温和, 前期偶发触发不致失控

后续迭代项(需小改 pickPhasePlan,不在本版): 按关卡号从 phase_ids 过滤"苛刻版/标准版/宽松版"方案副本 (前期 P3 血量 15% / 时间 75s 的副本方案,id 同段递增)。


§6 验证清单

  • validateBossPhaseSet() 全量通过(恰 2 切换点 / hp_pct 前缀递减 / time 递增 / 技能引用存在)
  • TestMode 逐个 Boss 跑一遍:追加式 P3 技能池 = 随机大招 + 2 个 adds;换招式 P3 技能池 = 仅 1 个 adds
  • 时间型方案实测:30s/60s 切换,90s 超时前 P3 至少施放 1 次新技能
  • 换招式验证:removes 整池后,RogueConfig 随机注入的大招确实消失(普攻不受影响)
  • 数值抽查:同 Boss 追加式 vs 换招式的 P3 阶段 30s 伤害量差距 ≤10%

§7 与外部设计稿的对照(借鉴 vs 放弃)

外部稿概念 本文处理 原因
4 主题 Boss(破阵先锋/雷巫/霜羽/磐盾) 映射到现有 6 Boss,按定位分触发维度 Boss 池由 heroSet 实际条目决定
phase_mode: clear_replace 字段 用 removes 列满定位大招池实现(§3.2) 实现为纯增量,delete 空键无副作用,零机制新增
property_mod.hp 血量修正 全部放弃,仅 ap/def 实现已排除 hp,避免血量同步歧义
P1→P2 固定 60s(时间型) 改为 30s 适配 BATTLE_TIMEOUT=90s,P3 需留收尾窗口
P2→P3 关卡三档调节(5%/20%/35%) 本版统一标准档,关卡调节列后续迭代 pickPhasePlan 无关卡维度,不为此改机制
英雄 lv 技能引用(lv8/lv16) 统一 SkillSet 6100~6204 + overrides.ap 口径 Boss 大招体系与英雄 lv 体系无关
阶段切换无敌帧/演出 维持空钩子 onPhaseExit/onPhaseEnter 表现层后续迭代,接口已预留
双模式强度对齐 ±5% 放宽到 ±10%,用 §3.3 口径对齐 缺数值模拟工具,先宽松后收敛
Boss 命名美学(方案名) 全部保留并适配(狂暴进化/禁咒/背水一战…) 与机制无关,直接采纳

版本:v1(2026-10-06,基于已实现机制重写) 关联文档:

  • 技术规格:docs/superpowers/specs/2026-10-06-boss-phase-system-design.md
  • 实现计划:docs/superpowers/plans/2026-10-06-boss-phase-system.md
  • 外部参考:y:\构思\像素大勇者-boss-阶段设计稿.md(仅理念借鉴)