New art assets, work on implementing more adventurer behavior and making them work better together, and steps towards completing the first quest loop.
This commit is contained in:
@@ -5,11 +5,18 @@ var length : int :
|
||||
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)
|
||||
#TODO: Instead retrieve the array length with a getter
|
||||
|
||||
func remove_member(member : Adventurer) -> void:
|
||||
members.erase(member)
|
||||
|
||||
|
||||
func try_advance() -> Adventurer:
|
||||
if length > 0:
|
||||
@@ -18,6 +25,18 @@ func try_advance() -> Adventurer:
|
||||
return null
|
||||
|
||||
func advance() -> Adventurer:
|
||||
var member = members.pop_front()
|
||||
advanced.emit()
|
||||
return member
|
||||
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