Initial commit
This commit is contained in:
commit
3b96451047
71 changed files with 2302 additions and 0 deletions
37
addons/walkabout/events/move_character_event.gd
Normal file
37
addons/walkabout/events/move_character_event.gd
Normal file
|
@ -0,0 +1,37 @@
|
|||
@icon("move_character_event.svg")
|
||||
class_name WBMoveCharacterEvent
|
||||
extends WBEvent
|
||||
## Event that moves a character to the specified tile.
|
||||
|
||||
|
||||
## Charcter to move.
|
||||
@export var character: WBCharacter
|
||||
## Tile position to move the target to.
|
||||
@export var target_tile: Vector2i
|
||||
## Whether the character should be running.
|
||||
@export var run: bool = false
|
||||
## Whether the character should move vertically or horizontally first.
|
||||
@export var prefer_vertical: bool = false
|
||||
|
||||
|
||||
func _perform() -> void:
|
||||
while character.tile_position != target_tile:
|
||||
if prefer_vertical:
|
||||
if character.tile_position.y < target_tile.y:
|
||||
character.start_move(WBCharacter.Dir.DOWN, true)
|
||||
elif character.tile_position.y > target_tile.y:
|
||||
character.start_move(WBCharacter.Dir.UP, true)
|
||||
elif character.tile_position.x < target_tile.x:
|
||||
character.start_move(WBCharacter.Dir.RIGHT, true)
|
||||
elif character.tile_position.x > target_tile.x:
|
||||
character.start_move(WBCharacter.Dir.LEFT, true)
|
||||
else:
|
||||
if character.tile_position.x < target_tile.x:
|
||||
character.start_move(WBCharacter.Dir.RIGHT, true)
|
||||
elif character.tile_position.x > target_tile.x:
|
||||
character.start_move(WBCharacter.Dir.LEFT, true)
|
||||
elif character.tile_position.y < target_tile.y:
|
||||
character.start_move(WBCharacter.Dir.DOWN, true)
|
||||
elif character.tile_position.y > target_tile.y:
|
||||
character.start_move(WBCharacter.Dir.UP, true)
|
||||
await character.move_finished
|
Loading…
Add table
Add a link
Reference in a new issue