diff options
-rw-r--r-- | events.txt | 2 | ||||
-rw-r--r-- | play.html | 3 | ||||
-rw-r--r-- | play.js | 8 | ||||
-rw-r--r-- | rules.js | 34 |
4 files changed, 40 insertions, 7 deletions
@@ -604,7 +604,7 @@ CARD 114 - Transportation CARD 115 - Counter Strat # Remove one card that is “in effect for the remainder of the turn” and place it in the appropriate discard pile. - todo + counter_strat CARD 116 - National Focus # Add 2 :purple_or_yellow_cube or 2 :red_cube in one state of each region. @@ -214,6 +214,9 @@ div.persistent_box { } .persistent_card.support { background-color: var(--suf-85); } .persistent_card.opposition { background-color: var(--opp-85); } +.persistent_card.action { + box-shadow: 0 0 0 3px yellow; +} div.congress_box { position: absolute; @@ -634,8 +634,11 @@ function on_update() { // eslint-disable-line no-unused-vars for (let c of view[id] || []) { let elt = create("div", { className: `persistent_card ${CARDS[c].type}`, - innerHTML: sub_card_name(null, c) + innerHTML: sub_card_name(null, c), + my_card: c }) + elt.addEventListener("click", on_click_card) + elt.classList.toggle("action", is_card_enabled(c)) document.getElementById(id).appendChild(elt) } } @@ -758,9 +761,6 @@ function on_update() { // eslint-disable-line no-unused-vars action_button("pass", "Pass") action_button("done", "Done") action_button("undo", "Undo") - - // XXX - action_button("restart", "Restart") } build_user_interface() @@ -411,6 +411,10 @@ function gen_action(action, argument) { } } +function gen_action_card(c) { + gen_action("card", c) +} + function gen_action_region(r) { gen_action("region", r) } @@ -1085,12 +1089,17 @@ states.cleanup_phase = { function discard_persistent_card(cards, c) { log(`C${c} discarded.`) array_remove_item(cards, c) + + // TODO does it matter where we discard them? + // I see no value in having multiple discard piles. if (is_support_card(c)) { game.support_discard.push(c) } else if (is_opposition_card(c)) { game.opposition_discard.push(c) + } else if (game.active === SUF) { + game.support_discard.push(c) } else { - throw Error(`Unexpected card type ${c}`) + game.opposition_discard.push(c) } } @@ -2077,6 +2086,10 @@ function vm_todo() { vm_next() } +function vm_counter_strat() { + game.state = "vm_counter_strat" +} + function vm_draw_2_play_1_event() { log("TODO draw_2_play_1_event") vm_next() @@ -2632,6 +2645,23 @@ states.move_each_player_campaigner_free = { } } +states.vm_counter_strat = { + inactive: "remove a persistent event card.", + prompt() { + event_prompt("Select a persistent event card to discard.") + for (let c of game.persistent_turn) + gen_action_card(c) + + }, + card(c) { + push_undo() + discard_persistent_card(game.persistent_turn, c) + vm_next() + } +} + + + // #endregion @@ -3699,7 +3729,7 @@ CODE[114] = [ // Transportation ] CODE[115] = [ // Counter Strat - [ vm_todo ], + [ vm_counter_strat ], [ vm_return ], ] |