fix: 装备属性面板避让逻辑 + 多项功能更新
- item_tooltip_view.gd: 新增 avoid_rect 属性,tooltip 与装备窗口重叠时自动推到左侧 - inventory_ui.gd: 悬停装备时传入窗口矩形作为避让区域 - 包含其他累积的功能开发和测试文件
This commit is contained in:
@@ -24,6 +24,7 @@ var queue: Array = [] # 剩余的 PushOnceMotion 步
|
||||
var resume := "wait" # 链尾 PushLoopMotion 的循环动作
|
||||
var active := false # 受击动作链正在播
|
||||
var real_dead := false # m_isRealDead:晕眩击倒后不起身
|
||||
var current_step := "" # 当前 InterceptOnce/PushOnce 动作
|
||||
var _shaking := false
|
||||
var _shake_base := Vector3.ZERO
|
||||
|
||||
@@ -88,21 +89,26 @@ func start(chains: Array, current: String, bind: Callable, dead_after := false)
|
||||
queue = chain.slice(1)
|
||||
active = true
|
||||
real_dead = dead_after
|
||||
current_step = String(chain[0])
|
||||
return true
|
||||
return false
|
||||
|
||||
# 一段受击动作播完:绑下一步(缺资源的步跳过);返回 false = 链结束。
|
||||
func advance(bind: Callable) -> bool:
|
||||
while not queue.is_empty():
|
||||
if bool(bind.call(String(queue.pop_front()))):
|
||||
var step := String(queue.pop_front())
|
||||
if bool(bind.call(step)):
|
||||
current_step = step
|
||||
return true
|
||||
active = false
|
||||
current_step = ""
|
||||
return false
|
||||
|
||||
func cancel() -> void:
|
||||
active = false
|
||||
queue.clear()
|
||||
real_dead = false
|
||||
current_step = ""
|
||||
|
||||
func tick(dt: float, anim: Object, model: Node3D) -> void:
|
||||
if delay_left > 0.0:
|
||||
|
||||
Reference in New Issue
Block a user