forked from newt/gmtk-2024
44 lines
1,019 B
GDScript
44 lines
1,019 B
GDScript
extends Node2D
|
|
|
|
@export var next_stage: String
|
|
var completed: bool
|
|
var go_arrow_blink_on: bool
|
|
|
|
@onready var right_border = $Borders/Right/CollisionShape2D
|
|
@onready var right_trigger = $Borders/Right/Trigger
|
|
@onready var bgm = $BGM
|
|
@onready var spawner = $Level2Spawner
|
|
@onready var go_arrow = $GoArrow
|
|
@onready var blink_timer = $BlinkTimer
|
|
|
|
#ctrlctrlv
|
|
func _ready() -> void:
|
|
completed = false
|
|
go_arrow_blink_on = false
|
|
go_arrow.hide()
|
|
|
|
func _process(delta: float) -> void:
|
|
## this wave just a few crawlers
|
|
var completed = spawner.is_complete()
|
|
|
|
if completed:
|
|
toggle_go_arrow()
|
|
right_border.shape = null
|
|
right_trigger.body_entered.connect(_on_trigger)
|
|
|
|
if !bgm.playing:
|
|
bgm.play()
|
|
|
|
func _on_trigger(body: Node) -> void:
|
|
if body is Player:
|
|
get_tree().change_scene_to_file(next_stage)
|
|
|
|
func toggle_go_arrow() -> void:
|
|
if blink_timer.is_stopped():
|
|
blink_timer.start()
|
|
if go_arrow_blink_on:
|
|
go_arrow.hide()
|
|
go_arrow_blink_on = false
|
|
else:
|
|
go_arrow.show()
|
|
go_arrow_blink_on = true
|