Vast improvements and a working finite state machine, working on new guild member registration.
This commit is contained in:
31
visitor_spawner.gd
Normal file
31
visitor_spawner.gd
Normal file
@@ -0,0 +1,31 @@
|
||||
class_name VisitorSpawner extends Node2D
|
||||
|
||||
@onready var timer : Timer = $Timer
|
||||
@export var total_visitors : int = 0
|
||||
@export var min_time : float = 5
|
||||
@export var max_time : float = 10
|
||||
var visitors_remaining : int
|
||||
signal visitor_spawned(current : int, total : int)
|
||||
|
||||
func _ready() -> void:
|
||||
Guild.visitor_spawner = self
|
||||
visitors_remaining = total_visitors
|
||||
if visitors_remaining > 0:
|
||||
timer.start(randf_range(min_time, max_time))
|
||||
setup_ui.call_deferred()
|
||||
|
||||
func setup_ui():
|
||||
Game.setup_visitor_ui(self)
|
||||
|
||||
|
||||
func spawn_visitor() -> void:
|
||||
Guild.spawn_visitor(global_position)
|
||||
visitors_remaining-=1
|
||||
visitor_spawned.emit(visitors_remaining, total_visitors)
|
||||
|
||||
|
||||
func _on_timer_timeout() -> void:
|
||||
if visitors_remaining > 0:
|
||||
spawn_visitor()
|
||||
else:
|
||||
timer.stop()
|
||||
Reference in New Issue
Block a user