summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2022-02-28 23:39:22 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2022-02-28 23:39:22 +0100
commitaae0a828dd68fa2a8f25eaa8987718d09430c99d (patch)
treef1dddf27dedd1886e0696186016896e0465aa140
parent8b7f409da6550b8a7cdb5004e34be390eef06da6 (diff)
downloadasynk-rules-aae0a828dd68fa2a8f25eaa8987718d09430c99d.zip
asynk-rules-aae0a828dd68fa2a8f25eaa8987718d09430c99d.tar.gz
add EnemyActionArdennes
-rw-r--r--EnemyActionArdennes/EAA-cards.lou345
-rw-r--r--EnemyActionArdennes/EAA-cards.pdfbin0 -> 12516 bytes
-rw-r--r--EnemyActionArdennes/Makefile13
3 files changed, 358 insertions, 0 deletions
diff --git a/EnemyActionArdennes/EAA-cards.lou b/EnemyActionArdennes/EAA-cards.lou
new file mode 100644
index 0000000..cfc9359
--- /dev/null
+++ b/EnemyActionArdennes/EAA-cards.lou
@@ -0,0 +1,345 @@
+# encoding : iso-8859-1
+
+@SysInclude { langdefs }
+@SysInclude { bsf }
+@SysInclude { dsf }
+@SysInclude { docf }
+@SysInclude { tbl }
+
+@Use { @BasicSetup
+ @InitialFont { Times Base 7p }
+ @ListOuterGap { 0.60v @OrIfPlain 1f }
+ @ListGap { 0.60v @OrIfPlain 1f }
+ @ListIndent { 0s }
+ @ListLabelWidth { 0.60f @OrIfPlain 5s }
+}
+@Use { @DocumentSetup
+ @PageOrientation { Landscape }
+ @TopMargin { 0.5c @OrIfPlain 6f }
+ @FootMargin { 0.5c @OrIfPlain 6f }
+ @OddLeftMargin { .1c @OrIfPlain 10s }
+ @OddRightMargin { .1c @OrIfPlain 10s }
+ @EvenLeftMargin { .1c @OrIfPlain 10s }
+ @EvenRightMargin { .1c @OrIfPlain 10s }
+ @ColumnNumber { 4 }
+ @ColumnGap { .1c @OrIfPlain 6s }
+}
+@Use { @OrdinarySetup }
+@SysDatabase @FontDef { fontdefs }
+@SysDatabase @RefStyle { refstyle }
+
+def @Title right x { /.1c |1c 8p @Font @B {x}}
+# 65mm x 89mm
+def @HCard right x { 90d @Rotate black @Colour @CurveBox 8.9c @Wide 6.5c @High black @Colour { x } }
+def @VCard right x { black @Colour @CurveBox margin {.1c} 6.3c @Wide 8.7c @High black @Colour { x } }
+
+def @Red {rgb .8 .1 0}
+def @GCol {rgb .49 .48 .51}
+def @ACol {rgb .51 .56 .28}
+def @VCol {rgb .3 .07 .81}
+
+def @VS { @VCol @Colour @Box margin {1p} paint {@VCol} white @Color 2P }
+def @GS { @GCol @Colour @Box margin {1p} paint {@GCol} white @Color GS }
+def @AS { @ACol @Colour @Box margin {1p} paint {@ACol} white @Color AS }
+#def @Allied { @ACol @Colour @B Allied }
+#def @German { @GCol @Colour @B German }
+def @AlliedGS { 7p @Font @GCol @Colour @Box margin {.5p} paint {@GCol} white @Color Allied}
+def @GermanGS { 7p @Font @GCol @Colour @Box margin {.5p} paint {@GCol} white @Color German}
+def @Allied { Allied }
+def @German { German }
+def @Day right x { white @Colour @Box margin {1p} paint {@Red} white @Colour x }
+def @A { white @Colour @Box margin {1p} paint {@ACol} A }
+def @G { white @Colour @Box margin {1p} paint {@GCol} G }
+#def @Atk { white @Colour @Box margin {1p} paint {rgb .75 .22 .17} A }
+#def @Def { white @Colour @Box margin {1p} paint {rgb .15 .68 .37} D }
+def @Atk { {rgb .82 .32 .1} @Colour @CurveBox margin {1p} black @Colour A }
+def @Def { {rgb .16 .65 .35} @Colour @CurveBox margin {1p} black @Colour D }
+def @Bracked { @B{[}{unit}@B{]} }
+def @City { @I City{@Char slash}@I Town}
+
+def @Roadblocks { @VCard {
+ @Title {@GS @B Roadblocks}
+ /.3v
+ @BulletList
+ @ListItem{the hex is considered empty}
+#@ListItem{it only @B impacts German units:
+ @ListItem{it has the following @B effects on @German units:
+ @BulletList
+ @ListItem{it @B blocks move{@Sym slash}advance, @I Proximity, @I Supply}
+ @ListItem{it @B stops adjacent move{@Sym slash}advance if @B connected to it by a @B Road}
+ @ListItem{adjacent @I{Strategic Move} is not allowed}
+ @RawEndList}
+ @EndList
+ /.2v
+ @BulletList
+ @ListItem{once per @Underline Activation, @B place a @I Roadblock on a roll @Sym lessequal @B HV
+ /.2v when a @German unit moves{@Sym slash}advance into a hex @B adjacent to :
+ @TaggedList
+ @TagItem{@Bullet}{an empty @I Position, in @Allied @I Supply, on a @B Road hex}
+ @TagItem{@Bullet}{not a @German @City or adjacent to a @German unit}
+ @TagItem{@Star}{if @B HV < @B 5 : not in @Allied @B ZOC}
+ @TagItem{@Star}{if @Day 20+ : only if @B VP}
+ @RawEndList}
+ @EndList
+ /.2v
+ @BulletList
+ @ListItem{@B remove a @I Roadblock when :
+ @BulletList
+ @ListItem{an @Allied unit @B enters its hex}
+ @ListItem{during @Underline{Supply Phase} it is @I{OutOfCom} with @German @B or @Allied}
+ @ListItem{during @Underline{@German Activation} it is @B adjacent to an active unit :
+ @TaggedList
+ @TagItem{@Star}{if in @I Supply or @B VP, replace it on a roll @Sym lessequal @B HV
+ @BulletList
+ @ListItem{with an @Allied reserve or then @I{OutOfContact}}
+ @ListItem{@B same @I division @Sym arrowdblright @I corps @Sym arrowdblright @I army as the closest @Allied unit}
+ @RawEndList}
+ @RawEndList}
+ @RawEndList}
+ @EndList
+ /.2v
+ @BulletList
+ @ListItem{@B {check priority} : highest @B HV @Sym arrowdblright @B westernmost}
+ @EndList
+} }
+
+def @Reserve { @VCard {
+ @Title {@GS Allied Reserve Deployment}
+ /.3v
+ @BulletList
+ @ListItem{@B never in @German @City, @B never in danger of @I Surround}
+ @ListItem{@B @Underline {Method A} @Day 16+ @I Reserve then @Day 18+ @I OutOfContact
+ @BulletList
+ @ListItem{within the @I corps boundaries}
+ @ListItem{empty @I Position, in @I Supply were it occupied}
+ @ListItem{@I Proximate to a @German unit}
+ @ListItem{not in @Allied @B ZOC unless:
+ @BulletList
+ @ListItem{@B HV is @B 5+ @B or deployment fixes @I OutOfCommunication}
+ #@ListItem{@B or deployment fixes @I OutOfCommunication}
+ @RawEndList}
+ @RawEndList /.4v}
+ @ListItem{@B @Underline {Method B} @Day 18+ @I Reserve
+ @BulletList
+ @ListItem{@B first with @B{same division} unit, in @I Supply, in @I Communication}
+ @ListItem{@B then within the @I corps boundaries
+ @BulletList
+ @ListItem{empty @I Position, in @I Supply were it occupied}
+ @ListItem{within @B 3 hexes of a @Allied unit in the @B {same army}}
+ @ListItem{within @B 4 hexes of a @German unit}
+ @RawEndList}
+ @RawEndList /.2v}
+ @ListItem{@B {tie breaker} :
+ @BulletList
+ @ListItem{@B first within @B 3 hexes @B same @I division @Sym arrowdblright @I corps @Sym arrowdblright @I army}
+ @ListItem{@B then highest @B HV @Sym arrowdblright westernmost @Sym arrowdblright closest to @German}
+ @RawEndList}
+ @ListItem{@B @Underline {OutOfContact} :
+ @BulletList
+ @ListItem{not @I Dispersed, not @I Isolated in @I Communication and either is:
+ @BulletList
+ @ListItem{not @I Proximate and it's removal would not create a @B GAP}
+ @ListItem{not @I Surrounded, lowest @Char numbersign in a @B 5+ steps or @B 8+ points stack}
+ @RawEndList}
+ @RawEndList}
+ @EndList
+} }
+
+
+def @States { @VCard {
+ @Title {@GS @VS Unit States}
+ /.4v
+ @BulletList
+# gap {0.4v}
+# @ListItem{@B @Underline @B Supply : road from map edge + @B 4 hexes not through enemy :
+# @BulletList
+# @ListItem{@I Roadblock, @I Bridge, @City, unit and unoccupied @B ZOC}
+# @ListItem{if crossing an @I River, the path is limited to @B 1 hex}
+# @ListItem{@I Westwall @B blocks @Allied @I Supply unless occupied}
+# @RawEndList}
+ @ListItem{@B @Underline @Bracked :
+ @BulletList
+ @ListItem{may @B not attack on it's own}
+ @ListItem{does @B not add to chit draw when attacking}
+ @ListItem{@B {no ZOC} unless stacked, in @City, @German in @I Westwall}
+ @RawEndList /.6v}
+ @ListItem{@B @Underline Dispersed :
+ @TaggedList
+ @TagItem{@Bullet}{has @B{no ZOC}}
+ @TagItem{@Bullet}{may @B not move, attack, advance after combat or build an @B IP}
+ @TagItem{@Bullet}{may retreat @B {only 1} hex (alos applies to units stacked with it)}
+ @TagItem{@Star}{if all defending units are @I Dispersed :
+ @BulletList
+ @ListItem{the defender may @B not use @I CombatTactic}
+ @ListItem{the attacker may @B{disregard 1} attacker @B hit}
+ @RawEndList}
+ @TagItem{@Bullet}{@AlliedGS : @I Dispersed @I OutOfContact can't be taken as @I Reserve} # https://boardgamegeek.com/thread/2152674/article/31279171#31279171
+ @RawEndList /.6v}
+ @ListItem{@B @Underline OutOfFuel :
+ @BulletList
+ # https://boardgamegeek.com/thread/1451035/article/28979783#28979783
+ @ListItem{may @B not attack, move, retreat, advance, deploy from @I Reserve}
+ @ListItem{the attacker may @B{disregard 1} attacker @B hit}
+ @ListItem{@B cumulative with @I LowSupply and @I OutOfSupply}
+ @ListItem{do @B {not cumulate} with @I Isolated, the card is still discarded}
+ @RawEndList}
+ @EndList
+} }
+
+def @SupplyStates { @VCard {
+ @Title {@GS @VS Supply States}
+ /.5v
+ @BulletList
+ @ListItem{@B @Underline LowSupply :
+ @BulletList
+ @ListItem{@B no @I CombatTactic may be played in that unit's support.}
+ @ListItem{may @B not receive @I Replacements}
+ @ListItem{@German : may @B not @B exit the map}
+ @ListItem{@AlliedGS : may @B not lead an @B attack}
+ @RawEndList /.4v}
+ @ListItem{@B @Underline OutOfSupply @I LowSupply + :
+ @BulletList
+ @ListItem{may @B not @B attack or build an @B IP}
+ @ListItem{if @I mechanized may move @B {only 1} hex}
+ @ListItem{@I OutOfSupply only : attacker @B +1 @I CombatChit, @B {disregard 1} hit}
+ @RawEndList /.4v}
+ @ListItem{@B @Underline Isolated @I OutOfSupply + :
+ @BulletList
+ @ListItem{has @B {no ZOC} (even if in @City)}
+ @ListItem{may @B {not exit} an enemy @B ZOC}
+ @ListItem{@I infantry may move or retreat @B {only 1} hex}
+ @ListItem{@I mechanized may @B not move or retreat}
+ @ListItem{may @B {not enter} enemy @City or cross enemy @I Bridge}
+ @ListItem{does @B not affect the placement of enemy @I Reserve unit}
+ @ListItem{@Allied : may @B {not enter} an empty @I Westwall hex}
+ @ListItem{@AlliedGS : @I Isolated @I OutOfContact can't be taken as @I Reserve.} # FIXME can't find a reference
+ @ListItem{@I Isolated only : attacker @B +2 @I CombatChits, @B {disregard all} hits}
+ @RawEndList}
+ @EndList
+} }
+
+def @CombatTacticsGS { @VCard {
+ @Title {@GS Combat Tactics}
+ /.3v
+ @BulletList
+ #gap {0.3v}
+ @ListItem{@B Airpower @Sym slash @B Artillery : linked to @I {Combat Chit}}
+ @ListItem{@B @Atk @B {Assault Coordination} : inactive adjacent stacks may attack}
+ @ListItem{@A @Def @B {Bug Out}
+ @BulletList
+ @ListItem{@Day 16-18 odds are @Sym greaterequal 3:1 and @I HoldCheck fail : /.2v retreat @B 2 hexes, not @I Dispersed, attacker may advance}
+ @ListItem{@Day 19+ @B 3+ steps, not @I Surrounded : move highest @Char numbersign unit /.2v into the nearest empty in @I Supply not @I Proximate @I Position}
+ @RawEndList}
+ @ListItem{@B {Combat Engineers} @Sym slash @B Engineers :
+ @BulletList
+ @ListItem{@B attacker : @B +1 strength, remove @B IP} #, disregard @I {Combat Engineer}}
+ @ListItem{@B defender : place an @B IP if possible unless @I {Combat Engineer}}
+ @RawEndList}
+ @ListItem{@A @B {Corps Artillery} : like @I Artillery @B and draw a second card}
+ @ListItem{@G @B {Fixed Artillery} : @I Artillery within @B FAR from a @I Westwall}
+ @ListItem{@G @Atk @B {Inf Infiltration} : +@I Flanked (not in @City), -@B{1 hex}}
+ #@ListItem{@G @B {Infantry Infiltration} : attacker only, a non-City is considered @I Flanked, the attack is not considered a @B 1 hex attack}
+ @ListItem{@B {Panzer{@Sym slash}Tank Battalion} : @B +1 strength, + @I Armor}
+ @ListItem{@G @Atk @B {Press the Attack} : @B +1 @I {Combat Chit}}
+ @ListItem{@B {Reinforce Battle} : @B 1 stack that did not attack or move in the current @I Activation may move and participate in the combat
+ @BulletList
+ @ListItem{@B {@German defender} : strength : reinforcing @Sym lessequal defending}
+ @ListItem{@B @Allied : stack with lowest {@Char numbersign}, preserve @B Line, protect @B VP}
+ #@ListItem{@B @Allied : select the stack with lowest numbered units, preserving line and protecting VP hexes takes priority}
+ @RawEndList}
+ @ListItem{@A @Def @B Screen : max @I {Combat Chit} @B-2}
+ @EndList
+} }
+
+def @CombatTacticsVS { @VCard {
+ @Title {@VS Combat Tactics}
+ /.7v
+ @BulletList
+ gap {1v}
+ @ListItem{@B Airpower @Sym slash @B Artillery : linked to @I {Combat Chit}}
+ @ListItem{@B @Atk @B {Assault Coordination} : inactive adjacent stacks may attack}
+ @ListItem{@A @Def @B {Bug Out} : retreat @B 2 hexes, not @I Dispersed, /.2v attacker may advance}
+ @ListItem{@B {Combat Engineers} @Sym slash @B Engineers :
+ @BulletList
+ @ListItem{@B attacker : @B +1 strength, remove @B IP} #, disregard @I {Combat Engineer}}
+ @ListItem{@B defender : place an @B IP if possible unless @I {Combat Engineer}}
+ @RawEndList}
+ @ListItem{@A @B {Corps Artillery} : like @I Artillery @B but reshuffle if not empty}
+ @ListItem{@G @B {Fixed Artillery} : @I Artillery within @B FAR from a @I Westwall}
+ @ListItem{@G @Atk @B {Inf Infiltration} : +@I Flanked (not in @City), -@B{1 hex}}
+ #@ListItem{@G @B {Infantry Infiltration} : attacker only, a non-City is considered @I Flanked, the attack is not considered a @B 1 hex attack}
+ @ListItem{@G @B {Panzer Battalion} : @B +1 strength, + @I Armor}
+ @ListItem{@G @Atk @B {Press the Attack} : @B +1 @I {Combat Chit}}
+ @ListItem{@B {Reinforce Battle} : @B 1 stack that did not attack or move in the current @I Activation may move and participate in the combat}
+ @ListItem{@A @Def @B Screen : max @I {Combat Chit} @B-2}
+ @ListItem{@A @B {Tank Battalion} : @B +1 strength, + @I Armor}
+ @EndList
+} }
+
+def @Combat { @VCard {
+ @Title {@GS Combat Tactics @Char ampersand Chits}
+ #/.5v
+ @TaggedList
+ #gap {0.8v}
+ @TagItem{@Bullet}{@German @Atk : @Char numbersign @I Tactics {@Sym slash} Activation @B @Sym lessequal card @I CommandValue}
+ @TagItem{@Bullet}{@German @Def : @B 1 @I CombatTactic ... @B VDH @Atk @Char slash @Def : @Sym emptyset}
+ #@TagItem{@Bullet}{@German @B VDH : may not use @I CombatTactic}
+ @TagItem{@Star}{if @B 1+ @Allied are in in @I Supply, draw @B {1 card} :
+ @TaggedList
+ @TagItem{@Star}{@Def if card's @B{formation matches} any defending unit @B and /.2v @B {@Sym less 4} steps, in @I Communication, not in danger of @I Surround
+ @BulletList
+ @ListItem{add an @B {undetected defender} that @B matches the formation}
+ @ListItem{take it from @I Reserve @Sym arrowdblright @I OutOfContact @Sym arrowdblright lowest @Char numbersign}
+ @RawEndList}
+ @TagItem{@Bullet}{@Atk @Char slash @B otherwise use the @I CombatTactic if any}
+ @RawEndList}
+ @TagItem{@Bullet}{@B min @I {Combat Chit} : @Char numbersign @Def @B steps}
+ @TagItem{@Bullet}{@B max @I {Combat Chit} : @Char numbersign non-@Bracked @Atk @B units:
+ @BulletList
+ @ListItem{+1 for @B each @I CombatTactic played by the @Atk}
+ @ListItem{+1 for @B {each 3+} steps @Atk unit}
+ @ListItem{+1 if @B 1+ @Atk unit is @B Elite}
+ @ListItem{+1 if the @Def are @I OutOfSupply}
+ @ListItem{+2 if the @Def are @I Isolated}
+ @ListItem{-2 if the @Def played @I Tactic Screen}
+ @RawEndList}
+ @ListItem{@B{hit adjustments}:
+ @BulletList
+ @ListItem{@B {D-1} : @Def in @City, @B IP (remove it) or German in @I Westwall}
+ @ListItem{@B {A-1} : @Def are all @I Dispersed, @I OutOfSupply or @I OutOfFuel}
+ @ListItem{@B {A=@Sym emptyset} : @Def are all @I Isolated}
+ @RawEndList}
+ @EndList
+} }
+
+def @NextCard { @VCard {
+ @Title {@GS Title}
+ /.3v
+ @BulletList
+ @ListItem{@B {Something} :
+ @BulletList
+ @ListItem{Start
+ @BulletList
+ @ListItem{point A}
+ @ListItem{point B}
+ @RawEndList}
+ @RawEndList}
+ @EndList
+} }
+
+@Document
+@InitialSpace { lout }
+//
+@Text @Begin
+
+@PP
+@Display @Roadblocks
+@Display @Reserve
+@Display @States
+@Display @SupplyStates
+@Display @CombatTacticsGS
+@Display @CombatTacticsVS
+@Display @Combat
+@Display @NextCard
+
+@End @Text
diff --git a/EnemyActionArdennes/EAA-cards.pdf b/EnemyActionArdennes/EAA-cards.pdf
new file mode 100644
index 0000000..0a0676a
--- /dev/null
+++ b/EnemyActionArdennes/EAA-cards.pdf
Binary files differ
diff --git a/EnemyActionArdennes/Makefile b/EnemyActionArdennes/Makefile
new file mode 100644
index 0000000..24594cd
--- /dev/null
+++ b/EnemyActionArdennes/Makefile
@@ -0,0 +1,13 @@
+
+.SUFFIXES: .lou .pdf
+
+.lou.pdf:
+ lout -Z $< -o $@
+
+EAA-cards.pdf: EAA-cards.lou
+
+build: EAA-cards.pdf
+
+clean:
+ -@ rm EAA-cards.pdf
+