From daa8860b6e4bc3510bf42c33746b858252a117e7 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Mon, 26 Oct 2026 07:40:04 +0800 Subject: [PATCH 1/2] =?UTF-8?q?docs(=E6=96=87=E6=A1=A3=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=C2=B7AdventureRunner=E7=9C=9F=E6=8B=86=E5=88=86):=20=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E9=97=AD=E5=90=88=E2=80=94=E2=80=94architecture=20v1.?= =?UTF-8?q?16=20=E6=A0=B8=E5=BF=83=E5=B1=82=E4=B8=89=E6=96=B0=E4=BB=B6?= =?UTF-8?q?=E8=A1=8C(HeroLedger/AttuneLoadout/CurioStop)=EF=BC=8B=E3=80=8C?= =?UTF-8?q?=E5=86=92=E9=99=A9=E5=9F=9F=E6=8B=86=E5=88=86=E5=AE=9A=E7=A8=BF?= =?UTF-8?q?=E3=80=8D=E8=8A=82(=E5=BA=94=E7=94=A8=E5=B1=82=E8=96=84?= =?UTF-8?q?=E7=BC=96=E6=8E=92/CurioDeck=E7=BA=AF=E6=B1=A0=E5=8C=96/RunLedg?= =?UTF-8?q?er=E9=80=80=E5=BD=B9/=E6=96=AD=E7=82=B9=E7=89=87=E6=AE=B5?= =?UTF-8?q?=E5=8C=96=EF=BC=8B=E8=8E=B7=E5=BE=97=E6=97=A5=E8=AE=B0=E9=94=AE?= =?UTF-8?q?=E6=89=A9=E5=88=97/=E4=BF=A1=E5=8F=B7=E7=9B=B4=E8=BF=9E?= =?UTF-8?q?=E5=88=A0=E5=85=AD=E8=BD=AC=E5=8F=91=E6=97=8F/=E6=9E=84?= =?UTF-8?q?=E9=80=A0=E6=B3=A8=E5=85=A5/=E8=B0=83=E7=94=A8=E7=9B=B4?= =?UTF-8?q?=E8=BF=9E=E4=B8=8D=E7=95=99=E5=A3=B3=EF=BC=9B=E7=BB=8Fgodot-mas?= =?UTF-8?q?ter=E6=8A=80=E8=83=BD=E5=BA=93=E7=8B=AC=E7=AB=8B=E5=AD=90?= =?UTF-8?q?=E4=BB=A3=E7=90=86=E5=AE=A1=E6=9F=A5=EF=BC=8C=E4=B8=89=E9=AB=98?= =?UTF-8?q?=E5=8D=B1=E4=BF=AE=E6=AD=A3=E5=B9=B6=E5=85=A5=EF=BC=9A=E5=85=85?= =?UTF-8?q?=E8=83=BD=E5=8D=95=E6=BA=90=E5=8C=96/=E6=97=A5=E8=AE=B0?= =?UTF-8?q?=E6=AF=94=E5=AF=B9=E6=97=A7=E6=A1=A3=E8=B1=81=E5=85=8D/ShopSess?= =?UTF-8?q?ion=E8=A1=A5=E5=85=A5=E6=94=B9=E9=80=A0=E9=9D=A2)=EF=BC=9B?= =?UTF-8?q?=E5=BE=85=E5=8A=9E=E6=B8=85=E5=8D=95=E7=8A=B6=E6=80=81=E6=8E=A8?= =?UTF-8?q?=E8=BF=9B=E3=80=8C=E6=96=87=E6=A1=A3=E8=AE=BE=E8=AE=A1=E5=B7=B2?= =?UTF-8?q?=E9=97=AD=E5=90=88=EF=BC=8B=E5=BE=85=E5=86=99=E5=8D=A1=E3=80=8D?= =?UTF-8?q?=EF=BC=8B=E5=88=A0=E7=BC=BA=E5=8F=A3=EF=BC=8B=E5=95=86=E5=BA=97?= =?UTF-8?q?=E5=A7=94=E6=89=98=E5=B1=82=E6=8B=86=E9=99=A4=E6=96=B0=E6=9D=A1?= =?UTF-8?q?=E7=9B=AE=E7=99=BB=E8=AE=B0=EF=BC=9B=E6=B5=81=E6=B0=B4=E7=BA=BF?= =?UTF-8?q?=E9=97=B858=E6=9D=A1=E7=9B=AE=E7=BB=BF=EF=BC=8B--docs=E5=9F=9F?= =?UTF-8?q?=E9=97=B8=E7=BB=BF(=E6=AD=BB=E9=93=BE=E5=9F=BA=E7=BA=BF?= =?UTF-8?q?=E7=BA=A2=E8=BD=AC=E7=BB=BF)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engineering/architecture/architecture.md | 18 ++++++++++++++++-- 待办清单.md | 13 ++++++++++--- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/design/engineering/architecture/architecture.md b/design/engineering/architecture/architecture.md index 7b71b09c..005cdb3c 100644 --- a/design/engineering/architecture/architecture.md +++ b/design/engineering/architecture/architecture.md @@ -2,8 +2,8 @@ ## 文档状态 -- 版本:1.15 -- 最近更新:2026-10-26(通信形态选型理由、效果引擎定位、架构原则 9 停点机制补文+已落定未决项、过时陈述与冻结计数清扫) +- 版本:1.16 +- 最近更新:2026-10-26(AdventureRunner 真拆分设计定稿——核心层三新件行(HeroLedger/AttuneLoadout/CurioStop)+「冒险域拆分定稿」节) - 引擎:Godot 4.7.2-stable(GDScript 单语言;2026-09-07 锁定) - 评审模式:solo(`review-mode.txt`,2026-09-12 用户拍板——TD/LP 门禁按 solo 跳过,用户授权架构产出自主推进、迭代期回调) - 覆盖 GDD:现行全集(根索引=`design/gdd/02-系统清单.md`,文档树构成以根索引为准) @@ -105,6 +105,9 @@ | **helper_items**(A5,切片已实装秘宝域) | HelperItemTable、探测显影语义 | (契约规范源:`../../gdd/systems/跨局循环/秘宝.md`——桥接位:A2 查询接口 + A4 counter_item_ids) | A2 / A4 / B4 | 无 | | **CurioDeck**(`core/curio_deck.gd`,A5 秘宝域令牌池件,迭代 37 自 AdventureRunner 拆出) | 三选一/商店共享池的持久多重集、抽签(候选抽取)、cap 库存与专长凭证三计数与判定唯一所有者——件只管池与判定,停点编排与兑付推进留冒险编排器 | `draw_candidates(channel)` 抽签;`consume_deck_token` / `consume_pool_purchase` 池消耗;`cap_ok` 上限判定;`feat_ticket_consider` 凭证判定;`stock_snapshot` / `pool_stock` 只读投影;宿主兑付单点经 `bind_handlers` 注入方法 Callable(选中摘牌后的加算区/账本落点仍在宿主) | ConfigDB(秘宝令牌行集);注入 RngServiceCore(reward_pick 封闭流,禁自建随机) | 无(RefCounted 纯逻辑) | | **ShopSession**(`core/shop_session.gd`,商店会话件,迭代 37 自 LevelRunner 拆出) | 关卡商店双模式(legacy 固定三件加定价/pool 共享令牌池)的货架、定价、购买与刷新唯一宿主——账本/钱包/装配集归宿主 LevelRunner(共享引用经 `bind` 注入,出账直接落同一引用改写宿主账本);legacy 模式零 RNG 零池消费(off 对照承载) | 货架与定价只读面(`shop_products` / `shop_shelf` / `current_price` / `shop_refresh_cost`)+写入口(`buy_product` / `buy_pool_item` / `shop_refresh` / `player_request_refresh` / `open_pool`);外部调用面由 LevelRunner 同签名委托承载(外部零变化) | ConfigDB(商店行集);注入 RngServiceCore;宿主钱包/账本引用;pool 模式令牌消耗与判定经注入 Callable 转 CurioDeck | 无 | +| **HeroLedger**(`core/hero_ledger.gd`,冒险域主角实体账,2026-10-26 真拆分批设计定稿——实现批建件) | 冒险生命周期主角数值与获得记录唯一所有者:生命与 GP 钱包(gain/spend/clear 单写原语,钱包事件发射点归件)、锻造强化快照、调试百分比、攻击/甲类型轴快照、特性持有集(活引用注入——关内兑付当关生效)、本局钥石增量与逐杀明细、真视使用记录;获得记录三层结构=获得记录列表(三选一件/商店购买/战末奖励各一条)→属性增益明细(带来源指回)→四轴汇总(由明细推导);生效上限与回血封顶公式单点归件 | 构造注入;单写原语族+只读投影;断点自交片段(账本键+获得日记键) | ConfigDB(表值读取);由 AdventureRunner 冒险开始创建、注入 CurioStop/level_runner/ShopSession/战斗 encounter | 无(RefCounted 纯逻辑) | +| **AttuneLoadout**(`core/attune_loadout.gd`,同调配装件,2026-10-26 真拆分批设计定稿——实现批建件) | 装备中的秘宝件对象集唯一所有者(每件内含充能单位与重置周期);同调充能的物化行为唯一事实源——种行/补行改写时同步(RunLedger 充能字典轨与差额对账函数退役);旧档 aux_items 同调行迁移归件 | 构造注入;充能查询/消耗/按周期重置原语;断点自交片段(attunement_charges 键,键名与策略不变) | ConfigDB(秘宝行集);TreasureItems(同调行投放面);注入战斗使用路径 | 无 | +| **CurioStop**(`core/curio_stop.gd`,三选一停点件,2026-10-26 真拆分批设计定稿——实现批建件) | 三选一停点编排唯一所有者(架构原则 9 本域承载):停点三态(关卡完成三选一在途/已兑付待推进/奖励节点三选一在途)、刷新三源账(刷新件 X/营地池 Y/刷新券存量/付费刷新计数)、兑付方法族(pick/refresh/redeem/skip)、凭证出箱(RAP/时沙待注入);三选一信号面自带;零自动推进停点语义承载 | 对外=开停点/刷新/兑付/放行谓词/交断点片段五组入口+信号面(curio_choice_presented/curio_resolved);由 AdventureRunner 关卡完成受理时调用 | ConfigDB;注入 CurioDeck(抽签/摘牌)与 HeroLedger(落账);随机只经 CurioDeck 的 reward_pick 封闭流 | 无 | ### 功能层 @@ -123,6 +126,17 @@ - **结算五段**:B1 编排器的每轮结算序列拆为 `game/core/settlement/` 五个段类——GrantSegment(①授予段,含封印判定与 counter/grant 助手单点)→ AuraSegment(②增益/减益段)→ CombatSegment(③战斗段)→ DecaySegment(④衰减段)→ VerdictSegment(⑤判定段,返回裁定,终局早退语义留 B1)。段序骨架冻结于 `SettlementTable.segment_order` 语义,B1 退为段序编排+接线;段类可直接 `new()` 单测(`settle_segments_test` 在役)。 - **RunLedger 四账**:`game/core/run_ledger.gd` 单类持四本共享账——同调充能账/真视使用计数/冒险域计数器/统一冒险加算区。所有权:AdventureRunner 开局构造、全程唯一宿主;LevelRunner 经 `set_run_ledger` 下传装配 encounter;战斗侧(B1)经 `encounter["ledger"]` 拿引用、只走 read/append 原语族。审计 P1-4「共享可变字典跨三层三处可写」由「函数签名上不可见的共享引用」换成签名可见的显式类。冒险桶计数器无导出/灌入时点:EffectContext 持 `run_ledger.adventure_counters` 的同一字典引用,引擎静态计数口就地直写,跨战持久随 RunLedger 生灭(2026-10-21 迭代 32 卡②无状态化写入)。 +### 冒险域拆分定稿(2026-10-26 用户裁写入——AdventureRunner 真拆分设计闭合;实现批完成后本节改写为现状登记) + +- **应用层形态**:adventure_runner 退出上帝对象、转薄应用层(DDD 应用层形态)——只留冒险状态机、关序推进、结算受理、建件接线、效果引擎冒险桶字典持有(桶=效果引擎域数据,应用层只锚定生命周期);零领域决策。核心层表三新件行(HeroLedger/AttuneLoadout/CurioStop)即本拆分目标。 +- **CurioDeck 转纯池**:bind_handlers 反向回调退役;商店购买消费经注入 Callable 链至 CurioStop 兑付单点——牌库只管抽签/消耗/cap 判定/凭证计数。 +- **RunLedger 退役**:四账各归其主——加算区/购买记录/钥石增量/特性集/真视记录归 HeroLedger,充能归 AttuneLoadout,冒险桶字典归应用层持有;战斗侧 encounter 注入面由单一账类引用改为多路(桶字典+实体账+配装件);ShopSession 账本引用面同步换代,商店属性商品加算改经 HeroLedger 单写原语。 +- **level_runner**:依赖改构造注入一次给齐(后置 setter 群与商店重绑机制退役;注入活引用禁快照——特性集共享引用语义保留);商店白盒转发属性撤除;战斗→关卡信号转发族保留(战斗实例每节点新建,关卡层做战斗域稳定面)。 +- **断点片段化**:各件自写自读自己的键(关卡层交关卡域五键片段:node_id/visited_ids/aux_items/shop_shelf/shop_visit_buys),缺键回退策略随领域知识归各件;应用层唯一落盘口(收齐各件片段拼成顶层快照后写盘),写触发点不变(五处);既有 27 键逐键冻结;新增获得日记键沿扩列不升版先例——旧档缺日记回退汇总键直载并跳过比对,日记在档时由日记推导汇总、与留存值不符即报错中止(迁移正确性自检)。 +- **信号直连**:adventure_runner 六转发信号族(node_entered/choices_presented/step_row/round_started/board_changed/wallet_changed)退役;呈现层在 level_started 重取点重订阅关卡对象信号(旧实例连接随引用释放消亡);「关卡开始信号前零发射」契约写进关卡件头注;「恰好连接一次」断言用 is_connected 守卫(release 模板剥 assert);三选一信号面归 CurioStop。 +- **调用直连**:不留中间人委托壳(纯转传=Middle Man 反模式,2026-10-26 用户裁定);呈现控制器经取值回调持件——回调只许捕获长活根对象,禁件方法 Callable(防悬挂);约 30 个调用文件改址;测试/探针直连件读写。 +- **验收红线**:游戏行为零变化(RNG 流名 reward_pick 与消费序零漂移、信号顺序契约冻结、同种子逐位一致);gdstyle 基线禁改(类变量计数下降属改善);怪物寻址 resolve_enemy_rowset 调用面与关卡参数档装配零变化(未来关卡主题的数据缝不堵)。 + ### 呈现层 | 模块 | 独占职责 | 对外暴露 | 消费依赖 | 引擎 API | diff --git a/待办清单.md b/待办清单.md index e094f6bc..f809b1d2 100644 --- a/待办清单.md +++ b/待办清单.md @@ -25,12 +25,19 @@ - 验收面预案要点(迭代 37 批内成文,写卡输入):每新件至少一条真实入口断言(RewardStop 走 start_adventure→关卡完成三选一→选件→断言加算区/池余量/停点态清零;HeroLedger 的 rest 与 heal 封顶走真链;BreakpointSchema 承〔wr2〕三条+ui_click_probe wc2 续玩真链);撤销证明逐单元「回退本批 hunk→断言红→还原复绿」、禁注入式变异;断点 27 键键名/缺省/回退策略逐键冻结;RNG 流名(reward_pick)与消费序零漂移;`tools/gdstyle_baseline.txt` 禁改、计数下降属改善不判红;MC 与基线数据逐项比对是否发起由用户裁(触及存档/RNG/结算面)。 - 目标切法(待裁,非结论;各件收编范围=迭代 37 批内按变化原因划界的成文要点):AdventureFlow(留名 adventure_runner;收 state/level_index/levels_total/_runner/_pending_next_level/_last_level_payload 与 start/resume/关序推进/结算受理方法族=状态机+关序推进+结算受理一次)/RewardStop(收停点三态 _curio_pending/_curio_result/_node_curio_pending、刷新双源 _attune_refresh_x/_refresh_stock 与 pick_curio/refresh 族/兑付推进方法族)/CurioDeck(已在册:池与凭证计数已入件)/HeroLedger(收 ledger/run_ledger/_base_override/_override/purchased/keystone/_feats 与 effective_max_hp/apply_rest 等=数值叠加与生命口径)/BreakpointSchema(收 BREAKPOINT_FIELDS 27 键登记的派生段与 _snapshot_breakpoint/_bp_read/`_resume_*` 六小函数=存档格式);呈现转名(`_forward_*` 六件+信号面)下沉装配层。判据=件拥有状态与决策、宿主不留同名数据槽、件→宿主只传值不回调宿主私有族。 - 相关文档:design/engineering/architecture/architecture.md(模块归属表须随拆分登记新件)· design/gdd/systems/表现与支撑/存档序列化.md(断点域契约,27 键冻结面)· 迭代 37 卡④ 契约 1 冻结公开面(commit e5ee4d04),正是本条无法在批内完成的原因(需求卡片已退役,口径见 git 历史) - -**缺口**:拆分边界未裁四件——①RewardStop 与 CurioDeck 的分界(停点态 `_curio_pending`/`_curio_result`/`_node_curio_pending` 归谁、凭证兑付 `_redeem_feat_ticket` 在哪侧);②HeroLedger 与既有 RunLedger 的关系(合并还是分层,RunLedger 已被 LevelRunner 共享引用);③断点 schema 是否独立成件(卡④ §11 以「27 键多数取宿主态、开洞面>收益」淘汰过独立件,真拆分后该论据失效,需重裁);④公开面收缩后 main.gd/camp_shop_presenter/curio_interact_controller 与三处测试直引点的改法与验收面;⑤board_view 13 条同类装置撤除时探针面与组合根直读面的改法(terrain_tile_sets_test/ui_contrast_probe/ui_input_probe 直引在案)。裁完才进写卡段。 +- **2026-10-26 文档设计已闭合**:设计讨论全套裁定(应用层薄编排/停点件 CurioStop/角色实体账 HeroLedger 三层获得结构/同调配装件 AttuneLoadout 充能单源化/断点片段化+获得日记键扩列/信号直连/构造注入/调用方直连不留壳)经 godot-master 技能库独立子代理审查修正后定稿——三高危修正(充能改单源化:物化行为唯一事实源;日记比对旧档豁免:缺日记回退汇总键直载;ShopSession 补入改造面:商店加算写通道经实体账单写原语)均已并入。定稿登记=design/engineering/architecture/architecture.md v1.16(核心层三新件行+「冒险域拆分定稿」节);钥石入账维持收束入账(获取即入账曾议、用户裁维持现状——中途入账有断点写盘非原子致账目撕裂的风险);获得明细随档保存(日记为正主、汇总键留作旧档兼容载入与一致性校验) **改动面**:游戏代码 -**状态**:待文档设计 +**状态**:文档设计已闭合+待写卡 + +#### level_runner 商店委托层拆除——迭代 37 冻结契约期过渡件(2026-10-26 登记,来源=批次移交) + +**实况**:证据=迭代 37 卡④ ShopSession 拆分时立「冻结公开面」契约,level_runner 保留 buy_product/shop_refresh 等同签名委托方法(架构模块表登记为「外部调用面由宿主同签名委托承载」)。2026-10-26 AdventureRunner 真拆分设计会话裁定新原则:纯转传委托=Middle Man 反模式,新件一律调用方直连不留壳(godot-master 技能库审查同判);本批不动该委托层(真拆分条目范围仅撤 8 条白盒转发属性),其拆除与调用文件改址由本条承接。 + +**改动面**:游戏代码 + +**状态**:待写卡 #### 超预算图策略升级路径——等比缩放与滚动视口两案待裁(2026-10-24 登记,来源=批次移交) From 90291be9b7007d574422a810a39e428b16f21180 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Mon, 26 Oct 2026 08:06:55 +0800 Subject: [PATCH 2/2] =?UTF-8?q?docs(=E6=A0=BC=E8=BE=B9=E9=95=BF=E5=8F=A3?= =?UTF-8?q?=E5=BE=84=E5=8D=95=E4=B8=80=E5=87=BA=E5=A4=84):=20=E6=A0=BC?= =?UTF-8?q?=E8=BE=B9=E9=95=BF=E6=94=B6=E5=BD=92=20battle.md=20=E4=B8=80?= =?UTF-8?q?=E5=A4=84=E5=8F=A3=E5=BE=84=EF=BC=8B=E5=BE=85=E5=8A=9E=E6=9D=A1?= =?UTF-8?q?=E7=9B=AE=E8=BD=AC=E4=BB=A3=E7=A0=81=E9=9D=A2=E6=AC=A0=E8=B4=A6?= =?UTF-8?q?=EF=BC=9B=E5=8F=8C=E5=B1=82BD=20=E7=B4=A0=E6=9D=90=E5=BD=92?= =?UTF-8?q?=E6=A1=A3=E5=85=A5=20content-archive?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - battle.md「棋盘格尺寸公式」升级为唯一出处:算式补全格间距与垂直预留项(与 board_view.gd 一致)、 可读下限 30px 与结构钳制 [26,46] 分开、1280 档算例 43/36/33/30 标注为随布局变化的非契约值; 区表「格 36–45px 见方」改指路 - HUD框架删 36/45 定值档与旧实算,只留装板不等式 N×格边长+(N−1)×2px ≤ 棋盘区可用高; 职责表、变量表、验收判据同步;顺带修三区表方案二之前的旧数(B 252→270、C/D 548→530) - art-bible §8.1 改为指路 battle.md、只锁资产侧两条比例(瓦片整格铺满、小人占位 ≤0.75×格边长); §8.2 甲类整数倍纪律剔除砖面 tile;棋盘小人条款删「36px 板×32px 源」字面值 - art-assets-checklist 旧「格边长两档定值条款待改写」改为现行口径指路 - 待办清单:棋盘格边长条目转需求性工程条目——文档面已闭合,只留探针 MIN_CELL 36→30、 13×13/14×14 格边长无覆盖、验证集清单需重生成;改动面=游戏代码,状态=待写卡 - 双层BD(2026-10-03 登记)内容迁 design/content-archive/双层BD备选素材库.md(活文档,只作脑暴素材), 待办清单条目整条删除,奇物.md 三处指路改写 闸:run_all_gates.sh --docs 绿(闸况与基线一致,无新增红) --- design/art/art-assets-checklist.md | 2 +- design/art/art-bible.md | 6 +-- design/content-archive/双层BD备选素材库.md | 56 ++++++++++++++++++++++ design/gdd/systems/冒险循环/奇物.md | 6 +-- design/gdd/systems/表现与支撑/HUD框架.md | 27 +++++------ design/gdd/ux/battle.md | 19 +++++++- 待办清单.md | 37 ++------------ 7 files changed, 95 insertions(+), 58 deletions(-) create mode 100644 design/content-archive/双层BD备选素材库.md diff --git a/design/art/art-assets-checklist.md b/design/art/art-assets-checklist.md index 788da70d..26069bbc 100644 --- a/design/art/art-assets-checklist.md +++ b/design/art/art-assets-checklist.md @@ -53,7 +53,7 @@ - **要什么**:按双舞台布局(战斗画面与扫雷图同屏常驻)出的整屏试验图。要锁的四件事:**角色剪影方向 / 动画方案 / 战斗空间 / 敌人层绘制优先级插入位置**;~~顺带裁决**敌人卡形态:卡片式 vs 站桩式(无框立绘+底座)**——两版候选各出一版~~——**已提前裁决(2026-09-20 用户看对照样张拍板):全站桩式(主角同站桩、状态小图标挂血条下),卡片式退役,正式样张按站桩形态单版出样**(对照样张存档 `production/mockups/`)。 - **风格/规格**:敌人剪影按 art-bible §5.1 四类原型出(见 2.2);战斗舞台背景=明亮地窟,紫赤仅 Boss;像素尺寸按已定案两档换算(见 §0 通用规格纪律)。 - **验收**:战斗表现「一屏样张的验收标准」(已成文)。 -- **联动**:样张未过,**不启动任何终稿资产与动画设计**(文档明文的排期硬前置);HUD框架「格边长两档定值」条款将由表现层升级批按分辨率档位计算口径改写(2026-09-18 用户拍板:固定两档分辨率、窗口不可调、格子量增加则格边长相应变小;**档位值已定案 1280×800 + 1920×1080**)。 +- **联动**:样张未过,**不启动任何终稿资产与动画设计**(文档明文的排期硬前置);格边长的计算口径不在本清单——现行唯一出处是 [battle.md](../gdd/ux/battle.md)「棋盘格尺寸公式」,HUD框架只判装板可行性(2026-09-18 用户拍板:固定两档分辨率、窗口不可调、格子量增加则格边长相应变小;**档位值已定案 1280×800 + 1920×1080**)。 --- diff --git a/design/art/art-bible.md b/design/art/art-bible.md index bd1ad45f..9e819ac8 100644 --- a/design/art/art-bible.md +++ b/design/art/art-bible.md @@ -482,12 +482,12 @@ ### 8.1 分辨率档位与格边长口径 - **两档定案**:1280×800(基座)+ 1920×1080,窗口不可调;后续调整走修订。 -- **格边长口径**:按档位与板形计算——固定档位下格子量增加则格边长相应变小;现行 1280×800 基座锚点值 = 45px(10×10 板)/36px(12×12 板),扩板(13×13/14×14)换算值未定稿(1920 档已裁决全局等比缩放——迭代 9 卡⑮落码;原待办清单分辨率债务条目已完成移除);装板可行性校验规则见《HUD框架》。 +- **格边长口径**:按档位与板形计算——固定档位下格子量增加则格边长相应变小;公式、单位与现行算例的唯一出处 = [battle.md](../gdd/ux/battle.md)「棋盘格尺寸公式」,本节不复述数值。资产侧锁两条比例:**瓦片整格铺满**(32×32 源随格边长缩放,允许非整数倍——瓦片不适用 §8.2 甲类整数倍纪律)、**棋盘小人显示占位 ≤ 0.75× 格边长**。(1920 档已裁决全局等比缩放——迭代 9 卡⑮落码) ### 8.2 像素基准与画布 - **缩放纪律(硬规则,2026-09-30 v3.1 起按资产两类分级——2026-09-26 用户裁「更改规则,不做个案豁免」)**: - - **甲类·文本与语义件**(数字、图标、旗、砖面 tile、格面纹样):维持严格整数倍缩放硬规则——可读性与语义精确性优先,**禁非整数缩放不变**。 + - **甲类·文本与语义件**(数字、图标、旗、格面纹样):维持严格整数倍缩放硬规则——可读性与语义精确性优先,**禁非整数缩放不变**。砖面 tile 不属本类,随格边长整格铺满(见 §8.1)。 - **全局纹理过滤与平滑渐变件例外(2026-10-14 迭代 26 反哺②写入文档)**:`project.godot` `default_texture_filter=0`(Nearest)全局——像素风 UI 皮(九宫格/主题石纹样式盒/滑轨抓子/勾选/箭头图标)翻 Nearest=意图面;**显式 LINEAR 豁免清单(有意例外,与状态图标抗锯齿例外同族先例)= vignette / gradient_base / beams 三件程序化平滑渐变件**——保平滑连续 alpha 的程序化氛围件,Q5 已裁(§7.6 三);新增平滑件须同批入册本清单,禁静默挂 LINEAR。翻转面枚举与冒烟断言(6 条)在闸。 - **显示档登记例外(2026-10-06 UI 设计对齐批 P6 甲——64 源 0.5×,待素材批消除)**:柜台四枚 `icon_forge/workshop/atlas/keystone`(64×64 源)显示档统一 **32px = 0.5×**;状态九枚(32×32 源)mini(站桩)档 **16px = 0.5×**。两处均系「显示尺寸侧唯一可调、素材一字节禁改」红线下的人工检整数半倍档,登记为**待消除例外**——素材批出 32px 源后回归 1×。常规档显示一律 1×(状态九枚 32px、手绘十枚 20px/40px 双档、BCard 图标槽 40px=2×)。 - **乙类·角色与单位精灵**(有机形体、非文字):允许运行时非整数倍缩放(NEAREST 过滤不变),容忍轻度像素宽窄不均;判据 = 实机目检,可感不适即回整数档。乙类今后免逐案豁免(豁免蔓延断根)。 @@ -496,7 +496,7 @@ - **画布基准(2026-09-23 用户暂定值)**: - **主角人设原图 = 48×72**(1× 基准,暂定;与站姿降采样可读性验证一致); - **主角战斗状态图(含 B 区站桩侧向)= 48×72**(同上暂定;v1.9 待决注记「主角立绘档空缺」由此完成); - - **棋盘小人 = 32×32 二头身派生版(暂定,允许更小)**——独立资产,自人设定稿压缩派生(人物设计档 §5.4),不吞数字位、占位 ≤ 0.75× 格边长;36px 板 × 32px 源的占比摩擦(v1.9 待决注记①)沿「独立小源档」路线随格边长终值在样张批定终值; + - **棋盘小人 = 32×32 二头身派生版(暂定,允许更小)**——独立资产,自人设定稿压缩派生(人物设计档 §5.4),不吞数字位、占位 ≤ 0.75× 格边长;板越小占比摩擦越大(13×13 / 14×14 更小,算例见 [battle.md](../gdd/ux/battle.md)「棋盘格尺寸公式」),32px 源档的去留(v1.9 待决注记①)沿「独立小源档」路线在样张批定终值; - **站桩立绘源档 = 八敌逐键定档(2026-10-06 定档批,用户确认定档总图;原三档 48/64/96 候选与 v3.0 档位上调方向候选一并完成)**:主角 48 不变;八敌源档高 = goblin 36 / giant_spider 38 / duergar 46 / hook_horror 58 / bugbear 62 / ogre_chief 74 / drider 90 / duergar_king 94,显示一律 **×2 整数档(NEAREST)** = 72–188。定档依据 = 生物体型三约束(用户拍板:钩爪恐魔>灰矮人、灰矮人<熊地精、食人魔>熊地精——体量=物种体型,非强度线性映射,人物设计档 §5.2 顺带修订);可读性实测门槛 = 源高 ≥32(24 糊/32 可读/48 清楚/64 细节完整),全阶梯 36–94 达标;派生管线 = pixel-1.png 紧裁 → 等比缩至档高 → dom_block_resize 块内众数降采样(tools/pixelize_candidates.py `STANDEE_TIER_H`,`SIZES` 降格为管线上游中间分辨率表);存在感问题(v3.0 病根 6)经方案二整屏对比(B 区 270/立绘显示上限 188)解决。 - **站桩立绘排版 = 方案二(2026-10-06 用户拍板)**:① 区高 B 区 270(≈1/3)/C 区 530(≈2/3),**扫雷盘 438×438 原尺寸不缩、格子不变**(区高事实源 battle.md 区表;压缩由 C 区面板空档吸收);② 站桩内部重排——立绘双脚落石台上缘(弃盒内居中)、**血条+状态/名字行落底排**(立绘→血条→状态 顺序,全场血条对齐一线;血条嵌石板位、台缘线留作地面线、落影保留接地感),状态空时该行退化为名字行;③ 大体档(显示 >150px 级:drider/duergar_king)**允许向上溢出盒顶 N px**(2026-10-07 用户裁甲案;N 由实装批 C0 按实测尺寸算定,**与背景/光柱无关**——现行溢出区恰为临时光柱氛围层〔§6.1 方向稿四柱,x 基准 110/900/1055/1210@1280,`battle_stage_view.gd:55-63`〕,正式舞台背景插画 `stage/stage_bg.png` 到位后该层退役/吸收进背景绘制,**溢出判定不随之变更**;横向不得压到顶部中央轮次·阶段指示,溢出上限由 C0 用真图复算 x 区间定),血条仍落底(落底排的第二个收益=头部探顶不带出血条);意图徽标悬浮头顶上方(探顶档压胸);④ 原「血条悬浮头顶+立绘盒内居中」排式退役——盒顶固定 y 与盒内居中在高盒下拉开血条-立绘空洞(2026-10-06 用户点名否决)。 diff --git a/design/content-archive/双层BD备选素材库.md b/design/content-archive/双层BD备选素材库.md new file mode 100644 index 00000000..48ad5f43 --- /dev/null +++ b/design/content-archive/双层BD备选素材库.md @@ -0,0 +1,56 @@ +# 双层 BD 备选素材库 + +> 所属线=双层 BD 体系(已退役)。来源=原待办清单「双层 BD 延期与备选内容总登记」(2026-10-03 登记);2026-10-26 用户裁:相关系统(天赋树、锻造工坊等)已落地,该条目已过期并从待办清单删除,其中仍有脑暴价值的未落地想法迁入本文件留底。 +> +> 用途:备选件与备选机制的设计素材。**本文件不是待办**——不排期、不占迭代;任何一件重启须用户发令立项,按现行「专长」触发器句式框架重过准入校验/分界尺/定义卡三关,不默认继承原流派标签、效果形态或数值。 +> +> 数值说明:下列 N/X/倍率均为原案示意,从未标定;现行数值事实源只认 `game/data/tables/*.tres`。 + +## 一、二期件组(6 件+三期 1 件) + +> 原触发条件=迭代 12 出口读数+用户点名立项,从未触发。原按七流派分组,流派机制已于迭代 20「专长实装批」整体退役——下表分组只作历史线索,承载形态一律待按现行专长框架重判。 + +| 原称 | 原案机制 | 重启时要注意 | +|---|---|---| +| 战斗→扫雷跨阶段回流 | 击杀轻甲敌人返还 1 AP——战斗收益反哺开格动机,AP 经济新管道 | 威胁红线③边缘,立项须专项论证 | +| 穿甲锥 | 对被控制危险格的敌人穿刺伤害再提升——穿刺×封印协同桥 | 按专长「当 X 时 Y」重写,需确认控制态事实可取 | +| 孤注一掷 | 每轮攻击次数减至 1、该次伤害大幅倍增——攻击频率规则改写 | 改的是攻击频率规则不是数值,需效果引擎扩签 | +| 悬浮魔法球 | 轮末召唤物环绕,每轮自动对最强敌人造成魔法伤害 | 需战斗单位系统新增实体类型(召唤物/持续伤害源),工程量最大 | +| 商店置换服务「符文重铸」 | 花 GP 重掷攻击类型相关件——商店新交互 | **已单列**:见[道具退役素材库](道具退役素材库.md)「备选素材」节;前提已被锻造工坊接管,重启先裁与锻造工坊的关系 | +| 件派生动词白名单(非信息类) | 移除封印印记回收返 AP/定向熄灭伤害型地形格/重掷 RAP 等第三盘面动作 | 触发条件=件池 ≥30 种后玩家仍反馈操作重复且定位在操作层(非决策层);信息类派生动词维持全禁 | +| 三期:合成进化 | 两件同名/同标签件合成升品(Ball x Pit 式)——池深不足时的解药 | 三期再议 | + +## 二、淘金流(GP 流)候选件(4 项) + +> 原定位=支撑引擎、非胜利条件;原触发=先作件族挂配套池观察、数据支持后再立派。现行框架无「立派」概念,重启时按专长/属性值提升/补给三分类逐件重判。 + +- **吝啬鬼账本/金脉共鸣**:每持有 ~N GP 攻击 +~X——GP 进伤害公式,新缩放源 +- **贪婪契约**:商店折扣+GP 掉落增税,正负双修 +- **消费回馈**:商店购买附赠同类临时增益 +- **战利品鉴定**:三选一必含 1 件高稀有度 + +## 三、R4 乙冻结组(3 项) + +> 冻结原因=信息型永不对冲(红线①)。重启条件=R4 复查闸读数支持(信息型挫败信号,T10 呈报)+用户显式放宽红线①边界——属红线变更,只能由用户发起。 + +- **信息型清除工具件族**(「除尘风箱」类):限价限量清除藤蔓/烬覆/矿尘遮蔽、恢复数字 +- **深挖钻头原案**:开出深层资源、代价=「危险格位置信息 −1」主动吃信息税。现行已改设计为非信息税形态(代价候选=额外 ~1 AP 或踩雷惩罚加重),付费开掘机制已在役;原案只作历史对照 +- **「概率收窄」类派生动词**:花 AP 把某格是雷的概率收窄——非确定信息 + +## 四、同线非道具备选(名称级线索) + +> 原件已删,盘上无细则,仅存名称线索;需要原文查 git 提交。 + +- **天赋树后备语言**:哈迪斯 2 预算制扩容/邻接树改型/GP 价格通胀防线 +- **七流派完整件表/逐项反例条件表**:流派机制已退役,仅作历史参考 +- 原文出处:git 提交 `48ee44b2`(体系调研+设计提案)、`d7a011ef`(整合定稿建立)、`503b152c`(五裁落定) + +## 五、已裁不做(只留判据防回潮) + +- **喂雷流**:2026-10-03 五裁定为不做(R5 甲);kill-switch 口径(踩雷净血账期望必须为负)已落在[奇物](../gdd/systems/冒险循环/奇物.md)「踩雷转化对账锚」。 + +## 六、回收纪律 + +1. 本文件所有内容都是**未落地素材**,不是承诺,也不是既定设计。 +2. 重启任何一件:用户发令立项 → 按现行框架重走设计讨论 → 写需求卡片 → 编入迭代;不得直接据本文件开卡。 +3. 已被现行系统取代或已有独立落点的项(符文重铸、深挖钻头原案、七流派件表),本文件只留指路与历史对照,不复述细节。 diff --git a/design/gdd/systems/冒险循环/奇物.md b/design/gdd/systems/冒险循环/奇物.md index 437f9c13..da83daab 100644 --- a/design/gdd/systems/冒险循环/奇物.md +++ b/design/gdd/systems/冒险循环/奇物.md @@ -372,7 +372,7 @@ #### 2.5 在册事项 -现行实现里**三条渠道共用同一个候选池**(商店货架按 2.4 可计算条件切边去掉计价物),三个分类出现条件一样、只有出现概率不同——上表渠道分工中的**凭证形式(非 Boss 渠道给凭证 + 保底限购)已随迭代15② 入表实装**(见 2.2 与调参表);**Boss 渠道直接给专长已裁随专长实装批本批落地**(2026-10-11 用户裁,不再分期)。相关的实施批次登记在 [待办清单](../../../../待办清单.md) 的 BD 分层条目下,本文件不复制。 +现行实现里**三条渠道共用同一个候选池**(商店货架按 2.4 可计算条件切边去掉计价物),三个分类出现条件一样、只有出现概率不同——上表渠道分工中的**凭证形式(非 Boss 渠道给凭证 + 保底限购)已随迭代15② 入表实装**(见 2.2 与调参表);**Boss 渠道直接给专长已裁随专长实装批本批落地**(2026-10-11 用户裁,不再分期)。渠道分工的实施批次已随迭代 15② 与迭代 20 专长实装批落地,本文件不复制。 **池结构选型澄清(2026-10-11)**:池结构正主=案 D(v3.3 写入文档,用户定夺在案);「概率与上限解耦」的实现路径(v3.4 在册三案)系**实装侧自选项,非用户裁定项**——按「实现设计不定于现在」的原裁定,实装批内依代码事实自选,不再上问。 @@ -425,7 +425,7 @@ - **P0(已实现)**:三个分类可定义 → 进入候选池 → 在渠道上被选中 → 当局生效 → 收束清零。 - **P1 后置**:三条渠道按第 2 节分工——凭证形式(非 Boss 渠道给凭证+保底限购)已随迭代15② 入表实装(见调参表),其余分工(Boss 渠道直接给专长等)待实施。 -- **P2 后置**:商店里的攻击类型转换服务;喂雷玩法是否保留(尚未拍板,登记在 [待办清单](../../../../待办清单.md))。 +- **P2 后置**:商店里的攻击类型转换服务(备选素材见 [道具退役素材库](../../../content-archive/道具退役素材库.md));喂雷玩法 2026-10-03 五裁定为不做(R5 甲,kill-switch 见上文「踩雷转化对账锚」)。 ## 调参表 @@ -461,4 +461,4 @@ ## 待办 -全部待办单点登记于 [待办清单](../../../../待办清单.md)(BD 分层条目、命名统一后续条目),本节不复制。 +全部待办单点登记于 [待办清单](../../../../待办清单.md),本节不复制。 diff --git a/design/gdd/systems/表现与支撑/HUD框架.md b/design/gdd/systems/表现与支撑/HUD框架.md index 73b9ba89..d4ed4507 100644 --- a/design/gdd/systems/表现与支撑/HUD框架.md +++ b/design/gdd/systems/表现与支撑/HUD框架.md @@ -17,7 +17,7 @@ HUD框架把各玩法系统产生的事实变成玩家看得见、点得动、 | 负责 | 说明 | |---|---| -| 战斗屏三区布局 | 三区系统级契约与常驻组件呈现形态;棋盘格尺寸定值档与装板校验 | +| 战斗屏三区布局 | 三区系统级契约与常驻组件呈现形态;棋盘装板可行性判据 | | 输入翻译 | 鼠标操作翻译成意图批次、一帧内整批提交;悬停预承诺与可挖域指示 | | 提示体系 | toast 轻提示与一次性提示;拒绝反馈的呈现映射 | | 模态覆盖层家族 | 图例面板、明细回看、胜负终局共用的层级纪律 | @@ -57,29 +57,26 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻 | 区 | 位置与尺寸 | 管什么 | |---|---|---| -| B 战斗画面 | 全宽 252px | 主角站桩立绘、敌人站桩立绘 ×1–3(**全站桩形态,2026-09-20 用户拍板:无框立绘+底座、状态小图标挂血条下,英雄卡/敌人卡退役**)、轮次阶段指示、结算明细带 | -| C 角色信息 | 左下 240×548 | 生命 / 攻击 / 储备数据框、状态效果槽、小人立绘 | -| D 扫雷图 | 中下约 1036×548(原右下面板删除后横向加宽) | 行动点条与按钮组、棋盘本体、toast 槽 | +| B 战斗画面 | 全宽 × 270px | 主角站桩立绘、敌人站桩立绘 ×1–3(**全站桩形态,2026-09-20 用户拍板:无框立绘+底座、状态小图标挂血条下,英雄卡/敌人卡退役**)、轮次阶段指示、结算明细带 | +| C 角色信息 | 左下 240×530 | 生命 / 攻击 / 储备数据框、状态效果槽、小人立绘 | +| D 扫雷图 | 中下约 1036×530(原右下面板删除后横向加宽) | 行动点条与按钮组、棋盘本体、toast 槽 | 分区尺寸与组件落位的像素级裁决归 [battle.md](../../ux/battle.md);三区结构与双舞台常驻是结构冻结项,修订走文档修订而非调参。节点链进度不在战斗屏呈现——它由关卡画面(选路覆盖层常驻形态)的节点态承载,见[关卡节点地图](../冒险循环/关卡节点地图.md)。 -**结论**:棋盘格边长取两档定值——12×12 的板用 36px、10×10 的板用 45px([battle.md](../../ux/battle.md) 拍板值);下式不推导这两档,只在装板时校验"定值塞得进扫雷图区",违例立即显示错误并中止。**分辨率档位(2026-09-30 迭代 9 三裁决案甲修订)**:两档=1280×800 基准档(本表全部定值的口径)+1920×1080 档=**全局等比**(stretch canvas_items+aspect keep——16:10 设计在 16:9 窗口为等比 1.35×+左右黑边各 ~96px);本节与各屏定值一律按 1280 基准档书写,1920 档由引擎等比承载、零重排。 +**结论**:棋盘格边长由 [battle.md](../../ux/battle.md)「棋盘格尺寸公式」按棋盘区实测面积与板型算出;本文只判"塞不塞得进",不复制算式与算例。**分辨率档位(2026-09-30 迭代 9 三裁决案甲修订)**:两档=1280×800 基准档(本表全部定值的口径)+1920×1080 档=**全局等比**(stretch canvas_items+aspect keep——16:10 设计在 16:9 窗口为等比 1.35×+左右黑边各 ~96px);本节与各屏定值一律按 1280 基准档书写,1920 档由引擎等比承载、零重排。 ``` -可行性校验(装板期断言): - floor( min(棋盘区宽 − 水平边距, 棋盘区高 − 行动点条高 − 垂直边距) ÷ N ) ≥ 该档定值 - 且该档定值落在 [30, 45] px -数字字号 = max(18, ceil(格边长 × 0.5)),像素字体按整数倍缩放 +装板可行性(网格实高 ≤ 棋盘区可用高): + N × 格边长 + (N − 1) × 2px ≤ 棋盘区可用高 +格边长与数字字号的计算见 battle.md「棋盘格尺寸公式」;本节只判"塞得进" ``` | 变量 | 含义 | 现行值 | |---|---|---| -| N | 棋盘边长格数 | 10 或 12([棋盘生成](../排雷循环/棋盘生成.md)的两档尺寸) | -| 定值档 | 12×12 → 36px;10×10 → 45px | 结构冻结 | -| 棋盘区宽 / 高 | 扫雷图区基准尺寸 | 1280×800 下 1036 / 504(548 减行动点条 44) | -| 边距 | 水平 / 垂直 | 各 16px | +| N | 棋盘边长格数 | 读[棋盘生成](../排雷循环/棋盘生成.md)(现行四档;事实源 board_gen.tres) | +| 棋盘区宽 / 高 | 扫雷图区基准尺寸 | 由 D 区尺寸扣行动点条 44px 得出,本表不复制现算值 | -1280×800 下实算:可用高度 488px,12×12 得 40 ≥ 36、10×10 得 48 ≥ 45,两档都通过。宽度向同理余量充裕(1036−16 远大于 12 格定值档所需)。棋盘数字直接显示排雷玩法给的真值——呈现层禁止自己算数字,这是"数据层从不说谎"在呈现侧的镜像。 +装板可行性由上面的不等式保证;格边长的现行算例与可读下限见 [battle.md](../../ux/battle.md)。棋盘数字直接显示排雷玩法给的真值——呈现层禁止自己算数字,这是"数据层从不说谎"在呈现侧的镜像。 ### 提示与弹层:轻提示随起随消、重弹层排队进出 @@ -266,7 +263,7 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻 以下判据逐条可测,全部通过才算闭环达标。 - 三区无遮挡、无重叠、无内容裁切(棋盘全部格子与数字完整可见),分区尺寸与 battle.md 布局表一致;同屏 draw calls < 200;进入战斗屏 500ms 内首格可点。 -- 两档板装板后格边长取定值档(36 / 45px)且可行性校验通过;数字字号不低于下限、整数倍缩放无模糊。 +- 任意板型装板后网格实高不超出棋盘区:N × 格边长 + (N−1) × 2px ≤ 棋盘区可用高;数字字号与整数倍缩放判据见 battle.md。 - 已开 / 未开格态在灰度截图下可逐格分类;已引爆危险格"可通行可读"(已开底加巢穴纹、可作移动目标)。 - 类型微光:微光只在英雄周围 8 格内的未开格显示;出圈即灭、入圈即亮;已开格与封锁格恒无微光;微光呈现不随格是雷是安变化(不泄危险格与安全格)。(迭代 30 卡①实装后转正式验收) - 视野迷雾:棋盘仅菱形灯光区内完整渲染;区外已开格灰显可读、区外未开格不可见;灯光区随角色移动跟随;同一张板同一份动作序列,迷雾开关两种状态下的结算结果逐位一致(纯呈现,零游戏数据改动)。 diff --git a/design/gdd/ux/battle.md b/design/gdd/ux/battle.md index 9ccef590..336af162 100644 --- a/design/gdd/ux/battle.md +++ b/design/gdd/ux/battle.md @@ -121,7 +121,7 @@ |---|---|---| | **B 战斗画面** | 全宽 × 270px(2026-10-06 方案二拍板:演出 ≈1/3 屏,原 252) | 主角站桩立绘(左)+ 兑现演出区(中)+ 敌人站桩立绘 ×1–3(右)——**全站桩形态(2026-09-20 用户拍板,敌人卡形态待办裁决完成):主角与敌人均为无框立绘+底座,零卡片**;主角与敌人站桩 = **HP 与状态效果的唯一展示面(2026-09-26 信息归属拍板)**;底部结算明细带(24px 摘要 / 结算期 84px 实时流);顶部中央轮次·阶段指示 | | **C 角色信息** | 左下 240px × 530px(2026-10-06 方案二:548→530) | 攻击值(含修正显示)、护甲 AC;秘宝槽、奇物列表(现行标题「特性」)——HP 条/RAP 池/状态效果槽/立绘占位/钱包行退役(2026-09-26 信息归属拍板:HP 与状态唯一展示面 = B 区站桩;RAP 迁 D 区 AP 条;GP/钥石迁出战斗屏) | -| **D 扫雷图** | 中下 ~1036px × 530px(2026-10-06 方案二:548→530——压缩全部由面板空档吸收,**棋盘 438×438 原尺寸不缩、格子不变**;原右下面板删除后横向加宽,吸收其宽度) | 顶部 AP 条(44px:左——AP 点阵 + 停手按钮;中——RAP 点阵+数字〔自 C 区迁入,贴弃图刷新按钮,2026-09-26 拍板〕;右——图例按钮 + 弃图刷新按钮〔雷图右上角,2026-09-12 拍板〕);棋盘主体(居中,格 36–45px 见方);toast 槽(上缘内侧) | +| **D 扫雷图** | 中下 ~1036px × 530px(2026-10-06 方案二:548→530——压缩全部由面板空档吸收,**棋盘 438×438 原尺寸不缩、格子不变**;原右下面板删除后横向加宽,吸收其宽度) | 顶部 AP 条(44px:左——AP 点阵 + 停手按钮;中——RAP 点阵+数字〔自 C 区迁入,贴弃图刷新按钮,2026-09-26 拍板〕;右——图例按钮 + 弃图刷新按钮〔雷图右上角,2026-09-12 拍板〕);棋盘主体(居中,格边长见下方「棋盘格尺寸公式」);toast 槽(上缘内侧) | > 布局为 B/C/D 三区——关卡进度条不在战斗屏(节点链进度常驻关卡画面,见 Navigation Position;字母不重编沿用 B/C/D)。 @@ -134,7 +134,22 @@ - **对战斗表现双舞台陷阱的输入**:game-concept 登记的"战斗发生在棋盘上还是独立场景"悬念,由本布局裁决为**第三形态:同屏双舞台**。战斗表现定稿前的"战斗表现美术测试"(一屏样张)应按此布局出样 - 敌人不占格(敌人系统已锁)与本布局自洽:敌人实体只存在于 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(格边长三方取值不一致已登记待办清单,扩板定档时统一处置)。数字字号 ≥ 格高的 50%,像素字体整数倍缩放(canvas_items stretch 保证清晰)。 +**棋盘格尺寸公式**(本节是格边长口径的唯一出处;其他文档只写规则与指针,不复制算例): + +``` +格边长 = clampi( floor((min(棋盘区宽 − 12 − 悬崖厚度, 棋盘区高 − 24 − 悬崖厚度) − (N−1) × 格间距) / N), 26, 46 ) +``` + +- N = 棋盘长宽两边的较大者;格间距 2px;垂直预留 24px(上 12 / 下 12);悬崖厚度 8px;结构钳制区间 [26, 46]px。 +- 可读下限 30px——与结构钳制分开:钳制管算式不越界,下限管玩家能否看清。 +- N 的取值与每关板型的对应关系读[棋盘生成](../systems/排雷循环/棋盘生成.md),现行值的事实源是 `data/tables/board_gen.tres`。 +- 数字字号 = max(18, ceil(格边长 × 0.5)),像素字体整数倍缩放(canvas_items stretch 保证清晰)。 + +按 1280×800 基准档、棋盘区可用高 486px(D 区 530 减行动点条 44)推算的算例(随布局与板型变化,不是契约值): + +| 板型 N | 10 | 12 | 13 | 14 | +|---|---|---|---|---| +| 格边长 | 43px | 36px | 33px | 30px | ### Component Inventory diff --git a/待办清单.md b/待办清单.md index f809b1d2..16c6db1a 100644 --- a/待办清单.md +++ b/待办清单.md @@ -148,35 +148,6 @@ **状态**:待文档设计 -#### 双层 BD 延期与备选内容总登记(2026-10-03 登记,来源=批次移交) - -**实况**:需求卡片/整合定稿系中间文档,落地完成后按吸收即死退役——用户令「只删除已完成落地的内容」,本条自承载全部**未落地**内容防丢失(每项自包含,不依赖指针)。 - -**二期件组**(触发=迭代 12 出口读数+用户点名立项;各件机制形态已定,数值 provisional): -- **战斗→扫雷跨阶段回流**(穿刺流):击杀轻甲敌人返还 1 AP——战斗收益反哺开格动机;AP 经济新管道,谨慎件(威胁红线③边缘,立项须专项论证) -- **穿甲锥**(穿刺×封印协同桥):对被控制危险格的敌人穿刺伤害再提升 -- **孤注一掷**(普攻流二期锚点件):每轮攻击次数减至 1、该次伤害大幅倍增——攻击频率规则改写 -- **悬浮魔法球**(魔法流二期):轮末召唤物环绕,每轮自动对最强敌人造成魔法伤害——需战斗单位系统新增实体类型(召唤物/持续伤害源) -- **商店置换服务「符文重铸」**:攻击类型族后期流派转换(花 GP 重掷攻击类型相关件)——商店新交互 -- **件派生动词白名单(非信息类)**:移除封印印记回收返 AP/定向熄灭伤害型地形格/重掷 RAP 等第三盘面动作——**触发条件=件池 ≥30 种后玩家仍反馈操作重复且定位在操作层(非决策层)**;信息类派生动词维持全禁(R4 甲,见下备选组) -- **三期:合成进化**:两件同名/同标签件合成升品(Ball x Pit 式)——池深不足时的解药,三期再议 - -**淘金流立派缓议**(定位=支撑引擎非胜利条件;触发=先作件族挂配套池观察、数据支持后再立派):吝啬鬼账本/金脉共鸣(每持有 ~N GP 攻击 +~X——GP 进伤害公式新缩放源)/贪婪契约(商店折扣+GP 掉落增税,正负双修)/消费回馈(商店购买附赠同类临时增益)/战利品鉴定(三选一必含 1 件高稀有度)。 - -**R4 乙备选案(2026-10-03 用户裁甲=信息型永不对冲,本组冻结)**: -- 信息型清除工具件族(「除尘风箱」类:限价限量清除藤蔓/烬覆/矿尘遮蔽、恢复数字) -- 深挖钻头原案(开出深层资源、代价=「危险格位置信息 −1」主动吃信息税——现行已改设计为非信息税形态:代价候选=额外 ~1 AP 或踩雷惩罚加重) -- 「概率收窄」类派生动词(花 AP 把某格是雷的概率收窄,非确定信息) -- **重启条件=R4 复查闸读数支持(信息型挫败信号,T10 呈报)+用户显式放宽红线①边界**——本组重启属红线变更,须用户发起 - -**设计知识存续口径**:七流派完整件表/逐项反例条件表/天赋树后备语言(哈迪斯 2 预算制扩容/邻接树改型/GP 价格通胀防线)存整合定稿,随实施批文档吸收迁入各 GDD 权威文档(元进度/node-reward/战斗结算/地形变异/行动经济/秘宝边界句/商店 spec)——**吸收完成前定稿不删**;喂雷流待办见「旧行为 MC 行为锚」条所在批次的历史登记。 - -**缺口**:全组为备选库:各件启用须用户发令立项,届时按件走设计讨论定机制形态与数值(二期件组机制形态已定、数值 provisional;R4 乙组重启属红线变更须用户发起)。 - -**改动面**:文档 - -**状态**:待文档设计(备选) - #### 扩展节点类型——危险/精英节点与特殊地形节点(2026-10-21 登记,来源=会话提及) **实况**:用户 2026-10-21 会话定方向:Alpha 版只留现行四类(战斗/奖励/恢复/商店),以下两类留到以后再做——①危险/精英节点(怪物与普通战斗不同、奖励肥);②特殊地形节点(效果修饰:地图战斗资源、敌我伤害、金币比例等)。内容未设计。 @@ -403,13 +374,11 @@ #### 棋盘格边长三方取值不一致——待扩板定档处置(2026-10-06 登记,来源=批次移交) -**实况**:迭代 16「UI 设计对齐批」P2 已裁「棋盘格边长零改动」(本次不动棋盘游戏画面),由此三方取值不一致作为**已知偏差**登记:①代码=`board_view.gd:251` 动态公式 `clampi(cell, 26, 46)` + `:114` 默认 46.0;②art-bible §8.1(:433) 冻结锚点=45px(10×10)/ 36px(12×12);③demo 原型=44px(`src/ui-prototype.html:288`);另有 HUD框架:72 装板校验区间 [30,45]。**当前未被任何断言触发**(属潜在不一致,不是缺陷)。按需求卡片契约 R7「禁单侧改完留漂移」,本批**代码与文档均不改**;处置时机=扩板(13×13/14×14)定档时随格边长专项一并处理(§8.1 亦注明扩板换算值未定稿)。来源=UI对齐批需求卡片(已退役,git 历史可查)§2.1「已知偏差」行。 +**实况**:扩板已落地(四档板型 10/12/13/14 在跑),2026-10-26 文档面已按单点维护归一:①格边长口径的唯一出处收敛到 [战斗屏规格](design/gdd/ux/battle.md)「棋盘格尺寸公式」——公式含格间距与垂直预留,可读下限 30px,1280 档算例 43/36/33/30 标注为随布局变化的非契约值;②[美术圣经](design/art/art-bible.md) §8.1 改为指路 battle.md、只锁资产侧两条比例,§8.2 甲类整数倍纪律已剔除砖面 tile(瓦片随格边长整格铺满,允许非整数倍);③[HUD框架](design/gdd/systems/表现与支撑/HUD框架.md) 只留装板可行性不等式,删去 36/45 定值档与旧算例;④demo 原型 44px 那一路随 `src/` 退役消失。剩余为代码面两处与口径不同步:`game/probe/layout_probe.gd:15` 的格子可读门槛 `MIN_CELL := 36.0` 仍取 12×12 的旧锚点值,比 battle.md 的可读下限 30px 严——现探针只进 10×10 的 L1 故仍全绿,一旦覆盖 13×13(33px)与 14×14(30px)即会误报红;`game/tests/unit/core/board_gen_reward_test.gd:53` 的格边长冒烟只跑 L1/L2,13×13 与 14×14 无覆盖。断言改动后须同批重生成 `game/tests/验证集清单.md`(`tools/extract_checks.py` 手工触发)。 -**缺口**:还差扩板定档时的格边长专项裁决(三方取值归一+§8.1 扩板换算值定稿)。 +**改动面**:游戏代码 -**改动面**:文档 - -**状态**:待文档设计(备选) +**状态**:待写卡 #### 资产升档重产批(art-bible v3.0 中修挂账③,2026-09-29 登记,来源=批次移交)