fix config data paths

This commit is contained in:
2026-04-29 21:32:32 +02:00
parent f37ed0507c
commit 7e0104e9b8
22 changed files with 14 additions and 13 deletions

View File

@@ -0,0 +1,89 @@
[[building]]
id = "belt"
cost = 2
player_placeable = true
construction_time_seconds = 0.2
surface_mask = ["A>"]
[[building]]
id = "splitter"
cost = 3
player_placeable = true
construction_time_seconds = 0.5
surface_mask = ["<A>"]
[[building]]
id = "tunnel_entry"
cost = 5
player_placeable = true
construction_time_seconds = 0.5
surface_mask = ["A>"]
[[building]]
id = "tunnel_exit"
cost = 5
player_placeable = true
construction_time_seconds = 0.5
surface_mask = ["A>"]
[[building]]
id = "miner"
cost = 15
player_placeable = true
construction_time_seconds = 1
surface_mask = [
"AA",
"A>",
]
[[building]]
id = "smelter"
cost = 20
player_placeable = true
construction_time_seconds = 1
surface_mask = [
"AA ",
"AA>",
]
[[building]]
id = "assembler"
cost = 35
player_placeable = true
construction_time_seconds = 1
surface_mask = [
"AAA ",
"AAA>",
"AAA ",
]
[[building]]
id = "reprocessing_plant"
cost = 40
player_placeable = true
construction_time_seconds = 1
surface_mask = [
"AAA ",
"AAA>",
"AAA ",
]
[[building]]
id = "shipyard"
cost = 60
player_placeable = true
construction_time_seconds = 1
surface_mask = [
"AAAS>",
"AAAS ",
]
[[building]]
id = "salvage_bay"
cost = 25
player_placeable = true
construction_time_seconds = 1
surface_mask = [
"SAA",
"SAA>",
]

View File

@@ -0,0 +1,63 @@
[[recipe]]
id = "mine_iron_ore"
building = "miner"
inputs = []
outputs = [{item = "iron_ore", amount = 1}]
duration_seconds = 1.0
[[recipe]]
id = "mine_copper_ore"
building = "miner"
inputs = []
outputs = [{item = "copper_ore", amount = 1}]
duration_seconds = 1.5
[[recipe]]
id = "iron_ingot"
building = "smelter"
inputs = [{item = "iron_ore", amount = 2}]
outputs = [{item = "iron_ingot", amount = 1}]
duration_seconds = 2.0
[[recipe]]
id = "copper_ingot"
building = "smelter"
inputs = [{item = "copper_ore", amount = 2}]
outputs = [{item = "copper_ingot", amount = 1}]
duration_seconds = 2.5
[[recipe]]
id = "circuit_board"
building = "assembler"
inputs = [{item = "iron_ingot", amount = 3}, {item = "copper_ingot", amount = 2}]
outputs = [{item = "circuit_board", amount = 1}]
duration_seconds = 5.0
[[recipe]]
id = "building_blocks"
building = "assembler"
inputs = [{item = "iron_ingot", amount = 4}]
outputs = [{item = "building_block", amount = 10}]
duration_seconds = 4.0
[[recipe]]
id = "reprocessing_cycle"
building = "reprocessing_plant"
inputs = [{item = "scrap", amount = 5}]
duration_seconds = 3.0
[[recipe.outputs]]
item = "iron_ingot"
amount = 2
probability = 0.6
[[recipe.outputs]]
item = "circuit_board"
amount = 1
probability = 0.3
[[recipe.outputs]]
item = "advanced_alloy"
amount = 1
probability = 0.1

View File

@@ -0,0 +1,116 @@
[[ship]]
id = "interceptor"
available_from_start = true
[ship.schematic]
materials = [{item = "iron_ingot", amount = 3}, {item = "circuit_board", amount = 1}]
player_production_level = 1
production_time_seconds = 10
[ship.threat]
cost_formula = "10"
[ship.health]
hp_formula = "4"
[ship.movement]
speed_formula = "4"
[ship.sensor]
sensor_range_formula = "15"
[ship.combat]
damage_formula = "1"
attack_range_formula = "10"
attack_rate_formula = "2.0"
[ship.loot]
scrap_drop = 2
[[ship]]
id = "destroyer"
available_from_start = true
[ship.schematic]
materials = [{item = "iron_ingot", amount = 5}, {item = "circuit_board", amount = 2}]
player_production_level = 5
production_time_seconds = 20
[ship.threat]
cost_formula = "0"
[ship.health]
hp_formula = "120 + 15*x"
[ship.movement]
speed_formula = "120"
[ship.sensor]
sensor_range_formula = "300"
[ship.combat]
damage_formula = "12 + 2*x"
attack_range_formula = "250"
attack_rate_formula = "1.0"
[ship.loot]
scrap_drop = 4
[[ship]]
id = "salvage_ship"
available_from_start = true
[ship.schematic]
materials = [{item = "iron_ingot", amount = 4}]
player_production_level = 3
production_time_seconds = 10
[ship.threat]
cost_formula = "0"
[ship.health]
hp_formula = "40 + 4*x"
[ship.movement]
speed_formula = "110"
[ship.sensor]
sensor_range_formula = "250"
[ship.salvage]
collection_range = 50
cargo_capacity = 10
[ship.loot]
scrap_drop = 2
[[ship]]
id = "repair_ship"
available_from_start = false
[ship.schematic]
materials = [{item = "iron_ingot", amount = 4}, {item = "circuit_board", amount = 2}]
player_production_level = 3
production_time_seconds = 15
[ship.threat]
cost_formula = "0"
[ship.health]
hp_formula = "60 + 5*x"
[ship.movement]
speed_formula = "130"
[ship.sensor]
sensor_range_formula = "250"
[ship.repair]
repair_rate_formula = "5 + x"
repair_range_formula = "80"
[ship.loot]
scrap_drop = 2

View File

@@ -0,0 +1,30 @@
[hq]
surface_mask = [
"AAA",
"AAA",
"AAA",
]
hp_formula = "1000"
[player_station]
surface_mask = [
"SS",
"SS",
]
level = 1
hp_formula = "300"
damage_formula = "5"
range_formula = "20"
fire_rate_formula = "1"
scrap_drop_formula = "10"
[enemy_station]
surface_mask = [
"SS",
"SS",
]
hp_formula = "300 + 150*x"
damage_formula = "2 + 1*x"
range_formula = "20"
fire_rate_formula = "1.0 + 0.2*x"
scrap_drop_formula = "10 + 5*x"

View File

@@ -0,0 +1,194 @@
# visuals.toml
#
# Rendering-only configuration, loaded once at startup by the UI.
# The simulation does not read this file.
#
# Every BuildingType, ItemType, ship role, and station type must have an
# entry here; missing or malformed entries abort startup (see architecture.md
# "Visual Parameters").
#
# Colors are "#rrggbb" or "#rrggbbaa" (alpha optional, last byte).
# -----------------------------------------------------------------------------
# Tile backgrounds
# -----------------------------------------------------------------------------
[tiles.asteroid]
fill = "#4a4038"
[tiles.space]
fill = "#0a0a15"
# -----------------------------------------------------------------------------
# Buildings
#
# One section per BuildingType enum value. `fill` colors every footprint tile
# of the building; `outline` is drawn around the building's bounding box;
# `glyph` is a short label drawn centered on the building.
# -----------------------------------------------------------------------------
[buildings.hq]
fill = "#2e5fb8"
outline = "#ffffff"
glyph = "HQ"
[buildings.miner]
fill = "#6b4a2c"
outline = "#ffffff"
glyph = "M"
[buildings.smelter]
fill = "#b85a1e"
outline = "#ffffff"
glyph = "Sm"
[buildings.assembler]
fill = "#3a6fa8"
outline = "#ffffff"
glyph = "A"
[buildings.reprocessing_plant]
fill = "#6a3a8a"
outline = "#ffffff"
glyph = "R"
[buildings.shipyard]
fill = "#385870"
outline = "#ffffff"
glyph = "Y"
[buildings.salvage_bay]
fill = "#b8a23a"
outline = "#ffffff"
glyph = "Sb"
[buildings.belt]
fill = "#5a5a5a"
outline = "#7a7a7a"
glyph = ""
[buildings.splitter]
fill = "#7a7a5a"
outline = "#9a9a7a"
glyph = ""
[buildings.tunnel_entry]
fill = "#4a6a5a"
outline = "#8aaa9a"
glyph = "Te"
[buildings.tunnel_exit]
fill = "#5a6a4a"
outline = "#9aaa8a"
glyph = "Tx"
# -----------------------------------------------------------------------------
# Stations
#
# Player and enemy defence stations have their own entries rather than going
# through [buildings.*] so the two sides can be color-coded at a glance.
# -----------------------------------------------------------------------------
[stations.player]
fill = "#2e5fb8"
outline = "#ffffff"
glyph = "P"
[stations.enemy]
fill = "#b82e2e"
outline = "#ffffff"
glyph = "E"
# -----------------------------------------------------------------------------
# Items
#
# Items on belts are 10x10 squares. `fill` is the square color; `outline` is
# drawn around it. One section per ItemType.
# -----------------------------------------------------------------------------
[items.iron_ore]
fill = "#8a5a4a"
outline = "#201010"
[items.copper_ore]
fill = "#c47a3a"
outline = "#3a1a0a"
[items.iron_ingot]
fill = "#b0b0b8"
outline = "#202028"
[items.copper_ingot]
fill = "#d48a4a"
outline = "#402010"
[items.circuit_board]
fill = "#2ea35a"
outline = "#0a2a14"
[items.advanced_alloy]
fill = "#a06acc"
outline = "#201030"
[items.building_block]
fill = "#c8b070"
outline = "#302810"
[items.scrap]
fill = "#7a7268"
outline = "#201a14"
# -----------------------------------------------------------------------------
# Ships
#
# Ships are drawn as oriented triangles/arrows. Color is keyed to role, not
# schematic (architecture.md, "Layer Order").
# -----------------------------------------------------------------------------
[ships.player_combat]
fill = "#3366ff"
outline = "#ffffff"
[ships.salvage]
fill = "#33cc66"
outline = "#ffffff"
[ships.repair]
fill = "#66ccff"
outline = "#ffffff"
[ships.enemy]
fill = "#cc3333"
outline = "#ffffff"
# -----------------------------------------------------------------------------
# Laser beams (REQ-SHP-FIRING-BEAM)
# -----------------------------------------------------------------------------
[beams]
color = "#ff6600"
width_px = 2
# -----------------------------------------------------------------------------
# Build / demolish / selection overlays
#
# All overlay colors carry an alpha channel so they composite over the
# underlying scene.
# -----------------------------------------------------------------------------
[overlays]
ghost_valid = "#ffffff44" # builder-mode ghost, placement allowed (REQ-BLD-GHOST)
ghost_invalid = "#ff000044" # builder-mode ghost, placement invalid (REQ-BLD-PLACE-VALID)
demolish_tint = "#ff000033" # demolish-mode hover tint
selection_rect = "#00ff00" # box-drag selection rectangle (REQ-UI-MULTI-SELECT)
tile_highlight = "#ffffff22" # tile under cursor
selected_outline = "#ffff00" # outline drawn around currently-selected building(s)
# -----------------------------------------------------------------------------
# Schematic-drop toasts (REQ-UI-SCHEMATIC-TOAST)
# -----------------------------------------------------------------------------
[toast]
bg = "#000000cc"
fg = "#ffffff"
font_size = 14

View File

@@ -0,0 +1,29 @@
[world]
height_tiles = 30
refund_percentage = 75
starting_building_blocks = 1000
scrap_despawn_seconds = 30
belt_speed_tiles_per_second = 2
tunnel_max_distance = 10
departure_interval_seconds = 20
[regions]
asteroid_width = 40
player_buffer_width = 20
contest_zone_width = 60
enemy_buffer_width = 20
[expansion]
columns_per_expansion = 10
cost_building_blocks = 200
[push]
push_expand_columns = 10
scaling_factor = 1.2
[waves]
threat_rate_formula = "0.01*x"
ship_level_formula = "1"
gap_min_seconds = 15
gap_max_seconds = 45
spawn_duration_seconds = 10