Aetheria/Assets/Scripts
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens a454a5a77f Collapse the two implicit shield ellipsoids into ShieldEnvelope (Cut 2)
FieldDriver derived the shield ellipsoid from its own transform.localScale;
ShieldManager derived it independently from the Shield prefab instance's
transform, doing the same normalise-and-project by hand against a different
object. Add ShieldEnvelope as the one reader of a transform's centre, radii,
surface projection, and true outward normal (derived, not authored, per R6 --
no second copy of numbers the physical MeshCollider already owns), and switch
both consumers onto it, deleting their hand-rolled projections.

Radii read the attached collider mesh's own bounds.extents per axis rather
than assuming a flat 0.5 or 1.0: Shield.prefab's Icosphere collider measures
(0.0095106, 0.01, 0.01), not a uniform round number, and the cubesphere's
collider measures exactly (1,1,1) -- confirmed by a throwaway batchmode probe
against the actual mesh assets, not guessed.

SurfaceNormal is not normalize(p): a non-uniform ellipsoid's true normal is
the gradient of the implicit surface, transformed by rotation and the INVERSE
of lossyScale (a normal is a covector). The first implementation used
TransformDirection (rotation and forward scale) and the batchmode probe's
finite-difference gradient check caught it immediately -- exactly the
plausible-looking-wrong-answer failure mode the cut map called out by name.
Both original consumers keep normalize(p)-equivalent behaviour via the new
SurfaceDirection method, since they only ever wanted a direction.

FieldDriver falls back to its pre-cut formulas (logged once) when no
ShieldEnvelope is present, since it has no guaranteed carrier yet.
ShieldManager does not: every object that carries it gets an envelope in this
cut, so a missing one logs an error and degrades to a fixed direction rather
than recomputing a second projection.

No prefab or scene file is touched here (Q5: the operator rigs prefabs and
scenes by hand); ShieldPanelCut2Verify's batchmode probe instead builds
synthetic transforms carrying Longinus's and Djinni's actual override values
plus the real Icosphere mesh, and proves ProjectToSurface lands exactly on the
ellipsoid and SurfaceNormal matches a finite-difference gradient to 1e-3.
mutation_tests_shield_panel_cut2.py mutates SurfaceNormal three ways (back to
normalize(p), back to TransformDirection, and a flattened 0.5 extents factor)
and confirms the probe goes red for each, naming the reason.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 06:33:38 +02:00
..
CultCache Pin AetheriaStores routing with tests; make PlayerSettings readable 2026-09-14 19:12:54 +02:00
Editor Collapse the two implicit shield ellipsoids into ShieldEnvelope (Cut 2) 2026-09-18 06:33:38 +02:00
Gameplay Collapse the two implicit shield ellipsoids into ShieldEnvelope (Cut 2) 2026-09-18 06:33:38 +02:00
ServerShared Switch engine asset references from Resources paths to Addressables GUIDs 2026-09-18 05:04:50 +02:00
Tests Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
UI Cut 0: MainMenu takes a run-owned copy of the background settings 2026-09-17 18:22:41 +02:00
Zone Display Switch engine asset references from Resources paths to Addressables GUIDs 2026-09-18 05:04:50 +02:00
AetheriaInput.cs Let the player target and mark neutrals, and fix the HUD lock direction 2026-09-17 14:01:15 +02:00
AetheriaInput.cs.meta Minimap + Input System 2020-12-02 16:42:09 +00:00
CultCache.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
Editor.meta Old Aetheria Code 2020-03-09 01:28:55 +00:00
EngineAssets.cs Switch engine asset references from Resources paths to Addressables GUIDs 2026-09-18 05:04:50 +02:00
EngineAssets.cs.meta Switch engine asset references from Resources paths to Addressables GUIDs 2026-09-18 05:04:50 +02:00
EventLog.cs Trade Menu Spreadsheet 2021-01-14 03:20:27 +00:00
EventLog.cs.meta Trade Menu Spreadsheet 2021-01-14 03:20:27 +00:00
FilterTest.cs Hit Detection 2021-01-08 12:44:10 +00:00
FilterTest.cs.meta Hit Detection 2021-01-08 12:44:10 +00:00
Gameplay.meta Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00
Prototype.cs Hit Detection 2021-01-08 12:44:10 +00:00
Prototype.cs.meta Copy Aetheria Code 2020-02-27 18:51:07 +00:00
PrototypeParticleReturn.cs Trade Menu Spreadsheet 2021-01-14 03:20:27 +00:00
PrototypeParticleReturn.cs.meta Trade Menu Spreadsheet 2021-01-14 03:20:27 +00:00
Rotate.cs Hit Detection 2021-01-08 12:44:10 +00:00
Rotate.cs.meta Hit Detection 2021-01-08 12:44:10 +00:00
ServerShared.meta Initial Client/Server Communication 2020-02-26 17:48:40 +00:00
Tests.meta Sector & Loadout Generation Fixes 2021-03-18 22:48:33 +00:00
UI.meta Generating and Displaying Zones 2020-03-29 04:19:24 +01:00
UnityExtensions.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
UnityExtensions.cs.meta Database Support 2020-03-22 19:05:26 +00:00
Zone Display.meta Trailer Stuff & More 2021-03-27 10:03:24 +00:00