bayes for days
sds plan fire-modes.md
1.3 kB


id: fire-modes title: Ultra and Rotary autocannon rates are a choice status: open dependsOn: [ev] exitCriterion: > A Rotary AC is fired at a rate the bot chose against the jam risk, and a different rate is chosen when the risk is worth taking. #

fire-modes #

Partly built. Weapon::shots_per_firing exists, Mode, WeaponMode and OneOf are in volley.rs, and a launcher's modes already resolve through OneOf::resolve - the type has no sum and no iter precisely so a caller cannot add two alternatives together by accident.

What is not there is the risk. An Ultra AC firing double can jam; a Rotary firing at four or six can jam harder. The bot picks a rate without pricing the chance of losing the weapon for the rest of the match, which makes the highest rate always look best.

What it needs #

  • The jam roll per rate, from MegaMek rather than a rulebook. Probe it the way SdsMinimumRange probed range.
  • A term in the volley's value for the expected cost of jamming: a weapon lost for the remaining rounds, weighted by how much of the force's firepower it is.
  • A check that ammo_spent prices the higher rate correctly - it now counts rounds rather than declarations, so an Ultra in double mode should already spend two.