From c5f35f99aa9605a7baf43d6c407b126a51e878f8 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Sat, 9 Dec 2023 17:37:39 +0100 Subject: Gaines's Mill. --- rules.js | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/rules.js b/rules.js index 7316a03..7862704 100644 --- a/rules.js +++ b/rules.js @@ -204,6 +204,12 @@ const S37_FRENCH_TROOPS = find_card(37, "French Troops") const S37_SOIMONOFF = find_card(37, "Soimonoff") const S37_THE_FOG = find_card(37, "The Fog") +const S3201_GAINES_MILL = find_scenario(3201) +const S3201_JACKSON = find_card(3201, "Jackson") +const S3201_DH_HILL = find_card(3201, "D.H. Hill") +const S3201_AP_HILL = find_card(3201, "A.P. Hill") +const S3201_LONGSTREET = find_card(3201, "Longstreet") + // === SETUP === exports.setup = function (seed, scenario, options) { @@ -668,7 +674,12 @@ function can_place_dice(c) { } } - // TODO: 91A Jackson - may only place dice if D.H. Hill has dice + if (game.scenario === S3201_GAINES_MILL) { + if (c === S3201_JACKSON) { + if (!has_any_dice_on_card(S3201_DH_HILL)) + return false + } + } return pred(c) } @@ -1140,13 +1151,21 @@ function can_take_action(c, a) { if (game.scenario === S8_BROOKLYN_HEIGHTS) { if (c === S8_CLINTON) { - // Clinton can only attack if both Grant and Hessians have dice on them. - if (!(has_any_dice_on_card(S8_GRANT) && has_any_dice_on_card(S8_HESSIANS))) + // Clinton - may only attack if both Grant and Hessians have dice on them. + if (!has_any_dice_on_card(S8_GRANT) || !has_any_dice_on_card(S8_HESSIANS)) return false } } - // TODO: 91A Jackson - may only attack if D.H. Hill and one other formation have dice + if (game.scenario === S3201_GAINES_MILL) { + if (c === S3201_JACKSON) { + // Jackson - may only attack if D.H. Hill and one other formation have dice + if (!has_any_dice_on_card(S3201_DH_HILL)) + return false + if (!has_any_dice_on_card(S3201_AP_HILL) && !has_any_dice_on_card(S3201_LONGSTREET)) + return false + } + } if (a.type === "Bombard" || a.type === "Attack" || a.type === "Command") { if (data.cards[c].special) -- cgit v1.2.3