summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2025-02-23 18:37:17 +0100
committerTor Andersson <tor@ccxvii.net>2025-02-27 17:10:32 +0100
commit4a3b2a010da17959766a4c4c58a04c33c398c422 (patch)
treeafcb8f856d587f4c476ef9c5f4dfa1db2d71fb3b
parent2e7093f9e981832aaeeeb992d0d988959ac51d91 (diff)
downloadland-and-freedom-4a3b2a010da17959766a4c4c58a04c33c398c422.tar.gz
xxx
-rw-r--r--data.js4
-rw-r--r--images/factions/communists.png (renamed from images/factions/communitsts.png)bin33854 -> 33854 bytes
-rw-r--r--info/rules.html2
-rw-r--r--land-and-freedom.css230
-rw-r--r--land-and-freedom.scss16
-rw-r--r--play.html18
-rw-r--r--play.js6
-rw-r--r--play2.css577
-rw-r--r--play2.js242
-rw-r--r--rules.js8
10 files changed, 962 insertions, 141 deletions
diff --git a/data.js b/data.js
index 8c86144..ece18ee 100644
--- a/data.js
+++ b/data.js
@@ -1,7 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.LIBERTY_OR_COLLECTIVIZATION = exports.COMMUNIST_EXTRA_HERO_POINT = exports.ANARCHIST_EXTRA_HERO_POINT = exports.NORTHERN = exports.SOUTHERN = exports.ARAGON = exports.MADRID = exports.ORGANIZATION_MEDALLION_ID = exports.ARCHIVES_MEDALLION_ID = exports.VOLUNTEERS_MEDALLION_ID = exports.INTELLIGENCE_MEDALLION_ID = exports.PROPAGANDA_MEDALLION_ID = exports.STRATEGY_MEDALLION_ID = exports.FRONTS = exports.DEFEAT = exports.VICTORY = exports.TRASH = exports.TOWARDS_CENTER = exports.AWAY_FROM_CENTER = exports.SELF = exports.PLAYER_WITH_MOST_HERO_POINTS = exports.OTHER_PLAYERS = exports.ON = exports.OFF = exports.TEAMWORK_BONUS = exports.MORALE_BONUS = exports.FOREIGN_AID = exports.SOVIET_SUPPORT = exports.INITIATIVE_PLAYER = exports.GOVERNMENT = exports.COLLECTIVIZATION = exports.CLOSEST_TO_VICTORY = exports.CLOSEST_TO_DEFEAT = exports.LIBERTY = exports.ANY = exports.MODERATES_ID = exports.FASCIST_ID = exports.COMMUNISTS_ID = exports.ANARCHISTS_ID = exports.MODERATE = exports.COMMUNIST = exports.ANARCHIST = exports.ALL_PLAYERS = void 0;
-exports.create_effect = create_effect;
+exports.LIBERTY_OR_COLLECTIVIZATION = exports.COMMUNIST_EXTRA_HERO_POINT = exports.ANARCHIST_EXTRA_HERO_POINT = exports.NORTHERN = exports.SOUTHERN = exports.ARAGON = exports.MADRID = exports.ORGANIZATION_MEDALLION_ID = exports.ARCHIVES_MEDALLION_ID = exports.VOLUNTEERS_MEDALLION_ID = exports.INTELLIGENCE_MEDALLION_ID = exports.PROPAGANDA_MEDALLION_ID = exports.STRATEGY_MEDALLION_ID = exports.FRONTS = exports.DEFEAT = exports.VICTORY = exports.TRASH = exports.TOWARDS_CENTER = exports.AWAY_FROM_CENTER = exports.SELF = exports.PLAYER_WITH_MOST_HERO_POINTS = exports.OTHER_PLAYERS = exports.ON = exports.OFF = exports.TEAMWORK_BONUS = exports.MORALE_BONUS = exports.FOREIGN_AID = exports.SOVIET_SUPPORT = exports.INITIATIVE_PLAYER = exports.GOVERNMENT = exports.COLLECTIVIZATION = exports.CLOSEST_TO_VICTORY = exports.CLOSEST_TO_DEFEAT = exports.LIBERTY = exports.ANY = exports.MODERATES_ID = exports.FASCIST_ID = exports.COMMUNISTS_ID = exports.ANARCHISTS_ID = exports.MODERATE = exports.COMMUNIST = exports.ANARCHIST = exports.ALL_PLAYERS = exports.create_effect = void 0;
const LIBERTY = 0;
exports.LIBERTY = LIBERTY;
const COLLECTIVIZATION = 1;
@@ -96,6 +95,7 @@ function create_effect(type, target, value, faction) {
faction,
};
}
+exports.create_effect = create_effect;
const data = {
cards: [
{},
diff --git a/images/factions/communitsts.png b/images/factions/communists.png
index ff845b4..ff845b4 100644
--- a/images/factions/communitsts.png
+++ b/images/factions/communists.png
Binary files differ
diff --git a/info/rules.html b/info/rules.html
index 29b34df..b2704c0 100644
--- a/info/rules.html
+++ b/info/rules.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
-<title>rules</title>
+<title>Land and Freedom Rulebook</title>
<link rel="stylesheet" href="/fonts/fonts.css">
<style>
body{background-color:slategray}
diff --git a/land-and-freedom.css b/land-and-freedom.css
index 0fb77dc..49b6896 100644
--- a/land-and-freedom.css
+++ b/land-and-freedom.css
@@ -4,26 +4,26 @@ main {
/* MAP */
#mapwrap {
- width: 1000px;
- height: 850px;
+ width: 1584px;
+ height: 1224px;
box-shadow: 1px 2px 4px rgba(0, 0, 0, 0.2666666667);
}
#map {
background-repeat: no-repeat;
background-size: 100% 100%;
- width: 1000px;
- height: 850px;
+ width: 1584px;
+ height: 1224px;
overflow: clip;
}
#map {
- background-image: url(images/map75.png);
+ background-image: url(images/map72.png);
}
@media (min-resolution: 97dpi) {
#map {
- background-image: url(images/map100.png);
+ background-image: url(images/map144.png);
}
}
#current_events .card:last-child {
@@ -120,6 +120,8 @@ main {
}
.panel {
+ min-width: 1580px;
+ max-width: 1580px;
min-width: 1271px;
max-width: 1271px;
background-color: #58641d;
@@ -239,435 +241,435 @@ main {
}
.card[data-card-id="1"] {
- background-image: url("images/cards100/card_1.png");
+ background-image: url("images/cards72/card_1.png");
}
.card[data-card-id="2"] {
- background-image: url("images/cards100/card_2.png");
+ background-image: url("images/cards72/card_2.png");
}
.card[data-card-id="3"] {
- background-image: url("images/cards100/card_3.png");
+ background-image: url("images/cards72/card_3.png");
}
.card[data-card-id="4"] {
- background-image: url("images/cards100/card_4.png");
+ background-image: url("images/cards72/card_4.png");
}
.card[data-card-id="5"] {
- background-image: url("images/cards100/card_5.png");
+ background-image: url("images/cards72/card_5.png");
}
.card[data-card-id="6"] {
- background-image: url("images/cards100/card_6.png");
+ background-image: url("images/cards72/card_6.png");
}
.card[data-card-id="7"] {
- background-image: url("images/cards100/card_7.png");
+ background-image: url("images/cards72/card_7.png");
}
.card[data-card-id="8"] {
- background-image: url("images/cards100/card_8.png");
+ background-image: url("images/cards72/card_8.png");
}
.card[data-card-id="9"] {
- background-image: url("images/cards100/card_9.png");
+ background-image: url("images/cards72/card_9.png");
}
.card[data-card-id="10"] {
- background-image: url("images/cards100/card_10.png");
+ background-image: url("images/cards72/card_10.png");
}
.card[data-card-id="11"] {
- background-image: url("images/cards100/card_11.png");
+ background-image: url("images/cards72/card_11.png");
}
.card[data-card-id="12"] {
- background-image: url("images/cards100/card_12.png");
+ background-image: url("images/cards72/card_12.png");
}
.card[data-card-id="13"] {
- background-image: url("images/cards100/card_13.png");
+ background-image: url("images/cards72/card_13.png");
}
.card[data-card-id="14"] {
- background-image: url("images/cards100/card_14.png");
+ background-image: url("images/cards72/card_14.png");
}
.card[data-card-id="15"] {
- background-image: url("images/cards100/card_15.png");
+ background-image: url("images/cards72/card_15.png");
}
.card[data-card-id="16"] {
- background-image: url("images/cards100/card_16.png");
+ background-image: url("images/cards72/card_16.png");
}
.card[data-card-id="17"] {
- background-image: url("images/cards100/card_17.png");
+ background-image: url("images/cards72/card_17.png");
}
.card[data-card-id="18"] {
- background-image: url("images/cards100/card_18.png");
+ background-image: url("images/cards72/card_18.png");
}
.card[data-card-id="19"] {
- background-image: url("images/cards100/card_19.png");
+ background-image: url("images/cards72/card_19.png");
}
.card[data-card-id="20"] {
- background-image: url("images/cards100/card_20.png");
+ background-image: url("images/cards72/card_20.png");
}
.card[data-card-id="21"] {
- background-image: url("images/cards100/card_21.png");
+ background-image: url("images/cards72/card_21.png");
}
.card[data-card-id="22"] {
- background-image: url("images/cards100/card_22.png");
+ background-image: url("images/cards72/card_22.png");
}
.card[data-card-id="23"] {
- background-image: url("images/cards100/card_23.png");
+ background-image: url("images/cards72/card_23.png");
}
.card[data-card-id="24"] {
- background-image: url("images/cards100/card_24.png");
+ background-image: url("images/cards72/card_24.png");
}
.card[data-card-id="25"] {
- background-image: url("images/cards100/card_25.png");
+ background-image: url("images/cards72/card_25.png");
}
.card[data-card-id="26"] {
- background-image: url("images/cards100/card_26.png");
+ background-image: url("images/cards72/card_26.png");
}
.card[data-card-id="27"] {
- background-image: url("images/cards100/card_27.png");
+ background-image: url("images/cards72/card_27.png");
}
.card[data-card-id="28"] {
- background-image: url("images/cards100/card_28.png");
+ background-image: url("images/cards72/card_28.png");
}
.card[data-card-id="29"] {
- background-image: url("images/cards100/card_29.png");
+ background-image: url("images/cards72/card_29.png");
}
.card[data-card-id="30"] {
- background-image: url("images/cards100/card_30.png");
+ background-image: url("images/cards72/card_30.png");
}
.card[data-card-id="31"] {
- background-image: url("images/cards100/card_31.png");
+ background-image: url("images/cards72/card_31.png");
}
.card[data-card-id="32"] {
- background-image: url("images/cards100/card_32.png");
+ background-image: url("images/cards72/card_32.png");
}
.card[data-card-id="33"] {
- background-image: url("images/cards100/card_33.png");
+ background-image: url("images/cards72/card_33.png");
}
.card[data-card-id="34"] {
- background-image: url("images/cards100/card_34.png");
+ background-image: url("images/cards72/card_34.png");
}
.card[data-card-id="35"] {
- background-image: url("images/cards100/card_35.png");
+ background-image: url("images/cards72/card_35.png");
}
.card[data-card-id="36"] {
- background-image: url("images/cards100/card_36.png");
+ background-image: url("images/cards72/card_36.png");
}
.card[data-card-id="37"] {
- background-image: url("images/cards100/card_37.png");
+ background-image: url("images/cards72/card_37.png");
}
.card[data-card-id="38"] {
- background-image: url("images/cards100/card_38.png");
+ background-image: url("images/cards72/card_38.png");
}
.card[data-card-id="39"] {
- background-image: url("images/cards100/card_39.png");
+ background-image: url("images/cards72/card_39.png");
}
.card[data-card-id="40"] {
- background-image: url("images/cards100/card_40.png");
+ background-image: url("images/cards72/card_40.png");
}
.card[data-card-id="41"] {
- background-image: url("images/cards100/card_41.png");
+ background-image: url("images/cards72/card_41.png");
}
.card[data-card-id="42"] {
- background-image: url("images/cards100/card_42.png");
+ background-image: url("images/cards72/card_42.png");
}
.card[data-card-id="43"] {
- background-image: url("images/cards100/card_43.png");
+ background-image: url("images/cards72/card_43.png");
}
.card[data-card-id="44"] {
- background-image: url("images/cards100/card_44.png");
+ background-image: url("images/cards72/card_44.png");
}
.card[data-card-id="45"] {
- background-image: url("images/cards100/card_45.png");
+ background-image: url("images/cards72/card_45.png");
}
.card[data-card-id="46"] {
- background-image: url("images/cards100/card_46.png");
+ background-image: url("images/cards72/card_46.png");
}
.card[data-card-id="47"] {
- background-image: url("images/cards100/card_47.png");
+ background-image: url("images/cards72/card_47.png");
}
.card[data-card-id="48"] {
- background-image: url("images/cards100/card_48.png");
+ background-image: url("images/cards72/card_48.png");
}
.card[data-card-id="49"] {
- background-image: url("images/cards100/card_49.png");
+ background-image: url("images/cards72/card_49.png");
}
.card[data-card-id="50"] {
- background-image: url("images/cards100/card_50.png");
+ background-image: url("images/cards72/card_50.png");
}
.card[data-card-id="51"] {
- background-image: url("images/cards100/card_51.png");
+ background-image: url("images/cards72/card_51.png");
}
.card[data-card-id="52"] {
- background-image: url("images/cards100/card_52.png");
+ background-image: url("images/cards72/card_52.png");
}
.card[data-card-id="53"] {
- background-image: url("images/cards100/card_53.png");
+ background-image: url("images/cards72/card_53.png");
}
.card[data-card-id="54"] {
- background-image: url("images/cards100/card_54.png");
+ background-image: url("images/cards72/card_54.png");
}
.card[data-card-id="55"] {
- background-image: url("images/cards100/card_55.png");
+ background-image: url("images/cards72/card_55.png");
}
.card[data-card-id="56"] {
- background-image: url("images/cards100/card_56.png");
+ background-image: url("images/cards72/card_56.png");
}
.card[data-card-id="57"] {
- background-image: url("images/cards100/card_57.png");
+ background-image: url("images/cards72/card_57.png");
}
.card[data-card-id="58"] {
- background-image: url("images/cards100/card_58.png");
+ background-image: url("images/cards72/card_58.png");
}
.card[data-card-id="59"] {
- background-image: url("images/cards100/card_59.png");
+ background-image: url("images/cards72/card_59.png");
}
.card[data-card-id="60"] {
- background-image: url("images/cards100/card_60.png");
+ background-image: url("images/cards72/card_60.png");
}
.card[data-card-id="61"] {
- background-image: url("images/cards100/card_61.png");
+ background-image: url("images/cards72/card_61.png");
}
.card[data-card-id="62"] {
- background-image: url("images/cards100/card_62.png");
+ background-image: url("images/cards72/card_62.png");
}
.card[data-card-id="63"] {
- background-image: url("images/cards100/card_63.png");
+ background-image: url("images/cards72/card_63.png");
}
.card[data-card-id="64"] {
- background-image: url("images/cards100/card_64.png");
+ background-image: url("images/cards72/card_64.png");
}
.card[data-card-id="65"] {
- background-image: url("images/cards100/card_65.png");
+ background-image: url("images/cards72/card_65.png");
}
.card[data-card-id="66"] {
- background-image: url("images/cards100/card_66.png");
+ background-image: url("images/cards72/card_66.png");
}
.card[data-card-id="67"] {
- background-image: url("images/cards100/card_67.png");
+ background-image: url("images/cards72/card_67.png");
}
.card[data-card-id="68"] {
- background-image: url("images/cards100/card_68.png");
+ background-image: url("images/cards72/card_68.png");
}
.card[data-card-id="69"] {
- background-image: url("images/cards100/card_69.png");
+ background-image: url("images/cards72/card_69.png");
}
.card[data-card-id="70"] {
- background-image: url("images/cards100/card_70.png");
+ background-image: url("images/cards72/card_70.png");
}
.card[data-card-id="71"] {
- background-image: url("images/cards100/card_71.png");
+ background-image: url("images/cards72/card_71.png");
}
.card[data-card-id="72"] {
- background-image: url("images/cards100/card_72.png");
+ background-image: url("images/cards72/card_72.png");
}
.card[data-card-id="73"] {
- background-image: url("images/cards100/card_73.png");
+ background-image: url("images/cards72/card_73.png");
}
.card[data-card-id="74"] {
- background-image: url("images/cards100/card_74.png");
+ background-image: url("images/cards72/card_74.png");
}
.card[data-card-id="75"] {
- background-image: url("images/cards100/card_75.png");
+ background-image: url("images/cards72/card_75.png");
}
.card[data-card-id="76"] {
- background-image: url("images/cards100/card_76.png");
+ background-image: url("images/cards72/card_76.png");
}
.card[data-card-id="77"] {
- background-image: url("images/cards100/card_77.png");
+ background-image: url("images/cards72/card_77.png");
}
.card[data-card-id="78"] {
- background-image: url("images/cards100/card_78.png");
+ background-image: url("images/cards72/card_78.png");
}
.card[data-card-id="79"] {
- background-image: url("images/cards100/card_79.png");
+ background-image: url("images/cards72/card_79.png");
}
.card[data-card-id="80"] {
- background-image: url("images/cards100/card_80.png");
+ background-image: url("images/cards72/card_80.png");
}
.card[data-card-id="81"] {
- background-image: url("images/cards100/card_81.png");
+ background-image: url("images/cards72/card_81.png");
}
.card[data-card-id="82"] {
- background-image: url("images/cards100/card_82.png");
+ background-image: url("images/cards72/card_82.png");
}
.card[data-card-id="83"] {
- background-image: url("images/cards100/card_83.png");
+ background-image: url("images/cards72/card_83.png");
}
.card[data-card-id="84"] {
- background-image: url("images/cards100/card_84.png");
+ background-image: url("images/cards72/card_84.png");
}
.card[data-card-id="85"] {
- background-image: url("images/cards100/card_85.png");
+ background-image: url("images/cards72/card_85.png");
}
.card[data-card-id="86"] {
- background-image: url("images/cards100/card_86.png");
+ background-image: url("images/cards72/card_86.png");
}
.card[data-card-id="87"] {
- background-image: url("images/cards100/card_87.png");
+ background-image: url("images/cards72/card_87.png");
}
.card[data-card-id="88"] {
- background-image: url("images/cards100/card_88.png");
+ background-image: url("images/cards72/card_88.png");
}
.card[data-card-id="89"] {
- background-image: url("images/cards100/card_89.png");
+ background-image: url("images/cards72/card_89.png");
}
.card[data-card-id="90"] {
- background-image: url("images/cards100/card_90.png");
+ background-image: url("images/cards72/card_90.png");
}
.card[data-card-id="91"] {
- background-image: url("images/cards100/card_91.png");
+ background-image: url("images/cards72/card_91.png");
}
.card[data-card-id="92"] {
- background-image: url("images/cards100/card_92.png");
+ background-image: url("images/cards72/card_92.png");
}
.card[data-card-id="93"] {
- background-image: url("images/cards100/card_93.png");
+ background-image: url("images/cards72/card_93.png");
}
.card[data-card-id="94"] {
- background-image: url("images/cards100/card_94.png");
+ background-image: url("images/cards72/card_94.png");
}
.card[data-card-id="95"] {
- background-image: url("images/cards100/card_95.png");
+ background-image: url("images/cards72/card_95.png");
}
.card[data-card-id="96"] {
- background-image: url("images/cards100/card_96.png");
+ background-image: url("images/cards72/card_96.png");
}
.card[data-card-id="97"] {
- background-image: url("images/cards100/card_97.png");
+ background-image: url("images/cards72/card_97.png");
}
.card[data-card-id="98"] {
- background-image: url("images/cards100/card_98.png");
+ background-image: url("images/cards72/card_98.png");
}
.card[data-card-id="99"] {
- background-image: url("images/cards100/card_99.png");
+ background-image: url("images/cards72/card_99.png");
}
.card[data-card-id="100"] {
- background-image: url("images/cards100/card_100.png");
+ background-image: url("images/cards72/card_100.png");
}
.card[data-card-id="101"] {
- background-image: url("images/cards100/card_101.png");
+ background-image: url("images/cards72/card_101.png");
}
.card[data-card-id="102"] {
- background-image: url("images/cards100/card_102.png");
+ background-image: url("images/cards72/card_102.png");
}
.card[data-card-id="103"] {
- background-image: url("images/cards100/card_103.png");
+ background-image: url("images/cards72/card_103.png");
}
.card[data-card-id="104"] {
- background-image: url("images/cards100/card_104.png");
+ background-image: url("images/cards72/card_104.png");
}
.card[data-card-id="105"] {
- background-image: url("images/cards100/card_105.png");
+ background-image: url("images/cards72/card_105.png");
}
.card[data-card-id="106"] {
- background-image: url("images/cards100/card_106.png");
+ background-image: url("images/cards72/card_106.png");
}
.card[data-card-id="107"] {
- background-image: url("images/cards100/card_107.png");
+ background-image: url("images/cards72/card_107.png");
}
.card[data-card-id="108"] {
- background-image: url("images/cards100/card_108.png");
+ background-image: url("images/cards72/card_108.png");
}
.card.event {
diff --git a/land-and-freedom.scss b/land-and-freedom.scss
index 07c55b2..d20e4ac 100644
--- a/land-and-freedom.scss
+++ b/land-and-freedom.scss
@@ -19,8 +19,8 @@ main {
/* MAP */
#mapwrap {
- width: 1000px;
- height: 850px;
+ width: 1584px;
+ height: 1224px;
// background-color: #999f85;
box-shadow: 1px 2px 4px #0004;
}
@@ -36,17 +36,17 @@ main {
#map {
background-repeat: no-repeat;
background-size: 100% 100%;
- width: 1000px;
- height: 850px;
+ width: 1584px;
+ height: 1224px;
overflow: clip;
}
#map {
- background-image: url(images/map75.png);
+ background-image: url(images/map72.png);
}
@media (min-resolution: 97dpi) {
#map {
- background-image: url(images/map100.png);
+ background-image: url(images/map144.png);
}
}
@@ -160,6 +160,8 @@ main {
}
.panel {
+ min-width: 1580px;
+ max-width: 1580px;
min-width: 1271px;
max-width: 1271px;
// background-color: hsl(34, 10%, 35%);
@@ -310,7 +312,7 @@ main {
@for $i from 1 through 108 {
.card[data-card-id='#{$i}'] {
- background-image: url('images/cards100/card_#{$i}.png');
+ background-image: url('images/cards72/card_#{$i}.png');
}
}
diff --git a/play.html b/play.html
index d89b2a9..5890238 100644
--- a/play.html
+++ b/play.html
@@ -9,15 +9,12 @@
<link rel="icon" href="favicon.png">
<link rel="stylesheet" href="/fonts/fonts.css">
<link rel="stylesheet" href="/common/client.css">
-<link rel="stylesheet" href="land-and-freedom.css">
+<link rel="stylesheet" href="play2.css">
<script defer src="/common/client.js"></script>
<script>var exports = {};</script>
<script defer src="data.js"></script>
<script defer src="play.js"></script>
</head>
-<style>
-/* insert stylesheet here */
-</style>
<body>
<header>
@@ -103,15 +100,16 @@
<div id="player_area" class="panel">
<div id="player_area_header" class="panel_header">
<div id="hand_tab" data-active="active" class="player_area_tab">Hand</div>
- <div id="deck_tab" data-active="inactive" class="player_area_tab">Deck</div>
- <div id="discard_tab" data-active="inactive" class="player_area_tab">Discard Pile</div>
- <div id="trash_tab" data-active="inactive" class="player_area_tab">Trash</div>
+ <div id="deck_tab" data-active="inactive" class="player_area_tab hide">Deck</div>
+ <div id="discard_tab" data-active="inactive" class="player_area_tab hide">Discard Pile</div>
+ <div id="trash_tab" data-active="inactive" class="player_area_tab hide">Trash</div>
</div>
<div id="hand" data-active="active" class="panel_body"></div>
- <div id="deck" data-active="inactive" class="panel_body"></div>
- <div id="discard" data-active="inactive" class="panel_body"></div>
- <div id="trash" data-active="inactive" class="panel_body"></div>
+ <div id="deck" data-active="inactive" class="panel_body hide"></div>
+ <div id="discard" data-active="inactive" class="panel_body hide"></div>
+ <div id="trash" data-active="inactive" class="panel_body hide"></div>
</div>
+
<div id="player_areas">
<div id="player_area_Anarchist" class="panel">
<div class="panel_header" data-faction-id="a">Anarchist Tableau</div>
diff --git a/play.js b/play.js
index 5b002e8..971c8e3 100644
--- a/play.js
+++ b/play.js
@@ -347,11 +347,11 @@ function on_update() {
}
place_cards(ui.hand, view.hand);
ui.player_area_tabs.hand_tab.replaceChildren(`Hand (${view.hand.length})`);
- place_cards(ui.player_area_cards.deck, view.deck);
+ // place_cards(ui.player_area_cards.deck, view.deck);
ui.player_area_tabs.deck_tab.replaceChildren(`Deck (${view.deck.length})`);
- place_cards(ui.player_area_cards.discard, view.discard);
+ // place_cards(ui.player_area_cards.discard, view.discard);
ui.player_area_tabs.discard_tab.replaceChildren(`Discard (${view.discard.length})`);
- place_cards(ui.player_area_cards.trash, view.trash);
+ // place_cards(ui.player_area_cards.trash, view.trash);
ui.player_area_tabs.trash_tab.replaceChildren(`Trash (${view.trash.length})`);
place_cards(ui.selectable_cards, view.selectable_cards);
for (let faction_id of FACTIONS) {
diff --git a/play2.css b/play2.css
new file mode 100644
index 0000000..bebfc07
--- /dev/null
+++ b/play2.css
@@ -0,0 +1,577 @@
+main {
+ background-color: dimgray;
+}
+
+#mapwrap {
+ width: 1650px;
+ height: 1275px;
+}
+
+#map {
+ width: 1650px;
+ height: 1275px;
+ background-size: 1650px 1275px;
+ box-shadow: 0px 1px 10px #0008;
+ background-image: url(images/map75.jpg);
+}
+
+@media (min-resolution: 97dpi) {
+ #map { background-image: url(images/map150.jpg); }
+}
+
+/* PANELS */
+
+.panel {
+ background-color: #555;
+ max-width: 1650px;
+ margin: 24px auto;
+ position: relative;
+}
+
+.panel_header {
+ background-color: #888;
+ padding: 6px;
+}
+
+.panel_body {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 12px;
+ padding: 12px;
+}
+
+.card {
+ background-size: 100% 100%;
+ width: 206px;
+ height: 281px;
+ xborder-radius: 5px;
+ box-shadow: 0 0 0 1px #333;
+}
+
+.card.event {
+ position: absolute;
+}
+
+.faction_token[data-faction-id=a] {
+ background-image: url("images/factions/anarchists.png");
+}
+
+.faction_token[data-faction-id=c] {
+ background-image: url("images/factions/communists.png");
+}
+
+.faction_token[data-faction-id=m] {
+ background-image: url("images/factions/moderates.png");
+}
+
+.initiative_token {
+ background-image: url("images/initiative_clockwise.png");
+}
+
+.initiative_token[data-year="2"] {
+ background-image: url("images/initiative_counter_clockwise.png");
+}
+
+.standee[data-standee-id="0"] {
+ background-image: url("images/standees/standee_0.png");
+}
+
+.standee[data-standee-id="1"] {
+ background-image: url("images/standees/standee_1.png");
+}
+
+.standee[data-standee-id="2"] {
+ background-image: url("images/standees/standee_2.png");
+}
+
+.standee[data-standee-id="3"] {
+ background-image: url("images/standees/standee_3.png");
+}
+
+.standee[data-standee-id="4"] {
+ background-image: url("images/standees/standee_4.png");
+}
+
+.bonus[data-bonus-id="0"][data-bonus-on="0"] {
+ background-image: url("images/bonus/bonus_0_off.png");
+}
+
+.bonus[data-bonus-id="0"][data-bonus-on="1"] {
+ background-image: url("images/bonus/bonus_0_on.png");
+}
+
+.bonus[data-bonus-id="1"][data-bonus-on="0"] {
+ background-image: url("images/bonus/bonus_1_off.png");
+}
+
+.bonus[data-bonus-id="1"][data-bonus-on="1"] {
+ background-image: url("images/bonus/bonus_1_on.png");
+}
+
+.medallion[data-medallion-id="0"] {
+ background-image: url("images/medallions/medallion_0.png");
+}
+
+.medallion[data-medallion-id="1"] {
+ background-image: url("images/medallions/medallion_1.png");
+}
+
+.medallion[data-medallion-id="2"] {
+ background-image: url("images/medallions/medallion_2.png");
+}
+
+.medallion[data-medallion-id="3"] {
+ background-image: url("images/medallions/medallion_3.png");
+}
+
+.medallion[data-medallion-id="4"] {
+ background-image: url("images/medallions/medallion_4.png");
+}
+
+.medallion[data-medallion-id="5"] {
+ background-image: url("images/medallions/medallion_5.png");
+}
+
+.medallion[data-medallion-id="6"] {
+ background-image: url("images/medallions/medallion_6.png");
+}
+
+.medallion[data-medallion-id="7"] {
+ background-image: url("images/medallions/medallion_7.png");
+}
+
+.medallion[data-medallion-id="8"] {
+ background-image: url("images/medallions/medallion_8.png");
+}
+
+.card[data-card-id="1"] {
+ background-image: url("images/cards75/card_1.png");
+}
+
+.card[data-card-id="2"] {
+ background-image: url("images/cards75/card_2.png");
+}
+
+.card[data-card-id="3"] {
+ background-image: url("images/cards75/card_3.png");
+}
+
+.card[data-card-id="4"] {
+ background-image: url("images/cards75/card_4.png");
+}
+
+.card[data-card-id="5"] {
+ background-image: url("images/cards75/card_5.png");
+}
+
+.card[data-card-id="6"] {
+ background-image: url("images/cards75/card_6.png");
+}
+
+.card[data-card-id="7"] {
+ background-image: url("images/cards75/card_7.png");
+}
+
+.card[data-card-id="8"] {
+ background-image: url("images/cards75/card_8.png");
+}
+
+.card[data-card-id="9"] {
+ background-image: url("images/cards75/card_9.png");
+}
+
+.card[data-card-id="10"] {
+ background-image: url("images/cards75/card_10.png");
+}
+
+.card[data-card-id="11"] {
+ background-image: url("images/cards75/card_11.png");
+}
+
+.card[data-card-id="12"] {
+ background-image: url("images/cards75/card_12.png");
+}
+
+.card[data-card-id="13"] {
+ background-image: url("images/cards75/card_13.png");
+}
+
+.card[data-card-id="14"] {
+ background-image: url("images/cards75/card_14.png");
+}
+
+.card[data-card-id="15"] {
+ background-image: url("images/cards75/card_15.png");
+}
+
+.card[data-card-id="16"] {
+ background-image: url("images/cards75/card_16.png");
+}
+
+.card[data-card-id="17"] {
+ background-image: url("images/cards75/card_17.png");
+}
+
+.card[data-card-id="18"] {
+ background-image: url("images/cards75/card_18.png");
+}
+
+.card[data-card-id="19"] {
+ background-image: url("images/cards75/card_19.png");
+}
+
+.card[data-card-id="20"] {
+ background-image: url("images/cards75/card_20.png");
+}
+
+.card[data-card-id="21"] {
+ background-image: url("images/cards75/card_21.png");
+}
+
+.card[data-card-id="22"] {
+ background-image: url("images/cards75/card_22.png");
+}
+
+.card[data-card-id="23"] {
+ background-image: url("images/cards75/card_23.png");
+}
+
+.card[data-card-id="24"] {
+ background-image: url("images/cards75/card_24.png");
+}
+
+.card[data-card-id="25"] {
+ background-image: url("images/cards75/card_25.png");
+}
+
+.card[data-card-id="26"] {
+ background-image: url("images/cards75/card_26.png");
+}
+
+.card[data-card-id="27"] {
+ background-image: url("images/cards75/card_27.png");
+}
+
+.card[data-card-id="28"] {
+ background-image: url("images/cards75/card_28.png");
+}
+
+.card[data-card-id="29"] {
+ background-image: url("images/cards75/card_29.png");
+}
+
+.card[data-card-id="30"] {
+ background-image: url("images/cards75/card_30.png");
+}
+
+.card[data-card-id="31"] {
+ background-image: url("images/cards75/card_31.png");
+}
+
+.card[data-card-id="32"] {
+ background-image: url("images/cards75/card_32.png");
+}
+
+.card[data-card-id="33"] {
+ background-image: url("images/cards75/card_33.png");
+}
+
+.card[data-card-id="34"] {
+ background-image: url("images/cards75/card_34.png");
+}
+
+.card[data-card-id="35"] {
+ background-image: url("images/cards75/card_35.png");
+}
+
+.card[data-card-id="36"] {
+ background-image: url("images/cards75/card_36.png");
+}
+
+.card[data-card-id="37"] {
+ background-image: url("images/cards75/card_37.png");
+}
+
+.card[data-card-id="38"] {
+ background-image: url("images/cards75/card_38.png");
+}
+
+.card[data-card-id="39"] {
+ background-image: url("images/cards75/card_39.png");
+}
+
+.card[data-card-id="40"] {
+ background-image: url("images/cards75/card_40.png");
+}
+
+.card[data-card-id="41"] {
+ background-image: url("images/cards75/card_41.png");
+}
+
+.card[data-card-id="42"] {
+ background-image: url("images/cards75/card_42.png");
+}
+
+.card[data-card-id="43"] {
+ background-image: url("images/cards75/card_43.png");
+}
+
+.card[data-card-id="44"] {
+ background-image: url("images/cards75/card_44.png");
+}
+
+.card[data-card-id="45"] {
+ background-image: url("images/cards75/card_45.png");
+}
+
+.card[data-card-id="46"] {
+ background-image: url("images/cards75/card_46.png");
+}
+
+.card[data-card-id="47"] {
+ background-image: url("images/cards75/card_47.png");
+}
+
+.card[data-card-id="48"] {
+ background-image: url("images/cards75/card_48.png");
+}
+
+.card[data-card-id="49"] {
+ background-image: url("images/cards75/card_49.png");
+}
+
+.card[data-card-id="50"] {
+ background-image: url("images/cards75/card_50.png");
+}
+
+.card[data-card-id="51"] {
+ background-image: url("images/cards75/card_51.png");
+}
+
+.card[data-card-id="52"] {
+ background-image: url("images/cards75/card_52.png");
+}
+
+.card[data-card-id="53"] {
+ background-image: url("images/cards75/card_53.png");
+}
+
+.card[data-card-id="54"] {
+ background-image: url("images/cards75/card_54.png");
+}
+
+.card[data-card-id="55"] {
+ background-image: url("images/cards75/card_55.png");
+}
+
+.card[data-card-id="56"] {
+ background-image: url("images/cards75/card_56.png");
+}
+
+.card[data-card-id="57"] {
+ background-image: url("images/cards75/card_57.png");
+}
+
+.card[data-card-id="58"] {
+ background-image: url("images/cards75/card_58.png");
+}
+
+.card[data-card-id="59"] {
+ background-image: url("images/cards75/card_59.png");
+}
+
+.card[data-card-id="60"] {
+ background-image: url("images/cards75/card_60.png");
+}
+
+.card[data-card-id="61"] {
+ background-image: url("images/cards75/card_61.png");
+}
+
+.card[data-card-id="62"] {
+ background-image: url("images/cards75/card_62.png");
+}
+
+.card[data-card-id="63"] {
+ background-image: url("images/cards75/card_63.png");
+}
+
+.card[data-card-id="64"] {
+ background-image: url("images/cards75/card_64.png");
+}
+
+.card[data-card-id="65"] {
+ background-image: url("images/cards75/card_65.png");
+}
+
+.card[data-card-id="66"] {
+ background-image: url("images/cards75/card_66.png");
+}
+
+.card[data-card-id="67"] {
+ background-image: url("images/cards75/card_67.png");
+}
+
+.card[data-card-id="68"] {
+ background-image: url("images/cards75/card_68.png");
+}
+
+.card[data-card-id="69"] {
+ background-image: url("images/cards75/card_69.png");
+}
+
+.card[data-card-id="70"] {
+ background-image: url("images/cards75/card_70.png");
+}
+
+.card[data-card-id="71"] {
+ background-image: url("images/cards75/card_71.png");
+}
+
+.card[data-card-id="72"] {
+ background-image: url("images/cards75/card_72.png");
+}
+
+.card[data-card-id="73"] {
+ background-image: url("images/cards75/card_73.png");
+}
+
+.card[data-card-id="74"] {
+ background-image: url("images/cards75/card_74.png");
+}
+
+.card[data-card-id="75"] {
+ background-image: url("images/cards75/card_75.png");
+}
+
+.card[data-card-id="76"] {
+ background-image: url("images/cards75/card_76.png");
+}
+
+.card[data-card-id="77"] {
+ background-image: url("images/cards75/card_77.png");
+}
+
+.card[data-card-id="78"] {
+ background-image: url("images/cards75/card_78.png");
+}
+
+.card[data-card-id="79"] {
+ background-image: url("images/cards75/card_79.png");
+}
+
+.card[data-card-id="80"] {
+ background-image: url("images/cards75/card_80.png");
+}
+
+.card[data-card-id="81"] {
+ background-image: url("images/cards75/card_81.png");
+}
+
+.card[data-card-id="82"] {
+ background-image: url("images/cards75/card_82.png");
+}
+
+.card[data-card-id="83"] {
+ background-image: url("images/cards75/card_83.png");
+}
+
+.card[data-card-id="84"] {
+ background-image: url("images/cards75/card_84.png");
+}
+
+.card[data-card-id="85"] {
+ background-image: url("images/cards75/card_85.png");
+}
+
+.card[data-card-id="86"] {
+ background-image: url("images/cards75/card_86.png");
+}
+
+.card[data-card-id="87"] {
+ background-image: url("images/cards75/card_87.png");
+}
+
+.card[data-card-id="88"] {
+ background-image: url("images/cards75/card_88.png");
+}
+
+.card[data-card-id="89"] {
+ background-image: url("images/cards75/card_89.png");
+}
+
+.card[data-card-id="90"] {
+ background-image: url("images/cards75/card_90.png");
+}
+
+.card[data-card-id="91"] {
+ background-image: url("images/cards75/card_91.png");
+}
+
+.card[data-card-id="92"] {
+ background-image: url("images/cards75/card_92.png");
+}
+
+.card[data-card-id="93"] {
+ background-image: url("images/cards75/card_93.png");
+}
+
+.card[data-card-id="94"] {
+ background-image: url("images/cards75/card_94.png");
+}
+
+.card[data-card-id="95"] {
+ background-image: url("images/cards75/card_95.png");
+}
+
+.card[data-card-id="96"] {
+ background-image: url("images/cards75/card_96.png");
+}
+
+.card[data-card-id="97"] {
+ background-image: url("images/cards75/card_97.png");
+}
+
+.card[data-card-id="98"] {
+ background-image: url("images/cards75/card_98.png");
+}
+
+.card[data-card-id="99"] {
+ background-image: url("images/cards75/card_99.png");
+}
+
+.card[data-card-id="100"] {
+ background-image: url("images/cards75/card_100.png");
+}
+
+.card[data-card-id="101"] {
+ background-image: url("images/cards75/card_101.png");
+}
+
+.card[data-card-id="102"] {
+ background-image: url("images/cards75/card_102.png");
+}
+
+.card[data-card-id="103"] {
+ background-image: url("images/cards75/card_103.png");
+}
+
+.card[data-card-id="104"] {
+ background-image: url("images/cards75/card_104.png");
+}
+
+.card[data-card-id="105"] {
+ background-image: url("images/cards75/card_105.png");
+}
+
+.card[data-card-id="106"] {
+ background-image: url("images/cards75/card_106.png");
+}
+
+.card[data-card-id="107"] {
+ background-image: url("images/cards75/card_107.png");
+}
+
+.card[data-card-id="108"] {
+ background-image: url("images/cards75/card_108.png");
+}
diff --git a/play2.js b/play2.js
new file mode 100644
index 0000000..9a0e8f4
--- /dev/null
+++ b/play2.js
@@ -0,0 +1,242 @@
+"use strict"
+
+const ui = {
+ map: document.getElementById('map'),
+ glory_container: document.getElementById('glory'),
+ hand: document.getElementById('hand'),
+ player_areas: {
+ Anarchist: document.getElementById('player_area_Anarchist'),
+ Communist: document.getElementById('player_area_Communist'),
+ Moderate: document.getElementById('player_area_Moderate'),
+ },
+ tableaus: {
+ a: document.getElementById('tableau_a'),
+ c: document.getElementById('tableau_c'),
+ m: document.getElementById('tableau_m'),
+ },
+ standees: [],
+ fronts: [],
+ cards: [],
+};
+
+let action_register = []
+
+function register_action(e, action, id) {
+ e.my_action = action
+ e.my_id = id
+ e.onmousedown = on_click_action
+ action_register.push(e)
+}
+
+function on_click_action(evt) {
+ if (evt.button === 0)
+ if (send_action(evt.target.my_action, evt.target.my_id))
+ evt.stopPropagation()
+}
+
+function is_action(action, arg) {
+ if (arg === undefined)
+ return !!(view.actions && view.actions[action] === 1)
+ return !!(view.actions && view.actions[action] && view.actions[action].includes(arg))
+}
+
+let on_init_once = false;
+
+function on_init() {
+ if (on_init_once)
+ return;
+ on_init_once = true;
+ for (let t = 0; t < TRACK_COUNT; ++t) {
+ for (let s = 0; s < TRACK_LENGTH; ++s) {
+ const bm = t * 11 + s;
+ let e = (ui.blank_markers[bm] = document.createElement('div'));
+ e.className = 'blank_marker';
+ register_action(e, 'blank_marker', bm);
+ }
+ }
+ for (let b = 0; b < BONUSES_COUNT; ++b) {
+ let e = (ui.bonuses[b] = document.createElement('div'));
+ e.className = 'bonus';
+ e.setAttribute('data-bonus-id', '' + b);
+ e.style.left = LAYOUT_BONUSES[b][0] + 'px';
+ e.style.top = LAYOUT_BONUSES[b][1] + 'px';
+ LAYOUT_BONUSES;
+ register_action(e, 'bonus', b);
+ ui.map.appendChild(ui.bonuses[b]);
+ }
+ for (let g = 0; g < GLORY_COUNT; ++g) {
+ let e = (ui.glory[g] = document.createElement('div'));
+ e.className = 'faction_token';
+ ui.glory_container.appendChild(ui.glory[g]);
+ e.style.left = LAYOUT_GLORY[g][0] + 'px';
+ e.style.top = LAYOUT_GLORY[g][1] + 'px';
+ }
+ for (let m = 0; m < medallionS_COUNT; ++m) {
+ let e = (ui.medallions[m] = document.createElement('div'));
+ e.className = 'medallion';
+ e.setAttribute('data-medallion-id', '' + m);
+ register_action(e, 'medallion', m);
+ }
+ for (let s = 0; s < STANDEES_COUNT; ++s) {
+ let e = (ui.standees[s] = document.createElement('div'));
+ e.className = 'standee';
+ e.setAttribute('data-standee-id', '' + s);
+ register_action(e, 'standee', s);
+ ui.tracks.appendChild(ui.standees[s]);
+ }
+ for (let c = 1; c < CARD_COUNT; ++c) {
+ let e = (ui.cards[c] = document.createElement('div'));
+ e.className = 'card';
+ e.setAttribute('data-card-id', '' + data.cards[c].id);
+ register_action(e, 'card', c);
+ }
+ let e = (ui.initiative_token = document.createElement('div'));
+ e.className = 'initiative_token';
+ data.fronts.forEach((front) => {
+ ui.tokens_on_front[front.id] = {};
+ FACTIONS.forEach((faction_id) => {
+ let e = (ui.tokens_on_front[front.id][faction_id] =
+ document.createElement('div'));
+ e.className = 'faction_token';
+ e.setAttribute('data-faction-id', faction_id);
+ });
+ });
+ Object.keys(ui.fronts).forEach((front_id) => {
+ register_action(ui.fronts[front_id].front, 'front', front_id);
+ });
+}
+
+function place_cards(e, cards) {
+ e.replaceChildren()
+ for (let c of cards) {
+ ui.cards[c].classList.remove("selected")
+ e.appendChild(ui.cards[c])
+ if (view.selected_cards.includes(c)) {
+ ui.cards[c].classList.add("selected")
+ }
+ }
+}
+
+function on_update() {
+ console.log('on_update', view);
+ on_init();
+ for (let key of Object.keys(view.hero_points)) {
+ ui.roles[key].hero_points.replaceChildren(`Hero Points: ${view.hero_points[key]}`);
+ }
+ ui.bag_of_glory.replaceChildren(`Bag of Glory: ${view.bag_of_glory_count}`);
+ ui.current_events.replaceChildren();
+ for (let i = 0; i < view.current_events.length; i++) {
+ const cardId = view.current_events[i];
+ ui.current_events.appendChild(ui.cards[cardId]);
+ ui.cards[cardId].classList.add('event');
+ ui.cards[cardId].style.left = LAYOUT_CURRENT_EVENTS[i][0] + 'px';
+ ui.cards[cardId].style.top = LAYOUT_CURRENT_EVENTS[i][1] + 'px';
+ }
+ ui.markers.replaceChildren();
+ for (let bm of view.triggered_track_effects) {
+ const s = bm % 11;
+ const t = Math.floor(bm / 11);
+ ui.markers.appendChild(ui.blank_markers[bm]);
+ ui.blank_markers[bm].style.left = LAYOUT_TRACKS[t][s][0] + 'px';
+ ui.blank_markers[bm].style.top = LAYOUT_TRACKS[t][s][1] + 'px';
+ }
+ for (let bonus_id of Object.keys(view.bonuses)) {
+ ui.bonuses[bonus_id].setAttribute('data-bonus-on', view.bonuses[bonus_id] + 0);
+ }
+ place_cards(ui.hand, view.hand);
+ ui.player_area_tabs.hand_tab.replaceChildren(`Hand (${view.hand.length})`);
+ place_cards(ui.player_area_cards.deck, view.deck);
+ ui.player_area_tabs.deck_tab.replaceChildren(`Deck (${view.deck.length})`);
+ place_cards(ui.player_area_cards.discard, view.discard);
+ ui.player_area_tabs.discard_tab.replaceChildren(`Discard (${view.discard.length})`);
+ place_cards(ui.player_area_cards.trash, view.trash);
+ ui.player_area_tabs.trash_tab.replaceChildren(`Trash (${view.trash.length})`);
+ place_cards(ui.selectable_cards, view.selectable_cards);
+ for (let faction_id of FACTIONS) {
+ place_cards(ui.tableaus[faction_id], view.tableaus[faction_id]);
+ }
+ for (let i = 0; i < view.tracks.length; ++i) {
+ ui.standees[i].style.left = LAYOUT_TRACKS[i][view.tracks[i]][0] + 'px';
+ ui.standees[i].style.top = LAYOUT_TRACKS[i][view.tracks[i]][1] + 'px';
+ }
+ for (let front_id of Object.keys(view.fronts)) {
+ const front_data = view.fronts[front_id];
+ ui.fronts[front_id].value.replaceChildren(front_data.status !== null ? front_data.status : front_data.value);
+ ui.fronts[front_id].contributions.replaceChildren();
+ for (let faction_id of front_data.contributions) {
+ ui.fronts[front_id].contributions.appendChild(ui.tokens_on_front[front_id][faction_id]);
+ }
+ }
+ ui.medallions_container.replaceChildren();
+ for (let i = 0; i < view.medallions.pool.length; ++i) {
+ if (view.medallions.pool[i] !== null) {
+ const id = view.medallions.pool[i];
+ ui.medallions[id].style.left = LAYOUT_medallionS[i][0] + 'px';
+ ui.medallions[id].style.top = LAYOUT_medallionS[i][1] + 'px';
+ ui.medallions_container.appendChild(ui.medallions[id]);
+ }
+ }
+ for (let f of FACTIONS) {
+ ui.roles[f].medallions.replaceChildren();
+ for (let m of view.medallions[f]) {
+ ui.roles[f].medallions.appendChild(ui.medallions[m]);
+ }
+ }
+ ui.roles[view.initiative].medallions.appendChild(ui.initiative_token);
+ ui.initiative_token.setAttribute('data-year', view.year);
+ if (view.played_card === null) {
+ ui.turn_info.style.display = 'none';
+ }
+ else {
+ ui.turn_info.style.display = '';
+ ui.turn_info_card.setAttribute('data-card-id', view.played_card + '');
+ }
+ Object.values(ui.glory).forEach((elt) => elt.removeAttribute('data-faction-id'));
+ for (let g = 0; g < view.glory.length; ++g) {
+ ui.glory[g].setAttribute('data-faction-id', view.glory[g]);
+ }
+ for (let e of action_register)
+ e.classList.toggle('action', is_action(e.my_action, e.my_id));
+ ui.year.replaceChildren(`Year ${view.year}`);
+ action_button('add_to_front', '+1 to a Front');
+ action_button('d_liberty', 'Decrease Liberty');
+ action_button('soviet_support', 'Soviet Support');
+ action_button('collectivization', 'Collectivization');
+ action_button('d_collectivization', 'Decrease Collectivization');
+ action_button('d_foreign_aid', 'Decrease Foreign Aid');
+ action_button('d_government', 'Decrease Government');
+ action_button('d_soviet_support', 'Decrease Soviet Support');
+ action_button('foreign_aid', 'Foreign Aid');
+ action_button('government', 'Government');
+ action_button('liberty', 'Liberty');
+ action_button('government_to_center', 'Government towards center');
+ action_button('teamwork_on', 'Teamwork Bonus On');
+ action_button('Anarchist', 'Anarchist');
+ action_button('Communist', 'Communist');
+ action_button('Moderate', 'Moderate');
+ action_button('gain_hp', 'Gain Hero Points');
+ action_button('lose_hp', 'Lose Hero Points');
+ action_button('draw_card', 'Draw a card');
+ action_button('draw_cards', 'Draw cards');
+ action_button('play_to_tableau', 'Play card to Tableau');
+ action_button('play_for_event', 'Play card for Event');
+ action_button('use_ap', 'Use Action Points');
+ action_button('use_morale_bonus', 'Use Morale Bonus');
+ action_button('move_track', 'Move a Track');
+ action_button('turn_on_bonus', 'Turn on a Bonus');
+ action_button('add_glory', 'Add to Bag of Glory');
+ action_button('draw_glory', 'Draw from Bag of Glory');
+ action_button('up', 'Up');
+ action_button('down', 'Down');
+ action_button('next', 'Next');
+ action_button('remove_blank_marker', 'Remove Blank marker');
+ action_button('confirm', 'Confirm');
+ action_button('yes', 'Yes');
+ action_button('no', 'No');
+ action_button('skip', 'Skip');
+ action_button('spend_hp', 'Spend Hero Points');
+ action_button('use_momentum', 'Play second card (Momentum)');
+ action_button('done', 'Done');
+ action_button('end_turn', 'End turn');
+ action_button('undo', 'Undo');
+}
diff --git a/rules.js b/rules.js
index ced9de7..4ede666 100644
--- a/rules.js
+++ b/rules.js
@@ -1,9 +1,6 @@
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
-exports.roles = exports.scenarios = void 0;
-exports.action = action;
-exports.view = game_view;
-exports.setup = setup;
+exports.setup = exports.view = exports.action = exports.roles = exports.scenarios = void 0;
const data_1 = require("./data");
const OBSERVER = 'Observer';
const states = {};
@@ -92,6 +89,7 @@ function action(state, player, action, arg) {
throw new Error('Invalid action: ' + action);
return game;
}
+exports.action = action;
const state_node = 'l';
const seq_node = 's';
const function_node = 'f';
@@ -397,6 +395,7 @@ function game_view(state, current) {
}
return view;
}
+exports.view = game_view;
function setup(seed, _scenario, _options) {
game = {
seed: seed,
@@ -491,6 +490,7 @@ function setup(seed, _scenario, _options) {
start_year();
return game;
}
+exports.setup = setup;
function draw_hand_cards(faction_id, count) {
const deck = list_deck(faction_id);
if (game.medallions[faction_id].includes(data_1.INTELLIGENCE_MEDALLION_ID)) {