class_name GoalRequirementData extends Resource @export var currency: Resource @export var amount_mantissa: float = 0.0 @export var amount_exponent: int = 0 func get_currency_id() -> StringName: if currency == null: return &"" return GameState.get_currency_id(currency) func get_amount() -> BigNumber: return BigNumber.new(amount_mantissa, amount_exponent) func has_valid_currency() -> bool: var currency_id: StringName = get_currency_id() if currency_id == &"": return false return GameState.is_known_currency_id(currency_id) func has_valid_amount() -> bool: return get_amount().mantissa >= 0.0 func is_valid() -> bool: return has_valid_currency() and has_valid_amount() func is_met() -> bool: if not is_valid(): return false var total_amount: BigNumber = GameState.get_total_currency_acquired_by_id(get_currency_id()) return not total_amount.is_less_than(get_amount()) func get_summary_text() -> String: if not is_valid(): return "" var currency_name: String = GameState.get_currency_name(get_currency_id()) return "%s %s" % [get_amount().to_string_suffix(2), currency_name]