spaceship/tests/test_logistics_travel_speed.gd
2026-08-14 22:30:19 +02:00

37 lines
1.5 KiB
GDScript

extends SceneTree
func _initialize() -> void:
var state: Node = root.get_node("GameState")
state.vessel_deliveries.clear()
state.transporters.clear()
state.buildings.clear()
state.reset_progression()
var delivery_speed: float = state.vessel_stat("interceptor", "delivery_speed")
var transport_speed: float = state.transporter_speed()
if delivery_speed >= 300.0 or transport_speed >= 300.0:
return _fail("logistics still rushes at delivery %.0f / transport %.0f" % [delivery_speed, transport_speed])
state.vessel_deliveries.append({"type": "interceptor", "from": Vector2.ZERO,
"to": Vector2(900, 0), "progress": 0.0})
state._advance_vessel_deliveries(1.0)
var delivery_progress: float = state.vessel_deliveries[0].progress
if delivery_progress < 0.18 or delivery_progress > 0.22:
return _fail("900-unit delivery advanced %.3f in one second" % delivery_progress)
state.transporters.append({"hub_id": 0, "state": state.TRANSPORTER_RETURNING,
"target_id": 0, "carrying": 0, "progress": 0.0,
"from": Vector2.ZERO, "to": Vector2(600, 0)})
state._advance_transporters(1.0)
var transport_progress: float = state.transporters[0].progress
if transport_progress < 0.23 or transport_progress > 0.27:
return _fail("600-unit transport leg advanced %.3f in one second" % transport_progress)
print("delivery %.0f u/s, transporter %.0f u/s" % [delivery_speed, transport_speed])
print("TEST_LOGISTICS_TRAVEL_SPEED: PASS")
quit(0)
func _fail(message: String) -> void:
print("TEST_LOGISTICS_TRAVEL_SPEED: FAIL (%s)" % message)
quit(1)