diff --git a/enemy.gd b/enemy.gd index 75cfd78..d2966b5 100644 --- a/enemy.gd +++ b/enemy.gd @@ -8,6 +8,9 @@ var exploding = false @onready var screensize = get_viewport_rect().size +func _ready() -> void: + EventBus.enemy_win.connect(_on_enemy_win) + func start(pos): speed = 0 position = Vector2(pos.x, -pos.y) @@ -21,6 +24,9 @@ func start(pos): $ShootTimer.wait_time = randf_range(4, 20) $ShootTimer.start() +func _on_enemy_win() -> void: + print("Enemy win!") + func _on_timer_timeout() -> void: speed = randf_range(75, 100) diff --git a/event_bus.gd b/event_bus.gd index ff7fa67..dac12af 100644 --- a/event_bus.gd +++ b/event_bus.gd @@ -5,6 +5,7 @@ extends Node signal shield_changed(max_value: int, old_value: int, new_value: int) signal player_died() signal enemy_died(value: int) +signal enemy_win() signal initialize_shieldbar() signal start_game() diff --git a/main.gd b/main.gd index b85b6a3..ec31202 100644 --- a/main.gd +++ b/main.gd @@ -38,7 +38,10 @@ func _on_enemy_died(value: int): win_game() func _on_player_died(): - get_tree().call_group("enemies", "queue_free") + # get_tree().call_group("enemies", "queue_free") + EventBus.enemy_win.emit() + # $Player.set_process(false) + # $Player.monitoring = false game_over.show() await get_tree().create_timer(2).timeout game_over.hide() @@ -46,6 +49,7 @@ func _on_player_died(): playing = false func new_game(): + get_tree().call_group("enemies", "queue_free") Global.score = 0 # EventBus.initialize_shieldbar.emit() $Player.start() diff --git a/player.gd b/player.gd index 7674c32..d282dc3 100644 --- a/player.gd +++ b/player.gd @@ -28,6 +28,7 @@ func _ready(): # start() func start(): + monitoring = true print(shield) $Ship.frame = 1 $Ship.show() @@ -91,7 +92,7 @@ func _on_area_entered(area): area.explode() shield -= int(max_shield / 2) damage_taken.emit() - if area.is_in_group("enemy_bullets"): + if area.is_in_group("enemy_bullets") and self.monitoring == true: damage_taken.emit() @@ -104,7 +105,9 @@ func _on_damage_taken() -> void: $Ship.material.set_shader_parameter("toggle", 0.0) func _on_game_over() -> void: - set_process(false) + print("Game over!") + # set_process(false) + monitoring = false $Ship.frame = 1 await get_tree().create_timer(2).timeout var tween = create_tween()