@icon("res://icons/turn_action.svg") extends ActionDecider @onready var grid_position: GridPosition = $"../GridPosition" func poll_movement_dir(): var movement_dir = Vector2i.ZERO if Input.is_action_pressed("move_up"): movement_dir = Vector2i.UP elif Input.is_action_pressed("move_down"): movement_dir = Vector2i.DOWN elif Input.is_action_pressed("move_left"): movement_dir = Vector2i.LEFT elif Input.is_action_pressed("move_right"): movement_dir = Vector2i.RIGHT return movement_dir func _input(event: InputEvent) -> void: if not is_deciding(): return if event is InputEventKey: if event.is_pressed(): match event.keycode: KEY_SPACE: print("skip turn!") if try_perform(SkipAction.new()): return #KEY_UP: #if try_perform(MoveAction.new(grid_position, Vector2i.UP)): #return #KEY_DOWN: #if try_perform(MoveAction.new(grid_position, Vector2i.DOWN)): #return #KEY_LEFT: #if try_perform(MoveAction.new(grid_position, Vector2i.LEFT)): #return #KEY_RIGHT: #if try_perform(MoveAction.new(grid_position, Vector2i.RIGHT)): #return func _process(_delta: float) -> void: if not is_deciding(): return var movement_dir = poll_movement_dir() if movement_dir != Vector2i.ZERO: if try_perform(MoveAction.new(grid_position, movement_dir)): return