Compare commits

...

3 commits

3 changed files with 10 additions and 3 deletions

View file

@ -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
@ -93,7 +94,7 @@ func do_step():
if pieces_moving.is_empty():
# no tweens -> invalid -> annoying error message
tween.stop()
tween.kill()
func undo_step() -> Callable:
var undos: Array[Callable] = []

View file

@ -38,7 +38,7 @@ var advancing := false
@onready var sounds_undo := audio_stream_randomizer_from_dir("res://sfx/undo")
@onready var sounds_redo := audio_stream_randomizer_from_dir("res://sfx/redo")
@export_range(0, 1) var slowmo_speed := 0.1
@export_range(0, 1) var slowmo_speed := 0.2
func _ready() -> void:
advance_level()
@ -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
@ -121,7 +122,7 @@ func restart():
func board_step():
hist.add_do_method(board.do_step)
hist.add_do_property(self, "time", time+1)
hist.add_do_property(self, "time", time+1)
hist.add_undo_property(self, "time", time)
hist.add_undo_method(board.undo_step())
func step(move: Vector2i):

View file

@ -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))