extends Control export(NodePath) var popup_nodepath export(NodePath) var gameover_sound_path export(NodePath) var container_path var _popup: Popup var _gameover_sound: AudioStreamPlayer var _collectibles: GridContainer var _score: int = 0 var _init: bool = false var _texCrystal = preload("res://Images/crystal-unlit.png") var _texCrystalLit = preload("res://Images/crystal.png") func _ready(): _popup = get_node(popup_nodepath) as Popup assert(null != _popup) _gameover_sound = get_node(gameover_sound_path) as AudioStreamPlayer assert(null != _gameover_sound) _collectibles = get_node(container_path) as GridContainer assert(null != _collectibles) func _process(_delta): if _init == false: _init = true # TODO: handle with signals var count = Collector.getCount() for i in count: var rect = _createTexture(_texCrystal) _collectibles.add_child(rect) func _createTexture(texture): var rect = TextureRect.new() rect.texture = texture rect.expand = true rect.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT rect.rect_min_size = Vector2(50, 50) rect.rect_size = Vector2(50, 50) return rect func increaseScore(): _score += 1 Logger.info(String(_score) + " of " + String(Collector.getCount()) + " possible points") var rect = _createTexture(_texCrystalLit) #_collectibles.add_child(rect) _collectibles.add_child_below_node(self, rect) _collectibles.remove_child(_collectibles.get_child(0)) if (_score >= (Collector.getCount())): success() func gameOver(): Logger.info("YOU FAILED!") _gameover_sound.play() _endGame(false) func success(): Logger.info("YOU WON!") _endGame(true) func _endGame (value): Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) Collector.Clear() _popup.get_node("LabelWon").visible = value _popup.get_node("LabelFail").visible = !value _popup.get_node("PanelWon").visible = value _popup.get_node("PanelFail").visible = !value _popup.show() func _on_Button_pressed(): get_tree().reload_current_scene()