Fix the stop stutter, and hide unresearched buildings from the menu
Forgejo #13: releasing the stick paused, then moved again before settling. stop() aims each ship at a braking point ahead of it, but the ship's own velocity was ~0 - the anchor had been carrying it - so it started from REST, accelerated into its own stopping distance, and halted a second time. Measured: 0 -> 45 -> 90 -> 135 -> 180 -> brake. stop() now hands the fleet's motion to the ship, so the release is one continuous decelerating coast (222 -> 0) to the identical endpoint. test_joystick_control now asserts the speed one frame after release is a real fraction of cruise, and never rises afterwards. Forgejo #21: unresearched structures are no longer listed greyed out. They are hidden, and the menu repacks around what is left - a fixed grid with entries hidden would otherwise leave holes where they used to be. An entry alone on its row is centred rather than hanging in the left column. Researched-but-not-usable is still shown greyed: an extractor with no planet under the fleet is "not now", not "not yet". This reverses a documented decision (the old comment argued that always listing everything stops the player wondering whether the game has it at all), so test_skill_tree's matching assertion was updated from greyed-but-listed to hidden. The gate itself is unchanged and still refuses a build forced past the menu. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
da8f6a81ea
commit
0e071877e2
6 changed files with 261 additions and 18 deletions
8
Fleet.gd
8
Fleet.gd
|
|
@ -168,6 +168,14 @@ func stop() -> void:
|
|||
# enough that ships always lag and always report motion, which is
|
||||
# the only reason releasing the stick looked right.
|
||||
var motion: Vector2 = ship.velocity + ship.fleet_velocity
|
||||
# HAND THE FLEET'S MOTION TO THE SHIP. Until now the anchor was
|
||||
# carrying it along and its own `velocity` was ~0, so aiming it at a
|
||||
# braking point ahead made it start from REST: the fleet stopped
|
||||
# dead, then accelerated into its own stopping distance and halted a
|
||||
# second time. That is the "pause, then it moves again" stutter.
|
||||
# Giving it the velocity it was actually travelling at makes the
|
||||
# stop one continuous decelerating coast.
|
||||
ship.velocity = motion
|
||||
# Context that is no longer true: the fleet is not cruising any
|
||||
# more, so leaving it set would have Ship face a heading it is not
|
||||
# travelling on.
|
||||
|
|
|
|||
Loading…
Reference in a new issue