Files
rgb/scripts/rocket.gd
2024-02-24 08:36:06 -06:00

42 lines
1005 B
GDScript

extends Node2D
signal game_over
@onready var leave_timer: Timer = $LeaveTimer
@onready var collection_zone: Area2D = $CollectionZone
@onready var countdown_label: Label = $CountdownLabel
var countdown = 5
var count = -1
func _on_collection_zone_body_entered(body: Node2D) -> void:
leave_timer.start()
count = countdown
countdown_label.text = str(count)
countdown_label.show()
if body is Enemy:
body.reach_rocket()
func _on_collection_zone_body_exited(body: Node2D) -> void:
if collection_zone.get_overlapping_bodies().size() == 0:
leave_timer.stop()
countdown_label.hide()
func _on_leave_timer_timeout() -> void:
count -= 1
countdown_label.text = str(count)
if count == 0:
for clr in Buff.colors:
HasWon.escaped[clr] = 0
var escaped: Array[Node2D] = collection_zone.get_overlapping_bodies()
HasWon.won = false
for entity: Entity in escaped:
HasWon.escaped[Buff.colors.keys()[entity.alliance]] += 1
if entity is Player:
HasWon.won = true
game_over.emit()