From 8d089d6f76e7e911eadb4a19f593b128e81110f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Wisniewski?= Date: Mon, 17 Aug 2026 19:47:22 +0200 Subject: [PATCH] Remove the Thrusters upgrade - fleet speed is now global (#73) int_speed/shd_speed granted +max_speed/+acceleration per level to a single vessel, which is redundant now that #59/#62 gave the whole fleet a shared speed fader instead - a per-ship speed stat has nothing left to meaningfully affect since #59's multiplier is applied at the point of use in Ship.gd regardless of the ship's own base stats. Deleted both upgrade resources and their vessel-definition references outright rather than leaving them unused. test_ship_lab.gd's per-vessel-type isolation check used int_speed as an arbitrary interceptor-only upgrade to prove it doesn't leak into transporter stats - swapped to int_range, which still exists. Its upgrade-card-count assertion updated for 3 remaining interceptor upgrades instead of 4. --- InterceptorSpeedUpgrade.tres | 12 ------------ InterceptorVesselDefinition.tres | 5 ++--- ShieldSpeedUpgrade.tres | 12 ------------ ShieldVesselDefinition.tres | 5 ++--- tests/test_ship_lab.gd | 7 +++++-- 5 files changed, 9 insertions(+), 32 deletions(-) delete mode 100644 InterceptorSpeedUpgrade.tres delete mode 100644 ShieldSpeedUpgrade.tres diff --git a/InterceptorSpeedUpgrade.tres b/InterceptorSpeedUpgrade.tres deleted file mode 100644 index 16ac1fe..0000000 --- a/InterceptorSpeedUpgrade.tres +++ /dev/null @@ -1,12 +0,0 @@ -[gd_resource type="Resource" script_class="VesselUpgradeDefinition" load_steps=2 format=3] -[ext_resource type="Script" path="res://VesselUpgradeDefinition.gd" id="1"] -[resource] -script = ExtResource("1") -upgrade_id = "int_speed" -display_name = "Thrusters" -description = "+40 top speed, +60 acceleration per level." -base_cost = 25 -max_level = 3 -research_point_cost = 1 -icon = 18 -additive_modifiers = {"max_speed": 40.0, "acceleration": 60.0} diff --git a/InterceptorVesselDefinition.tres b/InterceptorVesselDefinition.tres index f0330e5..1db52b7 100644 --- a/InterceptorVesselDefinition.tres +++ b/InterceptorVesselDefinition.tres @@ -1,10 +1,9 @@ -[gd_resource type="Resource" script_class="VesselDefinition" load_steps=8 format=3] +[gd_resource type="Resource" script_class="VesselDefinition" load_steps=7 format=3] [ext_resource type="Script" path="res://VesselDefinition.gd" id="1"] [ext_resource type="PackedScene" path="res://VesselWeaponComponent.tscn" id="2"] [ext_resource type="Resource" path="res://InterceptorDamageUpgrade.tres" id="3"] [ext_resource type="Resource" path="res://InterceptorRateUpgrade.tres" id="4"] [ext_resource type="Resource" path="res://InterceptorRangeUpgrade.tres" id="5"] -[ext_resource type="Resource" path="res://InterceptorSpeedUpgrade.tres" id="6"] [ext_resource type="PackedScene" path="res://VesselCargoComponent.tscn" id="7"] [resource] script = ExtResource("1") @@ -19,4 +18,4 @@ fleet_eligible = true capabilities = PackedStringArray("weapon", "cargo") component_scenes = Array[PackedScene]([ExtResource("2"), ExtResource("7")]) base_stats = {"damage": 1.0, "fire_cooldown": 0.5, "fire_range": 320.0, "max_speed": 460.0, "acceleration": 450.0, "delivery_speed": 180.0, "cargo_capacity": 20.0} -upgrades = Array[Resource]([ExtResource("3"), ExtResource("4"), ExtResource("5"), ExtResource("6")]) +upgrades = Array[Resource]([ExtResource("3"), ExtResource("4"), ExtResource("5")]) diff --git a/ShieldSpeedUpgrade.tres b/ShieldSpeedUpgrade.tres deleted file mode 100644 index ef2b8a4..0000000 --- a/ShieldSpeedUpgrade.tres +++ /dev/null @@ -1,12 +0,0 @@ -[gd_resource type="Resource" script_class="VesselUpgradeDefinition" load_steps=2 format=3] -[ext_resource type="Script" path="res://VesselUpgradeDefinition.gd" id="1"] -[resource] -script = ExtResource("1") -upgrade_id = "shd_speed" -display_name = "Thrusters" -description = "+40 top speed, +60 acceleration per level." -base_cost = 25 -max_level = 3 -research_point_cost = 1 -icon = 18 -additive_modifiers = {"max_speed": 40.0, "acceleration": 60.0} diff --git a/ShieldVesselDefinition.tres b/ShieldVesselDefinition.tres index 0a99ba1..83b4220 100644 --- a/ShieldVesselDefinition.tres +++ b/ShieldVesselDefinition.tres @@ -1,9 +1,8 @@ -[gd_resource type="Resource" script_class="VesselDefinition" load_steps=6 format=3] +[gd_resource type="Resource" script_class="VesselDefinition" load_steps=5 format=3] [ext_resource type="Script" path="res://VesselDefinition.gd" id="1"] [ext_resource type="PackedScene" path="res://VesselShieldComponent.tscn" id="3"] [ext_resource type="Resource" path="res://ShieldHitsUpgrade.tres" id="4"] [ext_resource type="Resource" path="res://ShieldRechargeUpgrade.tres" id="5"] -[ext_resource type="Resource" path="res://ShieldSpeedUpgrade.tres" id="6"] [resource] script = ExtResource("1") definition_id = "shield" @@ -19,7 +18,7 @@ component_scenes = Array[PackedScene]([ExtResource("3")]) hull_points = PackedVector2Array(0, -24, 20.7846, -12, 20.7846, 12, 0, 24, -20.7846, 12, -20.7846, -12) base_stats = {"damage": 1.0, "fire_cooldown": 0.5, "fire_range": 320.0, "max_speed": 460.0, "acceleration": 450.0, "shield_charges": 1.0, "shield_recharge": 6.0, "delivery_speed": 180.0} minimum_stats = {"shield_recharge": 2.0} -upgrades = Array[Resource]([ExtResource("4"), ExtResource("5"), ExtResource("6")]) +upgrades = Array[Resource]([ExtResource("4"), ExtResource("5")]) unlock_id = "unlock_shield" unlock_name = "Unlock Shield Vessel" unlock_description = "Lets the ship crafter build shield vessels. Its shield absorbs one lethal hit, then cycles back up." diff --git a/tests/test_ship_lab.gd b/tests/test_ship_lab.gd index 1342cce..55a03f9 100644 --- a/tests/test_ship_lab.gd +++ b/tests/test_ship_lab.gd @@ -113,7 +113,10 @@ func _process(delta: float) -> bool: quit(1) return true controller.call("_on_lab_vessel", 0) - if not lab_card_0.visible or not lab_card_3.visible: + # #73: the interceptor's Thrusters upgrade was removed (global + # fleet speed now belongs to the distorder fader, #59/#62) + # leaving 3 upgrade cards, not 4 - card 3 is correctly hidden now. + if not lab_card_0.visible or not lab_card_2.visible or lab_card_3.visible: print("TEST_SHIP_LAB: FAIL (interceptor upgrade cards were not shown)") quit(1) return true @@ -156,7 +159,7 @@ func _process(delta: float) -> bool: # --- 7. per vessel type -------------------------------------- var trn_speed_before: float = game_state.transporter_speed() - game_state.buy_upgrade("int_speed") + game_state.buy_upgrade("int_range") if game_state.transporter_speed() != trn_speed_before: print("TEST_SHIP_LAB: FAIL (an interceptor upgrade changed the transporter)") quit(1)