class_name ActionOffer extends RefCounted var _offer_id: StringName var _action_id: StringName var _target: WorldTargetHandle var _display_name: String var _enabled: bool var _rejection_reason: String var _parameters: Dictionary var _priority: float func _init( offer_id: StringName = &"", action_id: StringName = &"", target: WorldTargetHandle = null, display_name: String = "", enabled: bool = true, rejection_reason: String = "", parameters: Dictionary = {}, priority: float = 0.0 ) -> void: _offer_id = offer_id _action_id = action_id _target = target _display_name = display_name _enabled = enabled _rejection_reason = rejection_reason _parameters = parameters.duplicate(true) _priority = priority func is_valid() -> bool: return ( not _offer_id.is_empty() and not _action_id.is_empty() and _target != null and _target.is_well_formed() and is_finite(_priority) and not WorldTargetCapability._contains_object(_parameters) ) func get_offer_id() -> StringName: return _offer_id func get_action_id() -> StringName: return _action_id func get_target() -> WorldTargetHandle: return _target func get_display_name() -> String: return _display_name func is_enabled() -> bool: return _enabled func get_rejection_reason() -> String: return _rejection_reason func get_parameters() -> Dictionary: return _parameters.duplicate(true) func get_priority() -> float: return _priority