文档设计(精英专属池批·文档线闭合): 敌人系统 v1.8→v1.9 新立「精英行」节——精英=现役敌种强化版独立行(行类 elite/独立 enemy_id/名字前缀「精英·」由行值承载/外显与内部定义一对多), 专属池=继承基础池(同关 battle 行类基础敌种深度带最小行的池模板, 继承不复制)+附加技清单(skill_id 不相交), 池构成纪律校验合并后池, 快照/冷却/保底/触发语义零改动, 暂不接线(寻址只取 battle/boss, elite 静置合法; 投放归遭遇编排待办); 调参表 row_kind 域扩 elite+新列 base_ref/pool_extra(仅 elite 必填, 其余行类禁填)+pool 列限 battle/boss; 验收标准增精英行条; P1 表个体化变体池窄化为同种分型(Beta)+新增精英接线/光环描边/钥石后置行。难度曲线与Boss v1.5→v1.6 精英修饰预留轴改指路精英行节+名称前缀归行值承载、光环描边随怪物设定批。待办清单精英专属池条目: 文档设计已闭合(敌人系统 v1.9)+待写卡, 改动面补游戏代码, 缺口删除。设计依据: 2026-11-06 用户裁 1B(池继承+附加层)/2 地精首只/草案 v0 点头。本步凭据: run_all_gates --docs 首跑 doc_term 红 1(「报错」退役词→改「返回错误」)→复跑 exit=0 验收通过无新增红; pipeline_gate 零红
This commit is contained in:
1 parent
b3f435434f
commit
86172f5429
3 files changed
+29
-12
No files matched your search
@@ -1,7 +1,7 @@
|
||||
# 难度曲线与Boss
|
||||
|
||||
> 一句话:难度曲线、期望值带与 Boss 设计
|
||||
> 状态:已定稿;现行为 v1.5
|
||||
> 状态:已定稿;现行为 v1.6
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
|---|---|---|
|
||||
| 关间台阶(关卡序号) | 每关至少投放一项新内容(新敌种或既有池新技能),加基准数值跳升 | 台阶必须能归因到看得见的变化,不是纯数字膨胀;投放断档是内容生产缺口,调参修补不了 |
|
||||
| 关内坡度(节点深度) | 同敌种数值平缓上移,深度也可表达为敌人成群 | 数量是比单体质变更优先的深度表达:保持技能池 EV 读数不变(权重即旋钮、EV 重锚顺带登记)、总量受控 |
|
||||
| Boss 与精英修饰(预留第三轴) | Boss 走最深深度直填行;精英只有字段命名空间预留 | Boss 不走修饰表;修饰乘数表 MVP 为空表、零行为,首个使用场景 = 精英节点(随[关卡节点地图](关卡节点地图.md)定稿联动);数值所有权在本系统,[棋盘生成](../排雷循环/棋盘生成.md)只按表生成。精英怪设定已登记预留(与其他普通小怪同一立绘 + 附加特征标记 + 数值更强;视觉特征三件 = 名称前后缀「精英·」+ 底座光环 + 描边变色,色板合规与样张闸义务随怪物设定批实装) |
|
||||
| Boss 与精英修饰(预留第三轴) | Boss 走最深深度直填行;精英怪本体走敌人表精英行(独立行+池继承附加,语义见[敌人系统](../战斗循环/敌人系统.md)「精英行」节),精英节点修饰只有字段命名空间预留 | Boss 不走修饰表;修饰乘数表 MVP 为空表、零行为,首个使用场景 = 精英节点(随[关卡节点地图](关卡节点地图.md)定稿联动);数值所有权在本系统(含精英行数值与附加技权重),[棋盘生成](../排雷循环/棋盘生成.md)只按表生成。精英怪设定:与其他普通小怪同一立绘 + 附加特征标记 + 数值更强;视觉特征三件 = 名称前缀「精英·」(由精英行名字行值承载)+ 底座光环 + 描边变色,后两件的色板合规与样张闸义务随怪物设定批实装 |
|
||||
|
||||
**结论**:关内坡度 = 每深一档同敌种基准上移,或按"深度也可表达为敌人成群"改由数量承载——单体生命随深度的具体走向以 `enemy.tres` 行值为准(数量优先于单体;s_hp 线性式为建模工具,现行行值不承诺随深度单调上移);关间台阶 = 相邻关同敌种基准乘 1.3–1.6(域语义如上;s_hp / k_L 现行行值读 `enemy.tres`,取值域归敌人表字段定义)。
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# 敌人系统
|
||||
|
||||
> 一句话:敌人数据、技能池出招、意图呈现
|
||||
> 状态:已定稿;现行为 v1.8
|
||||
> 状态:已定稿;现行为 v1.9
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -138,6 +138,20 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**技能错
|
||||
|
||||
举证:**摇定结果 = 可摇集合按权重份额归一的一次抽签;当前可摇集合 = 实例池排除冷却中与触发条件不满足的技能(保底命中时 = 条件满足的全部特殊技)。**连带可判别:把权重当固定百分比、把冷却当只锁高伤技、把蓄力当重击前奏,都是与本规约相悖的旧口径。
|
||||
|
||||
### 精英行:现役敌种的强化版,池=继承基础池+附加技
|
||||
|
||||
精英怪是某个现役敌种的强化版本:玩家看到的是同一种怪(同立绘、名字带「精英·」前缀),数值更强、出招多几样。它在敌人表里是独立的一行——自己的 enemy_id、自己的数值、自己的专属池,和基础敌种的行互不覆盖;外显与内部定义因此可以是一对多(一个外观对应基础行与精英行两份定义)。精英身份由行类承载:敌人表行类新增 elite 值。
|
||||
|
||||
| 规则 | 含义 |
|
||||
|---|---|
|
||||
| 独立行 | 精英=敌人表行类为 elite 的一行,enemy_id 独立、不与基础敌种同名;名字前缀「精英·」由该行名字行值承载。数值字段(生命、攻击、护甲两轴、数量)与战斗行同一套定义与取值域 |
|
||||
| 基础敌种引用 | 精英行用基础敌种引用字段指向一个基础敌种的 enemy_id;被指敌种必须在同关战斗行类里存在,指向不存在的敌种或另一条精英行,加载期拒绝 |
|
||||
| 专属池=继承+附加 | 精英行不写自己的池模板,只写附加技清单({skill_id, weight} 数组);它的池模板=基础池+附加技合并。基础池取自同关、战斗行类、该基础敌种深度带最小的那一行的池模板——继承不复制:基础池调参自动传到精英。附加技的 skill_id 与基础池重复,加载期拒绝 |
|
||||
| 合并池过同一纪律 | 池构成纪律(恰一普攻、增益 ≤1、妨害 ≤1、至少一行无条件特殊技、悬空引用致命、权重域)校验的对象是合并后的池;开战快照、实例池、冷却、保底、触发条件语义全部不变——精英实例拿到的就是合并后池的快照 |
|
||||
| 暂不接线 | 精英行落表即合法;开战寻址只按节点类型取战斗或 Boss 行集,精英行在接线前不会被任何节点读到,静置合法、不返回错误。精英遭遇怎么投放到节点,归待办清单「战斗节点遭遇编排方式」条目 |
|
||||
|
||||
举证:**精英池模板 = 基础池条目 ∪ 附加技条目(两者 skill_id 不相交)**;中签率公式不变,可摇权重合计含附加技权重——加附加技会摊薄基础池各技能的中签率,EV 重锚归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)。各精英行的数值与附加技行值读敌人表(`enemy.tres`),本文不登记。
|
||||
|
||||
### 触发条件:情境技与闩型解锁共用一套门槛
|
||||
|
||||
技能行可以带一个触发条件:条件不满足的拍,这行技能不进可摇集合——与冷却中的排除同一待遇;条件满足时,按正常权重照摇。它服务两类出招:情境技(自身低血才用的防御、上轮玩家停手才会出的偷袭等)让怪物像在"看情况出招",停手与压血因此有了代价;闩型解锁(半血解锁)让大招只在血量跌破阈值后才可被摇出。两类用例、一套机制——条件只管"现在能不能被摇到",不改权重、不强制出手。
|
||||
@@ -236,7 +250,8 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**技能错
|
||||
| 优先级 | 内容 | 后置原因 |
|
||||
|---|---|---|
|
||||
| P1 | 情境条件触发器(低血触发防御、玩家停手时偷袭技等) | 已实装(三 Boss 闩型+两示范投放,见「触发条件」节与「首批落地」段) |
|
||||
| P1 | 个体化变体池(A 型好斗 / B 型守势、精英专属池) | 共识点 A 的 A2 案;登记[待办清单](../../../../待办清单.md) |
|
||||
| P1 | 个体化变体池(同种个体分型:A 型好斗 / B 型守势) | 共识点 A 的 A2 案;排期 Beta,登记[待办清单](../../../../待办清单.md) |
|
||||
| P1 | 精英遭遇接线、精英底座光环与描边变色、精英钥石掉落 | 精英行已落表静置(见「精英行」节);接线归[待办清单](../../../../待办清单.md)「战斗节点遭遇编排方式」条目,视觉二件随怪物设定批,钥石随接线批 |
|
||||
| P1 | 全局特殊间隔旋钮 | 特殊技背靠背实测仍嫌时的备用闸;登记[待办清单](../../../../待办清单.md) |
|
||||
| P1 | 新效应词汇(妨害技 + 必中附加分量已实装——实装面 = L2 Boss 卓尔;多段命中经用户拍板退役) | 妨害类型 + rider_mult 字段已落地;登记[待办清单](../../../../待办清单.md)(已解决移除,去向见状态记录) |
|
||||
| P1 | 敌种扩容与投放节奏(含第二关池与投放) | 投放节奏是关卡命脉,归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||
@@ -253,7 +268,7 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**技能错
|
||||
| 参数 | 取值域 | 说明 |
|
||||
|---|---|---|
|
||||
| level_index(关卡序号) | int ≥ 1 | 行集坐标第一维:第几关;每关必有战斗类、深度带 0 的一行(锚行)与至少一行 Boss 类行——加载校验强制;关间台阶的坐标轴,行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||
| row_kind | {battle, boss} | 行类:battle = 战斗节点配池(非 Boss 的战斗节点一律取此类),boss = 终点行集——Boss 战按终点配置,多终点各配一行(走哪条路决定打谁);开战按节点类型取对应类的行集 |
|
||||
| row_kind | {battle, boss, elite} | 行类:battle = 战斗节点配池(非 Boss 的战斗节点一律取此类),boss = 终点行集——Boss 战按终点配置,多终点各配一行(走哪条路决定打谁);elite = 精英行(见核心规则「精英行」节,接线前不被任何节点读到);开战按节点类型取对应类的行集 |
|
||||
| depth_band | int ≥ 0 | 深度带 = 节点深度所在的区间(定义见核心规则「行集构成纪律」):配池按带不按点,难度坡随带递增;节点深度落在带与带之间时取首个 ≥ 深度的带键(偏难一侧);越顶带加载校验判为调参事故;带键投放归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||
| unit_count | [1, 3] | 遭遇数量区间下界;有上界的行开战时在区间内掷定,教学位节点同样掷骰 |
|
||||
| unit_count_max | [unit_count, 3],可省略 | 数量区间上界;开战时在区间内掷定本战实际数量;缺省 = 定值 |
|
||||
@@ -263,7 +278,9 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**技能错
|
||||
| armor_class(护甲等级) | int [0, 999],缺省 0 | 防守方护甲等级——基础攻击掷点的折扣判定读数,掷点结算归[战斗结算](战斗结算.md);与 armor_type(克制属性轴)两概念禁止混用;行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||
| hp | [1, 999] | 单位生命基线(难度修饰前) |
|
||||
| atk | [0, 999] | 攻击基线 |
|
||||
| pool(池模板) | {skill_id, weight} 数组,weight ∈ (0, 9999] | 技能行引用在技能表;池构成纪律与悬空引用加载期拒绝(校验在数据配置跨表通道) |
|
||||
| pool(池模板) | {skill_id, weight} 数组,weight ∈ (0, 9999] | battle / boss 行必填、elite 行禁填;技能行引用在技能表;池构成纪律与悬空引用加载期拒绝(校验在数据配置跨表通道) |
|
||||
| base_ref(基础敌种引用) | enemy_id 字符串 | 仅 elite 行、必填(其余行类禁填);须指向同关 battle 行类存在的敌种,悬空或指向 elite 行加载期拒绝 |
|
||||
| pool_extra(附加技清单) | {skill_id, weight} 数组,weight ∈ (0, 9999],非空 | 仅 elite 行、必填(其余行类禁填);skill_id 与基础池不相交;合并后池过池构成纪律 |
|
||||
|
||||
技能表(全局单表,技能行主键 skill_id):
|
||||
|
||||
@@ -305,6 +322,7 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**技能错
|
||||
- 表校验:越域值、池权重 ≤ 0、空池、普攻配倍率/冷却、池增益 > 1、skill_id 悬空、行集构成违例(行集内同敌种第二行 / 同带键多行不相邻)均在加载期返回错误并止动;域内合法极端(攻击基线 0)不拒;主角表恰一行、攻击配 0 拒绝。
|
||||
- 零随机回放:同一动作与受击序列驱动两个独立实例,存活投影、逐实例摇定轨迹、顺位返回序列逐项相同。
|
||||
- 表实一致:敌人表、主角表、技能表三张配置表的字段与各自字段定义逐字段一致。
|
||||
- 精英行:elite 行的池模板 = 基础池(同关、战斗行类、基础敌种深度带最小行)+附加技清单,开战快照拿到合并后池;基础池改表后精英合并池随之改变;elite 行落表时任何战斗节点与 Boss 节点开战都不读到它;elite 行缺基础敌种引用或附加技清单、基础敌种引用悬空或指向 elite 行、附加技与基础池 skill_id 重复、合并池违反池构成纪律、elite 行写自己的池模板、非 elite 行写基础敌种引用或附加技清单——均在加载期返回错误并止动。
|
||||
|
||||
## 待办
|
||||
|
||||
|
||||
@@ -79,14 +79,13 @@
|
||||
|
||||
#### 精英专属池(2026-11-06 登记,来源=会话提及)
|
||||
|
||||
**实况**:精英怪带自己的技能池;精英现行只是预留概念——战斗侧无精英位(敌人表仅 battle/boss 两类行),节点图无精英节点类型,寻址纯坐标(关卡×深度带,无按节点配行的通道)。排期 Alpha(现行里程碑内完成)。
|
||||
**实况**:精英怪本体(独立行+elite 行类+池继承基础池加附加技+暂不接线),首只=地精精英;排期 Alpha(现行里程碑内完成)。投放接线归战斗节点遭遇编排方式条目。
|
||||
- 设计定稿:`design/gdd/systems/战斗循环/敌人系统.md` v1.9(「精英行」节+调参表三字段+验收标准精英行条)
|
||||
- 相关文档:`design/gdd/systems/冒险循环/难度曲线与Boss.md` v1.6(精英修饰预留轴指路与视觉三件分工)
|
||||
|
||||
**缺口**:还差精英怪本体的设计讨论——精英在战斗侧怎么标识(含暂不接线的承载方式)、专属池与普通池差在哪。投放接线归战斗节点遭遇编排方式条目。
|
||||
- 相关文档:[敌人系统](design/gdd/systems/战斗循环/敌人系统.md)(P1)与[关卡节点地图](design/gdd/systems/冒险循环/关卡节点地图.md)(精英节点 P2)+[难度曲线与Boss](design/gdd/systems/冒险循环/难度曲线与Boss.md)(精英修饰预留轴)
|
||||
**改动面**:文档+游戏代码
|
||||
|
||||
**改动面**:文档
|
||||
|
||||
**状态**:待文档设计
|
||||
**状态**:文档设计已闭合+待写卡
|
||||
|
||||
#### 战斗节点遭遇编排方式(2026-11-06 登记,来源=会话提及)
|
||||
|
||||
|
||||
Reference in new issue
Block a user