61 lines
1.7 KiB
GDScript
61 lines
1.7 KiB
GDScript
extends Node
|
|
const MainMenuScenePath : String = "res://scenes/main_menu.tscn"
|
|
|
|
export var time_per_day : float = 600.0
|
|
|
|
onready var player = get_tree().get_nodes_in_group("player")[0]
|
|
onready var day_timer = $"%day_timer"
|
|
onready var day_timer_text = $"%day_timer_text"
|
|
onready var current_coins_text = $"%current_coins_text"
|
|
onready var pause_menu = $"%pause_menu"
|
|
|
|
func _ready():
|
|
player.connect("starved_to_death", self, "_on_player_starved_to_death")
|
|
day_timer.wait_time = time_per_day
|
|
play_simple_dialog("intro")
|
|
day_timer.start()
|
|
|
|
func _process(delta):
|
|
var time_left : int = day_timer.time_left
|
|
var minutes : int = time_left / 60
|
|
var seconds : int = time_left % 60
|
|
day_timer_text.text = "%0*d:%0*d" % [2, minutes, 2, seconds]
|
|
current_coins_text.text = "%d" % player.get_item_from_inventory("coins")
|
|
|
|
func _unhandled_input(event):
|
|
if event.is_action_pressed("pause_game"):
|
|
toggle_pause_menu()
|
|
|
|
func _on_player_starved_to_death():
|
|
var node = Dialogic.start("starve")
|
|
node.pause_mode = PAUSE_MODE_PROCESS
|
|
add_child(node)
|
|
get_tree().paused = true
|
|
yield(node, "timeline_end")
|
|
get_tree().paused = false
|
|
get_tree().change_scene(MainMenuScenePath)
|
|
|
|
func play_simple_dialog(var dialog_name : String):
|
|
var node = Dialogic.start(dialog_name)
|
|
node.pause_mode = PAUSE_MODE_PROCESS
|
|
add_child(node)
|
|
get_tree().paused = true
|
|
yield(node, "timeline_end")
|
|
get_tree().paused = false
|
|
|
|
func reset_day_timer():
|
|
day_timer.start()
|
|
|
|
func _on_day_timer_timeout():
|
|
player.sleep(false, null)
|
|
|
|
func toggle_pause_menu():
|
|
pause_menu.visible = !pause_menu.visible
|
|
get_tree().paused = pause_menu.visible
|
|
|
|
func _on_resume_button_pressed():
|
|
toggle_pause_menu()
|
|
|
|
func _on_main_menu_button_pressed():
|
|
get_tree().change_scene(MainMenuScenePath)
|