online multiplayer chess game (note server currently down)
Diffstat (limited to 'ui/barbutton/resignbutton.gd')
-rw-r--r--ui/barbutton/resignbutton.gd40
1 files changed, 38 insertions, 2 deletions
diff --git a/ui/barbutton/resignbutton.gd b/ui/barbutton/resignbutton.gd
index fb553ad..3ca7490 100644
--- a/ui/barbutton/resignbutton.gd
+++ b/ui/barbutton/resignbutton.gd
@@ -1,5 +1,41 @@
extends BarTextureButton
+class_name ResignButton, "res://assets/ui/flag.png"
+export(NodePath) onready var status = get_node(status) as StatusLabel
+export(NodePath) onready var drawbutton = get_node(drawbutton) as DrawButton
+export(NodePath) onready var confirmbar = get_node(confirmbar) as Confirm
-func _pressed():
- pass
+var waiting_on_answer = false
+
+
+func _ready() -> void:
+ Globals.network.connect("request", self, "resigned")
+
+
+func resigned(what: Dictionary):
+ if what.type == Network.REQUESTHEADERS.resign:
+ Globals.grid.win(Globals.team, "resignation")
+
+
+func _pressed() -> void:
+ if waiting_on_answer:
+ _confirmed(true)
+ confirmbar.stop_looking()
+ else:
+ confirmbar.confirm(self, "Resign?", 20)
+ waiting_on_answer = true
+ drawbutton.disabled = true
+
+
+func stoplooking() -> void:
+ _confirmed(false)
+
+
+func _confirmed(what: bool):
+ if waiting_on_answer:
+ waiting_on_answer = false
+ drawbutton.disabled = what # dont un disable it if the game is over
+ if what:
+ Globals.network.send_request_packet(Network.REQUESTHEADERS.resign, "")
+ Globals.grid.win(!Globals.team, "resignation")
+ disabled = true