27 lines
764 B
GDScript
27 lines
764 B
GDScript
@icon("walk_character_event.svg")
|
|
class_name WBWalkCharacterEvent
|
|
extends WBEvent
|
|
## Event that makes a character walk a certain distance in the given direction.
|
|
|
|
|
|
## Character to move.
|
|
@export var character: WBCharacter
|
|
## Direction for the character to walk.
|
|
@export var direction: WBCharacter.Dir
|
|
## Number of tiles to move the character.
|
|
@export_custom(0, "suffix:tiles") var distance: int
|
|
## Whether the character should be running.
|
|
@export var run: bool = false
|
|
|
|
|
|
func _perform() -> void:
|
|
if not character:
|
|
push_error("Target character does not exist.")
|
|
return
|
|
|
|
character.running = run
|
|
var remaining_distance := distance
|
|
while remaining_distance > 0:
|
|
character.start_move(direction, true)
|
|
await character.move_finished
|
|
remaining_distance -= 1
|