extends Node2D var totalCoinsAvailable = 0 var timer = Timer.new() var timeAvailable = 30 var level="res://scenes/game.tscn" var levelTwo = "res://scenes/level2.tscn" var levels = ["res://scenes/game.tscn","res://scenes/level2.tscn","res://scenes/level3.tscn"] var timers = [30,20,15] var currentLevel = 0 signal destroySignal(body) signal levelChangeSignal(level) signal playerTakeDamageSignal(health) signal playerDiesSignal var player:Characterstats var enemy:Characterstats var playerHealth:int # Called when the node enters the scene tree for the first time. func _ready() -> void: player = load("res://scripts/rscs/playerstats.tres") enemy = load("res://scripts/rscs/slimestats.tres") playerHealth = player.starting_health add_child(timer) timer.wait_time = 1 timer.one_shot = false timer.connect("timeout", secondCounter) timer.start() func secondCounter() -> void: timeAvailable -=1 if timeAvailable <= 0: print ("YOU LOSE") #get_tree().call_deferred("change_scene_to_file", levels[currentLevel]) levelChangeSignal.emit(levels[currentLevel]) #reload the current scene func reset() -> void: timeAvailable = timers[currentLevel] # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass func _on_areatrigger(effect, body) -> void: if effect == "destroy": print("Destroy this thing") body.queue_free() if effect == "lavaBurn": if body is Player: playerHealth -= 10 print("player health is now"+str(playerHealth)) func totalCoinCount(totalCoins): totalCoinsAvailable = totalCoins func coinCollected(body, coin): destroySignal.emit(coin) totalCoinsAvailable -= 1 if totalCoinsAvailable <=0: print("YOU WIN") currentLevel +=1 if currentLevel >= levels.size(): currentLevel =0 #get_tree().call_deferred("change_scene_to_file", levels[currentLevel]) levelChangeSignal.emit(levels[currentLevel]) func playerAttacked(body, slime): print("GC knows player attacked") playerHealth -= enemy.meleeDamage if playerHealth<=0: playerDiesSignal.emit() else: playerTakeDamageSignal.emit(playerHealth)