bayes for days
sds docs FORMATIONS.md
9.3 kB

Formations, and the tactic each one opens on #

A force does not choose its opening tactic. It is handed one by what it was built as, and what it was built as is a Formation - MegaMek's own composition requirements over weight class, movement, armour, damage at a range and the roles present. Nothing on this page is invented here: the requirements are read out of megamek.client.ratgenerator.FormationType by bridge/sds/SdsFormations.java, committed as crates/sds-core/tests/corpus/formations.txt, and checked against the catalogue on every commit.

What is not MegaMek's is the last column. Which tactic a composition asks for is a reading of it, and it is the one thing here worth arguing with. The cohesion rule is the tabletop rules': a formation holds while 3 or more of its units are neither destroyed nor routed, and below that it is disabled and the force falls back to engage. FormationType is a generation filter that never touches a running game, so nothing in MegaMek applies that rule for us and the bot keeps it itself - what MegaMek settles is the predicate under it, which is a unit the game has removed from play.

The order #

A lance of four heavies is a Battle Lance and a Heavy Battle Lance and a Support Lance all at once, so which one it is comes down to which is asked first. The order is a constant, and scarce means fewest lances left to take: each position goes to the formation with the fewest lances no formation above it has already claimed, measured over twenty thousand lances drawn from MegaMek's own force generator. crates/sds-core/tests/corpus/lances.txt is that derivation, with the corpus it came from, and formation::ORDER is pinned to it. Nothing recomputes the order at build time.

The satisfies column is how much of that corpus a formation's criteria admit and the claims column is how much of it the formation is left once everything above has been asked. The gap between them is what the order costs a formation, and the units column - how much of a lance a definition pins down - is what the order used to be sorted by.

A force that qualifies as nothing at all opens on engage, and so does a force this bot cannot read - anything that is not four ground Meks.

# formation family units satisfies claims asks for opens on
1 Order * Command 0 0 0 Same model never - faction not modelled
2 Artillery Fire Fire 2 4 4 2 of Artillery bombard
3 Light Recon Recon 4 23 23 UltraLight to Light; every unit: Walk/Cruise 6+, Scout harass
4 Horde Striker/Cavalry 4 48 28 UltraLight to Light; every unit: Damage <= 10 at range 9 harass
5 Fast Assault Assault 11 58 58 Medium to Colossal; every unit: Walk 5+ or Jump 1+; 3 of Damage 25+ at range 7; 3 of Heavy+; 1 of Juggernaut or 2 of Sniper engage
6 Sweep Pursuit 4 177 177 UltraLight to Medium; every unit: Walk/Cruise 5+, Damage 10+ at range 6 flank
7 Light Striker/Cavalry Striker/Cavalry 8 186 80 UltraLight to Medium; every unit: Walk/Cruise 5+; 2 of Weapon with damage 5+ at range 18; 2 of Striker, Skirmisher flank
8 Light Fire Fire 2 225 198 UltraLight to Medium; 2 of Sniper, Missile Boat engage
9 Probe Pursuit 7 275 201 UltraLight to Heavy; every unit: Damage 10+ at range 9; 3 of Walk/Cruise 6+ flank
10 Pursuit Pursuit 4 492 286 UltraLight to Medium; 3 of Walk/Cruise 6+; 1 of Weapon with damage 5+ at range 15 - or every unit Striker flank
11 Recon Recon 6 912 427 every unit: Walk/Cruise 5+; 2 of Scout, Striker - or every unit Scout flank
12 Hammer Striker/Cavalry 4 1243 242 every unit: Walk/Cruise 5+ - or every unit Striker never - faction not modelled
13 Light Battle Battle 4 726 362 UltraLight to Heavy; 3 of Light; 1 of Scout harass
14 Heavy Striker/Cavalry Striker/Cavalry 10 449 446 Medium to Colossal; every unit: Walk/Cruise 4+; 3 of Heavy+; 2 of Striker, Skirmisher; 1 of Weapon with damage 5+ at range 18 flank
15 Rifle Battle 9 782 626 Medium to Colossal; every unit: Walk/Cruise 4+; 3 of Medium, Heavy; 2 of AC weapon never - faction not modelled
16 Striker/Cavalry Striker/Cavalry 6 1381 653 UltraLight to Heavy; every unit: Walk/Cruise 5+ or Jump 4+; 2 of Striker, Skirmisher - or every unit Striker flank
17 Anti-Air Fire 5 755 736 3 of Sniper, Missile Boat; 2 of Standard AC, LBX, Artillery weapon, Anti-Air targeting quirk never - no behaviour prices it
18 Heavy Recon Recon 9 1368 1082 every unit: Walk/Cruise 4+; 2 of Walk/Cruise 5+; 2 of Scout; 1 of Heavy+ flank
19 Assault Assault 11 1194 1137 Medium to Colossal; every unit: Armor 135+; 3 of 25 damage at range 7; 3 of Heavy+; 1 of Juggernaut or 2 of Sniper - or every unit Juggernaut engage
20 Hunter Assault 2 1432 1079 2 of Juggernaut or Ambusher - or every unit Ambusher entrench
21 Direct Fire Fire 6 1668 1159 every unit: Damage 10 at range 18; 2 of Heavy+ engage
22 Fire Fire 3 1698 942 3 of Sniper, Missile Boat - or every unit MissileBoat engage
23 Fire Support Fire 3 2418 1231 3 of Indirect fire weapon bombard
24 Medium Battle Battle 2 2927 1391 UltraLight to Heavy; 2 of Medium engage
25 Anvil Assault 6 5285 1373 Medium to Colossal; every unit: Armor 105+; 2 of AC, SRM, or LRM never - faction not modelled
26 Ranger Striker/Cavalry 0 6967 1624 UltraLight to Heavy - or every unit Skirmisher flank
27 Heavy Battle Battle 2 5737 1587 Medium to Colossal; 2 of Heavy+ engage
28 Battle Battle 5 5149 1176 2 of Heavy+; 3 of Brawler, Sniper, Skirmisher - or every unit Brawler never - another formation is this predicate
29 Berserker/Close Battle 5 5149 1176 2 of Heavy+; 3 of Brawler, Sniper, Skirmisher - or every unit Brawler advance
30 Urban Urban 4 6426 1703 2 of Jump 1+ or Infantry/BA; 2 of Walk/Cruise <= 4 - or every unit Ambusher entrench
31 Security Security 5 7124 1407 1 of Scout, Striker; 1 of Sniper, Missile Boat; 3 of Not assault entrench
32 Command Command 3 12504 973 2 of Sniper, Missile Boat, Skirmisher, Juggernaught; 1 of Brawler, Striker, Scout engage
33 Support Support 0 20000 566 nothing at all engage

What is never offered #

These stay in the catalogue with their criteria intact and are never handed to a force. They carry no opening at all, so nothing can turn one into a tactic or fit a weight to it.

Faction not modelled. MegaMek declares these as one house's. Nothing here knows which house a force belongs to - classification takes designs, and no field on the wire carries a faction - so a gated formation that was offered would match every house's force, which is not a narrower description but a wrong one. These come back by evaluating the gate once a force arrives with a faction.

No behaviour prices it. Naming a force by a specialism the scorer cannot play describes it by something it will not then do.

Another formation is this predicate. MegaMek separates the pair by a unit type and the unit types it separates them by are vehicles, so on a force of four Meks the two are one criterion and only the order chooses between them. The one withheld is the one whose distinction is the vehicles.

formation why
Order faction not modelled (DC)
Hammer faction not modelled (FWL)
Rifle faction not modelled (FS)
Anti-Air no behaviour prices it
Anvil faction not modelled (FWL)
Battle another formation is this predicate

What this bot declines to decide #

Marked * above. Where the wire cannot answer a requirement the formation is refused rather than guessed at, and a force that would have been one of these is classified as whatever comes next in the order, for a reason that is MegaMek's rather than ours.

One narrowing is not a decline and is worth knowing about. The Anti-Air Lance takes a unit either for its guns or for the force generator's ANTI_AIRCRAFT mission role, which lives in data/forcegenerator and is not a fact about a machine on the board. The gun half is read and the role half is not; because the two are an or, that can only refuse a force MegaMek would have accepted, never accept one it would have refused.

formation what is missing
Order MegaMek's own qualifies() divides by zero here - UPSTREAM.md note 11

What nobody opens on #

7 of the 13 tactics are nobody's opening: break, control, regroup, reposition, screen, spot, withdraw. That reads as right rather than as a gap. A formation says what a force was built for, and none of those is something a force is built for - they are things a force becomes.