summaryrefslogtreecommitdiff
path: root/Mob.gd
diff options
context:
space:
mode:
Diffstat (limited to 'Mob.gd')
-rw-r--r--Mob.gd17
1 files changed, 16 insertions, 1 deletions
diff --git a/Mob.gd b/Mob.gd
index 9dfa923..3f1a00e 100644
--- a/Mob.gd
+++ b/Mob.gd
@@ -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()