diff options
Diffstat (limited to 'rules.js')
-rw-r--r-- | rules.js | 40 |
1 files changed, 12 insertions, 28 deletions
@@ -1137,8 +1137,8 @@ function reveal_cards() { game.p2 = POMPEIUS } - // Tournament rule: Caesar always goes first on the first turn of the game. - if (game.year === 705 && game.turn === 1 && game.tournament) { + // Caesar always goes first on the first turn of the game. + if (game.year === 705 && game.turn === 1) { if (game.p1 !== CAESAR) { game.p1 = CAESAR game.p2 = POMPEIUS @@ -1227,12 +1227,12 @@ states.jupiter = { prompt: function (view, current) { if (is_inactive_player(current)) return view.prompt = "Waiting for " + game.active + "..." - view.prompt = "Jupiter: Choose one enemy army adjacent to a friendly city." + view.prompt = "Jupiter: Choose an enemy city adjacent to a friendly city." for (let s = first_map_space; s < space_count; ++s) { if (is_friendly_city(s)) { for (let to of SPACES[s].exits) if (is_enemy_city(to) || is_contested_city(to)) - gen_action(view, 'secret', to) + gen_action_space(view, to) } } gen_action_pass(view, "Pass") @@ -1246,20 +1246,6 @@ states.jupiter = { let i = random(list.length) jupiter_block(list[i]) }, - secret: function (args) { - let [where, color] = args - /* pick a random block of the same color as the selected block */ - if (color === "Cleopatra") { - jupiter_block(B_CLEOPATRA) - } else { - let list = [] - for (let b = 0; b < block_count; ++b) - if (game.location[b] === where && block_original_owner(b) === color) - list.push(b) - let i = random(list.length) - jupiter_block(list[i]) - } - }, pass: function () { end_player_turn() }, @@ -1297,9 +1283,14 @@ states.vulcan = { log("Vulcan struck #" + city + "!") game.where = city game.vulcan = [] - for (let b = 0; b < block_count; ++b) - if (game.location[b] === city) + for (let b = 0; b < block_count; ++b) { + if (game.location[b] === city) { + // Exception: Cleopatra at strength 1 is not affected. + if (b === B_CLEOPATRA && game.steps[b] === 1) + continue game.vulcan.push(b) + } + } game.active = enemy(game.active) game.state = 'apply_vulcan' }, @@ -1315,9 +1306,7 @@ states.apply_vulcan = { }, block: function (who) { reduce_block(who) - // uh-oh! cleopatra switched sides! - if (is_contested_city(game.where)) - set_attacker(game.where, game.active) + // NOTE: Cleopatra cannot switch sides in 2nd edition remove_from_array(game.vulcan, who) if (game.vulcan.length === 0) { delete game.vulcan @@ -2643,11 +2632,6 @@ exports.setup = function (seed, scenario, options) { log(".h1 " + scenario) logbr() - if (options.tournament) { - log("Tournament rule: Caesar is the first player on the very first turn of the game.") - game.tournament = 1 - } - if (options.max_2_events) { log("At most 2 events per hand.") game.max_2_events = 1 |