diff --git a/game/core/action_economy.gd b/game/core/action_economy.gd index a88ad4aa..684d3da5 100644 --- a/game/core/action_economy.gd +++ b/game/core/action_economy.gd @@ -177,7 +177,7 @@ func notify_settlement_done(next_round_mode: String) -> bool: # 下轮行动点修正排队(格面资源八型批 2026-09-20):action 型正负行结算期调用,同轮多次授予累加; # 相位无关(授予发生在结算段,此时本类可能处于 ACTIVE/WAITING 任一相位) -# 第 9 API(registry 行动经济×① 接口漂移预授权——迭代 7 T2 魔法道具内容批落位):ap_grant 道具的 +# 第 9 API(registry 行动经济×① 接口漂移预授权——迭代 7 T2 秘宝内容批落位):ap_grant 道具的 # 当轮行动点加量(GDD「加行动点效果给当轮」——区别于 queue_ap_delta 的下轮排队语义)。Active 受理、 # 无上限域、零随机;使用道具本身零扣费(成本在获取时已付——捡道具格不出战斗奖励)。 func grant_ap(amount: int) -> bool: diff --git a/game/core/attunement.gd b/game/core/attunement.gd index 28685dca..4091da00 100644 --- a/game/core/attunement.gd +++ b/game/core/attunement.gd @@ -1,7 +1,7 @@ # VERTICAL SLICE - NOT FOR PRODUCTION # Validation Question: 同调位读数是否由「通关次数 + Boss 击杀数」经 attunement_growth.tres 谓词表 # 实时求值(Σ达成 grant clamp slot_cap),迭代 10 过渡键 transitional_sync_slots 得以退役(P0) -# Date: 2026-10-03(迭代 11 第①批 魔法道具同调实施批 T3——任务书 v1.1 §六 T3;设计权威底稿 proposal §2) +# Date: 2026-10-03(迭代 11 第①批 秘宝同调实施批 T3——任务书 v1.1 §六 T3;设计权威底稿 proposal §2) # 同调位求值服务:计数源组装(save 账本 → 计数字典)与实时求值,纯函数零副作用。 # 读数源切换(迭代 10 欠账③):装配面消费方(营地装配覆盖层 T4/冒险开始装配注入 T6)一律经本服务取 # Slots;过渡键 adventure.transitional_sync_slots 的在途读取面(aux_items 持有上限 gate/战斗内沉没/ diff --git a/game/core/aux_items.gd b/game/core/aux_items.gd index da8454ba..dfeaacc3 100644 --- a/game/core/aux_items.gd +++ b/game/core/aux_items.gd @@ -1,8 +1,8 @@ # VERTICAL SLICE - NOT FOR PRODUCTION # Validation Question: 道具从掉落到使用的全程零随机零特判——同操作序列重放两遍,库存与叠加层投影逐位相同(P0) -# Date: 2026-09-29(迭代 7 T2 core 骨架——魔法道具内容批;设计权威 design/gdd/systems/排雷循环/魔法道具.md +# Date: 2026-09-29(迭代 7 T2 core 骨架——秘宝内容批;设计权威 design/gdd/systems/排雷循环/秘宝.md # + registry aux_items api 8 入口/load_bearing_rules/use_orchestration) -# 魔法道具 关卡域库存 + 板级叠加层(自持派生信息层)。 +# 秘宝 关卡域库存 + 板级叠加层(自持派生信息层)。 # 结构冻结照抄(违反即返工): # 零随机(零 RNG 流消费——信息只来自 排雷玩法 恒真数字/地图战斗资源 Ready 映射/行动经济 账本三既有事实源); # 库存关卡域(跨轮跨图跨战斗延续、关卡末清空——清空编排归 战斗结算/关卡层,本类只供 clear/reset); diff --git a/game/core/battle_orchestrator.gd b/game/core/battle_orchestrator.gd index c5b0dff6..219dc90b 100644 --- a/game/core/battle_orchestrator.gd +++ b/game/core/battle_orchestrator.gd @@ -619,7 +619,7 @@ func _relic_yield_adjust(snap: Dictionary, positive: bool) -> Dictionary: # 「动作 × 格型」矩阵的执行面:snap = 缓冲期冻结身份快照(cell_type = 该格装板期摇定的类型身份), # polarity 由动作决定(开安全格/标中旗 = positive,开雷格/标错旗 = negative), # 兑付行 = 奖励字典(类型, 极性)行。返回 true = percent 行实际生效(flat 行恒 false——兑付结果由行协议承载)。 -# ---- 魔法道具(use_aux 四步受理编排保留给同调主动件复用——迭代 11 第①批 T7:过渡授予路由 +# ---- 秘宝(use_aux 四步受理编排保留给同调主动件复用——迭代 11 第①批 T7:过渡授予路由 # _grant_aux 随掉落/停点渠道退役拆除;能力件注入归 LevelRunner.set_attune_charges 骑库存面)---- diff --git a/game/core/config_db.gd b/game/core/config_db.gd index 7e1ff3ee..0c893745 100644 --- a/game/core/config_db.gd +++ b/game/core/config_db.gd @@ -24,7 +24,7 @@ const TABLE_MANIFEST := { "shop": "shop.tres", # GP+商店房实施批 2026-09-21(表与 schema 落籍归并行数据面——本批只接线加载与消费) "meta": "meta.tres", # 元进度实现批 2026-09-21(MetaTable 四行族——schema 与表同批落籍) "meta_tree": "meta_tree.tres", # 迭代 12 T8 双层 BD 天赋树(MetaTreeTable 定义表 Rule 4 豁免——R1 甲融合案 33 节点) - "aux_items": "aux_items.tres", # 迭代 7 T1 魔法道具内容批(AuxItemTable 六行——定义表 Rule 4 豁免;罗盘 retired/失义件 deferred 标记见 schema 头注) + "aux_items": "aux_items.tres", # 迭代 7 T1 秘宝内容批(AuxItemTable 六行——定义表 Rule 4 豁免;罗盘 retired/失义件 deferred 标记见 schema 头注) "adventure": "adventure.tres", # 冒险结构实现批 2026-09-21(AdventureTable 建表——大奖励与钥石行值单点) "attunement_growth": "attunement_growth.tres", # 迭代 11 第①批 同调实施批 T1(AttunementGrowthTable 单行全局——同调位里程碑谓词表;单行先例 Rule 4 豁免) "relics": "relics.tres", # 迭代 12 T1 双层 BD 规则改写型特性基建(RelicTable 定义表 Rule 4 豁免——AuxItemTable 先例;空表合法态=主时间线零扰动) @@ -248,7 +248,7 @@ func level_count() -> int: # ---- GP+商店房实施批(2026-09-21):ShopTable 消费面(行集解析单点——runner/战斗编排禁自扫表)---- -# ── 魔法道具访问器(迭代 7 T1——消费面一律走访问器,禁直读行集)── +# ── 秘宝访问器(迭代 7 T1——消费面一律走访问器,禁直读行集)── # 活行集(非 retired 非 deferred)——投放校验/奖励节点池/呈现可用性的唯一取数口径 func aux_active_rows() -> Array: return aux_items.active_rows() if aux_items != null else [] diff --git a/game/core/level_runner.gd b/game/core/level_runner.gd index 186e4c6f..a500fe83 100644 --- a/game/core/level_runner.gd +++ b/game/core/level_runner.gd @@ -62,7 +62,7 @@ var base_override := {"atk": 0, "max_hp": 0, "armor_class": 0} # 永久强化 var _shop_purchased := {} # product_id → 已购档数(现价重算输入;冒险开始清零) # 协作对象私有(E1/E3 封装收口 2026-09-13):settlement 读取经 current_battle() 成文出口 var _settlement: BattleOrchestrator = null # 当前战斗编排器(关卡结束置 null) -var aux_inventory: AuxItems = null # 魔法道具 关卡域库存(迭代 7 T3——AuxItems;跨战斗延续, +var aux_inventory: AuxItems = null # 秘宝 关卡域库存(迭代 7 T3——AuxItems;跨战斗延续, var _aux_unlocked := {} # aux 解锁门控集(迭代 7 T5——拍板③甲;空集=零投放) var _attunement: Array = [] # 同调装配集(迭代 11 第①批 T5——adventure params.attunement 下传,begin_battle enc 携带进战斗结算;空集=off 零扰动) var _attune_charges: Dictionary = {} # 同调主动件充能账本(迭代 11 第①批 T6——adventure 共享 dict 引用;settlement use_aux 扣减直改同引用) diff --git a/game/core/meta_progression.gd b/game/core/meta_progression.gd index a89ade6e..ddf55f67 100644 --- a/game/core/meta_progression.gd +++ b/game/core/meta_progression.gd @@ -6,7 +6,7 @@ # 职责三件:① 属性锻造定价与购买(几何递增——tier 级价格 = 迭代 floor(p × ratio/100),tier 0 = # base_price,floor 单一取整对齐 round_direction 纪律);② 道具工坊解锁(渠道由 meta.tres channel # 字段声明、判定量换算单点 _workshop_progress——2026-09-21 用户拍板可替换轴;首版 = 总通关次数, -# 钥石直购价随定价批后补最终双渠道;六件局内效果归 Alpha 魔法道具重设计批,本类只有解锁状态); +# 钥石直购价随定价批后补最终双渠道;六件局内效果归 Alpha 秘宝重设计批,本类只有解锁状态); # ③ 冒险收束入账(Boss 两档 = 表值 first_kill/repeat_kill,首杀标记读存档判first;调 SaveManager # apply_adventure_summary 入账并附 boss_drops 副本——复盘可归因,验收 5)。 # 注入面:hero_override() = 三档 forge flat(全零 = 白板合法态;override 不写表——表运行期只读, diff --git a/game/core/save_manager.gd b/game/core/save_manager.gd index 363a525e..d57b7fd6 100644 --- a/game/core/save_manager.gd +++ b/game/core/save_manager.gd @@ -11,7 +11,7 @@ # keystone_balance / forge_levels / item_unlocks / level_clear_counts / boss_first_kill # —— 内容 owner = 元进度.md(营地三柜台:钥石余额/属性锻造/道具工坊/通关次数/首杀标记) # boss_kill_count / attunement_equipped / attune_refresh_level -# —— 内容 owner = 魔法道具.md(同调位账本,M-4 迭代 11 第①批 T2):Boss 击杀总数〔含重复〕= +# —— 内容 owner = 秘宝.md(同调位账本,M-4 迭代 11 第①批 T2):Boss 击杀总数〔含重复〕= # attunement_growth 谓词表计数源;装配关系 = 局外进度事实(元进度域同族——非契约 2 反面清单的 # 「局内道具库存」,后者=冒险进行中瞬态);attune_refresh_level = Y 刷新升级购买等级 # breakpoint.attunement_charges(主动件充能余量)——每冒险重置语义的断点瞬态附随件,内容装配归 diff --git a/game/data/schemas/attunement_growth_table.gd b/game/data/schemas/attunement_growth_table.gd index dd7b7203..a09066c0 100644 --- a/game/data/schemas/attunement_growth_table.gd +++ b/game/data/schemas/attunement_growth_table.gd @@ -1,8 +1,8 @@ # VERTICAL SLICE - NOT FOR PRODUCTION # Validation Question: 同调位增长是否由「通关次数 + Boss 击杀数」经数据驱动的里程碑谓词表实时求值, # 试玩后调增长曲线 = 改表不动码(proposal-magic-item-attunement-2026-09-22 §2.1 用户点名要求) -# Date: 2026-10-03(迭代 11 第①批 魔法道具同调实施批 T1——任务书 v1.1 §六 T1;设计权威底稿 proposal §2) -# 数据配置 AttunementGrowthTable schema(魔法道具 回填 owner)。 +# Date: 2026-10-03(迭代 11 第①批 秘宝同调实施批 T1——任务书 v1.1 §六 T1;设计权威底稿 proposal §2) +# 数据配置 AttunementGrowthTable schema(秘宝 回填 owner)。 # 单行全局常量表(slot_cap + milestones 行族——AdventureTable 单行全局先例,Rule 4 豁免)。 # 行 = Dictionary:{id: String 唯一, grant: int, requires: [{key: String, threshold: int}]}—— # requires 为 (计数键, 阈值) 对的 AND 列表,全部满足即授予 grant 槽; diff --git a/game/data/schemas/aux_item_table.gd b/game/data/schemas/aux_item_table.gd index 70112d7b..ab6d0ce4 100644 --- a/game/data/schemas/aux_item_table.gd +++ b/game/data/schemas/aux_item_table.gd @@ -1,9 +1,9 @@ # VERTICAL SLICE - NOT FOR PRODUCTION -# Validation Question: 挖掘期撞上推理断头时,玩家能否从掉落池捡到魔法道具、在关键时刻花掉买回情报或行动点(P0) -# Date: 2026-09-29(迭代 7 T1 数据面——魔法道具内容批;设计权威 design/gdd/systems/排雷循环/魔法道具.md v0.4+ +# Validation Question: 挖掘期撞上推理断头时,玩家能否从掉落池捡到秘宝、在关键时刻花掉买回情报或行动点(P0) +# Date: 2026-09-29(迭代 7 T1 数据面——秘宝内容批;设计权威 design/gdd/systems/排雷循环/秘宝.md v0.4+ # + registry aux_items 六行 mvp_content;2026-09-29 用户拍板:①乙 探宝罗盘退役留痕 ④甲 显影尘/地穴全图卷失义件 # 六行全建零投放「已解锁·能力封存中」) -# 数据配置 AuxItemTable schema(魔法道具 回填 owner)。 +# 数据配置 AuxItemTable schema(秘宝 回填 owner)。 # 行 = Dictionary,键 item_id(Rule 4 豁免:定义表——registry aux_items Rule 4 豁免先例)。 # 七字段(registry fields 全量):item_id 主键 / display_name / dimension_tags ⊆ 五维 非空 / # effect_kinds ⊆ {mine_reveal, reward_preview, ap_grant}(活性校验见下)/ target ∈ {none, area_3x3, board_wide} / @@ -13,8 +13,8 @@ # 行名保留=meta.tres workshop_items 六件词表恰全校验兼容,存档 item_unlocks 旧键无害; # 免活性校验、不入投放校验、不入 F2 覆盖面、奖励节点/掉落池排除) # deferred = 效果失义待重定行(probe_dust/catacomb_scroll——原显影半边随雾格移除失义,效果与目标 -# 随魔法道具整体重设计归 Alpha(2026-09-20 用户拍板);免 effect_kinds 非空校验、不入投放与 F2) -# 承重护栏(魔法道具 GDD §结构冻结,schema 校验强制不靠运行时拦截): +# 随秘宝整体重设计归 Alpha(2026-09-20 用户拍板);免 effect_kinds 非空校验、不入投放与 F2) +# 承重护栏(秘宝 GDD §结构冻结,schema 校验强制不靠运行时拦截): # 真视窄域——effect_kinds 含 mine_reveal 的活行 target 必须 area_3x3(真视一次最多 3×3,禁全图看雷); # board_wide 仅恢复推理原料类——target=board_wide 的活行 effect_kinds 不得含 mine_reveal(现行无此类活行, # 显影载体待 Alpha 重定后落位)。 @@ -109,7 +109,7 @@ func validate() -> Array: kind_seen[kind] = true # 承重护栏①真视窄域:mine_reveal 活行 target 必须 area_3x3(一次最多 3×3,禁全图看雷) if kind_seen.has("mine_reveal") and target != "area_3x3": - errs.append({"category": "load_bearing", "message": "%s 真视窄域护栏:mine_reveal 行 target 必须 area_3x3,实得 %s(魔法道具 GDD 结构冻结)" % [iid, target]}) + errs.append({"category": "load_bearing", "message": "%s 真视窄域护栏:mine_reveal 行 target 必须 area_3x3,实得 %s(秘宝 GDD 结构冻结)" % [iid, target]}) # 承重护栏②board_wide 仅恢复推理类:全图域行禁替推理效果 if target == "board_wide" and kind_seen.has("mine_reveal"): errs.append({"category": "load_bearing", "message": "%s board_wide 行 effect_kinds 不得含 mine_reveal(全图域仅恢复推理原料类——Alpha 重定后落位)" % iid}) diff --git a/game/data/schemas/meta_table.gd b/game/data/schemas/meta_table.gd index a1c44d52..11ab5feb 100644 --- a/game/data/schemas/meta_table.gd +++ b/game/data/schemas/meta_table.gd @@ -9,7 +9,7 @@ # boss_keystone = Boss 钥石两档行(level_index 连续从 1;first_kill ≥ repeat_kill——首杀全量、 # 重复杀固定小额恒定不递减,两档数值归元进度设计批配读数)。 # workshop_items = 道具工坊行(item_id = registry aux_items 六件词表封闭恰全;首版解锁渠道 = 总通关次数 -# 达标 clear_threshold——2026-09-20 排期裁决;局内效果整体归 Alpha 魔法道具重设计批,本表只有解锁状态面)。 +# 达标 clear_threshold——2026-09-20 排期裁决;局内效果整体归 Alpha 秘宝重设计批,本表只有解锁状态面)。 # conversion = 区间平移换算率行(attr 与 forge 词表一致恰三;per_level_shift_pct ∈ [0,100]—— # registry 键 meta_progression_conversion_table;护甲行强条目:验收读数必须按解锁后参数重测)。 # attune_refresh_upgrade = Y 刷新升级行族(迭代 11 第①批 T4——P1 甲:每冒险开局给 Y 次、冒险周期池、 diff --git a/game/presentation/aux_interact_controller.gd b/game/presentation/aux_interact_controller.gd index dcff5fd8..d47507b7 100644 --- a/game/presentation/aux_interact_controller.gd +++ b/game/presentation/aux_interact_controller.gd @@ -1,5 +1,5 @@ # VERTICAL SLICE - NOT FOR PRODUCTION -# 魔法道具两步交互控制器(迭代 7 T4;T3 拆件批 2026-10-02 自 main.gd 迁出——规范 1.1 单一职责): +# 秘宝两步交互控制器(迭代 7 T4;T3 拆件批 2026-10-02 自 main.gd 迁出——规范 1.1 单一职责): # C 区槽位选中/取消(toggle)→ 棋盘点格使用目标拾取的两步交互状态机 + 库存/叠加层只读投影装配。 # 数据源 = runner 级库存只读面(query_inventory/query_overlays)+ 表行投影(display_name/target/effect_kinds); # 写调用唯一经 战斗结算.use_aux(core 侧四步编排——拒绝零消耗 toast 可辨认)。 diff --git a/game/presentation/main.gd b/game/presentation/main.gd index feba9646..4f890ff5 100644 --- a/game/presentation/main.gd +++ b/game/presentation/main.gd @@ -19,7 +19,7 @@ # ui_assembler.gd,模态层级归 modal_stack.gd,批量模拟编排归 tune_sim_controller.gd,调试模式编排归 # debug_session.gd——本类不拼呈现字符串。 # T3 拆件批(2026-10-02,规范 1.1 单一职责):结算行排播泵迁 row_pacer.gd(本类只入队/排空/读队列, -# 探针/测试委托面 _row_queue/pace_delay_for/_flush_row_queue 原位保留);魔法道具两步交互迁 +# 探针/测试委托面 _row_queue/pace_delay_for/_flush_row_queue 原位保留);秘宝两步交互迁 # aux_interact_controller.gd(本类只接线与转发意图,无目标使用显式化——哨兵坐标不出控制器); # GP 冒险钱包影子账迁 gp_shadow_ledger.gd(本类留探针同名读写委托面)。模态开合全量走 # _open_modal/_close_modal 单口,输入锁=modal_stack.has_open() 开态查询+三例外;battle 收尾反馈与 @@ -36,7 +36,7 @@ const ModalStack := preload("res://presentation/modal_stack.gd") const TuneSimController := preload("res://presentation/tune_sim_controller.gd") const DebugSessionScript := preload("res://presentation/debug_session.gd") const RowPacer := preload("res://presentation/row_pacer.gd") # 结算行排播泵(T3 拆件批) -const AuxInteractController := preload("res://presentation/aux_interact_controller.gd") # 魔法道具两步交互(T3 拆件批) +const AuxInteractController := preload("res://presentation/aux_interact_controller.gd") # 秘宝两步交互(T3 拆件批) const GpShadowLedgerScript := preload("res://presentation/gp_shadow_ledger.gd") # GP 影子账本(T3 拆件批) const BonusInteractController := preload("res://presentation/bonus_interact_controller.gd") # 三选一与替换子交互(T4/D4 拆件批) const CampShopPresenter := preload("res://presentation/camp_shop_presenter.gd") # 营地/商店投影(T4/D4 拆件批) @@ -90,7 +90,7 @@ var settlement_fx: SettlementFxView # 结算演出覆盖层(跨区弹道 # T3 拆件批(2026-10-02)——三件迁出后的组合根持有面(职责见各类头注;装配见 _build_ui) var _row_pacer = null # 结算行排播泵(row_pacer.gd——本类只入队/排空/读队列) -var _aux = null # 魔法道具两步交互(aux_interact_controller.gd——本类只接线与转发意图) +var _aux = null # 秘宝两步交互(aux_interact_controller.gd——本类只接线与转发意图) var _bonus = null # 三选一与替换子交互(bonus_interact_controller.gd——本类只接线与回调注入) var _camp_pres = null # 营地/商店投影(camp_shop_presenter.gd——本类只接线、探针缝保缝转发) var _gp_ledger := GpShadowLedgerScript.new() # GP 冒险钱包影子账(gp_shadow_ledger.gd——wallet 事件投喂) @@ -217,7 +217,7 @@ func _build_ui() -> void: _row_pacer.refresh_request = _refresh_presentations _row_pacer.pump_ended = _on_pump_ended # T17 v3.1+演播后排窗——边沿统一派发(挂起 modal 优先,其次锁期点击重放) # T17 v3.1——演播完边沿重放锁期点击(合并批接线) add_child(_row_pacer) - # 魔法道具两步交互(T3 拆件批——迁 aux_interact_controller.gd;settlement/runner 随关卡更替, + # 秘宝两步交互(T3 拆件批——迁 aux_interact_controller.gd;settlement/runner 随关卡更替, # 经现值回调注入——仿 identity_resolver 只读回调先例) _aux = AuxInteractController.new(db, meta, info_panel, board_zone.toast, board_view, func() -> Variant: return settlement, func() -> Variant: return runner) @@ -954,7 +954,7 @@ func _on_board_action(cell: Vector2i, kind: String) -> void: if not _row_queue.is_empty(): _locked_click = {"cell": cell, "kind": kind} return - # 魔法道具选中态劫持(迭代 7 T4——两步交互第二步):点格=使用目标拾取,不落挖格; + # 秘宝选中态劫持(迭代 7 T4——两步交互第二步):点格=使用目标拾取,不落挖格; # 只劫持挖掘点击(move/flag 语义不冲突——选中期玩家仍可移动/插旗) var aux_sel: int = _aux.active_selection() if aux_sel != 0 and kind == "dig": diff --git a/game/presentation/views/board_cell_unit.gd b/game/presentation/views/board_cell_unit.gd index d98f3995..c3f9033a 100644 --- a/game/presentation/views/board_cell_unit.gd +++ b/game/presentation/views/board_cell_unit.gd @@ -95,7 +95,7 @@ var facade_strip := false: # E 格开关(BoardView paint 按「已开 # 变异角标(迭代 6 T6——程序化,tex_mutation 纹带槽留给变异纹带六型自产批): # "flat_damage" = 未开格伤害型变异,左下角危险红三角(开格有代价的策略纹理标记) -# 叠加层标记(迭代 7 T4——魔法道具板级叠加层的格面呈现;派生信息层零回写): +# 叠加层标记(迭代 7 T4——秘宝板级叠加层的格面呈现;派生信息层零回写): # "mine_reveal" = 真视格(危险红内缩框——「这格是雷」的确定决策标记,插旗照常计费); # "reward_preview" 格不复用本字段——预读徽章走 badge_glyph 注入(board_view refresh 注入 REWARD_BADGE 字形) var aux_mark := "": @@ -212,7 +212,7 @@ func _draw() -> void: draw_texture_rect(tex_mutation, rect, false) # ②' 变异角标(迭代 6 T6):左下角危险红三角(危险红=「开此格有代价」语义位,与雷族同源; # 尺寸随格边比例——灰色可辨辅助=红对砖面明度差,禁喧宾) - # ②" 魔法道具叠加层(迭代 7 T4):真视格=危险红内缩框(策略纹理——确定决策输入不喧宾) + # ②" 秘宝叠加层(迭代 7 T4):真视格=危险红内缩框(策略纹理——确定决策输入不喧宾) if aux_mark == "mine_reveal": var inset := edge * 0.14 draw_rect(Rect2(inset, inset, edge - inset * 2.0, edge - inset * 2.0), diff --git a/game/presentation/views/board_view.gd b/game/presentation/views/board_view.gd index c0fc3a84..e328cceb 100644 --- a/game/presentation/views/board_view.gd +++ b/game/presentation/views/board_view.gd @@ -98,8 +98,8 @@ var _minesweeper = null # 排雷玩法 只读查询引用(refresh var _identity_cb := Callable() # 地图战斗资源 身份解析回调(组合根注入只读面)——Vector2i → Dictionary/null var _mask_cb := Callable() # 地形变异 数字遮蔽回调(组合根注入只读面)——Vector2i → bool(true = 该格数字不显示) var _vmark_cb := Callable() # 地形变异 角标回调(迭代 6 T6 只读面)——Vector2i → String("flat_damage"=伤害型变异未开格;""=无) -var _aux_reveal := {} # 魔法道具 真视集(迭代 7 T4——Vector2i → true;组合根 set_aux_overlays 注入投影) -var _aux_preview := {} # 魔法道具 预读集(同上——未开格徽章呈现挂点) +var _aux_reveal := {} # 秘宝 真视集(迭代 7 T4——Vector2i → true;组合根 set_aux_overlays 注入投影) +var _aux_preview := {} # 秘宝 预读集(同上——未开格徽章呈现挂点) var _diggable := {} # 可挖域(8 向相邻未开格)——呼吸微光作用集 var _breath_t := 0.0 var _contact_unit: Node2D = null # 接触带承载单元(=英雄格 CellUnit;rebuild 随清场复位) @@ -213,7 +213,7 @@ func set_variant_mask_resolver(cb: Callable) -> void: func set_variant_mark_resolver(cb: Callable) -> void: _vmark_cb = cb -# 魔法道具叠加层投影注入(迭代 7 T4——组合根在 use 成功/三清后调;refresh 消费) +# 秘宝叠加层投影注入(迭代 7 T4——组合根在 use 成功/三清后调;refresh 消费) func set_aux_overlays(reveal_cells: Array, preview_cells: Array) -> void: _aux_reveal.clear() _aux_preview.clear() @@ -788,7 +788,7 @@ func _paint_cell(c: Vector2i, hero: Vector2i) -> void: if south_in and not _minesweeper.is_revealed(south_n) and _tiles_ok: u.facade_strip = true u.tex_facade = _tiles.get("wall_center") - # ②( 魔法道具叠加层(迭代 7 T4):真视格=红内缩框;预读格=奖励身份徽章(identity_resolver 既有 + # ②( 秘宝叠加层(迭代 7 T4):真视格=红内缩框;预读格=奖励身份徽章(identity_resolver 既有 # 只读面取字形——零数据复制,badge 位复用);已开格标记自然退位(refresh 逐拍重算) if not revealed: u.aux_mark = "mine_reveal" if _aux_reveal.has(c) else "" diff --git a/game/presentation/views/hero_info_panel_view.gd b/game/presentation/views/hero_info_panel_view.gd index 3add280e..dbce2432 100644 --- a/game/presentation/views/hero_info_panel_view.gd +++ b/game/presentation/views/hero_info_panel_view.gd @@ -1,6 +1,6 @@ # VERTICAL SLICE - NOT FOR PRODUCTION # 实现 GDD:design/ux/battle.md(C 区角色信息 240×548——2026-09-26 信息归属拍板精简: -# 攻击(+修正来源角标)/护甲 AC 数据框 + 魔法道具槽(预留)+ 特性列表(预留)。 +# 攻击(+修正来源角标)/护甲 AC 数据框 + 秘宝槽(预留)+ 特性列表(预留)。 # HP 条/立绘占位/状态效果槽/RAP 池/GP/钥石退役——HP 与状态唯一展示面 = B 区站桩(同一数据 # hud_presenter 双投喂 B/C 两区的重复展示);RAP 迁 D 区 AP 条(贴弃图刷新消费口); # GP(中循环)/钥石(大循环)迁出战斗屏)。 @@ -15,7 +15,7 @@ const COL_INK := UiKit.INK var _atk_label: Label var _armor_label: Label signal aux_slot_clicked(handle: int) # 迭代 7 T4——槽点击(组合根消费:AP 类即用/空间类进选中态) -var item_slots: HBoxContainer # 魔法道具槽(迭代 7 T4 接线——库存条常读+两步交互第一步) +var item_slots: HBoxContainer # 秘宝槽(迭代 7 T4 接线——库存条常读+两步交互第一步) var _slot_panels: Array = [] # 槽 PanelContainer 引用(选中高亮/置灰重刷) var _selected_handle := 0 # 选中态(0=无;组合根回写维持单源) var _slot_handles: Array = [] # 槽位→handle 映射(set_aux_inventory 刷新) @@ -51,9 +51,9 @@ func _init() -> void: _armor_label = _data_line() data_col.add_child(_armor_label) - # 魔法道具槽(预留):随身战斗用道具的唯一展示面——空槽占位承诺格子在此, - # 不预设交互(挖掘期指向交互归 E 区既有裁决);终稿样式/槽位数归魔法道具批 - col.add_child(UiKit.label("魔法道具", 16, true)) + # 秘宝槽(预留):随身战斗用道具的唯一展示面——空槽占位承诺格子在此, + # 不预设交互(挖掘期指向交互归 E 区既有裁决);终稿样式/槽位数归秘宝批 + col.add_child(UiKit.label("秘宝", 16, true)) item_slots = HBoxContainer.new() item_slots.add_theme_constant_override("separation", 10) col.add_child(item_slots) @@ -162,7 +162,7 @@ func _data_line() -> Label: l.text_overrun_behavior = TextServer.OVERRUN_TRIM_ELLIPSIS return l -# ---- 魔法道具库存条(迭代 7 T4——C 区四槽常读+两步交互第一步)---- +# ---- 秘宝库存条(迭代 7 T4——C 区四槽常读+两步交互第一步)---- # 投影行 = {handle, glyph, name, used, usable}(组合根组装:字形=道具名首字;数据源 runner 级库存只读面)。 # 空槽=虚位;used=暗态「已用」保留占位(Used 不可逆——受理序展示语义);不可用=置灰(板级零信息); # selected=金框高亮(两步交互第一步的可见态)。tooltip=全名+维度语义。 @@ -175,7 +175,7 @@ func set_aux_inventory(items: Array, selected_handle: int) -> void: c.queue_free() if i >= items.size(): _slot_handles.append(0) - slot.tooltip_text = "魔法道具槽(空)" + slot.tooltip_text = "秘宝槽(空)" slot.add_theme_stylebox_override("panel", UiKit.panel_flat(UiKit.PANEL_DATA, UiKit.PANEL_BORDER, 0, 1, Vector4(4, 4, 4, 4))) continue diff --git a/game/presentation/views/ui_kit.gd b/game/presentation/views/ui_kit.gd index 9ddf47ac..3dff1792 100644 --- a/game/presentation/views/ui_kit.gd +++ b/game/presentation/views/ui_kit.gd @@ -161,7 +161,7 @@ const TEX_ICON_HEART := "res://assets/art/ui/icon_heart.png" # const TEX_ICON_SHOVEL := "res://assets/art/ui/icon_shovel.png" # 图标·铲(挖掘系商品/锻造) const TEX_ICON_MEDKIT := "res://assets/art/ui/icon_medkit.png" # 图标·医疗包 const TEX_ICON_POUCH := "res://assets/art/ui/icon_pouch.png" # 图标·弹药袋/行动点 -const TEX_ICON_BLAST := "res://assets/art/ui/icon_blast.png" # 图标·工兵爆破(魔法道具) +const TEX_ICON_BLAST := "res://assets/art/ui/icon_blast.png" # 图标·工兵爆破(秘宝) const TEX_ICON_COINBAG := "res://assets/art/ui/icon_coinbag.png" # 图标·金币袋 const TEX_ICON_KEYSHARD := "res://assets/art/ui/icon_keyshard.png" # 图标·钥石残片 const TEX_ICON_REFRESH := "res://assets/art/ui/icon_refresh.png" # 图标·刷新(货架/候选) diff --git a/game/smoke/ui_probe.gd b/game/smoke/ui_probe.gd index 95b54e49..f09dab87 100644 --- a/game/smoke/ui_probe.gd +++ b/game/smoke/ui_probe.gd @@ -104,7 +104,7 @@ func _ready() -> void: if main.board_zone.toast == null: problems.append("D 区 toast 槽缺失") if main.info_panel.item_slots == null or main.info_panel.item_slots.get_child_count() != 4: - problems.append("C 区魔法道具槽(预留)缺失") + problems.append("C 区秘宝槽(预留)缺失") if main.stage.hero_standee.slot_row == null: problems.append("B 区站桩状态行缺失(状态效果唯一展示面——2026-09-26 C 区精简批)") # B 区明细带挖掘期收起断言(T17 视觉扩展批适配):结算演播期 settling 视觉延伸=mode=settle diff --git a/game/tests/run_all.gd b/game/tests/run_all.gd index 8462019b..b9a9a3b3 100644 --- a/game/tests/run_all.gd +++ b/game/tests/run_all.gd @@ -32,7 +32,7 @@ func _suites() -> Array: {"path": "res://tests/unit/data_config/aux_target_violation_test.gd", "expect": 1}, # 迭代 7 T1——真视窄域护栏 {"path": "res://tests/unit/data_config/reward_dangling_aux_test.gd", "expect": 1}, # 迭代 7 T1——aux 双表校验 {"path": "res://tests/unit/data_config/rng_service_test.gd", "expect": 0}, - {"path": "res://tests/unit/core/aux_items_test.gd", "expect": 0}, # 迭代 7 T7——魔法道具结构冻结断言面 + {"path": "res://tests/unit/core/aux_items_test.gd", "expect": 0}, # 迭代 7 T7——秘宝结构冻结断言面 {"path": "res://tests/unit/core/breakpoint_resume_test.gd", "expect": 0}, # 迭代 8 卡①/T9——断点往返/续玩确定性/幂等/退出清断点 {"path": "res://tests/unit/presentation/pacing_queue_test.gd", "expect": 0}, # 迭代 8 卡⑦ AC⑤/T9——排空零分叉/零丢行/延迟双态 {"path": "res://tests/unit/presentation/reward_overlay_test.gd", "expect": 0}, # 迭代 7 hotfix——奖励节点 UI 直验(盲区补漏) diff --git a/game/tests/unit/core/aux_items_test.gd b/game/tests/unit/core/aux_items_test.gd index f78c1626..ade5287f 100644 --- a/game/tests/unit/core/aux_items_test.gd +++ b/game/tests/unit/core/aux_items_test.gd @@ -1,5 +1,5 @@ # VERTICAL SLICE - NOT FOR PRODUCTION -# 魔法道具 AuxItems 类单测(迭代 7 T7——结构冻结断言面;设计权威 魔法道具.md + registry aux_items)。 +# 秘宝 AuxItems 类单测(迭代 7 T7——结构冻结断言面;设计权威 秘宝.md + registry aux_items)。 # 覆盖:授予归因 / Used 不可逆 / 真视恒可用 / 预读点击级零信息拒绝 / 3×3 边缘窗口∩板 / # 叠加层三清(retire_overlays 不动库存)/ 关卡末 reset / 零随机(同操作序列重放两遍投影逐位)。 # 运行:godot --headless --path game --script res://tests/unit/core/aux_items_test.gd(expect 0) diff --git a/game/tests/unit/data_config/aux_target_violation_test.gd b/game/tests/unit/data_config/aux_target_violation_test.gd index 4f4fa08d..3eed1f66 100644 --- a/game/tests/unit/data_config/aux_target_violation_test.gd +++ b/game/tests/unit/data_config/aux_target_violation_test.gd @@ -1,5 +1,5 @@ # 致命类用例(独立进程,期望退出码 1) -# aux_target_violation——真视窄域护栏(魔法道具 GDD 结构冻结,迭代 7 T1):mine_reveal 行 target +# aux_target_violation——真视窄域护栏(秘宝 GDD 结构冻结,迭代 7 T1):mine_reveal 行 target # 越域至 board_wide 时,AuxItemTable.validate 必须报 load_bearing 错、load_tables 整体拒绝。 # 运行:godot --headless --path game --script res://tests/unit/data_config/aux_target_violation_test.gd # 退出码协议:1 = 校验正确拒绝(预期);2 = 违规表被放行(回归信号)。