feat: add exact player context actions
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
class_name PlayerInteractionResult
|
||||
extends RefCounted
|
||||
|
||||
const KIND_ANIMAL := &"animal"
|
||||
const KIND_RESOURCE := &"resource"
|
||||
const KIND_PANTRY := &"pantry"
|
||||
const KIND_GUARD := &"guard"
|
||||
const KIND_STUDY := &"study"
|
||||
|
||||
var kind: StringName
|
||||
var action_id: StringName
|
||||
var target_id: StringName
|
||||
var display_name: String
|
||||
var prompt_text: String
|
||||
var detail_text: String
|
||||
var blocked_reason: String
|
||||
var target_node: Node
|
||||
|
||||
|
||||
func _init(
|
||||
interaction_kind: StringName,
|
||||
interaction_action_id: StringName,
|
||||
interaction_target_id: StringName,
|
||||
interaction_display_name: String,
|
||||
interaction_prompt_text: String,
|
||||
interaction_detail_text: String,
|
||||
interaction_target_node: Node,
|
||||
interaction_blocked_reason := ""
|
||||
) -> void:
|
||||
kind = interaction_kind
|
||||
action_id = interaction_action_id
|
||||
target_id = interaction_target_id
|
||||
display_name = interaction_display_name
|
||||
prompt_text = interaction_prompt_text
|
||||
detail_text = interaction_detail_text
|
||||
target_node = interaction_target_node
|
||||
blocked_reason = interaction_blocked_reason
|
||||
|
||||
|
||||
func is_available() -> bool:
|
||||
return blocked_reason.is_empty()
|
||||
|
||||
|
||||
func cache_key() -> String:
|
||||
return (
|
||||
"|"
|
||||
. join(
|
||||
[
|
||||
String(kind),
|
||||
String(action_id),
|
||||
String(target_id),
|
||||
prompt_text,
|
||||
detail_text,
|
||||
blocked_reason,
|
||||
]
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user