Files
gymkhana-actions/game/rooms/room8/puzzle/10_buttons_puzzle.gd
Julian Murgia 9fd1d6738d Added new room demonstrating a puzzle scene superposed on top of the room.
Need ESC commands to hide escoria.main.current_room and escoria.main.game.ui.*
2021-01-22 14:03:31 +01:00

61 lines
1.2 KiB
GDScript

extends Panel
var numbers_array : Array
var next_to_be_pressed : int = 1
func _ready():
randomize()
initialize()
reset()
for button in $GridContainer.get_children():
button.connect("pressed", self, "_button_pressed", [button])
escoria.main.current_scene.game.hide_ui()
escoria.main.current_scene.hide()
func initialize():
numbers_array = range(1, 11)
numbers_array.shuffle()
func reset():
$win_label.hide()
next_to_be_pressed = 1
var i = 0
for button in $GridContainer.get_children():
var number = numbers_array[i]
button.text = str(number)
button.pressed = false
button.disabled = false
i += 1
func _button_pressed(button : Button):
var number : String= button.text
if int(number) != next_to_be_pressed:
reset()
else:
button.disabled = true
next_to_be_pressed += 1
if next_to_be_pressed == 11:
win()
func win():
$win_label.show()
yield(get_tree().create_timer(2), "timeout")
hide()
escoria.main.current_scene.game.show_ui()
escoria.main.current_scene.show()
escoria.esc_runner.set_global("r8_m_door_open", "true")
escoria.esc_runner.set_state("r8_m_door", ["door_open"])
func _on_quit_pressed():
escoria.main.current_scene.game.show_ui()
escoria.main.current_scene.show()
queue_free()