Some changes
This commit is contained in:
@@ -1,18 +1,29 @@
|
||||
class_name ItemAction
|
||||
const ConversationAction = preload("res://cutscene/conversation/ConversationAction.gd")
|
||||
const DialogueAction = preload("res://cutscene/dialogue/DialogueAction.gd")
|
||||
|
||||
# Passed as extra_game_states so {{item_name}} and {{quantity}} resolve in the .dialogue file.
|
||||
class ItemDialogueState:
|
||||
var item_name:String
|
||||
var quantity:int
|
||||
func _init(name:String, qty:int) -> void:
|
||||
item_name = name
|
||||
quantity = qty
|
||||
|
||||
static var PICKUP_DIALOGUE:DialogueResource = preload("res://dialogue/item/pickup.dialogue")
|
||||
|
||||
static func itemGetCallable(params:Dictionary) -> int:
|
||||
assert(params.has('stack'))
|
||||
PARTY.BACKPACK.addStack(params['stack'])
|
||||
|
||||
var text = "Obtained %s x%d." % [Item.getItemName(params['stack'].item), params['stack'].quantity]
|
||||
params['cutscene'].addCallable(ConversationAction.getTextboxCallable(text).merged({
|
||||
'position': Cutscene.CUTSCENE_ADD_NEXT,
|
||||
}))
|
||||
var stack:ItemStack = params['stack']
|
||||
PARTY.BACKPACK.addStack(stack)
|
||||
|
||||
var state = ItemDialogueState.new(Item.getItemName(stack.item), stack.quantity)
|
||||
var dialogueParams:Dictionary = DialogueAction.getDialogueCallable(PICKUP_DIALOGUE, 'start', [state])
|
||||
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
|
||||
'function': itemGetCallable,
|
||||
'stack': itemStack,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user