Migrated current spawning logic to dedicated wave node.

This commit is contained in:
Henry 2026-02-13 00:20:41 +00:00
parent fd607018a3
commit 674a231847
6 changed files with 112 additions and 49 deletions

View file

@ -24,51 +24,51 @@ func _ready():
game_over.hide()
start_button.show()
EventBus.player_died.connect(_on_player_died)
EventBus.enemy_died.connect(_on_enemy_died)
#EventBus.enemy_died.connect(_on_enemy_died)
EventBus.enemy_hit.connect(_on_enemy_hit)
func spawn_enemies():
# print("Remaining enemies: ", enemy_count)
# await get_tree().process_frame
enemy_wave += 1
print("Enemy Wave: ", enemy_wave)
for x in range(COLS):
for y in range(ROWS):
var e = enemy.instantiate()
var pos = Vector2(x * (16 + 8) + 24, 16 * 4 + y * 16)
add_child(e)
e.start(pos)
enemy_count = ROWS * COLS
await get_tree().process_frame
print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size())
func _on_enemy_died():
enemy_count -= 1
print_debug(enemy_count)
if enemy_count == 0:
print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size())
# win_game()
await get_tree().create_timer(2).timeout
spawn_enemies()
if enemy_count == ROWS * COLS / 2:
print_debug("Enemy count is 50%")
update_enemy_aggression(2,10)
EventBus.goose_talk.emit()
if enemy_count == ROWS * COLS / 4:
print_debug("Enemy count is 25%")
update_enemy_aggression(1,1)
func update_enemy_aggression(low,high):
var nodes = get_tree().get_nodes_in_group("enemies")
for node in nodes:
if node is Area2D:
node.enemy_move_aggression = randf_range(low,high)
node.enemy_shoot_aggression = randf_range(low,high)
node.tween_speed = min(low,high) - .75
#func spawn_enemies():
## print("Remaining enemies: ", enemy_count)
## await get_tree().process_frame
#enemy_wave += 1
#print("Enemy Wave: ", enemy_wave)
#for x in range(COLS):
#for y in range(ROWS):
#var e = enemy.instantiate()
#var pos = Vector2(x * (16 + 8) + 24, 16 * 4 + y * 16)
#add_child(e)
#e.start(pos)
#enemy_count = ROWS * COLS
#await get_tree().process_frame
#print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size())
#
#
#
##func _on_enemy_died():
##enemy_count -= 1
##print_debug(enemy_count)
##if enemy_count == 0:
##print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size())
### win_game()
##await get_tree().create_timer(2).timeout
##$Wave.spawn_enemies()
##if enemy_count == ROWS * COLS / 2:
##print_debug("Enemy count is 50%")
##update_enemy_aggression(2,10)
##EventBus.goose_talk.emit()
##if enemy_count == ROWS * COLS / 4:
##print_debug("Enemy count is 25%")
##update_enemy_aggression(1,1)
#
##func update_enemy_aggression(low,high):
##var nodes = get_tree().get_nodes_in_group("enemies")
##
##for node in nodes:
##if node is Area2D:
##node.enemy_move_aggression = randf_range(low,high)
##node.enemy_shoot_aggression = randf_range(low,high)
##node.tween_speed = min(low,high) - .75
func _on_enemy_hit(value: int):
Global.score += value
@ -107,13 +107,13 @@ func new_game():
# instantiate the Player
# await get_tree().create_timer(1).timeout
instance = player.instantiate()
instance = player.instantiate()
add_child(instance)
$Player.start()
# Tell the enemies to spawn!
#await get_tree().create_timer(.5).timeout
spawn_enemies()
$Wave.spawn_enemies()
# Tell the game we're playing.
@ -130,6 +130,7 @@ func _input(EventInput):
func _on_start_pressed():
start_button.hide()
$Welcome.play()
new_game()
func win_game():