online multiplayer chess game (note server currently down)
Diffstat (limited to 'ui/menus/sidebarright/undobutton.gd')
| -rw-r--r-- | ui/menus/sidebarright/undobutton.gd | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/ui/menus/sidebarright/undobutton.gd b/ui/menus/sidebarright/undobutton.gd deleted file mode 100644 index dc44100..0000000 --- a/ui/menus/sidebarright/undobutton.gd +++ /dev/null @@ -1,67 +0,0 @@ -extends ConfirmButton -class_name UndoButton - -onready var status := get_node("%Status") as StatusLabel -const undo_request_message = "%s requested a undo" -const undo_declined_message = "undo declined" - - -func _ready() -> void: - PacketHandler.connect("undo", self, "undo_signal_recieved") - - -func _pressed() -> void: - if Globals.spectating: - return - if Globals.local: - var two_undos = true if Globals.grid.chess.turn == Globals.grid.team else false - var completed_moves = Globals.grid.chess.history().size() - if completed_moves == 0 or (two_undos && completed_moves == 1): - status.set_text("No moves to undo!") - return - Globals.local.undo(two_undos) - - elif waiting_on_answer: - _confirmed(true) - else: - var two_undos = true if Globals.grid.chess.turn == Globals.grid.team else false - var completed_moves = Globals.grid.chess.history().size() - if completed_moves == 0 or (two_undos && completed_moves == 1): - status.set_text("No moves to undo!") - return - var msg = undo_request_message % Utils.expand_color(Globals.grid.team) - var pckt = {gamecode = PacketHandler.game_code, question = msg, two = two_undos} - status.clear_text() - PacketHandler.send_packet(pckt, PacketHandler.HEADERS.undo) - Globals.chat.server(msg) - set_disabled(true) - - -func undo_signal_recieved(sig: Dictionary) -> void: - if "question" in sig: - Globals.chat.server(sig.question) - confirm() - else: - set_disabled(false) - if sig.accepted: - undo(sig.two) - else: - # declined signal reception - Globals.chat.server(undo_declined_message) - - -func _confirmed(what: bool) -> void: - ._confirmed(what) - var two_undos = not Globals.grid.is_my_turn() # not my turn - var pckt = {gamecode = PacketHandler.game_code, accepted = what, two = two_undos} - PacketHandler.send_packet(pckt, PacketHandler.HEADERS.undo) - if what: - undo(two_undos) - else: - # pressed no reception - Globals.chat.server(undo_declined_message) - - -func undo(two_undos := false): - Globals.grid.undo(two_undos) - status.clear_text() |