Merge branch 'term-refresh-20261018'
This commit is contained in:
commit
0b52ecbb11
49 files changed
+345
-205
No files matched your search
@@ -26,7 +26,7 @@
|
||||
| 条款 | 对出图的具体要求 |
|
||||
|---|---|
|
||||
| 一句话视觉规则 | 明快的地牢,轻快的扫荡,仔细的推理——**明亮像素幻想,全年龄,非暗黑**,角色 2~3 头身 |
|
||||
| 原则一「预告上格」 | 格内绘制优先级 **数字(含色牌)> 小人 > 旗 > 变异纹带 > 装饰变体 > 底色**;任何元素禁止遮挡数字字形区;类型微光为底效泛光层,不入遮挡栈 |
|
||||
| 原则一「预告上格」 | 格内绘制优先级 **数字(含色牌)> 小人 > 封印印记 > 变异纹带 > 装饰变体 > 底色**;任何元素禁止遮挡数字字形区;类型微光为底效泛光层,不入遮挡栈 |
|
||||
| 原则二「明亮为皮,明度分档为骨」(v3.0) | 暖倾向;数字亮墨直画已开格底(候选亮墨 L≥0.55 / 已开底 L 0.20–0.32,样张 v3 冻结),对比 ≥4.5:1;色牌 `#F5EAD3` 降级为复杂格底后备(牌上深墨 L≤0.027);未开格底 L≥0.30、HSV 饱和 ≤0.55 |
|
||||
| 原则三「一砖一世界」 | 变体优先换色板不加新资产;危险状态必须**形状+颜色双通道**(色弱灰度可辨) |
|
||||
| 类型预读单通道(§4.6.3) | 未开格 = **类型常显微光**(五组色带 §4.2:芥末黄/黄绿/青/紫罗兰/绯红,色相+明度双码,均候选值,避 300°–345° 禁入带,样张批冻结);不呈现极性、不泄危险格与安全格〔角嵌形状通道 2026-09-28 退役——用户裁微光格只留微光〕 |
|
||||
@@ -115,7 +115,7 @@
|
||||
- **联动**:正式节点图 UI 设计未成文(登记待办:排秘宝内容批后与美术批同期待拍板);HUD框架义务清单漏「关卡节点地图」行,顺带补。
|
||||
- **现状**:程序化占位,够试玩。
|
||||
|
||||
### 3.3 雷 / 旗 / 数字格面像素化 ⚙
|
||||
### 3.3 雷 / 封印印记 / 数字格面像素化 ⚙
|
||||
|
||||
- **要什么**:格子样张通过后按冻结参数出全套砖面资产(含图类型换色板组)。
|
||||
- **来源**:⚙ 脚本管线自产——未开/已开/危险格/变异纹带是扫雷专属语义〔角嵌纹样 2026-09-28 退役〕,素材站没有对的;砖面**纹理底噪**可 ♻ 用 CC0 无缝石/土纹理作脚本管线的纹理输入,量化到色板(混合路线)。
|
||||
@@ -165,7 +165,7 @@
|
||||
## 6. 执行顺序(依赖链)
|
||||
|
||||
```
|
||||
格子样张(1.1) ──┬─> 雷旗数字格面(3.3)
|
||||
格子样张(1.1) ──┬─> 雷/封印印记/数字格面(3.3)
|
||||
│
|
||||
战斗一屏样张(1.2) ──> 角色终稿(2.1/2.2) ──> 意图动画三档(2.3) ──> 演出类(P4)
|
||||
│
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
### 2.1 挖掘阶段(核心状态,占时最长)
|
||||
|
||||
- **主情绪**:棋手式清明专注——视线始终被数字牵引,画面无一处杂音抢焦;久推不生视觉疲劳
|
||||
- **色彩性格**:暖石色低饱和打底(世界中层),高饱和高亮只属于信息面层(数字与旗)
|
||||
- **色彩性格**:暖石色低饱和打底(世界中层),高饱和高亮只属于信息面层(数字与封印印记)
|
||||
- **氛围形容词**:清爽、井然、可读、耐心
|
||||
- **能量**:2/10
|
||||
- **承载元素**:可挖域**接触带呼吸微光**——光画在英雄格周界的接触面上(正交邻墙=整条边,斜向邻墙=共享角点+向两侧各延伸半条边,画法 §3.2,蓝族色 §4.2)——画面里唯一在动的,是玩家的思路
|
||||
@@ -89,7 +89,7 @@
|
||||
- **色彩性格**:情绪不走明度(§2 禁令),色彩转向金橙主导、饱和拉高;数字色转译为弹道色沿行推进
|
||||
- **氛围形容词**:酣畅、递进、一气呵成
|
||||
- **能量**:7/10,随连击爬升
|
||||
- **承载元素**:兑现光带逐行横扫棋盘,开格化箭雨、旗化暴击砸向敌人,因果全程可见可归因
|
||||
- **承载元素**:兑现光带逐行横扫棋盘,开格化箭雨、印记化暴击砸向敌人,因果全程可见可归因
|
||||
|
||||
### 2.3 清图奖励与换图
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
- **色彩性格**:全屏饱和峰值:金粒喷泉与彩纸迸发,饱和瞬时拉满后回落;明度不动(§2 情绪禁令)
|
||||
- **氛围形容词**:丰收、轻快、干脆
|
||||
- **能量**:8/10,尖峰后速降
|
||||
- **承载元素**:最后一格碎砖中喷出的金币喷泉,叮当落入 UI 钱袋
|
||||
- **承载元素**:最后一格碎砖中喷出的 GP 喷泉,叮当落入 UI 钱袋
|
||||
|
||||
### 2.4 战斗胜利
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
- **色彩性格**:情绪不走明度(§2 禁令),色相转暖灰掺暮蓝;全作禁血红与黑场,唯此一拍最静
|
||||
- **氛围形容词**:惋惜、安静、余温、可再来
|
||||
- **能量**:1/10
|
||||
- **承载元素**:小人坐在碎砖上摇头掸灰,插过的旗(封印印记)逐面化作光点收回行囊
|
||||
- **承载元素**:小人坐在碎砖上摇头掸灰,落下的封印印记逐枚化作光点收回行囊
|
||||
|
||||
### 2.6 Boss 与精英遭遇
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
|
||||
### 状态间区分度自检
|
||||
|
||||
推理与兑现靠「谁在动 + 饱和」区分:挖掘时棋盘静止,唯光标微光在动、高饱和只在数字上;结算时棋盘自体运动,金色光带横扫、饱和扩散至全屏。胜利与失败以**色相**即判(金蜡封对暮蓝收旗),Boss 战以紫赤色相是否登场作标记。
|
||||
推理与兑现靠「谁在动 + 饱和」区分:挖掘时棋盘静止,唯光标微光在动、高饱和只在数字上;结算时棋盘自体运动,金色光带横扫、饱和扩散至全屏。胜利与失败以**色相**即判(金蜡封对暮蓝收印),Boss 战以紫赤色相是否登场作标记。
|
||||
|
||||
(风险呼应:自动战斗过场化 → 2.2 可见兑现与爆发支点;「我算对了」缺高光 → 2.2 爆发支点;全年龄失败表现 → 2.5 有分量不压抑。)
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
|
||||
> 尾注「←」同第 3 节:P1–P4=支柱(P1 推理的掌控感/P2 规划的延迟兑现/P3 风险与收益同源/P4 地牢下探隐喻,语义见 §1.2「锚定」注);原一/二/三=1.2 支撑原则;§x=对应节。本节只定用色;凡涉具体变异、状态种类之处一律「待 GDD 定夺」,只规定"若有,则如何用色"。
|
||||
|
||||
**总纲|彩为世,墨为信**:逻辑信息(数字、UI 数据、物件轮廓)一律用**近黑暖墨族**;世界与物件(砖、旗面、金、氛围)用彩。墨管可读,彩管气质。←原一/原二;§3.3
|
||||
**总纲|彩为世,墨为信**:逻辑信息(数字、UI 数据、物件轮廓)一律用**近黑暖墨族**;世界与物件(砖、封印面、金、氛围)用彩。墨管可读,彩管气质。←原一/原二;§3.3
|
||||
|
||||
### 4.1 主色板
|
||||
|
||||
@@ -239,7 +239,7 @@
|
||||
|
||||
1. 已开 vs 未开:§3.2 完整/碎裂形承载,无需另加
|
||||
2. 已开 vs 变异格:纹带形状通道,灰度截图可辨,无需另加
|
||||
3. 旗 vs 巢穴(危险格):旗形物件对砖面巢穴纹,无需另加
|
||||
3. 封印印记 vs 巢穴(危险格):印记形物件对砖面巢穴纹,无需另加
|
||||
4. 奖励金 vs 危险红(色弱下皆偏褐):§3.1 道具点两类剪影 + §3.4 满圆对刺缺 + 金粒运动,无需另加
|
||||
5. Boss 紫赤 vs 其他敌:§5.1 形状独占,无需另加
|
||||
6. 小人蓝 vs 青墨数字:明度悬殊 + 小人轮廓与底盘,无需另加
|
||||
@@ -298,7 +298,7 @@
|
||||
| magic_recoil | magic 负向 | 魔法反噬 | 红族缺框 |
|
||||
| ap_up | action 正向 | 行动点 +1——疾步/沙漏 | 金族满框 |
|
||||
| ap_drain | action 负向 | 迟滞——沙漏倒置 | 红族缺框 |
|
||||
| gp_coin | gp 正向 | 金币袋——钱币/财货 | 金族满框 |
|
||||
| gp_coin | gp 正向 | GP 袋——钱币/财货 | 金族满框 |
|
||||
| gp_lose | gp 负向 | 破财 | 红族缺框 |
|
||||
| clear_blast | 清图槽 | 清图群伤——blast 族、整图作用域 | 按正向视觉 |
|
||||
|
||||
@@ -320,7 +320,7 @@
|
||||
| pierce | 穿刺族 | 破甲/锐锥 |
|
||||
| magic | 魔法族 | 秘法/星辰 |
|
||||
| action | 行动族 | 行动点/疾步 |
|
||||
| gp | 金币族 | 钱币/财货 |
|
||||
| gp | GP 族 | 钱币/财货 |
|
||||
|
||||
- **呈现约束(2026-09-28 角嵌退役批更新)**:未开格呈现**类型微光单通道**(五组色带,§4.2「类型微光色带」,色相+明度双码;样张 v2 定稿 2026-09-28;可见范围与时机见《HUD框架》「未开格类型微光」节);不呈现极性、不呈现雷/安(信息口径见该权威定义节);样张批微光组间互辨抽测含明度档互辨(误读率指标出处见《地图战斗资源》极性提案)。
|
||||
- **状态声明**:键集九值封闭(attack/defense/heal/blast/weaken/pierce/magic/action/gp,与 RewardTable 现行 cell_type 词表一致),扩键走本节修订。
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
|---|---|---|
|
||||
| 格面资源徽章 19 枚 | ◐ | [art-bible](art-bible.md) §4.6 |
|
||||
| 关卡节点图图标组 | ◐ | [art-assets-checklist](art-assets-checklist.md) §3.2(正式 UI 设计未成文) |
|
||||
| 雷/旗/数字砖面全套 | ◐ | [art-bible](art-bible.md) §1.4/§3.2(前置:格子样张) |
|
||||
| 雷/封印印记/数字砖面全套 | ◐ | [art-bible](art-bible.md) §1.4/§3.2(前置:格子样张) |
|
||||
| 增益状态效果图标 9 枚 | ✅ 已接入(2026-09-24 状态记录 156) | [art-bible](art-bible.md) §4.6.1(候选原稿:状态图标批 2026-09-23 远程出图,归 candidates 档——路径描述性引用,归档纪律见 art-bible §8.3) |
|
||||
| 营地与元进度件 | ◐ | [art-bible](art-bible.md) §4.4 |
|
||||
| 字体(数字像素字 + 中文像素字) | ◐ | [art-bible](art-bible.md) §4.4 |
|
||||
|
||||
@@ -48,7 +48,7 @@ Pixel art style. true pixel art game sprite drawn on a tiny 48x72 pixel canvas,
|
||||
realistic, photorealistic, 3d render, photo, dark, grimdark, horror, gore, blood, scary, creepy, text, letters, numbers, watermark, signature, logo, frame, border, ui, gradient background, scenery, dungeon background, multiple characters, crowd, black outline, heavy dark outline, back view, side view, isometric, blurry, jpeg artifacts, smooth lines, anti-aliasing, gradient shading, painterly, glossy, high detail, vector illustration, red clothes, gold armor
|
||||
```
|
||||
|
||||
- **规格**:剪影窄、直立、对称、轮廓凹凸 ≤2(§5.1 小人原型;背旗为唯一破例件,记账 +1,旗面恒定画右);主角是全作唯一蓝色角色。
|
||||
- **规格**:剪影窄、直立、对称、轮廓凹凸 ≤2(§5.1 小人原型;背负封印印记为唯一破例件,记账 +1,印记面恒定画右);主角是全作唯一蓝色角色。
|
||||
|
||||
### 2.2 攻击态
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
| 模块 | 独占职责 | 对外暴露 | 消费依赖 | 引擎 API |
|
||||
|---|---|---|---|---|
|
||||
| **board_generator**(A1) | 生成算法(五阶段管线)、BoardGenTable 回填、生成期指标集、合法性谓词(clearable / R₀≠S / min_safe)、可推理率度量(metric_version);生成姿态 = MVP 同步生成 + 加载幕(切片实证 10×10/12×12 同步可接受,WorkerThread 留扩展) | `generate(L, D, rng) -> Board`;度量独立入口×3(推理器 / F3 度量 / 合法性谓词——独立纯函数、同一实现) | ConfigDB(BoardGenTable/VariationTable);board_gen 流(一次 open_stream = 一张图);dig_ap_cost 只读 | 无 |
|
||||
| **minesweeper_rules**(A2) | 棋盘状态(已开集 O / 旗集 G / 小人位)、三事件面、批次仲裁、install 四不变式 | `install_board(board)`;`settle_batch(intents)`(唯一提交入口);try_dig / try_flag_place / try_flag_pull / try_move(便捷形);`compute_move_path(cell)` 只读;`retire_board()`;三源拒绝(board_face / resource_face / phase)+ sub_reason 封闭枚举 | A1 产物(Board class_name 数据契约);A3 try_spend / last_round_end / 相位 | 无(零表读取、零 UI——切片实证) |
|
||||
| **minesweeper_rules**(A2) | 棋盘状态(已开集 O / 封印集 G / 小人位)、三事件面、批次仲裁、install 四不变式 | `install_board(board)`;`settle_batch(intents)`(唯一提交入口);try_dig / try_flag_place / try_flag_pull / try_move(便捷形);`compute_move_path(cell)` 只读;`retire_board()`;三源拒绝(board_face / resource_face / phase)+ sub_reason 封闭枚举 | A1 产物(Board class_name 数据契约);A3 try_spend / last_round_end / 相位 | 无(零表读取、零 UI——切片实证) |
|
||||
| **unit_container**(B2) | hero/enemy 单位实例(hp/atk/实例池:池快照+冷却+摇定动作+保底计数)、行值快照 | spawn / query_alive / rollable_skills / special_skills / set_pending_action / pending_action / basic_streak / commit_action / tick_cooldowns / apply_damage / heal / default_target / ambush_grant_plan / despawn_all(2026-09-16 敌人技能池批:query_beat/query_attack/advance 随行为环退役) | ConfigDB(EnemyTable/SkillTable/HeroTable) | 无 |
|
||||
| **reward_economy**(B4) | 格面资源身份映射(install 期预分配、Ready 只读、换图映射消亡)、极性路由字典面((类型, 极性)→ 字典行查询;路由执行归 B1 授予段)、F6 当量供给投影 | 封闭 API:roll_board / query_identity / query_full_snapshot / grant / grant_clear / retire_mapping / polarity_row / equivalence_supply / phase / weighted_pick;另有 is_mapped 静默布尔投影(批量工具用) | ConfigDB(RewardTable);reward_roll 流(scope = 每次 install 批) | 无 |
|
||||
| **helper_items**(A5,切片已实装秘宝域) | HelperItemTable、探测显影语义 | (契约规范源:`../../gdd/systems/跨局循环/秘宝.md`——桥接位:A2 查询接口 + A4 counter_item_ids) | A2 / A4 / B4 | 无 |
|
||||
@@ -263,7 +263,7 @@
|
||||
|
||||
```
|
||||
Input(鼠标)→ D1 输入翻译 → 意图对象 → A2.settle_batch(唯一提交入口)
|
||||
→ A3.try_spend(原子扣减)→ A2 棋盘效果(挖/连锁/旗/移动)→ 三事件外发
|
||||
→ A3.try_spend(原子扣减)→ A2 棋盘效果(挖/连锁/封印/移动)→ 三事件外发
|
||||
→ [棋盘渲染:D1 BoardView 按事件增量重绘;无事件帧 = 静态 + 动效]
|
||||
→ 轮次结束 → A3 Waiting → B1 结算编排(段序七段)→ 明细步骤流 → D1 结算屏逐行呈现
|
||||
```
|
||||
|
||||
@@ -5165,7 +5165,7 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
<!-- Connection paths (before components for correct z-order) -->
|
||||
<path data-edge-from="main" data-edge-to="stage" data-edge-key="0" data-edge-id="main-stage" data-composition-points="566,132;566,196;125,196;125,260" d="M 566 132 L 566 188 Q 566 196 558 196 L 133 196 Q 125 196 125 204 L 125 260" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="main" data-edge-to="hero" data-edge-key="1" data-edge-id="main-hero" data-composition-points="580,132;580,196;335,196;335,260" d="M 580 132 L 580 188 Q 580 196 572 196 L 343 196 Q 335 196 335 204 L 335 260" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="board" data-edge-to="main" data-edge-label="翻开·插旗·和弦" data-edge-key="2" data-edge-id="board-main" data-composition-points="594,260;594,132" d="M 594 260 L 594 132" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="board" data-edge-to="main" data-edge-label="翻开·封印·和弦" data-edge-key="2" data-edge-id="board-main" data-composition-points="594,260;594,132" d="M 594 260 L 594 132" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="hero" data-edge-to="board" data-edge-label="秘宝两步交互" data-edge-key="3" data-edge-id="hero-board" data-composition-points="420,304;510,304" d="M 420 304 L 510 304" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
||||
<path data-edge-from="main" data-edge-to="save" data-edge-label="存档读写" data-edge-key="4" data-edge-id="main-save" data-composition-points="480,96;28,96;28,512;161,512;161,554" d="M 480 96 L 36 96 Q 28 96 28 104 L 28 504 Q 28 512 36 512 L 153 512 Q 161 512 161 520 L 161 554" class="a-dashed" stroke-width="1.5" marker-end="url(#arrowhead-dashed)"/>
|
||||
<path data-edge-from="orch" data-edge-to="stage" data-edge-label="结算回流" data-edge-key="5" data-edge-id="orch-stage" data-composition-points="448,554;448,376;125,376;125,348" d="M 448 554 L 448 384 Q 448 376 440 376 L 133 376 Q 125 376 125 368 L 125 348" class="a-emphasis" stroke-width="1.8" marker-end="url(#arrowhead-emphasis)"/>
|
||||
@@ -5628,9 +5628,9 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
<!-- Connection labels -->
|
||||
|
||||
|
||||
<g data-detail="context" data-edge-from="board" data-edge-to="main" data-edge-label="翻开·插旗·和弦" data-edge-key="2" data-edge-id="board-main">
|
||||
<g data-detail="context" data-edge-from="board" data-edge-to="main" data-edge-label="翻开·封印·和弦" data-edge-key="2" data-edge-id="board-main">
|
||||
<rect x="555.4" y="240" width="77.2" height="14" rx="3" class="c-mask"/>
|
||||
<text x="594" y="250" class="t-muted" font-size="8" text-anchor="middle">翻开·插旗·和弦</text>
|
||||
<text x="594" y="250" class="t-muted" font-size="8" text-anchor="middle">翻开·封印·和弦</text>
|
||||
</g>
|
||||
<g data-detail="context" data-edge-from="hero" data-edge-to="board" data-edge-label="秘宝两步交互" data-edge-key="3" data-edge-id="hero-board">
|
||||
<rect x="431.2" y="284" width="67.6" height="14" rx="3" class="c-mask"/>
|
||||
@@ -5871,7 +5871,7 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
<h3>战斗动作链</h3>
|
||||
</div>
|
||||
<ul>
|
||||
<li>• 棋盘区 翻开/插旗/和弦 → 组合根 → 战斗编排器规则判定</li>
|
||||
<li>• 棋盘区 翻开/封印/和弦 → 组合根 → 战斗编排器规则判定</li>
|
||||
<li>• 结算回流:血量攻防→角色信息区 · 受击演出→展示区 · AP 扣减与提示→棋盘区</li>
|
||||
<li>• 秘宝槽点击走两步交互:角色信息区 → 棋盘区/即刻生效</li>
|
||||
</ul>
|
||||
|
||||
@@ -601,7 +601,7 @@
|
||||
"id": "board-main",
|
||||
"from": "board",
|
||||
"to": "main",
|
||||
"label": "翻开·插旗·和弦",
|
||||
"label": "翻开·封印·和弦",
|
||||
"fromSide": "top",
|
||||
"toSide": "bottom"
|
||||
},
|
||||
@@ -680,7 +680,7 @@
|
||||
"dot": "emerald",
|
||||
"title": "战斗动作链",
|
||||
"items": [
|
||||
"棋盘区 翻开/插旗/和弦 → 组合根 → 战斗编排器规则判定",
|
||||
"棋盘区 翻开/封印/和弦 → 组合根 → 战斗编排器规则判定",
|
||||
"结算回流:血量攻防→角色信息区 · 受击演出→展示区 · AP 扣减与提示→棋盘区",
|
||||
"秘宝槽点击走两步交互:角色信息区 → 棋盘区/即刻生效"
|
||||
]
|
||||
|
||||
@@ -5184,8 +5184,8 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
<text data-detail="fine" x="94" y="356" class="t-backend" font-size="7" text-anchor="middle">ACTION_ECONOMY</text>
|
||||
</g>
|
||||
|
||||
<g id="node-minesweeper" data-node-id="minesweeper" data-node-label="排雷循环" tabindex="0" role="button" aria-label="聚焦排雷循环,挖格·插旗·连锁展开, 局内 · 一条命的冒险" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="挖格·插旗·连锁展开" data-node-tag="MINESWEEPER_CYCLE" data-node-context="局内 · 一条命的冒险">
|
||||
<title>排雷循环 · 挖格·插旗·连锁展开 · 局内 · 一条命的冒险 · MINESWEEPER_CYCLE</title>
|
||||
<g id="node-minesweeper" data-node-id="minesweeper" data-node-label="排雷循环" tabindex="0" role="button" aria-label="聚焦排雷循环,挖格·封印·连锁展开, 局内 · 一条命的冒险" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="挖格·封印·连锁展开" data-node-tag="MINESWEEPER_CYCLE" data-node-context="局内 · 一条命的冒险">
|
||||
<title>排雷循环 · 挖格·封印·连锁展开 · 局内 · 一条命的冒险 · MINESWEEPER_CYCLE</title>
|
||||
<rect x="236" y="300" width="150" height="64" rx="6" class="c-mask"/>
|
||||
<rect x="236" y="300" width="150" height="64" rx="6" class="c-frontend" stroke-width="1.5"/>
|
||||
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(242 306) scale(0.6875)">
|
||||
@@ -5195,7 +5195,7 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
|
||||
</g>
|
||||
<text data-node-label="" data-detail-anchor="" x="311" y="330" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">排雷循环</text>
|
||||
<text data-detail="context" x="311" y="346" class="t-muted" font-size="9" text-anchor="middle">挖格·插旗·连锁展开</text>
|
||||
<text data-detail="context" x="311" y="346" class="t-muted" font-size="9" text-anchor="middle">挖格·封印·连锁展开</text>
|
||||
<text data-detail="fine" x="311" y="356" class="t-frontend" font-size="7" text-anchor="middle">MINESWEEPER_CYCLE</text>
|
||||
</g>
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
"id": "minesweeper",
|
||||
"type": "frontend",
|
||||
"label": "排雷循环",
|
||||
"sublabel": "挖格·插旗·连锁展开",
|
||||
"sublabel": "挖格·封印·连锁展开",
|
||||
"tag": "MINESWEEPER_CYCLE",
|
||||
"pos": [
|
||||
236,
|
||||
|
||||
@@ -20,7 +20,7 @@ main.gd 头注曾累积 42 行——历次提交各自追加「本批做了什
|
||||
|
||||
## 2.1 信号契约缺失(软锁)
|
||||
|
||||
旗动作花完末点 AP 后相位翻 Waiting 但不发 round_end,结算点依赖该事件 → 整局软锁;自动玩家不用旗,冒烟路径覆盖不全没抓住。
|
||||
封印动作花完末点 AP 后相位翻 Waiting 但不发 round_end,结算点依赖该事件 → 整局软锁;自动玩家不用封印,冒烟路径覆盖不全没抓住。
|
||||
|
||||
## 2.2 标识符语义错位
|
||||
|
||||
@@ -47,7 +47,7 @@ spawn 把 hero 的 max_hp 设为入参 hero_hp——跨战斗携带 HP 时上限
|
||||
| 缺陷 | 现象 | 对应规则 |
|
||||
|---|---|---|
|
||||
| UI 抖动 / "第3轮"消失 | 悬停文案换行推挤侧栏,末行被挤出视口 | 1.1 拆分 + 视图定长槽 |
|
||||
| Boss 战 AP 用完不结算(软锁) | 插旗耗尽末点 AP 后整局冻结 | 2.1 事件发射完整性 |
|
||||
| Boss 战 AP 用完不结算(软锁) | 封印耗尽末点 AP 后整局冻结 | 2.1 事件发射完整性 |
|
||||
| 道具使用后不消失 | 选用件留存、邻件被误耗 | 2.2 标识符语义单一 |
|
||||
| 调整板点击无反应 | 面板已实现但被开始层遮挡 | 2.3 层级规则 + test-conventions §2 |
|
||||
| 上帝对象 | main.gd ~1100 行 | 1.1–1.3 |
|
||||
|
||||
@@ -21,13 +21,13 @@
|
||||
|
||||
## 3. 缺陷修复必须沉淀回归断言
|
||||
|
||||
每个缺陷修复必须在探针或冒烟中留下能抓住该缺陷的断言(例:旗动作耗尽 AP → 必须进入第 2 轮;
|
||||
每个缺陷修复必须在探针或冒烟中留下能抓住该缺陷的断言(例:封印动作耗尽 AP → 必须进入第 2 轮;
|
||||
选用道具 → 库存态必须变 Used)。没有回归断言的修复视为未完成。
|
||||
|
||||
## 4. 提交前全量验证
|
||||
|
||||
交付前跑 `tools/run_all_gates.sh`(不带 `--quick`)全绿——该脚本是全部验证闸的唯一入口与唯一清单,本文禁另列闸件清单。闸件增减只改脚本。
|
||||
行为探针使用随机化玩家行为(旗/停手/刷新/无效点击)——自动玩家不做的动作就是测试盲区。
|
||||
行为探针使用随机化玩家行为(封印/停手/刷新/无效点击)——自动玩家不做的动作就是测试盲区。
|
||||
|
||||
## 5. 测试函数怎么写——验收清单条目的落码规范
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|---|---|
|
||||
| 扫雷图 | 被巢穴侵染的地牢厅室;清图 = 肃清本间厅室,下探更深 |
|
||||
| 雷 / 危险格 | **危险格**(对外属名)——惊动则怪物倾巢而出占得先机,巢已空、残址可通行(机制文档统一称危险格,2026-10-11 用户裁无类型划分) |
|
||||
| 旗 / 插旗 | **控制**(玩家可见动词,类型无关)——标中 = 巢穴废置、巢主失庇护(怪物被削弱);"封印/镇/反制"降级为类型风味词 |
|
||||
| 封印 / 控制 | **控制**(玩家可见动词,类型无关)——标中 = 巢穴废置、巢主失庇护(怪物被削弱);封印=正式动作名(全库统一),镇/反制仅系类型风味词 |
|
||||
| 连锁展开 | **坍塌显形**——挖穿薄壳,整片松动地面塌陷露出 |
|
||||
| 标错 | **控制失败的失控反噬**——机制上的随机读作"失控",反噬流向不可控 |
|
||||
| 道具 / 奖励 | 前人探险者的遗落物(氛围背景句,登记不锁;宝箱呈现只绑定可使用道具类奖励) |
|
||||
@@ -55,7 +55,7 @@
|
||||
| 爆破工兵包 | 行动点 + 探巢的稀有秘宝 | aux_items |
|
||||
| 地精 / 熊地精 / 食人魔酋长 | 首发三敌种(末者为 Boss) | enemy |
|
||||
| 第一层 · 地精洞窟 | 首关层名 | level_table |
|
||||
| 封印 | 插旗动作的呈现名——对未开格(巢穴)插旗即实施封印,旗 = 封印印记 | terminology |
|
||||
| 封印 | 正式动作名(全库统一,非比喻、非呈现层别名)——对未开格(巢穴)实施封印,印记=封印印记 | terminology |
|
||||
|
||||
注意:上表六件秘宝为旧目录,已全数退役、只作素材库(新现行事实源=[秘宝](systems/跨局循环/秘宝.md)「目录(重设计 v1)」节——新目录 15 件为代号制、正式命名归用户);registry 登记行随实装批迁移后本表同步。
|
||||
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
每场战斗都在一张雷图上打。战斗本身不用手操——你能做的全部决策,都在它的"准备期"里:
|
||||
|
||||
1. 开局一张新雷图,每轮发给你行动点,每轮预算见[行动经济](systems/排雷循环/行动经济.md)。
|
||||
2. 用行动点做排雷决策:挖开安全格,拿增益和道具;控制(插旗)巢穴,削弱里面的怪物;点错惊动巢穴,怪物反而变强。
|
||||
2. 用行动点做排雷决策:挖开安全格,拿增益和道具;控制(封印)巢穴,削弱里面的怪物;点错惊动巢穴,怪物反而变强。
|
||||
3. 行动点用尽——或者你主动停手——这一轮结束,轮末自动结算:你这一轮扫雷攒下的因,逐行兑现成战斗的果。你拿的增益打了出去,你控制的巢穴变成怪物的虚弱,你惊动的巢穴变成怪物的警觉(护甲变硬、伤害账轮末才落)。
|
||||
4. 敌人没死光、你还活着,就进下一轮,同一张图接着挖;图开完了,发清图奖励,换一张新图接着打。
|
||||
|
||||
```
|
||||
开局:装一张新雷图 + 发本轮行动点
|
||||
→ 用行动点做排雷决策(挖安全格拿增益/道具 · 插旗控制巢穴 · 点错惊动巢穴)
|
||||
→ 用行动点做排雷决策(挖安全格拿增益/道具 · 封印控制巢穴 · 点错惊动巢穴)
|
||||
→ 行动点用尽 或 主动停手 → 轮末自动结算:本轮攒的因逐行兑现成战斗的果
|
||||
→ 判定(先判你,再判敌人)
|
||||
你倒下 → 战斗失败 → 冒险结束(见「死了之后」)
|
||||
@@ -43,7 +43,7 @@
|
||||
→ 任意一场战斗倒下 → 冒险结束
|
||||
```
|
||||
|
||||
路上的商店房是关底 Boss 前一位的补给点:战斗掉落的金币(GP)在这花掉,换攻击、生命上限或护甲的提升——打完仗钱到账,进店花掉,带着变强去见关底 Boss。
|
||||
路上的商店房是关底 Boss 前一位的补给点:战斗掉落的 GP 在这花掉,换攻击、生命上限或护甲的提升——打完仗钱到账,进店花掉,带着变强去见关底 Boss。
|
||||
|
||||
一条血走完整场冒险:战后剩多少血就带多少进下一场,恢复点回一部分,通关一关回一部分血、再从三选一里挑一件提升带走。所以越往后,你越在意"这局已经走到第几层"。
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
|---|---|---|
|
||||
| 秘宝 | 开局前在营地从目录自主装配、整局冒险生效的**角色机能件**——「这局我想怎么玩」的事先宣言 | 存档级(营地)→ 冒险级 |
|
||||
| 奇物 | 冒险途中经渠道获得、当局清零的增益——「这一局我捞到了什么」的过程性成长 | 冒险级 → 冒险级清零 |
|
||||
| 地图战斗资源 | 格子上装板摇号预分配、回合内挖格/标旗获取并结算的一次性兑付——「挖这一格得到什么」的收益语言 | 回合级获取 → 回合级结算(写入各档账);身份生成=装板期(节点内,随换图重摇) |
|
||||
| 地图战斗资源 | 格子上装板摇号预分配、回合内挖格/封印获取并结算的一次性兑付——「挖这一格得到什么」的收益语言 | 回合级获取 → 回合级结算(写入各档账);身份生成=装板期(节点内,随换图重摇) |
|
||||
|
||||
### 机能与机制的判定尺
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
| 文件 | 一句话概要 | 状态 |
|
||||
|---|---|---|
|
||||
| `棋盘生成.md` | 棋盘怎么生成、怎么保证可推理可通关 | 已定稿·自旧体系迁移 |
|
||||
| `排雷玩法.md` | 挖格、插旗、连锁展开等扫雷规则本体 | 已定稿·自旧体系迁移 |
|
||||
| `排雷玩法.md` | 挖格、封印、连锁展开等扫雷规则本体 | 已定稿·自旧体系迁移 |
|
||||
| `行动经济.md` | 每轮行动点怎么花、停手与刷新的代价 | 已定稿·自旧体系迁移 |
|
||||
| `地形变异.md` | 格子的非雾变异(首批四类型:荆棘丛/藤蔓缠绕/岩浆/烬覆) | 已定稿·首批类型落地 |
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
- **重叙事**:不写前人日志、剧情演出这类长篇文本。世界观只做碎片点缀,卖点在玩法不在文本。
|
||||
- **即时操作玩法**:所有决策都在回合内慢慢想,不考反应、不考手速。任何"限时点击""走位闪避"都免谈。
|
||||
- **chord(经典扫雷的双击快开)**:本作每一格的兑现都要花行动点,chord 一键开一片会让行动点预算失去意义。
|
||||
- **抽象货币 / 中间资源折算**:扫雷收益全部直接兑成战斗效果,中间隔一层货币会稀释"排雷的因 = 战斗的果"这条因果可见的底线。**显式例外:格面金币(GP,显示名「金币」)**——金币有定名、明码定价与余额常驻呈现,因果链 = 排雷 → 战斗 → 金币 → 属性提升,每一段玩家都看得见,可见性底线不破;金币之外不再引入任何"扫雷收益折算成货币再兑换效果"的夹层。
|
||||
- **抽象货币 / 中间资源折算**:扫雷收益全部直接兑成战斗效果,中间隔一层货币会稀释"排雷的因 = 战斗的果"这条因果可见的底线。**显式例外:格面 GP(显示名「GP」)**——GP 有定名、明码定价与余额常驻呈现,因果链 = 排雷 → 战斗 → GP → 属性提升,每一段玩家都看得见,可见性底线不破;GP 之外不再引入任何"扫雷收益折算成货币再兑换效果"的夹层。
|
||||
- **旗做成背包道具或限量**:旗只是棋盘上的标记,想用多少用多少;它的稀缺性由行动点价目承载,不做第二重限制。
|
||||
- **未开格预读危险格与安全格**:扫雷是本作的本征玩法,预读「这格是不是雷」会拆掉推理。允许"恢复推理原料"类道具(显影/预读窄域),不允许替代推理。**类型身份不在本条禁止之列**——类型微光只读「这格兑什么」、不读危险格与安全格,推理本体不受蚀(呈现现行事实源归 [HUD框架](systems/表现与支撑/HUD框架.md)「未开格类型微光」节)。
|
||||
- **第二套随机惩罚**:所有风险都从雷和未知格派生,不再引入平行的随机惩罚源——惩罚多了,玩家就没法归因了。
|
||||
|
||||
+12
-2
@@ -66,14 +66,14 @@
|
||||
|
||||
**二期件组**(触发=迭代 12 出口读数+用户点名立项;各件机制形态已定,数值 provisional):
|
||||
- **战斗→扫雷跨阶段回流**(穿刺流):击杀轻甲敌人返还 1 AP——战斗收益反哺开格动机;AP 经济新管道,谨慎件(威胁红线③边缘,立项须专项论证)
|
||||
- **穿甲锥**(穿刺×标旗协同桥):对被控制危险格的敌人穿刺伤害再提升
|
||||
- **穿甲锥**(穿刺×封印协同桥):对被控制危险格的敌人穿刺伤害再提升
|
||||
- **孤注一掷**(普攻流二期锚点件):每轮攻击次数减至 1、该次伤害大幅倍增——攻击频率规则改写
|
||||
- **悬浮魔法球**(魔法流二期):轮末召唤物环绕,每轮自动对最强敌人造成魔法伤害——需战斗单位系统新增实体类型(召唤物/持续伤害源)
|
||||
- **商店置换服务「符文重铸」**:攻击类型族后期流派转换(花 GP 重掷攻击类型相关件)——商店新交互
|
||||
- **件派生动词白名单(非信息类)**:拔旗回收返 AP/定向熄灭伤害型地形格/重掷 RAP 等第三盘面动作——**触发条件=件池 ≥30 种后玩家仍反馈操作重复且定位在操作层(非决策层)**;信息类派生动词维持全禁(R4 甲,见下备选组)
|
||||
- **三期:合成进化**:两件同名/同标签件合成升品(Ball x Pit 式)——池深不足时的解药,三期再议
|
||||
|
||||
**淘金流立派缓议**(定位=支撑引擎非胜利条件;触发=先作件族挂配套池观察、数据支持后再立派):吝啬鬼账本/金脉共鸣(每持有 ~N GP 攻击 +~X——GP 进伤害公式新缩放源)/贪婪契约(商店折扣+金币掉落增税,正负双修)/消费回馈(商店购买附赠同类临时增益)/战利品鉴定(三选一必含 1 件高稀有度)。
|
||||
**淘金流立派缓议**(定位=支撑引擎非胜利条件;触发=先作件族挂配套池观察、数据支持后再立派):吝啬鬼账本/金脉共鸣(每持有 ~N GP 攻击 +~X——GP 进伤害公式新缩放源)/贪婪契约(商店折扣+GP 掉落增税,正负双修)/消费回馈(商店购买附赠同类临时增益)/战利品鉴定(三选一必含 1 件高稀有度)。
|
||||
|
||||
**R4 乙备选案(2026-10-03 用户裁甲=信息型永不对冲,本组冻结)**:
|
||||
- 信息型清除工具件族(「除尘风箱」类:限价限量清除藤蔓/烬覆/矿尘遮蔽、恢复数字)
|
||||
@@ -570,3 +570,13 @@
|
||||
**归属**:营地交互重做(数据层+呈现层+美术线;五卡路径见状态行,批次归属与波次由用户按工作量另裁)
|
||||
|
||||
**状态**:文档设计已闭合(design/research/需求澄清-营地交互重做-2026-10-18.md v1.0)+待美术设计+已写卡(design/research/需求卡片-存档制数据层改造批-2026-10-18.md)+已写卡(design/research/需求卡片-主菜单三入口化批-2026-10-18.md)+已写卡(design/research/需求卡片-选档界面新建批-2026-10-18.md)+已写卡(design/research/需求卡片-营地场景图新建批-2026-10-18.md)+已写卡(design/research/需求卡片-ESC浮窗与营地顶栏批-2026-10-18.md)
|
||||
|
||||
---
|
||||
|
||||
#### 代码术语刷新批——禁用词全库清扫+flag→seal 标识符重命名(2026-10-18 登记,来源=会话提及,设计面=工程直入)
|
||||
|
||||
**现状**:2026-10-18 用户裁定三组术语刷新(记忆 `project-terminology-rulings-20261018.md`):①GP 是唯一正式命名,「金币」系 AI 噪音全库禁用;②「插旗」全库禁用,正式动作名=封印,「旗」概念不存在;③代码英文标识符 flag_* 全换 seal_*。另「雷格」「惩罚格」2026-10-11 已裁退役→危险格,代码域尚未执行。审计报告(`design/qa/代码术语审计报告-2026-10-18.md`)实查:game/ 目录命中约 757 处(flag_ 标识符 314 处/29 个 .gd+4 个 .tres;中文禁用词 金币 116 处/插旗 210 处/雷格 109 处),涉及核心逻辑(minesweeper_rules.gd、battle_orchestrator.gd、grant_segment.gd)、数据表(feats.tres、settlement.tres、action_economy.tres、reward.tres)、呈现层(board_view.gd、shop_overlay_view.gd、legend_overlay.gd)与冒烟测试(smoke_all.gd 单文件 105 处 flag_)。文档面(design/)由另批处理,本条只覆盖 game/ 代码域。
|
||||
|
||||
**归属**:全工程(排雷循环/战斗循环/冒险循环/呈现层/数据表/冒烟测试均触及;主责=术语表裁定执行)
|
||||
|
||||
**状态**:待写卡
|
||||
@@ -20,7 +20,7 @@
|
||||
| 改动 | 旧行为 | 新行为 | 直接体感 |
|
||||
|---|---|---|---|
|
||||
| 硬化(敌方技) | 主角打硬化目标**翻倍**(符号 bug) | 主角攻击**折半** | Boss 战显著变长变难(预期内) |
|
||||
| 削弱(标中旗) | 叠层 ×2 可把敌方输出压到归零(免伤轮) | 持续 2 次结算、重复标中只续时不叠层,输出恒 ≥35% | 每轮必有承伤,插旗从"阶段性安全"变"持续减伤" |
|
||||
| 削弱(封印标中) | 叠层 ×2 可把敌方输出压到归零(免伤轮) | 持续 2 次结算、重复标中只续时不叠层,输出恒 ≥35% | 每轮必有承伤,封印从"阶段性安全"变"持续减伤" |
|
||||
| 增伤(安全格) | 只加成普攻段,充能段不吃 | 加成全部输出(乘区接线批;2026-09-19 充能退役后 = 单分量全吃) | 边挖边拿增伤时伤害明显变高 |
|
||||
| 乏力(踩雷负向) | 无感(乘区没接线,死效果) | 输出合计 −25% | 踩雷后攻击真的变弱了 |
|
||||
| 失衡(标错旗) | 承伤加深 +25% | 护甲等级 −1(现行表值 magnitude −1 ac,更易被命中) | 惩罚变隐性——挨打概率上升而非每刀固定加深 |
|
||||
@@ -60,9 +60,9 @@
|
||||
|
||||
### ⑤ 失衡换轴的归因可读性(P2 关注)
|
||||
|
||||
- **观测什么**:标错旗吃失衡后,玩家能否读懂"为什么这几刀特别容易挨打"(护甲等级 −1 → 命中更难被闪开)。
|
||||
- **观测什么**:标错封印吃失衡后,玩家能否读懂"为什么这几刀特别容易挨打"(护甲等级 −1 → 命中更难被闪开)。
|
||||
- **预期**:惩罚变隐性是换轴的已知代价——承伤加深是"每刀固定变疼",AC 降低是"挨打概率与档位变差",后者更难直觉归因。
|
||||
- **红灯信号**:试玩者完全无法把"挨打变疼"与标错旗关联起来。
|
||||
- **红灯信号**:试玩者完全无法把"挨打变疼"与标错封印关联起来。
|
||||
- **结论回流**:归因呈现面已随迭代 6/8 落地(状态图标九枚+明细行文案);失衡幅度现行 AC −1,调整归数值批(Beta 阶段,未排期)计划书(待 U0)。
|
||||
|
||||
### ⑥ 速杀退化预警(监控口径,2026-09-18 定案)
|
||||
@@ -83,7 +83,7 @@
|
||||
- **语义锚(2026-09-19 落地实测锁定,smoke_all `_smoke_flag_irreversible_quadrants` 断言在案)**:插旗安全格直挖 = 零惩罚零奖励(正向兑付作废、作废归因行恰一次、标空不判);插旗危险格直挖 = 只受挖雷一层惩罚(mine_hit 照常)、标中不发;不挖留判 = 标中/标空照常;flag_pull 出目录拒绝、重复插旗 flag_present 拒绝。
|
||||
- **预期**:无基线,首跑即基线——随真人试玩批次 2 起采(模拟画像不拔旗,此面只有真人数据有效)。
|
||||
- **红灯信号**:误旗后放弃纠错占比异常高(直挖免费但④零奖励仍可能劝退纠错——玩家改绕路不挖)或④触发后局部推进明显迟滞(零奖励力度过狠的体验证据)——红灯仅作曲线调参批输入,**不在试玩现场改机制**。
|
||||
- **结论回流**:读数 → 曲线调参批复核情况④零奖励力度与旗价目;提案已转正,无后续评估义务。
|
||||
- **结论回流**:读数 → 曲线调参批复核情况④零奖励力度与封印价目;提案已转正,无后续评估义务。
|
||||
|
||||
### ⑨ 真人批试玩指引(验收重测批修正锚,2026-09-19 立项——照此单试玩即可)
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
2. **削弱后的承伤**(②):吃削弱那几轮挨打是不是明显变疼;
|
||||
3. **增伤手感**(③):增益期伤害是不是"明显变高但不爆炸";
|
||||
4. **乏力可感知性**(④):踩雷后下一轮输出下降感不感觉得到;
|
||||
5. **失衡归因**(⑤):标错旗之后挨打变疼,能不能猜到"为什么";
|
||||
5. **失衡归因**(⑤):标错封印之后挨打变疼,能不能猜到"为什么";
|
||||
6. **刷新冲动**(⑦基线复核):有没有"想换一张图"的时刻?觉得刷新 1 行动点贵不贵?
|
||||
7. **速杀自察**(⑥):打完战斗时图上是不是还剩大半没挖(跳过棋盘直接杀敌的冲动多不多)。
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
### ⑫ 旗溢价兑付与标旗激励(2026-10-05 挖掘风险不等式判式换代批顺带登记——迭代14②号卡)
|
||||
|
||||
- **机制一句**:标中旗的正向兑付现在按同型正向 ×1.25 兑付(`settlement.tres` flag_hit_premium=125 provisional——条款3 条件二旗溢价形态 a),标空与挖格兑付不变;危险格与安全格同池结构零触碰。
|
||||
- **看什么(实机目检,约 5 分钟)**:①插旗标中一面旗,结算明细的兑付数值应比改前同类行略大(增伤 50→63 / 削弱 65→81 / 急救 2→3 / 金币袋 3→4;盾牌加护与行动点 1 点量纲不变=整数粒度地板);②挖安全格与标空惩罚行数值应与改前逐位相同;③战斗结算帮助文案如有旗相关行,无自造词。
|
||||
- **看什么(实机目检,约 5 分钟)**:①封印标中一处危险格,结算明细的兑付数值应比改前同类行略大(增伤 50→63 / 削弱 65→81 / 急救 2→3 / GP 袋 3→4;盾牌加护与行动点 1 点量纲不变=整数粒度地板);②挖安全格与标空惩罚行数值应与改前逐位相同;③战斗结算帮助文案如有封印相关行,无自造词。
|
||||
- **行为读数(改前改后 MC 锚已采,判读随出口报告顺带交付)**:η=标中÷插旗 与 标旗率 位移 ≥5pp 判「有感」;行为无效 δ 仍保留+登记「行为无感」(判式诚实性不依赖行为弹性——2026-10-04 grill Q4 裁)。
|
||||
- **红灯信号**:标旗 rush 复发(首轮全标旗不挖——δ 与完美排雷 ×2 叠加通胀是既有联动面:旗溢价三件套 δ↔p_perfect↔ap_per_round 同窗检算,难度曲线与Boss 调参联动表在册)。
|
||||
- **结论回流**:体感 → 本条目记录;数值终值(δ 值与 ×1.5 档留后手)归调参批,不在试玩现场改数。**判式换代文本(行动经济 F1 条款3/战斗结算 验收标准/难度曲线与Boss 联动表三处修订稿)顺带呈用户人闸**——追认单随出口报告。
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
| 重叙事(长篇文本与剧情演出) | [05-不做清单](05-不做清单.md) |
|
||||
| 即时操作玩法 | [05-不做清单](05-不做清单.md) |
|
||||
| chord(双击快开) | [05-不做清单](05-不做清单.md) |
|
||||
| 旗做成背包道具或限量 | [05-不做清单](05-不做清单.md) |
|
||||
| 封印印记做成背包道具或限量 | [05-不做清单](05-不做清单.md) |
|
||||
| 抽象货币 / 中间资源折算 | [05-不做清单](05-不做清单.md) |
|
||||
| 多波战斗 | [05-不做清单](05-不做清单.md) |
|
||||
| 遗物式构筑协同 | [05-不做清单](05-不做清单.md) |
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
|
||||
#### 证据面 A:随机流与「增流」是什么(拍板点②的背景)
|
||||
|
||||
**人话**:本项目的随机数只有一个总入口(随机服务,代码名 rng_service),硬性红线禁止任何代码绕开它自己掷骰——"同一个种子+同样操作序列 = 逐位相同的一局"靠这条保证,调试复盘和模拟对账都依赖它。总入口内部按用途分账:每种用途占一栏,叫一条**流**(本文含义:随机服务内部按用途分开记账的一栏独立随机序列,各有各的编号,互不串账)。现行清单七条:雷图生成、奖励抽取、敌人数量掷骰、命中掷点、出招摇号、变异布置、金币掉落——清单是封闭的,新用途必须在清单里开新栏。
|
||||
**人话**:本项目的随机数只有一个总入口(随机服务,代码名 rng_service),硬性红线禁止任何代码绕开它自己掷骰——"同一个种子+同样操作序列 = 逐位相同的一局"靠这条保证,调试复盘和模拟对账都依赖它。总入口内部按用途分账:每种用途占一栏,叫一条**流**(本文含义:随机服务内部按用途分开记账的一栏独立随机序列,各有各的编号,互不串账)。现行清单七条:雷图生成、奖励抽取、敌人数量掷骰、命中掷点、出招摇号、变异布置、GP 掉落——清单是封闭的,新用途必须在清单里开新栏。
|
||||
|
||||
图模板抽签是一笔新用途的随机账,要在清单里新开一栏(拟名 `node_map`)——「增流」就是这个动作:**给封闭流清单加一条新流**。它之所以要拍板:加流有固定成本(改代码 + 补一组校验用黄金向量 + 加冒烟断言,纪律规定的三件套),不是随手配置。
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
| 冒险生命周期 | 待机 / 进行中 / 结算中三态,与完成、失败、放弃三种结局的判定和产出 |
|
||||
| 关卡序列 | 关卡表(逐关一行的配置表)行集内容的责任方;推进规则:线性、无跳关 |
|
||||
| 生命账本 | 跨战斗生命持久性的冒险侧账本:每战交出、战后收回、两个恢复口 |
|
||||
| GP 冒险账本 | 战斗掉落货币的局内账本(显示名「金币」):战斗完成统一入账、商店购买出账、冒险收束清零;统一冒险加算区(商店购买与大奖励同账) |
|
||||
| GP 冒险账本 | 战斗掉落货币的局内账本(显示名「GP」):战斗完成统一入账、商店购买出账、冒险收束清零;统一冒险加算区(商店购买与大奖励同账) |
|
||||
| 关卡大奖励 | 非末关通关的两层兑付:专长三选一(选择型,按档配比加权抽取——迭代 20 换代)+ 部分回血(固定型);钥石退役出大奖励,改 Boss/精英击杀战斗掉落 |
|
||||
| 失败重开与放弃 | 倒下即冒险终;重开等于全新一轮;放弃与失败同型结算 |
|
||||
| 主种子接线 | 一场冒险一个主种子,冒险内一切随机数派生自它 |
|
||||
@@ -134,7 +134,7 @@ MVP 的序列是三关线性:地精洞窟→幽暗地域→灰矮人矿城(2
|
||||
|
||||
### GP 冒险账本:战斗掉落的局内钱包与统一冒险加算区
|
||||
|
||||
GP(显示名「金币」)是冒险内的一次性属性提升货币:战斗胜利掉落、商店房消费、冒险结束清零。它与钥石记账完全分离——钥石跨局持久、入存档;GP 局内有效、不入存档、不入冒险摘要五件事清单。账本语义归本文,商店房的开闭交互归[关卡节点地图](关卡节点地图.md)。
|
||||
GP(显示名「GP」)是冒险内的一次性属性提升货币:战斗胜利掉落、商店房消费、冒险结束清零。它与钥石记账完全分离——钥石跨局持久、入存档;GP 局内有效、不入存档、不入冒险摘要五件事清单。账本语义归本文,商店房的开闭交互归[关卡节点地图](关卡节点地图.md)。
|
||||
|
||||
**独立资源口径**(框架见[核心循环](../../01-核心循环.md)「生命周期轴」节):GP 与钥石是两条平行独立资源,不立统一上位概念——GP=冒险级独立资源账(本节),钥石=存档级账(归[元进度](../跨局循环/元进度.md))。各层对 GP 的兑付都是**一次性转换入账**:转换源(奇物 GP 袋、格面 gp 型等)结算即消尽,只有钱包长存——这是「类A→类C」的转换关系,不是「奖励横跨多层」。
|
||||
|
||||
@@ -146,7 +146,7 @@ GP(显示名「金币」)是冒险内的一次性属性提升货币:战斗
|
||||
| 商店购买 | 出 | 商店房购买按现行价扣减钱包,余额不足拒绝。价格公式(**v0.13 换代——pool 模式现行**):ceil(基价 × b^(关序−1) × A^(本次进店已购次数)),A=店内递增/b=跨关递增表因子(provisional 1.8/1.1),ceil 向上单一取整(玩家不利向,杜绝「差 1 GP 反复钓」套利角);legacy 固定三件模式(shop=off 对照承载)沿用旧式 = 基价 + 关级价格加成 + 步长 × 已购档数 |
|
||||
| 冒险收束 | 清零 | 完成 / 失败 / 放弃三种结局都清零;重开后钱包从零开始 |
|
||||
|
||||
**战斗内缓冲隔离**:战斗进行中从格面兑付拿到的 GP(金币袋正向、破财负向——字典归[地图战斗资源](../战斗循环/地图战斗资源.md))不直接进钱包,而是记入战斗域的中间态缓冲;战斗完成时缓冲随掉落掷定与关级加值一并折进 gp_dropped 统一到账。钱包只在战斗边界变动,战斗域自身零钱包状态——这条隔离让战斗结算保持"折算归我、账本归冒险结构"的既有边界。
|
||||
**战斗内缓冲隔离**:战斗进行中从格面兑付拿到的 GP(GP 袋正向、破财负向——字典归[地图战斗资源](../战斗循环/地图战斗资源.md))不直接进钱包,而是记入战斗域的中间态缓冲;战斗完成时缓冲随掉落掷定与关级加值一并折进 gp_dropped 统一到账。钱包只在战斗边界变动,战斗域自身零钱包状态——这条隔离让战斗结算保持"折算归我、账本归冒险结构"的既有边界。
|
||||
|
||||
**统一冒险加算区**:商店购买的属性提升与奖励节点三选一的属性件记**同一本账**——加算区四轴 {攻击, 生命上限, 护甲等级, 行动点},入战参数 = 基础表值 + 加算区累加,经战斗开始入参的覆盖值通道生效(与生命账本的上参同一条通道)。购买生命上限时:pool 模式(v0.13——货架件=奖励件本体)只加上限不回当前生命(与三选一件同语义);legacy 模式当前生命与上限同步 +Δ(生命账本的连带写入口)。属性轴累加源 = 商店购买与奖励节点三选一属性件两类;行动点轴累加源 = 奖励节点三选一 AP 件与商店 AP 件两类(每场战斗开始的首轮行动点基线 +1,语义细节归[行动经济](../排雷循环/行动经济.md)跨冒险加成轴节;~~全冒险获取次数上限最紧 provisional 2 次~~——v0.14 次数上限退役,池消耗即上限,pool 模式下商店购买与三选一共用令牌库,见下)。
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
### 设计原则
|
||||
|
||||
1. **触发器句式**:每件专长的效果声明为「当 X 时 Y」(on / when / do 三字段,词表=效果引擎封闭集)。件的性格来自它挂在哪个事件上;combo 靠事件共享自然涌现——不设流派标签、不设档位机制。
|
||||
2. **事件族组织**(设计侧分组工具,不上卡面):开格系 / 插旗系 / 踩雷系 / 节奏系 / 战斗系五族。族名禁上玩家可见面(命名铁律)。
|
||||
2. **事件族组织**(设计侧分组工具,不上卡面):开格系 / 封印系 / 踩雷系 / 节奏系 / 战斗系五族。族名禁上玩家可见面(命名铁律)。
|
||||
3. **准入校验**:代价与收益须同账可核算——「纯代价件」禁止出生;契约件的代价必须一句话讲得清(契约不可怕,糊涂账才可怕)。
|
||||
4. **信息红线**:禁止任何效果让数字说谎(信息规则不豁免);揭示类效果只揭真格。
|
||||
5. **防兑换环**:互相转换的通道必须有损耗或每轮上限;单向通道优先。
|
||||
@@ -42,7 +42,7 @@
|
||||
| 爆破会计 | on 轮末:本轮挖格花费 AP ≥5 → +1 GP | 勤奋奖,账透明(扩签:本轮挖格花费) |
|
||||
| 边陲矿工 | on 挖开棋盘边缘格:产出 +1 | 微光时代可规划的路线选择(扩签:边缘格判定) |
|
||||
|
||||
**插旗系(4)**
|
||||
**封印系(4)**
|
||||
|
||||
| 代号 | on / when / do(声明要点) | 账 |
|
||||
|---|---|---|
|
||||
@@ -71,7 +71,7 @@
|
||||
|
||||
| 代号 | on / when / do(声明要点) | 账 |
|
||||
|---|---|---|
|
||||
| 破封一击 | on 挖开有旗的危险格:额外 +1 层(疼痛记忆同账) | 旗=标定引信、挖=引爆——推理定位的显式回报;挂棋盘事实(挖开格当时有旗)非玩家意图判定(扩签:被挖格当时有旗) |
|
||||
| 破封一击 | on 挖开有封印印记的危险格:额外 +1 层(疼痛记忆同账) | 印记=标定引信、挖=引爆——推理定位的显式回报;挂棋盘事实(挖开格当时有封印印记)非玩家意图判定(扩签:被挖格当时有封印印记) |
|
||||
|
||||
**节奏系(3)**
|
||||
|
||||
@@ -100,13 +100,13 @@
|
||||
| 代号沿用 | 目标族 | on / when / do 要点 | 备注 |
|
||||
|---|---|---|---|
|
||||
| 淬毒刃纹 | 战斗系(克制向) | on attack_commit;when 克制(advantageous);do 追加 +N | 数值归调参批 |
|
||||
| 封印爆裂 | 插旗系 | on flag_hit;do 全体存活敌 N 群伤 | 插旗系补第 4 件;数值归调参批 |
|
||||
| 封印爆裂 | 封印系 | on flag_hit;do 全体存活敌 N 群伤 | 封印系补第 4 件;数值归调参批 |
|
||||
|
||||
惊巢反制=退役进素材库(不迁入)。
|
||||
|
||||
### 扩签登记(迭代 20 实装已承载——2026-10-12 追认④写入文档换代)
|
||||
|
||||
- **落地结果**:事实候选 10 条中 6 条落 FACTS 词位(边缘格判定/空白连锁判定/单次伤害量/被挖格当时有旗/雷罚伤害量/生命比例),4 条改道 adventure 域计数器(类型集合计数器/本轮挖格花费/本轮开格数/本轮踩雷数计数器——跨事件累积量走计数器+value_event 比较,不占 fact 词位,T0 定架构);停手事件已落(dig_stop);实现随裁补位=battle_won 事件(战地包扎所需,登记未列)、mod_eq 算子(周期触发)、hp_ratio(百分比 int 口径)等 3 项事实、新效果类型 7 项。
|
||||
- **落地结果**:事实候选 10 条中 6 条落 FACTS 词位(边缘格判定/空白连锁判定/单次伤害量/被挖格当时有封印印记/雷罚伤害量/生命比例),4 条改道 adventure 域计数器(类型集合计数器/本轮挖格花费/本轮开格数/本轮踩雷数计数器——跨事件累积量走计数器+value_event 比较,不占 fact 词位,T0 定架构);停手事件已落(dig_stop);实现随裁补位=battle_won 事件(战地包扎所需,登记未列)、mod_eq 算子(周期触发)、hp_ratio(百分比 int 口径)等 3 项事实、新效果类型 7 项。
|
||||
- **连带**:净化工兵退役,rewrite_board 效果类型自引擎除名(扩签「暂缓:清图事件」不受影响,继续挂起)。
|
||||
- **暂缓**:清图事件(随清图奖励题)。
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
|
||||
**边界判据(一句话)**:**一次冒险内获得、冒险收束即清零的,是奇物;跨冒险跟着你走的,是秘宝。**
|
||||
|
||||
这条判据走的是生命周期,不走"是不是物品"。原因:奇物这个筐里既装"角色自身的变化",也装金币这类一次性兑付物——用"拿在手里 vs 带在身上"去切,切不开它们,但用"当局清零 vs 跨局保留"能一刀切开,且对筐里所有东西都成立。
|
||||
这条判据走的是生命周期,不走"是不是物品"。原因:奇物这个筐里既装"角色自身的变化",也装 GP 这类一次性兑付物——用"拿在手里 vs 带在身上"去切,切不开它们,但用"当局清零 vs 跨局保留"能一刀切开,且对筐里所有东西都成立。
|
||||
|
||||
## 系统范围
|
||||
|
||||
@@ -220,7 +220,7 @@
|
||||
|
||||
#### 1.3 资源:转换源凭证
|
||||
|
||||
资源这一类装的是"不抬高战斗属性、也不改规则,但让你更有余地"的东西。成员现行事实源=本文件「资源(重设计·基础框架 v1)」节的**凭证件表(新 5+留任 2)**;旧枚举四项的去向:行动点上限归属性值提升轴(见 1.2)、刷新次数由刷新券替代、金币与回复留任为小金币袋/应急口粮。
|
||||
资源这一类装的是"不抬高战斗属性、也不改规则,但让你更有余地"的东西。成员现行事实源=本文件「资源(重设计·基础框架 v1)」节的**凭证件表(新 5+留任 2)**;旧枚举四项的去向:行动点上限归属性值提升轴(见 1.2)、刷新次数由刷新券替代、GP 与回复留任为小 GP 袋/应急口粮。
|
||||
|
||||
**资源为什么单独成一类**:它的成员不满足"抬高战斗属性"(那归属性值提升),也不满足"改写规则"(那归专长),但玩家拿到时的感受是一致的——"我能做的事变多了"。把它们跟属性提升混在一起,会让"加了多少攻击"这种可度量的提升和"多一次重抽"这种不可度量的余地摆在同一张候选卡上,玩家没法比。即时兑付的金币与回复同留本类、不独立成第四类(2026-10-05 用户定)——判据与资源完全同源,拆出去只会让读者多查一张表。
|
||||
|
||||
@@ -265,7 +265,7 @@
|
||||
|---|---|---|---|
|
||||
| **专长** | 凭证形式(见 2.2) | 凭证形式(见 2.2) | **直接给**(唯一的直接渠道) |
|
||||
| **属性值提升** | 出 | 出(口径「训练」) | 不出现 |
|
||||
| **资源** | 出 | 出(**金币除外**,见 2.4) | 不出现 |
|
||||
| **资源** | 出 | 出(**GP 除外**,见 2.4) | 不出现 |
|
||||
|
||||
**这张表的形状**:Boss 渠道是**专长的独占渠道**,也是唯一**直接**给专长的渠道;奖励节点与商店不直接给专长,但会出现通往专长的**凭证**。另两类不走 Boss 渠道,只在奖励节点与商店两个并行出口出现。三条渠道的分工因此是"一块独占 + 两块并行",不是三块平分。这条形状本身要记住:它意味着专长的获取节奏与其他奇物的获取节奏**由完全不同的机制决定**——前者靠打赢,后者靠抽取与购买。
|
||||
|
||||
@@ -292,7 +292,7 @@
|
||||
|
||||
**它归专长,不归资源**:它给的不是"余量",而是"一件你以前不会的事"——只是把选择推迟到一次三选一。按 1.4 的分类判据(去掉它之后角色少了什么),它属于专长。所以在交叉表上,专长在非 Boss 渠道的表现是**只以凭证形式出现**,不是"不出现"。
|
||||
|
||||
**为什么非 Boss 渠道只给凭证**:如果商店也能直接买到一个指定的专长,玩家就能用金币把构筑买出来,Boss 渠道的"打赢才拿到"就失去意义了。凭证保留了惊喜(开出来的还是三选一,不是指定),但不让玩家用钱直接定点购买。
|
||||
**为什么非 Boss 渠道只给凭证**:如果商店也能直接买到一个指定的专长,玩家就能用 GP 把构筑买出来,Boss 渠道的"打赢才拿到"就失去意义了。凭证保留了惊喜(开出来的还是三选一,不是指定),但不让玩家用钱直接定点购买。
|
||||
|
||||
##### 凭证的三个性质
|
||||
|
||||
@@ -342,7 +342,7 @@
|
||||
|
||||
**所以要害不是"有没有例外",而是"例外能不能被算出来"**。三层清单不是不能用,但每一条都必须写出理由;一条写不出理由的例外,就是坏味道,应该回头质疑分类是不是分错了。
|
||||
|
||||
**为什么不干脆拆成第四个分类(零例外的那条路)**:分类轴回答的是"给的是什么",金币给的是余量,和刷新券、储备金袋同类。按"能不能进商店"去反推分类,等于**用渠道轴的性质去切分类轴**,两根轴又缠回一起了——这是本文件 v2.0 专门拆开的东西,不能为了消灭一条例外再缠回去。而且为一个只有一项的分类立枚举,读者会以为它和另三类是同一重量级的划分,实际它只是某一项恰好踩到了一条经济规则。
|
||||
**为什么不干脆拆成第四个分类(零例外的那条路)**:分类轴回答的是"给的是什么",GP 给的是余量,和刷新券、储备金袋同类。按"能不能进商店"去反推分类,等于**用渠道轴的性质去切分类轴**,两根轴又缠回一起了——这是本文件 v2.0 专门拆开的东西,不能为了消灭一条例外再缠回去。而且为一个只有一项的分类立枚举,读者会以为它和另三类是同一重量级的划分,实际它只是某一项恰好踩到了一条经济规则。
|
||||
|
||||
三个方案的真实代价,摆出来不藏:
|
||||
|
||||
@@ -358,7 +358,7 @@
|
||||
|
||||
| 约束 | 层 | 理由 |
|
||||
|---|---|---|
|
||||
| 金币不进商店 | 二层·可计算条件 | 计价物不自售——商店的计价物是 GP |
|
||||
| GP 不进商店 | 二层·可计算条件 | 计价物不自售——商店的计价物是 GP |
|
||||
| 专长在非 Boss 渠道只给凭证 | 一层·分类自身的形态 | 见 2.2——防止用钱定点买构筑 |
|
||||
| 属性值提升与资源不出现在 Boss 渠道 | **不是约束** | 见 2.1——这是渠道轴的定位(Boss 是专长独占渠道),不属默认原则管辖 |
|
||||
|
||||
@@ -372,7 +372,7 @@
|
||||
|
||||
- **作用对象**:角色本人,以及角色参与的结算过程。奇物不改敌人、不改棋盘生成、不改关卡内容。
|
||||
- **刷新券的例外**:凭证不进持有集——到手即结算进刷新存量账(冒险级)、加完消尽。它作用在三选一界面上,改的是"这一局里你能重抽几次",而不是角色身上的任何数字。它是资源里唯一一条作用对象不是角色的项——留在这里是因为它满足另外两条:当局获得、当局有效。
|
||||
- **时间范围**:整局冒险。专长与属性值提升自获得起对本局剩余所有关卡生效,跨关携带且关间不清零;即时兑付凭证(小金币袋 / 应急口粮)拿到即结算消尽。
|
||||
- **时间范围**:整局冒险。专长与属性值提升自获得起对本局剩余所有关卡生效,跨关携带且关间不清零;即时兑付凭证(小 GP 袋 / 应急口粮)拿到即结算消尽。
|
||||
- **归属范围**:不进账号永久进度,不带到下一次冒险。
|
||||
|
||||
### 4. 生命周期
|
||||
@@ -408,7 +408,7 @@
|
||||
|
||||
| 类型 | 内容 |
|
||||
|---|---|
|
||||
| 依赖(概念) | 角色、结算管线、行动点、地形、关卡节点地图、局内金币钱包、三选一界面 |
|
||||
| 依赖(概念) | 角色、结算管线、行动点、地形、关卡节点地图、局内 GP 钱包、三选一界面 |
|
||||
| 依赖(数据) | `feats.tres`(专长定义行)、`adventure.tres`(属性值提升与资源的种类配额与值)、`shop.tres`(货架取舍) |
|
||||
| 输出(对外) | 持有集、生效中的分类投影、剩余候选池、可用重抽次数 |
|
||||
| 明确边界 | 不写账号进度、不改敌人与关卡内容、不承载具体数值 |
|
||||
@@ -443,8 +443,8 @@
|
||||
5. 玩家可见的文案不出现分类名与内部分组标签——只写效果,归类让玩家自己推断。
|
||||
6. 文档与代码里提到它时只有"奇物"这一个名字;需要区分时用"专长/属性值提升/资源"描述,禁止另造称呼。
|
||||
7. 刷新凭证不进角色加算区、不进持有集——刷新券到手即结算进刷新存量账,只改三选一界面的可用重抽次数。
|
||||
8. 即时兑付凭证(小金币袋/应急口粮)不进持有集——到手即结算消尽。
|
||||
9. 金币不出现在商店货架上——这是「计价物不自售」可计算条件自动判定的结果,不是给金币单独立的一个分类;它确实是在分类白名单之外加的一道过滤,只是这道过滤可自动计算而非靠枚举。
|
||||
8. 即时兑付凭证(小 GP 袋/应急口粮)不进持有集——到手即结算消尽。
|
||||
9. GP 不出现在商店货架上——这是「计价物不自售」可计算条件自动判定的结果,不是给 GP 单独立的一个分类;它确实是在分类白名单之外加的一道过滤,只是这道过滤可自动计算而非靠枚举。
|
||||
10. 一个渠道一旦确定要出某个分类,该分类的成员就都在它的池子里——"渠道出哪些分类"不受这条约束,那是渠道轴的定位。
|
||||
11. 凭证拿到即开,不进持有集,玩家无法囤积——选中或买下的同一时刻就开专长三选一。
|
||||
12. 凭证带有计步保底:连续 5 次三选一展示未出现则第 6 次必出;计数跨奖励节点与商店共享,刷新后的重新展示计入次数,限购用满后保底不再触发。
|
||||
@@ -485,7 +485,7 @@
|
||||
| **v3.9** | 2026-10-09 | **B3/B4 两裁写入文档(用户令)**:①P1 后置「两项合成高阶项」注销——非用户设计意图的脏信息,合成方向若需要按新体系重新生一件;②§3 刷新次数例外句口径换代——一律按最新设计口径:刷新次数由刷新券替代(凭证到手即结算进刷新存量账、加完消尽不进持有集),旧「进同一份持有账本」表述作废、随实装批整节删除 |
|
||||
| **v3.10** | 2026-10-09 | 文档正确性审查批·独立复核(worktree docaudit-2026-10-09):①§1.3 异质性节「被写入的账」清单对齐凭证件表——旧四项时代「AP 上限」摘除(已归属性值提升轴,§1.2 在途注),补生命账/秘宝充能两账;②依赖与输出表 `relics.tres` 改 `feats.tres`(表文件已随词族对齐批换代,data/tables/ 无 relics.tres——代码实证) |
|
||||
| **v3.11** | 2026-10-10 | **正文换代批(方案甲,用户裁「旧的删、误标改」——同秘宝.md v2.2 同法)**:①头部冻结横幅摘除——所指「流派/档位/27 件清单」旧章节正文已不存在,名单承载=[道具退役素材库](../../../research/道具退役素材库.md)表二;②专长/资源两节引言去「冻结遗留态/随实装批整体替换」错标,各落一句「新框架实装批落地前,现役代码按同框架运行」;③§1.3 旧资源四项枚举表删除(成员去向一行交代:行动点上限归属性值提升轴/刷新次数由刷新券替代/金币回复留任为小金币袋/应急口粮),回复归属裁定并入「资源为什么单独成一类」段;④§1.2 在途注与 §3 刷新例外去标注改正文(行动点上限归本轴/刷新券口径一律按最新设计);⑤§1.6 单件举例换新框架件(奥术余烬/贯穿射击→双管镐/疼痛记忆);⑥「谓词」用词清除——「可计算谓词」改「可计算条件」(正文与验收,版本历史行引述豁免);⑦验收 4/7/8/9 换代新口径+尾部现役代码运行线;⑧P1/P2 括注清算(已清偿/已注销条目由版本历史承载)+待办节收编为 06 单点指针。真旧内容承载=素材库表二+git 历史 |
|
||||
| **v3.12** | 2026-10-11 | **自爆流扩容批(用户逐裁——踩雷系从被动补偿转主动输出循环)**:踩雷/受伤系 3→7——新增爆芯(踩雷→本轮攻击 +N,走面板乘区)/连爆(同轮多雷递进加层,与疼痛记忆 combo 涌现)/爆心冲击(踩雷→全体敌 雷伤×倍率 直伤,倍率 >1 结构锚——「角色与怪物互相吃伤害」系用户形态本体:开安全格零代价、引爆有代价故回报须更高)/雷蜜(踩雷→回复 N,比值 <1 结构锚);新增跨族桥引信标定(挖开有旗危险格→+1 层——旗=标定引信、挖=引爆,插旗×踩雷推理闭环);扩签登记 +3(本轮踩雷数计数器/被挖格当时有旗/雷罚伤害量);**踩雷转化对账锚**顺带登记(净血账期望须为负,两轮压不住砍血蜜——喂雷流 R5 甲教训同源的 kill-switch);用户裁定:主动/误踩不判定(不预判玩家意图,拿件自选收益最高操作)、爆芯走面板、爆心冲击按倍率非折扣;防御向两件(保险丝/安全帽)保留不动——双刃剑两刃相辅相成;附带修正基础件表战斗系计数 3→2(v3.0 起表头与行数不符),件表总 18→23 |
|
||||
| **v3.12** | 2026-10-11 | **自爆流扩容批(用户逐裁——踩雷系从被动补偿转主动输出循环)**:踩雷/受伤系 3→7——新增爆芯(踩雷→本轮攻击 +N,走面板乘区)/连爆(同轮多雷递进加层,与疼痛记忆 combo 涌现)/爆心冲击(踩雷→全体敌 雷伤×倍率 直伤,倍率 >1 结构锚——「角色与怪物互相吃伤害」系用户形态本体:开安全格零代价、引爆有代价故回报须更高)/雷蜜(踩雷→回复 N,比值 <1 结构锚);新增跨族桥引信标定(挖开有旗危险格→+1 层——印记=标定引信、挖=引爆,插旗×踩雷推理闭环);扩签登记 +3(本轮踩雷数计数器/被挖格当时有封印印记/雷罚伤害量);**踩雷转化对账锚**顺带登记(净血账期望须为负,两轮压不住砍血蜜——喂雷流 R5 甲教训同源的 kill-switch);用户裁定:主动/误踩不判定(不预判玩家意图,拿件自选收益最高操作)、爆芯走面板、爆心冲击按倍率非折扣;防御向两件(保险丝/安全帽)保留不动——双刃剑两刃相辅相成;附带修正基础件表战斗系计数 3→2(v3.0 起表头与行数不符),件表总 18→23 |
|
||||
| **v3.13** | 2026-10-11 | **生存件扩容批(用户令「增加生存类的个数」——四类盘点呈报后逐裁)**:件表 23→27——①石肤(on 受伤:AC +1 本场累计上限 M)入踩雷/受伤系——恒定减伤形态被否(用户裁「太硬霸」),改受击成长型护甲;②背水(when 生命 ≤50%:受伤额外 −N)入踩雷/受伤系——风险联动减伤,低血不再是纯劣势;生命比例条件事实系其实现前置需求,用户批扩签+待办登记 06;③铁旗(on 标中:本轮 AC +N)入插旗系——生存奖励挂正确推理,与旗语回响共享事件;④战地包扎(on 战斗胜利:回复 N)入战斗系——战后通用恢复,补「恢复只服务自爆流」缺口。四类占比换代:减伤 2(安全帽/背水)/护甲 3(保险丝/石肤/铁旗)/恢复 2(雷蜜/战地包扎)对增伤 8 ≈ 1:1;用户口径订正=保险丝护盾归提升护甲类(AC 判定)、减伤专指受击直接扣减伤害 |
|
||||
| **v3.14** | 2026-10-11 | **实装前置两项裁定写入文档(用户裁)**:①§2.5——Boss 渠道直接给专长(主渠道、唯一直接渠道)**已裁随专长实装批本批落地不再分期**;②§2.5 新增池结构选型澄清——池结构正主=案 D(v3.3 用户定夺在案:归档打底做翼+曝光槽 2+1+令牌=出现次数上限),「概率与上限解耦」实现路径(v3.4 在册三案)系**实装侧自选项非用户裁定项**(原裁定「实现设计不定于现在」=实装批内依代码事实自选不再上问)——成因=会话误将实装侧自选升级为用户裁定项重问已定夺事项,经历史记录(2026-10-07 讨论记忆+TP0 令牌池天然兼顾核实结论)找回定夺后澄清;06 渠道分工条状态行顺带同步 |
|
||||
| **v3.15** | 2026-10-11 | **专长件第一版命名批(用户裁——对外命名纪律:无「雷」无「插旗」,插旗对外=封印、危险格对外风味=地下城陷阱/怪物巢穴;「扫雷插旗」系内部开发用语、对外=探索/挖掘地下城)**:九件代号换代——插旗系:旗语回响→**封印回响**/猎旗手→**封印匠**/铁旗→**封印桩**;踩雷/受伤系:爆芯→**陷阱本能**/连爆→**连环陷阱**/爆心冲击→**陷阱爆发**/雷蜜→**血蜜**;跨族桥:引信标定→**破封一击**;迁入登记:标中殉爆→**封印爆裂**;示警烟火/疼痛记忆/保险丝/见血开窍/石肤/背水/爆破会计等保留(无雷/旗字);纪律登记=术语表新增「对外命名纪律」节(v1.6);版本历史行引用旧代号系留痕不动;命名纪律试例=件名,后续全部对外命名(显示名/UI 文案)同尺 |
|
||||
|
||||
@@ -167,7 +167,7 @@ GP(显示名「金币」)与商店房随 2026-09-20 GP+商店房批落地,
|
||||
|
||||
| 杠杆位 | 口径 | 说明 |
|
||||
|---|---|---|
|
||||
| GP 掉落均值与方差 | 普通 / 精英(预留行)/ Boss 三行掷定区间 | 掉落量级与战斗节奏同族;格面 gp 型(金币袋,低概率)是"惊喜意外获取"的补充供给 |
|
||||
| GP 掉落均值与方差 | 普通 / 精英(预留行)/ Boss 三行掷定区间 | 掉落量级与战斗节奏同族;格面 gp 型(GP 袋,低概率)是"惊喜意外获取"的补充供给 |
|
||||
| 关级掉落加值 | 逐关一行 | 关间供给抬升的半边 |
|
||||
| 关级价格加成 | 逐关一行 | 关间价格上涨对应关间掉落上升的另一半——两轴同向联动的对子(legacy 模式轴;pool 模式由 b 因子承载同一杠杆位) |
|
||||
| 货架基价 | pool_shelf 六行(攻击 / 生命上限 / 护甲 / 行动点件 / 凭证 / 回复) | **v0.22 换代**:重复购买爬价由 A 链承载(同店买越多越贵)+ b 跨关递增(后关整体更贵),步长逐档递增语义退役随 legacy 模式保留 |
|
||||
|
||||
@@ -95,14 +95,14 @@
|
||||
| 档 | 成员 | 概率位 | 保底上限 | 型级保底登记 |
|
||||
|---|---|---|---|---|
|
||||
| T1 攻击类 | attack / blast / pierce / magic | 最高 | 0 | 无 |
|
||||
| T2 增益类·GP 小袋 | defense / weaken / 小金币袋(gp) | 中 | 0 | 无 |
|
||||
| T2 增益类·GP 小袋 | defense / weaken / 小 GP 袋(gp) | 中 | 0 | 无 |
|
||||
| T3 回复(可保底档) | heal(将来可扩) | 低 | 1 | heal = 每板 ≥1 |
|
||||
| T4 惊喜类(永不保底档) | action / 大宝箱(大额 GP,枚举新增归实装批)/ 未来稀有型 | 极致罕见 | 0 | 永不登记 |
|
||||
|
||||
- **档由两个参数定义:概率位 + 保底上限**。「永不保底」不单立规则——T4 的保底上限 = 0 即其统一表达;T1/T2 上限同为 0。
|
||||
- **保底数量挂在型上、不挂在档上**:每个型各自登记「每板至少出几个」。档内登记保底的型数 ≤ 档上限 → 全部兑现;> 上限 → 每板从登记型中随机选定「上限」个兑现,其余型该板按普通概率出现、不保底。
|
||||
- **补签纪律**:执行序 = 装板摇号(含偏运硬币/board_skew 投影)→ 按上限定本期保底型集合 → 校验补签 → 板上全程只读。补签只改类型身份:危险格与安全格不动(补签格可为雷可为安全格,危险格与安全格同池不破)、不消费权重(补签不是一次取号)、清图判定不动、不泄露元信息(补签格与摇号格不可区分)。粒度 = 板,换板重新校验。
|
||||
- **GP 数值锚**:以战斗结束 GP 奖励为锚——小金币袋 ≈ 其 1/10、大宝箱 ≈ 其 1 倍(具体数值归调参批)。
|
||||
- **GP 数值锚**:以战斗结束 GP 奖励为锚——小 GP 袋 ≈ 其 1/10、大宝箱 ≈ 其 1 倍(具体数值归调参批)。
|
||||
- 大宝箱为枚举新增(九型→十型走本文修订流程,不随手加行);微光归通用增益组(五色相不变,组内不细分正好容下)。
|
||||
- **对外稀有度映射**(现行事实源=[核心循环](../../01-核心循环.md)「档位与获取规则」节):T1=普通 / T2=优秀 / T3=稀有 / T4=传说;任何概率提升禁止改变本档保底承诺(保底=承诺非概率)。
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
| 玩家动作 | 安全格 | 危险格 |
|
||||
|---|---|---|
|
||||
| 开格 | **+类型**:该格资源的正向兑付(奖励) | **−类型**:该格资源的负向兑付(惩罚) |
|
||||
| 标旗且留到轮末判定 | **−类型**:标错,该格资源的负向兑付(惩罚) | **+类型**:标中,该格资源的正向兑付(奖励) |
|
||||
| 封印且留到轮末判定 | **−类型**:标错,该格资源的负向兑付(惩罚) | **+类型**:标中,该格资源的正向兑付(奖励) |
|
||||
| 插旗格直接挖开(插旗不可逆批 2026-09-19) | 零兑付(四情况④:零惩罚零奖励——标空不判、正向作废) | **−类型**照常(四情况②:只受挖雷一层惩罚——标中不发) |
|
||||
|
||||
矩阵的定义归本文;把矩阵跑起来的路由(结算队列、判定基线、逐行兑付)归[战斗结算](战斗结算.md)的授予段。blast 型负向 = 警觉。矩阵只描述现行规则;被本矩阵取代的旧体系与历次结构变更(撤旗退役、伏击换装等)一律记版本历史,不在正文复述。
|
||||
@@ -152,7 +152,7 @@
|
||||
|
||||
### 清图奖励对象:整图封装,可配置可替换
|
||||
|
||||
清图奖励不属于任何一格的格面资源——它是作用域为整张板的独立奖励对象:把一张图的雷全部清完(全部安全格开完)时结算发的那一份。装板摇号时与格子资源同批判尾摇定身份;清图批兑付恰好一次;完美排雷(零误标且至少标中一面旗)追加第二份同身份兑付。
|
||||
清图奖励不属于任何一格的格面资源——它是作用域为整张板的独立奖励对象:把一张图的雷全部清完(全部安全格开完)时结算发的那一份。装板摇号时与格子资源同批判尾摇定身份;清图批兑付恰好一次;完美排雷(零误标且至少一次封印标中)追加第二份同身份兑付。
|
||||
|
||||
它是可配置可替换的封装:数据面上是清图池里的一行(现行默认槽 clear_default),换行即换内容,机制零改动。按图类型差异化已留结构位——`clear_<图类型>` 命名空间预留,不同地图类型可以配不同的清图奖励;词表现行 = {dungeon, underdark, deep_underdark}(2026-09-19 定稿两值、第三关内容批 2026-09-20 增 deep_underdark,玩家侧「地图类型」),差异化内容启用随内容批。
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
## 设计目的
|
||||
|
||||
战斗里有一类效果不在当场一次性用掉,而要管上几次结算:挖开安全格拿到的主角增益、标中旗带来的怪物削弱、踩雷喂给怪物的增强(警觉——blast 型负向)、标错旗招来的负向兑付,都是这类。本文把它们统称"状态":发给主角的有益效果叫增益(失衡与乏力是例外——它们是发给主角的减益),发给敌人的负面效果叫减益;敌方侧的增强同样是状态——几个方向共用一本账。
|
||||
战斗里有一类效果不在当场一次性用掉,而要管上几次结算:挖开安全格拿到的主角增益、封印标中带来的怪物削弱、踩雷喂给怪物的增强(警觉——blast 型负向)、标错封印招来的负向兑付,都是这类。本文把它们统称"状态":发给主角的有益效果叫增益(失衡与乏力是例外——它们是发给主角的减益),发给敌人的负面效果叫减益;敌方侧的增强同样是状态——几个方向共用一本账。
|
||||
|
||||
增益状态就是这本账:一个容器收下全部状态,用同一套规矩管理——发入、合并(同一种效果重复拿到时按表行策略处理:叠层加一,或只刷新剩余次数——读 `status_effects.tres` 逐行 stack_policy)、衰减(每次结算后剩余次数减一,减到零效果消失)、清空(战斗结束全部清除)。没有它,几类效果得各写一套计时逻辑,结算明细也无法逐行指回"这效果是我哪步棋带来的"。容器管机制、不管数值从哪来:某个效果该多大,由各收益系统的表去定,容器只照章入账、按次衰减。
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
## 在核心循环中的位置
|
||||
|
||||
```
|
||||
扫雷阶段:挖格 / 插旗 / 踩雷 ──(事实流)──▶ 战斗结算(轮末逐行兑现)──(授予 / 查询兑付 / 衰减)──▶ 增益状态 ──▶ 效果落进结算公式
|
||||
扫雷阶段:挖格 / 封印 / 踩雷 ──(事实流)──▶ 战斗结算(轮末逐行兑现)──(授予 / 查询兑付 / 衰减)──▶ 增益状态 ──▶ 效果落进结算公式
|
||||
```
|
||||
|
||||
增益状态站在轮末结算这一段,是战斗结算身后的状态仓库:扫雷攒下的因里,凡是"要管上几次结算"的那部分都存在它这里。扫雷事实不直接进容器——战斗结算每轮把事实兑换成状态发入,兑付时再来读生效清单。
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
### 一个容器管全部方向:增益减益同账本
|
||||
|
||||
主角的增益与减益、敌方的削弱与增强——各个方向的效果在容器里是同一种东西,都叫状态实例(容器里的一份效果,带层数与剩余次数),走同一套受理、合并、倒数、清除的语义。踩雷的惩罚与标中旗的收益共用同一本账,玩家能在同一种读法下看到雷的两面:一边喂强敌人,一边拆它的皮。
|
||||
主角的增益与减益、敌方的削弱与增强——各个方向的效果在容器里是同一种东西,都叫状态实例(容器里的一份效果,带层数与剩余次数),走同一套受理、合并、倒数、清除的语义。踩雷的惩罚与封印标中的收益共用同一本账,玩家能在同一种读法下看到雷的两面:一边喂强敌人,一边拆它的皮。
|
||||
|
||||
容器四条硬规矩:
|
||||
|
||||
@@ -58,14 +58,14 @@
|
||||
|
||||
### 授予只在结算时发生:事实换状态的唯一入口
|
||||
|
||||
状态只在轮末结算时发入容器。挖掘期的挖格、插旗、踩雷都不直接改容器——棋盘只上报"发生了什么"的事实,战斗结算在每轮结算时把事实统一兑换成状态发进来。这个授予入口是唯一的:棋盘和奖励背包都没有直通通道。
|
||||
状态只在轮末结算时发入容器。挖掘期的挖格、封印、踩雷都不直接改容器——棋盘只上报"发生了什么"的事实,战斗结算在每轮结算时把事实统一兑换成状态发进来。这个授予入口是唯一的:棋盘和奖励背包都没有直通通道。
|
||||
|
||||
每笔状态随身携带归因记录:来源类别五选一、来自哪个格子、发生在第几轮。结算明细因此能逐行回答"这效果是我哪步棋带来的"。
|
||||
|
||||
| 来源类别 | 什么时候发生 | 发给谁 |
|
||||
|---|---|---|
|
||||
| 安全格 | 挖开安全格拿到增益 | 主角 |
|
||||
| 标中旗 | 轮末旗判定标中(危险格被控制) | 敌方,削弱 |
|
||||
| 封印标中 | 轮末封印判定标中(危险格被控制) | 敌方,削弱 |
|
||||
| 踩雷 | 挖开危险格并惊动 | 敌方,增强 |
|
||||
| 清图奖励 | 清图奖励槽含增益时 | 随行定,路径归[地图战斗资源](地图战斗资源.md)定稿 |
|
||||
| 标空旗 | 轮末旗判定标空(标了但格不是雷) | 该安全格格面资源的负向兑付(极性矩阵"标错"分支——2026-09-15 起不再三选一);载体裁决归[战斗结算](战斗结算.md) |
|
||||
@@ -180,7 +180,7 @@ empower 与 fortify 是敌方技能池增益技在容器侧的数据落点(技
|
||||
## P0 最小闭环
|
||||
|
||||
1. 战斗结算通知战斗开始:容器开账,空容器进入可用状态。
|
||||
2. 轮末结算时,战斗结算把这一轮的扫雷事实兑换成授予:挖开安全格给主角上增益、标中旗削弱敌人、踩雷给敌方上增强、标空旗触发反噬——授予入口是唯一进货口。
|
||||
2. 轮末结算时,战斗结算把这一轮的扫雷事实兑换成授予:挖开安全格给主角上增益、封印标中削弱敌人、踩雷给敌方上增强、标空封印触发反噬——授予入口是唯一进货口。
|
||||
3. 容器按表行合并策略受理(新建 / 叠一层 / 刷新),实例立即生效并携带归因记录。
|
||||
4. 战斗结算查询生效清单,逐行兑付进结算公式(有效值 = 层数 × 行值)。
|
||||
5. 兑付完做轮末衰减:全部实例剩余次数减一,归零移除——先兑付、后衰减。
|
||||
@@ -210,7 +210,7 @@ empower 与 fortify 是敌方技能池增益技在容器侧的数据落点(技
|
||||
| attack_up 幅度 | 百分比 [−100,100] 且非 0 | percent 行 magnitude | 增伤;当量锚的参照对象(最低档主角增益) |
|
||||
| ac_up 幅度 | 护甲等级 [−20,20] 且非 0 | ac 行 magnitude | 盾牌加护;掷点折扣判定阈值 = 基准 AC(读 hero 表)逐层 +1,不入任何池、消费归[战斗结算](战斗结算.md)掷点判定 |
|
||||
| alert 幅度 | [0, 4] | ac 行 magnitude | 警觉(敌方护甲等级 +1/层 provisional);消费 = 战斗结算护甲等级掷点判定 |
|
||||
| weaken 幅度 | 百分比取值域 [60,85],取负生效 | percent 行 magnitude | 削弱;须过"标中旗锚"对照 |
|
||||
| weaken 幅度 | 百分比取值域 [60,85],取负生效 | percent 行 magnitude | 削弱;须过"封印标中锚"对照 |
|
||||
| enrage 幅度 | 百分比 [−100,100] 且非 0 | percent 行 magnitude | 暴走;attack 型负向行,进敌方输出修正池 |
|
||||
| off_guard 幅度 | 护甲等级 [−20,20] 且非 0 | ac 行 magnitude | 失衡;标空旗反噬载体,掷点判定阈值逐层下调(2026-09-18 换装 AC 轴,不入池、退出 hero_defense 池) |
|
||||
| sapped 幅度 | 百分比 [−100,100] 且非 0 | percent 行 magnitude | 乏力;危险格负向 weaken 型,进主角输出修正池(2026-09-15 格面资源批补登记) |
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
## 设计目的
|
||||
|
||||
玩家在雷图上做的每个决策——挖开的格、插中的旗、踩到的雷——都不会立即生效,而是等轮末由本系统逐行兑换成战斗结果。战斗结算是战斗域的编排与结算中枢:每轮怎么收场、收益怎么折成数值、胜负怎么判定,全部由它编排和裁决。[核心循环](../../01-核心循环.md)里那句"自动战斗不是过场,是阅卷"说的就是它——每一行结算都能指回玩家刚才的哪一步棋。
|
||||
玩家在雷图上做的每个决策——挖开的格、落下的封印、踩到的雷——都不会立即生效,而是等轮末由本系统逐行兑换成战斗结果。战斗结算是战斗域的编排与结算中枢:每轮怎么收场、收益怎么折成数值、胜负怎么判定,全部由它编排和裁决。[核心循环](../../01-核心循环.md)里那句"自动战斗不是过场,是阅卷"说的就是它——每一行结算都能指回玩家刚才的哪一步棋。
|
||||
|
||||
它还是战斗域内唯一的跨系统调用发起方:敌人、状态、奖励、棋盘各系统彼此不直接调用,一切编排从这里走。没有这个枢纽,扫雷攒下的因没有兑付面,战斗的果也无法归因。
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
## 在核心循环中的位置
|
||||
|
||||
```
|
||||
挖掘期:玩家开格 / 标旗 / 停手 ──(事实流 + 账本扣费)──▶ 战斗结算(轮末五段兑现)──▶ 胜负 / 换图 / 冒险推进
|
||||
挖掘期:玩家开格 / 封印 / 停手 ──(事实流 + 账本扣费)──▶ 战斗结算(轮末五段兑现)──▶ 胜负 / 换图 / 冒险推进
|
||||
```
|
||||
|
||||
本系统站在"扫雷结束、结果揭晓"的那一段:挖掘期它只安静缓冲[排雷玩法](../排雷循环/排雷玩法.md)上报的事实流,不做任何兑付;轮末把这一轮攒下的因逐行兑现成战斗的果。再往下游,胜负去向交[冒险结构](../冒险循环/冒险结构.md)接手,明细交[HUD 框架](../表现与支撑/HUD框架.md)呈现。
|
||||
@@ -58,7 +58,7 @@
|
||||
|
||||
| 段 | 干什么 |
|
||||
|---|---|
|
||||
| ① 授予段 | 结算队列先过滤再分批兑换:开格、旗判定、清图,按极性矩阵路由(资源/增益/治疗/行动点/GP 当场兑付;伤害形态单据暂存不兑,详见授予段一节) |
|
||||
| ① 授予段 | 结算队列先过滤再分批兑换:开格、封印判定、清图,按极性矩阵路由(资源/增益/治疗/行动点/GP 当场兑付;伤害形态单据暂存不兑,详见授予段一节) |
|
||||
| ② 增益/减益段 | 把主角与敌人身上的活跃效果一次性合成本结算的修正池(同侧百分比修正的加总桶) |
|
||||
| ③ 战斗段 | 主角先基础攻击一次,随后敌人按行序逐个结算攻击,最后地图奖励与惩罚的伤害兑付在段末统一落地(详见战斗段一节) |
|
||||
| ④ 衰减段 | 移除到期的临时效果;每轮恰好一次,含末轮——清图奖励先兑付、效果后衰减 |
|
||||
@@ -78,13 +78,13 @@
|
||||
| 伤害行 | 每次伤害一行:目标、伤害分量、修正终值、击杀标记;吃护甲等级掷点的分量,掷点读数与折扣档位随行留档,nat20 暴击随行标记并金框高亮(行型封闭清单不变) |
|
||||
| 治疗行 | 治疗生效一行:封顶后的真实回复量 |
|
||||
| 奖励未生效行 | 满层拒收、满血治疗等合法例外一行 |
|
||||
| 标旗未中行 | 旗插空的零值归因行,每颗雷只记一次;标错的负向兑付另记效果行 |
|
||||
| 封印未中行 | 封印落空的零值归因行,每颗雷只记一次;标错的负向兑付另记效果行 |
|
||||
| 蓄力行 | 敌人本拍蓄力不动手(攒下一击)时记一行 **(2026-09-16 敌人技能池批改型为施放行 `cast`:敌人本拍施放增益技——0 伤害动作、具名技能、不掷不折〔原"不兑付伏击"读怪奖励语义随 2026-09-20 八型批伏击退役作废〕;蓄力语义改写为纯攻击增益技,见[敌人系统](敌人系统.md))** |
|
||||
| 衰减行 | 到期临时效果移除一行 |
|
||||
| 判定行 | 胜 / 负 / 继续各一行;终局判定行同时是胜负画面的数据锚 |
|
||||
| 高光行 | 完美排雷成立时一行,只记实际有效兑付 |
|
||||
|
||||
每行还携带公共字段:来源类别、来源格、轮次、显示名、数值,以及可空的高光标记(用于强调标中旗、清图奖励这类值得高亮的结果)。没生效也要留痕:两类"未生效"行如实记录合法例外,呈现时聚合计数,不逐行刷屏。
|
||||
每行还携带公共字段:来源类别、来源格、轮次、显示名、数值,以及可空的高光标记(用于强调封印标中、清图奖励这类值得高亮的结果)。没生效也要留痕:两类"未生效"行如实记录合法例外,呈现时聚合计数,不逐行刷屏。
|
||||
|
||||
任何一行找不到来源即断言失败——宁可返回错误,也不让"合并到看不出来源"的呈现混过数据层。但有些行天然没有棋盘来源,断言为此留了两层豁免,豁免集合是封闭清单,改动同样走本文修订。
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
|
||||
### 收益对照表:所有收益共用同一把尺子
|
||||
|
||||
开安全格给正向、标中旗给正向、踩雷与标错给负向、清图给清图奖励对象——来源不同、形态不同,但玩家必须能回答"挖这一格值不值",所以全部收益用一张效果档位对照表归一换算。折算单位是当量:1 当量等于 1 点主角生命的期望净变化。这张表是[行动经济](../排雷循环/行动经济.md)五条经济契约第一条"单一当量"的载体;本系统是全部五条契约的唯一对账责任方(契约本体见该文档,对账现状登记 [06-待办清单](../../06-待办清单.md))。
|
||||
开安全格给正向、封印标中给正向、踩雷与标错给负向、清图给清图奖励对象——来源不同、形态不同,但玩家必须能回答"挖这一格值不值",所以全部收益用一张效果档位对照表归一换算。折算单位是当量:1 当量等于 1 点主角生命的期望净变化。这张表是[行动经济](../排雷循环/行动经济.md)五条经济契约第一条"单一当量"的载体;本系统是全部五条契约的唯一对账责任方(契约本体见该文档,对账现状登记 [06-待办清单](../../06-待办清单.md))。
|
||||
|
||||
**结论**:单一线性换算全源共用,禁止分源改率;百分比效果按"每个结算的瞬时当量"口径折算。
|
||||
|
||||
@@ -119,7 +119,7 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 ×
|
||||
|
||||
### 授予段兑付:极性路由,四类动作各归各账
|
||||
|
||||
授予段消费结算队列。**队列与判定基线**:挖掘期玩家对格子的动作——开格、标旗——都进入结算队列;结算逐批兑付,不走逐动作出栈直算。旗判定以轮末在场旗位为基线:被直接挖开的旗已随挖掘消失、不在基线(零兑付——标中 / 标空让位于挖掘本体结局,见下文插旗不可逆四情况);开格事实不可撤(已开格无法回退)。过滤后按触发源分三批兑换,每格受理、每旗判定恰好一次。
|
||||
授予段消费结算队列。**队列与判定基线**:挖掘期玩家对格子的动作——开格、封印——都进入结算队列;结算逐批兑付,不走逐动作出栈直算。封印判定以轮末在场封印位为基线:被直接挖开的封印已随挖掘消失、不在基线(零兑付——标中 / 标空让位于挖掘本体结局,见下文封印不可逆四情况);开格事实不可撤(已开格无法回退)。过滤后按触发源分三批兑换,每格受理、每封印判定恰好一次。
|
||||
|
||||
兑付走**极性矩阵**(定义归[地图战斗资源](地图战斗资源.md)):开安全格 → 该格格面资源的正向;开危险格 → 负向;标中旗 → 该危险格资源的正向;标错旗 → 该安全格资源的负向。九型字典里每型各有一行正向、一行负向(gp 型随 2026-09-20 GP+商店房批增补——gp 正负两向兑付 = 战斗内 GP 缓冲,见下方兑付形态表);伏击随 2026-09-20 八型批退役,blast 型负向现况 = 警觉(敌方护甲等级 +1)。
|
||||
|
||||
@@ -128,14 +128,14 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 ×
|
||||
| 情况 | 兑付 |
|
||||
|---|---|
|
||||
| ① 插危险格、留到轮末判定 | 标中照常(该危险格资源正向) |
|
||||
| ② 插危险格、再直接挖开 | 只受挖雷一层惩罚(该危险格资源负向照常兑付;挖雷惩罚因惊动触发);标中不发(旗已随挖掘消失、不入判定基线) |
|
||||
| ② 插危险格、再直接挖开 | 只受挖雷一层惩罚(该危险格资源负向照常兑付;挖雷惩罚因惊动触发);标中不发(封印已随挖掘消失、不入判定基线) |
|
||||
| ③ 插安全格、留到轮末判定 | 标空惩罚照常(该安全格资源负向) |
|
||||
| ④ 插安全格、再直接挖开 | 零惩罚零奖励——正向兑付作废,记「奖励作废(插旗格直接挖开)」归因行(reward_ineffective 行型);标空判定同②自然缺席 |
|
||||
|
||||
| 批 | 兑付 |
|
||||
|---|---|
|
||||
| 挖格批 | 开到的安全格逐格兑该格资源的正向(插旗格直挖除外——四情况④零奖励);开到的危险格逐格兑该格资源的负向(插旗危险格照常——四情况②) |
|
||||
| 旗判定批 | 标中则兑该危险格资源的正向,每颗雷的资格只兑一次;标空则记"标旗未中"归因行,并兑该安全格资源的负向 |
|
||||
| 挖格批 | 开到的安全格逐格兑该格资源的正向(封印格直挖除外——四情况④零奖励);开到的危险格逐格兑该格资源的负向(封印危险格照常——四情况②) |
|
||||
| 封印判定批 | 标中则兑该危险格资源的正向,每颗雷的资格只兑一次;标空则记"封印未中"归因行,并兑该安全格资源的负向 |
|
||||
| 清图批 | 清图奖励对象恰好发一次;完美排雷追加第二份同身份兑付 |
|
||||
|
||||
授予段当场只兑非伤害形态(增益、治疗、行动点、GP 缓冲、警觉加层);**伤害形态兑付(爆裂、直伤、反噬)以伤害单据暂存,攒到战斗段末统一结账**(2026-10-06 用户裁——地图伤害账殿后,见[伤害单据与伤害控制器](#伤害单据与伤害控制器所有伤害走同一道门)与战斗段两节)。暂存单在授予段按「将兑付」回报——授予段内依赖兑付读数的流程决策(完美排雷第二份、高光份数)依据开单时点事实判定,该时点敌人存活有保证;战斗段末实际结账若目标已灭,控制器自记「奖励未生效」行。
|
||||
@@ -149,7 +149,7 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 ×
|
||||
| 即时治疗(flat) | heal 正向 | 主角按表值回复并封顶上限 | 满血时零兑付,记"奖励未生效"行 |
|
||||
| 直伤(flat) | heal 负向 | 主角在战斗段末扣表值生命(暂存单殿后统一落地),不经增益状态 | 主角倒下则地图账整体不兑,逐单留"未生效"行 |
|
||||
| 警觉加层 | blast 负向 | 敌方全体护甲等级 +1/层(读 `reward.tres` enemy_alert 行 → `status_effects.tres` alert 行),入增益状态容器 | 直授无上限;战斗段由防守方护甲等级读数消费 |
|
||||
| GP 缓冲(flat) | gp 正 / 负向 | 金币袋 / 破财按 power 记入战斗内 GP 缓冲(+power / −power);缓冲随战斗完成折进 battle_finished 的 gp_dropped 统一到账(钱包账本归[冒险结构](../冒险循环/冒险结构.md)) | 无拒收态——缓冲只在战斗边界与钱包结算,战斗域零钱包状态 |
|
||||
| GP 缓冲(flat) | gp 正 / 负向 | GP 袋 / 破财按 power 记入战斗内 GP 缓冲(+power / −power);缓冲随战斗完成折进 battle_finished 的 gp_dropped 统一到账(钱包账本归[冒险结构](../冒险循环/冒险结构.md)) | 无拒收态——缓冲只在战斗边界与钱包结算,战斗域零钱包状态 |
|
||||
| 行动点修正 | action 正/负向 | 下轮行动点 ±power(action_economy 排队,下一轮开始兑现后清零;下限 0) | 排队净值不跨轮保留;明细记效果行(effect_id=ap_delta) |
|
||||
|
||||
警觉(blast 负向——2026-09-20 八型批伏击退役换装)为敌方 side-wide 状态:多个敌人共享同一状态值、互不消耗,只活一轮、轮末清零;战斗段由防守方护甲等级读数消费(我打敌 = 敌方 armor_class + Σ敌方侧 ac 型状态)。其余各型负向受池 clamp 与叠层上限承载。
|
||||
@@ -297,7 +297,7 @@ EV 参考数不入正文(派生读数,需要时按判定式与现行表值
|
||||
## P0 最小闭环
|
||||
|
||||
1. 战斗开始序列跑完(关闸门、开容器、掷骰定敌数、生成敌人、装板并预分配资源、发开轮通知 + 开轮摇号),进入第一轮挖掘期。
|
||||
2. 挖掘期本系统只缓冲事实流(开格、标旗入结算队列),不做任何兑付。
|
||||
2. 挖掘期本系统只缓冲事实流(开格、封印入结算队列),不做任何兑付。
|
||||
3. 轮末自动触发五段结算,触发与事件到达序无关。
|
||||
4. 授予段按判定基线过滤(被挖开的旗不入判定),再按极性矩阵三批兑现:开安全格兑正向(插旗安全格直挖 = 四情况④零奖励作废行)、开危险格 / 标错旗兑负向(插旗危险格直挖照常——四情况②)、清图发清图奖励对象(完美乘数读 settlement.tres p_perfect)。
|
||||
5. 增益合成、主角先手加逐敌按摇定技能兑付(伤害技三乘法链 / 增益技施放行)加地图伤害账殿后(暂存单随战斗段末统一结账)、衰减恰好一次。
|
||||
@@ -308,7 +308,7 @@ EV 参考数不入正文(派生读数,需要时按判定式与现行表值
|
||||
|
||||
| 优先级 | 内容 | 后置原因 |
|
||||
|---|---|---|
|
||||
| P1 | 深度高光形态(标中旗即时动画、音画同步) | 数据面标记与当轮兑付已落,表现形态归[战斗表现](战斗表现.md)与美术 |
|
||||
| P1 | 深度高光形态(封印标中即时动画、音画同步) | 数据面标记与当轮兑付已落,表现形态归[战斗表现](战斗表现.md)与美术 |
|
||||
| P2 | 回放切点续玩 | 依赖[存档序列化](../表现与支撑/存档序列化.md)的快照能力实现 |
|
||||
|
||||
## 调参表
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
战斗屏是挖掘与结算两种形态共用的同一张屏:常驻双舞台(白话:战斗画面与扫雷图同屏常驻,像同一块屏上的两个舞台),结算期不切换场景,裁决与理由见 [battle.md 布局决策 1](../../ux/battle.md)。所以战斗表现的工作不是另做一个战斗场景,而是在既有呈现上叠加动画密度与演出——这是本系统范围边界的第一条。
|
||||
|
||||
"发生什么"与"怎么动"因此分了工:敌人死亡是血条归零后灰化加碎裂退场、禁止瞬间消失,结算明细带逐行滚动,完美排雷与标中旗有高光行强调——这些呈现语义已由 battle.md 与 HUD 框架定稿,本文不复述。本文将来承接的只是其上的动画密度:受击反馈、弹道、退场动画等类别。
|
||||
"发生什么"与"怎么动"因此分了工:敌人死亡是血条归零后灰化加碎裂退场、禁止瞬间消失,结算明细带逐行滚动,完美排雷与封印标中有高光行强调——这些呈现语义已由 battle.md 与 HUD 框架定稿,本文不复述。本文将来承接的只是其上的动画密度:受击反馈、弹道、退场动画等类别。
|
||||
|
||||
资产侧同理,这也是双舞台带来的管线约束:若舞台形态悬而未决,同一份角色资产可能因舞台不同而重画。现行解法是剪影跨舞台通用——角色剪影按"棋盘、结算画面与任一战斗舞台通用"设计,不为舞台未决问题付重画成本(art-bible §5.1;原 §3.1,2026-09-22 迁 §5.1)。
|
||||
|
||||
@@ -65,14 +65,14 @@
|
||||
| 奖励未生效行的呈现 | [增益状态](增益状态.md)定稿时登记(数据源是[战斗结算](战斗结算.md)的明细协议) | 让这类行在演出中可读、不被吞掉 |
|
||||
| 效果来源格的可读化 | 同上(候选形态:缩略图或格子高亮,坐标不直接呈现) | 把"效果来自哪一格"翻译成玩家可读的演出 |
|
||||
| 坍塌显形的连锁动画 | [游戏概念](../../00-游戏概念.md)的概念层拍板——坍塌显形是[连锁展开](../排雷循环/排雷玩法.md)的玩家可见名,与音频方向同批配对登记 | 连锁展开触发时的连锁演出 |
|
||||
| 高光兑现的演出强化 | 完美排雷与标中旗强调的机制及呈现位已由战斗结算与 battle.md 定稿 | 在既有高光行呈现之上加强演出密度 |
|
||||
| 高光兑现的演出强化 | 完美排雷与封印标中强调的机制及呈现位已由战斗结算与 battle.md 定稿 | 在既有高光行呈现之上加强演出密度 |
|
||||
| 伤害数字 | 归档索引中本系统的旧范围一句话即含"伤害数字" | 落点未定:预告上格原则与"敌人不占格、兑现发生在战斗画面区"如何相容,见待设计问题清单 |
|
||||
|
||||
### 前置美术测试是硬前置
|
||||
|
||||
正式设计本文之前,必须先做一次"战斗表现美术测试":用一屏样张(一张按候选方案画成的试验图)锁定角色剪影、动画方案、战斗空间三件事。这是旧体系评审登记的排期硬前置,不是建议;battle.md 也登记了该测试须按双舞台布局出样。样张未过,不启动任何终稿资产与动画设计。
|
||||
|
||||
附着在同一次样张上的还有一项已登记的裁决(登记出处 = 敌人系统的呈现契约):敌人层绘制优先级的插入位置——白话就是敌人的姿态精灵画在绘制顺序的哪一层,会不会、以及如何与棋盘上的数字、旗、小人发生遮挡。它随美术测试一并裁决,不在本文提前定。
|
||||
附着在同一次样张上的还有一项已登记的裁决(登记出处 = 敌人系统的呈现契约):敌人层绘制优先级的插入位置——白话就是敌人的姿态精灵画在绘制顺序的哪一层,会不会、以及如何与棋盘上的数字、封印印记、小人发生遮挡。它随美术测试一并裁决,不在本文提前定。
|
||||
|
||||
两项相邻裁定已有结论,设计时直接继承:**敌人呈现形态已裁决(2026-09-20 用户看对照样张拍板)——全站桩式(无框立绘+底座),主角同样站桩、状态小图标挂血条正下方,卡片式整体退役**(06 待办「敌人卡形态」解决移除,状态记录 99;battle.md 起草条款已随裁决改写,对照样张存档 `production/mockups/`);art-bible 的图标键契约已冻结,动画设计不必等图标终稿。
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
2. **剪影跨舞台通用(灰度通道)**:同一角色剪影转灰度后在三个语境下仍可辨认为同一角色——识别只靠轮廓通道、不借格底色(art-bible §5.1 已锁事实的样张检验)。
|
||||
3. **动画方案可读**:三组关键帧条按序翻看能读懂"发生了什么":受击反馈先于死亡、退场有过程禁止瞬消、高光行强调可辨;每组动画能指认其减动效简化形态(时长减半或直达终态)。
|
||||
4. **战斗空间成立**:双舞台同屏下挖掘期视线锚在棋盘区、结算期锚在明细带与战斗画面区(B 区),两舞台边界清晰、无焦点争夺。
|
||||
5. **敌层插入位置可裁**:遮挡对照组足以裁决敌人姿态精灵画进绘制顺序的哪一层——任何层叠组合下数字、旗、小人禁止被遮挡到不可辨。
|
||||
5. **敌层插入位置可裁**:遮挡对照组足以裁决敌人姿态精灵画进绘制顺序的哪一层——任何层叠组合下数字、封印印记、小人禁止被遮挡到不可辨。
|
||||
|
||||
判定与回退:第 1 项不过即演出元素回炉,禁止以牺牲可读性换氛围(改演出、不动数字口径);第 2–4 项不过对应资产或方案回炉重交,已过项结果保留。第 5 项(敌层插入位置)不产生过/不过,产出一条裁决记录:插入位置结论由[敌人系统](敌人系统.md)的呈现契约登记(~~敌人卡形态对照~~半边已于 2026-09-20 提前裁决完成——全站桩定稿,结论已回写 battle.md 起草条款)。样张通过 = 角色剪影、动画方案、战斗空间、敌层插入位置四件锁定物冻结;通过前不启动任何终稿资产与动画设计。
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
敌人系统回答战斗里四个问题:对面是谁、有多强、接下来要干什么、怎么被打死。它同时管主角和敌人的数据面——双方共用同一套受伤与死亡的接口,所以它也是踩雷代价的收件人:惊动危险格喂给怪物的每一分优势,最终都落在它管的血量上。没有它,惩罚没有落点、胜负没有主体、难度曲线没有施加对象。
|
||||
|
||||
它向玩家兑现三条承诺。威胁可推测:特殊技有一次开轮类型级预告、结算明细具名到技能,普攻之外的行动都读得懂来龙去脉。强弱有来处:它强是我踩雷喂的,它弱是我插旗拆的。越下越险:深层敌人更凶,是下探氛围的可见刻度。反向护栏只有一条——威胁绝不能是无源暗账,玩家说不出"它为什么变强、这一拳为什么这么重",就是本系统失职。
|
||||
它向玩家兑现三条承诺。威胁可推测:特殊技有一次开轮类型级预告、结算明细具名到技能,普攻之外的行动都读得懂来龙去脉。强弱有来处:它强是我踩雷喂的,它弱是我封印拆的。越下越险:深层敌人更凶,是下探氛围的可见刻度。反向护栏只有一条——威胁绝不能是无源暗账,玩家说不出"它为什么变强、这一拳为什么这么重",就是本系统失职。
|
||||
|
||||
出招的质感目标是动作游戏怪物 AI:以普通攻击为基底,随机时机出特殊技——出招序列不可背诵,但每一次出手都离散、具名、可归因。
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
| 摇号执行与结算编排(何时摇、伤害合成、死亡判定时机、护甲克制矩阵) | [战斗结算](战斗结算.md) |
|
||||
| 状态层数的存放与衰减(削弱层池、蓄力/硬化/警觉增益) | [增益状态](增益状态.md) |
|
||||
| 奖励内容与掉落 | [地图战斗资源](地图战斗资源.md) |
|
||||
| 棋盘规则(挖格、插旗、惊动危险格等事实的发生) | [排雷玩法](../排雷循环/排雷玩法.md) |
|
||||
| 棋盘规则(挖格、封印、惊动危险格等事实的发生) | [排雷玩法](../排雷循环/排雷玩法.md) |
|
||||
| 遭遇构成(何时开战、坐标与数量怎么定) | [关卡节点地图](../冒险循环/关卡节点地图.md);跨战斗血量保留归[冒险结构](../冒险循环/冒险结构.md)(生命账本) |
|
||||
| 单位数值曲线、池权重/冷却/保底投值与难度修饰 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||
| 呈现(线索映射清单、顺位与血条、摇定动画、受击与死亡演出) | [HUD 框架](../表现与支撑/HUD框架.md) 与 [战斗表现](战斗表现.md) |
|
||||
@@ -43,7 +43,7 @@
|
||||
战斗开始:战斗结算按遭遇坐标调本系统生成单位(池快照成实例池)──▶ 每轮开轮摇号定拍 → 轮末结算按技能行兑现 ──▶ 敌全灭 / 主角归零,回流战斗结算判胜负
|
||||
```
|
||||
|
||||
敌人系统站在"战斗兑现"这一段的单位层。上游是战斗结算的编排调用,以及经它转化而来的棋盘事实(踩了雷、插了旗);下游回给战斗结算两样东西——胜负判定素材和带来源的伤害分量。
|
||||
敌人系统站在"战斗兑现"这一段的单位层。上游是战斗结算的编排调用,以及经它转化而来的棋盘事实(踩了雷、落了封印);下游回给战斗结算两样东西——胜负判定素材和带来源的伤害分量。
|
||||
|
||||
## 核心规则
|
||||
|
||||
@@ -182,7 +182,7 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**技能错
|
||||
|
||||
## 依赖与输出
|
||||
|
||||
本系统编排被动:全部调用集中在战斗结算,棋盘事实(踩雷、插旗)经它转化后才作用于单位;本系统零随机、零界面、零事件订阅。下表就是删除任何一方时的影响面清单。
|
||||
本系统编排被动:全部调用集中在战斗结算,棋盘事实(踩雷、封印)经它转化后才作用于单位;本系统零随机、零界面、零事件订阅。下表就是删除任何一方时的影响面清单。
|
||||
|
||||
| 方向 | 系统 | 接口要点 |
|
||||
|---|---|---|
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
## 系统范围
|
||||
|
||||
边界这样划:地形变异只管"变异是什么、以什么形式存在、遵守什么纪律"。变异怎么随战斗初始化布置归战斗结算的编排序;挖格、插旗、连锁展开怎么执行归排雷玩法。
|
||||
边界这样划:地形变异只管"变异是什么、以什么形式存在、遵守什么纪律"。变异怎么随战斗初始化布置归战斗结算的编排序;挖格、封印、连锁展开怎么执行归排雷玩法。
|
||||
|
||||
负责:
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
| 不负责 | 归谁 |
|
||||
|---|---|
|
||||
| 布置的编排时点与算法执行(变异格赋予在棋盘设置顺序第 4 步) | [战斗结算](../战斗循环/战斗结算.md)(编排段执行面);布置参数数值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||
| 挖格、插旗、连锁展开的规则本体 | [排雷玩法](排雷玩法.md) |
|
||||
| 挖格、封印、连锁展开的规则本体 | [排雷玩法](排雷玩法.md) |
|
||||
| 反制道具的效果、时效与定价 | [秘宝](../跨局循环/秘宝.md) |
|
||||
| 数值表本体与读取机制 | [数据配置](../表现与支撑/数据配置.md) |
|
||||
| 界面呈现(数字遮蔽的渲染执行) | [HUD 框架](../表现与支撑/HUD框架.md) |
|
||||
@@ -83,7 +83,7 @@ region 型变异是「格子级」的:布置段往候选格域写格子快照
|
||||
|
||||
### 零特判原则(承重约束)
|
||||
|
||||
变异禁止改写扫雷规则本体:挖格、插旗、连锁展开的判定与执行不增加任何变异分支,代码里不允许出现"这格带某变异所以就……"。这是框架的承重约束——它保证每加一类变异都不需要回头修改规则本体,玩家面对的也始终是同一套扫雷规则,而不是一套到处开洞的例外。
|
||||
变异禁止改写扫雷规则本体:挖格、封印、连锁展开的判定与执行不增加任何变异分支,代码里不允许出现"这格带某变异所以就……"。这是框架的承重约束——它保证每加一类变异都不需要回头修改规则本体,玩家面对的也始终是同一套扫雷规则,而不是一套到处开洞的例外。
|
||||
|
||||
交互全部走数据侧:规则本体只读取格子数据并按数据行动,变异的全部影响经由数据与读取方之间的约定产生(伤害型由战斗结算兑付、信息型由呈现层遮蔽)。若未来某类变异的机制确实需要规则本体做出区分,那是一次同时修订排雷玩法与本文的正式变更,不是框架默认允许的能力。
|
||||
|
||||
@@ -150,7 +150,7 @@ region 型变异是「格子级」的:布置段往候选格域写格子快照
|
||||
## 验收标准
|
||||
|
||||
- 候选池空合法:门控筛空(池空或候选域碎片化不足)时静默零布置,配置加载零错误、零警告。
|
||||
- 零特判(负验收):排雷玩法的挖格、插旗、连锁展开执行路径中不存在任何按变异类型分支的代码;读取方按 effect/trigger/placement 枚举路由。
|
||||
- 零特判(负验收):排雷玩法的挖格、封印、连锁展开执行路径中不存在任何按变异类型分支的代码;读取方按 effect/trigger/placement 枚举路由。
|
||||
- 数据生命周期:格子携带的变异是只读数据——战斗初始化末段布置、随图消亡,布置后零运行时写入,无跨图存续;生成器产物恒零变异格。
|
||||
- 布置域:变异格全在初始展开区外(伤害型 closed_only 由设置顺序结构保障)且不吃危险格;每图至多一种类型;连通片 ≤ pack_max。
|
||||
- 配套义务闭环(**已作废,2026-10-03 终裁**):原「定稿批须含反制兑现条目否则验收不通过」随反制道具配套义务一并作废;counter_items 恒空为合法态。
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
# 排雷玩法
|
||||
|
||||
> 一句话:挖格、插旗、连锁展开等扫雷规则本体
|
||||
> 一句话:挖格、封印、连锁展开等扫雷规则本体
|
||||
> 状态:已定稿(自旧体系迁移)
|
||||
|
||||
## 设计目的
|
||||
|
||||
排雷玩法是扫雷规则本体:玩家在地牢厅室里做的每个动作——挖格、插旗、移动——都由它裁决,并把发生的事实如实上报给全项目。它不决定每个动作花多少钱(账本归[行动经济](行动经济.md)),也不决定收益怎么兑现成战斗效果(归[战斗结算](../战斗循环/战斗结算.md))——它只保证棋盘上的事实真实、顺序确定:数字从不说谎,每个拒绝有据可查。没有它,[棋盘生成](棋盘生成.md)生成的板没有发生地,战斗结算也没有事实来源。
|
||||
排雷玩法是扫雷规则本体:玩家在地牢厅室里做的每个动作——挖格、封印、移动——都由它裁决,并把发生的事实如实上报给全项目。它不决定每个动作花多少钱(账本归[行动经济](行动经济.md)),也不决定收益怎么兑现成战斗效果(归[战斗结算](../战斗循环/战斗结算.md))——它只保证棋盘上的事实真实、顺序确定:数字从不说谎,每个拒绝有据可查。没有它,[棋盘生成](棋盘生成.md)生成的板没有发生地,战斗结算也没有事实来源。
|
||||
|
||||
格子的正式名称全库统一(2026-10-11 用户裁):有惩罚的格子一律称**危险格**(原内部名「雷格」与界面名「惩罚格」统一并退役,见[术语表](../../术语表.md);同日补裁=无具体类型划分,怪物巢穴类型概念退役)——惊动危险格则怪物倾巢而出、敌方占得先机;插旗叫**控制**(标中则化险为利)、连锁展开叫**坍塌显形**(挖穿薄壳,整片塌陷露出)、标错叫**控制失败**。本文一律使用「危险格」。
|
||||
格子的正式名称全库统一(2026-10-11 用户裁):有惩罚的格子一律称**危险格**(原内部名「雷格」与界面名「惩罚格」统一并退役,见[术语表](../../术语表.md);同日补裁=无具体类型划分,怪物巢穴类型概念退役)——惊动危险格则怪物倾巢而出、敌方占得先机;封印叫**控制**(标中则化险为利)、连锁展开叫**坍塌显形**(挖穿薄壳,整片塌陷露出)、标错叫**控制失败**。本文一律使用「危险格」。
|
||||
|
||||
## 系统范围
|
||||
|
||||
边界这样划:一个动作"碰棋盘"的部分全归这里——合不合法、执行后格子变成什么样、翻开了哪些格、旗立在哪;"花多少钱"归行动经济,"兑现成什么战斗效果"归战斗结算,"画成什么样"归 HUD 框架,"格子怎么生出来"归棋盘生成。本系统自己不含任何玩法数值、零随机、也不认界面:同一张板、同一份动作序列,必然得到逐位相同的结果。
|
||||
边界这样划:一个动作"碰棋盘"的部分全归这里——合不合法、执行后格子变成什么样、翻开了哪些格、封印印记立在哪;"花多少钱"归行动经济,"兑现成什么战斗效果"归战斗结算,"画成什么样"归 HUD 框架,"格子怎么生出来"归棋盘生成。本系统自己不含任何玩法数值、零随机、也不认界面:同一张板、同一份动作序列,必然得到逐位相同的结果。
|
||||
|
||||
负责:
|
||||
|
||||
| 负责 | 说明 |
|
||||
|---|---|
|
||||
| 全部棋盘面规则 | 动作合法性(相邻、开未开、旗位)、连锁展开、数字提示、旗的棋盘状态、清图判定(安全格是否全部开完) |
|
||||
| 全部棋盘面规则 | 动作合法性(相邻、开未开、封印位)、连锁展开、数字提示、封印印记的棋盘状态、清图判定(安全格是否全部开完) |
|
||||
| 开局初始展开 | 装板事务:结构前提校验、免费展开出生开阔地、小人落位 |
|
||||
| 单一结算入口 | 玩家意图只从批次结算入口进,按固定语义序仲裁 |
|
||||
| 三种对外事件 | 挖开格、旗判定、轮次结束——全项目的事实流源头 |
|
||||
| 三种对外事件 | 挖开格、封印判定、轮次结束——全项目的事实流源头 |
|
||||
| 拒绝原因清单 | 每个被拒动作带可辨原因,供呈现层区分"棋盘面非法 vs 资源不足" |
|
||||
|
||||
不负责:
|
||||
@@ -43,9 +43,9 @@
|
||||
|
||||
## 核心规则
|
||||
|
||||
### 挖、插旗、移动:每个动作怎么才算合法
|
||||
### 挖、封印、移动:每个动作怎么才算合法
|
||||
|
||||
玩家对棋盘只做三件事:挖未开格、插旗,以及移动小人(玩家摆在棋盘上的探险者棋子)。前两个是付费动作,按标准动作价计费(价目见 `game/data/tables/action_economy.tres`;每轮的决策预算,账本归[行动经济](行动经济.md));本文只管棋盘面这一半,总纲只有一条:付费动作只能作用于小人周围一圈 8 格(8 向相邻)之内。
|
||||
玩家对棋盘只做三件事:挖未开格、封印,以及移动小人(玩家摆在棋盘上的探险者棋子)。前两个是付费动作,按标准动作价计费(价目见 `game/data/tables/action_economy.tres`;每轮的决策预算,账本归[行动经济](行动经济.md));本文只管棋盘面这一半,总纲只有一条:付费动作只能作用于小人周围一圈 8 格(8 向相邻)之内。
|
||||
|
||||
移动不花行动点:点任何已开格,小人沿已探明区一次走到位,"已探明区"包括踩过的危险格残址。点击已开格的唯一含义就是移动——本作没有经典扫雷里"双击数字格一键翻开周围"的 chord(双击快开),每一格的兑现都必须花行动点。
|
||||
|
||||
@@ -53,15 +53,15 @@
|
||||
|
||||
| 动作 | 合法对象 | 棋盘面拒绝情形 |
|
||||
|---|---|---|
|
||||
| 挖 | 8 向相邻、未开(有旗照挖) | 不相邻 / 已开过 |
|
||||
| 插旗 | 8 向相邻、未开、无旗 | 不相邻 / 已开过 / 已有旗 |
|
||||
| 挖 | 8 向相邻、未开(有封印照挖) | 不相邻 / 已开过 |
|
||||
| 封印 | 8 向相邻、未开、无封印 | 不相邻 / 已开过 / 已有封印 |
|
||||
| 移动 | 任意已开格,且能只经已开格连通到达 | 目标未开 / 无连通路径 |
|
||||
|
||||
每个被拒动作都带一个可辨的拒绝原因;原因只能取自一份固定清单,清单外没有别的来源。三个来源互不混淆:棋盘面非法(上表各情形,细因彼此数据可分——"已有旗"和"不相邻"必须是两个可区分的原因)、资源不足(判定权在行动经济)、相位不对(本轮已收尾,不收动作)。玩家看到的文案归[HUD 框架](../表现与支撑/HUD框架.md)。
|
||||
每个被拒动作都带一个可辨的拒绝原因;原因只能取自一份固定清单,清单外没有别的来源。三个来源互不混淆:棋盘面非法(上表各情形,细因彼此数据可分——"已有封印"和"不相邻"必须是两个可区分的原因)、资源不足(判定权在行动经济)、相位不对(本轮已收尾,不收动作)。玩家看到的文案归[HUD 框架](../表现与支撑/HUD框架.md)。
|
||||
|
||||
```
|
||||
一个意图进来
|
||||
├─ 棋盘面判定(本系统):不相邻?开过了?旗位不对?── 任一命中 → 拒绝,状态不变
|
||||
├─ 棋盘面判定(本系统):不相邻?开过了?已有封印?── 任一命中 → 拒绝,状态不变
|
||||
├─ 扣费(行动经济):点数不够 → 拒绝(资源不足),状态不变
|
||||
└─ 都过 → 执行:改棋盘、上报事实
|
||||
移动免费直达,不经扣费。
|
||||
@@ -73,21 +73,21 @@
|
||||
|
||||
每个已开安全格都亮着一个数字,恒等于它周围 8 格里的雷数。这条"数字恒真"是全部推理的地基:数据层从不说谎,呈现层怎么遮掩都不改真值——任何让数字失真的实现都在禁止之列。
|
||||
|
||||
挖开一个数字为 0 的格(周围一圈没有雷)时,它周围未插旗的安全格免费连锁全开,一路递推到没有新的 0 格为止——这就是连锁展开,玩家看到的是"坍塌显形":挖穿一层薄壳,整片松动的地面塌陷露出。连锁格只扣首格挖掘按价计的一笔,照常计入清图进度(清图 = 开完全部安全格),格面资源资格也照常——连锁开出的格与单挖的格同权,资源身份归[地图战斗资源](../战斗循环/地图战斗资源.md)、极性兑付归[战斗结算](../战斗循环/战斗结算.md),本系统不区分。
|
||||
挖开一个数字为 0 的格(周围一圈没有雷)时,它周围未封印的安全格免费连锁全开,一路递推到没有新的 0 格为止——这就是连锁展开,玩家看到的是"坍塌显形":挖穿一层薄壳,整片松动的地面塌陷露出。连锁格只扣首格挖掘按价计的一笔,照常计入清图进度(清图 = 开完全部安全格),格面资源资格也照常——连锁开出的格与单挖的格同权,资源身份归[地图战斗资源](../战斗循环/地图战斗资源.md)、极性兑付归[战斗结算](../战斗循环/战斗结算.md),本系统不区分。
|
||||
|
||||
连锁遇到旗就停:旗格不被链开,也不给更远的格当传播跳板。旗按价计费,正是玩家亲手买下的"链阻断器"——对一片不敢确定的地,提前插一面旗,塌方到它为止。
|
||||
连锁遇到封印就停:封印格不被链开,也不给更远的格当传播跳板。封印按价计费,正是玩家亲手买下的"链阻断器"——对一片不敢确定的地,提前落一枚封印印记,塌方到它为止。
|
||||
|
||||
清图在每次挖完成后判定;插旗、移动都不改已开格,永远不会触发清图。
|
||||
清图在每次挖完成后判定;封印、移动都不改已开格,永远不会触发清图。
|
||||
|
||||
| 连锁展开的性质 | 含义 |
|
||||
|---|---|
|
||||
| 免费 | 只扣首格按价计的一笔,连锁翻开的格不另收费 |
|
||||
| 计入清图进度 | 连锁开的格照常算进"全部安全格开完"的判定 |
|
||||
| 资源资格照常 | 连锁开出的安全格与单挖的安全格同权 |
|
||||
| 遇旗即止 | 旗格不入链、不作传播跳板;旗留在原地,轮末照常判定 |
|
||||
| 遇封印即止 | 封印格不入链、不作传播跳板;封印印记留在原地,轮末照常判定 |
|
||||
|
||||
```
|
||||
挖开 0 格 → 翻开周围 8 向未插旗的安全格 → 新开格里还有 0 格吗?
|
||||
挖开 0 格 → 翻开周围 8 向未封印的安全格 → 新开格里还有 0 格吗?
|
||||
├─ 有 → 对每个新 0 格重复上一行
|
||||
└─ 没有 → 连锁结束(整段只扣首格按价计的一笔)
|
||||
```
|
||||
@@ -119,7 +119,7 @@
|
||||
|
||||
### 踩过的雷能走:已引爆危险格的通行规则
|
||||
|
||||
挖开危险格不是死亡,是事实上报:轮次不结束,危险格从此算已开——小人能站上去,也能穿过它继续挖。挖开后的危险格不计清图进度(图不是靠踩雷清的)、不能再挖、不能再插旗;同一轮连挖多颗雷,每颗都是独立的事实,逐颗上报。
|
||||
挖开危险格不是死亡,是事实上报:轮次不结束,危险格从此算已开——小人能站上去,也能穿过它继续挖。挖开后的危险格不计清图进度(图不是靠踩雷清的)、不能再挖、不能再封印;同一轮连挖多颗雷,每颗都是独立的事实,逐颗上报。
|
||||
|
||||
因此挖已知雷成了一条"有价捷径":按价计费、给敌方送去优势,换来一条穿行的近路。它既是玩家主动抄近路的权衡,也是棋盘被挖残时的兜底通路。惊动危险格的代价在轮末结算兑现,归[战斗结算](../战斗循环/战斗结算.md)。
|
||||
|
||||
@@ -127,12 +127,12 @@
|
||||
|---|---|
|
||||
| 可通行 | 移动可以经过、可以站立;穿越仍按移动规则找已开区路径 |
|
||||
| 不计清图 | 不算安全格,"全部安全格开完"的判定不认它 |
|
||||
| 不可再操作 | 不能再挖,也不能插旗 |
|
||||
| 不可再操作 | 不能再挖,也不能封印 |
|
||||
| 事实已上报 | 轮次不结束;惩罚由战斗结算在轮末兑现 |
|
||||
|
||||
举证:本节为格态规则,无计算。
|
||||
|
||||
### 旗立得住、也带不走:旗的生命周期与换图重置
|
||||
### 封印立得住、也带不走:封印印记的生命周期与换图重置
|
||||
|
||||
旗是棋盘状态的一部分,不是背包里的实物:插上的旗跨轮保留、随图存续,没有数量上限,也没有任何移除手段(拔旗已退役——旗只能被挖开,不能被撤下)。每次轮次结束(行动点耗尽、玩家停手或清图时),本系统对当时在场的每一面旗如实上报一条判定——旗下是雷记标中(玩家看到危险格被控制、化险为利),不是雷记标空;旗一直插在雷上,就每轮如实重复上报标中,去重是[战斗结算](../战斗循环/战斗结算.md)的事,本系统只报事实。被直接挖开的旗随挖掘消失、不在轮末在场基线里,自然不报判定;插旗本身不发事件,界面反馈走调用返回值。
|
||||
|
||||
@@ -150,9 +150,9 @@
|
||||
| 随战斗结束消失 | 整板退役 | 与板一同清空 |
|
||||
|
||||
```
|
||||
插旗(按价计费,界面即时反馈)→ 旗立在未开格上,跨轮保留
|
||||
每次轮次结束 → 逐旗判定,如实上报(标中 / 标空)
|
||||
换图(清图或刷新)或战斗结束 → 旗随旧图全量消失
|
||||
封印(按价计费,界面即时反馈)→ 封印印记立在未开格上,跨轮保留
|
||||
每次轮次结束 → 逐封印判定,如实上报(标中 / 标空)
|
||||
换图(清图或刷新)或战斗结束 → 封印印记随旧图全量消失
|
||||
```
|
||||
|
||||
举证:本节为状态生命周期规则,无计算。
|
||||
@@ -165,14 +165,14 @@
|
||||
|---|---|---|
|
||||
| 最先 | 能清图的挖 | 执行后图即全开的挖——防止"耗尽优先"把清图高光结算成最差结局 |
|
||||
| 次之 | 停手 | 玩家主动收轮 |
|
||||
| 其余 | 普通挖、插旗、移动 | 同类内按提交顺序 |
|
||||
| 其余 | 普通挖、封印、移动 | 同类内按提交顺序 |
|
||||
|
||||
对外,本系统只发三种事件、不订阅任何东西;事件集合封闭,增删事件就是接口修订:
|
||||
|
||||
| 事件 | 何时发 | 内容 |
|
||||
|---|---|---|
|
||||
| 挖开格 | 每开一格(初始展开、连锁、单挖各算) | 哪格、安全还是雷、数字、经哪条路开的、有无格面资源资格(封锁格恒无;安全格与危险格恒有——资源本体与极性兑付归[地图战斗资源](../战斗循环/地图战斗资源.md),本系统不区分) |
|
||||
| 旗判定 | 每次轮次结束时逐旗一条 | 哪面旗、标中还是标空 |
|
||||
| 封印判定 | 每次轮次结束时逐封印一条 | 哪处封印、标中还是标空 |
|
||||
| 轮次结束 | 每轮恰一条 | 这轮怎么结束的(清图 / 耗尽)、下一轮换不换图的建议 |
|
||||
|
||||
这套"只发不收"是全项目唯一允许的下游反向接线:订阅方被动接收事实,本系统零依赖下游、不知道谁在听。战斗结算订阅事件流、轮末逐行兑现收益;停手路径的轮次结束事件由[行动经济](行动经济.md)直发,本系统不重复发。
|
||||
@@ -181,7 +181,7 @@
|
||||
一批意图到达
|
||||
→ 按语义序重排(能清图的挖 > 停手 > 其余,同类按提交序)
|
||||
→ 逐个执行,轮次结束第一次成立处定赢家,其后意图丢弃
|
||||
→ 收轮:先把旗判定逐条报完,再报轮次结束
|
||||
→ 收轮:先把封印判定逐条报完,再报轮次结束
|
||||
```
|
||||
|
||||
举证:本节为事务顺序与接口封闭规则,无计算。
|
||||
@@ -203,10 +203,10 @@
|
||||
最小闭环只保留跑通"装板—挖—收轮—兑现—换图"必需的规则:
|
||||
|
||||
1. 战斗开始装上新图:校验结构前提,违例拒绝;初始展开免费翻开出生开阔地,小人落位。
|
||||
2. 玩家每帧提交一个意图:挖(判棋盘面,请账本按价扣费,开格加连锁并逐格上报;有旗格照挖、旗随挖掘消失)、插旗(按价计费,旗入棋盘,零事件)、移动(免费,已开区一次走到位)。
|
||||
2. 玩家每帧提交一个意图:挖(判棋盘面,请账本按价扣费,开格加连锁并逐格上报;有封印格照挖、封印印记随挖掘消失)、封印(按价计费,封印印记入棋盘,零事件)、移动(免费,已开区一次走到位)。
|
||||
3. 被拒动作带可辨原因、状态不变;批次内轮次结束首次成立处定赢家,其后意图丢弃。
|
||||
4. 收轮:先报完在场旗的逐条判定,再报轮次结束(停手路径由行动经济直发)。
|
||||
5. 战斗结算订阅事件流逐行兑现;清图或刷新换图时按它回发的指令装新图,旧板旗全量失效,回到第 1 步。
|
||||
4. 收轮:先报完在场封印的逐条判定,再报轮次结束(停手路径由行动经济直发)。
|
||||
5. 战斗结算订阅事件流逐行兑现;清图或刷新换图时按它回发的指令装新图,旧板封印印记全量失效,回到第 1 步。
|
||||
|
||||
## P1 / P2 后置
|
||||
|
||||
@@ -227,14 +227,14 @@
|
||||
|
||||
- 数字恒真:任意已开安全格的数字恒等于其 8 向相邻雷数;出生区无雷、数字恒真、初始展开不吞全图三条结构前提任一不满足时,装板被拒绝。
|
||||
- 初始展开恰等:装板后翻开的格集合恰为"出生 3×3 加连通开阔地"——不止 3×3,也不外扩一圈;全程免费、恒无格面资源(封锁格)、计入清图进度;跨轮不重放。
|
||||
- 连锁免费且遇旗即止:一次触发连锁翻开任意多格,扣费恒为首格按价计的一笔;旗格不被链开、不作传播跳板;连锁格计入清图进度、资源资格照常。
|
||||
- 连锁免费且遇封印即止:一次触发连锁翻开任意多格,扣费恒为首格按价计的一笔;封印格不被链开、不作传播跳板;连锁格计入清图进度、资源资格照常。
|
||||
- 挖旗格放行(插旗不可逆批 2026-09-19):有旗格直接挖开被受理——旗随挖掘消失、该旗轮末不判;重复插旗仍被"已有旗"拒绝;兑付改判四情况(标中不发 / 安全格零奖励)归战斗结算。
|
||||
- 已引爆危险格可通行:挖雷后轮次不结束,小人可站、可经已开区穿行续挖;危险格不计清图、不可再挖再插旗。
|
||||
- 移动合法且预览同源:目标未开或无已开区连通路径时拒绝;路径预览与实际执行逐格相同;移动免费、零事件。
|
||||
- 批次仲裁与到达序无关:同一批意图按任意顺序提交,结束路径与结算结果一致;赢家定出后其余意图丢弃——零棋盘效果、零扣费、零事件,且丢弃区别于拒绝。
|
||||
- 收轮事件序:先报完全部旗判定,再报轮次结束;轮次结束每轮恰一条,停手路径由行动经济直发、本系统不双发。
|
||||
- 收轮事件序:先报完全部封印判定,再报轮次结束;轮次结束每轮恰一条,停手路径由行动经济直发、本系统不双发。
|
||||
- 拒绝三源可辨:棋盘面非法、资源不足、相位不对三类原因互异可判定;任何拒绝零副作用。
|
||||
- 换图重置:清图换图时旧旗先判定后消失;刷新换图时旧旗未判定即失效、零兑付、行动点不返还;新板旗为空、初始展开按新板重来。
|
||||
- 换图重置:清图换图时旧封印印记先判定后消失;刷新换图时旧封印印记未判定即失效、零兑付、行动点不返还;新板封印为空、初始展开按新板重来。
|
||||
- 确定性回放:同一张板、同一份意图序列驱动两次,事件流逐条逐位相同(本系统零随机)。
|
||||
|
||||
## 待办
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
| 不负责 | 归谁 |
|
||||
|---|---|
|
||||
| 挖掘、插旗、连锁展开的执行 | [排雷玩法](排雷玩法.md) |
|
||||
| 挖掘、封印、连锁展开的执行 | [排雷玩法](排雷玩法.md) |
|
||||
| 换图时机与轮次编排 | [战斗结算](../战斗循环/战斗结算.md)(本系统纯被调用) |
|
||||
| 难度数值定多少 | [难度曲线与Boss](../冒险循环/难度曲线与Boss.md)(调参所有权在对方) |
|
||||
| 变异内容与解锁节奏 | [地形变异](地形变异.md)(布置执行位在其自身——战斗初始化第 4 步,不在本管线) |
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
## 设计目的
|
||||
|
||||
每场战斗里,玩家真正在花的钱只有一种:行动点(AP)。行动经济就是这本账——每轮发给你固定的行动点,挖格、插旗按统一价目计费(价目见 `game/data/tables/action_economy.tres`),花完这一轮就结束了。没有这本账,"挖这一格值不值"就没有统一的价格语言。
|
||||
每场战斗里,玩家真正在花的钱只有一种:行动点(AP)。行动经济就是这本账——每轮发给你固定的行动点,挖格、封印按统一价目计费(价目见 `game/data/tables/action_economy.tres`),花完这一轮就结束了。没有这本账,"挖这一格值不值"就没有统一的价格语言。
|
||||
|
||||
它还要给"我不想赌了"一个体面的出口:主动停手能把剩余行动点 1:1 存进储备池,攒够了可以当场换掉整张雷图。推理本身不收钱——连锁展开免费——花钱的只是"兑现"这个动作。
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
|
||||
### 挖掘期刷新:花储备换新图
|
||||
|
||||
储备池唯一的支出是刷新雷图。玩家在挖掘期经界面入口发起,储备值不低于刷新门槛(rap_refresh_cost,见 action_economy.tres)时扣费,当场换一张新图继续挖。注意刷新不终结这一轮:行动点不重置、本轮剩余行动点保留;但换来的新图不发清图奖励(它又不是清图),旧图上的旗随旧图一起失效(插旗花的钱不退)。
|
||||
储备池唯一的支出是刷新雷图。玩家在挖掘期经界面入口发起,储备值不低于刷新门槛(rap_refresh_cost,见 action_economy.tres)时扣费,当场换一张新图继续挖。注意刷新不终结这一轮:行动点不重置、本轮剩余行动点保留;但换来的新图不发清图奖励(它又不是清图),旧图上的封印印记随旧图一起失效(封印花的钱不退)。
|
||||
|
||||
每轮最多刷新次数=表值 refresh_cap_per_round(现行 2)(轮内计数,开轮重置),没有冷却,每次独立检查门槛并扣费。已用次数与剩余次数为只读观测量(切片实现在战斗编排器侧计数,HUD 刷新按钮「剩 N 次」文案即其消费方)——客户端可现读,不经可变状态外泄。禁止"攒满就自动刷"——刷新永远是玩家的决定。
|
||||
|
||||
@@ -108,31 +108,31 @@
|
||||
|
||||
加成轴是战斗开始的一次性基线抬升,不是逐轮增税;修正队列(上节)与加成轴在开轮时相加兑现,互不挤占。「每战 +1 AP」的强度评估与通关率带重扫义务归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)调参批。
|
||||
|
||||
### 标中旗的兑付约束
|
||||
### 封印标中的兑付约束
|
||||
|
||||
插旗标中了危险格,收益在当轮结算兑付(标中 = 危险格被控制、里面怪物被削弱)。兑付受五条硬约束,核心思想是"认雷不认旗":
|
||||
封印标中了危险格,收益在当轮结算兑付(标中 = 危险格被控制、里面怪物被削弱)。兑付受五条硬约束,核心思想是"认雷不认封印":
|
||||
|
||||
| 约束 | 含义 |
|
||||
|---|---|
|
||||
| 一次性 | 每颗雷在一场战斗内至多兑付一次,资格随首次兑付消费 |
|
||||
| 当轮结算 | 旗只是当轮兑付的载体,不囤积到以后 |
|
||||
| 当轮结算 | 封印印记只是当轮兑付的载体,不囤积到以后 |
|
||||
| 资格认危险格实例 | 挖开重插同一格(旗随挖掘消失),不恢复已消费的资格——堵死"重复计费重插刷收益"的农场(注:拔旗动作已退役,插旗不可逆批 2026-09-19) |
|
||||
| 不逐轮重复 | 同一颗雷的收益不会每轮反复发 |
|
||||
| 换图重置 | 新图的雷是新实例,资格自然重来 |
|
||||
|
||||
### 收益直兑与五条经济契约
|
||||
|
||||
扫雷侧的全部收益都以战斗效果直接兑现:挖开安全格给主角加增益、标中旗给怪物加减益、惊动危险格给敌方上增益、清图发奖励。不存在中间货币、不存在折算乘数——折算公式根本不存在。
|
||||
扫雷侧的全部收益都以战斗效果直接兑现:挖开安全格给主角加增益、封印标中给怪物加减益、惊动危险格给敌方上增益、清图发奖励。不存在中间货币、不存在折算乘数——折算公式根本不存在。
|
||||
|
||||
这本账对下游立了五条经济契约,保证"推理的收益大于盲赌的代价"这条底线在数值上闭合:
|
||||
|
||||
1. **单一当量**:所有收益来源用同一张效果对照表归一换算,不允许分源改率。
|
||||
2. **标中旗锚**:标中旗的减益档位必须严格高于最低档安全格增益——否则没人愿意插旗。
|
||||
2. **封印标中锚**:封印标中的减益档位必须严格高于最低档安全格增益——否则没人愿意封印。
|
||||
3. **挖掘风险不等式**(2026-10-05 判式换代批重立——迭代14②号卡;原"敌方伏击暴露不等式"2026-09-20 随伏击机制退役作废,惩罚当量对账模型由本条重立承接,详细推导见下方推导节):聚合健康式 + 旗溢价条件二 + β 比值带判读,三层口径并行立(2026-10-04 用户裁 P2)。
|
||||
4. **清图奖励大于零**,并预留按图类型差异化分支的结构位。
|
||||
5. **清图支配性**:推到底清图的期望收益,不低于"确定格挖完就弃图刷新"的期望收益——否则清图玩法会被刷新策略淘汰。
|
||||
|
||||
**结论**:五条契约由战斗结算作为唯一对账责任方闭合验收;概率侧由棋盘生成的可推理率参数锚定;条款3 数值层由 β 比值带 [1.2, 2.5] 判读看护(常设重跑入口 `tools/clear_dominance_audit.py`),旗边际结构层由条件二旗溢价接替(机制载体 settlement.flag_hit_premium)。
|
||||
**结论**:五条契约由战斗结算作为唯一对账责任方闭合验收;概率侧由棋盘生成的可推理率参数锚定;条款3 数值层由 β 比值带 [1.2, 2.5] 判读看护(常设重跑入口 `tools/clear_dominance_audit.py`),封印边际结构层由条件二封印溢价接替(机制载体 settlement.flag_hit_premium)。
|
||||
|
||||
推导:
|
||||
|
||||
@@ -147,13 +147,13 @@
|
||||
下限 0 = 盲挖不为负;上限不设(旧 U_band 删,2026-10-04 grill Q3 裁)——
|
||||
收益端通胀防护由 β 比值带的 β_hi 独家承载(同一约束单一承载)。
|
||||
|
||||
旗边际引理(同池结构定理):危险格与安全格同池 + 极性矩阵同字典 ⇒ 标中旗兑付分布 ≡ 安全格
|
||||
封印边际引理(同池结构定理):危险格与安全格同池 + 极性矩阵同字典 ⇒ 封印标中兑付分布 ≡ 安全格
|
||||
兑付分布,EV_flag − EV_blind = (q + ρ̂ − 1)·(E_dig + V_mine),符号只由 q + ρ̂ − 1
|
||||
决定 ⇒ 「旗优于盲挖 ⇔ q > 1−ρ̂」,与全部当量表值无关(风险端定价动不了这一支);
|
||||
标中旗对「挖已知安全格」的边际恒 ≤ 0(= −(1−q)(E_dig+V_mine))——L2 结构破线层,
|
||||
决定 ⇒ 「封印优于盲挖 ⇔ q > 1−ρ̂」,与全部当量表值无关(风险端定价动不了这一支);
|
||||
封印标中对「挖已知安全格」的边际恒 ≤ 0(= −(1−q)(E_dig+V_mine))——L2 结构破线层,
|
||||
由条件二接替。
|
||||
|
||||
条件二(旗溢价式)——L2 结构破线的正当化条款:
|
||||
条件二(封印溢价式)——L2 结构破线的正当化条款:
|
||||
E[标中兑付当量] ≥ (1+δ)·E_dig(u)
|
||||
δ = 旗溢价系数,现行 0.25(provisional,2026-10-04 用户裁 P3);实施形态 =
|
||||
(a) 兑付溢价——标中兑付按同型正向 ×(1+δ)(改战斗结算兑付公式一处,机制载体
|
||||
@@ -186,7 +186,7 @@
|
||||
| ρ̂ | 雷率:名义 0.25 与实测幸存雷率(10×10 ≈ 0.129 / 12×12 ≈ 0.157)双口径并报,主表用名义(保守) | board_gen.tres + board_stat_probe 读数 |
|
||||
| q | 玩家对目标格为雷的置信 | 玩家侧行为量(可推理格 q ∈ {0,1}) |
|
||||
| β 带 | V_mine/E_dig 判读带 [1.2, 2.5] | registry clause3 重立条(本批登记) |
|
||||
| δ | 旗溢价系数 0.25 provisional | settlement.tres flag_hit_premium = 125 |
|
||||
| δ | 封印溢价系数 0.25 provisional | settlement.tres flag_hit_premium = 125 |
|
||||
|
||||
### 配置纪律
|
||||
|
||||
@@ -203,12 +203,12 @@
|
||||
| 下游 | [HUD 框架](../表现与支撑/HUD框架.md) | 行动点与储备池常显;刷新入口;清零反馈;动作被拒原因的双源呈现(棋盘非法 vs 资源不足) |
|
||||
| 下游 | [教学引导](../表现与支撑/教学引导.md) | 价目与"储备池战斗结束清零"的教学口径来源 |
|
||||
|
||||
账本对外是一组封闭的布尔入口(开轮 / 挖 / 插旗 / 停手 / 刷新 / 结算完成通知 / 战斗结束通知):受理返回真、拒绝返回假且状态不变。相位非法的拒绝附带调试诊断,但不致命中止——进程致命只留给数据配置通道。
|
||||
账本对外是一组封闭的布尔入口(开轮 / 挖 / 封印 / 停手 / 刷新 / 结算完成通知 / 战斗结束通知):受理返回真、拒绝返回假且状态不变。相位非法的拒绝附带调试诊断,但不致命中止——进程致命只留给数据配置通道。
|
||||
|
||||
## P0 最小闭环
|
||||
|
||||
1. 战斗结算发开轮通知:行动点硬重置为表值,储备池不动,进入可操作状态。
|
||||
2. 玩家挖 / 插旗,每个动作过账本按价扣费;连锁展开免费且计入清图进度。
|
||||
2. 玩家挖 / 封印,每个动作过账本按价扣费;连锁展开免费且计入清图进度。
|
||||
3. 玩家可随时停手(剩余行动点 1:1 入库),或储备够门槛时刷新换图(每轮次数上限读 `data/tables/action_economy.tres`)。
|
||||
4. 结束路径在账本事务内仲裁,只裁一个赢家。
|
||||
5. 轮末两字段消息发给战斗结算,后者把收益逐行兑现进结算明细。
|
||||
@@ -231,7 +231,7 @@
|
||||
|---|---|---|---|
|
||||
| ap_per_round | int [1, 32] | 表值 | 每轮行动点;兼作停手转存的规模旋钮 |
|
||||
| dig_ap_cost | int [1, 8] | 表值 | 挖单格成本(下限 1:为 0 则预算系统失效) |
|
||||
| flag_place_ap_cost | int [0, 8] | 表值 | 插旗成本 |
|
||||
| flag_place_ap_cost | int [0, 8] | 表值 | 封印成本 |
|
||||
| rap_refresh_cost | int [1, 64] | 表值 | 刷新门槛;默认等于每轮预算,构成"满预算停手 = 恰好一刷"的基线节拍 |
|
||||
| move_ap_cost | int | 表值(冻结 0) | 移动免费——冻结,非调参项 |
|
||||
| chain_ap_cost | int | 表值(冻结 0) | 连锁免费——冻结,非调参项 |
|
||||
@@ -249,7 +249,7 @@
|
||||
- 耗尽即收轮:行动点扣到 0 的瞬间轮次结束,此后一切动作请求被拒绝且状态不变。
|
||||
- 仲裁唯一:最后 1 点行动点挖开最后一个安全格时,判清图(剩余清零 + 换图 + 清图奖励),不判耗尽;输出恰一条。
|
||||
- 停手 1:1:剩余 3 点停手,储备池加 3,下轮同图继续。
|
||||
- 刷新规则:储备不足时刷新被拒绝且状态不变;同一轮第 3 次刷新被拒绝;刷新不重置行动点、不发清图奖励、旧图上的旗失效。
|
||||
- 刷新规则:储备不足时刷新被拒绝且状态不变;同一轮第 3 次刷新被拒绝;刷新不重置行动点、不发清图奖励、旧图上的封印印记失效。
|
||||
- 储备清零:战斗结束信号到达后储备池归 0,账本进入休眠。
|
||||
- 跨字段校验:任一动作成本配置超过每轮预算时,加载期致命中止。
|
||||
- 零随机:同一动作序列驱动两个独立账本实例,轮次结束记录与储备轨迹逐项相同。
|
||||
|
||||
@@ -102,7 +102,7 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
|
||||
| 数据面 | 刷新时点 |
|
||||
|---|---|
|
||||
| 棋盘(旗、小人位置) | 意图批次调用返回后重查 |
|
||||
| 棋盘(封印印记、小人位置) | 意图批次调用返回后重查 |
|
||||
| 行动点 / 储备 | 每次写路径回执后重读 |
|
||||
| 状态效果 | 绑定结算编排完成时点 |
|
||||
| 已开格奖励身份 | 已开格揭显时经身份解析只读回调查询(`query_identity`,组合根注入) |
|
||||
@@ -196,7 +196,7 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
|
||||
| 方向 | 系统 | 接口要点 |
|
||||
|---|---|---|
|
||||
| 上游 | [排雷玩法](../排雷循环/排雷玩法.md) | 棋盘只读投影(格态、数字、旗、小人)与移动路径查询;玩家意图批次经组合根提交 |
|
||||
| 上游 | [排雷玩法](../排雷循环/排雷玩法.md) | 棋盘只读投影(格态、数字、封印印记、小人)与移动路径查询;玩家意图批次经组合根提交 |
|
||||
| 上游 | [行动经济](../排雷循环/行动经济.md) | 行动点 / 储备 / 相位只读值;刷新入口可用性预判加返回值兜底 |
|
||||
| 上游 | [战斗结算](../战斗循环/战斗结算.md) | 明细流水是结算明细带的统一数据源(现行 9 类行封闭协议);段序编排信号经组合根接线 |
|
||||
| 上游 | [敌人系统](../战斗循环/敌人系统.md) | 英雄与敌人的只读投影(血量、顺位、摇定动作〔pending_skill/type/name〕、敌方增益 effects、存活——经战斗结算呈现快照;敌人技能池批批 2 定稿:当前拍/行动环进度字段拆除,池与权重不公开) |
|
||||
@@ -270,11 +270,11 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
||||
- 已开 / 未开格态在灰度截图下可逐格分类;已引爆危险格"可通行可读"(已开底加巢穴纹、可作移动目标)。
|
||||
- 类型微光:微光只在英雄周围 8 格内的未开格显示;出圈即灭、入圈即亮;已开格与封锁格恒无微光;微光呈现不随格是雷是安变化(不泄危险格与安全格)。(迭代 30 卡①实装后转正式验收)
|
||||
- 视野迷雾:棋盘仅菱形灯光区内完整渲染;区外已开格灰显可读、区外未开格不可见;灯光区随角色移动跟随;同一张板同一份动作序列,迷雾开关两种状态下的结算结果逐位一致(纯呈现,零游戏数据改动)。
|
||||
- 悬停光标三语义(移动 / 挖 / 旗)随目标切换并高亮目标格;悬停已开格画出合法路径(不可达不显示);可挖域常驻呼吸微光。
|
||||
- 悬停光标三语义(移动 / 挖 / 封印)随目标切换并高亮目标格;悬停已开格画出合法路径(不可达不显示);可挖域常驻呼吸微光。
|
||||
- 一帧内意图整批到达,停手点击终结当帧收集。
|
||||
- 每次拒绝可感知:棋盘面、资源面、相位三类各有呈现且前两类可区分;停手被改判(本轮已清图)玩家可感知;拒绝反馈图标加文案双通道。
|
||||
- 结算逐行实时滚出且每行带来源标注;未生效类行聚合计数并带形状冗余;零值行不被吞;效果行的单次贡献与池合成值分示、禁相加误读。
|
||||
- 高光三档:标中旗行金框、清图奖励行金框、完美排雷全屏喝彩级——庆祝不打在空兑现上(首份即零兑付则不发高光)。
|
||||
- 高光三档:封印标中行金框、清图奖励行金框、完美排雷全屏喝彩级——庆祝不打在空兑现上(首份即零兑付则不发高光)。
|
||||
- 状态槽显示图标加层数加剩余结算次数,悬停见来源;极性按键级表呈现(金满框 / 红缺框),空态整排隐藏、数据框上移补位;战斗结束全清有微文案。
|
||||
- 敌人呈现(站桩立绘,2026-09-20 全站桩拍板后载体由敌人卡改为无框立绘+底座,义务面平移不重述):意图占位 = 本拍摇定结果的动画占位(敌人技能池批三档可见性——普通攻击零表示、特殊技类型级提示〔攻/防系两型〕,不预告技能名与数值、池与权重不公开)且挖掘期全程可见、映射跨局恒定、顺位可读、血量数字可读、敌方共享层数各立绘同值(血条悬浮头顶、状态小图标挂血条正下方);死亡灰化加碎裂退场(禁止瞬间消失)且就地更新不丢灰化态。
|
||||
- 终局:胜利金蜡封、失败暮蓝氛围层(明度不变);储备清零与状态全清两反馈不合并、时序不倒挂(关卡末清库反馈义务载体 = 秘宝背包〔关卡域库存恒空机械惰性承载,拆线归实装批——见「轮次生命周期」同款节注于战斗结算〕,随秘宝 P0 落地补验收)。
|
||||
|
||||
@@ -54,7 +54,7 @@ SaveManager 不依赖任何玩法系统就能工作:它是被动的承载方
|
||||
|
||||
第一条边界:数据表与存档分家。表是配方,所有玩家一致;存档是玩家进度,每人不同。存档只记进度事实(得了什么、解锁了什么),不把数值配方写进存档——数值改版后,旧存档仍按加载时的数据表解释。这条边界从"数值单一事实源在数据表"的纪律直接推出,细节以[数据配置](数据配置.md)为准。
|
||||
|
||||
第二条边界是反面清单:局内资源不入存档。行动点、储备行动点、道具库存、生命账本、GP(金币)全部单局清零——各归各的系统管,没有局内数值需要持久化。若未来某局内资源要开放跨局携带(如储备行动点跨战斗携带),须修订其池规则并向本系统登记持久化归属,禁止静默超域。
|
||||
第二条边界是反面清单:局内资源不入存档。行动点、储备行动点、道具库存、生命账本、GP 全部单局清零——各归各的系统管,没有局内数值需要持久化。若未来某局内资源要开放跨局携带(如储备行动点跨战斗携带),须修订其池规则并向本系统登记持久化归属,禁止静默超域。
|
||||
|
||||
**唯一豁免 = `breakpoint` 断点域**(2026-09-29 迭代 8 卡①顺带修订):断点是冒险进行中的瞬态快照,不是跨局携带——里面的生命/GP/道具库存只在「续玩上局」时还原进局内,冒险收束(通关/失败/放弃)即整域清除,永远不会渗进永久进度。反面清单的管辖对象因此收窄为 `meta` 永久进度域(冒烟域界扫描顺带收窄到 meta 域);断点域自身的字段口径归[冒险结构](../冒险循环/冒险结构.md)登记。
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
## 设计目的
|
||||
|
||||
这游戏有两层玩法——扫雷推理和自动战斗——而"扫雷攒下的因,逐行兑现成战斗的果"这条因果线,是新手最容易断掉的一环。教学引导的任务,就是让玩家不读说明书也能自己接上这条线:学会挖、插旗、移动三个基本动作,看懂结算明细在回答他刚才的哪一步棋,知道"停手"和"刷新"这两个风险管理出口的存在。
|
||||
这游戏有两层玩法——扫雷推理和自动战斗——而"扫雷攒下的因,逐行兑现成战斗的果"这条因果线,是新手最容易断掉的一环。教学引导的任务,就是让玩家不读说明书也能自己接上这条线:学会挖、封印、移动三个基本动作,看懂结算明细在回答他刚才的哪一步棋,知道"停手"和"刷新"这两个风险管理出口的存在。
|
||||
|
||||
## 系统范围
|
||||
|
||||
@@ -53,7 +53,7 @@ HUD 框架定稿时已为教学留好两个承载位,本系统的内容将来
|
||||
|
||||
| 条目 | 来源 | 要教的事 |
|
||||
|---|---|---|
|
||||
| 行动点价目 | [行动经济](../排雷循环/行动经济.md) | 挖 / 插旗各花多少、移动与连锁免费 |
|
||||
| 行动点价目 | [行动经济](../排雷循环/行动经济.md) | 挖 / 封印各花多少、移动与连锁免费 |
|
||||
| 储备池清零提示 | [行动经济](../排雷循环/行动经济.md) | 必须说清"储备行动点在战斗结束时清零",防止"攒的钱凭空没了"的误读 |
|
||||
| 旗是一次性承诺的首遇提示 | [排雷玩法](../排雷循环/排雷玩法.md)(插旗不可逆批 2026-09-19) | 经典扫雷玩家会习惯性右键拔旗——本作旗不能拔,插上就是承诺;想改主意就左键直接挖开(安全格零奖励、危险格吃挖雷惩罚)。每场冒险提示一次,非模态 |
|
||||
| chord 不存在的首遇提示 | [HUD 框架](HUD框架.md)(承接排雷玩法的呈现义务) | 经典扫雷玩家会习惯性双击数字格——本作没有 chord,点数字格 = 移动小人。每场冒险提示一次,非模态 |
|
||||
@@ -97,7 +97,7 @@ HUD 框架定稿时已为教学留好两个承载位,本系统的内容将来
|
||||
|
||||
待设计。方向性判据(供未来定稿参考):
|
||||
|
||||
- 玩家不看任何外部说明,能完成挖 / 插旗 / 移动三个动作,并说出每个动作花多少行动点。
|
||||
- 玩家不看任何外部说明,能完成挖 / 封印 / 移动三个动作,并说出每个动作花多少行动点。
|
||||
- 玩家能在结算明细里指出至少一行收益来自他刚才的哪一步操作。
|
||||
- 首次提示不重复轰炸:同一提示每场冒险至多出现一次。
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
## 在核心循环中的位置
|
||||
|
||||
```
|
||||
扫雷段(挖格、插旗、惊动危险格的即时反馈)──▶ 轮末结算段(逐行兑现的结算反馈)──▶ 终局(胜负反馈)
|
||||
扫雷段(挖格、封印、惊动危险格的即时反馈)──▶ 轮末结算段(逐行兑现的结算反馈)──▶ 终局(胜负反馈)
|
||||
音频不是循环里的一段,而是贴在循环各段上的听觉反馈层
|
||||
```
|
||||
|
||||
@@ -150,7 +150,7 @@
|
||||
2. 音效清单成品与优先级:把挂点候选逐个定成正式音效——哪些先做、哪些合并、哪些不做。
|
||||
3. 混音与总线方案:音乐与音效怎么分层、相对音量关系怎么定。
|
||||
4. 与减动效选项的关系:呈现侧已承诺减动效——音频侧是否配对应的减噪、动态范围收缩,未拍板。
|
||||
5. 四个基础反馈位之外的基础音效(插旗、移动、清图奖励等)尚未见挂点登记——是否补登记、归谁提出,未定。
|
||||
5. 四个基础反馈位之外的基础音效(封印、移动、清图奖励等)尚未见挂点登记——是否补登记、归谁提出,未定。
|
||||
|
||||
## 版本历史
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
| 代号 | item_id | 一句话 | 写哪本账/时点 | 解锁(迭代 22 实态) | 效果实现 |
|
||||
|---|---|---|---|---|---|
|
||||
| 天眼 | sky_eye | 每关一次:选 3×3,危险格显示且安全格直接开 | 真视+开格复合/主动 | 条件:通关 ≥3 且 Boss 击杀 ≥4 provisional | reveal_tiles+safe_dig(关卡级充能;安全格开格按普通挖格全额兑付免 AP——C5 裁) |
|
||||
| 信标网络 | beacon_network | 插旗不限相邻(可对任何未开格插旗) | 旗的可达性规则/常时 | 条件:真视类工具累计使用 ≥10 provisional(vision_used 生涯计数域) | 参数面 flag_range_free |
|
||||
| 信标网络 | beacon_network | 封印不限相邻(可对任何未开格封印) | 封印的可达性规则/常时 | 条件:真视类工具累计使用 ≥10 provisional(vision_used 生涯计数域) | 参数面 flag_range_free |
|
||||
|
||||
## 设计骨架(可设计方向 × 代价空间)
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
|
||||
凡是"直接告诉你危险格在哪"的效果(下文称真视),一次最多照亮 3×3 的窗口,任何道具都不允许全图看雷。全图级范围只留给恢复推理原料类的效果——显影、预读这类把已有事实交还玩家的信息,允许大范围(原则上被允许,见不做清单的边界锚)。这条限制写进数据校验:任何真视类道具的目标域字段超过 3×3,加载数据时直接返回错误并拒绝——护栏由加载期强制,不靠运行时拦截。
|
||||
|
||||
**道具的收益在"少赌",不在"单赌更安全"**:信息类道具不改变棋盘,只减少玩家必须盲赌的次数。真视把 k 格移出盲挖候选域——这 k 格从"要赌"变成"必避或必旗"的确定决策;情报类道具抬高棋盘可推理率,收缩"只能赌"的格子池。单次盲赌的命中率会随格子池收缩而上升,这是正常读数——收益按"赌的次数变少、期望踩雷下降"计,不按单次命中率计。
|
||||
**道具的收益在"少赌",不在"单赌更安全"**:信息类道具不改变棋盘,只减少玩家必须盲赌的次数。真视把 k 格移出盲挖候选域——这 k 格从"要赌"变成"必避或必封印"的确定决策;情报类道具抬高棋盘可推理率,收缩"只能赌"的格子池。单次盲赌的命中率会随格子池收缩而上升,这是正常读数——收益按"赌的次数变少、期望踩雷下降"计,不按单次命中率计。
|
||||
|
||||
```
|
||||
残余盲赌安全格数 n_s = (1 − ι) × |S|
|
||||
@@ -176,7 +176,7 @@
|
||||
|
||||
所有会失败的情况都被前两步拦下,后两步在合法输入下不会失败——"产生效果"和"消耗道具"永远成对发生。带两个效果的稀有道具,施加顺序钉死为先空间效果、后加行动点;定义表里效果的书写顺序不承载运行时语义。
|
||||
|
||||
用道具不扣行动点:成本在装配时已经付过——它占了一格同调位;挖格、插旗的价格不受任何影响。道具只产生信息与行动点、不产生动作:使用入口仅线香/天眼两主动件——不会自动替你挖,也不会自动替你插旗(试炼镐的自动兑付是行为转化的兑付、非使用动作——它不挖格不插旗,只在玩家自己挖格时按开格数兑行动点)。真视尤其要说清:它是信息不是保护,被标出的危险格挖开照样惊动;靠真视插旗仍按标准动作价计费(价目见 action_economy.tres),标中收益照走既有结算路径。本节纯流程,无计算。
|
||||
用道具不扣行动点:成本在装配时已经付过——它占了一格同调位;挖格、封印的价格不受任何影响。道具只产生信息与行动点、不产生动作:使用入口仅线香/天眼两主动件——不会自动替你挖,也不会自动替你封印(试炼镐的自动兑付是行为转化的兑付、非使用动作——它不挖格不封印,只在玩家自己挖格时按开格数兑行动点)。真视尤其要说清:它是信息不是保护,被标出的危险格挖开照样惊动;靠真视封印仍按标准动作价计费(价目见 action_economy.tres),标中收益照走既有结算路径。本节纯流程,无计算。
|
||||
|
||||
### 信息住在哪:整图叠加层,随图消亡
|
||||
|
||||
@@ -250,7 +250,7 @@ playtest 预警(预注册,归难度曲线与Boss):
|
||||
- 零消耗拒绝:目标不合法(例如点在已挖开的格子上)时道具不消耗、装配位不变、反馈可辨认;整图零信息时图标置灰、入口禁用。
|
||||
- 边缘受理:3×3 窗口中心格贴板角时照常受理,按窗口与棋盘的交集(角 4 格)结算并正常消耗。
|
||||
- 顺序钉死:组合道具先空间效果、后加行动点;任何合法使用中"产生效果"与"消耗"成对发生。
|
||||
- 使用零扣费:使用前后,除加量道具自身的入账外行动点读数不变;挖格与插旗价格不受影响。
|
||||
- 使用零扣费:使用前后,除加量道具自身的入账外行动点读数不变;挖格与封印价格不受影响。
|
||||
- 随图消亡与充能账:换图、弃图刷新、战斗结束时叠加层清空;主动件充能耗尽即不可用,充能每冒险开始重置。
|
||||
- 零随机与零特判:同一操作序列重放两遍,装配与充能账、叠加层投影逐位相同;排雷玩法代码中无为本系统而写的分支。
|
||||
- 装配不可变:装配只在冒险开始前于营地配置,冒险中不存在任何更换途径(拾取与效果均不产生装配变化,2026-10-11 用户裁)——验收含「冒险全程装配快照逐位不变」断言。
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
|
||||
### 经济
|
||||
|
||||
- **纯钥石(5b 裁)**:与现役属性锻造、天赋树(树全钥石单币)、同调刷新升级同币同柜。原案语义是"攻击力提升改造"——同一笔钱换个花法。金币(GP)=局内一次性货币、局内清零不入存档、与钥石永不互兑,两币分工是拍板条款,不引入局外金币余额域或第三货币。(用户裁定注:当前没有其他材料,钥石就是统一货币;**后续若要分出专用币或材料,届时再重构设计,不预先建面**。)
|
||||
- **纯钥石(5b 裁)**:与现役属性锻造、天赋树(树全钥石单币)、同调刷新升级同币同柜。原案语义是"攻击力提升改造"——同一笔钱换个花法。GP = 局内一次性货币、局内清零不入存档、与钥石永不互兑,两币分工是拍板条款,不引入局外 GP 余额域或第三货币。(用户裁定注:当前没有其他材料,钥石就是统一货币;**后续若要分出专用币或材料,届时再重构设计,不预先建面**。)
|
||||
- **几何递增定价**:每级价格 = 基础价 × 150%^(已购级数)(历史考古参数:单次 20 钥石、公比 150%——`meta.tres:82-84` 退役批注;forge_products 行族已随迭代 21 T5 退役、无现役计价字段可沿,实装投值归 M4 从零标定);路线解锁 = 一次性解锁价(量纲 ≈ 中段几级锻造花费)。全部终值归 M4。
|
||||
- **零材料经济(5c 裁)**:不引入账号层锻造材料。现役效果引擎的 grant_material 是**局内**材料计数器(如雷区图谱),不是账号层库存;账号层材料=全新经济面(存档域/获取渠道/囤积规则全套新建),原案全文只字未提材料,武器差异化的价值轴是类型(与预留的特效位)不是采集刷料。
|
||||
|
||||
|
||||
+12
-12
@@ -13,7 +13,7 @@
|
||||
|
||||
## Purpose & Player Need
|
||||
|
||||
战斗屏是 Dungeon Sweeper 的核心玩法屏——游戏的全部 agency(排雷规划)都发生在这里。玩家在此屏完成完整轮次循环:**用本轮 AP 在扫雷图上挖掘/标旗 → 主动停手或 AP 耗尽 → 观看轮末自动战斗结算逐行兑现 → 下一轮**。
|
||||
战斗屏是 Dungeon Sweeper 的核心玩法屏——游戏的全部 agency(排雷规划)都发生在这里。玩家在此屏完成完整轮次循环:**用本轮 AP 在扫雷图上挖掘/封印 → 主动停手或 AP 耗尽 → 观看轮末自动战斗结算逐行兑现 → 下一轮**。
|
||||
|
||||
一句话目的:**让"我算对了"的推理过程与它的战果兑现同屏可见、互为因果。**
|
||||
|
||||
@@ -80,9 +80,9 @@
|
||||
|
||||
本屏必须传达的全部信息,按注视优先级分五层:
|
||||
|
||||
1. **扫雷图本体**(第一注视点,挖掘期占视觉预算大头):两格态(已开格 / 未开格——排雷玩法×6② 一眼可辨)、数字、旗、小人、可挖域(8 向相邻常驻指示)、变异纹理
|
||||
1. **扫雷图本体**(第一注视点,挖掘期占视觉预算大头):两格态(已开格 / 未开格——排雷玩法×6② 一眼可辨)、数字、封印印记、小人、可挖域(8 向相邻常驻指示)、变异纹理
|
||||
2. **本轮行动资源**:AP 余量(决定还能挖几格)、RAP 池(弃图刷新货币)、停手/弃图刷新按钮——紧贴棋盘上缘(动作发生地)
|
||||
3. **战果兑现面**(结算期为第一注视点):敌人血条变化、逐行结算明细、高光(完美排雷/标中旗)
|
||||
3. **战果兑现面**(结算期为第一注视点):敌人血条变化、逐行结算明细、高光(完美排雷/封印标中)
|
||||
4. **规划面**(边缘注视,常读):攻击值与修正来源(C 区数据框)、敌人意图徽标与顺位(B 区站桩);HP 与状态效果由单位本体(B 区站桩)唯一承载——数据框不重复展示
|
||||
5. **进度语境**:轮次/阶段指示、图例入口(关卡节点进度常驻关卡画面,战斗屏不承载——见 Navigation Position)
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
**布局决策 1(本 spec 最大决策,用户拍板)**:**常驻双舞台分屏**——战斗画面与扫雷图同屏常驻,挖掘期敌人待机可见,结算期不切场景。
|
||||
- 备选(已否决):Peglin 式"结算时才切入独立战斗场景"——切换打断推理心流,且资产管线成本翻倍
|
||||
- **对战斗表现双舞台陷阱的输入**:game-concept 登记的"战斗发生在棋盘上还是独立场景"悬念,由本布局裁决为**第三形态:同屏双舞台**。战斗表现定稿前的"战斗表现美术测试"(一屏样张)应按此布局出样
|
||||
- 敌人不占格(敌人系统已锁)与本布局自洽:敌人实体只存在于 B 区,棋盘永远只有数字/旗/小人/变异
|
||||
- 敌人不占格(敌人系统已锁)与本布局自洽:敌人实体只存在于 B 区,棋盘永远只有数字/封印印记/小人/变异
|
||||
|
||||
**棋盘格尺寸公式**:`cell = floor(min(D宽−padding, D高−AP条−padding) / N)`,N∈{10,12,13,14}(棋盘生成 D1–D4 行;13×13/14×14 随第三关内容批扩板)。1280×800 下 12×12 → 36px,10×10 → 45px(格边长三方取值不一致已登记 06,扩板定档时统一处置)。数字字号 ≥ 格高的 50%,像素字体整数倍缩放(canvas_items stretch 保证清晰)。
|
||||
|
||||
@@ -220,7 +220,7 @@
|
||||
| **结算阶段** | round_end 触发(AP 尽/停手/清图) | D 区锁输入(棋盘去饱和 + 金橙色相偏移,明度不变,数字保持全对比);B 区播放五段编排演出(授予段 → 增益/减益段 → 战斗段 → 衰减段 → 判定段,战斗结算 段序冻结);明细带展开 84px 逐行滚动;阶段指示→"结算中";能量 7/10 |
|
||||
| **清图瞬间** | 全部安全格开完 | 金粒喷泉 + 彩纸 3–5s 即收(§2.3);清图奖励行强调呈现(H2,地图战斗资源×④——金框高亮行);随后换新图 install |
|
||||
| **完美排雷高光** | 战斗结算高光判定(全图标中/零误标类) | 全屏喝彩级反馈(§2.2 最高档):金光带加倍扫射 + 「完美排雷 ×2」横幅——P2 爆发兑现节点(创意风险 #2 落点) |
|
||||
| **标中旗高光** | flag_judged{hit=true} | 该旗化暴击弹道加重 + 明细行金框——chord 缺席的即时兑现补偿(创意风险 #3 落点) |
|
||||
| **封印标中高光** | flag_judged{hit=true} | 该印记化暴击弹道加重 + 明细行金框——chord 缺席的即时兑现补偿(创意风险 #3 落点) |
|
||||
| **敌人死亡呈现** | 敌 hp=0(流水行击杀标记) | 该敌人立绘血条归零 → 立绘灰化 + 碎裂退场(**禁瞬消**——敌人系统资产下限「死亡瞬间须可辨识、禁止直接消失」,同等 blocking);战斗段短路的重击被掐灭不产行动明细行,由行序可推断(战斗结算);动画密度归战斗表现,呈现语义在本 spec |
|
||||
| **胜利终局** | verdict=win | 金蜡封落于**扫雷图区中央**(§2.4 字面锚定),全屏暖白金 overlay;判定行 + 「下一节点」;明细回看入口;状态图标行全清可见反馈(增益状态×4④——B 区主角站桩图标逐枚化光收回 + 微文案「状态随战斗结束消散」,防「我的增益哪去了」误读) |
|
||||
| **失败终局** | verdict=lose(hero hp=0,战斗段短路) | 明度不变的暮蓝 #5A6C8C 氛围 overlay(全作唯一暮蓝档);小人坐砖掸灰、插过的旗逐面化光点收回(§2.5);判定行 +「返回」(明细回看已随 P-C7 退役——回看归「生涯」);状态图标行全清可见反馈(增益状态×4④,同胜利) |
|
||||
@@ -252,13 +252,13 @@
|
||||
| 胜利 overlay | 下一节点 | 左键 | → 关卡画面(选路枢纽)/ 关卡结算(末节点) | LevelRunner 推进 |
|
||||
| 失败 overlay | 返回 | 左键 | → 存档/营地 | 冒险终结 |
|
||||
|
||||
**单意图帧纪律**(排雷玩法×6⑥):一帧内 collected 意图整批提交,stop 点击终结当帧收集;F4 语义序仲裁为防御性兜底。悬停预承诺三态光标:移动(箭头)/挖(镐)/旗(旗形)——左键双义(移动 vs 挖)的消歧完全依赖格态一瞥可辨 + 光标区分(误挖不可逆的感知保险)。
|
||||
**单意图帧纪律**(排雷玩法×6⑥):一帧内 collected 意图整批提交,stop 点击终结当帧收集;F4 语义序仲裁为防御性兜底。悬停预承诺三态光标:移动(箭头)/挖(镐)/封印(印记形)——左键双义(移动 vs 挖)的消歧完全依赖格态一瞥可辨 + 光标区分(误挖不可逆的感知保险)。
|
||||
|
||||
**复合意图(排雷玩法评估项留痕)**:点击远格 = 自动 move+dig 的两击摩擦消解——**MVP 不做**(留痕 2026-09-12:免费移动高频,两击摩擦符合 P4 ≤2 观测假设;排雷玩法 L298 评估项)。
|
||||
|
||||
**可挖域常驻指示**:小人 8 向相邻未开格呼吸微光(§2.1 唯一在动的元素);不可挖域(非相邻)悬停显示禁止光标 + 首次 toast 提示「需先走近(点击已开格移动,免费)」。
|
||||
|
||||
**chord 肌肉记忆首遇提示**(排雷玩法×6③):经典扫雷玩家首日尝试双击快开时,非模态 toast 每 run 一次:「本作无双击快开——插旗后轮末自动判定标中;点数字格可移动小人」(含排雷玩法登记锚点「点击数字格 = 移动小人」)。文案定稿权归实现期文案 pass。
|
||||
**chord 肌肉记忆首遇提示**(排雷玩法×6③):经典扫雷玩家首日尝试双击快开时,非模态 toast 每 run 一次:「本作无双击快开——封印后轮末自动判定标中;点数字格可移动小人」(含排雷玩法登记锚点「点击数字格 = 移动小人」)。文案定稿权归实现期文案 pass。
|
||||
|
||||
---
|
||||
|
||||
@@ -340,9 +340,9 @@
|
||||
|
||||
- **源语言中文(CJK)**:运行时默认字体无 CJK 字形——**CJK 字体随包为硬性前置**(已锁),实现 AC 覆盖
|
||||
- **按钮文案单行约束**:「停手」「弃图刷新」——按钮宽度按 4 汉字上限设计;译为英文("Hold"/"Reroll")不超 1.6× 不破版;德语长词("Aufgeben+Neu"类复合词)风险 HIGH——弃图刷新按钮允许两行或图标+缩写
|
||||
- **明细带行文案**:来源标注格式「{行为} {值} → {目标}(来源)」为模板插值,最长 token = 来源标签(4 汉字,如「清图奖励」「标旗未中」——settlement source_label_map 封闭枚举);行模板预留 40% 膨胀宽度(固定槽高 + clip 兜底)
|
||||
- **明细带行文案**:来源标注格式「{行为} {值} → {目标}(来源)」为模板插值,最长 token = 来源标签(4 汉字,如「清图奖励」「封印未中」——settlement source_label_map 封闭枚举);行模板预留 40% 膨胀宽度(固定槽高 + clip 兜底)
|
||||
- **数字格式**:全部整数,无本地化格式需求;AP 点阵为图形载体不依赖文本
|
||||
- **术语表锚定**:旗/雷/停手/弃图刷新/轮次/结算 已在 GDD 体系内定名,译文须同步 registry terminology(五词条先例)
|
||||
- **术语表锚定**:封印/雷/停手/弃图刷新/轮次/结算 已在 GDD 体系内定名,译文须同步 registry terminology(五词条先例)
|
||||
|
||||
---
|
||||
|
||||
@@ -353,13 +353,13 @@
|
||||
- [ ] 1280×800 与 16:9 全屏(canvas_items/expand)下三区(B/C/D)无遮挡、无重叠、无内容裁切(棋盘 12×12 全部格子 + 数字完整可见)
|
||||
- [ ] 进入战斗屏 ≤500ms 内可交互(棋盘 install 淡入完成后首格可点);同屏 draw calls < 200(technical-preferences 预算)
|
||||
- [ ] 两种格态(已开格 / 未开格)灰度截图下一眼可辨(排雷玩法×6②)
|
||||
- [ ] 悬停光标区分移动/挖/旗三语义;可挖域(8 向相邻)常驻指示;非相邻格悬停显禁止反馈(排雷玩法×6③)
|
||||
- [ ] 悬停光标区分移动/挖/封印三语义;可挖域(8 向相邻)常驻指示;非相邻格悬停显禁止反馈(排雷玩法×6③)
|
||||
- [ ] 已引爆危险格呈"可通行可读"(排雷玩法×6④)
|
||||
- [ ] 全部数字对所在格底对比 ≥4.5:1;明度分层规则无违例(art-bible §2/§4.1,v3.0——状态区分不走明度,格底功能分档合法)
|
||||
|
||||
**交互与反馈**
|
||||
|
||||
- [ ] 挖/移/旗/停手/刷新全部操作纯鼠标可完成;stop 意图经 `settle_batch` 提交(代码走查 + 探针断言)
|
||||
- [ ] 挖/移/封印/停手/刷新全部操作纯鼠标可完成;stop 意图经 `settle_batch` 提交(代码走查 + 探针断言)
|
||||
- [ ] 每次拒绝(棋盘面/资源面/相位)玩家可感知且两源可区分;voided(至少 stop 作废)可感知(排雷玩法×6⑥、行动经济双源)
|
||||
- [ ] 弃图刷新消耗 RAP 8 点、本轮上限 2 次可见(按钮文案实时「剩 N 次」;上限已随行动经济 2026-09-12 修订生效);RAP<8 资源面拒绝可见(行动经济 EC13);确认交互与常规确认不同位;换图后 AP 不重置、剩余次数扣减可见(**上游已修订受理——2026-09-12 布局决策 4 落稿**)
|
||||
- [ ] battle_over 时 RAP 清零有可见反馈(行动经济);~~关卡收束清库反馈~~(义务随秘宝过渡形态退役消解——现行 = 营地同调装配整局生效,秘宝.md)
|
||||
@@ -375,7 +375,7 @@
|
||||
- [ ] 零合法板(棋盘生成 EC5 降级)出现时玩家侧诚实提示(toast,非静默)
|
||||
- [ ] 效果行 value 为单次贡献值,禁止与 pool_value(池合成值)相加呈现;零值伤害行可见不被吞;衰减行按聚合计数呈现(战斗结算 呈现细则)
|
||||
- [ ] 未生效类行(奖励未生效)携带形状冗余(icon/划线),非色相独载
|
||||
- [ ] 奖励徽章绘制优先级:旗之下、变异纹带之上、不进数字区;拾取瞬间 tier 档位可读(地图战斗资源 H1)
|
||||
- [ ] 奖励徽章绘制优先级:封印印记之下、变异纹带之上、不进数字区;拾取瞬间 tier 档位可读(地图战斗资源 H1)
|
||||
|
||||
**场景级测试**(旧版状态记录 entry 17②③,缺项即 blocking)
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ MVP 未使用标准控件(不入库):toggle / dropdown / input field / tab
|
||||
**Description**: 左键双义(已开格=移动 / 未开相邻格=挖)的消歧完全依赖格态一瞥可辨 + 悬停光标区分——**误挖不可逆**(1 AP + 可能触雷)的感知保险。
|
||||
|
||||
**Specification**:
|
||||
- 光标三态:移动(箭头)/挖(镐)/旗(旗形)——按悬停格态与键位自动切换
|
||||
- 光标三态:移动(箭头)/挖(镐)/封印(印记形)——按悬停格态与键位自动切换
|
||||
- 目标格边框高亮常驻
|
||||
- 可挖域常驻指示:小人 8 向相邻未开格呼吸微光(挖掘期唯一在动元素——art-bible §2.1)
|
||||
- 非相邻格:禁止光标 + 首次 toast「需先走近(点击已开格移动,免费)」
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
| 组件 | 类型 | 内容 | 交互 | 现有实现锚 |
|
||||
|---|---|---|---|---|
|
||||
| 关卡名标签 | 文本 | `level_row.display_name`(关卡表行读数) | 只读 | 新建(现行标题位升级) |
|
||||
| GP 常驻徽章 | 直角细线数据框 | 金币图标 + 数字(`runner.gp`,冒险钱包读数;刷新经 `wallet_changed` 信号投影〔gain/buy/clear 三事件〕或写路径回执后重查) | 只读 | 新建(GP 去向拍板落地面) |
|
||||
| GP 常驻徽章 | 直角细线数据框 | GP 图标 + 数字(`runner.gp`,冒险钱包读数;刷新经 `wallet_changed` 信号投影〔gain/buy/clear 三事件〕或写路径回执后重查) | 只读 | 新建(GP 去向拍板落地面) |
|
||||
| 节点图画布 | 自绘 Control | 节点图标(五键 20px 烘焙,双色墨制)+ 编号、通道折线、节点态着色、Boss 紫赤描边+深墨环(BOSS_PURPLE——2026-09-26 封印紫批语义:紫赤本色) | 悬停预承诺 / 点击提交选路(唯一通道) | ✅ level_map_screen.gd `_draw_graph`(视觉终稿已落码——迭代 4 T2/T3) |
|
||||
| 状态数据框组 | 直角细线数据框 ×3 | 生命(当前/上限 + 迷你血条)、属性(攻击 / 护甲 AC 有效值 + 加成角标)、本关加成(加算区增量列表,零加成隐藏) | 只读 | 新建(2026-09-27 拍板:底栏状态展示) |
|
||||
| 放弃冒险按钮 | 按钮(危险红族) | 「放弃冒险(同失败结算——已获大奖励保留)」;二次确认态已拍板(见布局决策 3) | 点击(首击转确认态、二击提交) | ✅ level_map_screen.gd(可见性归组合根,仅冒险模式开) |
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
## 定位
|
||||
|
||||
商店覆盖层是商店房节点的兑付呈现面(**冒险-关卡中循环节点功能**):行进至商店房打开,玩家用 GP(显示名「金币」)在令牌级货架上购买,离开后兑付确认回选路。现行 = pool 模式(货架与三选一共享令牌池);legacy 三商品卡模式保留为 shop=off 对照形态。本 spec 只锁呈现;编排与定价归机制文档。
|
||||
商店覆盖层是商店房节点的兑付呈现面(**冒险-关卡中循环节点功能**):行进至商店房打开,玩家用 GP(显示名「GP」)在令牌级货架上购买,离开后兑付确认回选路。现行 = pool 模式(货架与三选一共享令牌池);legacy 三商品卡模式保留为 shop=off 对照形态。本 spec 只锁呈现;编排与定价归机制文档。
|
||||
|
||||
## 布局与交互
|
||||
|
||||
- 模态覆盖层(dim + 居中):标题「商店」/ 金币余额(GP 读数)/ 令牌级货架卡(进店自共享池抽 3 张:显示名·效果·现价——六行池面含回复与专长凭证;买一件 = 池少一件、货架随即全架重抽)/ 购买按钮(余额不足禁用置灰——pattern 8 禁用态即理由)/ 刷新按钮(GP 付费刷新,价 = ceil(20×1.8^本次进店已付费刷) provisional,余额不足禁用)/ 离开按钮。
|
||||
- 模态覆盖层(dim + 居中):标题「商店」/ GP 余额读数/ 令牌级货架卡(进店自共享池抽 3 张:显示名·效果·现价——六行池面含回复与专长凭证;买一件 = 池少一件、货架随即全架重抽)/ 购买按钮(余额不足禁用置灰——pattern 8 禁用态即理由)/ 刷新按钮(GP 付费刷新,价 = ceil(20×1.8^本次进店已付费刷) provisional,余额不足禁用)/ 离开按钮。
|
||||
- 购买意图 `buy_requested` 经组合根转发 runner(pool 模式载荷 = kind_id);成功后货架整架重建(买 1 全重抽反馈)。刷新意图 `refresh_requested` 经组合根转发 presenter。
|
||||
- 离开 → 关卡画面兑付确认回选路(零自动推进)。
|
||||
- 刷新与货架口径(2026-10-04 P-C2+Q2 裁决,SR-1 落码):基础免费 0 次 + GP 付费刷新 + 池源同源(与三选一同一令牌账本)——原「无独立刷新、全陈列」裁决随该批被推翻;天赋侧「刷新次数」增益预留 free_count 位(06 登记条在册)。
|
||||
|
||||
+13
-9
@@ -7,11 +7,11 @@
|
||||
| 术语 | 定义 |
|
||||
|---|---|
|
||||
| 棋盘 | 一局扫雷游玩的格子区域,单局内生成(见[棋盘生成](systems/排雷循环/棋盘生成.md)) |
|
||||
| 危险格 | 有惩罚的格子——挖开会触发惩罚(惊动则怪物倾巢而出;被旗控制则化险为利)(原「雷格」(机制名)/「惩罚格」(界面名)统一于此,2026-10-11 用户裁;同日补裁无类型划分) |
|
||||
| 危险格 | 有惩罚的格子——挖开会触发惩罚(惊动则怪物倾巢而出;被封印控制则化险为利)(原「雷格」(机制名)/「惩罚格」(界面名)统一于此,2026-10-11 用户裁;同日补裁无类型划分) |
|
||||
| 安全格 | 没有惩罚的格子——挖开安全并获得其上信息与收益 |
|
||||
| 整图 | 单张棋盘(的整个范围)——原「整图」退役(2026-10-11 用户裁)。例:整图叠加层、整图作用域 |
|
||||
| 叠加层(整图叠加层) | 秘宝产生的信息的自持容器:按效果分类的格集,随图消亡、不回写棋盘(见[秘宝](systems/跨局循环/秘宝.md)) |
|
||||
| 旗 / 控制 | 插旗动作的机制名/玩家名:旗插在危险格上为「标中」(危险格被控制、化险为利),插错为「标空」 |
|
||||
| 封印 / 控制 | 封印动作的机制名/玩家名:封印印记落在危险格上为「标中」(危险格被控制、化险为利),封错为「标空」(原「旗 / 控制」,2026-10-18 用户裁:「旗」概念不存在——动作=封印、印记=封印印记) |
|
||||
| 真视 | 直接告诉玩家某范围内哪些格是危险格的效果(秘宝承重契约:一次最多 3×3,见[秘宝](systems/跨局循环/秘宝.md)核心规则) |
|
||||
| 类型微光 | 棋盘上按格子类型显示的提示光效(视野参数控制其显示范围) |
|
||||
| 换图 / 弃图刷新 | 清完一图进入下一图 / 花储备放弃当前图重开一张(代价见[行动经济](systems/排雷循环/行动经济.md)) |
|
||||
@@ -25,7 +25,7 @@
|
||||
| AP(行动点) | 每轮可执行动作的次数资源,每轮开始重置为表值(见[行动经济](systems/排雷循环/行动经济.md)) |
|
||||
| RAP(储备行动点) | 停手时把当轮没用完的行动点按转存率存入的储备池,跨轮保留、玩家可见可花 |
|
||||
| 停手 / 转存率 | 主动结束本轮的动作 / 停手时行动点转入 RAP 的比例(现役 1:1,可被秘宝改写) |
|
||||
| GP(局内金币) | 冒险内的一次性货币:局内获取与消费、冒险结束清零、不入存档 |
|
||||
| GP | 冒险内的一次性货币:局内获取与消费、冒险结束清零、不入存档(GP 是唯一正式命名,「金币」全库禁用,2026-10-18 用户裁) |
|
||||
| 钥石 | 跨局持久货币:关卡大奖励与 Boss 掉落入账、存档持久、营地柜台消费(见[元进度](systems/跨局循环/元进度.md)) |
|
||||
| 通关 | **打通整局冒险**(三关全通)——与「通过关卡」非同义词(2026-10-11 用户裁定);计数器=adventure_cleared |
|
||||
| 通过第 N 关 | 打通第 N 关卡;计数器=每关通关次数表(level_clear_counts) |
|
||||
@@ -67,7 +67,7 @@
|
||||
| 奇物 | 冒险途中获得的增益总称(当局清零;见[奇物](systems/冒险循环/奇物.md)) |
|
||||
| 专长 | 奇物的分类之一:改写规则的机制件 |
|
||||
| 专长凭证 | 换取一次专长三选一资格的凭证——奖励节点与商店不直接给专长,给凭证(原「凭证」,2026-10-11 用户裁更名) |
|
||||
| 地图战斗资源 | 战斗域的资源层:每格在装板期摇定资源类型身份(安全格/危险格同一类型池),回合内挖格/标旗获取、按动作极性结算正负兑付的一次性收益(原「奖励道具经济」,2026-09-16 用户裁更名;见[地图战斗资源](systems/战斗循环/地图战斗资源.md)) |
|
||||
| 地图战斗资源 | 战斗域的资源层:每格在装板期摇定资源类型身份(安全格/危险格同一类型池),回合内挖格/封印获取、按动作极性结算正负兑付的一次性收益(原「奖励道具经济」,2026-09-16 用户裁更名;见[地图战斗资源](systems/战斗循环/地图战斗资源.md)) |
|
||||
| 机能件 / 机制件 | 道具的作用二分:不改变结算规则、只扩大操作包络的为机能件(秘宝);使结算产生原本不存在的新行的为机制件(专长)。判定尺见[核心循环](01-核心循环.md)「道具三层职责与分界」节 |
|
||||
|
||||
## 结算目标
|
||||
@@ -94,7 +94,7 @@
|
||||
|
||||
### A. 已裁替换(写新文本必须用「用」列)
|
||||
|
||||
| 不用 | 用 | 出处 |
|
||||
| 禁用 | 用 | 出处 |
|
||||
|---|---|---|
|
||||
| 对标 | 参照 | STC 1.7,2026-10-15 用户裁 |
|
||||
| 若干 | 写具体数值;无数值可写时写明数值出处 | STC 5.4,2026-10-15 用户裁 |
|
||||
@@ -115,7 +115,7 @@
|
||||
|
||||
1. **历史文本**:版本历史表已入库的行、git 提交说明、裁决记录中引用用户原话的句子——保留原用词,不按 A 表追改。
|
||||
2. **对照性文本**:「退役词对照」表本身、「原 ××」式更名记载、禁令引举句——旧词在这些位置是内容本身,不是残留。
|
||||
3. **玩家可见专名与机制词**:按「对外命名纪律」节与各系统文档现行用语使用(旗/标中/踩雷等机制词在文档内部照常用)。
|
||||
3. **玩家可见专名与机制词**:按「对外命名纪律」节与各系统文档现行用语使用(标中/踩雷等机制词在文档内部照常用)。
|
||||
|
||||
存量口径:A 表生效前已入库的正文不做强制清扫;文件后续被批次触碰时,顺带按 A 表换代。
|
||||
|
||||
@@ -130,16 +130,19 @@
|
||||
| 正主 | 现行事实源 |
|
||||
| 落籍 | 已入库 |
|
||||
| 工作日志 | 状态记录 |
|
||||
| 金币 | GP(2026-10-18 用户裁:GP 是唯一正式命名,「金币」系 AI 噪音全库禁用) |
|
||||
| 插旗 | 封印(2026-10-18 用户裁:封印=正式动作名,全库统一,非比喻非「对外表达」别名) |
|
||||
| 旗(游戏概念语境) | 封印印记(2026-10-18 用户裁:「旗」概念不存在——封印动作落下的印记称封印印记) |
|
||||
|
||||
## 对外命名纪律(玩家可见命名,2026-10-11 用户令)
|
||||
|
||||
| 规则 | 内容 |
|
||||
|---|---|
|
||||
| 禁用字面 | 「雷」「插旗」及相关字面(雷格/踩雷/插旗/旗)**禁止进入对外命名**——「扫雷插旗」仅系内部开发用语,对外世界观=探索地下城/挖掘地下城 |
|
||||
| 插旗的对外表达 | **封印**(件名示例:封印桩/封印回响/封印匠/封印爆裂) |
|
||||
| 禁用字面 | 「插旗」「旗」及相关字面(插旗/标旗/旗)**全库禁用**(2026-10-18 用户裁:游戏中不存在「旗」概念——动作=封印、印记=封印印记);「雷」及相关字面(雷格/踩雷)**禁止进入对外命名**——对外世界观=探索地下城/挖掘地下城 |
|
||||
| 封印 | **正式动作名(全库统一)**——不是比喻、不是「对外表达」别名(件名示例:封印桩/封印回响/封印匠/封印爆裂) |
|
||||
| 危险格的对外风味 | **地下城陷阱 / 怪物巢穴**(巢穴仅限世界观风味层使用——产品名清巢者出处、美术纹样名;机制表述仍用危险格) |
|
||||
| 连锁展开的对外表达 | **坍塌显形**:挖穿薄壳、整片松动地面塌陷露出(00 篇巢穴隐喻轴定名;机制文档内部仍用连锁展开) |
|
||||
| 适用范围 | 全部对外命名:道具件名、显示名、UI 文案、成就与百科措辞(首例=专长 27 件第一版命名,[奇物](systems/冒险循环/奇物.md)基础件表 v3.15);机制文档内部用语不受此限(旗/标中/踩雷等机制词照常用) |
|
||||
| 适用范围 | 全部对外命名:道具件名、显示名、UI 文案、成就与百科措辞(首例=专长 27 件第一版命名,[奇物](systems/冒险循环/奇物.md)基础件表 v3.15);封印/旗族与金币的禁令扩为**全库正文**(2026-10-18 用户裁)——机制文档内部一律用封印,无内部用语豁免 |
|
||||
|
||||
## 版本历史
|
||||
|
||||
@@ -158,3 +161,4 @@
|
||||
| v1.10 | 2026-10-13 | **迭代 23 反哺落文批随迁**(实现报告 §五③「若需登记补登」经用户令落文):锻造工坊节新增「路线 id / 存档域键名」词条——六路线 id 与 forge_routes 域四键(levels/unlocked/weapon/armor),实现层词汇非玩家可见;玩家向术语零新增 |
|
||||
| v1.11 | 2026-10-13 | 「道具」统称登记(用户立内部用语习惯):道具=秘宝/奇物/地图战斗资源三类的内部开发统称,可单说或组合(秘宝道具/奇物道具/专长道具/战斗资源道具),仅限开发内部、玩家可见面用各类正式名称;同批补登「地图战斗资源」词条(原「奖励道具经济」2026-09-16 更名后一直未入表) |
|
||||
| v1.12 | 2026-10-15 | **用语规范节新立 + 简明技术中文用语规范批(用户令「全部 GDD 做语言规范并融合词表」)**:新立「用语规范」节=词面权威指向 STC 词表+已裁替换表 12 行(STC 词面 5 行〔对标/若干/不得/报错/buff〕+doc-conventions §4 流程动词 7 行)+豁免条款三类(历史文本/对照性文本/玩家可见专名);新词条:装板(装板期)/摇号、机能件/机制件、总线/抽屉(新「结算目标」节)、坍塌显形(对外命名纪律节);版本历史重排修复双 v1.2(详见 v1.9 行注) |
|
||||
| v1.13 | 2026-10-18 | **设计文档术语刷新批(用户裁)**:金币退役(GP 是唯一正式命名,「金币」系 AI 噪音)、插旗退役(正式动作名=封印,全库统一)、旗概念退役(印记=封印印记)——三词入退役词对照表+机检词表(doc_term_audit.py);封印定性由「插旗的对外表达」更正为正式术语(非比喻);禁用字面从对外命名扩为全库;删「机制文档内部用语不受限」条款;旗/控制词条更名封印/控制;雷格/惩罚格存量正文补扫(2026-10-11 退役批残留) |
|
||||
@@ -0,0 +1,120 @@
|
||||
# 代码术语审计报告
|
||||
|
||||
日期:2026-10-18
|
||||
触发:用户裁定——GP 是唯一正式命名(「金币」系 AI 噪音);「插旗」全库禁用(正式名=封印);「旗」概念不存在;「雷格」「惩罚格」已退役(正式名=危险格)
|
||||
|
||||
---
|
||||
|
||||
## 1. 裁定摘要
|
||||
|
||||
| 禁用词 | 正式替代 | 裁定依据 |
|
||||
|--------|---------|---------|
|
||||
| 金币 | GP | GP 是唯一正式命名,「金币」系 AI 产出噪音,不应存在于任何位置 |
|
||||
| 插旗 | 封印 | 游戏中不存在「旗」概念,右键动作=封印 |
|
||||
| 旗(作为游戏概念) | 封印印记 | 同上——「不存在任何旗相关的东西」 |
|
||||
| 封印(作为比喻解释) | 封印(作为正式术语) | 封印是正式动作名,不是比喻;禁止以「比喻」框架描述 |
|
||||
| 雷格 | 危险格 | 2026-10-11 已裁退役 |
|
||||
| 惩罚格 | 危险格 | 2026-10-11 已裁退役 |
|
||||
| flag_*(代码键名) | seal_* | 用户裁定全换 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 命中统计
|
||||
|
||||
| 禁用词 | 命中次数 | 涉及文件数 |
|
||||
|--------|---------|-----------|
|
||||
| 金币 | 116 | 44 |
|
||||
| 插旗 | 210 | 61 |
|
||||
| 雷格 | 109 | 31 |
|
||||
| 惩罚格 | 8 | 4 |
|
||||
| flag_(.gd) | 270 | 29 |
|
||||
| flag(.tres) | 22 | 4 |
|
||||
| flag(独立词 .gd) | 22 | 10 |
|
||||
| **合计** | **~757** | **~100+(有重叠)** |
|
||||
|
||||
注:「封印」现有 170 处命中(46 文件),其中大部分是正确用法(封印=正式术语),但部分语境把它当「比喻」或「对外表达」描述,需修正措辞。
|
||||
|
||||
---
|
||||
|
||||
## 3. 分域明细
|
||||
|
||||
### 3.1 玩家可见文本(P0 最高优先级)
|
||||
|
||||
UI 字符串、toast、tooltip、display_name、desc 字段中出现的禁用词:
|
||||
|
||||
| 文件 | 行 | 内容 | 问题 |
|
||||
|------|-----|------|------|
|
||||
| game/presentation/views/shop_overlay_view.gd | 51,101,109,174,191 | `"金币 0"` / `"金币 %d"` / `"现价 %d 金币"` / `"刷新 %d 金币"` | 金币→GP |
|
||||
| game/presentation/camp_shop_presenter.gd | 180,190,202 | `"金币不足——买不起这件商品"` / `"金币不足——刷新失败"` | 金币→GP |
|
||||
| game/presentation/curio_interact_controller.gd | 192 | `"金币不足——刷新失败"` | 金币→GP |
|
||||
| game/presentation/battle_narrator.gd | 24,114 | `"商店房:金币 %d"` / `"金币袋%s\n金币 +%d"` | 金币→GP |
|
||||
| game/presentation/views/curio_pick_overlay.gd | 122,124 | `"刷新 %d 金币"` / tooltip 含「金币」 | 金币→GP |
|
||||
| game/presentation/views/legend_overlay.gd | 14 | `"金=金币"` | 金币→GP |
|
||||
| game/presentation/hud_presenter.gd | 169 | `"不能插旗:此格已有旗"` | 插旗→封印,旗→封印印记 |
|
||||
| game/presentation/main.gd | 967 | `"插旗后轮末自动判定标中"` | 插旗→封印 |
|
||||
| game/presentation/views/legend_overlay.gd | 9,11 | `"右键插旗(1AP)"` / `"封印印记(呈现名·不能拔)"` | 插旗→封印 |
|
||||
| game/data/tables/treasure_items.tres | 212 | `"插旗不限相邻"` | 插旗→封印 |
|
||||
| game/data/tables/reward.tres | 188 | `"display_name": "金币袋"` | 金币袋→GP 袋(或用户定名) |
|
||||
| game/data/tables/feats.tres | 多处 | desc 含「封印」 | 需逐条核验语境(非比喻即合法) |
|
||||
| game/tests/unit/presentation/reward_overlay_test.gd | 31,49 | `"金币袋\n金币 +20"` / `"刷新 20 金币"` | 测试断言里的 UI 文本 |
|
||||
|
||||
### 3.2 代码注释与内部文档(P1)
|
||||
|
||||
约 500+ 处分布在 .gd 注释、game/README.md、design/registry/entities.yaml、design/gdd/ 各系统文档中。主要模式:
|
||||
|
||||
- `# 挖雷格/标错旗` → `# 挖危险格/标错封印`
|
||||
- `# 插旗不可逆` → `# 封印不可逆`
|
||||
- `# 雷格恒无变异` → `# 危险格恒无变异`
|
||||
- `# 金币袋兑付` → `# GP 袋兑付`
|
||||
- `flag_place` / `flag_hit` / `flag_cell` / `has_flag` / `tex_flag` → `seal_place` / `seal_hit` / `seal_cell` / `has_seal` / `tex_seal`
|
||||
|
||||
### 3.3 代码标识符(P1,影响面最大)
|
||||
|
||||
flag_* 族标识符 270 处(29 个 .gd 文件)+ 22 处(.tres),涉及:
|
||||
|
||||
- 核心逻辑:minesweeper_rules.gd(18)、battle_orchestrator.gd(17)、grant_segment.gd(23)、effect_engine.gd(9)
|
||||
- 数据表:action_economy.tres(2)、feats.tres(15)、settlement.tres(3)、treasure_items.tres(2)
|
||||
- Schema:settlement_table.gd(3)、treasure_item_table.gd(3)、action_economy_table.gd(4)
|
||||
- 呈现层:board_view.gd(7)、battle_end_overlay.gd(9)、ui_input_probe.gd(23)
|
||||
- 冒烟/测试:smoke_all.gd(105)、level_autoplay.gd(16)、各 test 文件
|
||||
|
||||
### 3.4 设计文档(P1)
|
||||
|
||||
design/gdd/ 和 design/registry/ 中约 200+ 处,需随术语表修正同步更新。
|
||||
|
||||
### 3.5 历史文档(P2)
|
||||
|
||||
design/research/(提案、需求卡片)、design/qa/(审查报告)、design/art/(美术文档)中的命中:
|
||||
- 历史提案和已结案需求卡片:留档不改(记录当时语境)
|
||||
- 美术文档中的「封印旗」「封印特效」:需逐条核验(封印合法,旗不合法)
|
||||
- roadmap.md:历史条目留档
|
||||
|
||||
---
|
||||
|
||||
## 4. 术语表自身修正清单
|
||||
|
||||
术语表(design/gdd/术语表.md)需按新裁定修正的条目:
|
||||
|
||||
| 行 | 现行内容 | 问题 | 修正方向 |
|
||||
|----|---------|------|---------|
|
||||
| 14 | `旗 / 控制` 条目 | 「旗」概念不存在 | 改为「封印 / 控制」,删除「旗插在危险格上」措辞 |
|
||||
| 28 | `GP(局内金币)` | 「金币」是噪音 | 改为 `GP`,删除「金币」别名 |
|
||||
| 126 | `雷格 / 惩罚格 → 危险格` | 对照行,合法 | 保留 |
|
||||
| 138 | `禁用字面:「雷」「插旗」…禁止进入对外命名` | 范围不够——插旗应全库禁用,不只是对外命名 | 扩大为全库禁用 |
|
||||
| 139 | `插旗的对外表达 = 封印` | 封印不是「对外表达」,是唯一正式名 | 改为「封印=正式术语(全库统一)」 |
|
||||
| 154 | v1.6 修订记录「插旗对外=封印…机制文档内部用语不受限」 | 内部用语也禁用 | 修正 |
|
||||
|
||||
---
|
||||
|
||||
## 5. 风险评估
|
||||
|
||||
- **flag_* → seal_* 重命名**是最高风险项:涉及核心游戏逻辑(排雷规则、战斗编排、结算授予段),改错会破坏游戏行为。必须全量冒烟通过。
|
||||
- **.tres 数据文件**中的 flag 键名改动需与 schema 同步,否则数据加载失败。
|
||||
- **smoke_all.gd 单文件 105 处 flag_**,是改动密度最高的文件。
|
||||
- 中文文本替换风险较低,但量大面广,需防漏改和误改(如「旗」字在非游戏语境出现)。
|
||||
|
||||
---
|
||||
|
||||
## 6. 建议拆批
|
||||
|
||||
见同目录需求卡片:`design/research/需求卡片-代码术语刷新批-2026-10-18.md`
|
||||
@@ -201,7 +201,7 @@ entities:
|
||||
cell_revealed: "{cell, kind ∈ {safe, mine}, digit【仅 kind=safe 携带、恒真透传——呈现隐藏归 HUD框架,判定源 = variant_ids,排雷玩法×4③】, variant_ids, channel ∈ {initial, chain, dig}, resource【initial 恒 false(封锁格无资源)/ chain·dig 恒 true——安全格与雷格一视同仁,雷格亦携带格面资源(负向兑付归 战斗结算 极性路由)】}" # 2026-09-15 格面资源批:reward_eligible → resource,旧口径"mine 恒 false"顺带作废
|
||||
flag_judged: "{cell, hit = [cell ∈ M]}×N——轮末统一判定批(基线 = 轮次结束事务开始时旗位,被拔不判;行主序枚举);排雷玩法 诚实重复上报、兑付去重归 战斗结算/地图战斗资源(资格以雷格实例为键——action_economy.flag_rules/行动经济 OQ5)"
|
||||
round_end: "{path_tag ∈ {ap_exhausted, cleared}, continuation_hint}——棋盘路径由 排雷玩法 外发、核心字段逐字段取自 行动经济.last_round_end(读取权 = 接口契约),与 行动经济 stopped 路径 payload 同构;stopped 由 行动经济 直发、排雷玩法 禁双发(action_economy.round_end_carrier 双发射源)"
|
||||
event_order: 同一轮次结束事务内 flag_judged ×N 先于 round_end(全路径统一——stop 腿 排雷玩法 先发旗判定再委托 request_stop,停手不改旗故基线等价);战斗结算 结算触发 = Waiting 相位编排点、不依赖事件到达序(战斗结算×3 强制项之一,systems-index 排雷玩法 门禁块)
|
||||
event_order: 同一轮次结束事务内 flag_judged ×N 先于 round_end(全路径统一——stop 腿 排雷玩法 先发封印判定再委托 request_stop,停手不改封印故基线等价);战斗结算 结算触发 = Waiting 相位编排点、不依赖事件到达序(战斗结算×3 强制项之一,systems-index 排雷玩法 门禁块)
|
||||
zero_random: 排雷玩法 零 RNG 流消费——同板同意图序列 ⇒ 事件流逐位确定(AC-19);cell_revealed 发射序 = 规范序(初始/连锁 = 触发格 BFS、8 邻行主序)
|
||||
api_surface: install_board / settle_batch(HUD框架 唯一提交入口;stop 经此委托 行动经济.request_stop——HUD框架×6① 强制项:不直调 行动经济,行动经济 Rule 9 调用方细化、行动经济 GDD 不改以本条为准)/ try_dig·try_flag_place·try_move / compute_move_path(HUD框架 路径预览数据源)/ retire_board;ActionOutcome{accepted, executed|voided|rejected, reject_reason ∈ {board_face, resource_face, phase, board_invalid}, sub_reason【仅 board_face 携带:not_adjacent/target_revealed/target_concealed/flag_present/no_path/out_of_catalog——2026-09-09 评审 UX-1 定稿,玩家可辨呈现数据源;批后修改 = 接口漂移;flag_absent 随拔旗退役 2026-09-19 移出,挖旗格放行同批】}——provisional;事件载体已定(组合根直连信号 + Waiting 相位触发,排雷玩法 OQ2 关闭)
|
||||
referenced_by: [战斗结算, 地图战斗资源, HUD框架, 音频, 教学引导]
|
||||
@@ -259,7 +259,7 @@ entities:
|
||||
图标键(icon key): "哪个数据行配哪枚图标"的固定对照——数据表主键(effect_id/reward_id/cell_type/enemy_id)直接作图标键,一键一专属纹样、映射全局恒定禁运行时换图(art-bible §4.6 首次定义,2026-09-13 冻结)
|
||||
徽章(badge): 画在格子上的身份附属小图标(类型/奖励身份预读)——绘制优先级栈位在旗之下、变异纹理之上,不构成格内第二焦点(art-bible §4.6 首次定义;栈位声明源 = 极性批 git 提交 ddd2960)
|
||||
极性(polarity): 同一类型兑付的正负方向——正 = 收益侧、负 = 代价侧,行为×格型→符号矩阵见极性提案 R2;视觉通道冻结 = 金族(有利)对红族(有害)+ 满框对缺框(art-bible §4.6 首次冻结视觉侧)
|
||||
命令式回执驱动: 动作调用返回后组合根立刻重查一次只读面来刷新界面、不等通知信号——旗插拔/移动/AP·RAP 读数/状态/库存五类动作零事件外发或零推送,呈现层刷新由此承载(HUD框架 首次定义;组合根订阅纪律的配对形态)
|
||||
命令式回执驱动: 动作调用返回后组合根立刻重查一次只读面来刷新界面、不等通知信号——封印/移动/AP·RAP 读数/状态/库存五类动作零事件外发或零推送,呈现层刷新由此承载(HUD框架 首次定义;组合根订阅纪律的配对形态)
|
||||
程序化占位: 用代码按冻结色板与形状规则直接画出的临时图形——参数取自 art-bible §4.1/§3 参数域、icon 按 §4.6 键位映射表挂槽,终稿美术到位后原位替换、数据层零改动(HUD框架 首次定义;样张未定稿不阻塞呈现层开工的承载形态,占位同样受 §1.4 数字可读性第一验收项约束)
|
||||
叠加层(overlay): 秘宝 自持的板级派生信息集(显影/真视/预读三集)——只改"玩家能看见什么"不改棋盘事实,零回写 排雷玩法/地图战斗资源 状态、随图消亡(秘宝 首次定义)
|
||||
真视窄域护栏: 替代推理的道具效果(雷位真视)目标域 ≤3×3、全图级仅限恢复推理原料类(显影/预读)——信息层级护栏,防"扫雷退化为路径优化"(秘宝 Core Rule 3 首次定义,schema 校验强制)
|
||||
|
||||
@@ -547,7 +547,7 @@ def print_report(label, per_battle, t, exact_mode):
|
||||
print(" 回复总量:%d(战斗内 %d + 恢复节点 %d)" % (
|
||||
t["healed"] + t["rest_heal"], t["healed"], t["rest_heal"]))
|
||||
print(" 充能总量:穿刺 %d 点 / 魔法 %d 点" % (t["pierce"], t["magic"]))
|
||||
print(" 获得奖励件数:%d 件 获得惩罚件数:%d 件 踩雷格数:%d" % (
|
||||
print(" 获得奖励件数:%d 件 获得惩罚件数:%d 件 踩危险格数:%d" % (
|
||||
t["pos_n"], t["neg_n"], t["mines"]))
|
||||
hp_trail = " → ".join("%d" % b["end_hp"] for b in per_battle if b["end_hp"] >= 0)
|
||||
print(" 生命轨迹(各战斗结束 HP):%s" % hp_trail)
|
||||
|
||||
@@ -63,7 +63,7 @@ MAGIC_BOLT = 2 # 魔法矢(同上)
|
||||
PIERCE_SNARE = 8 # 穿刺陷阱(主角直伤,2026-10-01 5→8 / 10-03 转正)
|
||||
MAGIC_RECOIL = 8 # 魔法反噬(主角直伤,2026-10-01 5→8 / 10-03 转正)
|
||||
AP_UP = 1 # 行动点 +1(当量 = flat 表值 1,机会成本口径更高仅登记——假设 A6)
|
||||
GP_COIN = 3 # 金币袋 +3GP(gp 当量 = flat power 代理——假设 A5,口径空白登记)
|
||||
GP_COIN = 3 # GP 袋 +3 GP(gp 当量 = flat power 代理——假设 A5,口径空白登记)
|
||||
GP_LOSE = 2 # 破财 −2GP(同上代理)
|
||||
|
||||
# 甲效矩阵(settlement.tres,加法核点数):基础值 + 点数,damage_floor=1
|
||||
|
||||
@@ -31,7 +31,7 @@ RETIRED_TERMS = [
|
||||
("m_amb|M_AMB", "2026-09-20", "(伏击暴露当量口径作废)", "挖掘风险不等式退役"),
|
||||
("七型|五型×正负|五型 × 正负", "2026-09-20", "八型(十六格)", "格面资源八型批"),
|
||||
("10 类行|行型封闭为 10 类|10 类封闭协议|行型 10 类", "2026-09-20", "9 类", "溢出未生效行下线"),
|
||||
("拔旗|撤旗", "2026-09-19", "(旗无移除手段——插旗不可逆)", "插旗不可逆批"),
|
||||
("拔旗|撤旗", "2026-09-19", "(封印印记无移除手段——封印不可逆)", "封印不可逆批(原「插旗不可逆批」,2026-10-18 术语刷新随批换代措辞)"),
|
||||
("三选一反噬|标错反噬|反噬三选一", "2026-09-15", "极性矩阵负向兑付", "格面资源批"),
|
||||
("defense_up", "2026-09-16", "ac_up(护甲强化)", "护甲等级掷点批换装"),
|
||||
("蓄力行|charge 行", "2026-09-16", "施放行(cast)", "敌人技能池批改型"),
|
||||
@@ -56,6 +56,12 @@ RETIRED_TERMS = [
|
||||
("对拍", "2026-10-15", "与基线数据逐项比对", "用语规范 A 表(doc-conventions 第 4 节)"),
|
||||
("销账|销号", "2026-10-15", "注销", "用语规范 A 表(doc-conventions 第 4 节)"),
|
||||
("落文", "2026-10-15", "写入文档/已写入", "用语规范 A 表(doc-conventions 第 4 节同族)"),
|
||||
# —— 设计文档术语刷新批(2026-10-18 用户裁):权威=design/gdd/术语表.md「退役词对照」——
|
||||
# GP 是唯一正式命名(「金币」系 AI 噪音);「旗」概念不存在(动作=封印、印记=封印印记,
|
||||
# 封印系正式术语非比喻)。注意:「插旗|标旗」与上方「拔旗|撤旗」行同族;「旗」单字不入表
|
||||
# (词面误报率高,靠术语表对照行与人工判读),game/ 扫描域归代码批后另加。
|
||||
("金币", "2026-10-18", "GP(唯一正式命名)", "GP 命名统一批——「金币」全库禁用"),
|
||||
("插旗|标旗", "2026-10-18", "封印(正式动作名,全库统一)", "术语刷新批——「旗」概念退役"),
|
||||
]
|
||||
|
||||
DEFAULT_DIRS = ["design/gdd", "design/registry"]
|
||||
|
||||
@@ -267,7 +267,7 @@ FLAG_AT = (1, 2) # 封印印记——未开格(F2)
|
||||
HOVER_AT = (1, 4) # 悬停金框(预承诺光标态)
|
||||
HERO_AT = (2, 4) # 小人独立占格
|
||||
HERO_DIGIT_AT = (2, 5) # 小人与数字同格(6)——验蓝框不覆盖文本
|
||||
NEST_AT = (5, 4) # 雷格巢穴(已开,程序占位+危险红)
|
||||
NEST_AT = (5, 4) # 危险格巢穴(已开,程序占位+危险红)
|
||||
GLOW_CELLS = [(4, 2, "attack"), (5, 2, "heal"), (8, 3, "blast"),
|
||||
(6, 4, "pierce"), (7, 6, "magic")] # 五组;attack+heal 相邻并列
|
||||
INLAY_RESULT = {(4, 6): "attack", (5, 6): "gp", (6, 6): "heal", (3, 7): "defense"} # 已开结果格物件纹样(v2 增至四类型)
|
||||
@@ -545,7 +545,7 @@ def render_main_board():
|
||||
d.polygon([(px, py), (px + 18, py + 6), (px, py + 12)], fill=SEAL_BLACK) # 旗面恒画右
|
||||
d.ellipse([px - 3, fy0 + cell - 12, px + 3, fy0 + cell - 6], fill=INK)
|
||||
|
||||
# 雷格巢穴(已开,程序占位——素材缺口,画面内标注)
|
||||
# 危险格巢穴(已开,程序占位——素材缺口,画面内标注)
|
||||
nx0, ny0 = NEST_AT[0] * cell, NEST_AT[1] * cell
|
||||
nest_glow = Image.new("RGBA", board.size, (0, 0, 0, 0))
|
||||
dg2 = ImageDraw.Draw(nest_glow)
|
||||
@@ -944,7 +944,7 @@ def main():
|
||||
canvas.paste(scr, (20, 52))
|
||||
d.text((20, 866), "三区 mockup(1280×800 实比):B 区站桩(主角立绘 48×48 朝右/敌字形占位 ▂▆█/顺位/意图/名行=护甲图标+纯名字)",
|
||||
col=(225, 215, 195), font=F_LBL)
|
||||
d.text((20, 886), "C 区攻击数据框+预留槽 · D 区主样张板(方案甲拼装/接触带微光=蓝缘带/悬停金框/旗=封印印记/雷格巢穴占位)",
|
||||
d.text((20, 886), "C 区攻击数据框+预留槽 · D 区主样张板(方案甲拼装/接触带微光=蓝缘带/悬停金框/封印印记/危险格巢穴占位)",
|
||||
col=(225, 215, 195), font=F_LBL)
|
||||
|
||||
# S2 数字全档
|
||||
|
||||
@@ -310,7 +310,7 @@ FLAG_AT = (1, 2) # 封印印记——未开格(F2)
|
||||
HOVER_AT = (1, 4) # 悬停金框(预承诺光标态)
|
||||
HERO_AT = (2, 4) # 小人独立占格
|
||||
HERO_DIGIT_AT = (2, 5) # 小人与数字同格(6)——验蓝框不覆盖文本
|
||||
NEST_AT = (5, 4) # 雷格巢穴(已开,程序占位+危险红)
|
||||
NEST_AT = (5, 4) # 危险格巢穴(已开,程序占位+危险红)
|
||||
GLOW_CELLS = [(4, 2, "attack"), (5, 2, "heal"), (8, 3, "blast"),
|
||||
(6, 4, "pierce"), (7, 6, "magic")] # 五组;attack+heal 相邻并列
|
||||
INLAY_RESULT = {(4, 6): "attack", (5, 6): "gp", (6, 6): "heal", (3, 7): "defense"} # 已开结果格物件纹样(v2 增至四类型)
|
||||
@@ -674,7 +674,7 @@ def render_main_board():
|
||||
d.polygon([(px, py), (px + 18, py + 6), (px, py + 12)], fill=SEAL_BLACK) # 旗面恒画右
|
||||
d.ellipse([px - 3, fy0 + cell - 12, px + 3, fy0 + cell - 6], fill=INK)
|
||||
|
||||
# 雷格巢穴(已开,程序占位——素材缺口,画面内标注)
|
||||
# 危险格巢穴(已开,程序占位——素材缺口,画面内标注)
|
||||
nx0, ny0 = NEST_AT[0] * cell, NEST_AT[1] * cell
|
||||
nest_glow = Image.new("RGBA", board.size, (0, 0, 0, 0))
|
||||
dg2 = ImageDraw.Draw(nest_glow)
|
||||
@@ -1109,7 +1109,7 @@ def main():
|
||||
canvas.paste(scr, (20, 52))
|
||||
d.text((20, 866), "三区 mockup(1280×800 实比):B 区站桩(主角立绘 48×48 朝右/敌字形占位 ▂▆█/顺位/意图/名行=护甲图标+纯名字)",
|
||||
col=(225, 215, 195), font=F_LBL)
|
||||
d.text((20, 886), "C 区攻击数据框+预留槽 · D 区主样张板(方案甲拼装/接触带微光=蓝缘带/悬停金框/旗=封印印记/雷格巢穴占位)",
|
||||
d.text((20, 886), "C 区攻击数据框+预留槽 · D 区主样张板(方案甲拼装/接触带微光=蓝缘带/悬停金框/封印印记/危险格巢穴占位)",
|
||||
col=(225, 215, 195), font=F_LBL)
|
||||
|
||||
# S2 数字全档
|
||||
|
||||
Reference in new issue
Block a user