Implements the requirements rename in the codebase. The salvageable object dropped by destroyed ships and defence stations is now the "debris" entity; the scrap resource it yields (cargo, delivery, smelting, threat, scrap_drop_formula, scrap_per_threat) is unchanged. Entity renames: ScrapDataComponent->DebrisComponent, ScrapSystem->DebrisSystem, ScrapInfo->DebrisInfo, ScrapSelectionChangedEvent->DebrisSelectionChangedEvent (member scrap->debris), spawnScrap->spawnDebris, getScraps->getDebrisSystem, getAllScrapInfo->getAllDebrisInfo, scrapAtWorldPos/scrapInBox->debris*, SalvageScrapBehavior::scrapTarget->debrisTarget, PendingCollection::scrap->debris, ScrapTest.cpp->DebrisTest.cpp. Config key scrap_despawn_seconds-> debris_despawn_seconds (WorldConfig.scrapDespawnSeconds->debrisDespawnSeconds). The salvage/deliver behavior classes keep their names (they act on the scrap resource). Also implements the new REQ-UI-DEBRIS-PANEL behavior in SelectedBuildingPanel: a single selected piece of debris shows a "Debris" heading plus a "Scrap" stat row; a multi/mixed field selection appends "Debris x N" and "Scrap x N" lines. Updates the four renamed REQ-ID references in comments/docs, plus architecture.md and derived.md. All 449 test cases pass; app, tests, and balancing targets build. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y7N59FsLA5e2kuVdqe4Uhc
54 lines
1.6 KiB
TOML
54 lines
1.6 KiB
TOML
[world]
|
|
height_tiles = 60
|
|
refund_percentage = 75
|
|
deconstruction_time_seconds = 0.1
|
|
starting_building_blocks = 100
|
|
debris_despawn_seconds = 30
|
|
scrap_per_threat = 1.0
|
|
tile_size_m = 10
|
|
belt_speed_mps = 20
|
|
tunnel_max_distance_tiles = 10
|
|
departure_interval_seconds = 20
|
|
orbit_factor = 0.8
|
|
rally_orbit_radius_tiles = 5.0
|
|
building_blocks_tooltip = "Spend building blocks to build; deliver them to the HQ to gain more."
|
|
artifact_tooltip = "Choose the artifact reward when destroying enemy stations; collect enough to win."
|
|
|
|
[regions]
|
|
asteroid_width_tiles = 40
|
|
player_buffer_width_tiles = 10
|
|
contest_zone_width_tiles = 30
|
|
enemy_buffer_width_tiles = 15
|
|
|
|
[scroll]
|
|
pan_speed_slow_tiles_per_second = 8.0
|
|
pan_speed_fast_tiles_per_second = 24.0
|
|
pan_ramp_band_width_tiles = 16
|
|
|
|
[expansion]
|
|
columns_per_expansion_tiles = 10
|
|
cost_building_blocks_formula = "400 * 2^x"
|
|
|
|
[push]
|
|
push_expand_columns_tiles = 20
|
|
boss_advance_seconds = 60
|
|
|
|
[targeting]
|
|
target_score_formula = "1 / (1 + x)" # x = distance / max weapon range; higher = better, clamped to >=0
|
|
overclaim_penalty_formula = "max(0.5, 1 - 0.1*x)" # x = competing claim count; multiplies score, clamped to [0,1]
|
|
target_hysteresis = 0.10 # keep current target unless a challenger beats it by >10%
|
|
|
|
[artifacts]
|
|
artifact_chance_formula = "0.05 * x" # 5% chance per station level
|
|
artifact_win_count = 3
|
|
|
|
[waves]
|
|
threat_rate_formula = "x"
|
|
gap_min_seconds = 15
|
|
gap_max_seconds = 45
|
|
spawn_duration_seconds = 10
|
|
boss_countdown_seconds = 300
|
|
boss_threat_duration_seconds = 60
|
|
boss_quiet_before_seconds = 60
|
|
boss_quiet_after_seconds = 60
|