feat(designer): 共鸣配方元素 A/B 改下拉 + 匹配方式双语
This commit is contained in:
@@ -4,13 +4,14 @@ extends VBoxContainer
|
|||||||
|
|
||||||
const UI = preload("res://addons/game_designer/designer_ui.gd")
|
const UI = preload("res://addons/game_designer/designer_ui.gd")
|
||||||
const PATH = "res://data/resonance.json"
|
const PATH = "res://data/resonance.json"
|
||||||
const MATCH = ["adjacent", "anywhere_in_deck"]
|
const MATCH = ["adjacent", "anywhere_in_deck"] # 存储 key
|
||||||
|
const MATCH_LABELS = ["相邻 adjacent", "卡组内任意 anywhere_in_deck"]
|
||||||
|
|
||||||
var _data: Array = []
|
var _data: Array = []
|
||||||
var _cur: int = -1
|
var _cur: int = -1
|
||||||
var _id: LineEdit
|
var _id: LineEdit
|
||||||
var _p0: LineEdit
|
var _p0: OptionButton
|
||||||
var _p1: LineEdit
|
var _p1: OptionButton
|
||||||
var _match: OptionButton
|
var _match: OptionButton
|
||||||
var _result: LineEdit
|
var _result: LineEdit
|
||||||
var _consume: CheckBox
|
var _consume: CheckBox
|
||||||
@@ -29,9 +30,9 @@ func _ready() -> void:
|
|||||||
brow.add_child(UI.btn("🗑删除", _on_delete))
|
brow.add_child(UI.btn("🗑删除", _on_delete))
|
||||||
add_child(HSeparator.new())
|
add_child(HSeparator.new())
|
||||||
_id = _row("配方 ID", UI.line(""))
|
_id = _row("配方 ID", UI.line(""))
|
||||||
_p0 = _row("元素 A", UI.line("", "tag:water"))
|
_p0 = _row("元素 A", UI.opt(UI.ELEM_LABELS, 0))
|
||||||
_p1 = _row("元素 B", UI.line("", "tag:lightning"))
|
_p1 = _row("元素 B", UI.opt(UI.ELEM_LABELS, 0))
|
||||||
_match = _row("匹配方式", UI.opt(MATCH, 0))
|
_match = _row("匹配方式", UI.opt(MATCH_LABELS, 0))
|
||||||
_result = _row("产物法术 ID", UI.line("", "action_plasma_storm"))
|
_result = _row("产物法术 ID", UI.line("", "action_plasma_storm"))
|
||||||
_consume = CheckBox.new(); _consume.text = "消耗输入法术(合成后移除原法术)"
|
_consume = CheckBox.new(); _consume.text = "消耗输入法术(合成后移除原法术)"
|
||||||
add_child(_consume)
|
add_child(_consume)
|
||||||
@@ -61,8 +62,8 @@ func _on_select(idx: int) -> void:
|
|||||||
var d: Dictionary = _data[idx]
|
var d: Dictionary = _data[idx]
|
||||||
var p: Array = d.get("pattern", ["", ""])
|
var p: Array = d.get("pattern", ["", ""])
|
||||||
_id.text = String(d.get("id", ""))
|
_id.text = String(d.get("id", ""))
|
||||||
_p0.text = String(p[0]) if p.size() > 0 else ""
|
_p0.selected = max(0, UI.ELEM_TAGS.find(String(p[0])) if p.size() > 0 else 0)
|
||||||
_p1.text = String(p[1]) if p.size() > 1 else ""
|
_p1.selected = max(0, UI.ELEM_TAGS.find(String(p[1])) if p.size() > 1 else 0)
|
||||||
_match.selected = max(0, MATCH.find(String(d.get("match", "adjacent"))))
|
_match.selected = max(0, MATCH.find(String(d.get("match", "adjacent"))))
|
||||||
_result.text = String(d.get("result_spell_id", ""))
|
_result.text = String(d.get("result_spell_id", ""))
|
||||||
_consume.button_pressed = bool(d.get("consume_inputs", false))
|
_consume.button_pressed = bool(d.get("consume_inputs", false))
|
||||||
@@ -70,7 +71,7 @@ func _on_select(idx: int) -> void:
|
|||||||
func _on_apply() -> void:
|
func _on_apply() -> void:
|
||||||
var r := {
|
var r := {
|
||||||
"id": _id.text.strip_edges(),
|
"id": _id.text.strip_edges(),
|
||||||
"pattern": [_p0.text.strip_edges(), _p1.text.strip_edges()],
|
"pattern": [UI.ELEM_TAGS[_p0.selected], UI.ELEM_TAGS[_p1.selected]],
|
||||||
"match": MATCH[_match.selected],
|
"match": MATCH[_match.selected],
|
||||||
"result_spell_id": _result.text.strip_edges(),
|
"result_spell_id": _result.text.strip_edges(),
|
||||||
"consume_inputs": _consume.button_pressed,
|
"consume_inputs": _consume.button_pressed,
|
||||||
@@ -83,7 +84,7 @@ func _on_apply() -> void:
|
|||||||
UI.set_status(_status, "✓ 已应用(记得保存)")
|
UI.set_status(_status, "✓ 已应用(记得保存)")
|
||||||
|
|
||||||
func _on_new() -> void:
|
func _on_new() -> void:
|
||||||
_data.append({"id": "new_recipe", "pattern": ["tag:a", "tag:b"],
|
_data.append({"id": "new_recipe", "pattern": ["tag:water", "tag:lightning"],
|
||||||
"match": "adjacent", "result_spell_id": "", "consume_inputs": true})
|
"match": "adjacent", "result_spell_id": "", "consume_inputs": true})
|
||||||
_cur = _data.size() - 1
|
_cur = _data.size() - 1
|
||||||
_refresh()
|
_refresh()
|
||||||
|
|||||||
Reference in New Issue
Block a user