Diffstat (limited to 'dots/dot.gd')
-rw-r--r--dots/dot.gd30
1 files changed, 26 insertions, 4 deletions
diff --git a/dots/dot.gd b/dots/dot.gd
index 40c77be..6057185 100644
--- a/dots/dot.gd
+++ b/dots/dot.gd
@@ -7,21 +7,43 @@ onready var ray : RayCast2D = $dot_collisions/dotray
onready var dotsprite : Sprite = $dotsprite
var tween = Tween.new()
+var initial = true
+
+var prev_go_to
export(GlobalVars.type) var dot_type
func _ready():
add_child(tween)
-func move():
+func move(collision_only = false):
ray.force_raycast_update()
var go_to = Vector2(global_position.x, ray.get_collision_point().y - 35)
- dotcollisions.global_position = go_to
+ if collision_only:
+ dotcollisions.global_position = go_to
+ prev_go_to = go_to
+ return
+ else: # cuz the ray moves too you see
+ go_to = prev_go_to
+ tween_item_position(dotsprite, dotsprite.global_position, go_to, .25)
+ # log motion into entity tracker
+ for rows in EntityTracker.rows:
+ var i = rows.find(self)
+ if i != -1:
+ rows[i] = 0
+ yield(tween, "tween_all_completed")
+ Events.emit_signal("done_moving")
- tween.interpolate_property(dotsprite, "global_position",
- dotsprite.global_position, go_to, .25,
+func tween_item_position(node, old, new, length):
+ tween.interpolate_property(node, "global_position",
+ old, new, length,
Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
tween.start()
+
+func _initial_move(position):
+ var parameters = [self, Vector2(position.x, -200), position, 2]
+# global_position = parameters[1]
+ tween_item_position(parameters[0], parameters[1], parameters[2], parameters[3])
yield(tween, "tween_all_completed")
Events.emit_signal("done_moving")