Implement 40250 classic client port

This commit is contained in:
shenlei
2026-09-01 18:49:28 +09:00
parent 2277b1dd60
commit 8f61990a83
481 changed files with 169826 additions and 293 deletions
+6
View File
@@ -67,6 +67,8 @@ func _run() -> void:
_ck(pu._cells.size() == 40, "ItemSlot = 40-slot grid (5x8, shop.SHOP_SLOT_COUNT)")
_ck(is_instance_valid(pu._sign), "NameLine overlaid with a LineEdit")
_ck(pu._inv_list.get_child_count() == 2, "2 inventory candidates")
_ck((pu._inv_list.get_child(0) as Button).has_method("_get_drag_data"),
"inventory candidate supports drag data")
# 未上货 → 개설 무동작
pu._ok()
@@ -81,6 +83,10 @@ func _run() -> void:
_ck(pu._stock.has(3) and int(pu._stock[3]["price"]) == 250000, "stock[3] placed")
_ck(pu._picked == null, "pick cleared after place")
_ck(pu._inv_list.get_child_count() == 1, "placed item leaves candidate list")
# 标准 Godot 拖放入口与点击选取共用同一个落位逻辑。
pu._drop_slot(Vector2.ZERO, {"private_shop_entry": {"cell": 5, "vnum": 27993, "count": 3}}, 6)
_ck(is_instance_valid(pu._price_dialog), "dragging candidate onto empty slot opens price dialog")
pu._place(6, 100)
# 拿起第 2 件(cell 5)→ 落到格 0(更小格号 → 排前)
(pu._inv_list.get_child(0) as Button).pressed.emit()