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.
15 KiB
15 KiB
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(近战池 6100
6104 / 远程池 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(仅理念借鉴)