summaryrefslogtreecommitdiff
path: root/map/objects/ledge.gd
diff options
context:
space:
mode:
authorDaniel Weipert <git@mail.dweipert.de>2025-03-10 18:22:09 +0100
committerDaniel Weipert <git@mail.dweipert.de>2025-03-10 18:22:09 +0100
commit440020e642f539079867577435a9f8b02075699b (patch)
tree99acccfc1574a8ffc656d6f64ff934949edb1f52 /map/objects/ledge.gd
initial commitHEADmain
Diffstat (limited to 'map/objects/ledge.gd')
-rw-r--r--map/objects/ledge.gd46
1 files changed, 46 insertions, 0 deletions
diff --git a/map/objects/ledge.gd b/map/objects/ledge.gd
new file mode 100644
index 0000000..755cd85
--- /dev/null
+++ b/map/objects/ledge.gd
@@ -0,0 +1,46 @@
+extends Area2D
+
+
+var is_jumping := false
+
+
+func _on_body_entered(body: Node2D) -> void:
+ if body is Player and not is_jumping:
+ print("??", is_jumping)
+ is_jumping = true
+
+ var grid_position := World.local_to_map(global_position)
+ var target_position := World.map_to_local(grid_position + Vector2i(0, 1))
+
+ var shadow = body.get_node("Shadow")
+ var shadow_offset = Vector2(-4,5)#shadow.position
+
+ var tween1 := create_tween().set_ease(Tween.EASE_IN_OUT).set_parallel()
+ tween1.tween_property(body, "position", body.position + Vector2(0, -3), 0.25)
+ tween1.tween_property(shadow, "position", shadow.position + Vector2(0, 3), 0.25)
+ await tween1.finished
+
+ var tween = create_tween().set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_QUAD).set_parallel()
+
+ tween.tween_property(
+ body,
+ "global_position",
+ target_position,
+ 1.0
+ )
+ tween.tween_property(
+ get_viewport().get_camera_2d(),
+ "global_position",
+ target_position,
+ 1.0
+ )
+
+ tween.tween_property(
+ shadow,
+ "global_position",
+ target_position + shadow_offset,
+ 1.0
+ )
+
+ await tween.finished
+ is_jumping = false