diff --git a/services/api/src/matches/scenarios.rs b/services/api/src/matches/scenarios.rs index 66c4ff2..149eb04 100644 --- a/services/api/src/matches/scenarios.rs +++ b/services/api/src/matches/scenarios.rs @@ -244,6 +244,22 @@ mod tests { assert_eq!(steiner.deploy, "E"); } + /// Nobody deploys "Any". Upstream leaves the two defending forces without + /// a zone, which is a tabletop instruction - the defender places them - + /// and becomes "scatter across the whole three-map board" once MegaMek is + /// doing the placing, up to and including inside an attacker's own zone. + #[test] + fn every_monte_diablo_force_has_a_zone() { + let monte = find("MonteDiablo/MonteDiablo-Four_Players.mms").unwrap(); + for slot in &monte.slots { + assert_ne!( + slot.deploy, "Any", + "{} deploys anywhere, including on top of somebody else", + slot.name + ); + } + } + /// A team is only claimed when the file says so, and Monte Diablo now /// says so: upstream declared none, which made it a four-way free-for-all /// with the 2nd and 7th Donegal Guards shooting at each other, and the diff --git a/services/api/src/matches/scenarios/MonteDiablo/MonteDiablo-Four_Players.mms b/services/api/src/matches/scenarios/MonteDiablo/MonteDiablo-Four_Players.mms index 8d5b64f..9b79351 100644 --- a/services/api/src/matches/scenarios/MonteDiablo/MonteDiablo-Four_Players.mms +++ b/services/api/src/matches/scenarios/MonteDiablo/MonteDiablo-Four_Players.mms @@ -25,8 +25,19 @@ Maps=Map Set 2/16x17 BattleTech,Map Set 5/16x17 Large Mountain 1,scenarios/opent Factions=Steiner2nd,Steiner7th,Davion,ComStar Location_Steiner7th=W Location_Steiner2nd=E -Location_Davion=Any -Location_ComStar=Any +# lance.blue: the defenders hold the middle. +# +# Upstream gives both of them `Any`, which on a tabletop means the defender +# sets up wherever they like. MegaMek deploys them for us instead, and `Any` +# there is the whole three-map board - so the Lancers and the 167th scatter +# across it and can land inside a Steiner deployment zone, which is not a +# fight anybody set up. +# +# CTR because the Guards converge *in on* them: the 7th from the west and the +# 2nd from the east, onto the headquarters company between the two. That is +# the shape the Description states and the one the battle had. +Location_Davion=CTR +Location_ComStar=CTR # lance.blue: the two Donegal Guards commands fight as one side. #