Files

18 KiB
Raw Permalink Blame History

地形变异

一句话:格子的非雾变异(荆棘丛/藤蔓缠绕/岩浆/烬覆/落石/矿尘)与 Boss 图整图变异(贫矿脉),挖掘中可遭遇的地貌偏离 状态:已定稿;现行为 v1.3

设计目的

地形变异是一个定义层的框架:它允许给棋盘上的格子挂上"变异"标记,让某片格子在基础扫雷规则之外多一层玩家在挖掘中可遭遇的偏离。没有这个框架,关卡之间的差异只能靠雷的数量单调缩放,"每关解锁新元素"的推进感和越深越险的地貌变化都无处安放。

变异带来的行为改变发生在数据侧:格子只是多携带一条数据,读取到它的系统按数据行动,规则本体一个分支都不加。变异类型按各关地形背景定稿(第一关平原/密林基线:荆棘丛 + 藤蔓缠绕;第二关幽暗地域:岩浆 + 烬覆;第三关灰矮人矿城:落石 + 矿尘——幽暗地域最深层),机制全部经由「效果 / 触发 / 布置约束」三枚举声明——新增类型 = 清单加行 + 必要时扩充枚举词表,不改读取方。

系统范围

边界这样划:地形变异只管"变异是什么、以什么形式存在、遵守什么纪律"。变异怎么随战斗初始化布置归战斗结算的编排序;挖格、封印、连锁展开怎么执行归排雷玩法。

负责:

负责 说明
变异框架本体 变异类型清单的登记结构:要加一类变异,就在清单里加一行声明,不改代码
数据侧行为约定 变异是格子的只读数据,随图生灭;读取方按数据行动
零特判原则 禁止任何系统为变异改写扫雷规则本体——框架的承重约束(见核心规则)
枚举抽象 每类变异以「效果(effect)/ 触发(trigger)/ 布置约束(placement)」三枚举声明机制;读取方按枚举路由,不按类型名分支
反制道具配套义务 已作废(2026-10-03 用户终裁)——反制道具本体归秘宝:同调位反制件=冒险周期常驻资源对抗关卡周期局部威胁,层级错配,设计废弃(详见下文 §反制道具配套义务 节注记)

不负责:

不负责 归谁
布置的编排时点与算法执行(变异格赋予在棋盘设置顺序第 4 步) 战斗结算(编排段执行面);布置参数数值归难度曲线与Boss
挖格、封印、连锁展开的规则本体 排雷玩法
反制道具的效果、时效与定价 秘宝
数值表本体与读取机制 数据配置
界面呈现(数字遮蔽的渲染执行) HUD 框架
教学口径 教学引导

在核心循环中的位置

棋盘生成 ──▶ 打开状态初始化(初始展开)──▶ 地图战斗资源格设置 ──▶ 变异格设置 ──▶ 挖掘阶段:读取方按数据行动

棋盘设置顺序(2026-09-19 用户拍板):生成棋盘 → 棋盘打开状态的初始化 → 战斗资源格的设置 → 变异格的设置。变异格赋予在最后一步,天然不落初始展开已开区——伤害型「只出现在未打开的格子」的布置约束由该顺序结构保障,不靠生成器回溯排除。变异自己不下达任何指令——挖格、封印、连锁展开仍按排雷玩法的规则执行,变异的全部影响都经由格子数据产生。

核心规则

变异框架与类型清单

每种变异是配置表里的一行具名声明。框架自身不含任何运行时逻辑——变异带来的行为改变,发生在"读取方读到什么数据、按什么约定行动"的交集里。要加一类变异,就在清单里加一行声明,而不是改代码;读取方(战斗结算 / 呈现层)按三枚举路由,不按类型名分支。

变异的生命周期是随图生灭:变异是棋盘格的只读属性,在战斗初始化末段布置、随棋盘实例存在;清图换图或战斗结束时随图消亡。布置之后生效期没有任何运行时写入,也没有跨图存续——新图重新布置。

清单现行登记七个类型,两轴 × 三关(region 六行)+ 首个整图型(global 一行):

类型名 作用域 效果 触发 布置约束 解锁 地形 伤害量
荆棘丛 region 直伤(flat_damage) 被打开即触发(on_open) 只落未开格(closed_only) 第 1 关 dungeon 1
藤蔓缠绕 region 数字遮蔽(hide_number) 打开且显示数字时(on_number_shown) 任意格(any) 第 1 关 dungeon —
岩浆 region 直伤(flat_damage) 被打开即触发(on_open) 只落未开格(closed_only) 第 2 关 underdark 2
烬覆 region 数字遮蔽(hide_number) 打开且显示数字时(on_number_shown) 任意格(any) 第 2 关 underdark —
落石 region 直伤(flat_damage) 被打开即触发(on_open) 只落未开格(closed_only) 第 3 关 deep_underdark 3
矿尘 region 数字遮蔽(hide_number) 打开且显示数字时(on_number_shown) 任意格(any) 第 3 关 deep_underdark —
贫矿脉 global 资源面偏斜(resource_face) 整图恒在(always) 任意格(any,无格子布置域) 第 2 关 通配(∅) —

机制口径:

  • 伤害型:挖开变异格(含连锁揭示,chain 通道同口径)在轮末结算逐行兑现扣生命——地形后果同挖雷口径,非奖励、封印格直挖不作废;危险格恒不吃变异(双层叠罚污染逐行归因,首版排除)。
  • 信息型:已开且显示数字时该格真实数字不呈现(呈现层读取遮蔽;挖掘规划被迫降级为盲区推理)。呈现层读取不回灌规则本体——模拟试玩走查询面、不经遮蔽,读数口径不受影响。
  • 直伤量为加法核小整数(effect_value ∈ [1,9],行值 provisional 归难度曲线与Boss);每格携带单类型单 id。
  • 变异格未开时无预告呈现(遭遇式;视觉标识归表现层升级批)。

候选池门控(框架级现行机制):一种变异要进入本关的布置候选,须同时满足三个条件——它的解锁关号不大于当前关卡序号(直接整数比较)、它声明的地形(board_types)与本地形有交集(声明为空集等于通配)、且节点身份匹配(scope=global 行仅 Boss/精英节点入池,普通战斗节点静默跳过;elite 系前向词位,现行零表行)。候选池为空是合法状态:静默布置一张无变异的普通图,不返回错误、不警告。门控谓词与取值域见本文候选池门控节与变异表字段定义。

全局作用域型(scope=global——Boss 图整图变异)

region 型变异是「格子级」的:布置段往候选格域写格子快照。global 型变异是「整图」的:整图一个类型生效,不落任何格子(棋盘持有整图变异记录,逐格变异记录恒空)。每图一型的整图推广(2026-10-04 用户裁决):普通图带 region 片,Boss/精英图带 global 型——两类图各自至多一型。

替换制:Boss/精英图命中全局型时,布置段跳过 region 布置(该图既无 region 片、也无格子级变异标记)——L2 完美 Boss 承伤已越 ≤50% 带,region 叠全局的叠加制火上浇油,不采纳。兜底回落:Boss/精英图的全局候选池为空时(含第 1 关 Boss 解锁门控未达=免疫,第 1 关是过滤器不是墙的教学保护)回落 region 布置(保守向后兼容,防配置缺行静默裸奔——provisional)。

恒定制:第 2/3 关 Boss 图 100% 带一型(非掷定结果——配置事实;全局取用确定性,不消费布置随机流=零取号合法态)。首发型=贫矿脉(skewed_veins):资源面偏斜(resource_face)——整图修正资源摇号分布,不动任何格子数据、不动生成端:进攻族(增伤/爆裂/穿刺/奥术)权重等比上浮,生存族(回血/护甲)权重按 effect_value% 下调,白名单三行(削弱/GP/行动点)恒不动,下调量按进攻族原权重比例重分配、正向池合计恒 77。玩家体验=回复与护甲类资源出现频率下降、攻击类资源出现频率上升(生存资源变薄、进攻资源变肥),玩家转向用进攻续命的主动策略——不是纯挨打。第 2/3 关两关同型(关间台阶由第 3 关既有新内容满足)。清图槽(clear_default/clear_blast)是独立池,不受偏斜影响。资源投影的执行面(摇号前权重合成、合成序=图级先件级后)归地图战斗资源。

三层预告(整图语义=规则级偏离,藏着等于暗改规则——区别于 region 遭遇式口径):①开战横幅一行(整图变异非空时显示)②HUD 常驻角标(战斗全程可见防中局遗忘,空态隐藏)③帮助手册一行(零交互教学)。呈现承载归 HUD 框架。

零特判原则(承重约束)

变异禁止改写扫雷规则本体:挖格、封印、连锁展开的判定与执行不增加任何变异分支,代码里不允许出现"这格带某变异所以就……"。这是框架的承重约束——它保证每加一类变异都不需要回头修改规则本体,玩家面对的也始终是同一套扫雷规则,而不是一套到处开洞的例外。

交互全部走数据侧:规则本体只读取格子数据并按数据行动,变异的全部影响经由数据与读取方之间的约定产生(伤害型由战斗结算兑付、信息型由呈现层遮蔽)。若未来某类变异的机制确实需要规则本体做出区分,那是一次同时修订排雷玩法与本文的正式变更,不是框架默认允许的能力。

布置段(战斗初始化第 4 步)

变异在战斗初始化末段布置:初始展开完成、地图战斗资源格设置之后,由战斗结算的编排段执行。候选池非空时从池内均匀选一类型,按布置参数生长连通片写入格子快照:

  • 数量 = round(候选池格数 × percent_of_cells / 100) + (关卡序号 − 1) × per_level_bonus(两参数现行值读变异表——百分比的基数是候选池格数而非总格数:初始展开通常占全板过半,按总格数取数会使变异在剩余可挖格中的实际密度远超配置值(2026-09-21 用户拍板基数修正);percent 承载"占可挖格比例",关卡递增由 per_level_bonus 绝对格数承载"越深越险";provisional 归难度曲线与Boss)。
  • 形状 = 全连通生长(8 邻),单片格数落在 [pack_min, pack_max] 内(两端读变异表;2026-09-19 用户拍板形状约束)。
  • 候选格域 = 安全格 − 初始展开区,且排除危险格。
  • 布置取数走专用随机流(variant_place,一板恰一 scope),换图/轮内刷新图各取号一次,确定性可复放。
  • 生成器管线不布置变异(产物恒零变异格)——布置域的"未开"语义由设置顺序保障。
  • 全局作用域型决议:Boss/精英图的全局型在装板序内前置于资源格设置之前决议(图级偏斜旋钮须在资源摇号前定型;全局门控与板无关,确定性取用不消费 variant_place 流)——命中即写整图字段并跳过本步的 region 布置(替换制);未命中则本步按上列规则原样执行(含兜底回落)。普通图路径零改动。

反制道具配套义务

【已作废——2026-10-03 用户终裁】 反制道具不再作为变异的配套义务:"反制"作为道具的一个维度,由秘宝的五维度框架承接,效果、时效与定价归秘宝定稿;类型行 counter_items 字段位已预留。

终裁理由(2026-10-03):同调目录(局外装配、伴随整局、稀缺槽位)对抗按关绑定的局部威胁(unlock_level 关绑定)属层级错配——「拿冒险循环的东西对抗关卡循环」,等同做一个只对第三关生效的道具,其余关卡全部用不上;且关卡序列与变异分布固定,装配时信息完备,反制选牌退化为查表必带清单,坍缩随机构筑多样性。

处置:①counter_items 字段保留恒空(合法态),承载形态待双层 BD 调研仲裁后重定——变异应对若做,只挂局内、贴近威胁出现的决策点;②变异=受控纯税现状维持,不再以反制道具为唯一兑现路径。

依赖与输出

依赖面很窄:上游只有数据承载与布置执行位,下游是对读取方与配套道具的义务声明。这张表同时是删除概念时的影响面清单。

方向 系统 接口要点
上游 数据配置 变异类型清单的表结构承载与统一读取;本系统是清单内容的回填责任方
上游 战斗结算 布置段的编排执行位(棋盘设置顺序第 4 步)+ 伤害型兑付面(轮末结算逐行兑现)
下游 排雷玩法 零特判义务的承接方:执行逻辑不按变异分支,只按格子数据行动
下游 秘宝 五维度框架"反制"维度的承接方——配套义务已作废(2026-10-03 终裁),维度承载待双层 BD 调研重定
相邻 行动经济 "地形成本修饰"价目钩子(不同格子不同价)暂缓启用,待变异类型扩展(见该文档 P1/P2 后置)

P0 最小闭环

首批类型已定稿,P0 空清单口径降为候选池空白的合法态描述:

  1. 候选池为空是合法状态(如门控双闸都筛空):配置加载零错误、零警告,该图行为与不存在本系统时完全一致。
  2. 框架就位指清单的登记结构与读取通道可用,向清单加入一行类型即应生效、不需要改动代码(枚举词表内)。

P1 / P2 后置

优先级 内容 后置原因
调研前置 反制路径重定(counter_items 回填义务已作废) 2026-10-03 用户终裁:同调位反制件=层级错配失败设计,义务作废;变异应对是否以局内形态补入,待双层 BD 调研仲裁后重新立项
Alpha 已落地 全局作用域变异(精英/Boss 图整图生效的变异形态) 现行型=贫矿脉(资源面·微贫向偏斜,替换制/恒定制/L1 Boss 免疫/三层预告);裁决全录见 git 提交史;带 A 杠杆注册全局难度批(Beta 阶段,未排期)读数只测不判;精英图留词表前向位(现行零表行)
P2 "地形成本修饰"价目钩子启用 由行动经济持有;启用须随变异类型扩展,与行动经济重议按格定价的接口
P2 变异解锁节奏复核 "每关至少引入一个新元素"的推进节奏,随难度曲线与Boss定稿复核
P2 变异格视觉标识与预告呈现 首批为遭遇式(未开无预告);标识位随表现层升级批

调参表

参数 取值域 归属
布置数量基数 percent_of_cells percent [0, 50](候选池格数百分比,2026-09-21 基数修正);现行值读 variation.tres 表头 难度曲线与Boss(provisional)
关卡递增 per_level_bonus int [0, 9] 格/关;现行值读 variation.tres 表头 难度曲线与Boss(provisional)
连通片下限 pack_min int [1, pack_max];现行值读 variation.tres 表头 形状约束:单片至少几格连通成片,与 pack_max 合为成包尺寸域
连通片上限 pack_max int [pack_min, 9];现行值读 variation.tres 表头 定稿值(2026-09-19 用户拍板形状约束)
直伤量 effect_value 荆棘丛 1 / 岩浆 2 / 落石 3 难度曲线与Boss(provisional,加法核 [1,9])
资源面偏斜 effect_value 贫矿脉 30(生存族下调百分比;0=中性 off 锚;总期望微降 3-5% 为 provisional 设计目标——精确方向与幅度归读数批判读只测不判) 难度曲线与Boss(provisional,域 [0,50])

变异表字段集的现行口径(字段定义归变异表,条目归属即表行):标识 / 玩家可见名 / 解锁关号 / 作用域 / 效果 / 效果量 / 触发 / 布置约束 / 地形(board_types)/ 反制道具绑定(counter_items,恒空保留——承载形态待双层 BD 调研重定)。

验收标准

  • 候选池空合法:门控筛空(池空或候选域碎片化不足)时静默零布置,配置加载零错误、零警告。
  • 零特判(负验收):排雷玩法的挖格、封印、连锁展开执行路径中不存在任何按变异类型分支的代码;读取方按 effect/trigger/placement 枚举路由。
  • 数据生命周期:格子携带的变异是只读数据——战斗初始化末段布置、随图消亡,布置后零运行时写入,无跨图存续;生成器产物恒零变异格。
  • 布置域:变异格全在初始展开区外(伤害型 closed_only 由设置顺序结构保障)且不吃危险格;每图至多一种类型;连通片格数落在 [pack_min, pack_max] 内。
  • 配套义务闭环(已作废,2026-10-03 终裁):反制兑现不作为验收条目;counter_items 恒空为合法态。
  • 全局作用域型:替换制生效——Boss 图恰一行整图变异+零格子级变异标记;普通图 region 路径逐位不变;off 态零扰动(effect_value=0 资源摇号与无偏斜逐位相同,白名单三行任何状态逐位不动);L1 Boss 零全局变异;Boss 图全局池空回落 region;全局取用零取号(确定性,不消费布置随机流);资源面偏斜正向池合计恒 77。