diff options
author | Daniel Weipert <git@mail.dweipert.de> | 2024-09-02 23:36:00 +0200 |
---|---|---|
committer | Daniel Weipert <git@mail.dweipert.de> | 2024-09-02 23:36:00 +0200 |
commit | 7d7d845e76f78a87cf87c9464d700e52cd88ce6f (patch) | |
tree | 4d2fc8cd2f8b5b7b0a142c596155de095e1915a2 /Mob.gd | |
parent | 14e51610a66099af5cba7cb92876e691fe017216 (diff) |
next commit
Diffstat (limited to 'Mob.gd')
-rw-r--r-- | Mob.gd | 17 |
1 files changed, 16 insertions, 1 deletions
@@ -12,10 +12,12 @@ var is_selected = false : Mob.selected_unit = self selected.emit() $Label.visible = true + line.visible = true else: if Mob.selected_unit == self: Mob.selected_unit = null $Label.visible = false + line.visible = false is_selected = value queue_redraw() @@ -31,7 +33,11 @@ var target: Node2D : var immediate_target: Vector2 var current_path: PackedVector2Array -var current_path_idx = 0 +var current_path_idx = 0 : + set(value): + current_path_idx = value + if line: + line.points = PackedVector2Array(current_path.slice(value)) var previous_path: PackedVector2Array var previous_path_idx = 0 @@ -42,6 +48,8 @@ var recent_closest_paths: Array[PackedVector2Array] var roaming_mode = false +@onready var line: Line2D = $MobPathLine.duplicate() + @export var speed: float = 100 @export var hp = 50 @@ -52,6 +60,8 @@ func _ready(): if not target: target = get_tree().current_scene.find_child("Goal") + get_tree().current_scene.add_child(line) + reset_path() Game.path_grid_changed.connect(func(): reset_path() @@ -165,6 +175,10 @@ func reset_path(): current_path_idx = 0 + if line: + line.points = PackedVector2Array(current_path) + + func get_grid_path(partial = false): return Game.path_grid.get_point_path( Game.map.local_to_map(global_position), @@ -191,3 +205,4 @@ func _on_selection_area_mouse_exited() -> void: func _on_tree_exiting() -> void: is_selected = false + line.queue_free() |