#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
77 lines
1.9 KiB
Text
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
|