summaryrefslogtreecommitdiff
path: root/rules.js
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2025-03-11 00:13:52 +0100
committerTor Andersson <tor@ccxvii.net>2025-03-11 00:13:52 +0100
commit1152190a402c3f59cd72f4c41bd510b69b20e147 (patch)
tree0fc7a48d0b8f4c7a9373370eb2cddb1fae0e96a3 /rules.js
parent13e67eb054578b5a625b05aa5a9400f8b9fe7f2e (diff)
downloadland-and-freedom-1152190a402c3f59cd72f4c41bd510b69b20e147.tar.gz
Set source to 'player_event' for event effects.
Diffstat (limited to 'rules.js')
-rw-r--r--rules.js66
1 files changed, 32 insertions, 34 deletions
diff --git a/rules.js b/rules.js
index 028dd08..8c51e08 100644
--- a/rules.js
+++ b/rules.js
@@ -673,7 +673,7 @@ states.add_card_to_tableau = {
inactive: 'add a card to their tableau',
prompt() {
gen_spend_hero_points();
- view.prompt = 'Choose a card to add to your tableau';
+ view.prompt = 'Choose a card to add to your tableau.';
const faction = get_active_faction();
for (const c of game.hands[faction]) {
gen_action_card(c);
@@ -701,7 +701,7 @@ states.add_glory = {
inactive: 'add tokens to the Bag of Glory',
prompt() {
gen_spend_hero_points();
- view.prompt = 'Add tokens to the Bag of Glory';
+ view.prompt = 'Add tokens to the Bag of Glory.';
gen_action('add_glory');
},
spend_hp() {
@@ -717,21 +717,17 @@ states.add_glory = {
},
};
states.add_to_front = {
- inactive: 'add strength to a Front',
+ inactive: 'support a Front',
prompt() {
gen_spend_hero_points();
const args = get_active_node_args();
const possible_fronts = get_fronts_to_add_to(args.t);
- const number_of_fronts = possible_fronts.length;
- if (number_of_fronts === 0) {
- view.prompt = 'No valid front to target. You must skip';
+ if (possible_fronts.length === 0) {
+ view.prompt = 'No valid front to add strength to.';
gen_action('skip');
}
- else if (number_of_fronts === 1) {
- view.prompt = `Add strength to ${front_names[possible_fronts[0]]}`;
- }
else {
- view.prompt = 'Add strength to a Front';
+ view.prompt = `Support ${join_oxford_comma(possible_fronts.map(x => front_names[x]), 'or')}.`;
}
for (let f of possible_fronts) {
gen_action_front(f);
@@ -753,18 +749,15 @@ states.attack_front = {
inactive: 'attack a Front',
prompt() {
gen_spend_hero_points();
- const { t: target, n, src } = get_active_node_args();
+ const { t: target, n } = get_active_node_args();
const possible_fronts = get_fronts_to_add_to(target, n);
const number_of_fronts = possible_fronts.length;
if (number_of_fronts === 0) {
- view.prompt = 'No valid front to target. You must skip';
+ view.prompt = 'No valid front to attack.';
gen_action('skip');
}
- else if (number_of_fronts === 1) {
- view.prompt = `Attack ${front_names[possible_fronts[0]]}`;
- }
else {
- view.prompt = 'Attack a Front';
+ view.prompt = `Attack ${join_oxford_comma(possible_fronts.map(x => front_names[x]), 'or')}.`;
}
possible_fronts.forEach((id) => gen_action('front', id));
},
@@ -1288,7 +1281,10 @@ states.move_track = {
const name = track === data_1.LIBERTY_OR_COLLECTIVIZATION
? 'Liberty OR Collectivization'
: tracks[track].name;
- view.prompt = `Move ${name} ${value > 0 ? 'up' : 'down'}`;
+ if (value > 0)
+ view.prompt = `Move ${name} +${value} steps.`;
+ else
+ view.prompt = `Move ${name} \u2212${-value} steps.`;
if (track === data_1.GOVERNMENT && value === data_1.TOWARDS_CENTER) {
view.prompt = `Move ${name} towards center`;
}
@@ -1606,8 +1602,8 @@ states.remove_attack_from_fronts = {
const { f, v: card_id } = get_active_node_args();
view.prompt =
card_id === 6
- ? 'Choose a Front to remove an attack from'
- : 'Choose a Front to remove attacks from';
+ ? 'Remove an attack from a Front.'
+ : 'Remove attacks from a Front.';
const front_data = f ?? {};
let is_front_with_attacks = false;
data_1.FRONTS.forEach((id) => {
@@ -1643,6 +1639,7 @@ states.remove_attack_from_fronts = {
t: data_1.ANY,
v: card_id === 39 ? -2 : -1 * removed_value,
n: card_id === 16 ? id : undefined,
+ src: 'player_event'
}));
resolve_active_and_proceed();
}
@@ -1654,6 +1651,7 @@ states.remove_attack_from_fronts = {
insert_after_active_node(create_state_node('attack_front', get_active_faction(), {
t: data_1.ANY,
v: -2,
+ src: 'player_event'
}));
}
resolve_active_and_proceed();
@@ -1961,46 +1959,46 @@ states.use_strategy_medallion = {
};
function card1_event2() {
const value = game.tracks[data_1.FOREIGN_AID] >= 6 ? 3 : 2;
- insert_after_active_node(resolve_effect((0, data_1.create_effect)('front', data_1.NORTHERN, value)));
+ insert_after_active_node(resolve_effect((0, data_1.create_effect)('front', data_1.NORTHERN, value), 'player_event'));
resolve_active_and_proceed();
}
function card3_event2() {
const value = game.tracks[data_1.FOREIGN_AID] >= 8 ? 2 : 1;
- insert_after_active_node(resolve_effect((0, data_1.create_effect)('track', data_1.GOVERNMENT, value)));
+ insert_after_active_node(resolve_effect((0, data_1.create_effect)('track', data_1.GOVERNMENT, value), 'player_event'));
resolve_active_and_proceed();
}
function card10_event2() {
if (game.tracks[data_1.FOREIGN_AID] >= 6) {
- resolve_effect((0, data_1.create_effect)('draw_card', data_1.SELF, 2));
+ resolve_effect((0, data_1.create_effect)('draw_card', data_1.SELF, 2), 'player_event');
}
resolve_active_and_proceed();
}
function card16_event2() {
const value = game.tracks[data_1.GOVERNMENT] >= 6 ? 4 : 3;
- insert_after_active_node(resolve_effect((0, data_1.create_effect)('track', data_1.FOREIGN_AID, value)));
+ insert_after_active_node(resolve_effect((0, data_1.create_effect)('track', data_1.FOREIGN_AID, value), 'player_event'));
resolve_active_and_proceed();
}
function card17_event3() {
const value = game.tracks[data_1.GOVERNMENT] >= 6 ? -4 : -3;
- insert_after_active_node(resolve_effect((0, data_1.create_effect)('track', data_1.COLLECTIVIZATION, value)));
+ insert_after_active_node(resolve_effect((0, data_1.create_effect)('track', data_1.COLLECTIVIZATION, value), 'player_event'));
resolve_active_and_proceed();
}
function card20_event3() {
const value = game.tracks[data_1.SOVIET_SUPPORT] >= 6 ? 2 : 1;
insert_after_active_node(create_seq_node([
- resolve_effect((0, data_1.create_effect)('front', data_1.MADRID, value)),
- resolve_effect((0, data_1.create_effect)('front', data_1.SOUTHERN, value)),
+ resolve_effect((0, data_1.create_effect)('front', data_1.MADRID, value), 'player_event'),
+ resolve_effect((0, data_1.create_effect)('front', data_1.SOUTHERN, value), 'player_event'),
]));
resolve_active_and_proceed();
}
function card22_event3() {
const value = game.tracks[data_1.SOVIET_SUPPORT] >= 8 ? -3 : -3;
- insert_after_active_node(resolve_effect((0, data_1.create_effect)('track', data_1.GOVERNMENT, value)));
+ insert_after_active_node(resolve_effect((0, data_1.create_effect)('track', data_1.GOVERNMENT, value), 'player_event'));
resolve_active_and_proceed();
}
function card23_event1() {
const value = game.tracks[data_1.SOVIET_SUPPORT] >= 6 ? 4 : 3;
- insert_after_active_node(resolve_effect((0, data_1.create_effect)('front', data_1.ANY, value)));
+ insert_after_active_node(resolve_effect((0, data_1.create_effect)('front', data_1.ANY, value), 'player_event'));
resolve_active_and_proceed();
}
function card26_event1() {
@@ -2009,12 +2007,12 @@ function card26_event1() {
}
function card29_event2() {
const value = game.tracks[data_1.GOVERNMENT] <= 5 ? -3 : -2;
- insert_after_active_node(resolve_effect((0, data_1.create_effect)('track', data_1.LIBERTY, value)));
+ insert_after_active_node(resolve_effect((0, data_1.create_effect)('track', data_1.LIBERTY, value), 'player_event'));
resolve_active_and_proceed();
}
function card35_event2() {
const value = game.tracks[data_1.GOVERNMENT] <= 5 ? 2 : 1;
- insert_after_active_node(resolve_effect((0, data_1.create_effect)('track', data_1.SOVIET_SUPPORT, value)));
+ insert_after_active_node(resolve_effect((0, data_1.create_effect)('track', data_1.SOVIET_SUPPORT, value), 'player_event'));
resolve_active_and_proceed();
}
function card42_event3() {
@@ -2023,7 +2021,7 @@ function card42_event3() {
}
function card45_event2() {
if (game.tracks[data_1.LIBERTY] >= 6) {
- insert_after_active_node(resolve_effect((0, data_1.create_effect)('track', data_1.COLLECTIVIZATION, 1)));
+ insert_after_active_node(resolve_effect((0, data_1.create_effect)('track', data_1.COLLECTIVIZATION, 1), 'player_event'));
}
resolve_active_and_proceed();
}
@@ -2036,17 +2034,17 @@ function card46_event3() {
}
function card50_event2() {
const value = game.tracks[data_1.COLLECTIVIZATION] >= 8 ? 3 : 2;
- insert_after_active_node(resolve_effect((0, data_1.create_effect)('front', data_1.ARAGON, value)));
+ insert_after_active_node(resolve_effect((0, data_1.create_effect)('front', data_1.ARAGON, value), 'player_event'));
resolve_active_and_proceed();
}
function card53_event2() {
const value = game.tracks[data_1.LIBERTY] >= 8 ? 3 : 2;
- insert_after_active_node(resolve_effect((0, data_1.create_effect)('front', data_1.ANY, value)));
+ insert_after_active_node(resolve_effect((0, data_1.create_effect)('front', data_1.ANY, value), 'player_event'));
resolve_active_and_proceed();
}
function card54_event1() {
const value = game.tracks[data_1.COLLECTIVIZATION] >= 8 ? 3 : 2;
- insert_after_active_node(resolve_effect((0, data_1.create_effect)('track', data_1.LIBERTY, value)));
+ insert_after_active_node(resolve_effect((0, data_1.create_effect)('track', data_1.LIBERTY, value), 'player_event'));
resolve_active_and_proceed();
}
function setup_return_card_from_trash() {