Migrated current spawning logic to dedicated wave node.
This commit is contained in:
parent
fd607018a3
commit
674a231847
6 changed files with 112 additions and 49 deletions
|
|
@ -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():
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
[ext_resource type="Texture2D" uid="uid://bubqwoum50gf8" path="res://_graphics/Mini Pixel Pack 3/UI objects/GAME_OVER (72 x 8).png" id="6_7mycd"]
|
||||
[ext_resource type="PackedScene" uid="uid://cd1kwb8klcsb5" path="res://scenes/goose.tscn" id="9_85g3d"]
|
||||
[ext_resource type="AudioStream" uid="uid://c3e8sdfqcikp6" path="res://sounds/welcome.wav" id="10_choun"]
|
||||
[ext_resource type="PackedScene" uid="uid://drf1k1iulvy6f" path="res://scenes/wave.tscn" id="11_ya4ey"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_1bvp3"]
|
||||
length = 0.001
|
||||
|
|
@ -78,10 +79,10 @@ offset_bottom = 36.0
|
|||
[node name="Title" type="TextureRect" parent="CanvasLayer" unique_id=561106216]
|
||||
self_modulate = Color(0.015236704, 0.015236706, 0.0152367065, 1)
|
||||
material = SubResource("ShaderMaterial_kek77")
|
||||
offset_left = 50.0
|
||||
offset_top = 50.0
|
||||
offset_right = 146.0
|
||||
offset_bottom = 117.0
|
||||
offset_left = 70.0
|
||||
offset_top = 58.0
|
||||
offset_right = 166.0
|
||||
offset_bottom = 125.0
|
||||
texture = ExtResource("5_tipki")
|
||||
|
||||
[node name="CenterContainer" type="CenterContainer" parent="CanvasLayer" unique_id=1787047882]
|
||||
|
|
@ -119,4 +120,6 @@ position = Vector2(118, 162)
|
|||
stream = ExtResource("10_choun")
|
||||
volume_db = -0.5
|
||||
|
||||
[node name="Wave" parent="." unique_id=2117861058 instance=ExtResource("11_ya4ey")]
|
||||
|
||||
[connection signal="pressed" from="CanvasLayer/CenterContainer/Start" to="." method="_on_start_pressed"]
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ region_rect = Rect2(0, 0, 64, 64)
|
|||
scroll_scale = Vector2(1.5, 1)
|
||||
scroll_offset = Vector2(-89, -27)
|
||||
repeat_size = Vector2(0, 32)
|
||||
autoscroll = Vector2(0, 2)
|
||||
autoscroll = Vector2(0, 3)
|
||||
repeat_times = 11
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Background Nothing" unique_id=2117909699]
|
||||
|
|
|
|||
6
scenes/wave.tscn
Normal file
6
scenes/wave.tscn
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
[gd_scene format=3 uid="uid://drf1k1iulvy6f"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cqnotqarpsavn" path="res://wave.gd" id="1_y5ysc"]
|
||||
|
||||
[node name="Wave" type="Node2D" unique_id=2117861058]
|
||||
script = ExtResource("1_y5ysc")
|
||||
52
wave.gd
Normal file
52
wave.gd
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
extends Node2D
|
||||
|
||||
var wave_count: int = 0
|
||||
var enemy_count: int = 0
|
||||
var enemy = preload("res://scenes/enemy.tscn")
|
||||
|
||||
const COLS: int = 9
|
||||
const ROWS: int = 3
|
||||
|
||||
func _ready():
|
||||
wave_count += 1
|
||||
EventBus.enemy_died.connect(_on_enemy_died)
|
||||
|
||||
|
||||
func spawn_enemies():
|
||||
print("Enemy Wave: ", wave_count)
|
||||
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_count += 1
|
||||
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
|
||||
1
wave.gd.uid
Normal file
1
wave.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://cqnotqarpsavn
|
||||
Loading…
Add table
Add a link
Reference in a new issue