36 lines
916 B
GDScript
36 lines
916 B
GDScript
@icon("res://icons/turn_action.svg")
|
|
extends ActionDecider
|
|
|
|
@export var mover: Mover
|
|
|
|
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
|
|
|
|
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(mover, movement_dir)):
|
|
return
|