Aetheria/Assets/Scripts/Editor
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 7848a8a86e Fix ShieldManager's missing-envelope fallback regression
ShieldManager's fallback (no ShieldEnvelope yet, e.g. every ship prefab
before the operator hand-rigs it per Q5) hard-failed to a fixed
Vector3.forward direction with a per-hit Debug.LogError. That silently
changed behaviour for every ship in the game until the operator edits
Longinus.prefab/Djinni.prefab on their own schedule -- worse than either
the deleted code or a loud one-time failure.

Extract ShieldEnvelope's local-direction primitive into two static,
no-component-required entry points -- SurfaceDirection(Transform, Vector3)
and LegacyLocalSurfacePoint(Transform, Vector3) -- so both FieldDriver's and
ShieldManager's fallbacks go through one owner instead of each re-deriving
the pre-Cut-2 formula by hand. ShieldManager's fallback now reproduces the
deleted normalize(shield.transform.InverseTransformPoint(point)) formula
exactly via the shared static, logging once (a warning, not a per-hit
error). FieldDriver's fallback is rewired onto the same static rather than
its own inline copy of the maths.

Documented, not silently assumed: FieldDriver's "envelope present" branch
(envelope.ProjectToSurface, world-space) and its fallback (the legacy local-
space formula) are only numerically identical when the carrier's transform
has zero position and identity rotation -- true of the one FieldDriver
carrier in the tree today, not true in general. This is a characteristic of
Cut 2 as scoped by the map (FieldDriver.cs:125 reads envelope.ProjectToSurface
directly, per the map's own text), not something this fix introduces or
resolves; flagged so nobody assumes the two branches are interchangeable for
a future non-origin, non-identity FieldDriver carrier.

ShieldPanelCut2Verify.CheckLegacyFallbackFormulas pins both static entry
points against an independent re-derivation of the exact pre-Cut-2 formulas,
on a carrier with a non-trivial transform (nonzero position, non-identity
rotation) so the check isn't vacuous. mutation_tests_shield_panel_cut2.py
gained two cases: SurfaceDirection collapsing back to a fixed Vector3.forward
(the exact regression fixed here), and LegacyLocalSurfacePoint collapsing to
the raw, untransformed world point -- both correctly fail the probe.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 06:45:07 +02:00
..
CellBrushEditor.cs Boundless 2022-07-21 21:40:44 +01:00
CellBrushEditor.cs.meta Boundless 2022-07-21 21:40:44 +01:00
CultCacheDrawers.cs Switch engine asset references from Resources paths to Addressables GUIDs 2026-09-18 05:04:50 +02:00
CultCacheDrawers.cs.meta Replace the Database Tools with the Studio and cut Unity over 2026-09-14 19:15:20 +02:00
EngineAssetCheck.cs Switch engine asset references from Resources paths to Addressables GUIDs 2026-09-18 05:04:50 +02:00
EngineAssetCheck.cs.meta Switch engine asset references from Resources paths to Addressables GUIDs 2026-09-18 05:04:50 +02:00
GameplaySettingsEditor.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
GameplaySettingsEditor.cs.meta Gear Schematic HUD 2020-12-31 19:53:16 +00:00
NameTools.cs Replace the Database Tools with the Studio and cut Unity over 2026-09-14 19:15:20 +02:00
NameTools.cs.meta Sector Generation 2021-03-10 09:18:07 +00:00
PlayScenePlusPlus.cs Action Bar Weapon Group Binding 2021-04-19 03:46:35 +01:00
PlayScenePlusPlus.cs.meta Action Bar Weapon Group Binding 2021-04-19 03:46:35 +01:00
ShieldPanelCut1Verify.cs Add the Cut 1 batchmode probe and its mutation harness 2026-09-18 06:08:24 +02:00
ShieldPanelCut1Verify.cs.meta Add the Cut 1 batchmode probe and its mutation harness 2026-09-18 06:08:24 +02:00
ShieldPanelCut2Verify.cs Fix ShieldManager's missing-envelope fallback regression 2026-09-18 06:45:07 +02:00
ShieldPanelCut2Verify.cs.meta Collapse the two implicit shield ellipsoids into ShieldEnvelope (Cut 2) 2026-09-18 06:33:38 +02:00