summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2025-03-23 00:25:47 +0100
committerTor Andersson <tor@ccxvii.net>2025-03-23 00:25:47 +0100
commitf4a51cda82508504662992ec8530b847482f94bf (patch)
tree3a19238a9dcdece631130b0122f34c288bc09a37
parent954c9c0690a64a8ed172a5b10cb8a4b5a32293fe (diff)
downloadland-and-freedom-f4a51cda82508504662992ec8530b847482f94bf.tar.gz
only claim momentum if you have enough cards in hand to use it.
-rw-r--r--data.js4
-rw-r--r--data.ts2
-rw-r--r--rules.js18
-rw-r--r--rules.ts18
4 files changed, 35 insertions, 7 deletions
diff --git a/data.js b/data.js
index eedacff..eaebba1 100644
--- a/data.js
+++ b/data.js
@@ -1,6 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.MOMENTUM = 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.MOMENTUM = 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.MOMENTUM_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;
const LIBERTY = 0;
exports.LIBERTY = LIBERTY;
@@ -72,6 +72,8 @@ const VICTORY = 'Victory';
exports.VICTORY = VICTORY;
const DEFEAT = 'Defeat';
exports.DEFEAT = DEFEAT;
+const MOMENTUM_MEDALLION_ID = 2;
+exports.MOMENTUM_MEDALLION_ID = MOMENTUM_MEDALLION_ID;
const STRATEGY_MEDALLION_ID = 3;
exports.STRATEGY_MEDALLION_ID = STRATEGY_MEDALLION_ID;
const PROPAGANDA_MEDALLION_ID = 4;
diff --git a/data.ts b/data.ts
index b9cb79a..de4774f 100644
--- a/data.ts
+++ b/data.ts
@@ -46,6 +46,7 @@ const VICTORY = 'Victory';
const DEFEAT = 'Defeat';
// Medallion ids
+const MOMENTUM_MEDALLION_ID = 2;
const STRATEGY_MEDALLION_ID = 3;
const PROPAGANDA_MEDALLION_ID = 4;
const INTELLIGENCE_MEDALLION_ID = 5;
@@ -105,6 +106,7 @@ export {
VICTORY,
DEFEAT,
FRONTS,
+ MOMENTUM_MEDALLION_ID,
STRATEGY_MEDALLION_ID,
PROPAGANDA_MEDALLION_ID,
INTELLIGENCE_MEDALLION_ID,
diff --git a/rules.js b/rules.js
index fd1297f..a1ec804 100644
--- a/rules.js
+++ b/rules.js
@@ -1112,11 +1112,23 @@ states.choose_medallion = {
prompt() {
gen_spend_hero_points();
view.prompt = 'Claim a Medallion.';
+ const faction = get_active_faction();
+ var skip = true;
for (let m of game.medallions[POOL_ID]) {
- if (m !== null)
- gen_action_medallion(m);
+ if (m !== null) {
+ if (m === data_1.MOMENTUM_MEDALLION_ID) {
+ if (game.hands[faction].length > game.selected_cards[faction].length) {
+ gen_action_medallion(m);
+ skip = false;
+ }
+ }
+ else {
+ gen_action_medallion(m);
+ skip = false;
+ }
+ }
}
- if (!game.medallions[POOL_ID].some((m) => m !== null)) {
+ if (skip) {
gen_action('skip');
}
},
diff --git a/rules.ts b/rules.ts
index 840a412..7a9fef4 100644
--- a/rules.ts
+++ b/rules.ts
@@ -53,6 +53,7 @@ import data, {
TOWARDS_CENTER,
ARCHIVES_MEDALLION_ID,
INTELLIGENCE_MEDALLION_ID,
+ MOMENTUM_MEDALLION_ID,
ORGANIZATION_MEDALLION_ID,
STRATEGY_MEDALLION_ID,
PROPAGANDA_MEDALLION_ID,
@@ -1403,11 +1404,22 @@ states.choose_medallion = {
prompt() {
gen_spend_hero_points();
view.prompt = 'Claim a Medallion.';
+ const faction = get_active_faction();
+ var skip = true;
for (let m of game.medallions[POOL_ID]) {
- if (m !== null)
- gen_action_medallion(m);
+ if (m !== null) {
+ if (m === MOMENTUM_MEDALLION_ID) {
+ if (game.hands[faction].length > game.selected_cards[faction].length) {
+ gen_action_medallion(m);
+ skip = false;
+ }
+ } else {
+ gen_action_medallion(m);
+ skip = false;
+ }
+ }
}
- if (!game.medallions[POOL_ID].some((m) => m !== null)) {
+ if (skip) {
gen_action('skip');
}
},