diff options
-rw-r--r-- | const.js | 6 | ||||
-rw-r--r-- | play.css | 7 | ||||
-rw-r--r-- | play.js | 43 | ||||
-rw-r--r-- | rules.js | 18 |
4 files changed, 52 insertions, 22 deletions
@@ -30,9 +30,9 @@ const PIECE_FACTION_TYPE_NAME = [ [ null, null, "Invader" ] ] const PIECE_FACTION_TYPE_SYMBOL = [ - [ null, "EDS", "CDS" ], - [ null, "EBK", null ], - [ null, "EVE", null ], + [ "DDS", "EDS", "CDS" ], + [ "DBK", "EBK", null ], + [ "DVE", "EVE", null ], [ null, null, "CMI" ] ] const LAST_CAVALRY = 9 @@ -167,6 +167,7 @@ img.f { #log .h2.ve { background-color: #e4ba6e } #log .h2.mi { background-color: #ebc9be } +#log img.d { height: 15px; vertical-align: -3px } #log img.c { height: 15px; vertical-align: -3px } #log img.f { height: 16px; vertical-align: -2px } #log img.h { height: 17px; vertical-align: -4px; margin: 0px 2px; } @@ -651,8 +652,11 @@ path.campaign { stroke: black; stroke-dasharray: 4 4; } .card.card_43{background-image:url(cards100/Mongol_Invasion_VE_front.jpg)} .card.card_44{background-image:url(cards100/Mongol_Invasion_VE_front.jpg)} .card.card_45{background-image:url(cards100/Succession1_front.jpg)} +.card.card_45_back{background-image:url(cards100/Succession1_back.jpg)} .card.card_46{background-image:url(cards100/Succession2_front.jpg)} +.card.card_46_back{background-image:url(cards100/Succession2_back.jpg)} .card.card_47{background-image:url(cards100/Succession3_front.jpg)} +.card.card_47_back{background-image:url(cards100/Succession3_back.jpg)} .card.card_48{background-image:url(cards100/Timurid_Empire_front.jpg)} .card.card_49{background-image:url(cards100/Timurid_Empire_front.jpg)} .card.card_dynasty_khalji{background-image:url(cards100/Dynasty_front.jpg)} @@ -705,8 +709,11 @@ path.campaign { stroke: black; stroke-dasharray: 4 4; } .card.card_43{background-image:url(cards200/Mongol_Invasion_VE_front.jpg)} .card.card_44{background-image:url(cards200/Mongol_Invasion_VE_front.jpg)} .card.card_45{background-image:url(cards200/Succession1_front.jpg)} +.card.card_45_back{background-image:url(cards200/Succession1_back.jpg)} .card.card_46{background-image:url(cards200/Succession2_front.jpg)} +.card.card_46_back{background-image:url(cards200/Succession2_back.jpg)} .card.card_47{background-image:url(cards200/Succession3_front.jpg)} +.card.card_47_back{background-image:url(cards200/Succession3_back.jpg)} .card.card_48{background-image:url(cards200/Timurid_Empire_front.jpg)} .card.card_49{background-image:url(cards200/Timurid_Empire_front.jpg)} .card.card_dynasty_khalji{background-image:url(cards200/Dynasty_front.jpg)} @@ -1028,18 +1028,32 @@ function on_update() { update_player_info(NAME_VE, view.vp[2]) ui.this_card.className = make_card_class_name(view.deck[0]) - if (view.deck[1] > 0) { - ui.deck_outer.className = "card card_back" - ui.deck_size.textContent = `${view.deck[1]}` - } else { + if (view.deck[1] === 0) { ui.deck_outer.className = "hide" + } else { + if (view.deck[2] === 0) + ui.deck_outer.className = "card card_back" + else if (view.deck[2] === 1) + ui.deck_outer.className = "card card_45_back" + else if (view.deck[2] === 2) + ui.deck_outer.className = "card card_46_back" + else if (view.deck[2] === 3) + ui.deck_outer.className = "card card_47_back" + + ui.deck_size.textContent = `${view.deck[1]}` } - if (view.deck[2][1] !== null) - ui.of_gods_and_kings.className = make_card_class_name(view.deck[2][0]) + if (view.deck[3][1] !== null) + ui.of_gods_and_kings.className = make_card_class_name(view.deck[3][0]) else ui.of_gods_and_kings.className = "hide" + // Dynasty card + if (view.succ > 0) + ui.dynasty_card.className = "card card_dynasty_tughlaq" + else + ui.dynasty_card.className = "card card_dynasty_khalji" + ui.this_card.classList.toggle("action", !!(view.actions && view.actions.event === 1)) ui.dynasty_card.classList.toggle("action", !!(view.actions && view.actions.dynasty_card === 1)) ui.shaded_event.classList.toggle("action", !!(view.actions && view.actions.shaded === 1)) @@ -1047,12 +1061,6 @@ function on_update() { ui.gk_shaded_event.classList.toggle("action", !!(view.actions && view.actions.gk_shaded === 1)) ui.gk_unshaded_event.classList.toggle("action", !!(view.actions && view.actions.gk_unshaded === 1)) - // Dynasty card - if (view.succ > 0) - ui.dynasty_card.className = "card card_dynasty_tughlaq" - else - ui.dynasty_card.className = "card card_dynasty_khalji" - layout_score() let items = [ ] @@ -1304,7 +1312,7 @@ function on_focus_unshaded_event() { } function on_focus_gk_unshaded_event() { - let c = view.deck[2][0] + let c = view.deck[3][0] if (c > 0) { let f = data.card_flavor[c] if (f) @@ -1322,7 +1330,7 @@ function on_focus_shaded_event() { } function on_focus_gk_shaded_event() { - let c = view.deck[2][0] + let c = view.deck[3][0] if (c > 0) { ui.status.textContent = data.card_title[c] + " - " + data.card_flavor_shaded[c] } @@ -1366,6 +1374,10 @@ function sub_space(match, p1) { return `<span class="tip" onmouseenter="on_focus_space_tip(${x})" onmouseleave="on_blur_space_tip(${x})" onmousedown="on_click_space_tip(${x})">${n}</span>` } +const D_DS = '<img class="d" src="pieces/ds_disk.svg">' +const D_BK = '<img class="d" src="pieces/bk_disk.svg">' +const D_VE = '<img class="d" src="pieces/ve_disk.svg">' + const E_DS = '<img class="h" src="pieces/ds_governor.svg">' const E_BK = '<img class="h" src="pieces/bk_amir.svg">' const E_VE = '<img class="h" src="pieces/ve_raja.svg">' @@ -1394,6 +1406,9 @@ function on_log(text) { text = text.replace(/</g, "<") text = text.replace(/>/g, ">") + text = text.replace(/\bDDS\b/g, D_DS) + text = text.replace(/\bDBK\b/g, D_BK) + text = text.replace(/\bDVE\b/g, D_VE) text = text.replace(/\bCDS\b/g, C_DS) text = text.replace(/\bCMI\b/g, C_MI) text = text.replace(/\bEDS\b/g, E_DS) @@ -106,6 +106,7 @@ exports.view = function (state, role) { let this_card = game.deck[0] | 0 let deck_size = Math.max(0, game.deck.length - 1) + let card_back = next_card_back() view = { state: game.state, @@ -117,7 +118,7 @@ exports.view = function (state, role) { vp: game.vp, resources: game.resources, inf: game.inf, - deck: [ this_card, deck_size, game.of_gods_and_kings ], + deck: [ this_card, deck_size, card_back, game.of_gods_and_kings ], cavalry: game.cavalry, cylinder: game.cylinder, pieces: game.pieces, @@ -188,7 +189,6 @@ exports.view = function (state, role) { else view.actions.undo = 0 } - } save_game() @@ -357,6 +357,14 @@ function this_card() { return game.deck[0] } +function next_card_back() { + if (game.deck.length > 1) { + if (game.deck[1] >= 45 && game.deck[1] <= 47) + return game.deck[1] - 44 + } + return 0 +} + function goto_card() { if (this_card() >= 37 && this_card() <= 40) { log_h1("Mongol Invaders C" + this_card()) @@ -5845,9 +5853,9 @@ const PIECE_FACTION_TYPE_NAME = [ [ null, null, "Invader" ] ] const PIECE_FACTION_TYPE_SYMBOL = [ - [ null, "EDS", "CDS" ], - [ null, "EBK", null ], - [ null, "EVE", null ], + [ "DDS", "EDS", "CDS" ], + [ "DBK", "EBK", null ], + [ "DVE", "EVE", null ], [ null, null, "CMI" ] ] const LAST_CAVALRY = 9 |