summaryrefslogtreecommitdiff
path: root/rules.js
diff options
context:
space:
mode:
authorFrans Bongers <fransbongers@franss-mbp.home>2025-01-08 20:53:51 +0100
committerFrans Bongers <fransbongers@franss-mbp.home>2025-01-08 20:53:51 +0100
commitb1a3b055df4472ff191f067f707c7722fb04d946 (patch)
treedda9a7c4d83c47a4dbfeafbf1170e1bf24a25cd4 /rules.js
parent3ed56f482596fd4bf914bea95bd3ce46c0dcad6b (diff)
downloadland-and-freedom-b1a3b055df4472ff191f067f707c7722fb04d946.tar.gz
bugfixesHEADmaster
Diffstat (limited to 'rules.js')
-rw-r--r--rules.js26
1 files changed, 19 insertions, 7 deletions
diff --git a/rules.js b/rules.js
index 0f53324..4aa2491 100644
--- a/rules.js
+++ b/rules.js
@@ -991,19 +991,26 @@ states.draw_card = {
states.end_of_year_discard = {
inactive: 'discard cards from hand and tableau',
prompt() {
- view.prompt = 'Discard a card';
const faction_id = get_active_faction();
const hand = game.hands[faction_id];
const hand_limit = get_hand_limit(faction_id);
- if (hand.length > hand_limit) {
+ const needs_to_discard_from_hand = hand.length > hand_limit;
+ if (needs_to_discard_from_hand) {
for (let c of hand)
gen_action_card(c);
}
const tableau = game.tableaus[faction_id];
- if (tableau.length > game.year) {
+ const needs_to_discard_from_tableau = tableau.length > game.year;
+ if (needs_to_discard_from_tableau) {
for (let c of tableau)
gen_action_card(c);
}
+ if (needs_to_discard_from_hand && needs_to_discard_from_tableau) {
+ view.prompt = 'Discard a card from your hand or tableau';
+ }
+ else {
+ view.prompt = `Discard a card from your ${needs_to_discard_from_hand ? 'hand' : 'tableau'}`;
+ }
},
card(c) {
const faction_id = get_active_faction();
@@ -1911,11 +1918,16 @@ function gain_hero_points(faction_id, value, skip_abilities = false) {
return;
}
if (!skip_abilities &&
- ((faction_id === data_1.ANARCHISTS_ID &&
- (game.active_abilities || []).includes(data_1.ANARCHIST_EXTRA_HERO_POINT)) ||
- (faction_id === data_1.COMMUNISTS_ID &&
- (game.active_abilities || []).includes(data_1.COMMUNIST_EXTRA_HERO_POINT)))) {
+ faction_id === data_1.ANARCHISTS_ID &&
+ (game.active_abilities || []).includes(data_1.ANARCHIST_EXTRA_HERO_POINT)) {
+ value++;
+ game.active_abilities = (game.active_abilities || []).filter((ability) => ability !== data_1.ANARCHIST_EXTRA_HERO_POINT);
+ }
+ if (!skip_abilities &&
+ faction_id === data_1.COMMUNISTS_ID &&
+ (game.active_abilities || []).includes(data_1.COMMUNIST_EXTRA_HERO_POINT)) {
value++;
+ game.active_abilities = (game.active_abilities || []).filter((ability) => ability !== data_1.COMMUNIST_EXTRA_HERO_POINT);
}
const gain = Math.min(game.hero_points.pool, value);
game.hero_points.pool -= gain;