Files
pomchronicles/guild_queue.gd

43 lines
895 B
GDScript

class_name GuildQueue extends Node2D
var length : int :
get:
return len(members)
@export var direction : Vector2 = Vector2.ZERO
var members : Array[Adventurer] = []
var front : Adventurer :
get: return null if len(members) == 0 else members[0]
signal advanced()
func add_member(member : Adventurer) -> void:
members.append(member)
func remove_member(member : Adventurer) -> void:
members.erase(member)
func try_advance() -> Adventurer:
if length > 0:
return advance()
else:
return null
func advance() -> Adventurer:
advanced.emit()
return front
func get_last_position() -> Vector2:
return get_index_position(length - 1)
func get_index_position(idx : int) -> Vector2:
return global_position + idx * 100 * direction
func get_member_position(member) -> Vector2:
var idx = members.find(member)
if idx == -1:
return Vector2.ZERO
else:
return get_index_position(idx)