feat(t2): 敌种立绘落位——八张真图服役+字形回退退役为纯缺位兜底+站桩纹理非空断言

①八张 character_enemy_<键>.png 服役(T1 产物原位=ui_kit 常量名,worktree 本地不入 git);朝向核证=八敌像素源朝左/正面,flip=false 呈现朝主角——battle_stage_view 旧注记「基准朝右」措辞失真随手修
②standee_body._portrait_glyph 三档体量字形(▂/▆/█)退役,保留 人/✕/敌 纯缺位兜底(C7 回退链保持);相对体量语义由 48px 档统一比例承载;新增 portrait_probe() 探针出口
③ui_probe 扩两断言(只增):敌站桩+主角站桩 portrait_probe().has_tex 全真
轻闸=冒烟 576/0+三探针 PASS(新 png --editor --quit 刷导入缓存后过)
This commit is contained in:
DKChan committed 2026-09-29 04:02:59 +08:00
1 parent 4271216b73
commit ac43e1333d
3 files changed
+15 -10

No files matched your search

+2 -1
View File
@@ -248,7 +248,8 @@ func set_enemies(cards_data: Array) -> void:
world.add_child(body)
body.slot_row = _make_slot_companion(enemy_box)
body.set_data(d)
# 敌种立绘接线(仅重建拍装载一次;flip=false——敌像素材基准朝右,翻转义务归素材批)
# 敌种立绘接线(仅重建拍装载一次;flip=false——八敌像素源核证朝左/正面(迭代 6 T1),
# 呈现即朝主角无误;反向朝向源换代时翻转义务归素材批)
body.set_portrait_texture(_enemy_portrait_tex(String(d.get("enemy_id", ""))), false)
_cards.append(body)
_sync_layout.call_deferred()
+8 -9
View File
@@ -311,19 +311,18 @@ func _refresh_portrait_glyph() -> void:
func _portrait_glyph() -> String:
# 字形回退已退役为纯缺位兜底(迭代 6 T2——八敌真图落位;旧三档体量字形 ▂/▆/█ 随退役,
# 相对体量语义由 48px 档统一比例承载)。缺位态:主角「人」/死亡「✕」/其余「敌」。
if _kind == "hero":
return "人"
if _dead:
return "✕"
match _enemy_id:
"goblin":
return "▂" # 小体量墩形
"bugbear":
return "▆" # 垂直延伸体量
"ogre_chief":
return "█" # 最大体量
_:
return "敌"
return "敌"
# 立绘落位探针出口(迭代 6 T2——站桩纹理非空断言面;缺位回退链保持的对照面)
func portrait_probe() -> Dictionary:
return {"has_tex": _portrait_sprite != null and _portrait_sprite.texture != null}
func _portrait_color() -> Color:
+5
View File
@@ -133,8 +133,13 @@ func _ready() -> void:
standee.set_pending("basic", "")
if bool(standee.intent_probe().visible):
problems.append("普攻应零表示(意图指示应隐藏)")
# 站桩纹理非空断言(迭代 6 T2——八敌真图落位;缺位回退链保持的对照面)
if not bool(standee.portrait_probe().get("has_tex", false)):
problems.append("敌立绘纹理未落位(素材管线 48px 档——迭代 6 T2;缺位回退链不应在此态触发)")
if main.stage.hero_standee == null or not main.stage.hero_standee.has_world_hp_bar:
problems.append("B 区主角站桩缺失(世界血条面缺失)")
elif not bool(main.stage.hero_standee.portrait_probe().get("has_tex", false)):
problems.append("主角立绘纹理未落位(48px 档——迭代 6 T2/T3)")
# ---- BUG-0001 回归(tooltip 入树后 set_effects 槽位不错位——结算软锁修复沉淀)----
var slots_row = main.stage.hero_standee.slot_row # BUG-0001 回归随组件迁入站桩(tooltip/槽位错位同源)
var probe_eff: Array = [{"effect_id": "attack_up", "display_name": "增伤", "layers": 1,