summaryrefslogtreecommitdiff
path: root/rules.js
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2024-07-27 13:02:23 +0200
committerTor Andersson <tor@ccxvii.net>2024-08-21 00:28:20 +0200
commit531bc6dee11f8026dbd140eeee8b2a37e224413a (patch)
treebc51ca656cac57dad37c6c5e57061b0607e47ae1 /rules.js
parent869e814ec023077469e8603b3a591cbb99a7b803 (diff)
downloadwashingtons-war-531bc6dee11f8026dbd140eeee8b2a37e224413a.tar.gz
play campaign as first card, choose pc action or event
Diffstat (limited to 'rules.js')
-rw-r--r--rules.js47
1 files changed, 25 insertions, 22 deletions
diff --git a/rules.js b/rules.js
index 1ed5c65..6ab8d63 100644
--- a/rules.js
+++ b/rules.js
@@ -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)