Aetheria/Assets
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens cb71a3cfad Cut 12.3 fix batch: unify Lane and Lanes on one membership query
Self's review found that commit 4e6495dd's fix for F1 replaced the per-lane
forward-arithmetic defect with a second, still-independent membership
computation: Lane's own half-open admission (Lo <= s < Hi, from a cell's own
Extent) versus Lanes' ceil((cell.Lo - centreLateral) / laneSpacing) lane
index. The two agree only when a cell's own (Hi - Lo) equals the externally
supplied laneSpacing exactly in float -- the identical two-derivations trap
Cut 12.2's own fix batch already found and removed from Lane itself,
reintroduced one layer up. Confirmed reachable: on commit 4e6495dd, solid5
b=(0,1) s=0.49999997 n=1 leaves the ceil-based centre lane EMPTY while Lane(s)
itself finds all 5 cells of the row -- breaking R3 ("the centre lane always
meets metal", Commit's own guard) and the 12.2 placement contract.

FireControl.Lanes is now built entirely out of FireControl.Lane: it calls
Lane(hull, b, centreLateral + k * laneSpacing, ...) once per lane index, so
Lane(s) is literally this function's n = 0 case rather than a parallel
re-implementation of its rule. Commit's placement and Apply's damage split
now read one function. The narrower question left -- can two individually
correct Lane() calls, at two different lines, still walk the same cell? --
is resolved by ownership (the lane closest to the centre keeps a contested
cell; the centre lane, k = 0, never loses one), not by a competing formula,
so the centre lane's final cell set is always exactly Lane(centreLateral)'s
own output.

Lane() itself is unchanged (still called directly by Commit and by
FireControlCut12Tests' edge-seed and interval-edge tests, all still green:
HitsLandOnTheFacingEdge, LaneSeamIsHalfOpen, LaneNeverEmptiesAtAnIntervalEdge,
Cut12-edge-68442709, Cut12-edge-64078070).

Adds LanesQueryIsDisjointMatchesLaneAtCentreAndNeverEmptyOnHull: now that
Lanes is a public, pure geometric query, the boundary sweep is a behavioural
test of its own contract, no reflection -- over every cell's own shadow edge
and float neighbours, at exact-axis, 45-degree, |bx| > |by| bearings and
Soul's own two reproduction cases, spread 1-2: (a) no cell is walked by two
lanes, (b) the centre lane equals a plain Lane(s) call, (c) the centre lane
is never empty when the centre lateral is inside the hull's own shadow. Hand-
confirmed to fail on 4e6495dd's ceil-based Lanes (property (b), the same
input above) and to pass on this commit (fc123fix2-mut3.log).

Adds CommittedCellIsTheFirstCellTheCentreLaneDamages: an end-to-end check
through Fire -> Commit -> Apply (damageSpread 0, a single lane) that the
committed outcome.Cell is the first cell Apply damages.

Full suite: 286 tests, identical across 3 runs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 14:24:55 +02:00
..
AddressableAssetsData Add Addressables as a direct dependency and settings, Content group entry 2026-09-18 04:31:28 +02:00
Audio Combat & Visibility & Collisions 2021-02-26 19:01:47 +00:00
Content Switch engine asset references from Resources paths to Addressables GUIDs 2026-09-18 05:04:50 +02:00
Editor Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
Fonts Action Bar (WIP) 2021-04-18 05:13:20 +01:00
Images Upgrade to Unity 6000.3.24f1 2026-09-11 22:04:28 +02:00
Materials Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
Models Shields 2025-01-30 01:58:05 +00:00
Plugins Delete the in-tree cache, JsonKnownTypes and vendored MessagePack 2026-09-14 18:42:09 +02:00
Prefabs Upgrade to Unity 6000.3.24f1 2026-09-11 22:04:28 +02:00
Resources Wire subsystem selection and reveal into player input and the HUD 2026-09-19 13:02:54 +02:00
Scenes Drive the field shield test scene by publishing capability events 2026-09-17 14:36:54 +02:00
Scripts Cut 12.3 fix batch: unify Lane and Lanes on one membership query 2026-09-25 14:24:55 +02:00
Shaders Shield panel: gate reuse and Hit on the panel's own radius 2026-09-18 21:02:18 +02:00
StreamingAssets Unified Volumetric Flow 2021-06-18 12:32:03 +01:00
TextMesh Pro Bugfixes & Reactive Refactor 2025-07-18 00:21:33 +01:00
Textures Upgrade to Unity 6000.3.24f1 2026-09-11 22:04:28 +02:00
AddressableAssetsData.meta Add Addressables as a direct dependency and settings, Content group entry 2026-09-18 04:31:28 +02:00
Audio.meta Combat & Visibility & Collisions 2021-02-26 19:01:47 +00:00
Content.meta Add Addressables as a direct dependency and settings, Content group entry 2026-09-18 04:31:28 +02:00
Editor.meta Add Epiphany Unity editor bridge 2026-04-30 15:03:15 +01:00
Fonts.meta Menu Prototype 2020-03-23 14:36:59 +00:00
HoverCursorChange.cs Playability 2022-08-08 22:43:55 +01:00
HoverCursorChange.cs.meta Trade Menu Spreadsheet 2021-01-14 03:20:27 +00:00
Images.meta Menu Prototype 2020-03-23 14:36:59 +00:00
MainMenuMusic.cs NEW CLOUDS NEW CLOUDS NEW CLOUDS WHOOO 2022-07-10 02:53:09 +01:00
MainMenuMusic.cs.meta Music & SFX 2021-04-30 11:19:25 +01:00
Materials.meta Old Aetheria Code 2020-03-09 01:28:55 +00:00
Models.meta Initial ARPG Port 2020-11-27 22:47:33 +00:00
MouseRotate.cs Move the remaining Assets scripts off Unity.Mathematics 2026-09-14 18:01:54 +02:00
MouseRotate.cs.meta Playability 2022-08-08 22:43:55 +01:00
Plugins.meta Initial Client/Server Communication 2020-02-26 17:48:40 +00:00
Prefabs.meta Smooth AF Tab Menu 2020-03-24 21:51:38 +00:00
Resources.meta Old Aetheria Code 2020-03-09 01:28:55 +00:00
Scenes.meta Created Unity Project 2020-02-19 15:09:31 +00:00
Scripts.meta Initial Client/Server Communication 2020-02-26 17:48:40 +00:00
Shaders.meta Copy Aetheria Code 2020-02-27 18:51:07 +00:00
Steel.mat Combat & Visibility & Collisions 2021-02-26 19:01:47 +00:00
Steel.mat.meta Combat & Visibility & Collisions 2021-02-26 19:01:47 +00:00
StreamingAssets.meta Initial Wwise Integration 2021-02-27 20:53:36 +00:00
TextMesh Pro.meta Smooth AF Tab Menu 2020-03-24 21:51:38 +00:00
Textures.meta Initial ARPG Port 2020-11-27 22:47:33 +00:00