From 111bf1bd1045e0bafb763ca5e29321bf159861bb Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Fri, 6 Nov 2026 00:48:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E9=87=8A(=E5=8F=99=E8=BF=B0=E8=84=B1?= =?UTF-8?q?=E8=8A=82=E8=AE=A2=E6=AD=A3=C2=B7=E6=99=AE=E6=9F=A5=E6=89=B9?= =?UTF-8?q?=E6=89=A7=E8=A1=8C):=205=20=E5=A4=84=E6=8C=89=E3=80=8C=E9=A2=84?= =?UTF-8?q?=E7=95=99=E3=80=81=E6=9C=AA=E8=AE=BE=E8=AE=A1=E5=85=A5=E8=A1=A8?= =?UTF-8?q?=E3=80=8D=E5=8F=A3=E5=BE=84=E8=AE=A2=E6=AD=A3=E2=80=94=E2=80=94?= =?UTF-8?q?effect=5Fengine=20OPS=20=E5=A4=B4=E6=B3=A8=20mod=5Fzero/gte=5Fr?= =?UTF-8?q?ef/lt=5Fref=20=E8=AE=BE=E6=83=B3=E7=94=A8=E9=80=94=E6=94=B9?= =?UTF-8?q?=E9=A2=84=E7=95=99=E6=B3=A8=E8=AE=B0=EF=BC=8BEFFECT=5FKINDS=20?= =?UTF-8?q?=E5=A4=B4=E6=B3=A8=E8=A1=A5=20spike=20=E7=8B=AC=E7=AB=8B=20kind?= =?UTF-8?q?=20=E5=B2=97=3D=E9=A2=84=E7=95=99=E5=AE=9E=E8=B5=B0=20modify=5F?= =?UTF-8?q?ticket=20mode=20=E9=80=9A=E9=81=93=E3=80=81reward=5Fgrant=20=5F?= =?UTF-8?q?charge=5Fgate=20=E5=A4=B4=E6=B3=A8=E6=8E=98=E8=BF=9B=E8=93=84?= =?UTF-8?q?=E8=83=BD=E5=8F=99=E8=BF=B0=E6=94=B9=E9=80=9A=E7=94=A8=E5=8F=97?= =?UTF-8?q?=E7=90=86=E9=97=B8+=E9=A2=84=E7=95=99=E6=B3=A8=E8=AE=B0?= =?UTF-8?q?=E3=80=81action=5Feconomy=20request=5Fdig=20=E5=A4=B4=E6=B3=A8?= =?UTF-8?q?=E6=B7=B1=E6=8C=96=E9=92=BB=E5=A4=B4=E5=8F=99=E8=BF=B0=E6=94=B9?= =?UTF-8?q?=E9=80=9A=E7=94=A8=E9=97=B8+=E9=A2=84=E7=95=99=E6=B3=A8?= =?UTF-8?q?=E8=AE=B0=E3=80=81treasure=5Fitem=5Ftable=20cell=5Fremoval=20?= =?UTF-8?q?=E7=88=86=E7=A0=B4=E5=B7=A5=E5=85=B5=E5=8C=85=E5=8F=99=E8=BF=B0?= =?UTF-8?q?=E6=94=B9=E9=A2=84=E7=95=99=E6=B3=A8=E8=AE=B0=EF=BC=9B=E9=9B=B6?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E9=9B=B6=E8=AF=8D=E8=A1=A8=E6=94=B9=E5=8A=A8?= =?UTF-8?q?=E3=80=82=E5=BE=85=E5=8A=9E=E6=B8=85=E5=8D=95=E6=99=AE=E6=9F=A5?= =?UTF-8?q?=E6=9D=A1=E6=8E=A8=E8=BF=9B=EF=BC=9A=E6=99=AE=E6=9F=A5=E7=BB=93?= =?UTF-8?q?=E8=BD=AC=EF=BC=88=E6=8A=A5=E5=91=8A=E5=87=AD=E6=8D=AE+?= =?UTF-8?q?=E8=AE=A2=E6=AD=A3=E5=B7=B2=E6=89=A7=E8=A1=8C=EF=BC=89=EF=BC=8C?= =?UTF-8?q?=E9=81=97=E7=95=99=E6=97=A7=E8=AF=8D=E6=94=B6=E5=B0=BE=E5=BE=85?= =?UTF-8?q?=E8=A3=81=EF=BC=8C=E7=8A=B6=E6=80=81=E5=BE=85=E5=86=99=E5=8D=A1?= =?UTF-8?q?=E2=86=92=E5=BE=85=E6=89=A7=E8=A1=8C=E3=80=82=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=EF=BC=9A=E5=86=92=E7=83=9F=2015=20=E9=A1=B9=200=20=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E4=B8=89=E9=97=B8=E5=85=A8=E8=BF=87=EF=BC=88worktree?= =?UTF-8?q?=20=E5=86=B7=E6=A3=80=E7=BC=BA=20.import=20=E5=81=87=E7=BA=A2?= =?UTF-8?q?=E5=B7=B2=E7=BB=8F=E5=AF=BC=E5=85=A5=E6=B8=85=E5=81=BF=E2=80=94?= =?UTF-8?q?=E2=80=94=E5=9C=A8=E5=86=8C=E7=8E=AF=E5=A2=83=E5=9D=91=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/core/action_economy.gd | 4 ++-- game/core/effect_engine.gd | 7 ++++--- game/core/reward_grant.gd | 2 +- game/data/schemas/treasure_item_table.gd | 2 +- 待办清单.md | 6 ++++-- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/game/core/action_economy.gd b/game/core/action_economy.gd index 679302ef..b65ba993 100644 --- a/game/core/action_economy.gd +++ b/game/core/action_economy.gd @@ -79,9 +79,9 @@ func try_spend(action_kind: String) -> bool: # 排雷玩法 挖掘专用:chain_size = 连锁附加格数(不含首格);clears_map = 本次动作后全图安全格开完。 -# 深挖钻头付费开掘(dig_paid counter_spend 订阅施加面):按序消耗族——AP 富余(≥基础+对价)时本动作付全价并积本轮付费计数(效果引擎 +# 付费开掘通用闸(dig_paid counter_spend 订阅施加面):按序消耗族——AP 富余(≥基础+对价)时本动作付全价并积本轮付费计数(效果引擎 # 计数器=授予段追加产出配额取数面);AP 不足全价时 fallback 降级只付基础 1 照常开格、不积计数 -# ——持有钻头永不锁死普通挖格(散件保底 B-2)。 +# ——持有件永不锁死普通挖格(散件保底 B-2)。设想承载件「深挖钻头」未设计入表,通道位预留。 func request_dig(chain_size: int, clears_map: bool) -> bool: if _phase != Phase.ACTIVE: _reject("phase") diff --git a/game/core/effect_engine.gd b/game/core/effect_engine.gd index 33d3a725..a9831108 100644 --- a/game/core/effect_engine.gd +++ b/game/core/effect_engine.gd @@ -24,7 +24,8 @@ const MINE_EVENTS := ["dig_reveal", "dig_paid", "seal_hit", "mine_hit", "seal_se ## 效果类型词汇(解释器 switch 闭集——词表实数以 EFFECT_KINDS 常量为准,含共享行拆型: ## grant_gp/bias_wallet、counter_add/counter_spend、reveal_tiles/remove_mines/refresh_pick、 -## bias_rewards/preview。需求卡片标题计 23 系笔误,落码按行内容全收——commit 留痕) +## bias_rewards/preview。spike 独立 kind 岗=预留——实际语义走 modify_ticket mode="spike" 通道(在役)。 +## 需求卡片标题计 23 系笔误,落码按行内容全收——commit 留痕) const EFFECT_KINDS := ["add_ticket_rider", "modify_ticket", "damage_mult", "open_ticket", "attack_bonus", "yield_mult", "spawn_spell", "grant_material", "grant_ap", "grant_gp", "bias_wallet", "shield", "spike", "apply_status", "counter_add", @@ -61,8 +62,8 @@ const FACTS := ["matchup", "is_first_dig_of_battle", "terrain_kind", "target_arm "ap_exhausted_last", "hp_ratio", "amount", "ap_left", "pct", "battle_index"] # 关卡域战斗序(1 基,enc 携带;开局姿态组「每关首轮窗」条件面) -## when 算子词汇(封闭——fact 查询面落法:mod_zero=计数器取模判满〔掘进蓄能〕、 -## advantageous=克制矩阵正面判定〔淬毒刃纹〕、gte_ref/lt_ref=与另一计数器比较〔深挖钻头配额〕、 +## when 算子词汇(封闭——fact 查询面落法:mod_zero=计数器取模判满〔预留——设想用途「掘进蓄能」未设计入表〕、 +## advantageous=克制矩阵正面判定〔淬毒刃纹〕、gte_ref/lt_ref=与另一计数器比较〔预留——设想用途「深挖钻头」未设计入表〕、 ## ends_with=后缀匹配〔对某甲族的泛条件〕、mod_eq=取模余数判定〔双管镐每第 2 次——value=模数 ## ref=余数;dispatch 预评估口径〔when 于命中前读计数器现值〕下「每第 N 次」系用 ref=N-1 表达〕。 ## 均系映射表现状条件装进 fact 的查询面落法,白名单覆盖) diff --git a/game/core/reward_grant.gd b/game/core/reward_grant.gd index db957961..7d84273a 100644 --- a/game/core/reward_grant.gd +++ b/game/core/reward_grant.gd @@ -127,7 +127,7 @@ func use_treasure(handle: int, target: Vector2i) -> Dictionary: return {"ok": true, "item_id": v.item_id, "resolved": v.resolved, "record": rec} -# 受理闸(treasure_used 发射+施加:counter_spend 订阅=掘进蓄能积点账本,积点不足拒绝零消耗。 +# 受理闸(treasure_used 发射+施加:counter_spend 订阅=消耗型受理闸,积点不足拒绝零消耗;设想承载件「掘进蓄能」未设计入表,通道位预留。 # 零 item_id 特判;拒绝文案读装配集积点进度——宿主 attune 读投影) func _charge_gate(v: Dictionary, target: Vector2i) -> Dictionary: var tu_hits := fx_host.fx_emit("treasure_used", {"item_id": String(v.item_id), "target": target}) diff --git a/game/data/schemas/treasure_item_table.gd b/game/data/schemas/treasure_item_table.gd index ceaeccf0..362c5609 100644 --- a/game/data/schemas/treasure_item_table.gd +++ b/game/data/schemas/treasure_item_table.gd @@ -17,7 +17,7 @@ const UNLOCK_COUNTER_KEYS := ["adventure_cleared", "boss_kill_count", "vision_us const DIMENSIONS := ["info", "risk", "action", "plan", "counter"] # enum 九 kind 全部条件触发/机制修正类;mine_reveal/ap_grant 语义不变。 -# cell_removal = 爆破工兵包中立移除格;mine_hit_halve 系固定 +# cell_removal = 中立移除格通道(预留——设想承载件「爆破工兵包」未设计入表);mine_hit_halve 系固定 # 「减半」语义不消费 magnitude(反弹 N 由 reflect_damage 行 magnitude 承载)。 # 主动件 kind 词族(reveal_tiles/preview/grant_ap/remove_mines/ # refresh_pick——效果引擎 ACTIVE_KINDS 同名闭集);被动件不走 effect_kinds 词族 diff --git a/待办清单.md b/待办清单.md index 73af9f33..97207e4c 100644 --- a/待办清单.md +++ b/待办清单.md @@ -244,11 +244,13 @@ #### 效果通道与事件词的零现役普查(2026-11-05 登记,来源=审计发现) -**实况**:证据=四条 grep 读数:`cell_removal` 通道在册(`game/data/schemas/treasure_item_table.gd:26`;消费点 `game/core/reward_grant.gd:160-161`)而 `game/data/` 全域零数据行;`mine_hit_halve` 同形态(仅 schema 词表与注记在位);`open_ticket` 的 `channel="reflect"` 行族零表行(21 张 `.tres` 逐张 grep);`armor_roll` 在 `game/core/effect_engine.gd:13` 事件词表在册、发射点 `game/core/damage_controller.gd:296`,而 `game/data/tables/feats.tres` 零订阅行。形态与架构审查甲案已清的 overflow/attack_segments 死通道同族(判据出处=`design/engineering/code-conventions.md:15`、`design/engineering/test-conventions.md:116`)。本批(需求卡片-改写族孤儿机制与退役名清退批)只清其文案与归因串,通道与事件词本体去留待普查批整体裁。 +**实况**:普查报告 reports/普查-效果通道与事件词零现役-2026-11-06.md——结论=内容层零孤儿、四词表+秘宝表 schema 旧词层全部属预留埋点(词面全保留零清退项;架构原则=词表先行内容后接)。叙述脱节 5 处已按「预留、未设计入表」口径订正(2026-11-06 用户令直改,冒烟 15 项 0 失败三闸全过)。 + +**缺口**:唯一遗留待裁=秘宝表 schema 旧词面 9 个「迁移完成」收尾(做不做、何时做)。 **改动面**:游戏代码 -**状态**:待写卡 +**状态**:待执行 #### 测试面真输入化分期与存量断言逐条精锚(2026-11-05 登记,来源=批次移交)