diff options
Diffstat (limited to 'rules.js')
-rw-r--r-- | rules.js | 39 |
1 files changed, 32 insertions, 7 deletions
@@ -267,6 +267,9 @@ const S38_WALDECK = find_card(38, "Waldeck") const S38_RETREAT_TO_NIVELLES = find_card(38, "Retreat to Nivelles") const S38_LUXEMBOURGS_HORSE = find_card(38, "Luxembourg's Horse") const S38_GOURNAYS_HORSE = find_card(38, "Gournay's Horse") +const S38_DUTCH_LEFT_FOOT = find_card(38, "Dutch Left Foot") +const S38_FRENCH_RIGHT = find_card(38, "French Right") +const S38_DUTCH_HORSE = find_card(38, "Dutch Horse") const S39_MARSAGLIA = find_scenario(39) const S39_CANNONS = find_card(39, "Cannons") @@ -760,11 +763,6 @@ function check_impossible_to_attack_victory() { function get_tactical_victory_points(p) { let n = game.lost[1-p] - if (game.scenario === S38_FLEURUS) { - if (p === 1) - n += get_sticks(S38_RETREAT_TO_NIVELLES) - } - if (game.scenario === S46_ROCOUX) { if (p === 0) n += get_sticks(S46_AUSTRIANS) @@ -1418,6 +1416,19 @@ function goto_roll_phase() { if (card_has_rule(c, "place_2_pink_if_dice") && has_any_dice_on_card(c)) game.place_max[PINK] = 2 */ } + + if (game.scenario === S38_FLEURUS) { + if (p === 1) { + if (get_sticks(S38_RETREAT_TO_NIVELLES)) { + if (game.starting_on_your_next_turn++) { + set_sticks(S38_RETREAT_TO_NIVELLES, get_sticks(S38_RETREAT_TO_NIVELLES) - 1) + game.lost[0] += 1 + if (check_victory()) + return + } + } + } + } } states.skip_action = { @@ -2616,6 +2627,15 @@ function update_attack1(direct) { } } + if (game.scenario === S38_FLEURUS) { + if (game.selected === S38_LUXEMBOURGS_HORSE && game.target === S38_DUTCH_LEFT_FOOT) { + game.hits += 1 + } + if (game.selected === S38_FRENCH_RIGHT && is_removed_from_play(S38_DUTCH_HORSE)) { + game.hits += 1 + } + } + if (game.scenario === S39_MARSAGLIA) { if (game.selected === S39_EUGENE) { if (has_any_dice_on_card(S39_CANNONS)) { @@ -2833,11 +2853,12 @@ function goto_command() { } if (game.scenario === S38_FLEURUS && game.selected === S38_WALDECK) { - remove_cubes(S38_RETREAT_TO_NIVELLES, 3) + remove_cubes(S38_RETREAT_TO_NIVELLES, 1) remove_dice(game.selected) - if (1 || !has_any_cubes_on_card(S38_RETREAT_TO_NIVELLES)) { + if (!has_any_cubes_on_card(S38_RETREAT_TO_NIVELLES)) { game.selected = S38_RETREAT_TO_NIVELLES game.state = "s38_retreat_to_nivelles_1" + game.starting_on_your_next_turn = 0 return } end_action_phase() @@ -3334,6 +3355,8 @@ function get_attack_hits(c, a) { case "1 hit per die (2 hits per die vs. Blenheim). 1 self per action.": case "1 hit per die (two per die vs. Villars's Left). 1 self per action.": case "1 hit per die versus Driesen. Two hits per die versus Retzow.": + case "1 hit per die. 1 self per action. Does 1 extra hit versus Dutch Left Foot.": + case "1 hit per die. 1 self per action. Does 1 extra hit if Dutch Horse Routed.": case "1 hit per die. 1 self per action. If reduced to one stick, no self hits.": case "1 hit per die. 1 self per action. You CHOOSE the target.": return count_dice_on_card(c) @@ -3390,6 +3413,8 @@ function get_attack_self(c, a) { case "1 hit per die (2 hits per die vs. Blenheim). 1 self per action.": case "1 hit per die (two per die vs. Villars's Left). 1 self per action.": case "1 hit per die versus Driesen. Two hits per die versus Retzow.": + case "1 hit per die. 1 self per action. Does 1 extra hit versus Dutch Left Foot.": + case "1 hit per die. 1 self per action. Does 1 extra hit if Dutch Horse Routed.": case "1 hit per die. 1 self per action. You CHOOSE the target.": case "1 hit per pair. 1 self per action.": case "1 hit, PLUS 1 hit per die. 1 self per action.": |