Hygiene B0-B1: correctness & latent traps
- Restore swallowed [Test] on EnemyAIMathTests.SlideVelocity_DegenerateNormal_DeflectsToTangent (dead regression guard for the shipped enemy-stuck-on-cover fix; now runs + passes). - Extract shared HarvestMath.DepositYield used by ResourceHarvestSystem + MeleeComboSystem; fixes melee mining silently ignoring per-item StackMax (it hard-coded DefaultStackMax) and hoists the melee ledger-buffer fetch out of the per-target loop. - StatMath.Apply switches on the raw byte (case (byte)ModOp.X) instead of casting to the enum inside the Bursted fold — removes the latent cross-assembly enum-in-Burst ICE trap. - Add [Min] guards on CycleDirectorAuthoring loss-critical ints (CoreIntegrityMax>=1 so a mis-authored 0 can't bake an instant-loss core; siege sizes >=0). 456/456 EditMode tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -28,11 +28,11 @@ namespace ProjectM.Simulation
|
||||
var m = mods[i];
|
||||
if (m.Target != t)
|
||||
continue;
|
||||
switch ((ModOp)m.Op)
|
||||
switch (m.Op)
|
||||
{
|
||||
case ModOp.Flat: flat += m.Value; break;
|
||||
case ModOp.PercentAdd: percentAdd += m.Value; break;
|
||||
case ModOp.PercentMult: percentMult *= 1f + m.Value; break;
|
||||
case (byte)ModOp.Flat: flat += m.Value; break;
|
||||
case (byte)ModOp.PercentAdd: percentAdd += m.Value; break;
|
||||
case (byte)ModOp.PercentMult: percentMult *= 1f + m.Value; break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user