extends Node2D @onready var player: Player = $player signal playerDamage signal destroySignal(body) signal levelChangeSignal(level) var score := 0 var totalCoin := 0 var coinCollected := 0 var timer := Timer.new() var timeAvailable: int = 5 var levels = ["res://scenes/game.tscn","res://scenes/level2.tscn","res://scenes/level3.tscn"] var timers = [60, 10, 9] var currentLevel = 0 #caracter stats var enemy_stats: CharacterStats var player_stats: CharacterStats var player_current_health: int # Called when the node enters the scene tree for the first time. func _ready() -> void: enemy_stats = load("res://scripts/rscs/slimeStats.tres") player_stats = load("res://scripts/rscs/playerStats.tres") player_current_health = player_stats.starting_health reset() print("in _ready") add_child(timer) timer.wait_time = 1 timer.one_shot = false timer.connect("timeout", secondCounter) timer.start() # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass func secondCounter(): timeAvailable -= 1 if timeAvailable <= 0: print("you lose") reset() levelChangeSignal.emit(levels[currentLevel]) func _on_trigger(effect: Variant, body: Variant) -> void: if effect == "destroy" && not body is Player: body.queue_free() elif effect == "player_hurt": playerDamage.emit() func onBulletHitSignal(body: Node, bullet: Bullet): body.queue_free() func onCoinCollected(body, coin: Coin): destroySignal.emit(coin) func setTotalCoinCount(coinCount: int): totalCoin = coinCount if totalCoin == 0: print("you win!") currentLevel += 1 if currentLevel >= levels.size(): currentLevel = 0 levelChangeSignal.emit(levels[currentLevel]) func reset(): timeAvailable = timers[currentLevel] func playerAttacked(body, slime): print("player was attacked") player_current_health -= enemy_stats.melee_damage if player_current_health <= 0: print("YOU ARE DEAD") else: print("remaining life: ", player_current_health)