fix(presentation): 奇物呈现修复批——C 区/关卡页聚合行退役改逐件行「件名 ×N」+卡面摘族名(僵尸呈现整改,呈现改法=甲)+07/报告§五.5/battle.md/README/06 条收口移除+反哺点⑤销账+475 号状态记录

This commit is contained in:
DKChan committed 2026-10-12 08:04:16 +08:00
1 parent c8bc193c77
commit 4688d09627
10 files changed
+31 -45

No files matched your search

+7 -9
View File
@@ -129,25 +129,23 @@ static func bonus_card_text(id: String, tier: String, value: int, treasure_line:
static func bonus_result_text(result: Dictionary) -> String:
var name := ""
if String(result.get("picked", "")) == "relic" and String(result.get("feat_id", "")) != "":
name = feat_card_text({"feat_id": String(result.get("feat_id", "")), "display_name": String(result.get("feat_name", "")), "archetype": String(result.get("feat_archetype", ""))}).replace("\n", " · ")
name = feat_card_text({"feat_id": String(result.get("feat_id", "")), "display_name": String(result.get("feat_name", ""))}).replace("\n", " · ")
else:
name = bonus_card_text(String(result.get("picked", "")), String(result.get("tier", "")), int(result.get("value", 0))).replace("\n", " · ")
return "已选择:%s\n其余选项已丢弃(不可反悔)" % name
# 特性卡片文案(迭代 12 T1;2026-10-04 呈现补强——第三行=效果摘要,用户反馈「不知道件是
# 干嘛的」缺口承载。内容数据驱动扩展批 T3 文案表值化:摘要=数据行 desc 字段,零硬编码映射——
# 新件写行即有名有姓,措辞与旧 summaries 表逐字一致)
# 特性卡片文案(迭代 12 T1;2026-10-04 呈现补强——第二行=效果摘要,用户反馈「不知道件是
# 干嘛的」缺口承载。内容数据驱动扩展批 T3 文案表值化:摘要=数据行 desc 字段,零硬编码映射。
# 2026-10-12 奇物呈现整改批:「件名 · 流派」族名字样摘除(内部分类禁上玩家可见面——新 29 行
# 无 archetype,原 fallback 实显兜底词「流派」=僵尸文案),卡片=件名+效果摘要两行)
static func feat_card_text(row: Dictionary) -> String:
if row.is_empty() or String(row.get("feat_id", "")) == "":
return "特性\n???"
var arch_names := {"magic": "魔法", "pierce": "穿刺", "normal": "普攻", "dig": "开格",
"flag": "标旗", "charge": "蓄力", "devour": "吞噬"}
var arch := String(arch_names.get(String(row.get("archetype", "")), "流派"))
var summary := String(row.get("desc", ""))
if summary != "":
return "%s · %s\n%s" % [String(row.get("display_name", row.get("feat_id", ""))), arch, summary]
return "特性 · %s\n%s" % [arch, String(row.get("display_name", row.get("feat_id", "")))]
return "%s\n%s" % [String(row.get("display_name", row.get("feat_id", ""))), summary]
return String(row.get("display_name", row.get("feat_id", "")))
# Boss 胜利战斗总结结算行(settlement-summary v1.1——钥石增量行;组合根拼 GP 行后追加)
+8 -11
View File
@@ -35,7 +35,7 @@ static func refresh(stage: BattleStageView, info: HeroInfoPanelView, ap_bar: ApB
else:
info.set_level_bonuses([])
# 特性持有投影(迭代 12 呈现补齐 2026-10-04——用户反馈「局内奖励选了什么看不到」:
# 逐流派聚合行+成型档位;常驻可读+空态隐藏。档位求值=FeatsEngine 纯函数直调)
# 逐件行「件名 ×N」〔2026-10-12 整改换代,原逐流派聚合行退役〕;常驻可读+空态隐藏)
if runner != null and level_active:
info.set_feat_holdings(feat_holdings_lines(db, runner.feats_held()))
else:
@@ -93,23 +93,20 @@ static func _refresh_economy(ap_bar: ApBarView, s: Dictionary, db, refresh_remai
ap_bar.set_stop_enabled(bool(s.hero.get("alive", false)) and digging)
# 特性持有聚合文案(迭代 12 呈现补齐——战斗 C 区与关卡选择页两处共用;空持有=空数组)
# 特性持有文案(迭代 12 呈现补齐——战斗 C 区与关卡选择页两处共用;空持有=空数组。
# 2026-10-12 奇物呈现整改批:逐流派聚合行退役改逐件行「件名 ×N」——原聚合在新 29 行
# (无 archetype 字段)下空键兜底实显「流派 ×N · 档一」僵尸文案,且流派档位机制已退役)
static func feat_holdings_lines(db, held: Array) -> Array[String]:
var rlines: Array[String] = []
if db == null or db.feats == null or (db.feats.rows as Array).is_empty() or held.is_empty():
return rlines
var arch_names := {"magic": "魔法", "pierce": "穿刺", "normal": "普攻", "dig": "开格",
"flag": "标旗", "charge": "蓄力", "devour": "吞噬"}
var counts := {}
for rid in held:
var rrow: Dictionary = db.feat_row(String(rid))
var arch := String(rrow.get("archetype", ""))
counts[arch] = int(counts.get(arch, 0)) + 1
var tiers: Dictionary = FeatsEngine.tiers_for(held, db.feats)
for arch in counts.keys():
var tier := int(tiers.get(arch, 0))
var tier_text := "档二" if tier >= 2 else ("档一" if tier == 1 else "散件")
rlines.append("%s ×%d · %s" % [String(arch_names.get(String(arch), String(arch))), int(counts[arch]), tier_text])
var fname := String(rrow.get("display_name", String(rid)))
counts[fname] = int(counts.get(fname, 0)) + 1
for fname in counts.keys():
rlines.append("%s ×%d" % [String(fname), int(counts[fname])])
return rlines
@@ -70,8 +70,9 @@ func _init() -> void:
item_slots.add_child(slot)
_slot_panels.append(slot)
# 特性持有段(迭代 12 呈现补齐 2026-10-04——三选一特性兑付后常驻可读:逐流派聚合行+成型档位;
# 空态整节隐藏。用户试玩反馈「局内奖励选了什么看不到」缺口承载;2026-10-04 二次反馈上移——
# 特性持有段(迭代 12 呈现补齐 2026-10-04——三选一特性兑付后常驻可读:逐件行「件名 ×N」
# 〔2026-10-12 整改换代,原逐流派聚合行退役〕;空态整节隐藏。用户试玩反馈「局内奖励选了
# 什么看不到」缺口承载;2026-10-04 二次反馈上移——
# 构筑核心信息优先级高于临时强化,且防 C 区下部裁切不可见)
_feat_section = VBoxContainer.new()
_feat_section.add_theme_constant_override("separation", 4)
@@ -113,7 +114,7 @@ func set_armor(ac: int) -> void:
_armor_label.text = "护甲 AC %d" % ac
# 特性持有段(迭代 12 呈现补齐):lines = 聚合文案行(「魔法 ×2 · 档一」式)——空数组 = 整节隐藏
# 特性持有段(迭代 12 呈现补齐):lines = 逐件文案行(「疼痛记忆 ×2」式——2026-10-12 整改换代)——空数组 = 整节隐藏
func set_feat_holdings(lines: Array) -> void:
for c2 in _feat_list.get_children():
_feat_list.remove_child(c2)
+2 -2
View File
@@ -56,7 +56,7 @@ var _hp_bar: Control
var _attr_value: Label
var _bonus_row: HBoxContainer
var _bonus_value: Label
var _feat_value: Label # 特性持有行(迭代 12 呈现补齐——组合根投喂聚合文案)
var _feat_value: Label # 特性持有行(迭代 12 呈现补齐——组合根投喂逐件文案〔2026-10-12 换代〕)
var _cand_ids: Array[int] = [] # 本停点候选 id 集(图上命中合法集)
var _content_size := Vector2(620, 240) # 图内容包络(open_choices 按图拟合——画布 min 尺寸随它)
var _hover_id := -1 # 悬停预承诺候选(-1 = 无)
@@ -238,7 +238,7 @@ func _draw_hp_bar(bar: Control) -> void:
# 放弃入口可见性(组合根在冒险启动时开、默认关——语义对象 = 整局冒险)
# 特性持有投影(迭代 12 呈现补齐——组合根投喂聚合文案;空文案=行隐藏)
# 特性持有投影(迭代 12 呈现补齐——组合根投喂逐件文案〔2026-10-12 换代〕;空文案=行隐藏)
func set_feat_holdings(text: String) -> void:
_feat_value.text = text
_feat_value.tooltip_text = text # 截断全量兜底(限宽单行省略——悬停看全文)