# Hurry Curry! - a game about cooking # Copyright 2024 metamuffin # Copyright 2024 nokoe # Copyright 2024 tpart # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, version 3 of the License only. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # extends Menu @onready var anim = $AnimationPlayer @onready var options = $Side/Margin/Options @onready var game: Game = $"../Game" @onready var lobby_button: Button = $Side/Margin/Options/Lobby @onready var leave_button: Button = $Side/Margin/Options/Leave var opened func _ready(): opened = Time.get_ticks_msec() game.join_state_updated.connect(_on_game_join_state_changed) _on_game_join_state_changed(game.join_state) update_lobby_button() super() func update_lobby_button(): lobby_button.disabled = game.in_lobby or game.join_state == Game.JoinState.SPECTATING if game.in_lobby: lobby_button.tooltip_text = "Cannot cancel game since no game is running." elif not game.join_state == Game.JoinState.JOINED: lobby_button.tooltip_text = "You must join in order to be able to cancel the current game." else: lobby_button.tooltip_text = "" func anim_setup(): pass func _menu_open(): anim.play("activate") await anim.animation_finished func _menu_exit(): anim.play_backwards("activate") await anim.animation_finished func _on_resume_pressed(): exit() func _on_main_menu_pressed(): parent_menu.replace_menu("res://menu/main.tscn") func _on_settings_pressed(): submenu("res://menu/settings.tscn") func _on_reconnect_pressed(): parent_menu.replace_menu("res://menu/game.tscn") func _on_quit_pressed(): quit() func _on_lobby_pressed(): game.mp.send_chat(game.player_id, "/end") exit() func _on_leave_pressed(): game.toggle_join() func _on_game_join_state_changed(state: Game.JoinState): match state: Game.JoinState.JOINED: leave_button.disabled = false leave_button.text = tr("c.menu.ingame.leave") Game.JoinState.SPECTATING: leave_button.disabled = false leave_button.text = tr("c.menu.ingame.join") Game.JoinState.WAITING: leave_button.disabled = true