Moved everything into a file system. Links broken.
This commit is contained in:
42
scripts/guild_queue.gd
Normal file
42
scripts/guild_queue.gd
Normal file
@@ -0,0 +1,42 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user