summaryrefslogtreecommitdiff
path: root/rules.js
diff options
context:
space:
mode:
Diffstat (limited to 'rules.js')
-rw-r--r--rules.js57
1 files changed, 38 insertions, 19 deletions
diff --git a/rules.js b/rules.js
index 7655481..b81022d 100644
--- a/rules.js
+++ b/rules.js
@@ -1679,6 +1679,12 @@ states.player_turn = {
next();
},
};
+function remove_blank_marker(b) {
+ const track_id = Math.floor(b / 11);
+ const space_id = b % 11;
+ array_remove_item(game.triggered_track_effects, b);
+ logi(`Removed Blank from ${get_track_name(track_id)} ${space_id}`);
+}
states.remove_blank_marker = {
inactive: 'remove a Blank marker',
prompt() {
@@ -1696,18 +1702,31 @@ states.remove_blank_marker = {
resolve_spend_hp();
},
blank_marker(b) {
- const faction = get_active_faction();
- const track_id = Math.floor(b / 11);
- const space_id = b % 11;
- game.triggered_track_effects = game.triggered_track_effects.filter((id) => id !== b);
- if (get_active_node_args()?.src === 'medallion') {
- logi(`M${data_1.ARCHIVES_MEDALLION_ID} removed Blank from ${get_track_name(track_id)} ${space_id}`);
- game.used_medallions.push(data_1.ARCHIVES_MEDALLION_ID);
- pay_hero_points(faction, 1);
+ remove_blank_marker(b);
+ resolve_active_and_proceed();
+ },
+ skip() {
+ resolve_active_and_proceed();
+ },
+};
+states.remove_blank_marker_archives = {
+ inactive: 'remove a Blank marker',
+ prompt() {
+ view.prompt = 'Archives Medallion: Remove a Blank marker.';
+ for (const b of game.triggered_track_effects) {
+ gen_action_blank_marker(b);
}
- else {
- logi(`Removed Blank from ${get_track_name(track_id)} ${space_id}`);
+ if (game.triggered_track_effects.length === 0) {
+ view.prompt = 'No Blank marker to remove.';
+ gen_action('skip');
}
+ },
+ blank_marker(b) {
+ const faction = get_active_faction();
+ pay_hero_points(faction, 1);
+ log(`>M${data_1.ARCHIVES_MEDALLION_ID}`);
+ remove_blank_marker(b);
+ game.used_medallions.push(data_1.ARCHIVES_MEDALLION_ID);
resolve_active_and_proceed();
},
skip() {
@@ -1829,13 +1848,13 @@ states.spend_hero_points = {
}
gen_action('draw_card');
if (can_use_medallion(data_1.ARCHIVES_MEDALLION_ID, faction)) {
- gen_action('remove_blank_marker');
+ gen_action('archives');
if (game.triggered_track_effects.length === 0) {
- view.actions['remove_blank_marker'] = 0;
+ view.actions['archives'] = 0;
}
}
if (can_use_medallion(data_1.VOLUNTEERS_MEDALLION_ID, faction)) {
- gen_action('add_to_front');
+ gen_action('volunteers');
}
if (hero_points < 2) {
return;
@@ -1857,11 +1876,11 @@ states.spend_hero_points = {
}
gen_spend_hero_points_move_track(data_1.GOVERNMENT, Math.floor(hero_points / 4));
},
- add_to_front() {
+ volunteers() {
const faction = get_active_faction();
pay_hero_points(faction, 1);
insert_after_active_node(create_state_node('add_to_front', faction, {
- src: 'medallion',
+ src: 'volunteers',
t: data_1.ANY,
v: 1,
}));
@@ -1881,7 +1900,7 @@ states.spend_hero_points = {
draw_hand_cards(faction, 1);
resolve_active_and_proceed();
},
- remove_blank_marker() {
+ archives() {
const faction = get_active_faction();
if (game.used_medallions) {
game.used_medallions.push(data_1.ARCHIVES_MEDALLION_ID);
@@ -1889,7 +1908,7 @@ states.spend_hero_points = {
else {
game.used_medallions = [data_1.ARCHIVES_MEDALLION_ID];
}
- insert_after_active_node(create_state_node('remove_blank_marker', faction, { 'src': 'medallion' }));
+ insert_after_active_node(create_state_node('remove_blank_marker_archives', faction));
resolve_active_and_proceed();
},
tr0(x) {
@@ -2996,8 +3015,8 @@ function get_source_name(source) {
case 'tr4': return tracks[4].name + ' Trigger';
case 'track_icon':
throw "UNUSED";
- case 'medallion':
- return "Medallion";
+ case 'volunteers':
+ return 'Volunteers Medallion';
case data_1.MOMENTUM:
return 'Momentum';
}