31 lines
883 B
GDScript
31 lines
883 B
GDScript
class_name ItemAction
|
|
|
|
class ItemDialogueState:
|
|
var item_name:String
|
|
var quantity:int
|
|
func _init(itemName:String, qty:int) -> void:
|
|
item_name = itemName
|
|
quantity = qty
|
|
|
|
static func itemGetCallable(params:Dictionary) -> int:
|
|
assert(params.has('stack'))
|
|
var stack:ItemStack = params['stack']
|
|
PARTY.BACKPACK.addStack(stack)
|
|
|
|
var state = ItemDialogueState.new(Item.getItemName(stack.item), stack.quantity)
|
|
var dialogueParams:Dictionary = DialogueAction.getDialogueCallable(
|
|
"res://dialogue/item/pickup",
|
|
"start",
|
|
[state],
|
|
DialogueAction.DialogueMode.CONVERSATION
|
|
)
|
|
dialogueParams['position'] = Cutscene.CUTSCENE_ADD_NEXT
|
|
params['cutscene'].addCallable(dialogueParams)
|
|
return Cutscene.CUTSCENE_CONTINUE
|
|
|
|
static func getItemCallable(itemStack:ItemStack) -> Dictionary:
|
|
return {
|
|
'function': itemGetCallable,
|
|
'stack': itemStack,
|
|
}
|