first full balancing round

This commit is contained in:
2026-07-08 20:27:25 +02:00
parent 6ea0655eaf
commit c6db4bf24a
8 changed files with 1421 additions and 378 deletions

View File

@@ -1,26 +1,29 @@
# modules.toml
#
# First real-content iteration: module ids and surface masks are the designed
# content; stats, materials, and threat costs are placeholders until the
# recipe and balancing passes.
# Production tree v2: all weapons are railguns for now — the implementation
# (instant damage, no projectile, no ammunition) stays as-is and the beam
# visual reads as a tracer round. Lasers are reserved for a future distinct
# weapon type (see docs/content_design.md, "Production tree v2 — Weapons").
# Combat stats are placeholders until the arena balancing pass;
# production_time_seconds values come from the numbers pass.
#
# Unlock progression is mostly disabled (unlock_at_station_level = -1) pending
# the balancing pass. The laser cannons are the exception: laser_cannon_m is
# gated to station level 1, and laser_cannon_l requires laser_cannon_m to be
# unlocked first (unlock_requires) — a demonstration of the prerequisite chain.
# the pacing pass. The railguns are the exception: railgun_m is gated to
# station level 1, and railgun_l requires railgun_m to be unlocked first
# (unlock_requires) — a demonstration of the prerequisite chain.
#
# Surface mask footprint ladder — footprints gate which hulls can mount a
# module, purely through geometry (see ships.toml for the matching hull
# grids):
#
# 1x1 laser_cannon_s, salvager, repair_tool fits every hull, incl. drones
# 1x1 railgun_s, salvager, repair_tool fits every hull, incl. drones
# 1x2 maneuvering_thrusters, sensor_booster,
# armor_plates frigate and up
# 1x3 afterburner frigate and up (eats most of a frigate)
# L-shape weapon_stabilizer, weapon_primer,
# weapon_upgrade frigate and up
# 2x2 laser_cannon_m, drone_bay cruiser and up (no 2x2 area on s hulls)
# 3x3 laser_cannon_l battleship and up (no 3x3 area on m hulls)
# 2x2 railgun_m, drone_bay cruiser and up (no 2x2 area on s hulls)
# 3x3 railgun_l battleship and up (no 3x3 area on m hulls)
# 2x6 drone_hangar carrier only
# -----------------------------------------------------------------------------
@@ -28,13 +31,13 @@
# -----------------------------------------------------------------------------
[[module]]
id = "laser_cannon_s"
id = "railgun_s"
unlock_at_station_level = -1
surface_mask = ["O"]
materials = [{item = "laser_cannon_s_module", amount = 1}]
production_time_seconds = 0.5
materials = [{item = "railgun_s_module", amount = 1}]
production_time_seconds = 1
fill_color = "#FF8040"
glyph = "Ls"
glyph = "Rs"
[module.weapon]
damage = 2
@@ -43,15 +46,15 @@ attack_rate_hz = 2.0
[[module]]
id = "laser_cannon_m"
id = "railgun_m"
unlock_at_station_level = 1
surface_mask = [
"OO",
"OO"]
materials = [{item = "laser_cannon_m_module", amount = 1}]
production_time_seconds = 2
materials = [{item = "railgun_m_module", amount = 1}]
production_time_seconds = 3
fill_color = "#FF8040"
glyph = "Lm"
glyph = "Rm"
[module.weapon]
damage = 10
@@ -60,17 +63,17 @@ attack_rate_hz = 1.5
[[module]]
id = "laser_cannon_l"
id = "railgun_l"
unlock_at_station_level = 1
unlock_requires = ["laser_cannon_m"]
unlock_requires = ["railgun_m"]
surface_mask = [
"OOO",
"OOO",
"OOO"]
materials = [{item = "laser_cannon_l_module", amount = 1}]
production_time_seconds = 8
materials = [{item = "railgun_l_module", amount = 1}]
production_time_seconds = 4
fill_color = "#FF8040"
glyph = "Ll"
glyph = "Rl"
[module.weapon]
damage = 40
@@ -86,7 +89,7 @@ id = "salvager"
unlock_at_station_level = -1
surface_mask = ["O"]
materials = [{item = "salvager_module", amount = 1}]
production_time_seconds = 2
production_time_seconds = 1
fill_color = "#AACC44"
glyph = "Sv"
@@ -101,7 +104,7 @@ id = "repair_tool"
unlock_at_station_level = -1
surface_mask = ["O"]
materials = [{item = "repair_tool_module", amount = 1}]
production_time_seconds = 2
production_time_seconds = 1
fill_color = "#66CCFF"
glyph = "Rp"
@@ -119,7 +122,7 @@ id = "afterburner"
unlock_at_station_level = -1
surface_mask = ["OOO"]
materials = [{item = "afterburner_module", amount = 1}]
production_time_seconds = 2
production_time_seconds = 1
fill_color = "#40A0FF"
glyph = "Ab"
@@ -133,7 +136,7 @@ id = "maneuvering_thrusters"
unlock_at_station_level = -1
surface_mask = ["OO"]
materials = [{item = "maneuvering_thrusters_module", amount = 1}]
production_time_seconds = 2
production_time_seconds = 1
fill_color = "#40A0FF"
glyph = "Mt"
@@ -150,7 +153,7 @@ id = "armor_plates"
unlock_at_station_level = -1
surface_mask = ["OO"]
materials = [{item = "armor_plates_module", amount = 1}]
production_time_seconds = 3
production_time_seconds = 1
fill_color = "#808080"
glyph = "A"
@@ -163,7 +166,7 @@ id = "sensor_booster"
unlock_at_station_level = -1
surface_mask = ["OO"]
materials = [{item = "sensor_booster_module", amount = 1}]
production_time_seconds = 2
production_time_seconds = 1
fill_color = "#40A0FF"
glyph = "S"
@@ -182,7 +185,7 @@ surface_mask = [
"OX",
]
materials = [{item = "weapon_upgrade_module", amount = 1}]
production_time_seconds = 4
production_time_seconds = 2
fill_color = "#FF4040"
glyph = "Wu"
@@ -198,7 +201,7 @@ surface_mask = [
"OX",
]
materials = [{item = "weapon_primer_module", amount = 1}]
production_time_seconds = 4
production_time_seconds = 2
fill_color = "#FF4040"
glyph = "Wp"
@@ -214,7 +217,7 @@ surface_mask = [
"OX",
]
materials = [{item = "weapon_stabilizer_module", amount = 1}]
production_time_seconds = 4
production_time_seconds = 1
fill_color = "#FF4040"
glyph = "Ws"
@@ -236,7 +239,7 @@ surface_mask = [
"OO",
"OO"]
materials = [{item = "drone_bay_module", amount = 1}]
production_time_seconds = 5
production_time_seconds = 3
fill_color = "#CC66FF"
glyph = "Db"
@@ -248,6 +251,6 @@ surface_mask = [
"OOOOOO",
"OOOOOO"]
materials = [{item = "drone_hangar_module", amount = 1}]
production_time_seconds = 20
production_time_seconds = 6
fill_color = "#9933CC"
glyph = "Dh"