Commit graph

3,302 commits

Author SHA1 Message Date
Meta Vens
005e2fc57b Merge origin/master into sensor-catalog-r2 (code; catalog is master's)
Conflicts: EvasionTermTests keeps the branch's EvLonginusDrive split with master's generic
design names; AetherDb Program.cs keeps both the sensor-stat-set and generic-designs cases and
lists both in the usage line. GameData/Aetheria.cc is taken from origin/master unchanged;
sensor-stat-set apply is rerun on it in the next commit. Tests that read the sensor catalog
(TheCatalogCarriesSensorStats and the roles checks) do not pass at this commit: it builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 03:34:19 +02:00
Meta Vens
be01ee0600 Merge remote-tracking branch 'origin/master' into eureka/aetheria-release-generic-design-names 2026-10-14 02:12:14 +02:00
Meta Vens
cefbb3dca7 aetheria-release map: damage falloff at fire time (cut-damage-falloff r2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 02:08:26 +02:00
Meta Vens
d06a2faea9 aetheria-release map: inspection-scanner refresh at b836af48 (r3), shared sites with sensor-catalog
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 02:01:45 +02:00
Meta Vens
883d38a136 GameData/Aetheria.cc: generic-designs apply on master's catalog at b836af48 (replayed at merge, blob not merged)
Output of `dotnet run --project tools/AetherDb -- generic-designs apply` on f1642a12 (sha256 of the result
9ee82a860bc41fed142226a6bcc5ee8cb26c54ee1112d3d999feffaf1f2339ca). The touched set (139 design and product lines) is
identical to the apply at dc3abbdd on the old base; EW 1b records are untouched. A second dry run prints "Already applied;
nothing to do." The dry run printed:

design name: "ClearPath" -> "Light Machine Gun"
design "Light Machine Gun" text: "Defend your precious cargo and have fun doing it. Comes with optional sound effects." -> "Light ballistic hose: many small rounds at short range."
design name: "6k Shooter" -> "Slug Rifle"
design "Slug Rifle" text: "The fastest gun in Elysium" -> "Single heavy slugs, fired as fast as the trigger."
design name: "Earp" -> "Long Slug Rifle"
design "Long Slug Rifle" text: "Bringing the Wild West to the New Frontier" -> "A lighter slug rifle with the longest ballistic reach."
design name: "DeathCluster" -> "Cluster Cannon"
design "Cluster Cannon" text: "Because why kill two birds with one stone when you could annihilate them with one hundred?" -> "Medium shotgun: a heavy volley of pellets."
design name: "pretty pretty bang bang" -> "Charged Scattergun"
design "Charged Scattergun" text: "make your last stand/ it's a pretty pretty mess you've got us into/ it's a pretty pretty pretty day to die/ locked and loaded we're going out with a bang" -> "Ballistic shotgun that charges for a heavier volley."
design name: "Spectra" -> "Light Laser"
design "Light Laser" text: "Travelling light, for those travelling light. Take out the competition without slowing down with Spectra." -> "The lightest beam: low damage, quick cycle, long reach."
design name: "FastBlast+-" -> "Cell Blaster"
design "Cell Blaster" text: "Do less damage, faster!" -> "Rapid energy bursts fed by cells that cut its reactor draw."
design name: "ColdFire" -> "Long Laser"
design "Long Laser" text: "Operates by taking advantage of the wave/particle duality in a way that has other scientist tearing their hair out. Fact: Adrasteia's R&D department is the reason Einstein's hair looked like that." -> "Heavy small beam: slow, hard-hitting, long reach."
design name: "CShot RainbowLite Lazer" -> "Heavy Beam Laser"
design "Heavy Beam Laser" text: "Light up the cold, infinite void with more than your smile! Our precision full spectrum lasers are both combat and concert ready." -> "The heaviest beam: nine cells, enormous damage and reach."
design name: "ChargeBlast+-" -> "Charged Blaster"
design "Charged Blaster" text: "A knockout weapon, the arms equivalent of downing 9 shots of Tollgan Swamp liquor." -> "One charged knockout shot."
design name: "ChargeBlast SG" -> "Charged Scatter Blaster"
design "Charged Scatter Blaster" text: "For those days when you really want to spread the pain around." -> "Charged energy shotgun."
design name: "plight" -> "Lightning Projector"
design "Lightning Projector" text: "Chain lightning has your enemies chain smoking while you enjoy a relaxing DragOnBreath vapepop, now available in 17! flavours (manufactured by DragOnBreath, a subsidary of Lucent Media)" -> "Charged chain lightning."
design name: "GT 3K" -> "Guided Missile Launcher"
design "Guided Missile Launcher" text: "Smaller, faster, and more determined than ever. The little missile that could!" -> "Fires guided missiles."
design name: "LRMM72" -> "Long-Range Missile Rack"
design "Long-Range Missile Rack" text: "" -> "Large missile rack for long engagements."
design name: "SRMM72" -> "Short-Range Missile Rack"
design "Short-Range Missile Rack" text: "" -> "Extra-large rack of short-range missiles."
design name: "pswarm" -> "Swarm Rocket Pod"
design "Swarm Rocket Pod" text: "let's set the stars on fire/ there's nothing left on earth to burn/ we're just killing time while we're filling space/ and catacombs in turn" -> "Dumbfire rockets in a swarm."
design name: "scorched void policy" -> "Incendiary Rocket Pod"
design "Incendiary Rocket Pod" text: "let's set the stars on fire/ there's nothing left on earth to burn/ we're just killing time while we're filling space/ and catacombs in turn" -> "Incendiary dumbfire rockets."
design name: "Arctica" -> "Adaptive Radiator"
design "Adaptive Radiator" text: "Go blazingly fast, without burning up." -> "Radiator whose output scales widely with conditions."
design name: "Iapyx" -> "Radiator"
design "Radiator" text: "" -> "Standard two-cell radiator."
design name: "Skiron" -> "Long Radiator"
design "Long Radiator" text: "" -> "Four-cell radiator with a large surface."
design name: "OK Disperser" -> "Heat Pump"
design "Heat Pump" text: "Adapted from the patented cooling system Lucent uses in their professional gaming setups. A high quality cooler, built to withstand even the most aggressive of rage quits." -> "Moves heat to where it can be shed."
design name: "cold like my heart" -> "Cryogenic Heat Pump"
design "Cryogenic Heat Pump" text: "nothing can touch me/ i'm an agent of entropy/ heat death in a bottle like a molotov cocktail" -> "Heavy heat pump that drives temperatures far down."
design name: "Core Power" -> "Compact Reactor"
design "Compact Reactor" text: "It gets the job done, but that's all." -> "Small reactor."
design name: "Manhattan" -> "Heavy Reactor"
design "Heavy Reactor" text: "Because might is right and finesse is for fools" -> "Large three-by-three reactor."
design name: "Notorious" -> "High-Yield Reactor"
design "High-Yield Reactor" text: "A reactor for those who want the biggest reaction" -> "Large reactor with a wide output range."
design name: "Vulcan" -> "Ring Reactor"
design "Ring Reactor" text: "High output, high heat. Blaze across the cosmos like the comet you were meant to be." -> "Ring-shaped reactor, four by four."
design name: "MoveOnPro" -> "Muon Fusion Reactor"
design "Muon Fusion Reactor" text: "The only muon catalyst fusion reactor on the market! Always gets a great reaction." -> "Compact fusion reactor that draws a reservoir."
design name: "Core Power Station Reactor" -> "Station Reactor"
design name: "Manhattan Station Reactor" -> "Heavy Station Reactor"
design "Heavy Station Reactor" text: "A reactor sized for a station's core." -> "A heavy reactor sized for a station's core."
design name: "Notorious Station Reactor" -> "High-Yield Station Reactor"
design "High-Yield Station Reactor" text: "A reactor sized for a station's core." -> "A high-yield reactor sized for a station's core."
design name: "Vulcan Station Reactor" -> "Ring Station Reactor"
design "Ring Station Reactor" text: "A reactor sized for a station's core." -> "A ring reactor sized for a station's core."
design name: "MoveOnPro Station Reactor" -> "Muon Fusion Station Reactor"
design "Muon Fusion Station Reactor" text: "A reactor sized for a station's core." -> "A muon fusion reactor sized for a station's core."
design name: "RevvITup 2.0" -> "High-Thrust Drive"
design "High-Thrust Drive" text: "" -> "Large drive: huge thrust, little torque."
design name: "deep space burnout" -> "Burn Drive"
design "Burn Drive" text: "go go go go go/ get the drift/ you'll burn before you stop " -> "Large drive that runs very hot."
design name: "Talaria" -> "Rugged Drive"
design "Rugged Drive" text: "" -> "Two-cell working drive."
design name: "Victoire" -> "Racing Drive"
design "Racing Drive" text: "The most responsive thruster on the market, for the most irresponsible of racing pilots." -> "Feather-light two-cell drive with extreme response."
design name: "The Bat" -> "Sensor Array"
design "Sensor Array" text: "" -> "Two-by-two long-range sensor array."
design name: "not if i see you first" -> "Compact Sensor"
design "Compact Sensor" text: "[TODO]" -> "One-cell sensor."
design name: "PotaT+-" -> "Capacitor"
design "Capacitor" text: "[TODO]" -> "Stores charge for burst draw."
design name: "SafeStuff II" -> "Secure Cargo Bay"
design "Secure Cargo Bay" text: "Your stuff is safe stuffed in the new, bigger SafeStuff" -> "Three-by-three secured hold."
design name: "Store-All Enterprise Edition" -> "Large Cargo Bay"
design "Large Cargo Bay" text: "A large amount of storage" -> "Six-by-six hold."
design name: "Store-All Plus" -> "Cargo Bay"
design "Cargo Bay" text: "Take your cargo wherever your shipgo" -> "Two-by-two hold."
design name: "Store-All Plus Mini" -> "Small Cargo Bay"
design "Small Cargo Bay" text: "Take some of your cargo wherever your shipgo" -> "One-cell hold."
product of "Autocannon" by Zhestokost: "Autocannon" -> "Hammerfall"
product "Hammerfall" text: "" -> "The rounds fall steadily, and they do not stop until the work is done."
design "Autocannon" text: "" -> "Belt-fed cannon: a steady stream of rounds at long reach."
product of "Cockpit 2x2" by Lightsail: "Cockpit 2x2" -> "Wheelhouse"
product "Wheelhouse" text: "" -> "Every Lightsail captain's favourite chair. The view comes standard."
design "Cockpit 2x2" text: "" -> "Two-by-two crew cockpit."
product of "Industrial Thermostatic Heater" by Lightsail: "Industrial Thermostatic Heater" -> "Hearth"
product "Hearth" text: "" -> "A warm hold, a warm crew, and a warm welcome at the cold end of the run."
design "Industrial Thermostatic Heater" text: "" -> "Turns reactor power into heat to keep the hull warm."
product of "Medium Drive" by Lightsail: "Medium Drive" -> "Steady Haul"
product "Steady Haul" text: "" -> "Keeps you going and going and going..."
design "Medium Drive" text: "Keeps you going and going and going..." -> "Mid-sized working drive."
product of "Small Drive" by Lightsail: "Small Drive" -> "Short Hop"
product "Short Hop" text: "" -> "Dock to dock, and not a metre further than the manifest says."
design "Small Drive" text: "" -> "Small working drive."
product of "Turret Control Module" by AU: "Turret Control Module" -> "Watchtower"
product "Watchtower" text: "" -> "Point it at the dark and get back to work. It keeps watch."
design "Turret Control Module" text: "" -> "Control module for a station turret."
product of "Medium Docking Bay" by AU: "Medium Docking Bay" -> "Open Berth"
product "Open Berth" text: "" -> "Room for a friend, a customer or a tug. We don't ask which."
design "Medium Docking Bay" text: "" -> "Docking bay for mid-sized ships."
product of "Mine Launcher" by DME: "Mine Launcher" -> "parting gift"
product "parting gift" text: "Lays a drifting proximity mine that arms after two seconds." -> "we were never here/ but we left you something/ it's waiting where we were"
design "Mine Launcher" text: "" -> "Lays a drifting proximity mine that arms after two seconds."
design "Large Drive" text: "Keeps you going and going and going..." -> "Large working drive."
design "Tractor Beam" text: "Trap your enemies in gravity wells. Haul thousands of tons of hay through space!" -> "Holds a target in a gravity well and hauls it in."
design "Smoke Proximity" text: "A Spectra that bursts by proximity, blast 8. For scenarios; no one builds it." -> "A Light Laser that bursts by proximity, blast 8. For scenarios; no one builds it."
design "Smoke Delayed" text: "A Spectra that bursts after two cells of metal, blast 4. For scenarios; no one builds it." -> "A Light Laser that bursts after two cells of metal, blast 4. For scenarios; no one builds it."
design "Smoke Refused" text: "A Spectra whose blast is wider than its reach, so it never fires. For scenarios; no one builds it." -> "A Light Laser whose blast is wider than its reach, so it never fires. For scenarios; no one builds it."
design "Smoke Refused Charge" text: "A ChargeBlast SG whose blast is wider than its reach, so it never charges. For scenarios; no one builds it." -> "A Charged Scatter Blaster whose blast is wider than its reach, so it never charges. For scenarios; no one builds it."
product "Victoire" text: "" -> "The most responsive thruster on the market, for the most irresponsible of racing pilots."
product "DragOnBreath" text: "The subsidiary plight's own description already namechecks: DragOnBreath, a Lucent Media property." -> "Chain lightning has your enemies chain smoking while you enjoy a relaxing DragOnBreath vapepop, now available in 17! flavours (manufactured by DragOnBreath, a subsidary of Lucent Media)"
product "Steadfast" text: "Rated for continuous operation. "Continuous" does not imply "uninterrupted." (new text)" -> "It gets the job done, but that's all. Rated for continuous operation. "Continuous" does not imply "uninterrupted.""
product "Steadfast Station" text: "" -> "Rated for continuous operation at station scale. The fine print scales too."
product "Manhattan Station" text: "" -> "A fortress needs a furnace. This is the furnace."
product "Notorious Station" text: "" -> "The biggest reaction in the system, and everyone docked here will hear about it."
product "Vulcan Station" text: "" -> "Keeps the lights on and the forges hot."
product "MoveOnPro Station" text: "" -> "The club never closes. Neither does the reactor."
product "LRMM72" text: "" -> "Engages targets at up to seventy-two kilometres!* *In a vacuum, against a cooperative target."
product "SRMM72" text: "" -> "seventy-two reasons/ to keep your distance/ all of them leaving at once"
product "Iapyx" text: "" -> "Two cells of honest fin. Bolt it on and forget it's there."
product "Skiron" text: "" -> "When the job runs hot, run a bigger fin."
product "Talaria" text: "" -> "Takes a knock, keeps pushing. Built for crews who work for a living."
product "RevvITup 2.0" text: "" -> "Floor it. The bass drops when you do."
product "PotaT+-" text: "[TODO]" -> "Holds the charge until the drop, then lets it all go at once."
product "not if i see you first" text: "[TODO]" -> "eyes in the dark/ you were seen before you looked/ say goodnight"
product "Space Tractor" text: "It's a tractor. In space." -> "It's a tractor. In space. Trap your enemies in gravity wells. Haul thousands of tons of hay through space!"
product "Panopticon" authoring note stripped: "Sees everything, judges nothing. Well, mostly nothing. (new text)" -> "Sees everything, judges nothing. Well, mostly nothing."
product "ClapBack" authoring note stripped: "Your target won't clock it until the killcam. (new text)" -> "Your target won't clock it until the killcam."
product "Panopticon Prime" authoring note stripped: "The upgrade nobody at Finch will admit they needed until they had it. (new text)" -> "The upgrade nobody at Finch will admit they needed until they had it."
product "LockOn Pro" authoring note stripped: "Same promise, sharper lock. (new text)" -> "Same promise, sharper lock."
product "ClapBack Ultra" authoring note stripped: "Now with main-character energy built in. (new text)" -> "Now with main-character energy built in."
product "LockOn" authoring note stripped: "Keeps the lights on your target. (new text)" -> "Keeps the lights on your target."
product "True North" authoring note stripped: "Gets your cargo there. Getting you there is your problem. (new text)" -> "Gets your cargo there. Getting you there is your problem."

Dry run. Pass "apply" to write 89 records.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 01:53:49 +02:00
Meta Vens
36cc37419c Sweep old design-name literals landed on master since the base (Lock On, EW 1b)
LockOn.cs hardpoint rows (Talaria, Core Power, GT 3K, FastBlast+-, Iapyx, not if i see you first, PotaT+-,
Store-All Plus) and LaunchSuppressorCatalogTests' SensorName take the generic names. Product-name literals in
CatalogRoleTests and GenericDesignsCommandTests stay: they are brands, not designs. Does not pass the scenario
tests until the catalog commit renames the designs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 01:51:55 +02:00
Meta Vens
a8394f3f92 Merge origin/master into generic-design-names
Conflicts: AetherDb usage line (kept master's list plus generic-designs [apply]), Program.cs class tail (kept the
launch-suppressor catalog and GenericDesigns both), GameData/Aetheria.cc taken from origin/master (f1642a12; the
generic-designs apply rerun follows in its own commit). The old-name sweep of the newly landed code follows separately.
This commit does not pass the generic-name tests: the catalog is master's, not yet renamed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 01:49:18 +02:00
Meta Vens
068adf0d95 Tests: the lot-derived alpha test equips its lot before the ship deploys
The first commit's test equipped the sensor after Add admitted the ship, and TryEquip refuses on a deployed ship; the lot built through ItemManager now rides Make into the mount. b63cdf5d does not pass that test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 23:32:50 +02:00
Meta Vens
b836af4850 Merge origin/master into loot-3 (second) 2026-10-13 23:30:23 +02:00
Meta Vens
b63cdf5d2b Tests: a Sensor reads its intercept factor from its lot's emission-discipline; the Longinus broadside ceiling has its own fitted factor
ASensorReadsItsInterceptFactorFromItsLotsEmissionDiscipline equips a catalog-style sensor from a lot filled at .5, .2 and .8 and reads Sensor.InterceptFactor (1, .6168, 1.5534). The Longinus half of ReachIsWhatTheShipCanDo takes LonginusBroadsideFactor (1.27, from reach 12.74 over measured 10.40) in place of the Djinni's. Builds not verified until the verify job; no catalog change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 23:15:35 +02:00
Meta Vens
78ccb81f72 Merge origin/master into loot-3
No conflicts; GameData/Aetheria.cc taken from master (loot-3 authors no catalog).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 23:13:22 +02:00
Meta Vens
dc3abbddce GameData/Aetheria.cc: generic-designs apply on the base catalog through an ExpectUnchanged batch (sha256 34cbfacc50de6ba7945fe47c1e699d3125c7c3ba445675a8b8bfebfe58c057ba)
Produced by a Yggdrasil job (dotnet run AetherDb -- generic-designs apply at 7d1fa5ce) on the catalog at the base (1746e8bd, sha256 1a2cb55b63f77a113dea0571716994ef8311d5da572a4fc41cbd3a7d2561fb68). 89 records written; the other 169 are byte-identical to the base. Of the 89, 85 differ from the base only in Name/Description; four (Compact Sensor, Sensor Array, Long-Range Missile Rack, Guided Missile Launcher) are authored records and still re-encode their Behaviors through the typed object. A second run answers 'Already applied; nothing to do.' Dry-run text:

design name: "ClearPath" -> "Light Machine Gun"
design "Light Machine Gun" text: "Defend your precious cargo and have fun doing it. Comes with optional sound effects." -> "Light ballistic hose: many small rounds at short range."
design name: "6k Shooter" -> "Slug Rifle"
design "Slug Rifle" text: "The fastest gun in Elysium" -> "Single heavy slugs, fired as fast as the trigger."
design name: "Earp" -> "Long Slug Rifle"
design "Long Slug Rifle" text: "Bringing the Wild West to the New Frontier" -> "A lighter slug rifle with the longest ballistic reach."
design name: "DeathCluster" -> "Cluster Cannon"
design "Cluster Cannon" text: "Because why kill two birds with one stone when you could annihilate them with one hundred?" -> "Medium shotgun: a heavy volley of pellets."
design name: "pretty pretty bang bang" -> "Charged Scattergun"
design "Charged Scattergun" text: "make your last stand/ it's a pretty pretty mess you've got us into/ it's a pretty pretty pretty day to die/ locked and loaded we're going out with a bang" -> "Ballistic shotgun that charges for a heavier volley."
design name: "Spectra" -> "Light Laser"
design "Light Laser" text: "Travelling light, for those travelling light. Take out the competition without slowing down with Spectra." -> "The lightest beam: low damage, quick cycle, long reach."
design name: "FastBlast+-" -> "Cell Blaster"
design "Cell Blaster" text: "Do less damage, faster!" -> "Rapid energy bursts fed by cells that cut its reactor draw."
design name: "ColdFire" -> "Long Laser"
design "Long Laser" text: "Operates by taking advantage of the wave/particle duality in a way that has other scientist tearing their hair out. Fact: Adrasteia's R&D department is the reason Einstein's hair looked like that." -> "Heavy small beam: slow, hard-hitting, long reach."
design name: "CShot RainbowLite Lazer" -> "Heavy Beam Laser"
design "Heavy Beam Laser" text: "Light up the cold, infinite void with more than your smile! Our precision full spectrum lasers are both combat and concert ready." -> "The heaviest beam: nine cells, enormous damage and reach."
design name: "ChargeBlast+-" -> "Charged Blaster"
design "Charged Blaster" text: "A knockout weapon, the arms equivalent of downing 9 shots of Tollgan Swamp liquor." -> "One charged knockout shot."
design name: "ChargeBlast SG" -> "Charged Scatter Blaster"
design "Charged Scatter Blaster" text: "For those days when you really want to spread the pain around." -> "Charged energy shotgun."
design name: "plight" -> "Lightning Projector"
design "Lightning Projector" text: "Chain lightning has your enemies chain smoking while you enjoy a relaxing DragOnBreath vapepop, now available in 17! flavours (manufactured by DragOnBreath, a subsidary of Lucent Media)" -> "Charged chain lightning."
design name: "GT 3K" -> "Guided Missile Launcher"
design "Guided Missile Launcher" text: "Smaller, faster, and more determined than ever. The little missile that could!" -> "Fires guided missiles."
design name: "LRMM72" -> "Long-Range Missile Rack"
design "Long-Range Missile Rack" text: "" -> "Large missile rack for long engagements."
design name: "SRMM72" -> "Short-Range Missile Rack"
design "Short-Range Missile Rack" text: "" -> "Extra-large rack of short-range missiles."
design name: "pswarm" -> "Swarm Rocket Pod"
design "Swarm Rocket Pod" text: "let's set the stars on fire/ there's nothing left on earth to burn/ we're just killing time while we're filling space/ and catacombs in turn" -> "Dumbfire rockets in a swarm."
design name: "scorched void policy" -> "Incendiary Rocket Pod"
design "Incendiary Rocket Pod" text: "let's set the stars on fire/ there's nothing left on earth to burn/ we're just killing time while we're filling space/ and catacombs in turn" -> "Incendiary dumbfire rockets."
design name: "Arctica" -> "Adaptive Radiator"
design "Adaptive Radiator" text: "Go blazingly fast, without burning up." -> "Radiator whose output scales widely with conditions."
design name: "Iapyx" -> "Radiator"
design "Radiator" text: "" -> "Standard two-cell radiator."
design name: "Skiron" -> "Long Radiator"
design "Long Radiator" text: "" -> "Four-cell radiator with a large surface."
design name: "OK Disperser" -> "Heat Pump"
design "Heat Pump" text: "Adapted from the patented cooling system Lucent uses in their professional gaming setups. A high quality cooler, built to withstand even the most aggressive of rage quits." -> "Moves heat to where it can be shed."
design name: "cold like my heart" -> "Cryogenic Heat Pump"
design "Cryogenic Heat Pump" text: "nothing can touch me/ i'm an agent of entropy/ heat death in a bottle like a molotov cocktail" -> "Heavy heat pump that drives temperatures far down."
design name: "Core Power" -> "Compact Reactor"
design "Compact Reactor" text: "It gets the job done, but that's all." -> "Small reactor."
design name: "Manhattan" -> "Heavy Reactor"
design "Heavy Reactor" text: "Because might is right and finesse is for fools" -> "Large three-by-three reactor."
design name: "Notorious" -> "High-Yield Reactor"
design "High-Yield Reactor" text: "A reactor for those who want the biggest reaction" -> "Large reactor with a wide output range."
design name: "Vulcan" -> "Ring Reactor"
design "Ring Reactor" text: "High output, high heat. Blaze across the cosmos like the comet you were meant to be." -> "Ring-shaped reactor, four by four."
design name: "MoveOnPro" -> "Muon Fusion Reactor"
design "Muon Fusion Reactor" text: "The only muon catalyst fusion reactor on the market! Always gets a great reaction." -> "Compact fusion reactor that draws a reservoir."
design name: "Core Power Station Reactor" -> "Station Reactor"
design name: "Manhattan Station Reactor" -> "Heavy Station Reactor"
design "Heavy Station Reactor" text: "A reactor sized for a station's core." -> "A heavy reactor sized for a station's core."
design name: "Notorious Station Reactor" -> "High-Yield Station Reactor"
design "High-Yield Station Reactor" text: "A reactor sized for a station's core." -> "A high-yield reactor sized for a station's core."
design name: "Vulcan Station Reactor" -> "Ring Station Reactor"
design "Ring Station Reactor" text: "A reactor sized for a station's core." -> "A ring reactor sized for a station's core."
design name: "MoveOnPro Station Reactor" -> "Muon Fusion Station Reactor"
design "Muon Fusion Station Reactor" text: "A reactor sized for a station's core." -> "A muon fusion reactor sized for a station's core."
design name: "RevvITup 2.0" -> "High-Thrust Drive"
design "High-Thrust Drive" text: "" -> "Large drive: huge thrust, little torque."
design name: "deep space burnout" -> "Burn Drive"
design "Burn Drive" text: "go go go go go/ get the drift/ you'll burn before you stop " -> "Large drive that runs very hot."
design name: "Talaria" -> "Rugged Drive"
design "Rugged Drive" text: "" -> "Two-cell working drive."
design name: "Victoire" -> "Racing Drive"
design "Racing Drive" text: "The most responsive thruster on the market, for the most irresponsible of racing pilots." -> "Feather-light two-cell drive with extreme response."
design name: "The Bat" -> "Sensor Array"
design "Sensor Array" text: "" -> "Two-by-two long-range sensor array."
design name: "not if i see you first" -> "Compact Sensor"
design "Compact Sensor" text: "[TODO]" -> "One-cell sensor."
design name: "PotaT+-" -> "Capacitor"
design "Capacitor" text: "[TODO]" -> "Stores charge for burst draw."
design name: "SafeStuff II" -> "Secure Cargo Bay"
design "Secure Cargo Bay" text: "Your stuff is safe stuffed in the new, bigger SafeStuff" -> "Three-by-three secured hold."
design name: "Store-All Enterprise Edition" -> "Large Cargo Bay"
design "Large Cargo Bay" text: "A large amount of storage" -> "Six-by-six hold."
design name: "Store-All Plus" -> "Cargo Bay"
design "Cargo Bay" text: "Take your cargo wherever your shipgo" -> "Two-by-two hold."
design name: "Store-All Plus Mini" -> "Small Cargo Bay"
design "Small Cargo Bay" text: "Take some of your cargo wherever your shipgo" -> "One-cell hold."
product of "Autocannon" by Zhestokost: "Autocannon" -> "Hammerfall"
product "Hammerfall" text: "" -> "The rounds fall steadily, and they do not stop until the work is done."
design "Autocannon" text: "" -> "Belt-fed cannon: a steady stream of rounds at long reach."
product of "Cockpit 2x2" by Lightsail: "Cockpit 2x2" -> "Wheelhouse"
product "Wheelhouse" text: "" -> "Every Lightsail captain's favourite chair. The view comes standard."
design "Cockpit 2x2" text: "" -> "Two-by-two crew cockpit."
product of "Industrial Thermostatic Heater" by Lightsail: "Industrial Thermostatic Heater" -> "Hearth"
product "Hearth" text: "" -> "A warm hold, a warm crew, and a warm welcome at the cold end of the run."
design "Industrial Thermostatic Heater" text: "" -> "Turns reactor power into heat to keep the hull warm."
product of "Medium Drive" by Lightsail: "Medium Drive" -> "Steady Haul"
product "Steady Haul" text: "" -> "Keeps you going and going and going..."
design "Medium Drive" text: "Keeps you going and going and going..." -> "Mid-sized working drive."
product of "Small Drive" by Lightsail: "Small Drive" -> "Short Hop"
product "Short Hop" text: "" -> "Dock to dock, and not a metre further than the manifest says."
design "Small Drive" text: "" -> "Small working drive."
product of "Turret Control Module" by AU: "Turret Control Module" -> "Watchtower"
product "Watchtower" text: "" -> "Point it at the dark and get back to work. It keeps watch."
design "Turret Control Module" text: "" -> "Control module for a station turret."
product of "Medium Docking Bay" by AU: "Medium Docking Bay" -> "Open Berth"
product "Open Berth" text: "" -> "Room for a friend, a customer or a tug. We don't ask which."
design "Medium Docking Bay" text: "" -> "Docking bay for mid-sized ships."
product of "Mine Launcher" by DME: "Mine Launcher" -> "parting gift"
product "parting gift" text: "Lays a drifting proximity mine that arms after two seconds." -> "we were never here/ but we left you something/ it's waiting where we were"
design "Mine Launcher" text: "" -> "Lays a drifting proximity mine that arms after two seconds."
design "Large Drive" text: "Keeps you going and going and going..." -> "Large working drive."
design "Tractor Beam" text: "Trap your enemies in gravity wells. Haul thousands of tons of hay through space!" -> "Holds a target in a gravity well and hauls it in."
design "Smoke Proximity" text: "A Spectra that bursts by proximity, blast 8. For scenarios; no one builds it." -> "A Light Laser that bursts by proximity, blast 8. For scenarios; no one builds it."
design "Smoke Delayed" text: "A Spectra that bursts after two cells of metal, blast 4. For scenarios; no one builds it." -> "A Light Laser that bursts after two cells of metal, blast 4. For scenarios; no one builds it."
design "Smoke Refused" text: "A Spectra whose blast is wider than its reach, so it never fires. For scenarios; no one builds it." -> "A Light Laser whose blast is wider than its reach, so it never fires. For scenarios; no one builds it."
design "Smoke Refused Charge" text: "A ChargeBlast SG whose blast is wider than its reach, so it never charges. For scenarios; no one builds it." -> "A Charged Scatter Blaster whose blast is wider than its reach, so it never charges. For scenarios; no one builds it."
product "Victoire" text: "" -> "The most responsive thruster on the market, for the most irresponsible of racing pilots."
product "DragOnBreath" text: "The subsidiary plight's own description already namechecks: DragOnBreath, a Lucent Media property." -> "Chain lightning has your enemies chain smoking while you enjoy a relaxing DragOnBreath vapepop, now available in 17! flavours (manufactured by DragOnBreath, a subsidary of Lucent Media)"
product "Steadfast" text: "Rated for continuous operation. "Continuous" does not imply "uninterrupted." (new text)" -> "It gets the job done, but that's all. Rated for continuous operation. "Continuous" does not imply "uninterrupted.""
product "Steadfast Station" text: "" -> "Rated for continuous operation at station scale. The fine print scales too."
product "Manhattan Station" text: "" -> "A fortress needs a furnace. This is the furnace."
product "Notorious Station" text: "" -> "The biggest reaction in the system, and everyone docked here will hear about it."
product "Vulcan Station" text: "" -> "Keeps the lights on and the forges hot."
product "MoveOnPro Station" text: "" -> "The club never closes. Neither does the reactor."
product "LRMM72" text: "" -> "Engages targets at up to seventy-two kilometres!* *In a vacuum, against a cooperative target."
product "SRMM72" text: "" -> "seventy-two reasons/ to keep your distance/ all of them leaving at once"
product "Iapyx" text: "" -> "Two cells of honest fin. Bolt it on and forget it's there."
product "Skiron" text: "" -> "When the job runs hot, run a bigger fin."
product "Talaria" text: "" -> "Takes a knock, keeps pushing. Built for crews who work for a living."
product "RevvITup 2.0" text: "" -> "Floor it. The bass drops when you do."
product "PotaT+-" text: "[TODO]" -> "Holds the charge until the drop, then lets it all go at once."
product "not if i see you first" text: "[TODO]" -> "eyes in the dark/ you were seen before you looked/ say goodnight"
product "Space Tractor" text: "It's a tractor. In space." -> "It's a tractor. In space. Trap your enemies in gravity wells. Haul thousands of tons of hay through space!"
product "Panopticon" authoring note stripped: "Sees everything, judges nothing. Well, mostly nothing. (new text)" -> "Sees everything, judges nothing. Well, mostly nothing."
product "ClapBack" authoring note stripped: "Your target won't clock it until the killcam. (new text)" -> "Your target won't clock it until the killcam."
product "Panopticon Prime" authoring note stripped: "The upgrade nobody at Finch will admit they needed until they had it. (new text)" -> "The upgrade nobody at Finch will admit they needed until they had it."
product "LockOn Pro" authoring note stripped: "Same promise, sharper lock. (new text)" -> "Same promise, sharper lock."
product "ClapBack Ultra" authoring note stripped: "Now with main-character energy built in. (new text)" -> "Now with main-character energy built in."
product "LockOn" authoring note stripped: "Keeps the lights on your target. (new text)" -> "Keeps the lights on your target."
product "True North" authoring note stripped: "Gets your cargo there. Getting you there is your problem. (new text)" -> "Gets your cargo there. Getting you there is your problem."

Dry run. Pass "apply" to write 89 records.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:56:49 +02:00
Meta Vens
5c2c11bfd0 Merge origin/master into ew-claims-in-the-book
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:53:15 +02:00
Meta Vens
7d1fa5ce60 AetherDb: ExpectUnchanged belongs to generic-designs' batch, not roles-migrate's
The previous sweep commit put the ExpectUnchanged batch in RolesMigrate's commit (first match of the anchor) and left GenericDesigns on a plain commit. RolesMigrate is restored to its base text; GenericDesigns now lands its batch onto the file as it is. Builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:52:24 +02:00
Meta Vens
ae8d11e3ac GenericDesignsCommandTests: import the MessagePack snapshot serializer the payload-widening helper uses
Fixes the compile break at 205c9f52 and 4d127c82 (the missing using). Builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:39:21 +02:00
Meta Vens
4d127c8246 GameData/Aetheria.cc: generic-designs apply again, on the base catalog, landing only its own records (sha256 c22457d1de3c36214f1fa3d115527f8145bd687387d14252cfce1558471253d7)
Produced by a Yggdrasil job (dotnet run AetherDb -- generic-designs apply) on the catalog at the base (1746e8bd, sha256 1a2cb55b63f77a113dea0571716994ef8311d5da572a4fc41cbd3a7d2561fb68). The batch carries ExpectUnchanged: 89 records written, every other record byte-identical to the base. A second run answers 'Already applied; nothing to do.' Dry-run text:

design name: "ClearPath" -> "Light Machine Gun"
design "Light Machine Gun" text: "Defend your precious cargo and have fun doing it. Comes with optional sound effects." -> "Light ballistic hose: many small rounds at short range."
design name: "6k Shooter" -> "Slug Rifle"
design "Slug Rifle" text: "The fastest gun in Elysium" -> "Single heavy slugs, fired as fast as the trigger."
design name: "Earp" -> "Long Slug Rifle"
design "Long Slug Rifle" text: "Bringing the Wild West to the New Frontier" -> "A lighter slug rifle with the longest ballistic reach."
design name: "DeathCluster" -> "Cluster Cannon"
design "Cluster Cannon" text: "Because why kill two birds with one stone when you could annihilate them with one hundred?" -> "Medium shotgun: a heavy volley of pellets."
design name: "pretty pretty bang bang" -> "Charged Scattergun"
design "Charged Scattergun" text: "make your last stand/ it's a pretty pretty mess you've got us into/ it's a pretty pretty pretty day to die/ locked and loaded we're going out with a bang" -> "Ballistic shotgun that charges for a heavier volley."
design name: "Spectra" -> "Light Laser"
design "Light Laser" text: "Travelling light, for those travelling light. Take out the competition without slowing down with Spectra." -> "The lightest beam: low damage, quick cycle, long reach."
design name: "FastBlast+-" -> "Cell Blaster"
design "Cell Blaster" text: "Do less damage, faster!" -> "Rapid energy bursts fed by cells that cut its reactor draw."
design name: "ColdFire" -> "Long Laser"
design "Long Laser" text: "Operates by taking advantage of the wave/particle duality in a way that has other scientist tearing their hair out. Fact: Adrasteia's R&D department is the reason Einstein's hair looked like that." -> "Heavy small beam: slow, hard-hitting, long reach."
design name: "CShot RainbowLite Lazer" -> "Heavy Beam Laser"
design "Heavy Beam Laser" text: "Light up the cold, infinite void with more than your smile! Our precision full spectrum lasers are both combat and concert ready." -> "The heaviest beam: nine cells, enormous damage and reach."
design name: "ChargeBlast+-" -> "Charged Blaster"
design "Charged Blaster" text: "A knockout weapon, the arms equivalent of downing 9 shots of Tollgan Swamp liquor." -> "One charged knockout shot."
design name: "ChargeBlast SG" -> "Charged Scatter Blaster"
design "Charged Scatter Blaster" text: "For those days when you really want to spread the pain around." -> "Charged energy shotgun."
design name: "plight" -> "Lightning Projector"
design "Lightning Projector" text: "Chain lightning has your enemies chain smoking while you enjoy a relaxing DragOnBreath vapepop, now available in 17! flavours (manufactured by DragOnBreath, a subsidary of Lucent Media)" -> "Charged chain lightning."
design name: "GT 3K" -> "Guided Missile Launcher"
design "Guided Missile Launcher" text: "Smaller, faster, and more determined than ever. The little missile that could!" -> "Fires guided missiles."
design name: "LRMM72" -> "Long-Range Missile Rack"
design "Long-Range Missile Rack" text: "" -> "Large missile rack for long engagements."
design name: "SRMM72" -> "Short-Range Missile Rack"
design "Short-Range Missile Rack" text: "" -> "Extra-large rack of short-range missiles."
design name: "pswarm" -> "Swarm Rocket Pod"
design "Swarm Rocket Pod" text: "let's set the stars on fire/ there's nothing left on earth to burn/ we're just killing time while we're filling space/ and catacombs in turn" -> "Dumbfire rockets in a swarm."
design name: "scorched void policy" -> "Incendiary Rocket Pod"
design "Incendiary Rocket Pod" text: "let's set the stars on fire/ there's nothing left on earth to burn/ we're just killing time while we're filling space/ and catacombs in turn" -> "Incendiary dumbfire rockets."
design name: "Arctica" -> "Adaptive Radiator"
design "Adaptive Radiator" text: "Go blazingly fast, without burning up." -> "Radiator whose output scales widely with conditions."
design name: "Iapyx" -> "Radiator"
design "Radiator" text: "" -> "Standard two-cell radiator."
design name: "Skiron" -> "Long Radiator"
design "Long Radiator" text: "" -> "Four-cell radiator with a large surface."
design name: "OK Disperser" -> "Heat Pump"
design "Heat Pump" text: "Adapted from the patented cooling system Lucent uses in their professional gaming setups. A high quality cooler, built to withstand even the most aggressive of rage quits." -> "Moves heat to where it can be shed."
design name: "cold like my heart" -> "Cryogenic Heat Pump"
design "Cryogenic Heat Pump" text: "nothing can touch me/ i'm an agent of entropy/ heat death in a bottle like a molotov cocktail" -> "Heavy heat pump that drives temperatures far down."
design name: "Core Power" -> "Compact Reactor"
design "Compact Reactor" text: "It gets the job done, but that's all." -> "Small reactor."
design name: "Manhattan" -> "Heavy Reactor"
design "Heavy Reactor" text: "Because might is right and finesse is for fools" -> "Large three-by-three reactor."
design name: "Notorious" -> "High-Yield Reactor"
design "High-Yield Reactor" text: "A reactor for those who want the biggest reaction" -> "Large reactor with a wide output range."
design name: "Vulcan" -> "Ring Reactor"
design "Ring Reactor" text: "High output, high heat. Blaze across the cosmos like the comet you were meant to be." -> "Ring-shaped reactor, four by four."
design name: "MoveOnPro" -> "Muon Fusion Reactor"
design "Muon Fusion Reactor" text: "The only muon catalyst fusion reactor on the market! Always gets a great reaction." -> "Compact fusion reactor that draws a reservoir."
design name: "Core Power Station Reactor" -> "Station Reactor"
design name: "Manhattan Station Reactor" -> "Heavy Station Reactor"
design "Heavy Station Reactor" text: "A reactor sized for a station's core." -> "A heavy reactor sized for a station's core."
design name: "Notorious Station Reactor" -> "High-Yield Station Reactor"
design "High-Yield Station Reactor" text: "A reactor sized for a station's core." -> "A high-yield reactor sized for a station's core."
design name: "Vulcan Station Reactor" -> "Ring Station Reactor"
design "Ring Station Reactor" text: "A reactor sized for a station's core." -> "A ring reactor sized for a station's core."
design name: "MoveOnPro Station Reactor" -> "Muon Fusion Station Reactor"
design "Muon Fusion Station Reactor" text: "A reactor sized for a station's core." -> "A muon fusion reactor sized for a station's core."
design name: "RevvITup 2.0" -> "High-Thrust Drive"
design "High-Thrust Drive" text: "" -> "Large drive: huge thrust, little torque."
design name: "deep space burnout" -> "Burn Drive"
design "Burn Drive" text: "go go go go go/ get the drift/ you'll burn before you stop " -> "Large drive that runs very hot."
design name: "Talaria" -> "Rugged Drive"
design "Rugged Drive" text: "" -> "Two-cell working drive."
design name: "Victoire" -> "Racing Drive"
design "Racing Drive" text: "The most responsive thruster on the market, for the most irresponsible of racing pilots." -> "Feather-light two-cell drive with extreme response."
design name: "The Bat" -> "Sensor Array"
design "Sensor Array" text: "" -> "Two-by-two long-range sensor array."
design name: "not if i see you first" -> "Compact Sensor"
design "Compact Sensor" text: "[TODO]" -> "One-cell sensor."
design name: "PotaT+-" -> "Capacitor"
design "Capacitor" text: "[TODO]" -> "Stores charge for burst draw."
design name: "SafeStuff II" -> "Secure Cargo Bay"
design "Secure Cargo Bay" text: "Your stuff is safe stuffed in the new, bigger SafeStuff" -> "Three-by-three secured hold."
design name: "Store-All Enterprise Edition" -> "Large Cargo Bay"
design "Large Cargo Bay" text: "A large amount of storage" -> "Six-by-six hold."
design name: "Store-All Plus" -> "Cargo Bay"
design "Cargo Bay" text: "Take your cargo wherever your shipgo" -> "Two-by-two hold."
design name: "Store-All Plus Mini" -> "Small Cargo Bay"
design "Small Cargo Bay" text: "Take some of your cargo wherever your shipgo" -> "One-cell hold."
product of "Autocannon" by Zhestokost: "Autocannon" -> "Hammerfall"
product "Hammerfall" text: "" -> "The rounds fall steadily, and they do not stop until the work is done."
design "Autocannon" text: "" -> "Belt-fed cannon: a steady stream of rounds at long reach."
product of "Cockpit 2x2" by Lightsail: "Cockpit 2x2" -> "Wheelhouse"
product "Wheelhouse" text: "" -> "Every Lightsail captain's favourite chair. The view comes standard."
design "Cockpit 2x2" text: "" -> "Two-by-two crew cockpit."
product of "Industrial Thermostatic Heater" by Lightsail: "Industrial Thermostatic Heater" -> "Hearth"
product "Hearth" text: "" -> "A warm hold, a warm crew, and a warm welcome at the cold end of the run."
design "Industrial Thermostatic Heater" text: "" -> "Turns reactor power into heat to keep the hull warm."
product of "Medium Drive" by Lightsail: "Medium Drive" -> "Steady Haul"
product "Steady Haul" text: "" -> "Keeps you going and going and going..."
design "Medium Drive" text: "Keeps you going and going and going..." -> "Mid-sized working drive."
product of "Small Drive" by Lightsail: "Small Drive" -> "Short Hop"
product "Short Hop" text: "" -> "Dock to dock, and not a metre further than the manifest says."
design "Small Drive" text: "" -> "Small working drive."
product of "Turret Control Module" by AU: "Turret Control Module" -> "Watchtower"
product "Watchtower" text: "" -> "Point it at the dark and get back to work. It keeps watch."
design "Turret Control Module" text: "" -> "Control module for a station turret."
product of "Medium Docking Bay" by AU: "Medium Docking Bay" -> "Open Berth"
product "Open Berth" text: "" -> "Room for a friend, a customer or a tug. We don't ask which."
design "Medium Docking Bay" text: "" -> "Docking bay for mid-sized ships."
product of "Mine Launcher" by DME: "Mine Launcher" -> "parting gift"
product "parting gift" text: "Lays a drifting proximity mine that arms after two seconds." -> "we were never here/ but we left you something/ it's waiting where we were"
design "Mine Launcher" text: "" -> "Lays a drifting proximity mine that arms after two seconds."
design "Large Drive" text: "Keeps you going and going and going..." -> "Large working drive."
design "Tractor Beam" text: "Trap your enemies in gravity wells. Haul thousands of tons of hay through space!" -> "Holds a target in a gravity well and hauls it in."
design "Smoke Proximity" text: "A Spectra that bursts by proximity, blast 8. For scenarios; no one builds it." -> "A Light Laser that bursts by proximity, blast 8. For scenarios; no one builds it."
design "Smoke Delayed" text: "A Spectra that bursts after two cells of metal, blast 4. For scenarios; no one builds it." -> "A Light Laser that bursts after two cells of metal, blast 4. For scenarios; no one builds it."
design "Smoke Refused" text: "A Spectra whose blast is wider than its reach, so it never fires. For scenarios; no one builds it." -> "A Light Laser whose blast is wider than its reach, so it never fires. For scenarios; no one builds it."
design "Smoke Refused Charge" text: "A ChargeBlast SG whose blast is wider than its reach, so it never charges. For scenarios; no one builds it." -> "A Charged Scatter Blaster whose blast is wider than its reach, so it never charges. For scenarios; no one builds it."
product "Victoire" text: "" -> "The most responsive thruster on the market, for the most irresponsible of racing pilots."
product "DragOnBreath" text: "The subsidiary plight's own description already namechecks: DragOnBreath, a Lucent Media property." -> "Chain lightning has your enemies chain smoking while you enjoy a relaxing DragOnBreath vapepop, now available in 17! flavours (manufactured by DragOnBreath, a subsidary of Lucent Media)"
product "Steadfast" text: "Rated for continuous operation. "Continuous" does not imply "uninterrupted." (new text)" -> "It gets the job done, but that's all. Rated for continuous operation. "Continuous" does not imply "uninterrupted.""
product "Steadfast Station" text: "" -> "Rated for continuous operation at station scale. The fine print scales too."
product "Manhattan Station" text: "" -> "A fortress needs a furnace. This is the furnace."
product "Notorious Station" text: "" -> "The biggest reaction in the system, and everyone docked here will hear about it."
product "Vulcan Station" text: "" -> "Keeps the lights on and the forges hot."
product "MoveOnPro Station" text: "" -> "The club never closes. Neither does the reactor."
product "LRMM72" text: "" -> "Engages targets at up to seventy-two kilometres!* *In a vacuum, against a cooperative target."
product "SRMM72" text: "" -> "seventy-two reasons/ to keep your distance/ all of them leaving at once"
product "Iapyx" text: "" -> "Two cells of honest fin. Bolt it on and forget it's there."
product "Skiron" text: "" -> "When the job runs hot, run a bigger fin."
product "Talaria" text: "" -> "Takes a knock, keeps pushing. Built for crews who work for a living."
product "RevvITup 2.0" text: "" -> "Floor it. The bass drops when you do."
product "PotaT+-" text: "[TODO]" -> "Holds the charge until the drop, then lets it all go at once."
product "not if i see you first" text: "[TODO]" -> "eyes in the dark/ you were seen before you looked/ say goodnight"
product "Space Tractor" text: "It's a tractor. In space." -> "It's a tractor. In space. Trap your enemies in gravity wells. Haul thousands of tons of hay through space!"
product "Panopticon" authoring note stripped: "Sees everything, judges nothing. Well, mostly nothing. (new text)" -> "Sees everything, judges nothing. Well, mostly nothing."
product "ClapBack" authoring note stripped: "Your target won't clock it until the killcam. (new text)" -> "Your target won't clock it until the killcam."
product "Panopticon Prime" authoring note stripped: "The upgrade nobody at Finch will admit they needed until they had it. (new text)" -> "The upgrade nobody at Finch will admit they needed until they had it."
product "LockOn Pro" authoring note stripped: "Same promise, sharper lock. (new text)" -> "Same promise, sharper lock."
product "ClapBack Ultra" authoring note stripped: "Now with main-character energy built in. (new text)" -> "Now with main-character energy built in."
product "LockOn" authoring note stripped: "Keeps the lights on your target. (new text)" -> "Keeps the lights on your target."
product "True North" authoring note stripped: "Gets your cargo there. Getting you there is your problem. (new text)" -> "Gets your cargo there. Getting you there is your problem."

Dry run. Pass "apply" to write 89 records.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:35:47 +02:00
Meta Vens
c1eee662f9 Loot 3 fix1: the stand-in pose check derives its progress from the rule, not from FieldTester
The pull-progress input came from FieldTester.PullProgress, so a mutant of that function agreed with itself. The smoke now spells the pull start from Extend and Envelop independently.
Builds; both smokes green; Unity mutant u-f killed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:34:50 +02:00
Meta Vens
205c9f5205 Briefs, comments and tests name current gear; generic-designs lands only its own records and rewrites the last flavour and brand design texts
Scenario Briefs (Crossing, Duel, FusedRounds, LauncherAngles, StarvedReactor, WeaponFeel), scenario and test comments and test locals say the design names (Lightning Projector, Light Laser, Cell Blaster, Guided Missile Launcher, Swarm Rocket Pod, Muon Fusion Reactor, Cluster Cannon, Charged Scatter Blaster, Rugged Drive, Racing Drive) instead of the retired brand names; Crossing.PlightRange is ProjectorRange.

generic-designs: the batch carries ExpectUnchanged so every record it does not author keeps its bytes (the plain commit re-encoded four records, dropping SensorData key 7). DesignTexts rewrites Large Drive, Tractor Beam, Smoke Proximity, Smoke Delayed, Smoke Refused and Smoke Refused Charge as tech-node text; the Tractor Beam's old line moves to its product Space Tractor. smoke-rounds' authored text names Light Laser and Charged Scatter Blaster to match.

Tests: NoScenarioBriefNamesRetiredGear, TheCapacitorDesignCarriesItsRoleMap, NoDesignTextNamesAProduct, and a command test that widens every payload and checks apply changes only the three records it authors and restores the rewritten texts.

Not built or run at this commit; GameData/Aetheria.cc is regenerated in the next commit, so NoDesignTextNamesAProduct and the command test fail here.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:34:08 +02:00
Meta Vens
64fd701920 Merge origin/master into ew-hide-launch-catalog
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:34:03 +02:00
Meta Vens
a345bd3dcb Loot 3 fix1: the loot-3 findings' fixtures, and the held-pose curve has one owner
PickupTests: TheBeamTakesFromWhicheverBayCanStore is a theory over which bay is full.
CapabilityPresentationSmoke: tracked ship's hull hit is drawn; a beam above the held point stays on the ground plane; a grab at the beam keeps its aim; the other entity's grab reaches its own bound beam and not this one.
FloatingItemsDrawnSmoke: a held item's label comes up; the test scene's stand-in pose equals the zone's held pose.
Zone.HeldPull is the one smoothstep of the held pose; FieldDriver's tendril and FieldTester's stand-in call it (FieldTester.PulledPosition, PullProgress), deleting the two copies.
All commits build (Unity compile and both smokes green).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:25:49 +02:00
Meta Vens
2cd92fe15d Tests: a consumable listener's Multiple below 1 is not clamped up
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:57:12 +02:00
Meta Vens
5309b7365e Tests: the Djinni's reach is bounded by its measured motion times the fitted ship's own factor
Replaces the allocated*1.2 ceiling, which scaled with Reach; a reach inflated 1.1x or 3x now fails on the Djinni half too. Fixes the stale comment.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:56:17 +02:00
Meta Vens
9ae8cd277e EW 2 fix: wear the fixture gun to 95% range, above the fuse arming distance
A gun worn to half its range falls under the fuse's arming distance and FireControl refuses it, so the fixture never fired. At 95% the gun fires and its live range (38) still differs from its rated 40.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:56:09 +02:00
Meta Vens
281b911e6a Catalog: sensor-stat-set re-applied to the base catalog so the Passive Array description is tech-node text
Regenerated from e99cfbed's catalog by the tool (apply twice, second writes nothing); the seven new records carry fresh guids.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:55:20 +02:00
Meta Vens
49ef136d1c GameData/Aetheria.cc: apply AetherDb launch-suppressor again, landing only its own records (replay the command at merge, do not merge the blob)
Output of `dotnet run --project tools/AetherDb -- launch-suppressor apply` at 18fa8a5e on the catalog at fa6108de (sha256 of the base 1a2cb55b63f77a113dea0571716994ef8311d5da572a4fc41cbd3a7d2561fb68, of the result f1642a12c3f7b1184a159985944f128704bd489151f8fb9077a057b9c0fa7347). Decoded against the base: 258 -> 266 records, header equal, 8 added, no base record changed (the previous blob re-encoded four). The dry run printed:

    /src/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs(49,25): warning CS0067: The event 'LockWeapon.OnLocked' is never used [/src/Aetheria.Shared/Aetheria.Shared.csproj]
    /src/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs(51,25): warning CS0067: The event 'LockWeapon.OnLockLost' is never used [/src/Aetheria.Shared/Aetheria.Shared.csproj]
    /src/Assets/Scripts/ServerShared/Behaviors/LockWeapon.cs(50,25): warning CS0067: The event 'LockWeapon.OnBeginLocking' is never used [/src/Aetheria.Shared/Aetheria.Shared.csproj]
    New designs:
      Launch Suppressor  1x1 Tool  mass 60  price 40000  durability 50  roles [baffles, heat sink]
          Factor 0.08-0.03 (baffles)
          HeatPerUnit 1.4-0.8 (heat sink)
          RatedTemperature 310-330 (heat sink)
          "Baffles and a heat sink remove nearly all of a weapon's launch flash, hiding the shot from its target. The removed light is dissipated as heat in the device's own cell; above its rated temperature it passes the full flash."
      Launch Baffle      1x1 Tool  mass 60  price 25000  durability 50  roles [baffles, heat sink]
          Factor 0.4-0.2 (baffles)
          HeatPerUnit 0.8-0.5 (heat sink)
          RatedTemperature 310-330 (heat sink)
          "Baffles dim a weapon's launch flash to a fraction and a heat sink absorbs the difference. The target still sees the shot; distant observers do not. The sink sustains the effect through a long fight."

    New products:
      Launch Suppressor -> "Velvet Rope" by NiteLife, every role mean 0.55 dev 0.12: Keeps the flash on the inside. Nobody sees who you let out.
      Launch Suppressor -> "Hush" by Finch, every role mean 0.65 dev 0.2: Small, quiet, and the first shot is a secret. The second, probably.
      Launch Suppressor -> "lights out" by DME, every role mean 0.55 dev 0.2: no flash/ no name/ nobody saw a thing
      Launch Suppressor -> "Plausible Deniability" by R&D, every role mean 0.6 dev 0.15: Hides 100% of launches!* *Launches defined as the ones nobody saw.
      Launch Baffle -> "Low Profile" by Lightsail, every role mean 0.55 dev 0.1: Quiet on the manifest, quiet on the scope. A hauler nobody notices is a hauler that gets paid.
      Launch Baffle -> "Fast Pass Dim" by Alakrita, every role mean 0.6 dev 0.14: Takes the glare off every launch and keeps the schedule. Anyone close enough to mind was already your problem.

    Dry run. Pass "apply" to author 2 designs and 6 products.

The full Aetheria.Shared.Tests suite passed on this catalog (1714 passed, 0 failed) at 18fa8a5e.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:55:10 +02:00
Meta Vens
ab0ab9f1af Tests: listener stacking, alpha derivation and the Djinni reach ceiling pinned (first cut, constants to be measured)
Does not carry the regenerated catalog; the Djinni factors are provisional until measured.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:44:08 +02:00
Meta Vens
824e0f6a95 AetherDb: the Passive Array design description is tech-node text (designs-are-tech-nodes); flavour stays on its products
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:44:05 +02:00
Meta Vens
18fa8a5e1d launch-suppressor: apply lands only its own records; tests pin late hiding, the rating line, linear suppression and a named observer sensor
Command: the batch carries ExpectUnchanged, so CultCache lands it onto the file as it is. A plain commit re-encoded every record through today's types (two sensors lost a retired key-7 payload and gained a trailing nil, LRMM72 and GT 3K gained a trailing nil); this one leaves every record it did not author byte-identical. A conflicting writer now fails the apply instead of being overwritten.

Tests: the mild baffle stores exactly flash x Factor and pays exactly its predicted heat for the first 30 launches of a 300 flash or 8 of a 1000 flash, then is either hidden or bright; the rating is pinned to half a kelvin either side at three heat-sink qualities; suppression and heat are checked at six flash strengths; the observer fits the named sensor 'not if i see you first'; the command test widens every payload and checks apply leaves all other records byte-identical.

This commit's GameData/Aetheria.cc pointer is the previous apply's output; the regenerated catalog follows in its own commit. Not built or run at this commit yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:37:41 +02:00
Meta Vens
01ccb32b89 EW 2 fix: the worn-gun fixture reads its live range after the gun has ticked in the test's own path
The previous commit ticked before firing and the gun never lit; the wear is attached, the gun fires, then the live range is asserted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:37:23 +02:00
Meta Vens
0eb7a2734e Merge origin/master into scenarios-lock-on-r3 2026-10-13 21:36:00 +02:00
Meta Vens
b6146022e7 EW 2 fix: claims fixtures see live state; hull claim guard both ways; charged multiplier once; stale gear sorts last
- Enemy and own schematic rows, and the rebuild key's Item half, are pinned by fixtures whose live range differs from the rated range and whose guns share a claimed design.
- Entity.Claim refuses a hull class on a non-hull item as it refuses a non-hull class on the hull.
- ChargedWeapon live reads (DamagePerSecond, RangeDamagePerSecond) start from the uncharged damage so the charge multiplier is applied once and a nominal weapon reads its rated figure at every charge.
- RevealedWeapons orders reveals of gear the subject no longer carries after all fitted gear, then by lot.

Builds and tests unverified at this commit; verification follows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:19:53 +02:00
Meta Vens
9b5eaa45d6 GenericDesignsCommandTests: restore of brand design text and a product-text row, and a held brand refused
Not built yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:36:15 +02:00
Meta Vens
c648416b59 Lock On test: drop the monotonic-Strength assertion, which the sim does not promise
The lock's Strength rises from its first paint to its last; it is not monotonic. Builds: yes (test-only change after 038628e9, which built and failed this assertion).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:35:22 +02:00
Meta Vens
743d62ae7e Tests for generic-designs: brands on every product, no authoring notes, renamed designs keep keys, the command's refusals and idempotence
The command's authoring-note suffix is a public constant so the catalog test reads the one literal.
Not built yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:32:21 +02:00
Meta Vens
f7cf3257d0 Sweep: every old design-name literal in C# becomes its generic name; product texts ship without the authoring notes
Scenarios, tests, AetherDb templates and name-keyed maps now resolve designs by the generic names (231 literals in 30 files);
TargetingCatalog's product texts lose the authoring note, Steadfast carries its r3 text, DragOnBreath plight's old design text.
Not built yet; tests that depend on the generic-designs command and new tests follow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:29:10 +02:00
Meta Vens
3f7bd145bb GameData/Aetheria.cc: apply AetherDb launch-suppressor (replay the command at merge, do not merge the blob)
Output of `dotnet run --project tools/AetherDb -- launch-suppressor apply` on the catalog at fa6108de (sha256 of the base 1a2cb55b63f77a113dea0571716994ef8311d5da572a4fc41cbd3a7d2561fb68, of the result 3c2f3649762d35f66f3f220dbd4aa289d1711f05f8b7195a4cc3e5cc43085fa8). The dry run printed:

    New designs:
      Launch Suppressor  1x1 Tool  mass 60  price 40000  durability 50  roles [baffles, heat sink]
          Factor 0.08-0.03 (baffles)
          HeatPerUnit 1.4-0.8 (heat sink)
          RatedTemperature 310-330 (heat sink)
          "Baffles and a heat sink remove nearly all of a weapon's launch flash, hiding the shot from its target. The removed light is dissipated as heat in the device's own cell; above its rated temperature it passes the full flash."
      Launch Baffle      1x1 Tool  mass 60  price 25000  durability 50  roles [baffles, heat sink]
          Factor 0.4-0.2 (baffles)
          HeatPerUnit 0.8-0.5 (heat sink)
          RatedTemperature 310-330 (heat sink)
          "Baffles dim a weapon's launch flash to a fraction and a heat sink absorbs the difference. The target still sees the shot; distant observers do not. The sink sustains the effect through a long fight."
    New products:
      Launch Suppressor -> "Velvet Rope" by NiteLife, every role mean 0.55 dev 0.12: Keeps the flash on the inside. Nobody sees who you let out.
      Launch Suppressor -> "Hush" by Finch, every role mean 0.65 dev 0.2: Small, quiet, and the first shot is a secret. The second, probably.
      Launch Suppressor -> "lights out" by DME, every role mean 0.55 dev 0.2: no flash/ no name/ nobody saw a thing
      Launch Suppressor -> "Plausible Deniability" by R&D, every role mean 0.6 dev 0.15: Hides 100% of launches!* *Launches defined as the ones nobody saw.
      Launch Baffle -> "Low Profile" by Lightsail, every role mean 0.55 dev 0.1: Quiet on the manifest, quiet on the scope. A hauler nobody notices is a hauler that gets paid.
      Launch Baffle -> "Fast Pass Dim" by Alakrita, every role mean 0.6 dev 0.14: Takes the glare off every launch and keeps the schedule. Anyone close enough to mind was already your problem.
    Dry run. Pass "apply" to author 2 designs and 6 products.

Builds and passes the full suite (1687 passed, 0 failed) at this commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:28:02 +02:00
Meta Vens
37acc6bbc3 GameData/Aetheria.cc: generic-designs apply (sha256 c9adaa7a1334983d685e0730bdae0b245bd703337a4c02f13a79d5ccbcac06bf)
Produced by a KEEP-style Yggdrasil job (dotnet run AetherDb -- generic-designs apply) on the
catalog at 0ee04f20. A second apply answers "Already applied; nothing to do." Dry-run text:

design name: "ClearPath" -> "Light Machine Gun"
design "Light Machine Gun" text: "Defend your precious cargo and have fun doing it. Comes with optional sound effects." -> "Light ballistic hose: many small rounds at short range."
design name: "6k Shooter" -> "Slug Rifle"
design "Slug Rifle" text: "The fastest gun in Elysium" -> "Single heavy slugs, fired as fast as the trigger."
design name: "Earp" -> "Long Slug Rifle"
design "Long Slug Rifle" text: "Bringing the Wild West to the New Frontier" -> "A lighter slug rifle with the longest ballistic reach."
design name: "DeathCluster" -> "Cluster Cannon"
design "Cluster Cannon" text: "Because why kill two birds with one stone when you could annihilate them with one hundred?" -> "Medium shotgun: a heavy volley of pellets."
design name: "pretty pretty bang bang" -> "Charged Scattergun"
design "Charged Scattergun" text: "make your last stand/ it's a pretty pretty mess you've got us into/ it's a pretty pretty pretty day to die/ locked and loaded we're going out with a bang" -> "Ballistic shotgun that charges for a heavier volley."
design name: "Spectra" -> "Light Laser"
design "Light Laser" text: "Travelling light, for those travelling light. Take out the competition without slowing down with Spectra." -> "The lightest beam: low damage, quick cycle, long reach."
design name: "FastBlast+-" -> "Cell Blaster"
design "Cell Blaster" text: "Do less damage, faster!" -> "Rapid energy bursts fed by cells that cut its reactor draw."
design name: "ColdFire" -> "Long Laser"
design "Long Laser" text: "Operates by taking advantage of the wave/particle duality in a way that has other scientist tearing their hair out. Fact: Adrasteia's R&D department is the reason Einstein's hair looked like that." -> "Heavy small beam: slow, hard-hitting, long reach."
design name: "CShot RainbowLite Lazer" -> "Heavy Beam Laser"
design "Heavy Beam Laser" text: "Light up the cold, infinite void with more than your smile! Our precision full spectrum lasers are both combat and concert ready." -> "The heaviest beam: nine cells, enormous damage and reach."
design name: "ChargeBlast+-" -> "Charged Blaster"
design "Charged Blaster" text: "A knockout weapon, the arms equivalent of downing 9 shots of Tollgan Swamp liquor." -> "One charged knockout shot."
design name: "ChargeBlast SG" -> "Charged Scatter Blaster"
design "Charged Scatter Blaster" text: "For those days when you really want to spread the pain around." -> "Charged energy shotgun."
design name: "plight" -> "Lightning Projector"
design "Lightning Projector" text: "Chain lightning has your enemies chain smoking while you enjoy a relaxing DragOnBreath vapepop, now available in 17! flavours (manufactured by DragOnBreath, a subsidary of Lucent Media)" -> "Charged chain lightning."
design name: "GT 3K" -> "Guided Missile Launcher"
design "Guided Missile Launcher" text: "Smaller, faster, and more determined than ever. The little missile that could!" -> "Fires guided missiles."
design name: "LRMM72" -> "Long-Range Missile Rack"
design "Long-Range Missile Rack" text: "" -> "Large missile rack for long engagements."
design name: "SRMM72" -> "Short-Range Missile Rack"
design "Short-Range Missile Rack" text: "" -> "Extra-large rack of short-range missiles."
design name: "pswarm" -> "Swarm Rocket Pod"
design "Swarm Rocket Pod" text: "let's set the stars on fire/ there's nothing left on earth to burn/ we're just killing time while we're filling space/ and catacombs in turn" -> "Dumbfire rockets in a swarm."
design name: "scorched void policy" -> "Incendiary Rocket Pod"
design "Incendiary Rocket Pod" text: "let's set the stars on fire/ there's nothing left on earth to burn/ we're just killing time while we're filling space/ and catacombs in turn" -> "Incendiary dumbfire rockets."
design name: "Arctica" -> "Adaptive Radiator"
design "Adaptive Radiator" text: "Go blazingly fast, without burning up." -> "Radiator whose output scales widely with conditions."
design name: "Iapyx" -> "Radiator"
design "Radiator" text: "" -> "Standard two-cell radiator."
design name: "Skiron" -> "Long Radiator"
design "Long Radiator" text: "" -> "Four-cell radiator with a large surface."
design name: "OK Disperser" -> "Heat Pump"
design "Heat Pump" text: "Adapted from the patented cooling system Lucent uses in their professional gaming setups. A high quality cooler, built to withstand even the most aggressive of rage quits." -> "Moves heat to where it can be shed."
design name: "cold like my heart" -> "Cryogenic Heat Pump"
design "Cryogenic Heat Pump" text: "nothing can touch me/ i'm an agent of entropy/ heat death in a bottle like a molotov cocktail" -> "Heavy heat pump that drives temperatures far down."
design name: "Core Power" -> "Compact Reactor"
design "Compact Reactor" text: "It gets the job done, but that's all." -> "Small reactor."
design name: "Manhattan" -> "Heavy Reactor"
design "Heavy Reactor" text: "Because might is right and finesse is for fools" -> "Large three-by-three reactor."
design name: "Notorious" -> "High-Yield Reactor"
design "High-Yield Reactor" text: "A reactor for those who want the biggest reaction" -> "Large reactor with a wide output range."
design name: "Vulcan" -> "Ring Reactor"
design "Ring Reactor" text: "High output, high heat. Blaze across the cosmos like the comet you were meant to be." -> "Ring-shaped reactor, four by four."
design name: "MoveOnPro" -> "Muon Fusion Reactor"
design "Muon Fusion Reactor" text: "The only muon catalyst fusion reactor on the market! Always gets a great reaction." -> "Compact fusion reactor that draws a reservoir."
design name: "Core Power Station Reactor" -> "Station Reactor"
design name: "Manhattan Station Reactor" -> "Heavy Station Reactor"
design "Heavy Station Reactor" text: "A reactor sized for a station's core." -> "A heavy reactor sized for a station's core."
design name: "Notorious Station Reactor" -> "High-Yield Station Reactor"
design "High-Yield Station Reactor" text: "A reactor sized for a station's core." -> "A high-yield reactor sized for a station's core."
design name: "Vulcan Station Reactor" -> "Ring Station Reactor"
design "Ring Station Reactor" text: "A reactor sized for a station's core." -> "A ring reactor sized for a station's core."
design name: "MoveOnPro Station Reactor" -> "Muon Fusion Station Reactor"
design "Muon Fusion Station Reactor" text: "A reactor sized for a station's core." -> "A muon fusion reactor sized for a station's core."
design name: "RevvITup 2.0" -> "High-Thrust Drive"
design "High-Thrust Drive" text: "" -> "Large drive: huge thrust, little torque."
design name: "deep space burnout" -> "Burn Drive"
design "Burn Drive" text: "go go go go go/ get the drift/ you'll burn before you stop " -> "Large drive that runs very hot."
design name: "Talaria" -> "Rugged Drive"
design "Rugged Drive" text: "" -> "Two-cell working drive."
design name: "Victoire" -> "Racing Drive"
design "Racing Drive" text: "The most responsive thruster on the market, for the most irresponsible of racing pilots." -> "Feather-light two-cell drive with extreme response."
design name: "The Bat" -> "Sensor Array"
design "Sensor Array" text: "" -> "Two-by-two long-range sensor array."
design name: "not if i see you first" -> "Compact Sensor"
design "Compact Sensor" text: "[TODO]" -> "One-cell sensor."
design name: "PotaT+-" -> "Capacitor"
design "Capacitor" text: "[TODO]" -> "Stores charge for burst draw."
design name: "SafeStuff II" -> "Secure Cargo Bay"
design "Secure Cargo Bay" text: "Your stuff is safe stuffed in the new, bigger SafeStuff" -> "Three-by-three secured hold."
design name: "Store-All Enterprise Edition" -> "Large Cargo Bay"
design "Large Cargo Bay" text: "A large amount of storage" -> "Six-by-six hold."
design name: "Store-All Plus" -> "Cargo Bay"
design "Cargo Bay" text: "Take your cargo wherever your shipgo" -> "Two-by-two hold."
design name: "Store-All Plus Mini" -> "Small Cargo Bay"
design "Small Cargo Bay" text: "Take some of your cargo wherever your shipgo" -> "One-cell hold."
product of "Autocannon" by Zhestokost: "Autocannon" -> "Hammerfall"
product "Hammerfall" text: "" -> "The rounds fall steadily, and they do not stop until the work is done."
design "Autocannon" text: "" -> "Belt-fed cannon: a steady stream of rounds at long reach."
product of "Cockpit 2x2" by Lightsail: "Cockpit 2x2" -> "Wheelhouse"
product "Wheelhouse" text: "" -> "Every Lightsail captain's favourite chair. The view comes standard."
design "Cockpit 2x2" text: "" -> "Two-by-two crew cockpit."
product of "Industrial Thermostatic Heater" by Lightsail: "Industrial Thermostatic Heater" -> "Hearth"
product "Hearth" text: "" -> "A warm hold, a warm crew, and a warm welcome at the cold end of the run."
design "Industrial Thermostatic Heater" text: "" -> "Turns reactor power into heat to keep the hull warm."
product of "Medium Drive" by Lightsail: "Medium Drive" -> "Steady Haul"
product "Steady Haul" text: "" -> "Keeps you going and going and going..."
design "Medium Drive" text: "Keeps you going and going and going..." -> "Mid-sized working drive."
product of "Small Drive" by Lightsail: "Small Drive" -> "Short Hop"
product "Short Hop" text: "" -> "Dock to dock, and not a metre further than the manifest says."
design "Small Drive" text: "" -> "Small working drive."
product of "Turret Control Module" by AU: "Turret Control Module" -> "Watchtower"
product "Watchtower" text: "" -> "Point it at the dark and get back to work. It keeps watch."
design "Turret Control Module" text: "" -> "Control module for a station turret."
product of "Medium Docking Bay" by AU: "Medium Docking Bay" -> "Open Berth"
product "Open Berth" text: "" -> "Room for a friend, a customer or a tug. We don't ask which."
design "Medium Docking Bay" text: "" -> "Docking bay for mid-sized ships."
product of "Mine Launcher" by DME: "Mine Launcher" -> "parting gift"
product "parting gift" text: "Lays a drifting proximity mine that arms after two seconds." -> "we were never here/ but we left you something/ it's waiting where we were"
design "Mine Launcher" text: "" -> "Lays a drifting proximity mine that arms after two seconds."
product "Victoire" text: "" -> "The most responsive thruster on the market, for the most irresponsible of racing pilots."
product "DragOnBreath" text: "The subsidiary plight's own description already namechecks: DragOnBreath, a Lucent Media property." -> "Chain lightning has your enemies chain smoking while you enjoy a relaxing DragOnBreath vapepop, now available in 17! flavours (manufactured by DragOnBreath, a subsidary of Lucent Media)"
product "Steadfast" text: "Rated for continuous operation. "Continuous" does not imply "uninterrupted." (new text)" -> "It gets the job done, but that's all. Rated for continuous operation. "Continuous" does not imply "uninterrupted.""
product "Steadfast Station" text: "" -> "Rated for continuous operation at station scale. The fine print scales too."
product "Manhattan Station" text: "" -> "A fortress needs a furnace. This is the furnace."
product "Notorious Station" text: "" -> "The biggest reaction in the system, and everyone docked here will hear about it."
product "Vulcan Station" text: "" -> "Keeps the lights on and the forges hot."
product "MoveOnPro Station" text: "" -> "The club never closes. Neither does the reactor."
product "LRMM72" text: "" -> "Engages targets at up to seventy-two kilometres!* *In a vacuum, against a cooperative target."
product "SRMM72" text: "" -> "seventy-two reasons/ to keep your distance/ all of them leaving at once"
product "Iapyx" text: "" -> "Two cells of honest fin. Bolt it on and forget it's there."
product "Skiron" text: "" -> "When the job runs hot, run a bigger fin."
product "Talaria" text: "" -> "Takes a knock, keeps pushing. Built for crews who work for a living."
product "RevvITup 2.0" text: "" -> "Floor it. The bass drops when you do."
product "PotaT+-" text: "[TODO]" -> "Holds the charge until the drop, then lets it all go at once."
product "not if i see you first" text: "[TODO]" -> "eyes in the dark/ you were seen before you looked/ say goodnight"
product "Panopticon" authoring note stripped: "Sees everything, judges nothing. Well, mostly nothing. (new text)" -> "Sees everything, judges nothing. Well, mostly nothing."
product "ClapBack" authoring note stripped: "Your target won't clock it until the killcam. (new text)" -> "Your target won't clock it until the killcam."
product "Panopticon Prime" authoring note stripped: "The upgrade nobody at Finch will admit they needed until they had it. (new text)" -> "The upgrade nobody at Finch will admit they needed until they had it."
product "LockOn Pro" authoring note stripped: "Same promise, sharper lock. (new text)" -> "Same promise, sharper lock."
product "ClapBack Ultra" authoring note stripped: "Now with main-character energy built in. (new text)" -> "Now with main-character energy built in."
product "LockOn" authoring note stripped: "Keeps the lights on your target. (new text)" -> "Keeps the lights on your target."
product "True North" authoring note stripped: "Gets your cargo there. Getting you there is your problem. (new text)" -> "Gets your cargo there. Getting you there is your problem."

Dry run. Pass "apply" to write 82 records.

This commit builds (a data file); tests that name old design literals fail until the sweep commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:27:26 +02:00
Meta Vens
4aeeea0ff7 AetherDb generic-designs: track changed records in a list (ReferenceEqualityComparer is not in this target)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:21:38 +02:00
Meta Vens
90294e0fef EW 2 fix: the enemy schematic's rows, claimed class and range label are derived in ServerShared
Entity.SchematicRows(subject) owns which weapon rows a schematic shows, each row's item and
claimed design, and its range (own ship: live; any other: the claimed design's rated range).
SchematicDisplay renders SchematicRow and decides nothing. Headless tests cover default-to-truth,
a weapon claimed as another weapon, a weapon claimed as a non-weapon, own rows, and the rebuild key.

Builds on the Shared side not yet verified at this commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:21:15 +02:00
Meta Vens
c17b70a862 AetherDb generic-designs [apply]: 43 designs take generic tech-tree names, eight same-named products take brands
Adds the command, its rename/brand/product-text tables, and the ToolRolesByDesign
Capacitor key. The catalog and the old-name literal sweep follow in later commits;
this commit has not been built yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:14:41 +02:00
Meta Vens
038628e914 Lock On: observe "beyond its sight" in the sim's own sensing, pin the hostile's facing, stage off axis, read the lock's Strength
The Update(0) checks could not fail and the 40..200 tick window was tuning. The test now asks the hostile's
PassiveInfo for the player's signature against the detection threshold after the first real tick, asserts the
hostile has no track then, pins the facing, and asserts the Track paint's Strength rises. The hostile is staged at
(1500, 3700) facing the player. The unsound comment about the player's sight is corrected.

Builds: not yet verified (verify job follows).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:13:02 +02:00
Meta Vens
947b86f7f3 Tests: the fitted Djinni's reach ceiling is its allocated reach
The fitted Djinni's measured motion sits further below its reach than the generated one did (nose-on 1.69), so the
fixed 1.6 ceiling over measured motion was the old ship's number. The ceiling is the allocated reach with 20% to
spare, as the Longinus's is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:11:33 +02:00
Meta Vens
de6dbce70f AetherDb launch-suppressor: two Tool designs (Launch Suppressor, Launch Baffle) and six products, with catalog and command tests
The catalog tests need the applied catalog; this commit does not pass them until the next commit lands the apply output.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:10:21 +02:00
Meta Vens
0d291a8a42 Tests: the flight fleet's Longinus is its drive train, not the Duel's loadout
The Longinus the reach test measures is fitted with the drive train the generated one carries
(EvLonginusDrive, which EvLonginus now extends); the Duel's guns and stores added mass the
reach ceilings were not measured with.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:07:08 +02:00
Meta Vens
0ee04f2081 Map: weapon damage over range (range falloff is never applied; census of authored curves; options)
Body facts R1-R3 for ruling range-ramps-not-curve: no hit path scales damage by
range, DamageCurve feeds only AI estimates and a UI chart, and 26 of 27 shipped
weapons carry one copied default curve. Options with cost, a recommendation to
delete the curve, and cut-sequence lines damage-curve-delete,
sensor-bearing-shape and consumable-effectiveness.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:04:16 +02:00
Meta Vens
0a4a2cf56a Tests: reuse the existing EvDjinni fit instead of a second one
The previous commit added a duplicate EvDjinni and did not build (CS0111).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:03:44 +02:00
Meta Vens
a35dc97790 Merge remote-tracking branch 'origin/master' into HEAD 2026-10-13 20:02:58 +02:00
Meta Vens
b753dbe337 Tests: the two flight tests fit their ships by name; a consumable-hosted Listener test
ReachIsWhatTheShipCanDo and TheThrustersReadLiveThrust built their ships with the
generator, whose draw follows the run's item stream and so the catalog's census; the
applied sensor catalog shifted it. They now fit the Djinni (a Talaria on each thruster
hardpoint, reactor, cockpit) and the Longinus (EvLonginus) by name. AConsumableListenerHearsAtItsMultiple
pins Entity.HearingMultiple over an active consumable's Listener.

Not yet verified.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:02:32 +02:00
Meta Vens
b0fc86c774 Release map: generic-design-names refresh at 1746e8bd (GN1-GN8, brands and flavour under kitchen-sink-content); catalog-breadth lines follow catalog-breadth-now
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:00:14 +02:00
Meta Vens
fa6108de7d EW map: 1b r2 (two suppressor designs) and probes K9-K11 (sensor reach, suppressor endurance, opening volley)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-13 20:00:04 +02:00