bayes for days
sds docs FORMATIONS.md
7.0 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 rare means pins down more of the force: the units column is every requirement's own minimum at a lance of four added up, with four for a criterion every unit must pass. Ties fall to a narrower weight bracket, then a grouping constraint, then fewer unit types admitted, then an ideal role, then a faction, then the name.

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 asks for opens on
1 Assault Assault 11 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
2 Fast Assault Assault 11 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
3 Heavy Striker/Cavalry Striker/Cavalry 10 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
4 Rifle Battle 9 Medium to Colossal; every unit: Walk/Cruise 4+; 3 of Medium, Heavy; 2 of AC weapon engage
5 Heavy Recon Recon 9 every unit: Walk/Cruise 4+; 2 of Walk/Cruise 5+; 2 of Scout; 1 of Heavy+ flank
6 Light Striker/Cavalry Striker/Cavalry 8 UltraLight to Medium; every unit: Walk/Cruise 5+; 2 of Weapon with damage 5+ at range 18; 2 of Striker, Skirmisher flank
7 Probe Pursuit 7 UltraLight to Heavy; every unit: Damage 10+ at range 9; 3 of Walk/Cruise 6+ flank
8 Anvil Assault 6 Medium to Colossal; every unit: Armor 105+; 2 of AC, SRM, or LRM engage
9 Striker/Cavalry Striker/Cavalry 6 UltraLight to Heavy; every unit: Walk/Cruise 5+ or Jump 4+; 2 of Striker, Skirmisher - or every unit Striker flank
10 Direct Fire Fire 6 every unit: Damage 10 at range 18; 2 of Heavy+ engage
11 Recon Recon 6 every unit: Walk/Cruise 5+; 2 of Scout, Striker - or every unit Scout flank
12 Berserker/Close Battle 5 2 of Heavy+; 3 of Brawler, Sniper, Skirmisher - or every unit Brawler advance
13 Battle Battle 5 2 of Heavy+; 3 of Brawler, Sniper, Skirmisher - or every unit Brawler engage
14 Anti-Air Fire 5 3 of Sniper, Missile Boat; 2 of Standard AC, LBX, Artillery weapon, Anti-Air targeting quirk engage
15 Security Security 5 1 of Scout, Striker; 1 of Sniper, Missile Boat; 3 of Not assault entrench
16 Horde Striker/Cavalry 4 UltraLight to Light; every unit: Damage <= 10 at range 9 harass
17 Light Recon Recon 4 UltraLight to Light; every unit: Walk/Cruise 6+, Scout harass
18 Pursuit Pursuit 4 UltraLight to Medium; 3 of Walk/Cruise 6+; 1 of Weapon with damage 5+ at range 15 - or every unit Striker flank
19 Sweep Pursuit 4 UltraLight to Medium; every unit: Walk/Cruise 5+, Damage 10+ at range 6 flank
20 Light Battle Battle 4 UltraLight to Heavy; 3 of Light; 1 of Scout harass
21 Hammer Striker/Cavalry 4 every unit: Walk/Cruise 5+ - or every unit Striker flank
22 Urban Urban 4 2 of Jump 1+ or Infantry/BA; 2 of Walk/Cruise <= 4 - or every unit Ambusher entrench
23 Command Command 3 2 of Sniper, Missile Boat, Skirmisher, Juggernaught; 1 of Brawler, Striker, Scout engage
24 Fire Fire 3 3 of Sniper, Missile Boat - or every unit MissileBoat engage
25 Fire Support Fire 3 3 of Indirect fire weapon engage (wants bombard)
26 Light Fire Fire 2 UltraLight to Medium; 2 of Sniper, Missile Boat engage
27 Heavy Battle Battle 2 Medium to Colossal; 2 of Heavy+ engage
28 Medium Battle Battle 2 UltraLight to Heavy; 2 of Medium engage
29 Hunter Assault 2 2 of Juggernaut or Ambusher - or every unit Ambusher entrench
30 Artillery Fire Fire 2 2 of Artillery engage (wants bombard)
31 Ranger Striker/Cavalry 0 UltraLight to Heavy - or every unit Skirmisher flank
32 Order * Command 0 Same model engage
33 Support Support 0 nothing at all engage

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. One formation is in that state, and the reason 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 #

6 of the twelve tactics are nobody's opening: break, control, regroup, reposition, screen, 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.