iter8-三轮修改批(用户二轮目检反馈):#1 弹窗 z 序修复=ConfirmDialog.open 自提宿主子级最末(根因:弹窗构建序早于开始覆盖层而开始层组合根尾部才 add=绘制最上,弹窗被整层盖住——用户实机实证「看不见弹窗/离开菜单才显形」,探针 pressed.emit 合成路径不暴露树序遮挡故全绿漏网);#3 结算逐条演出重做=SettlementFxView 新增 play_damage_number(站桩头顶数字浮现上飘渐隐+描边+crit 加大)与 play_status_pulse(Buff/Debuff 色环扩散),_consume_row 挂 _play_settlement_mark 逐条标出(effect 色环→damage 数字打谁标谁→heal 绿字,目标解析失败兜棋盘中心),段内节奏 0.06→0.22s 逐条可感知;fx_probe ④c 逐条标出断言——闸:冒烟 596/0+run_all 15 套+六探针全绿
This commit is contained in:
1 parent
b46089f88d
commit
70341bd40f
4 files changed
+86
-3
No files matched your search
@@ -94,7 +94,7 @@ var _row_queue: Array = [] # 待排播行(step_row 载荷原样入队
|
||||
var _row_pace_wait := 0.0 # 距下一行排播的剩余秒(_process 消耗)
|
||||
var _pace_prev_segment := "" # 上一排播行的段型(段间/段内延迟判据)
|
||||
const PACE_SEGMENT_GAP := 0.3 # 段间阶梯延迟(代拍板:白名单 0.2–0.4s 内取值,追认清单呈报)
|
||||
const PACE_ROW_GAP := 0.06 # 段内快排间隔(同行段连读性——非白名单约束面)
|
||||
const PACE_ROW_GAP := 0.22 # 段内间隔(三轮 #3 上调 0.06→0.22——逐条演出可感知,配合数字浮现/状态脉冲)
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
@@ -638,6 +638,7 @@ func _consume_row(row: Dictionary) -> void:
|
||||
log_view.append_row(row)
|
||||
stage.on_step_row_fx(row)
|
||||
_play_cross_zone_fx(row) # 跨区因果演出(结算演出链批):开格之因 → 站桩之果
|
||||
_play_settlement_mark(row) # 三轮 #3——逐条标出:Buff/Debuff 色环脉冲 → 伤害/治疗数字浮现
|
||||
# 高光演出(战斗结算×3①② 占位):完美排雷横幅 / 标中旗加重弹道
|
||||
if String(row.get("type", "")) == "highlight":
|
||||
board_zone.fx.play_perfect_sweep()
|
||||
@@ -646,6 +647,30 @@ func _consume_row(row: Dictionary) -> void:
|
||||
_refresh_presentations()
|
||||
|
||||
|
||||
# 逐条结算标出(三轮 #3——用户裁决按结算顺序演出:先 Buff/Debuff 特效、再基础伤害数字;
|
||||
# 打中谁标谁、主角被打标主角;道具/奖励行逐条冒出)。目标解析失败兜底棋盘中心。
|
||||
func _play_settlement_mark(row: Dictionary) -> void:
|
||||
var mark_type := String(row.get("type", ""))
|
||||
if mark_type != "effect" and mark_type != "damage" and mark_type != "heal":
|
||||
return
|
||||
var target := String(row.get("target", ""))
|
||||
var center: Vector2
|
||||
if target == "hero":
|
||||
center = stage.hero_standee_center()
|
||||
else:
|
||||
var v = stage.enemy_standee_center(target) if target != "" and target != "all_enemies" else null
|
||||
center = v if v != null else board_view.get_global_rect().get_center()
|
||||
match mark_type:
|
||||
"effect":
|
||||
var col: Color = Color("7cc47c") if int(row.get("value", 0)) > 0 else Color("c47c7c")
|
||||
settlement_fx.play_status_pulse(center, col)
|
||||
"damage":
|
||||
settlement_fx.play_damage_number(center, "-%d" % int(row.get("value", 0)),
|
||||
Color("d9402a"), bool(row.get("crit", false)))
|
||||
"heal":
|
||||
settlement_fx.play_damage_number(center, "+%d" % int(row.get("value", 0)), Color("7cc47c"), false)
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
# 排播泵(卡⑦——演出层帧驱动;队列空=零开销直返)
|
||||
if _row_queue.is_empty():
|
||||
|
||||
Reference in new issue
Block a user