fix(presentation): 奇物呈现修复批——C 区/关卡页聚合行退役改逐件行「件名 ×N」+卡面摘族名(僵尸呈现整改,呈现改法=甲)+07/报告§五.5/battle.md/README/06 条收口移除+反哺点⑤销账+475 号状态记录
This commit is contained in:
1 parent
c8bc193c77
commit
4688d09627
10 files changed
+31
-45
No files matched your search
@@ -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 行后追加)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 # 截断全量兜底(限宽单行省略——悬停看全文)
|
||||
|
||||
Reference in new issue
Block a user