online multiplayer chess game (note server currently down)
Diffstat (limited to 'ui/barbutton/drawbutton.gd')
| -rw-r--r-- | ui/barbutton/drawbutton.gd | 38 |
1 files changed, 15 insertions, 23 deletions
diff --git a/ui/barbutton/drawbutton.gd b/ui/barbutton/drawbutton.gd index c5fb8ef..13f4965 100644 --- a/ui/barbutton/drawbutton.gd +++ b/ui/barbutton/drawbutton.gd @@ -7,18 +7,21 @@ export(NodePath) onready var confirmbar = get_node(confirmbar) as Confirm var waiting_on_answer := false -func _ready() -> void: - Globals.network.connect("request", self, "draw_request") - Globals.network.connect("request_result", self, "_on_draw_result") +func _ready(): + Globals.network.connect("signal_recieved", self, "_on_signal") -func draw_request(what: Dictionary): - if what.type == Network.REQUESTHEADERS.draw: - if "questions" in what: - Log.err("Draw request without prompt") - return - confirmbar.confirm(self, what.question, 20) - waiting_on_answer = true +func _on_signal(what: Dictionary): + if what.type == Network.SIGNALHEADERS.draw: + if "question" in what: + confirmbar.confirm(self, "Your opponent requests a draw", 20) + waiting_on_answer = true + else: + disabled = false + if what.accepted: + drawed() + else: + status.set_text("Your opponent rejected the draw") func drawed() -> GDScriptFunctionState: @@ -35,25 +38,14 @@ func _pressed() -> void: confirmbar.stop_looking() else: disabled = true - Globals.network.send_request_packet( - Network.REQUESTHEADERS.draw, "Your opponent wishes to draw, do you accept?" - ) + Globals.network.signal("", Network.SIGNALHEADERS.draw, "question") status.set_text("Draw request sent") -func _on_draw_result(accepted: Dictionary) -> void: # called from _handle_confirm - disabled = false - if accepted.type == Network.REQUESTHEADERS.draw: - if accepted.answer: - drawed() - else: - status.set_text("Your opponent has rejected the draw request.") - - func _handle_confirm(yes: bool) -> void: # called from confirmbar.confirmed if waiting_on_answer: disabled = false waiting_on_answer = false - Globals.network.send_request_answer_packet(Network.REQUESTHEADERS.draw, yes) + Globals.network.signal(yes, Network.SIGNALHEADERS.draw, "accepted") if yes: drawed() |