extends Node2D signal playerDamage signal destroySignal(body) signal levelChangeSignal(level) var timer = Timer.new() var timeAvailable:int = 5 var levels = ["res://scenes/game.tscn","res://scenes/level2.tscn","res://scenes/level3.tscn"] var timers = [15,10,9] var currentLevel = 0 #character stats var enemy:CharacterStats var player:CharacterStats var playerCurrentHealth:int # Called when the node enters the scene tree for the first time. func _ready() -> void: enemy = load("res://scripts/rscs/slimeStats.tres") player = load("res://scripts/rscs/playerStats.tres") playerCurrentHealth = player.starting_health add_child(timer) timer.wait_time = 1 timer.one_shot = false timer.connect("timeout", secondCounter) timer.start() func reset(): timeAvailable = timers[currentLevel] func secondCounter(): timeAvailable -=1 #check for time running out if timeAvailable <=0: print("You lose") levelChangeSignal.emit(levels[currentLevel]) # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass func _on_trigger(effect: Variant, body: Variant) -> void: print("GC sees trigger "+effect) match effect: "player_hurt": if body is Player: print("hurt the player") playerDamage.emit() #if not body is Player: # body.queue_free() func bulletDamage(body, bullet): print("GC know about bullet hit") body.queue_free() func coinCollected(body, coin): print("GC knows coin collected") destroySignal.emit(coin) func totalCoinCount(count): print("GC knows total coins "+str(count)) if count == 0: currentLevel +=1 if currentLevel >= levels.size(): currentLevel = 0 levelChangeSignal.emit(levels[currentLevel]) func playerAttacked(body, slime): print("GC knows slime attack") print("Damge : "+str(enemy.meleeDamage) ) print("Player health : "+str(playerCurrentHealth)) playerCurrentHealth -= enemy.meleeDamage if playerCurrentHealth <=0: print("YOU DEAD")