Removed extraneous enemy_died signal from spawning; used
get_nodes_in_group for enemy_count
This commit is contained in:
parent
485f03d702
commit
7ef6076eda
5 changed files with 21 additions and 10 deletions
2
enemy.gd
2
enemy.gd
|
|
@ -36,7 +36,7 @@ func _process(delta):
|
||||||
|
|
||||||
|
|
||||||
func explode():
|
func explode():
|
||||||
print_debug("Enemy died!")
|
print_debug("Enemy explode!")
|
||||||
speed = 0
|
speed = 0
|
||||||
$AnimationPlayer.play("explode")
|
$AnimationPlayer.play("explode")
|
||||||
set_deferred("monitoring", false)
|
set_deferred("monitoring", false)
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,6 @@ extends Node
|
||||||
|
|
||||||
signal shield_changed(max_value: int, old_value: int, new_value: int)
|
signal shield_changed(max_value: int, old_value: int, new_value: int)
|
||||||
signal player_died()
|
signal player_died()
|
||||||
signal enemy_died()
|
signal enemy_died(value: int)
|
||||||
|
|
||||||
@warning_ignore_restore("unused_signal") # put any future signals you add between the two ignore annotations
|
@warning_ignore_restore("unused_signal") # put any future signals you add between the two ignore annotations
|
||||||
|
|
|
||||||
23
main.gd
23
main.gd
|
|
@ -3,6 +3,7 @@ extends Node2D
|
||||||
var enemy = preload("res://enemy.tscn")
|
var enemy = preload("res://enemy.tscn")
|
||||||
var score = 0
|
var score = 0
|
||||||
var playing = false
|
var playing = false
|
||||||
|
var enemy_count: int = 0
|
||||||
|
|
||||||
@onready var start_button = $CanvasLayer/CenterContainer/Start
|
@onready var start_button = $CanvasLayer/CenterContainer/Start
|
||||||
@onready var game_over = $CanvasLayer/CenterContainer/GameOver
|
@onready var game_over = $CanvasLayer/CenterContainer/GameOver
|
||||||
|
|
@ -15,20 +16,25 @@ func _ready():
|
||||||
# spawn_enemies()
|
# spawn_enemies()
|
||||||
|
|
||||||
func spawn_enemies():
|
func spawn_enemies():
|
||||||
|
|
||||||
for x in range(9):
|
for x in range(9):
|
||||||
for y in range(3):
|
for y in range(3):
|
||||||
var e = enemy.instantiate()
|
var e = enemy.instantiate()
|
||||||
var pos = Vector2(x * (16 + 8) + 24, 16 * 4 + y * 16)
|
var pos = Vector2(x * (16 + 8) + 24, 16 * 4 + y * 16)
|
||||||
add_child(e)
|
add_child(e)
|
||||||
e.start(pos)
|
e.start(pos)
|
||||||
EventBus.enemy_died.emit()
|
enemy_count = get_tree().get_nodes_in_group("enemies").size()
|
||||||
|
print(enemy_count)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_enemy_died(value: int):
|
||||||
func _on_enemy_died(value):
|
|
||||||
print_debug("Enemy died!")
|
|
||||||
score += value
|
score += value
|
||||||
|
enemy_count -= 1
|
||||||
$CanvasLayer/UI.update_score(score)
|
$CanvasLayer/UI.update_score(score)
|
||||||
|
print_debug(enemy_count)
|
||||||
|
if enemy_count == 0:
|
||||||
|
print("All enemies defeated!")
|
||||||
|
win_game()
|
||||||
|
|
||||||
func _on_player_died():
|
func _on_player_died():
|
||||||
playing = false
|
playing = false
|
||||||
|
|
@ -48,3 +54,10 @@ func new_game():
|
||||||
func _on_start_pressed():
|
func _on_start_pressed():
|
||||||
start_button.hide()
|
start_button.hide()
|
||||||
new_game()
|
new_game()
|
||||||
|
|
||||||
|
func win_game():
|
||||||
|
playing = false
|
||||||
|
game_over.show()
|
||||||
|
await get_tree().create_timer(2).timeout
|
||||||
|
game_over.hide()
|
||||||
|
start_button.show()
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ func _on_gun_cooldown_timeout() -> void:
|
||||||
func _on_area_entered(area):
|
func _on_area_entered(area):
|
||||||
if area.is_in_group("enemies"):
|
if area.is_in_group("enemies"):
|
||||||
area.explode()
|
area.explode()
|
||||||
shield -= max_shield / 2
|
shield -= int(max_shield / 2)
|
||||||
damage_taken.emit()
|
damage_taken.emit()
|
||||||
if area.is_in_group("enemy_bullets"):
|
if area.is_in_group("enemy_bullets"):
|
||||||
damage_taken.emit()
|
damage_taken.emit()
|
||||||
|
|
|
||||||
2
ui.gd
2
ui.gd
|
|
@ -24,8 +24,6 @@ func _on_shield_changed(max_value: int, old_value: int, new_value: int) -> void:
|
||||||
_on_fx_shield_ui()
|
_on_fx_shield_ui()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func _on_fx_shield_ui():
|
func _on_fx_shield_ui():
|
||||||
shader_active = true
|
shader_active = true
|
||||||
shield_bar.material.set_shader_parameter("toggle", 1.0)
|
shield_bar.material.set_shader_parameter("toggle", 1.0)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue