extends Node var myBox = preload("res://scenes/crate.tscn") @onready var box_trap = $"../BoxTrap" @onready var timer = $Timer @onready var player = $"../CharacterBody2D" @onready var coins = $"../Coins" @onready var enemies = $"../Enemies" @onready var ui = $"../CanvasLayer/Control" # Called when the node enters the scene tree for the first time. func _ready(): GameManager.resetPlayer() for n in coins.get_children(): if n is Coin: #wire up our listener n.coinCollected.connect(_on_area_2d_coin_collected) for n in enemies.get_children(): if n is Enemy: n.playerDamage.connect(playerDamage) # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): if GameManager.player.currentHealth <= 0 and player.living: player.defeated() timer.start() func _on_area_2d_areatrigger(effect, body): print("Game Controller sees the trigger " + effect) match effect: "alert": for n in 5: var box = myBox.instantiate() owner.add_child(box) box.transform = box_trap.global_transform func resetWorld(): get_tree().reload_current_scene() func _on_area_2d_coin_collected(): GameManager.coinCollected() ui.coinsUpdate(GameManager.coinsCollectedTotal) func playerDamage(): GameManager.playerDamage() ui.healthUpdate(GameManager.player.currentHealth)