Compare commits
No commits in common. "dac1601f4afb9e9e1eecee9963b6c1ae68abf1a3" and "be3919acd777247c236a7626f47a8d563e52f9a9" have entirely different histories.
dac1601f4a
...
be3919acd7
4 changed files with 17 additions and 28 deletions
4
enemy.gd
4
enemy.gd
|
|
@ -8,6 +8,8 @@ var exploding = false
|
||||||
|
|
||||||
@onready var screensize = get_viewport_rect().size
|
@onready var screensize = get_viewport_rect().size
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
EventBus.enemy_win.connect(_on_enemy_win)
|
||||||
|
|
||||||
func start(pos):
|
func start(pos):
|
||||||
speed = 0
|
speed = 0
|
||||||
|
|
@ -22,6 +24,8 @@ func start(pos):
|
||||||
$ShootTimer.wait_time = randf_range(4, 20)
|
$ShootTimer.wait_time = randf_range(4, 20)
|
||||||
$ShootTimer.start()
|
$ShootTimer.start()
|
||||||
|
|
||||||
|
func _on_enemy_win() -> void:
|
||||||
|
print("Enemy win!")
|
||||||
|
|
||||||
func _on_timer_timeout() -> void:
|
func _on_timer_timeout() -> void:
|
||||||
speed = randf_range(75, 100)
|
speed = randf_range(75, 100)
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ 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(value: int)
|
signal enemy_died(value: int)
|
||||||
|
signal enemy_win()
|
||||||
signal initialize_shieldbar()
|
signal initialize_shieldbar()
|
||||||
signal start_game()
|
signal start_game()
|
||||||
|
|
||||||
|
|
|
||||||
31
main.gd
31
main.gd
|
|
@ -4,12 +4,7 @@ var enemy = preload("res://enemy.tscn")
|
||||||
var player = preload("res://player.tscn")
|
var player = preload("res://player.tscn")
|
||||||
var instance = null
|
var instance = null
|
||||||
var playing = false
|
var playing = false
|
||||||
var enemy_count: int = 0:
|
var enemy_count: int = 0
|
||||||
set(value):
|
|
||||||
if value < 0:
|
|
||||||
print_debug("Enemy value set to below zero: ", get_stack())
|
|
||||||
enemy_count = value
|
|
||||||
|
|
||||||
|
|
||||||
@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
|
||||||
|
|
@ -22,17 +17,15 @@ func _ready():
|
||||||
|
|
||||||
|
|
||||||
func spawn_enemies():
|
func spawn_enemies():
|
||||||
# enemy_count = get_tree().get_nodes_in_group("enemies").size()
|
get_tree().call_group("enemies", "queue_free")
|
||||||
# print("Remaining enemies: ", enemy_count)
|
|
||||||
# await get_tree().process_frame
|
|
||||||
get_tree().get_nodes_in_group("enemies").size()
|
|
||||||
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)
|
||||||
print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size())
|
enemy_count = get_tree().get_nodes_in_group("enemies").size()
|
||||||
|
print("Remaining enemies: ", enemy_count)
|
||||||
|
|
||||||
|
|
||||||
func _on_enemy_died(value: int):
|
func _on_enemy_died(value: int):
|
||||||
|
|
@ -41,12 +34,12 @@ func _on_enemy_died(value: int):
|
||||||
$CanvasLayer/UI.update_score(Global.score)
|
$CanvasLayer/UI.update_score(Global.score)
|
||||||
print_debug(enemy_count)
|
print_debug(enemy_count)
|
||||||
if enemy_count == 0:
|
if enemy_count == 0:
|
||||||
print_debug("Remaining enemies: ", enemy_count, ", ", get_tree().get_nodes_in_group("enemies").size())
|
print("All enemies defeated!")
|
||||||
win_game()
|
win_game()
|
||||||
|
|
||||||
func _on_player_died():
|
func _on_player_died():
|
||||||
# get_tree().call_group("enemies", "queue_free")
|
# get_tree().call_group("enemies", "queue_free")
|
||||||
enemy_win()
|
EventBus.enemy_win.emit()
|
||||||
# $Player.set_process(false)
|
# $Player.set_process(false)
|
||||||
# get_tree().call_group("enemies", "set_process", false)
|
# get_tree().call_group("enemies", "set_process", false)
|
||||||
instance.queue_free()
|
instance.queue_free()
|
||||||
|
|
@ -58,18 +51,16 @@ func _on_player_died():
|
||||||
|
|
||||||
func new_game():
|
func new_game():
|
||||||
# Ensure enemies are cleared.
|
# Ensure enemies are cleared.
|
||||||
|
enemy_count = 0
|
||||||
get_tree().call_group("enemies", "queue_free")
|
get_tree().call_group("enemies", "queue_free")
|
||||||
get_tree().call_group("enemy_bullets", "queue_free")
|
get_tree().call_group("enemy_bullets", "queue_free")
|
||||||
# print("Number of enemies at new_game: ",enemy_count)
|
print("Number of enemies at new_game: ",enemy_count)
|
||||||
await get_tree().process_frame
|
|
||||||
|
|
||||||
# Reset score.
|
# Reset score.
|
||||||
Global.score = 0
|
Global.score = 0
|
||||||
$CanvasLayer/UI.update_score(Global.score)
|
$CanvasLayer/UI.update_score(Global.score)
|
||||||
|
|
||||||
|
|
||||||
# instantiate the Player
|
# instantiate the Player
|
||||||
# await get_tree().create_timer(1).timeout
|
|
||||||
instance = player.instantiate()
|
instance = player.instantiate()
|
||||||
add_child(instance)
|
add_child(instance)
|
||||||
$Player.start()
|
$Player.start()
|
||||||
|
|
@ -78,7 +69,6 @@ func new_game():
|
||||||
EventBus.initialize_shieldbar.emit()
|
EventBus.initialize_shieldbar.emit()
|
||||||
|
|
||||||
# Tell the enemies to spawn!
|
# Tell the enemies to spawn!
|
||||||
#await get_tree().create_timer(.5).timeout
|
|
||||||
spawn_enemies()
|
spawn_enemies()
|
||||||
|
|
||||||
# Tell the game we're playing.
|
# Tell the game we're playing.
|
||||||
|
|
@ -103,6 +93,3 @@ func win_game():
|
||||||
await get_tree().create_timer(2).timeout
|
await get_tree().create_timer(2).timeout
|
||||||
game_over.hide()
|
game_over.hide()
|
||||||
start_button.show()
|
start_button.show()
|
||||||
|
|
||||||
func enemy_win() -> void:
|
|
||||||
print("Enemy win!")
|
|
||||||
|
|
|
||||||
|
|
@ -30,17 +30,15 @@ func start():
|
||||||
print(shield)
|
print(shield)
|
||||||
shader_active = false
|
shader_active = false
|
||||||
$Ship.frame = 1
|
$Ship.frame = 1
|
||||||
$Ship/Boosters.hide()
|
|
||||||
$Ship.show()
|
$Ship.show()
|
||||||
position = Vector2(screensize.x / 2, screensize.y)
|
position = Vector2(screensize.x / 2, screensize.y)
|
||||||
var tween = create_tween()
|
var tween = create_tween()
|
||||||
tween.tween_property(self, "position:y", 48 * -1, .75).as_relative()
|
tween.tween_property(self, "position:y", 32 * -1, .25).as_relative()
|
||||||
$GunCooldown.wait_time = cooldown
|
$GunCooldown.wait_time = cooldown
|
||||||
set_shield(max_shield)
|
set_shield(max_shield)
|
||||||
print(shield)
|
print(shield)
|
||||||
await get_tree().create_timer(2).timeout
|
await get_tree().create_timer(2).timeout
|
||||||
set_process(true)
|
set_process(true)
|
||||||
$Ship/Boosters.show()
|
|
||||||
can_shoot = true
|
can_shoot = true
|
||||||
# EventBus.shield_changed.emit(max_shield, old_value, shield)
|
# EventBus.shield_changed.emit(max_shield, old_value, shield)
|
||||||
|
|
||||||
|
|
@ -79,14 +77,13 @@ func set_shield(value: int):
|
||||||
print("Shield set to:", shield)
|
print("Shield set to:", shield)
|
||||||
if shield <= 0:
|
if shield <= 0:
|
||||||
print("Shader deactivated!")
|
print("Shader deactivated!")
|
||||||
|
EventBus.player_died.emit()
|
||||||
set_process(false)
|
set_process(false)
|
||||||
$Ship.hide()
|
$Ship.hide()
|
||||||
shader_active = false
|
|
||||||
$Explosion.show()
|
$Explosion.show()
|
||||||
$Explosion/AnimationPlayer.play("explosion-one-shot")
|
$Explosion/AnimationPlayer.play("explosion-one-shot")
|
||||||
await $Explosion/AnimationPlayer.animation_finished
|
await $Explosion/AnimationPlayer.animation_finished
|
||||||
EventBus.player_died.emit()
|
shader_active = false
|
||||||
|
|
||||||
|
|
||||||
func _on_gun_cooldown_timeout() -> void:
|
func _on_gun_cooldown_timeout() -> void:
|
||||||
can_shoot = true
|
can_shoot = true
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue