From 910f4ce43eb2ad1c0078473ff37d13eb7a46a331 Mon Sep 17 00:00:00 2001 From: Mischa Untaga <99098079+MischaU8@users.noreply.github.com> Date: Sat, 2 Dec 2023 16:50:46 +0100 Subject: show asterisk for states that have claimable cards --- play.js | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'play.js') diff --git a/play.js b/play.js index a57676f..c136495 100644 --- a/play.js +++ b/play.js @@ -48,6 +48,7 @@ let ui = { cards: [ null ], us_states: [ null ], regions: [ null ], + labels: {}, } // :r !python3 tools/genlayout.py @@ -111,6 +112,10 @@ const LAYOUT = { const US_STATES_LAYOUT = [ null ] const REGIONS_LAYOUT = [ null ] +function find_us_state(name) { + return US_STATES.findIndex((x) => x && x.name === name) +} + // bits // RED cubes (6 bits), YELLOW cubes (7 bits), PURPLE cubes (7 bits), RED_X (1 bit), GREEN_CHECK (1 bit), @@ -409,12 +414,16 @@ function build_user_interface() { } for (let s = 1; s <= us_states_count; ++s) { - let us_state_css = US_STATES[s].code - elt = ui.us_states[s] = document.querySelector(`#map #${us_state_css}`) + let us_state_code = US_STATES[s].code + elt = ui.us_states[s] = document.querySelector(`#map #${us_state_code}`) elt.my_us_state = s elt.addEventListener("mousedown", on_click_us_state) elt.addEventListener("mouseenter", on_focus_us_state) elt.addEventListener("mouseleave", on_blur) + + let label = document.getElementById("label_" + us_state_code) + if (label) + ui.labels[us_state_code] = label } ui.campaigners = [ @@ -676,8 +685,11 @@ function on_update() { // eslint-disable-line no-unused-vars for (let c of view.opposition_claimed) document.getElementById("opposition_claimed").appendChild(ui.cards[c]) - for (let c of view.states_draw) + let claimable = new Set() + for (let c of view.states_draw) { document.getElementById("states_draw").appendChild(ui.cards[c]) + claimable.add(find_us_state(CARDS[c].name)) + } for (let c of view.strategy_draw) document.getElementById("strategy_draw").appendChild(ui.cards[c]) @@ -766,6 +778,8 @@ function on_update() { // eslint-disable-line no-unused-vars } } ui.us_states[i].classList.toggle("selected", i === view.selected_us_state) + if (US_STATES[i].code in ui.labels) + ui.labels[US_STATES[i].code].classList.toggle("claimable", claimable.has(i)) } ui.pieces.replaceChildren(pieces) -- cgit v1.2.3