spaceship/buildings/FleetOfficeBuildingDefinition.tres
Loïc Wisniewski fe3ae97f94 Stock a Fleet Office for its own berth, and stop there
#223: an office declared a flat buffer - 60 ore, 30 gas, 30 energy - whatever
was in its berth, so one keeping an interceptor had transporters haul it gas
and energy it can never spend, and the figure bore no relation to what it was
actually charged. Since #220 that charge depends on the berth's occupant and
on how far down the fleet the berth sits, neither of which a definition can
state.

It asks for what its own berth costs, four charges deep: enough that the tax
is payable whenever the bank has anything - a transporter round trip fits
inside four intervals - and no more, so an office is not a hoard. Same idiom
outposts and workshops already use for world-dependent demand.

A small floor stays in the definition on purpose: an empty berth asks for
nothing dynamic, so without it a newly crewed berth would start from zero and
could starve before its first delivery landed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019AJMdB7iuHuLFZM1aBu3GD
2026-09-06 10:44:30 +02:00

39 lines
1.2 KiB
Text

[gd_resource type="Resource" script_class="BuildingDefinition" format=3]
[ext_resource type="Script" path="res://buildings/BuildingDefinition.gd" id="1"]
[ext_resource type="PackedScene" path="res://buildings/FleetOfficeBuildingVisual.tscn" id="2"]
[ext_resource type="Script" path="res://buildings/BuildingLogisticsProfile.gd" id="3"]
[sub_resource type="Resource" id="Resource_office_logistics"]
script = ExtResource("3")
input_buffers = {
"energy": 6,
"gas": 6,
"ore": 10
}
collected_outputs = PackedStringArray()
conversion_input = ""
conversion_output = ""
conversion_rate = 0.0
conversion_yield = 1
[resource]
script = ExtResource("1")
definition_id = "fleet_office"
display_name = "Fleet Office"
description = "Holds one berth in the fleet and pays for the vessel in it. Hub transporters keep it stocked; an office that runs dry loses its vessel."
cost = 35
build_resource_costs = {
"ore": 35
}
action_icon = 2
menu_icon = 2
visual_scene = ExtResource("2")
capabilities = PackedStringArray("fleet_office")
logistics = SubResource("Resource_office_logistics")
map_color = Color(0.45, 0.78, 1, 1)
map_sides = 4
menu_button_name = "FleetOfficeButton"
menu_label_name = "FleetOfficeLabel"
menu_cost_name = "FleetOfficeCost"
max_hp = 45