Decouple everything from globals
This commit is contained in:
@@ -13,53 +13,22 @@ enum UnlockBehavior {
|
||||
func has_id() -> bool:
|
||||
return not String(id).strip_edges().is_empty()
|
||||
|
||||
func get_valid_requirements() -> Array[GoalRequirementData]:
|
||||
var result: Array[GoalRequirementData] = []
|
||||
for requirement_resource in requirements:
|
||||
if requirement_resource == null:
|
||||
continue
|
||||
if not bool(requirement_resource.is_valid()):
|
||||
continue
|
||||
|
||||
result.append(requirement_resource)
|
||||
|
||||
return result
|
||||
func get_requirements() -> Array[GoalRequirementData]:
|
||||
return requirements.duplicate()
|
||||
|
||||
func is_valid() -> bool:
|
||||
if not has_id():
|
||||
return false
|
||||
|
||||
return not get_valid_requirements().is_empty()
|
||||
|
||||
func is_met() -> bool:
|
||||
var valid_requirements: Array[GoalRequirementData] = get_valid_requirements()
|
||||
if valid_requirements.is_empty():
|
||||
|
||||
if requirements.is_empty():
|
||||
return false
|
||||
|
||||
for requirement_resource in valid_requirements:
|
||||
if not bool(requirement_resource.is_met()):
|
||||
return false
|
||||
|
||||
return true
|
||||
|
||||
func get_first_requirement_summary() -> String:
|
||||
var valid_requirements: Array[GoalRequirementData] = get_valid_requirements()
|
||||
if valid_requirements.is_empty():
|
||||
return ""
|
||||
return String(valid_requirements[0].get_summary_text())
|
||||
|
||||
func get_progress() -> float:
|
||||
var valid_requirements: Array[GoalRequirementData] = get_valid_requirements()
|
||||
if valid_requirements.is_empty():
|
||||
return 0.0
|
||||
|
||||
var min_progress: float = 1.0
|
||||
for requirement in valid_requirements:
|
||||
if requirement == null or not requirement.is_valid():
|
||||
for req in requirements:
|
||||
if req == null:
|
||||
continue
|
||||
if req.get_currency() == null:
|
||||
continue
|
||||
if not req.has_valid_amount():
|
||||
continue
|
||||
|
||||
var requirement_progress: float = requirement.get_progress()
|
||||
if requirement_progress < min_progress:
|
||||
min_progress = requirement_progress
|
||||
|
||||
return min_progress
|
||||
return true
|
||||
|
||||
Reference in New Issue
Block a user