extends Node2D signal destroySignal(body) signal levelChangeSignal(level) var levels=["res://Scenes/game.tscn","res://Scenes/level2.tscn","res://Scenes/level3.tscn"] var currentLevel = 0 var timers=[5,10,15] var timeAvailable=0 var timer = Timer.new() #player variables var playerCurrentHealth:int = 100 #enemies var enemiesDict = {} # Called when the node enters the scene tree for the first time. func _ready() -> void: get_window().grab_focus() reset() add_child(timer) timer.wait_time = 1 timer.one_shot = false timer.connect("timeout", secondCounter) timer.start() func secondCounter()->void: print("tick") timeAvailable -=1 if timeAvailable <=0: print("You lose baby!") levelChangeSignal.emit(levels[currentLevel]) func reset()->void: timeAvailable = timers[currentLevel] playerCurrentHealth = 100 # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass func _on_triggerSignal(body: Variant, intentMessage: Variant) -> void: print("GC knows about a trigger!") if body.is_in_group("destructible") and intentMessage == "destroy": destroySignal.emit(body) func totalCrates(numberOfCrates:int)->void: print("GC knows total crates: "+str(numberOfCrates)) if numberOfCrates <=0: print("You WON!!!!") currentLevel +=1 if currentLevel >= levels.size(): currentLevel = 0 levelChangeSignal.emit(levels[currentLevel]) func _on_slime_damage(_body,slime)->void: print("GC knows slime doing damage") print("Doing damage: "+str(enemiesDict[slime]["damage"])) playerCurrentHealth -= enemiesDict[slime]["damage"] if playerCurrentHealth <=0: print("U ded") levelChangeSignal.emit(levels[currentLevel]) func addEnemyToLevel(slime)->void: #give each enemy some health and damage var randamage = randi_range(1,20) var enemyStat = { "health": 50, "damage": 30+randamage } enemiesDict[slime]=enemyStat