fix: 装备属性面板避让逻辑 + 多项功能更新

- item_tooltip_view.gd: 新增 avoid_rect 属性,tooltip 与装备窗口重叠时自动推到左侧
- inventory_ui.gd: 悬停装备时传入窗口矩形作为避让区域
- 包含其他累积的功能开发和测试文件
This commit is contained in:
shen
2026-09-21 16:38:59 -07:00
parent 1522a8a1a1
commit c93894313a
5498 changed files with 4558004 additions and 1442 deletions
+7 -1
View File
@@ -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: