f4d5659d landed with StatValidation's OptimalTemperature-bounds check replaced by
`if (false)`: the mutation harness was running concurrently against this same file
and a `git add`/`git commit` caught it mid-mutation. Restores the real check. Caught
because the harness's own "not yet reached" scars in doctrine are what prompted a
by-hand recheck of the just-committed diff rather than trusting the terminal output
that said 80/80 green a moment earlier.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
238 lines
24 KiB
Markdown
238 lines
24 KiB
Markdown
# Cut 1 migration table: R-heat fit and term counts
|
|
|
|
Date: 2026-09-18. Cut 1 of `docs/stats-and-power-cut.md`. Generated by a scratch migration console (two
|
|
phases, neither kept) against `GameData/Aetheria.cc` at pre-migration sha1 `d65c2aede2ee637fdb77fb83e6d7acd4d6c37cb3`
|
|
(12,682,424 bytes). The committed file's sha1 is `13a13a675064f971dfff3a3d83998220da42dd49` (12,682,737 bytes,
|
|
+313 for 51 authored `OptimalTemperature`/`PlateauWidth` float pairs).
|
|
|
|
**The pre-migration catalog does not open under the post-Cut-1 code.** Opening the unmigrated bytes with the
|
|
new `AetheriaStores.Open` throws immediately: `ClearPath: OptimalTemperature 0 lies outside its bounds
|
|
[223.15, 473.15]` -- `StatValidation` refusing the unauthored-default 0 for the very first design it checks.
|
|
This is why the schema change and the catalog rewrite are one commit, not two: there is no working
|
|
intermediate state. Keys 2-5 (the retired `HeatExponentMultiplier`/`DurabilityExponentMultiplier`/
|
|
`QualityExponent`/`FromRole`) are simply absent from the new `PerformanceStat` type, so CultCache's normal
|
|
slot-compatibility path (an unrecognized stored key is skipped, not an error) is what makes the *stat* fields
|
|
safe to drop silently -- it is `OptimalTemperature`/`PlateauWidth` on `EquippableItemData`, freshly required by
|
|
the new validation, that make a bare code swap without the catalog rewrite unusable.
|
|
|
|
**AetherDb invariants (`census`, `factions`, `dangling`, `station-fit`, `hardpoint-fit`, `loadout 1`) are
|
|
byte-identical before and after** -- captured with the pre-Cut-1 binary against the unmigrated copy and the
|
|
post-Cut-1 binary against the migrated copy, since neither binary can open the other's catalog shape. None of
|
|
these commands reads a stat value, so identical output is the expected proof that nothing but the stat/heat
|
|
shape moved.
|
|
|
|
- EquippableItemData records before: 51, after: 51 (must match -- the migration adds no records)
|
|
- Stats migrated into declared terms: 348 of 348 dumped
|
|
- Items fitted from an authored curve: 37; items with no curve (full-range plateau): 14
|
|
- Stat values at quality .5 / full durability / the item's own optimum: 281 of 348 unchanged, 67 diverge -- every divergence moves toward Max (the plateau's full-performance value), which is a move away from Min for an inverted stat (Max < Min) and reads as a negative delta below; max |delta| 72.8125
|
|
|
|
## Stats whose at-optimum value changed (the intended R-heat balance change)
|
|
|
|
| Item key | Path | Min-Max | Old value | New value | Delta |
|
|
|---|---|---|---|---|---|
|
|
| 42d1ffaa-f764-4a65-ba03-43cc4e6fd2bc | Behaviors[0].Torque | 750000-1750000 | 999927.2000 | 1000000.0000 | +72.8125 |
|
|
| 04255796-db68-48d2-81e5-8cfdab150706 | Behaviors[0].Thrust | 250000-1000000 | 437472.7000 | 437500.0000 | +27.3125 |
|
|
| 480d6cc4-cd8a-49b6-9c89-211033e7c1d5 | Behaviors[0].PingVisibility | 5000-1000 | 4001.1640 | 4000.0000 | -1.1643 |
|
|
| 0d499d62-3b92-454b-9498-37d12616167f | Behaviors[0].Visibility | 5000-1000 | 4000.5820 | 4000.0000 | -0.5823 |
|
|
| 20e9f41a-6bd2-4f6c-9740-7b707614509c | Behaviors[1].PumpedHeat | 1000-5000 | 1999.4180 | 2000.0000 | +0.5823 |
|
|
| 499f7891-c5df-4cbe-8431-9db7108102ec | Behaviors[0].Visibility | 5000-1000 | 4000.5820 | 4000.0000 | -0.5823 |
|
|
| 03a842b2-295e-4cf7-9faa-ecc4bc54eb76 | Behaviors[0].Range | 1000-3000 | 1499.4180 | 1500.0000 | +0.5822 |
|
|
| 2935b4d4-2ad5-4b90-8416-a85bbb38171b | Behaviors[1].PumpedHeat | 750-4000 | 1562.0270 | 1562.5000 | +0.4731 |
|
|
| 542169f2-363c-41f7-8d6d-60a5bd7578bd | Behaviors[1].PumpedHeat | 1000-4000 | 1749.5630 | 1750.0000 | +0.4368 |
|
|
| 2933c4ce-bf41-459c-b0d6-9583466b393d | Behaviors[0].Range | 750-2250 | 1124.5630 | 1125.0000 | +0.4366 |
|
|
| 8ac84e31-f0cf-43b2-8611-3316adfa4010 | Behaviors[0].Visibility | 1000-250 | 812.9364 | 812.5000 | -0.4364 |
|
|
| 679fb6a1-cefb-4adc-a49c-71942602196b | Behaviors[0].Range | 1000-2000 | 1353.1420 | 1353.5530 | +0.4116 |
|
|
| 679fb6a1-cefb-4adc-a49c-71942602196b | Behaviors[0].Visibility | 1000-500 | 703.0444 | 702.6982 | -0.3462 |
|
|
| 5ee2ff03-0ac4-4cdd-89bc-81e29223900b | Behaviors[0].MinRange | 500-50 | 366.5256 | 366.2142 | -0.3114 |
|
|
| 480d6cc4-cd8a-49b6-9c89-211033e7c1d5 | Behaviors[0].PingRange | 1000-5000 | 1999.7090 | 2000.0000 | +0.2913 |
|
|
| 2e5193aa-3703-4ecc-911d-4d8394ce4c2f | Behaviors[0].Visibility | 1250-250 | 896.6525 | 896.4467 | -0.2058 |
|
|
| 0271bb97-4ce8-4d64-97c3-8bfd3f76b2c6 | Behaviors[0].Visibility | 500-100 | 358.7433 | 358.5786 | -0.1647 |
|
|
| 457ac901-aa54-4ba7-9df6-fbacdfb40b3f | Behaviors[0].Visibility | 500-100 | 358.7433 | 358.5786 | -0.1647 |
|
|
| 457ac901-aa54-4ba7-9df6-fbacdfb40b3f | Behaviors[0].Velocity | 400-900 | 524.8544 | 525.0000 | +0.1456 |
|
|
| 03a842b2-295e-4cf7-9faa-ecc4bc54eb76 | Behaviors[0].Damage | 100-600 | 224.8545 | 225.0000 | +0.1455 |
|
|
| 0d499d62-3b92-454b-9498-37d12616167f | Behaviors[0].ChargeHeat | 2500-2000 | 2250.1460 | 2250.0000 | -0.1455 |
|
|
| 499f7891-c5df-4cbe-8431-9db7108102ec | Behaviors[0].ChargeHeat | 2500-2000 | 2250.1460 | 2250.0000 | -0.1455 |
|
|
| 4a41dec8-6b65-46ee-b578-ba805f112c0c | Behaviors[0].Range | 800-1750 | 1037.3620 | 1037.5000 | +0.1383 |
|
|
| 5ee2ff03-0ac4-4cdd-89bc-81e29223900b | Behaviors[0].Visibility | 1000-250 | 777.1535 | 777.0237 | -0.1298 |
|
|
| 542169f2-363c-41f7-8d6d-60a5bd7578bd | Behaviors[1].WasteHeat | 500-100 | 358.6610 | 358.5786 | -0.0824 |
|
|
| 499f7891-c5df-4cbe-8431-9db7108102ec | Behaviors[0].Range | 800-1900 | 1074.9200 | 1075.0000 | +0.0801 |
|
|
| 3aa1ac05-6d55-4569-8a4b-e1c3c6e07c61 | Behaviors[0].Visibility | 1750-600 | 1508.3130 | 1508.2420 | -0.0704 |
|
|
| 04255796-db68-48d2-81e5-8cfdab150706 | Behaviors[0].Visibility | 100-400 | 206.0042 | 206.0660 | +0.0618 |
|
|
| 4a41dec8-6b65-46ee-b578-ba805f112c0c | Behaviors[0].Visibility | 550-150 | 450.0582 | 450.0000 | -0.0582 |
|
|
| 3aa1ac05-6d55-4569-8a4b-e1c3c6e07c61 | Behaviors[0].Range | 500-1250 | 687.4454 | 687.5000 | +0.0546 |
|
|
| 457ac901-aa54-4ba7-9df6-fbacdfb40b3f | Behaviors[0].Range | 500-1250 | 687.4454 | 687.5000 | +0.0546 |
|
|
| 679fb6a1-cefb-4adc-a49c-71942602196b | Behaviors[0].Velocity | 500-1250 | 687.4454 | 687.5000 | +0.0546 |
|
|
| 8ac84e31-f0cf-43b2-8611-3316adfa4010 | Behaviors[0].Velocity | 750-1500 | 937.4454 | 937.5000 | +0.0546 |
|
|
| 2933c4ce-bf41-459c-b0d6-9583466b393d | Behaviors[0].Heat | 500-0 | 323.2748 | 323.2233 | -0.0515 |
|
|
| 3aa1ac05-6d55-4569-8a4b-e1c3c6e07c61 | Behaviors[0].Heat | 500-1000 | 676.7252 | 676.7767 | +0.0515 |
|
|
| 0271bb97-4ce8-4d64-97c3-8bfd3f76b2c6 | Behaviors[0].Velocity | 700-1250 | 863.4684 | 863.5160 | +0.0476 |
|
|
| 20e9f41a-6bd2-4f6c-9740-7b707614509c | Behaviors[1].WasteHeat | 100-300 | 170.6695 | 170.7107 | +0.0412 |
|
|
| 5ee2ff03-0ac4-4cdd-89bc-81e29223900b | Behaviors[0].Range | 1650-3500 | 2199.9680 | 2200.0080 | +0.0400 |
|
|
| 0d499d62-3b92-454b-9498-37d12616167f | Behaviors[0].Velocity | 250-750 | 374.9636 | 375.0000 | +0.0364 |
|
|
| 499f7891-c5df-4cbe-8431-9db7108102ec | Behaviors[0].Velocity | 250-750 | 374.9636 | 375.0000 | +0.0364 |
|
|
| 0d499d62-3b92-454b-9498-37d12616167f | Behaviors[0].Range | 450-950 | 574.9636 | 575.0000 | +0.0364 |
|
|
| 8ac84e31-f0cf-43b2-8611-3316adfa4010 | Behaviors[0].Range | 500-1000 | 624.9636 | 625.0000 | +0.0364 |
|
|
| 0271bb97-4ce8-4d64-97c3-8bfd3f76b2c6 | Behaviors[0].Range | 250-600 | 337.4745 | 337.5000 | +0.0255 |
|
|
| 2933c4ce-bf41-459c-b0d6-9583466b393d | Behaviors[0].Visibility | 300-0 | 225.0219 | 225.0000 | -0.0219 |
|
|
| 5ee2ff03-0ac4-4cdd-89bc-81e29223900b | Behaviors[0].Velocity | 100-175 | 137.4782 | 137.5000 | +0.0218 |
|
|
| 8ac84e31-f0cf-43b2-8611-3316adfa4010 | Behaviors[0].Damage | 100-250 | 137.4782 | 137.5000 | +0.0218 |
|
|
| 72859489-677a-47a4-ae04-550e582ba29e | Behaviors[0].PingBoost | 10000-20000 | 12500.0200 | 12500.0000 | -0.0205 |
|
|
| 205efba0-16af-477b-80e9-c9597cead5b4 | Behaviors[0].Charge | 50-200 | 103.0176 | 103.0330 | +0.0154 |
|
|
| 372d23cc-5ef0-42b5-9d96-807f2e412b0d | Behaviors[0].Charge | 25-125 | 60.3450 | 60.3553 | +0.0103 |
|
|
| 4a41dec8-6b65-46ee-b578-ba805f112c0c | Behaviors[0].Damage | 20-85 | 36.2405 | 36.2500 | +0.0095 |
|
|
| 0d499d62-3b92-454b-9498-37d12616167f | Behaviors[0].Damage | 50-175 | 81.2409 | 81.2500 | +0.0091 |
|
|
| 2933c4ce-bf41-459c-b0d6-9583466b393d | Behaviors[0].Damage | 40-160 | 69.9913 | 70.0000 | +0.0087 |
|
|
| 34b15c33-c01f-4712-ac75-5fcf779f0685 | Behaviors[0].Capacity | 50-150 | 74.9927 | 75.0000 | +0.0073 |
|
|
| 480d6cc4-cd8a-49b6-9c89-211033e7c1d5 | Behaviors[0].PingEnergy | 150-100 | 137.5073 | 137.5000 | -0.0073 |
|
|
| 5ee2ff03-0ac4-4cdd-89bc-81e29223900b | Behaviors[0].Thrust | 135-325 | 182.4931 | 182.5000 | +0.0069 |
|
|
| 499f7891-c5df-4cbe-8431-9db7108102ec | Behaviors[0].Damage | 25-110 | 46.2438 | 46.2500 | +0.0062 |
|
|
| 2935b4d4-2ad5-4b90-8416-a85bbb38171b | Behaviors[1].WasteHeat | 75-50 | 66.1663 | 66.1612 | -0.0051 |
|
|
| 457ac901-aa54-4ba7-9df6-fbacdfb40b3f | Behaviors[0].Damage | 20-80 | 34.9956 | 35.0000 | +0.0044 |
|
|
| 3aa1ac05-6d55-4569-8a4b-e1c3c6e07c61 | Behaviors[0].Energy | 25-50 | 33.8363 | 33.8388 | +0.0026 |
|
|
| 72859489-677a-47a4-ae04-550e582ba29e | Behaviors[0].PingRange | 1000-2000 | 1250.0020 | 1250.0000 | -0.0021 |
|
|
| 5ee2ff03-0ac4-4cdd-89bc-81e29223900b | Behaviors[0].LockAngle | 15-35 | 19.9985 | 20.0000 | +0.0015 |
|
|
| 5ee2ff03-0ac4-4cdd-89bc-81e29223900b | Behaviors[0].Cooldown | 15-8 | 12.5266 | 12.5251 | -0.0014 |
|
|
| 480d6cc4-cd8a-49b6-9c89-211033e7c1d5 | Behaviors[0].PingCooldown | 20-5 | 16.2511 | 16.2500 | -0.0011 |
|
|
| 5ee2ff03-0ac4-4cdd-89bc-81e29223900b | Behaviors[0].Energy | 5-1 | 3.5866 | 3.5858 | -0.0008 |
|
|
| 542169f2-363c-41f7-8d6d-60a5bd7578bd | Behaviors[1].Emissivity | 4-8 | 5.1885 | 5.1892 | +0.0007 |
|
|
| 5ee2ff03-0ac4-4cdd-89bc-81e29223900b | Behaviors[0].Damage | 14-48 | 22.4994 | 22.5000 | +0.0006 |
|
|
| 542169f2-363c-41f7-8d6d-60a5bd7578bd | Behaviors[1].EnergyUsage | 6-3 | 5.1086 | 5.1081 | -0.0005 |
|
|
|
|
## Corrections to this table (Soul S3/S4; Hands, 2026-09-18)
|
|
|
|
- **S3, wrong old-value columns.** Soul found the `Old optimum`/`Old value @ optimum` columns below wrong for 15
|
|
of 51 rows. The pre-Cut-1 `Performance()` was `saturate(HeatPerformanceCurve?.Evaluate(...) ?? 1)`: a design
|
|
with **no authored curve** evaluated to exactly 1 at every temperature, so its correct old optimum is simply
|
|
its `MinimumTemperature` (the whole range was equally "optimal") and its correct old value is `1.0000` -- not
|
|
whatever this table originally printed. That is 14 rows: Assembly Line, Autocannon, Deep Ore Extractor,
|
|
Industrial Thermostatic Heater, LRMM72, Large Drive, Refinery, SRMM72, Shipyard, Surface Ore Extractor,
|
|
Tractor Beam, plight, pswarm, and Earp (Earp's real reclassification is below). The 15th wrong row is **Core
|
|
Power**: its curve was non-null but authored with zero keys, so its old getter threw
|
|
`IndexOutOfRangeException` -- there is no old baseline for it, and the table says so instead of printing a
|
|
number.
|
|
- **S4, at-optimum understates the change ~80x.** At-optimum is the one point a trapezoid and the curve it
|
|
replaces are made to agree (both are fitted to the same peak), so it is the smallest possible reading of the
|
|
shape change, not a representative one. The real size is the largest deviation anywhere inside the item's own
|
|
band -- added below as **Max |Δ| in band**, sampled at 2001 points across `[MinimumTemperature,
|
|
MaximumTemperature]`, old code (pre-Cut-1 catalog and curve-reading `Performance()`) against new (current
|
|
code, current catalog). 35 of the 37 originally-fitted designs share the exact same `+0.1923` -- one Bezier
|
|
template reused catalog-wide, evaluated identically regardless of hardpoint or behaviour -- and **The Bat**
|
|
moves by a different amount for a reason of its own (below). **Earp** does not belong in the "fitted, small
|
|
delta" group at all.
|
|
|
|
### Earp and The Bat: found while closing S5/S6, not part of the operator's 15
|
|
|
|
Enforcing the plateau-clamp rule this cut's validation now carries (`StatValidation.ValidateHeatResponse`,
|
|
`ItemData.cs`; enforced on every catalog write through `CultRecordRefs.Upsert`, `AetheriaStores.cs`) breaks the
|
|
catalog for exactly two already-fitted designs outside the operator's named 15: their authored plateau, built
|
|
from the real curve's peak and near-peak width, pokes past a bound.
|
|
|
|
- **Earp**'s real 2-key curve peaks at parameter 0 -- exactly at its own `MinimumTemperature` (175). That is the
|
|
same failure class as S1/S2: `Performance()` returns 0 *at* `MinimumTemperature`, not just below it, so a peak
|
|
sitting exactly on the boundary is dead at every temperature the design will ever reach. Soul's original "Earp
|
|
down" framing (`+0.0023 -> ~0` at-optimum) undersold this badly: the at-optimum sample landed exactly on the
|
|
one point where the old fit and the new trapezoid both happen to read close to 1, by construction of the old
|
|
curve peaking there too. Earp is re-authored the same way as the 14 (house-style fraction over its own
|
|
bounds -- see the table below); its Max |Δ| in band is now `-1.0000`, the same "went from immune to fatal"
|
|
shape as the unauthored designs, which is what it always was underneath the misleading at-optimum reading.
|
|
- **The Bat** is different: its optimum (209) is a genuinely distinct fitted value, not a placeholder or an
|
|
edge artifact, and stays untouched. Only its `PlateauWidth` moves, from 33 (whose low edge, 192.5, poked 7.5
|
|
past `MinimumTemperature` 200) to **18**, the largest width whose plateau still clamps to the bounds with the
|
|
optimum held fixed. This moves The Bat's own Max |Δ| in band from Soul's originally-measured `+0.876` to
|
|
**`+0.968`** -- both computed the same way against the pre-Cut-1 curve; the difference is entirely the
|
|
narrower plateau, which now reaches full performance immediately above `MinimumTemperature` instead of only
|
|
within the old, poking width.
|
|
|
|
| Item | Type | Bounds | Old optimum | New optimum | New plateau width | Old value @ old optimum | Max |Δ| in band @ temp (old→new) |
|
|
|---|---|---|---|---|---|---|---|
|
|
| 6k Shooter | WeaponItemData | 173.15-473.15 | 249.5 | 249.65 | 36 | 0.9977 | +0.1923 @ 356.15 (0.3770->0.5693) |
|
|
| Arctica | GearData | 223.15-473.15 | 286.775 | 286.9 | 30 | 0.9977 | +0.1923 @ 375.65 (0.3770->0.5693) |
|
|
| Assembly Line | GearData | 273.15-373.15 | 273.15 | 298.65 | 12 | 1.0000 | -1.0000 @ 273.15 (1.0000->0.0000) |
|
|
| Autocannon | WeaponItemData | 173.15-473.15 | 173.15 | 249.65 | 36 | 1.0000 | -1.0000 @ 173.15 (1.0000->0.0000) |
|
|
| CShot RainbowLite Lazer | WeaponItemData | 250-400 | 288.175 | 288.25 | 18 | 0.9977 | +0.1923 @ 341.5 (0.3770->0.5693) |
|
|
| ChargeBlast SG | WeaponItemData | 223.15-473.15 | 286.775 | 286.9 | 30 | 0.9977 | +0.1923 @ 375.65 (0.3770->0.5693) |
|
|
| ChargeBlast+- | WeaponItemData | 223.15-473.15 | 286.775 | 286.9 | 30 | 0.9977 | +0.1923 @ 375.65 (0.3770->0.5693) |
|
|
| ClearPath | WeaponItemData | 223.15-473.15 | 286.775 | 286.9 | 30 | 0.9977 | +0.1923 @ 375.65 (0.3770->0.5693) |
|
|
| Cockpit 2x2 | GearData | 223.15-398.15 | 267.688 | 267.775 | 21 | 0.9977 | +0.1923 @ 329.9 (0.3770->0.5693) |
|
|
| ColdFire | WeaponItemData | 263.15-398.15 | 297.508 | 297.575 | 16.2 | 0.9977 | +0.1923 @ 345.5 (0.3770->0.5693) |
|
|
| Core Power | GearData | 200-450 | N/A | 263.75 | 30 | N/A (threw IndexOutOfRangeException) | N/A |
|
|
| DeathCluster | WeaponItemData | 223.15-473.15 | 286.775 | 286.9 | 30 | 0.9977 | +0.1923 @ 375.65 (0.3770->0.5693) |
|
|
| Deep Ore Extractor | GearData | 273.15-373.15 | 273.15 | 298.65 | 12 | 1.0000 | -1.0000 @ 273.15 (1.0000->0.0000) |
|
|
| Earp | WeaponItemData | 175-475 | 175 | 251.5 | 36 | 1.0000 | -1.0000 @ 175 (1.0000->0.0000) |
|
|
| FastBlast+- | WeaponItemData | 223.15-473.15 | 286.775 | 286.9 | 30 | 0.9977 | +0.1923 @ 375.65 (0.3770->0.5693) |
|
|
| GT 3K | WeaponItemData | 223.15-473.15 | 286.775 | 286.9 | 30 | 0.9977 | +0.1923 @ 375.65 (0.3770->0.5693) |
|
|
| Iapyx | GearData | 223.15-473.15 | 286.775 | 286.9 | 30 | 0.9977 | +0.1923 @ 375.65 (0.3770->0.5693) |
|
|
| Industrial Thermostatic Heater | GearData | 150-400 | 150 | 213.75 | 30 | 1.0000 | -1.0000 @ 150 (1.0000->0.0000) |
|
|
| LRMM72 | WeaponItemData | 223.15-473.15 | 223.15 | 286.9 | 30 | 1.0000 | -1.0000 @ 223.15 (1.0000->0.0000) |
|
|
| Large Drive | GearData | 200-400 | 200 | 251 | 24 | 1.0000 | -1.0000 @ 200 (1.0000->0.0000) |
|
|
| LonginusX | HullData | 173.15-573.15 | 274.95 | 275.15 | 48 | 0.9977 | +0.1923 @ 417.15 (0.3770->0.5693) |
|
|
| Manhattan | GearData | 200-450 | 263.625 | 263.75 | 30 | 0.9977 | +0.1923 @ 352.5 (0.3770->0.5693) |
|
|
| Medium Docking Bay | DockingBayData | -0-673.15 | 171.317 | 171.653 | 80.778 | 0.9977 | +0.1923 @ 410.622 (0.3770->0.5693) |
|
|
| MoveOnPro | GearData | 200-500 | 276.35 | 276.5 | 36 | 0.9977 | +0.1923 @ 383 (0.3770->0.5693) |
|
|
| Notorious | GearData | 250-450 | 300.9 | 301 | 24 | 0.9977 | +0.1923 @ 372 (0.3770->0.5693) |
|
|
| OK Disperser | GearData | 223.15-473.15 | 286.775 | 286.9 | 30 | 0.9977 | +0.1923 @ 375.65 (0.3770->0.5693) |
|
|
| PotaT+- | GearData | 200-500 | 276.35 | 276.5 | 36 | 0.9977 | +0.1923 @ 383 (0.3770->0.5693) |
|
|
| Refinery | GearData | 273.15-373.15 | 273.15 | 298.65 | 12 | 1.0000 | -1.0000 @ 273.15 (1.0000->0.0000) |
|
|
| SRMM72 | WeaponItemData | 223.15-473.15 | 223.15 | 286.9 | 30 | 1.0000 | -1.0000 @ 223.15 (1.0000->0.0000) |
|
|
| SafeStuff II | CargoBayData | 175-600 | 283.163 | 283.375 | 51 | 0.9977 | +0.1923 @ 434.25 (0.3770->0.5693) |
|
|
| Shipyard | GearData | 273.15-373.15 | 273.15 | 298.65 | 12 | 1.0000 | -1.0000 @ 273.15 (1.0000->0.0000) |
|
|
| Skiron | GearData | 223.15-473.15 | 286.775 | 286.9 | 30 | 0.9977 | +0.1923 @ 375.65 (0.3770->0.5693) |
|
|
| Spectra | WeaponItemData | 263.15-398.15 | 297.508 | 297.575 | 16.2 | 0.9977 | +0.1923 @ 345.5 (0.3770->0.5693) |
|
|
| Store-All Enterprise Edition | CargoBayData | 175-600 | 283.163 | 283.375 | 51 | 0.9977 | +0.1923 @ 434.25 (0.3770->0.5693) |
|
|
| Store-All Plus | CargoBayData | 175-600 | 283.163 | 283.375 | 51 | 0.9977 | +0.1923 @ 434.25 (0.3770->0.5693) |
|
|
| Store-All Plus Mini | CargoBayData | 175-600 | 283.163 | 283.375 | 51 | 0.9977 | +0.1923 @ 434.25 (0.3770->0.5693) |
|
|
| Surface Ore Extractor | GearData | 273.15-373.15 | 273.15 | 298.65 | 12 | 1.0000 | -1.0000 @ 273.15 (1.0000->0.0000) |
|
|
| The Bat | GearData | 200-400 | 208.8 | 209 | 18 | 1.0000 | +0.9680 @ 200.1 (0.0320->1.0000) |
|
|
| Traction | GearData | 200-450 | 263.625 | 263.75 | 30 | 0.9977 | +0.1923 @ 352.5 (0.3770->0.5693) |
|
|
| Tractor Beam | GearData | -0--0 -> **200-400** | -0 | 251 | 24 | 1.0000 | -1.0000 @ -0 (1.0000->0.0000) |
|
|
| Turret | HullData | 123.15-773.15 | 288.575 | 288.9 | 78 | 0.9977 | +0.1923 @ 519.65 (0.3770->0.5693) |
|
|
| Turret Control Module | GearData | 173.15-523.15 | 262.225 | 262.4 | 42 | 0.9977 | +0.1923 @ 386.65 (0.3770->0.5693) |
|
|
| Vulcan | GearData | 200-500 | 276.35 | 276.5 | 36 | 0.9977 | +0.1923 @ 383 (0.3770->0.5693) |
|
|
| Zenith | HullData | 123.15-773.15 | 288.575 | 288.9 | 78 | 0.9977 | +0.1923 @ 519.65 (0.3770->0.5693) |
|
|
| cold like my heart | GearData | 223.15-473.15 | 286.775 | 286.9 | 30 | 0.9977 | +0.1923 @ 375.65 (0.3770->0.5693) |
|
|
| deep space burnout | GearData | 200-400 | 250.9 | 251 | 24 | 0.9977 | +0.1923 @ 322 (0.3770->0.5693) |
|
|
| not if i see you first | GearData | 200-400 | 250.9 | 251 | 24 | 0.9977 | +0.1923 @ 322 (0.3770->0.5693) |
|
|
| plight | WeaponItemData | 263.15-398.15 | 263.15 | 297.575 | 16.2 | 1.0000 | -1.0000 @ 263.15 (1.0000->0.0000) |
|
|
| pretty pretty bang bang | WeaponItemData | 223.15-473.15 | 286.775 | 286.9 | 30 | 0.9977 | +0.1923 @ 375.65 (0.3770->0.5693) |
|
|
| pswarm | WeaponItemData | 223.15-473.15 | 223.15 | 286.9 | 30 | 1.0000 | -1.0000 @ 223.15 (1.0000->0.0000) |
|
|
| scorched void policy | WeaponItemData | 223.15-473.15 | 286.775 | 286.9 | 30 | 0.9977 | +0.1923 @ 375.65 (0.3770->0.5693) |
|
|
|
|
## Re-authoring: Tractor Beam, 13 curve-less designs, and Earp/The Bat (operator ruling: "reauthor those items")
|
|
|
|
Written through the catalog's own types, in a scratch console over `Aetheria.Shared` (not committed; the
|
|
committed `GameData/Aetheria.cc` diff is the artifact). Every already-fitted design in the catalog shares the
|
|
exact same normalized curve shape -- optimum at 25.5% of the range above `MinimumTemperature`, plateau 12% of
|
|
the range wide -- regardless of hardpoint or behaviour, matching five distinct bound ranges to 5+ significant
|
|
figures. That is not rounding coincidence; it is one Bezier template authored once and reused catalog-wide, and
|
|
the 14 unauthored designs are simply the ones nobody assigned it to. Each row below applies that same fraction
|
|
to the design's own (unchanged, except Tractor Beam's) bounds, or points at the specific sibling design that
|
|
carries the identical bounds and therefore the identical fitted curve. All 16 records were validated
|
|
(`StatValidation.ValidateHeatResponse`) before any write reached disk; a failing record would have written
|
|
nothing.
|
|
|
|
| Item | What it is | Old bounds | Proposed (landed) | Why |
|
|
|---|---|---|---|---|
|
|
| Assembly Line | Tool-hardpoint facility gear, no active Behavior (a station production module) | 273.15-373.15, degenerate full-range plateau | Opt 298.65, PW 12 (bounds unchanged) | House-style fraction (25.5%/12%) over its own band; shares its exact bounds and prior placeholder shape with 4 sibling facility items below |
|
|
| Deep Ore Extractor | Same Tool/no-Behavior facility family | 273.15-373.15, degenerate | Opt 298.65, PW 12 | Same as Assembly Line -- identical bounds, identical fraction |
|
|
| Refinery | Same Tool/no-Behavior facility family | 273.15-373.15, degenerate | Opt 298.65, PW 12 | Same as Assembly Line |
|
|
| Shipyard | Same Tool/no-Behavior facility family | 273.15-373.15, degenerate | Opt 298.65, PW 12 | Same as Assembly Line |
|
|
| Surface Ore Extractor | Same Tool/no-Behavior facility family | 273.15-373.15, degenerate | Opt 298.65, PW 12 | Same as Assembly Line |
|
|
| Autocannon | Ballistic weapon, `AutoWeaponData` | 173.15-473.15, degenerate | Opt 249.65, PW 36 | Matches 6k Shooter, the only other design sharing this exact 173.15-473.15 band |
|
|
| Core Power | Reactor gear, `ReactorData`+`WearData` | 200-450, degenerate (old curve authored with 0 keys, old getter threw) | Opt 263.75, PW 30 | Matches Manhattan, the only other design sharing this exact 200-450 band |
|
|
| Industrial Thermostatic Heater | Tool-hardpoint heater, `ThermotoggleData`+`EnergyDrawData`+`HeatData` (it generates heat) | 150-400, degenerate | Opt 213.75, PW 30 | House-style fraction skewed toward the cold end, matching a device meant to run best where it is needed (cold) and degrade once its own output overheats it |
|
|
| LRMM72 | Launcher weapon, `LauncherData` | 223.15-473.15, degenerate | Opt 286.9, PW 30 | Matches GT 3K (`LauncherData`) and scorched void policy (`GuidedWeaponData`), both sharing this exact band with identical fitted curves |
|
|
| SRMM72 | Launcher weapon, `GuidedWeaponData` | 223.15-473.15, degenerate | Opt 286.9, PW 30 | Matches scorched void policy, same hardpoint/behaviour/band |
|
|
| pswarm | Launcher weapon, `GuidedWeaponData` | 223.15-473.15, degenerate | Opt 286.9, PW 30 | Matches scorched void policy, same hardpoint/behaviour/band |
|
|
| Large Drive | Thruster gear, `ThrusterData`+`WearData` | 200-400, degenerate | Opt 251, PW 24 | Matches deep space burnout, the only other design sharing this exact 200-400 Thruster band |
|
|
| plight | Energy weapon, `ChargedWeaponData` | 263.15-398.15, degenerate | Opt 297.575, PW 16.2 | Matches ColdFire and Spectra, both sharing this exact band with identical fitted curves (`AutoWeaponData`, but bounds -- not behaviour -- is what the shared template keys on) |
|
|
| Tractor Beam | Sensors-hardpoint gear, no active Behavior | -0 to -0, min==max==optimum, width 0 (S1: dead at every temperature) | Bounds 200-400 (newly authored), Opt 251, PW 24 | Never had real bounds authored at all; 200-400 matches the other small Sensors/gear family already using that exact range (not if i see you first, The Bat, Large Drive, deep space burnout), and the fraction gives it not-if-i-see-you-first's exact curve |
|
|
| Earp | Ballistic weapon, `InstantWeaponData` | 175-475, real 2-key curve peaking exactly at Minimum (dead at every temperature -- same bug class as S1, found while enforcing S5/S6's plateau-clamp rule) | Opt 251.5, PW 36 | House-style fraction over its own unique 175-475 band (no exact-bounds sibling exists); moves its peak off the lethal boundary the same way the 14 do |
|
|
| The Bat | Sensors-hardpoint gear, `SensorData` | 200-400, real fitted optimum 209, PlateauWidth 33 (pokes 7.5 past Minimum -- found while enforcing S5/S6) | PlateauWidth 18 only; optimum 209 unchanged | Minimal fix: shrink only the plateau to the largest width that clamps to the bounds with the authored optimum held fixed, preserving the one genuinely distinct fitted curve in this list |
|
|
|
|
## Zero consumables in the catalog
|
|
|
|
Cut 0 flagged that `ItemManager.CreateInstance` has no `ConsumableItemData` branch, so a `ConsumableItem` is
|
|
apparently never minted by the normal path, and asked whether Cut 1 should look before touching consumables.
|
|
**(probe)** The catalog holds **zero** `ConsumableItemData` records (`cache.GetAll<ConsumableItemData>().Count()
|
|
== 0` against `GameData/Aetheria.cc`). There is nothing to touch: no consumable design exists to migrate, to
|
|
break, or to validate.
|