extends Node2D signal playerDamage signal destroySignal(body) signal levelChangeSignal(level) var timer = Timer.new() var timeAvailable:int = 5 var levels = ["res://Scenes/reallygoodgame.tscn", "res://Scenes/reallygoodgame2.tscn", "res://Scenes/reallygoodgame3.tscn"] var timers = [500,500,500] 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 # Replace with function body. add_child(timer) timer.wait_time = 1 timer.one_shot = false timer.connect("timeout", secondCounter) timer.start() func secondCounter(): timeAvailable -=1 if timeAvailable <=0: print("you lose") levelChangeSignal.emit(levels[currentLevel]) func reset(): timeAvailable = timers[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 see trigger " + effect) match effect: "player_hurt": if body is Player: print("hurt the player") playerDamage.emit() if body.name == "world-boundary": return #if not body is Player: # body.queue_free() func bulletDamage(target: Node2D, bullet: Node2D): print("GC sees a hit") target.queue_free() bullet.visible = false func coincollected(body, coin): print("coincollected") 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("player attacked") print("damage : "+str(enemy.meleeDamage) ) print("player health : "+str(player.health)) playerCurrentHealth -= enemy.meleeDamage if playerCurrentHealth <=0: print("you died")