LANTERN purge: delete the superseded base/expedition shell (audit H1/H3/M5)

The 2026-08-06 audit found the shipping scene was still the abandoned
co-op-Hades game with LANTERN combat bolted on, and that a third of the
codebase was live code for a direction abandoned on 2026-07-13. Operator
chose deletion over freezing: "everything is saved in source control if
needed. I want the project to be clean."

DELETED (~140 source files, Scripts 335->231, Tests 77->43):
- Enemy variants + boss (H3). ChargerAuthoring / SpitterAuthoring /
  SwarmerAuthoring were attached to ZERO prefabs, so LungeState /
  SpitterState / SwarmerTag were never baked: ~272 lines of Bursted AI
  passes, BossAISystem (261 lines) and the whole MixBands escalation
  curve could not match a single chunk at runtime, while 734 lines of
  green tests certified them. Both shipping enemy prefabs were already
  byte-identical in stats.
- Run/room lifecycle: RunDirector FSM, RunInfo/RunMap/RoomPlan/RoomTag,
  route select, portal interact, ready-check, room field/teardown.
- Meta shop, prep loadout, boons (incl. KillRewardSystem and
  DashTrailDamageSystem, which existed only to serve boon flags).
- Build palette + structures, shared storage, inventory/equipment
  (already recorded PAUSED in CLAUDE.md).
- The HUD panels driving all of the above (HudSystem 1168 -> 610).

KEPT deliberately: BaseGridMath + BaseAnchor (8 systems use PlotCenter
for spawn rings, respawn and dynamic light), the resource ledger +
StorageMath, the save system, region/relevancy. Three of these were in
the delete set until I checked their consumers — worth remembering that
the file-level manifest was wrong about them.

Also folds in audit finding M5: PlayerClass was a second, server-only
copy of the byte FrameId already replicates. It existed for the meta
shop; with that gone, FrameId is the single frame identity.

Harvest is now single-sink (ledger). HarvestMath keeps its shape so
LANTERN's carried-vs-banked cargo split lands in one place, not two.

295/295 EditMode green, zero compile errors. Subscene re-bake and Play
validation follow in the next commit.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-07 12:59:39 -07:00
parent 6a412fe3e7
commit 62e48a3b0b
304 changed files with 260 additions and 14591 deletions
@@ -39,28 +39,11 @@ namespace ProjectM.Client
float expDen = cfg != null ? cfg.ExpeditionFogDensity : 0.04f;
Color expAmb = cfg != null ? cfg.ExpeditionAmbientSky : new Color(0.02f, 0.045f, 0.07f, 1f);
// Per-room murk flavors (cosmetic code consts; all stay inside the deep-sea band — hue shifts are
// subtle, value stays dark so dynamic lights keep carrying readability).
bool haveRun = SystemAPI.TryGetSingleton<ProjectM.Simulation.RunInfo>(out var runInfo);
if (haveRun && runInfo.Lifecycle != ProjectM.Simulation.RunLifecycle.Staging)
{
switch (runInfo.CurrentBiome)
{
case ProjectM.Simulation.RoomBiomeId.Meadow: // kelp shallows: a touch greener
expFog = new Color(0.02f, 0.10f, 0.09f, 1f); expDen = 0.035f;
expAmb = new Color(0.025f, 0.06f, 0.06f, 1f);
break;
case ProjectM.Simulation.RoomBiomeId.Cavern: // crush-dark trench: colder + denser
expFog = new Color(0.01f, 0.05f, 0.08f, 1f); expDen = 0.05f;
expAmb = new Color(0.015f, 0.035f, 0.06f, 1f);
break;
case ProjectM.Simulation.RoomBiomeId.Blight: // gloam bloom: a sick green-violet cast
expFog = new Color(0.045f, 0.075f, 0.09f, 1f); expDen = 0.045f;
expAmb = new Color(0.045f, 0.05f, 0.075f, 1f);
break;
// default keeps the config/fallback out-shelf murk above.
}
}
// 2026-08-07 audit purge: per-room murk flavors (kelp shallows / crush-dark trench / gloam bloom)
// keyed off RunInfo.CurrentBiome. The run FSM is deleted, so the out-shelf murk config above is the
// whole look. Re-key this off LANTERN's pocket type when Phase 2 lands — the colour constants are in
// git if the three flavors are wanted back.
float x = _cam.transform.position.x;
float t = Mathf.Clamp01((x - (boundary - half)) / (2f * half));