37 lines
1.5 KiB
GDScript
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)
|