GameState.fleet_speed_multiplier (1.0-3.0) is applied at the point of
use - Fleet's cruise anchor and Ship's own max_speed/acceleration -
rather than baked into stored stats, so a stat upgrade researched
mid-boost can't corrupt the base value and the fader takes effect
immediately with no re-apply step.
Ship.arrive_radius is scaled by the same multiplier: at higher speeds
each physics tick covers a proportionally larger step, and once that
step outgrows a fixed arrive_radius the ship can overshoot its
snap-to-target zone every tick while chasing a target that's now also
receding faster - visible as the fleet stretching apart under boost.
Scaling it preserves the same "snaps onto its slot" tightness at any
boost level that 1.0x already has.
SpeedFader.gd is a self-contained vertical drag control (TouchJoystick's
raw-touch idiom, not _gui_input) that writes straight to the autoload
rather than reporting a value for something else to apply. It also
resets the multiplier to 1.0 the instant fleet.has_capability("distorder")
goes false, so a fleet can never be left permanently boosted by a vessel
it no longer has.
VesselDistorderComponent carries no per-shot behaviour (energy drain
while boosted is #62) - its presence is what matters. Registered in
VesselDefinitions, wired into the crafter/hangar/ship-lab menus per
#57's note (5/5/6 -> 6/6/7 columns).
24 lines
1.1 KiB
Text
24 lines
1.1 KiB
Text
[gd_resource type="Resource" script_class="VesselDefinition" load_steps=3 format=3]
|
|
[ext_resource type="Script" path="res://VesselDefinition.gd" id="1"]
|
|
[ext_resource type="PackedScene" path="res://VesselDistorderComponent.tscn" id="2"]
|
|
[resource]
|
|
script = ExtResource("1")
|
|
definition_id = "distorder"
|
|
display_name = "Distorder"
|
|
description = "Unarmed space-time distortion hull. While one flies with the fleet, a fader lets you push cruise speed beyond its default."
|
|
build_cost = 14
|
|
build_resource_costs = {"ore": 14, "energy": 8}
|
|
build_time = 16.0
|
|
icon = 37
|
|
glow_color = Color(0.7, 0.3, 1, 1)
|
|
hull_points = PackedVector2Array(0, -24, -14, -2, -6, 18, 10, 10, 12, -10)
|
|
fleet_eligible = true
|
|
capabilities = PackedStringArray("distorder")
|
|
component_scenes = Array[PackedScene]([ExtResource("2")])
|
|
base_stats = {"max_speed": 430.0, "acceleration": 410.0, "delivery_speed": 180.0}
|
|
unlock_id = "unlock_distorder"
|
|
unlock_name = "Unlock Distorder"
|
|
unlock_description = "Research a space-time distortion hull - while one flies with the fleet, a fader lets you push cruise speed beyond its default."
|
|
unlock_cost = 0
|
|
unlock_resource_costs = {"energy": 50}
|
|
unlock_icon = -1
|