56 lines
1.2 KiB
GDScript
56 lines
1.2 KiB
GDScript
extends Node2D
|
|
|
|
var coin = 0
|
|
export var postie_times = [0.5]
|
|
|
|
# Anything above 10 can't be rendered (for now?)
|
|
export var num_days = 5
|
|
|
|
export var next_level = ""
|
|
|
|
func add_coin(amount: int):
|
|
coin += amount
|
|
$HudInner/Panel/LabelCoin.text = str(coin)
|
|
|
|
var hp: int = 3
|
|
|
|
func _lose():
|
|
get_tree().paused = true
|
|
$HudInner/GameOverDialogue.visible = true
|
|
return
|
|
|
|
func _win():
|
|
var _r = get_tree().change_scene("res://levels/" + next_level + ".tscn")
|
|
|
|
func remove_hp():
|
|
if hp == 0:
|
|
# Lose game
|
|
self._lose()
|
|
return
|
|
|
|
hp -= 1
|
|
var hp_indicator = $HudInner/Panel/HpBar.get_child(hp)
|
|
hp_indicator.modulate.r = 0
|
|
|
|
func _ready():
|
|
# get a fresh seed for the PRNG
|
|
randomize()
|
|
$HudInner/GameOverDialogue.visible = false
|
|
|
|
if next_level == "":
|
|
printerr("No next level configured!")
|
|
|
|
var sch = $HudInner/Panel/Scheduler
|
|
sch.postie_times = postie_times
|
|
sch.days_on_this_level = num_days
|
|
|
|
var w2d: World2D = get_world_2d()
|
|
# random place to put it, but needed to get our navigation working:
|
|
Navigation2DServer.map_set_edge_connection_margin(w2d.navigation_map, 10.0)
|
|
|
|
|
|
func _on_TryAgainButton_pressed() -> void:
|
|
# restart the level
|
|
print("reload ", get_tree().reload_current_scene())
|
|
get_tree().paused = false
|