Files
tekton/scripts/behaviors/actions/do_arrange.gd
T
2025-01-28 14:17:29 +08:00

27 lines
752 B
GDScript

extends ActionLeaf
func tick(actor: Node, blackboard: Blackboard) -> int:
var source_slot = blackboard.get_value("source_slot")
var target_slot = blackboard.get_value("target_slot")
if source_slot == -1 or target_slot == -1:
return FAILURE
# Verify conditions are still valid
if actor.action_points < 2 or actor.playerboard[source_slot] == -1:
return FAILURE
if actor.playerboard[target_slot] != -1:
return FAILURE
# Do the arrangement
if actor.is_multiplayer_authority():
var item = actor.playerboard[source_slot]
actor.playerboard[target_slot] = item
actor.playerboard[source_slot] = -1
actor.rpc("sync_playerboard", actor.playerboard)
actor.has_performed_action = true
actor.action_points -= 2
return SUCCESS