diff options
Diffstat (limited to 'Scenes/MonsterSquare.gd')
-rw-r--r-- | Scenes/MonsterSquare.gd | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Scenes/MonsterSquare.gd b/Scenes/MonsterSquare.gd new file mode 100644 index 0000000..89ae2e3 --- /dev/null +++ b/Scenes/MonsterSquare.gd @@ -0,0 +1,32 @@ +extends Monster + +onready var cardinal = Vector2.UP + +const directions = [Vector2(1,0), Vector2(0,1), Vector2(-1,0), Vector2(0,-1)] +var dir_i = 0 + +func _ready(): + ._ready() + dir_i = 0 + if randf() < 0.5: + cardinal = Vector2.RIGHT + +func try_moving(player_pos : Vector2, monster_pos : Vector2) -> MonsterAction: + var action = MonsterAction.new() + + var next_tile = monster_pos + var next_movement = directions[dir_i] + + var next_pos = monster_pos + next_movement + + if next_pos == player_pos: + action.type = MonsterActionType.ATTACK + else: + action.type = MonsterActionType.MOVE + action.dir = next_movement + dir_i = (dir_i + 1) % 4 + + return action + +func cor_attack(args : Array): + yield(.cor_attack(args), "completed") |