奇物批T2:运行层bonus_*→curio_*全族换词(_curio_pending/deck/taken/result/candidates+pick_curio/apply_node_curio/curio_choice_presented/curio_resolved等+两文件改名curio_interact_controller/curio_pick_overlay含.uid+CurioPickOverlay/CurioInteractController类名);T2裁点甲案自裁=五存档键引号字面量禁改(全仓对拍六形态全等);_bonus_treasure_carry按T0澄清剔除(秘宝语义);非奇物bonus语义保全(加算区bonus/price_level_bonus/attack_bonus/bp_bonus等);reward_overlay_test红转绿适配(M7 bcard换PanelContainer致c is Button恒0——改数_choice_box子节点数断言语义不变,run_all 16套全绿历史首次)

This commit is contained in:
DKChan committed 2026-10-05 18:44:51 +08:00
1 parent d4cde73976
commit 8e2694de49
17 files changed
+298 -299

No files matched your search

@@ -4,7 +4,7 @@
# 同调位替换子交互。高内聚边界:文案拼装归 Narrator(组合根喂入),选择意图经信号外发;
# 视图零核心引用。交互范式 = node_overlay choice_box 按钮族 + 选路两段式(点选→确认)复用,零新原语。
# 状态机:pick(三卡点选→确认)→ [replace(满位 N+1 选 N)] → result(兑付反馈→继续)。
class_name BonusPickOverlay
class_name CurioPickOverlay
extends Control
signal pick_confirmed(item_id: String)
@@ -162,7 +162,7 @@ func selected_id() -> String:
return _selected
# 兑付反馈态(bonus_resolved 到达——结果行追加在头部之后;唯一出口 = 继续)
# 兑付反馈态(curio_resolved 到达——结果行追加在头部之后;唯一出口 = 继续)
func show_result(text: String) -> void:
_label.text = _header + "\n" + text
_choice_box.visible = false
+14 -14
View File
@@ -19,8 +19,8 @@ var item_slots: HBoxContainer # 秘宝槽(迭代 7 T4 接线—
var _slot_panels: Array = [] # 槽 PanelContainer 引用(选中高亮/置灰重刷)
var _selected_handle := 0 # 选中态(0=无;组合根回写维持单源)
var _slot_handles: Array = [] # 槽位→handle 映射(set_treasure_inventory 刷新)
var _bonus_section: VBoxContainer # 特性(预留——空态隐藏,接线归大奖励/锻造呈现批)
var _bonus_list: VBoxContainer
var _curio_section: VBoxContainer # 特性(预留——空态隐藏,接线归大奖励/锻造呈现批)
var _curio_list: VBoxContainer
var _relic_section: VBoxContainer # 特性持有段(迭代 12 呈现补齐——空态隐藏)
var _relic_list: VBoxContainer
var _board_variant_section: VBoxContainer # 地形变异常驻角标(全局作用域变异首发批——空态隐藏)
@@ -93,14 +93,14 @@ func _init() -> void:
_board_variant_section.add_child(_board_variant_list)
# 特性(预留):锻造/大奖励/关卡奖励节点的属性提升——中循环数据因改变战斗数学准入;
# 与战斗内状态效果(B 区站桩,随战斗消散)分区,防「战斗结束被清」误读;空态整节隐藏
_bonus_section = VBoxContainer.new()
_bonus_section.add_theme_constant_override("separation", 4)
_bonus_section.visible = false
col.add_child(_bonus_section)
_bonus_section.add_child(UiKit.label("特性", 16, true))
_bonus_list = VBoxContainer.new()
_bonus_list.add_theme_constant_override("separation", 2)
_bonus_section.add_child(_bonus_list)
_curio_section = VBoxContainer.new()
_curio_section.add_theme_constant_override("separation", 4)
_curio_section.visible = false
col.add_child(_curio_section)
_curio_section.add_child(UiKit.label("特性", 16, true))
_curio_list = VBoxContainer.new()
_curio_list.add_theme_constant_override("separation", 2)
_curio_section.add_child(_curio_list)
func set_attack(atk: int, mod_text: String) -> void:
@@ -137,13 +137,13 @@ func set_board_variants(lines: Array) -> void:
# 特性列表(预留接线面):lines = 文案行数组(如「锻造 +2 攻击」)——空数组 = 整节隐藏
func set_level_bonuses(lines: Array) -> void:
for c in _bonus_list.get_children():
_bonus_list.remove_child(c)
for c in _curio_list.get_children():
_curio_list.remove_child(c)
c.queue_free()
for line in lines:
var l := UiKit.label(String(line), 16, false, COL_INK) # 字号下限(v3.5 批 B3——正文 ≥16)
_bonus_list.add_child(l)
_bonus_section.visible = not lines.is_empty()
_curio_list.add_child(l)
_curio_section.visible = not lines.is_empty()
func attack_text() -> String: