diff options
Diffstat (limited to 'rules.js')
-rw-r--r-- | rules.js | 47 |
1 files changed, 25 insertions, 22 deletions
@@ -122,6 +122,10 @@ var events = {} var game var view +function card_name(c) { + return "\u201c" + CARDS[c].title + "\u201d" +} + /* SETUP */ function setup_game(seed) { @@ -1127,23 +1131,24 @@ states.british_declare_first = { view.actions.pass = 1 for (let c of CAMPAIGN_CARDS) { if (game.b_hand.includes(c)) { - gen_action_card("card_campaign", c) + gen_action_card("card", c) } } }, - card_campaign(c) { + card(c) { + push_undo() clear_flag(F_CONGRESS_WAS_DISPERSED) logp("went first by playing a campaign card") - game.active = P_BRITAIN - goto_campaign(c) + game.card = c + game.state = "strategy_phase_event" }, pass() { if (has_flag(F_CONGRESS_WAS_DISPERSED)) game.active = P_BRITAIN else game.active = P_AMERICA - game.state = "choose_first_player" clear_flag(F_CONGRESS_WAS_DISPERSED) + game.state = "choose_first_player" }, } @@ -1221,7 +1226,6 @@ states.strategy_phase_OLD = { card_campaign(c) { game.did_discard_event = 0 clear_queue() - goto_campaign(c) }, card_play_event(c) { push_undo() @@ -1307,7 +1311,7 @@ states.strategy_phase = { states.exchange = { inactive: "to play a strategy card", prompt() { - view.prompt = "Exchange an OPS card for the event card." + view.prompt = "Exchange an OPS card for " + card_name(game.did_discard_event) + "." view.selected_card = game.did_discard_event for (let c of active_hand()) if (can_exchange_for_discard(c)) @@ -1325,16 +1329,16 @@ states.strategy_phase_ops = { prompt() { let c = game.card view.selected_card = game.card - view.prompt = "Use " + CARDS[c].title + "." - if (can_exchange_for_discard(c)) - view.actions.exchange = 1 + view.prompt = "Use " + card_name(c) + "." +// if (can_exchange_for_discard(c)) +// view.actions.exchange = 1 if (can_activate_general(c)) view.actions.activate = 1 if (can_play_reinforcements()) view.actions.reinforce = 1 - if (game.active === P_AMERICA && game.a_queue < 2 && CARDS[c].count < 3) + if (game.active === P_AMERICA && game.a_queue + CARDS[c].count < 3) view.actions.queue = 1 - if (game.active === P_BRITAIN && game.b_queue < 2 && CARDS[c].count < 3) + if (game.active === P_BRITAIN && game.b_queue + CARDS[c].count < 3) view.actions.queue = 1 view.actions.pc_action = 1 }, @@ -1383,7 +1387,7 @@ states.strategy_phase_event = { prompt() { let c = game.card view.selected_card = game.card - view.prompt = "Use event card." + view.prompt = "Use " + card_name(c) + "." view.actions.event = 0 view.actions.pc_action = 0 @@ -1395,8 +1399,8 @@ states.strategy_phase_event = { view.actions.pc_action = 0 break case "campaign": - view.actions.campaign = 1 - view.actions.pc_action = 0 + view.actions.event = 1 + view.actions.pc_action = 1 break case "british-event": case "british-event-or-battle": @@ -1707,7 +1711,7 @@ states.ops_british_reinforcements_who = { no_general() { push_undo() game.state = "ops_british_reinforcements_where" - delete game.who + game.who = NOBODY }, } @@ -1750,7 +1754,7 @@ states.ops_american_reinforcements_who = { no_general() { push_undo() game.state = "ops_american_reinforcements_where" - delete game.who + game.who = NOBODY }, } @@ -2582,6 +2586,7 @@ states.play_attacker_battle_card_confirm = { view.prompt = "Attack: Played card for +2 DRM." else view.prompt = "Attack: Discarded card for +1 DRM." + view.actions.next = 1 }, next() { clear_undo() @@ -3083,12 +3088,12 @@ function end_battle() { end_move() } -/* CAMPAIGN */ +/* EVENTS */ -function goto_campaign(c) { +events.campaign = function (c, card) { play_card(c) game.state = "campaign" - game.campaign = CARDS[c].count + game.campaign = card.count if (game.active === P_BRITAIN) set_flag(F_LANDING_PARTY) else @@ -3097,8 +3102,6 @@ function goto_campaign(c) { game.state = "ops_general_who" } -/* EVENTS */ - events.the_war_ends = function (c, card) { logp("played #" + c) log("The war will end in " + card.year) |