# 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 | never - faction not modelled | | 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 | never - faction not modelled | | 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 | never - no behaviour prices it | | 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 | never - faction not modelled | | 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 | never - faction not modelled | | 33 | Support | Support | 0 | 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. | formation | why | |---|---| | Rifle | faction not modelled (FS) | | Anvil | faction not modelled (FWL) | | Anti-Air | no behaviour prices it | | Hammer | faction not modelled (FWL) | | Order | faction not modelled (DC) | ## 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 6 of the 12 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.