game.gd 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. extends Node2D
  2. @onready var health_bar = $HealthBar
  3. @onready var transition = $Overlay/Transition
  4. @onready var spawn_timer = $Timer
  5. @onready var main_menu: PackedScene = load("res://screens/main_menu.tscn")
  6. @onready var bot_scene: PackedScene = load("res://assets/scenes/bot.tscn")
  7. @onready var spawn_points: Array[Marker2D] = [
  8. $EnemySpawn_1,
  9. $EnemySpawn_2,
  10. $EnemySpawn_3,
  11. ]
  12. func _ready() -> void:
  13. transition.slide_out()
  14. await transition.game_fully_visible
  15. spawn_bot()
  16. func _process(_delta: float) -> void:
  17. if Input.is_action_pressed("ui_cancel"):
  18. var tree = get_tree()
  19. transition.text = ""
  20. transition.slide_in()
  21. await transition.game_fully_hidden
  22. tree.change_scene_to_packed(main_menu)
  23. func spawn_bot() -> void:
  24. var spawn = spawn_points.pick_random()
  25. var bot = bot_scene.instantiate()
  26. bot.global_position = spawn.global_position
  27. add_child(bot)
  28. func _on_timer_timeout() -> void:
  29. spawn_bot()
  30. func _on_base_area_entered(area: Area2D) -> void:
  31. if area.is_in_group("foe") || area.is_in_group("foe_weapons"):
  32. area.queue_free()
  33. health_bar.health -= 1
  34. if health_bar.health == 0:
  35. spawn_timer.stop()
  36. var foes = get_tree().get_nodes_in_group("foe")
  37. for foe in foes:
  38. foe.queue_free()