diff --git a/board.gd b/board.gd index 0f67886..ef801da 100644 --- a/board.gd +++ b/board.gd @@ -82,6 +82,7 @@ func do_step(): pieces_diagonal.sort_custom(magnitude_sort) if last_tween: + last_tween.custom_step(413) last_tween.kill() var tween := get_tree().create_tween() last_tween = tween diff --git a/main.gd b/main.gd index 37d4279..5d7565f 100644 --- a/main.gd +++ b/main.gd @@ -52,6 +52,7 @@ func _process(delta: float) -> void: [time, Engine.get_frames_per_second(), move_hold_time, arrf(move_hold_time)] var slowmo := Input.is_action_pressed("slowmo"); $SlowmoIndicator.text = "slowmo" if slowmo else "" + # TODO: only slowmo during rolltime? Engine.time_scale = slowmo_speed if slowmo else 1.0 # TODO: this is kinda comically slow BUT STOP WORKING ON THE GAME AudioServer.playback_speed_scale = slowmo_speed if slowmo else 1.0 diff --git a/piece.gd b/piece.gd index 890afa0..4070a2e 100644 --- a/piece.gd +++ b/piece.gd @@ -25,8 +25,13 @@ func pos_of_lpos(pos: Vector2i, y := 0.0) -> Vector3: func target_pos() -> Vector3: return pos_of_lpos(lpos, position.y) + Vector3(0.5, 0, 0.5) +var last_move_tween: Tween = null func tween_to_target(tween := get_tree().create_tween()): + if last_move_tween: + last_move_tween.custom_step(413) + last_move_tween.kill() tween.tween_property(self, "position", target_pos(), anim_time) + last_move_tween = tween func lpos_of_pos(pos: Vector3) -> Vector2i: return Vector2i(int(pos.x), int(pos.z))