From 42b51cc6f496a132bdc32d37e06290e32a31850a Mon Sep 17 00:00:00 2001 From: mlangkabel Date: Thu, 4 Jun 2026 21:27:29 +0200 Subject: [PATCH] remove unnecessary modules for first playtest --- bin/app/data/config/modules.toml | 70 ++------------- bin/app/data/config/recipes.toml | 30 ++++++- bin/app/data/config/ships.toml | 145 +++--------------------------- bin/app/data/config/visuals.toml | 34 +++---- bin/test/data/config/modules.toml | 4 +- src/test/BehaviorSystemTest.cpp | 48 +++++----- src/test/ShipTest.cpp | 18 ++-- 7 files changed, 100 insertions(+), 249 deletions(-) diff --git a/bin/app/data/config/modules.toml b/bin/app/data/config/modules.toml index 11e293c..2e884f5 100644 --- a/bin/app/data/config/modules.toml +++ b/bin/app/data/config/modules.toml @@ -1,61 +1,9 @@ -[[module]] -id = "armor_plate" -surface_mask = ["OO", "OO"] -materials = [{item = "iron_ingot", amount = 2}] -player_production_level = 1 -production_time_seconds = 3 -threat_cost = 2.0 -fill_color = "#808080" -glyph = "A" - -[module.health] -multiplied_hp_formula = "1.0 + 0.2 * x" - -[[module]] -id = "sensor_booster" -surface_mask = ["O"] -materials = [{item = "circuit_board", amount = 1}] -player_production_level = 1 -production_time_seconds = 2 -threat_cost = 1.0 -fill_color = "#40A0FF" -glyph = "S" - -[module.sensor] -added_sensor_range_formula = "2 + x" - -[[module]] -id = "weapon_upgrade" -surface_mask = ["OO"] -materials = [{item = "iron_ingot", amount = 1}, {item = "circuit_board", amount = 1}] -player_production_level = 1 -production_time_seconds = 4 -threat_cost = 3.0 -fill_color = "#FF4040" -glyph = "W" - -[module.weapon] -multiplied_damage_formula = "1.0 + 0.15 * x" - -[[module]] -id = "engine_booster" -surface_mask = ["O", "O"] -materials = [{item = "iron_ingot", amount = 2}] -player_production_level = 1 -production_time_seconds = 3 -threat_cost = 1.5 -fill_color = "#40FF80" -glyph = "E" - -[module.movement] -added_speed_formula = "0.5 * x" - [[module]] id = "laser_cannon" surface_mask = ["O"] -materials = [{item = "iron_ingot", amount = 1}] +materials = [{item = "laser_cannon_module", amount = 1}] player_production_level = 1 -production_time_seconds = 5 +production_time_seconds = 2 threat_cost = 5.0 fill_color = "#FF8040" glyph = "L" @@ -66,11 +14,11 @@ attack_range_formula = "5" attack_rate_formula = "2.0" [[module]] -id = "salvage_bay_module" -surface_mask = ["OO"] -materials = [{item = "iron_ingot", amount = 2}] +id = "salvager" +surface_mask = ["O"] +materials = [{item = "salvager_module", amount = 1}] player_production_level = 1 -production_time_seconds = 5 +production_time_seconds = 2 threat_cost = 0.0 fill_color = "#AACC44" glyph = "Sv" @@ -81,11 +29,11 @@ cargo_capacity_formula = "10" collection_rate_formula = "0.5" [[module]] -id = "repair_tool_module" +id = "repair_tool" surface_mask = ["O"] -materials = [{item = "circuit_board", amount = 2}] +materials = [{item = "repair_tool_module", amount = 1}] player_production_level = 1 -production_time_seconds = 5 +production_time_seconds = 2 threat_cost = 0.0 fill_color = "#66CCFF" glyph = "Rp" diff --git a/bin/app/data/config/recipes.toml b/bin/app/data/config/recipes.toml index 0e7ac5d..d0c11f5 100644 --- a/bin/app/data/config/recipes.toml +++ b/bin/app/data/config/recipes.toml @@ -29,10 +29,38 @@ duration_seconds = 2.5 [[recipe]] id = "circuit_board" building = "assembler" -inputs = [{item = "iron_ingot", amount = 3}, {item = "copper_ingot", amount = 2}] +inputs = [{item = "iron_ingot", amount = 1}, {item = "copper_ingot", amount = 2}] outputs = [{item = "circuit_board", amount = 1}] duration_seconds = 5.0 +[[recipe]] +id = "drone_hull" +building = "assembler" +inputs = [{item = "iron_ingot", amount = 5}, {item = "circuit_board", amount = 1}] +outputs = [{item = "drone_hull", amount = 1}] +duration_seconds = 12.0 + +[[recipe]] +id = "laser_cannon_module" +building = "assembler" +inputs = [{item = "iron_ingot", amount = 2}, {item = "circuit_board", amount = 1}] +outputs = [{item = "laser_cannon_module", amount = 1}] +duration_seconds = 6.0 + +[[recipe]] +id = "salvager_module" +building = "assembler" +inputs = [{item = "iron_ingot", amount = 1}, {item = "circuit_board", amount = 1}] +outputs = [{item = "salvager_module", amount = 1}] +duration_seconds = 6.0 + +[[recipe]] +id = "repair_tool_module" +building = "assembler" +inputs = [{item = "iron_ingot", amount = 1}, {item = "circuit_board", amount = 2}] +outputs = [{item = "repair_tool_module", amount = 1}] +duration_seconds = 6.0 + [[recipe]] id = "building_blocks" building = "assembler" diff --git a/bin/app/data/config/ships.toml b/bin/app/data/config/ships.toml index 858c265..6f5b41a 100644 --- a/bin/app/data/config/ships.toml +++ b/bin/app/data/config/ships.toml @@ -1,13 +1,13 @@ [[ship]] -id = "fighter" +id = "drone" available_from_start = true -layout = ["XOX", "OOO", "XOX"] -default_modules = [{type = "laser_cannon", x = 1, y = 1, rotation = "east"}] +layout = ["O"] +default_modules = [{type = "laser_cannon", x = 0, y = 0, rotation = "east"}] [ship.schematic] -materials = [{item = "iron_ingot", amount = 3}, {item = "circuit_board", amount = 1}] +materials = [{item = "drone_hull", amount = 1}] player_production_level = 1 -production_time_seconds = 10 +production_time_seconds = 5 [ship.threat] cost_formula = "10" @@ -16,139 +16,14 @@ cost_formula = "10" hp_formula = "3" [ship.movement] -speed_formula = "4" -main_acceleration_formula = "8" -maneuvering_acceleration_formula = "4" -angular_acceleration_formula = "12.56" -max_rotation_speed_formula = "6.28" +speed_formula = "4" +main_acceleration_formula = "8" +maneuvering_acceleration_formula = "4" +angular_acceleration_formula = "12.56" +max_rotation_speed_formula = "6.28" [ship.sensor] sensor_range_formula = "15" [ship.loot] scrap_drop = 2 - - - -[[ship]] -id = "sniper" -available_from_start = true -layout = ["XOOX", "OOOO", "XOOX"] -default_modules = [{type = "laser_cannon", x = 1, y = 1, rotation = "east"}] - -[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 = "8" - -[ship.movement] -speed_formula = "1" -main_acceleration_formula = "1.5" -maneuvering_acceleration_formula = "0.5" -angular_acceleration_formula = "9.42" -max_rotation_speed_formula = "3.14" - -[ship.sensor] -sensor_range_formula = "25" - -[ship.loot] -scrap_drop = 2 - - - -[[ship]] -id = "gunship" -available_from_start = true -layout = ["XOOOX", "OOOOO", "OOOOO", "XOOOX"] -default_modules = [{type = "laser_cannon", x = 1, y = 1, rotation = "east"}] - -[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 = "12" - -[ship.movement] -speed_formula = "1" -main_acceleration_formula = "1.5" -maneuvering_acceleration_formula = "0.5" -angular_acceleration_formula = "15.7" -max_rotation_speed_formula = "3.14" - -[ship.sensor] -sensor_range_formula = "20" - -[ship.loot] -scrap_drop = 2 - - - -[[ship]] -id = "salvage_ship" -available_from_start = true -layout = ["OOO", "OOO"] - -[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" -main_acceleration_formula = "220" -maneuvering_acceleration_formula = "110" -angular_acceleration_formula = "12.56" -max_rotation_speed_formula = "6.28" - -[ship.sensor] -sensor_range_formula = "250" - -[ship.loot] -scrap_drop = 2 - - -[[ship]] -id = "repair_ship" -available_from_start = false -layout = ["XOX", "OOO", "XOX"] - -[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" -main_acceleration_formula = "260" -maneuvering_acceleration_formula = "130" -angular_acceleration_formula = "12.56" -max_rotation_speed_formula = "6.28" - -[ship.sensor] -sensor_range_formula = "250" - -[ship.loot] -scrap_drop = 2 diff --git a/bin/app/data/config/visuals.toml b/bin/app/data/config/visuals.toml index c14fb83..468b12a 100644 --- a/bin/app/data/config/visuals.toml +++ b/bin/app/data/config/visuals.toml @@ -138,32 +138,32 @@ outline = "#302810" fill = "#7a7268" outline = "#201a14" +[items.drone_hull] +fill = "#1b1b1b" +outline = "#1402b3" + +[items.laser_cannon_module] +fill = "#691313" +outline = "#f3ff4f" + +[items.salvager_module] +fill = "#b2cfdd" +outline = "#236137" + +[items.repair_tool_module] +fill = "#2e9ba3" +outline = "#689275" + # ----------------------------------------------------------------------------- # Ships # # Ships are drawn as oriented triangles/arrows. Color is keyed to schematic id. # ----------------------------------------------------------------------------- -[ships.fighter] +[ships.drone] fill = "#3366ff" outline = "#ffffff" -[ships.sniper] -fill = "#3366ff" -outline = "#ffffff" - -[ships.gunship] -fill = "#3366ff" -outline = "#ffffff" - -[ships.salvage_ship] -fill = "#33cc66" -outline = "#ffffff" - -[ships.repair_ship] -fill = "#66ccff" -outline = "#ffffff" - # ----------------------------------------------------------------------------- # Laser beams (REQ-SHP-FIRING-BEAM) # ----------------------------------------------------------------------------- diff --git a/bin/test/data/config/modules.toml b/bin/test/data/config/modules.toml index a2f1513..cd6f594 100644 --- a/bin/test/data/config/modules.toml +++ b/bin/test/data/config/modules.toml @@ -53,7 +53,7 @@ attack_range_formula = "5" attack_rate_formula = "2.0" [[module]] -id = "salvage_bay_module" +id = "salvager" surface_mask = ["OO"] materials = [{item = "iron_ingot", amount = 2}] player_production_level = 1 @@ -68,7 +68,7 @@ cargo_capacity_formula = "10" collection_rate_formula = "0.5" [[module]] -id = "repair_tool_module" +id = "repair_tool" surface_mask = ["O"] materials = [{item = "circuit_board", amount = 2}] player_production_level = 1 diff --git a/src/test/BehaviorSystemTest.cpp b/src/test/BehaviorSystemTest.cpp index 17f0ab5..4570ebe 100644 --- a/src/test/BehaviorSystemTest.cpp +++ b/src/test/BehaviorSystemTest.cpp @@ -363,7 +363,7 @@ TEST_CASE("BehaviorSystem: repair ship writes intent toward damaged friendly shi "[behavior]") { Fixture f; - const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool_module"); + const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool"); const entt::entity repairShip = f.ships.spawn("repair_ship", 1, QVector2D(0.0f, 0.0f), false, repairLayout); const entt::entity friendly = f.ships.spawn("interceptor", 1, QVector2D(5.0f, 0.0f)); @@ -381,7 +381,7 @@ TEST_CASE("BehaviorSystem: repair ship heals damaged ally within repair range", "[behavior]") { Fixture f; - const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool_module"); + const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool"); const entt::entity repairShip = f.ships.spawn("repair_ship", 1, QVector2D(0.0f, 0.0f), false, repairLayout); const entt::entity friendly = f.ships.spawn("interceptor", 1, QVector2D(1.0f, 0.0f)); @@ -399,7 +399,7 @@ TEST_CASE("BehaviorSystem: repair ship heals damaged ally within repair range", TEST_CASE("BehaviorSystem: repair ship does not heal above maxHp", "[behavior]") { Fixture f; - const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool_module"); + const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool"); f.ships.spawn("repair_ship", 1, QVector2D(0.0f, 0.0f), false, repairLayout); const entt::entity friendly = f.ships.spawn("interceptor", 1, QVector2D(1.0f, 0.0f)); @@ -425,7 +425,7 @@ TEST_CASE("BehaviorSystem: rt.currentTarget is set to preferred target when in r "[behavior]") { Fixture f; - const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool_module"); + const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool"); const entt::entity repairShip = f.ships.spawn("repair_ship", 1, QVector2D(0.0f, 0.0f), false, repairLayout); const entt::entity friendly = f.ships.spawn("interceptor", 1, QVector2D(10.0f, 0.0f)); @@ -447,7 +447,7 @@ TEST_CASE("BehaviorSystem: repair module falls back to in-range target when pref "[behavior]") { Fixture f; - const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool_module"); + const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool"); const entt::entity repairShip = f.ships.spawn("repair_ship", 1, QVector2D(0.0f, 0.0f), false, repairLayout); // preferred: within sensor range (200) but beyond repair range (80) @@ -476,7 +476,7 @@ TEST_CASE("BehaviorSystem: repair module falls back when preferred target is ful "[behavior]") { Fixture f; - const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool_module"); + const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool"); const entt::entity repairShip = f.ships.spawn("repair_ship", 1, QVector2D(0.0f, 0.0f), false, repairLayout); const entt::entity preferred = f.ships.spawn("interceptor", 1, QVector2D(10.0f, 0.0f)); @@ -500,7 +500,7 @@ TEST_CASE("BehaviorSystem: repair module falls back when preferred target is des "[behavior]") { Fixture f; - const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool_module"); + const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool"); const entt::entity repairShip = f.ships.spawn("repair_ship", 1, QVector2D(0.0f, 0.0f), false, repairLayout); const entt::entity preferred = f.ships.spawn("interceptor", 1, QVector2D(10.0f, 0.0f)); @@ -523,7 +523,7 @@ TEST_CASE("BehaviorSystem: rt.currentTarget is cleared when no repairable target "[behavior]") { Fixture f; - const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool_module"); + const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool"); const entt::entity repairShip = f.ships.spawn("repair_ship", 1, QVector2D(0.0f, 0.0f), false, repairLayout); // friendly is beyond repair range (80) but within sensor range (200) @@ -545,7 +545,7 @@ TEST_CASE("BehaviorSystem: two repair modules both heal preferred target additiv "[behavior]") { Fixture f; - const ShipLayoutConfig repairLayout = makeTwoModuleLayout("repair_tool_module"); + const ShipLayoutConfig repairLayout = makeTwoModuleLayout("repair_tool"); const entt::entity repairShip = f.ships.spawn("repair_ship", 1, QVector2D(0.0f, 0.0f), false, repairLayout); const entt::entity targetA = f.ships.spawn("interceptor", 1, QVector2D(10.0f, 0.0f)); @@ -573,7 +573,7 @@ TEST_CASE("BehaviorSystem: two repair modules both fall back and heal same targe "[behavior]") { Fixture f; - const ShipLayoutConfig repairLayout = makeTwoModuleLayout("repair_tool_module"); + const ShipLayoutConfig repairLayout = makeTwoModuleLayout("repair_tool"); const entt::entity repairShip = f.ships.spawn("repair_ship", 1, QVector2D(0.0f, 0.0f), false, repairLayout); const entt::entity preferred = f.ships.spawn("interceptor", 1, QVector2D(10.0f, 0.0f)); @@ -628,7 +628,7 @@ TEST_CASE("BehaviorSystem: tickRepairTools does not crash when owner lacks Repai TEST_CASE("BehaviorSystem: salvage ship writes intent toward nearest scrap", "[behavior]") { Fixture f; - const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvage_bay_module"); + const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvager"); const entt::entity ship = f.ships.spawn("salvage_ship", 1, QVector2D(0.0f, 0.0f), false, salvageLayout); @@ -645,7 +645,7 @@ TEST_CASE("BehaviorSystem: salvage ship writes intent toward nearest scrap", "[b TEST_CASE("BehaviorSystem: salvage ship collects scrap on arrival", "[behavior]") { Fixture f; - const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvage_bay_module"); + const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvager"); const entt::entity ship = f.ships.spawn("salvage_ship", 1, QVector2D(0.0f, 0.0f), false, salvageLayout); const entt::entity scrapEntity = f.scraps.spawn(QVector2D(0.0f, 0.0f), 1, 100000); @@ -676,7 +676,7 @@ TEST_CASE("BehaviorSystem: full-cargo salvage ship moves toward SalvageBay", "[b } REQUIRE(f.buildings.findBuilding(bayId) != nullptr); - const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvage_bay_module"); + const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvager"); const entt::entity ship = f.ships.spawn("salvage_ship", 1, QVector2D(5.0f, 0.0f), false, salvageLayout); { @@ -714,7 +714,7 @@ TEST_CASE("BehaviorSystem: salvage module does not collect scrap beyond its coll { // collection_range_formula = "50"; scrap at distance 55 must not be collected. Fixture f; - const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvage_bay_module"); + const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvager"); const entt::entity ship = f.ships.spawn("salvage_ship", 1, QVector2D(0.0f, 0.0f), false, salvageLayout); f.scraps.spawn(QVector2D(55.0f, 0.0f), 1, 100000); @@ -730,7 +730,7 @@ TEST_CASE("BehaviorSystem: salvage module collects scrap within its collection r { // collection_range_formula = "50"; scrap at distance 45 must be collected. Fixture f; - const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvage_bay_module"); + const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvager"); const entt::entity ship = f.ships.spawn("salvage_ship", 1, QVector2D(0.0f, 0.0f), false, salvageLayout); f.scraps.spawn(QVector2D(45.0f, 0.0f), 1, 100000); @@ -748,7 +748,7 @@ TEST_CASE("BehaviorSystem: salvage module collects scrap within its collection r TEST_CASE("BehaviorSystem: salvage collection sets cooldown on module", "[behavior]") { Fixture f; - const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvage_bay_module"); + const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvager"); const entt::entity ship = f.ships.spawn("salvage_ship", 1, QVector2D(0.0f, 0.0f), false, salvageLayout); f.scraps.spawn(QVector2D(0.0f, 0.0f), 1, 100000); @@ -765,7 +765,7 @@ TEST_CASE("BehaviorSystem: salvage collection sets cooldown on module", "[behavi TEST_CASE("BehaviorSystem: salvage module on cooldown does not collect scrap", "[behavior]") { Fixture f; - const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvage_bay_module"); + const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvager"); const entt::entity ship = f.ships.spawn("salvage_ship", 1, QVector2D(0.0f, 0.0f), false, salvageLayout); f.scraps.spawn(QVector2D(0.0f, 0.0f), 1, 100000); @@ -781,7 +781,7 @@ TEST_CASE("BehaviorSystem: salvage module on cooldown does not collect scrap", " TEST_CASE("BehaviorSystem: salvage module collects again after cooldown expires", "[behavior]") { Fixture f; - const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvage_bay_module"); + const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvager"); const entt::entity ship = f.ships.spawn("salvage_ship", 1, QVector2D(0.0f, 0.0f), false, salvageLayout); const entt::entity sc = firstSalvageChild(f.admin, ship); @@ -809,7 +809,7 @@ TEST_CASE("BehaviorSystem: salvage module collects again after cooldown expires" TEST_CASE("BehaviorSystem: two salvage modules collect independently in same tick", "[behavior]") { Fixture f; - const ShipLayoutConfig salvageLayout = makeTwoModuleLayout("salvage_bay_module"); + const ShipLayoutConfig salvageLayout = makeTwoModuleLayout("salvager"); const entt::entity ship = f.ships.spawn("salvage_ship", 1, QVector2D(0.0f, 0.0f), false, salvageLayout); @@ -827,7 +827,7 @@ TEST_CASE("BehaviorSystem: second salvage module does not collect when first mod { // One module on cooldown, one ready: only the ready module collects. Fixture f; - const ShipLayoutConfig salvageLayout = makeTwoModuleLayout("salvage_bay_module"); + const ShipLayoutConfig salvageLayout = makeTwoModuleLayout("salvager"); const entt::entity ship = f.ships.spawn("salvage_ship", 1, QVector2D(0.0f, 0.0f), false, salvageLayout); @@ -913,7 +913,7 @@ TEST_CASE("SensorRange: enemy ship ignores player just outside sensor range", "[ TEST_CASE("SensorRange: repair ship retreats from enemy within sensor range", "[sensor]") { Fixture f; - const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool_module"); + const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool"); const entt::entity repairShip = f.ships.spawn("repair_ship", 1, QVector2D(0.0f, 0.0f), false, repairLayout); f.ships.spawn("interceptor", 1, QVector2D(200.0f, 0.0f), /*isEnemy=*/true); @@ -928,7 +928,7 @@ TEST_CASE("SensorRange: repair ship retreats from enemy within sensor range", "[ TEST_CASE("SensorRange: repair ship does not retreat from enemy beyond sensor range", "[sensor]") { Fixture f; - const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool_module"); + const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool"); const entt::entity repairShip = f.ships.spawn("repair_ship", 1, QVector2D(0.0f, 0.0f), false, repairLayout); f.ships.spawn("interceptor", 1, QVector2D(300.0f, 0.0f), /*isEnemy=*/true); @@ -942,7 +942,7 @@ TEST_CASE("SensorRange: repair ship does not retreat from enemy beyond sensor ra TEST_CASE("SensorRange: repair ship does not acquire damaged ally beyond sensor range", "[sensor]") { Fixture f; - const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool_module"); + const ShipLayoutConfig repairLayout = makeSingleModuleLayout("repair_tool"); const entt::entity repairShip = f.ships.spawn("repair_ship", 1, QVector2D(0.0f, 0.0f), false, repairLayout); const entt::entity friendly = f.ships.spawn("interceptor", 1, QVector2D(300.0f, 0.0f)); @@ -961,7 +961,7 @@ TEST_CASE("SensorRange: repair ship does not acquire damaged ally beyond sensor TEST_CASE("SensorRange: salvage ship ignores scrap beyond sensor range", "[sensor]") { Fixture f; - const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvage_bay_module"); + const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvager"); const entt::entity ship = f.ships.spawn("salvage_ship", 1, QVector2D(0.0f, 0.0f), false, salvageLayout); f.scraps.spawn(QVector2D(300.0f, 0.0f), 1, 100000); diff --git a/src/test/ShipTest.cpp b/src/test/ShipTest.cpp index a5e912d..2c08da1 100644 --- a/src/test/ShipTest.cpp +++ b/src/test/ShipTest.cpp @@ -147,7 +147,7 @@ TEST_CASE("ShipSystem: interceptor level 0 maxSpeedPerTick matches formula / kTi } // --------------------------------------------------------------------------- -// Salvage ship (spawned with salvage_bay_module layout) +// Salvage ship (spawned with salvager layout) // --------------------------------------------------------------------------- TEST_CASE("ShipSystem: salvage_ship spawn with salvage module has cargo child and behavior, no weapon", @@ -157,7 +157,7 @@ TEST_CASE("ShipSystem: salvage_ship spawn with salvage module has cargo child an const GameConfig cfg = loadConfig(); ShipSystem ss(cfg, admin); - const ShipLayoutConfig layout = makeSingleModuleLayout("salvage_bay_module"); + const ShipLayoutConfig layout = makeSingleModuleLayout("salvager"); const entt::entity e = ss.spawn("salvage_ship", 1, QVector2D(0.0f, 0.0f), false, layout); REQUIRE(admin.isValid(firstSalvageChild(admin, e))); @@ -172,10 +172,10 @@ TEST_CASE("ShipSystem: salvage_ship cargo capacity matches config", "[ship]") const GameConfig cfg = loadConfig(); ShipSystem ss(cfg, admin); - const ShipLayoutConfig layout = makeSingleModuleLayout("salvage_bay_module"); + const ShipLayoutConfig layout = makeSingleModuleLayout("salvager"); const entt::entity e = ss.spawn("salvage_ship", 1, QVector2D(0.0f, 0.0f), false, layout); - // salvage_bay_module: cargo_capacity_formula = "10", collection_range_formula = "50" + // salvager: cargo_capacity_formula = "10", collection_range_formula = "50" const entt::entity sc = firstSalvageChild(admin, e); REQUIRE(admin.isValid(sc)); REQUIRE(admin.get(sc).capacity == 10); @@ -186,7 +186,7 @@ TEST_CASE("ShipSystem: salvage_ship cargo capacity matches config", "[ship]") } // --------------------------------------------------------------------------- -// Repair ship (spawned with repair_tool_module layout) +// Repair ship (spawned with repair_tool layout) // --------------------------------------------------------------------------- TEST_CASE("ShipSystem: repair_ship spawn with repair module has repair child and behavior, no weapon", @@ -196,7 +196,7 @@ TEST_CASE("ShipSystem: repair_ship spawn with repair module has repair child and const GameConfig cfg = loadConfig(); ShipSystem ss(cfg, admin); - const ShipLayoutConfig layout = makeSingleModuleLayout("repair_tool_module"); + const ShipLayoutConfig layout = makeSingleModuleLayout("repair_tool"); const entt::entity e = ss.spawn("repair_ship", 1, QVector2D(0.0f, 0.0f), false, layout); REQUIRE(admin.isValid(firstRepairChild(admin, e))); @@ -211,10 +211,10 @@ TEST_CASE("ShipSystem: repair_ship level 1 repair stats match config formulas", const GameConfig cfg = loadConfig(); ShipSystem ss(cfg, admin); - const ShipLayoutConfig layout = makeSingleModuleLayout("repair_tool_module"); + const ShipLayoutConfig layout = makeSingleModuleLayout("repair_tool"); const entt::entity e = ss.spawn("repair_ship", 1, QVector2D(0.0f, 0.0f), false, layout); - // repair_tool_module: repair_rate_formula = "5 + x" at x=1 → 6 / kTickRateHz + // repair_tool: repair_rate_formula = "5 + x" at x=1 → 6 / kTickRateHz const float expectedRate = 6.0f / static_cast(kTickRateHz); const entt::entity rc = firstRepairChild(admin, e); REQUIRE(admin.isValid(rc)); @@ -235,7 +235,7 @@ TEST_CASE("ShipSystem: spawned ships are valid entities", "[ship]") ShipSystem ss(cfg, admin); const entt::entity e1 = ss.spawn("interceptor", 1, QVector2D(0.0f, 0.0f)); - const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvage_bay_module"); + const ShipLayoutConfig salvageLayout = makeSingleModuleLayout("salvager"); const entt::entity e2 = ss.spawn("salvage_ship", 1, QVector2D(1.0f, 0.0f), false, salvageLayout); REQUIRE(admin.isValid(e1));