spaceship/ui/menus/FleetUpkeepMenu.tscn
Loïc Wisniewski 2bb46cba94 Charge more for each berth, and show the bill
#220: every berth past the first paid one costs 1.12x the one before it, on
top of the flat per-vessel charge. A linear bill makes the tenth hull no more
of a decision than the second; compounding weighs each addition against the
whole fleet behind it. Shallow on purpose - the thirteenth berth costs about
three and a half times the second, the twentieth about seven and a half.

Fleet Offices gain a menu naming the whole bill per minute, a line per paying
berth with its multiplier, and the arithmetic in words. It renders
fleet_upkeep_breakdown(), which is the calculation the charging loop itself
runs: a readout that summed independently could quote a bill the game does
not take, which is the thing worth preventing here. The test pins that what
the menu quotes for a berth is what that office is charged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019AJMdB7iuHuLFZM1aBu3GD
2026-09-05 22:36:21 +02:00

77 lines
1.9 KiB
Text

[gd_scene load_steps=3 format=3]
[ext_resource type="Script" path="res://ui/IconButton.gd" id="icon"]
[ext_resource type="Script" path="res://ui/menus/FleetUpkeepMenu.gd" id="menu"]
[node name="FleetUpkeepMenu" type="Control" groups=["modal_menus"]]
visible = false
mouse_filter = 2
anchor_right = 1.0
anchor_bottom = 1.0
script = ExtResource("menu")
[node name="Backdrop" type="ColorRect" parent="."]
mouse_filter = 2
anchor_right = 1.0
anchor_bottom = 1.0
color = Color(0.03, 0.03, 0.08, 0.96)
[node name="TitleLabel" type="Label" parent="."]
mouse_filter = 2
anchor_right = 1.0
offset_left = 24.0
offset_top = 24.0
offset_right = -180.0
offset_bottom = 100.0
theme_override_font_sizes/font_size = 40
text = "FLEET UPKEEP"
horizontal_alignment = 1
[node name="CloseButton" type="Control" parent="."]
anchor_left = 1.0
anchor_right = 1.0
offset_left = -140.0
offset_top = 24.0
offset_right = -24.0
offset_bottom = 140.0
script = ExtResource("icon")
icon = 1
glow_color = Color(0.55, 0.6, 1, 1)
[node name="TotalLabel" type="Label" parent="."]
mouse_filter = 2
anchor_right = 1.0
offset_left = 32.0
offset_top = 150.0
offset_right = -32.0
offset_bottom = 220.0
theme_override_font_sizes/font_size = 32
theme_override_colors/font_color = Color(1, 0.85, 0.35, 1)
text = ""
horizontal_alignment = 1
[node name="DetailLabel" type="Label" parent="."]
mouse_filter = 2
anchor_right = 1.0
offset_left = 32.0
offset_top = 250.0
offset_right = -32.0
offset_bottom = 860.0
theme_override_font_sizes/font_size = 30
theme_override_colors/font_color = Color(0.72, 0.88, 0.96, 1)
text = ""
autowrap_mode = 2
[node name="FormulaLabel" type="Label" parent="."]
mouse_filter = 2
anchor_right = 1.0
offset_left = 40.0
offset_top = 880.0
offset_right = -40.0
offset_bottom = 1060.0
theme_override_font_sizes/font_size = 26
theme_override_colors/font_color = Color(0.55, 0.78, 0.86, 1)
text = ""
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2