summaryrefslogtreecommitdiff
path: root/rules.js
diff options
context:
space:
mode:
Diffstat (limited to 'rules.js')
-rw-r--r--rules.js40
1 files changed, 12 insertions, 28 deletions
diff --git a/rules.js b/rules.js
index bac424f..2760993 100644
--- a/rules.js
+++ b/rules.js
@@ -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