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
@@ -52,6 +52,12 @@ func open(text: String, confirm_label: String, cancel_label: String = "取消")
|
||||
_text.text = text
|
||||
_confirm_btn.text = confirm_label
|
||||
_cancel_btn.text = cancel_label
|
||||
# z 序自提(三轮修改批 #1——用户实机实证:本弹窗构建序早于开始覆盖层,而开始层是组合根
|
||||
# 尾部才 add_child 的(树序最末=绘制最上),弹窗被整层盖住——「看不见弹窗/离开菜单才显形」。
|
||||
# 每次打开强制提到宿主子级最末,绘制序恒最上。)
|
||||
var host := get_parent()
|
||||
if host != null:
|
||||
host.move_child(self, host.get_child_count() - 1)
|
||||
visible = true
|
||||
|
||||
|
||||
|
||||
@@ -71,7 +71,9 @@ func play_projectile(from: Vector2, to: Vector2, glyph: String, col: Color, crit
|
||||
# 减动效=静态呈现(驻留后即隐,零位移/零透明度动画——行呈现不跳过同语义,卡⑦ AC③)。
|
||||
const BANNER_DWELL := 0.6
|
||||
|
||||
var _fx_banners := 0 # 演出探针计数(fx_probe 断言面)
|
||||
var _fx_banners := 0 # 演出探针计数(fx_probe 断言面)
|
||||
var _fx_damage_marks := 0 # 三轮 #3——伤害/治疗数字浮现计数
|
||||
var _fx_status_pulses := 0 # 三轮 #3——增益/减益状态脉冲计数
|
||||
|
||||
|
||||
# 演出探针出口(卡⑦——轮横幅发射计数)
|
||||
@@ -79,6 +81,48 @@ func probe_banners() -> int:
|
||||
return _fx_banners
|
||||
|
||||
|
||||
# 演出探针出口(三轮 #3——逐条结算演出计数)
|
||||
func probe_settlement_marks() -> int:
|
||||
return _fx_damage_marks + _fx_status_pulses
|
||||
|
||||
|
||||
# 伤害/治疗数字浮现(三轮 #3——用户裁决「打中谁就标出多少伤害/主角被打标出多少」):
|
||||
# 站桩头顶浮现数字,上飘 34px 渐隐 0.7s(减动效=时长折半同演不跳过);crit 加大加重。
|
||||
func play_damage_number(pos: Vector2, text: String, col: Color, crit: bool = false) -> void:
|
||||
_fx_damage_marks += 1
|
||||
var lab := UiKit.label(text, 26 if crit else 20, true)
|
||||
lab.add_theme_color_override("font_color", col)
|
||||
lab.add_theme_color_override("font_outline_color", Color(0.1, 0.08, 0.06, 0.9))
|
||||
lab.add_theme_constant_override("outline_size", 4)
|
||||
lab.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||
lab.z_index = 6
|
||||
add_child(lab)
|
||||
await get_tree().process_frame # 等一帧取实际尺寸(文本度量)
|
||||
lab.position = pos - lab.size * 0.5
|
||||
var tw := lab.create_tween()
|
||||
tw.tween_property(lab, "position:y", lab.position.y - 34.0, UiKit.motion(0.7)).set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT)
|
||||
tw.parallel().tween_property(lab, "modulate:a", 0.0, UiKit.motion(0.35)).set_delay(UiKit.motion(0.35))
|
||||
tw.tween_callback(lab.queue_free)
|
||||
|
||||
|
||||
# 增益/减益状态脉冲(三轮 #3——用户裁决「先上 Buff/Debuff 特效,再显基础伤害」):
|
||||
# 目标站桩处色环扩散淡出 0.5s(增益绿/减益红由调用方传色)。
|
||||
func play_status_pulse(pos: Vector2, col: Color) -> void:
|
||||
_fx_status_pulses += 1
|
||||
var ring := Panel.new()
|
||||
ring.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||
var sb := UiKit.panel_flat(Color(col, 0.0), col, 100, 3)
|
||||
ring.add_theme_stylebox_override("panel", sb)
|
||||
ring.size = Vector2(22, 22)
|
||||
ring.position = pos - ring.size * 0.5
|
||||
ring.z_index = 5
|
||||
add_child(ring)
|
||||
var tw := ring.create_tween()
|
||||
tw.tween_property(ring, "scale", Vector2(2.4, 2.4), UiKit.motion(0.5)).set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT)
|
||||
tw.parallel().tween_property(ring, "modulate:a", 0.0, UiKit.motion(0.5))
|
||||
tw.tween_callback(ring.queue_free)
|
||||
|
||||
|
||||
func play_round_banner(ri: int) -> void:
|
||||
_fx_banners += 1
|
||||
var banner := Panel.new()
|
||||
|
||||
Reference in new issue
Block a user