summaryrefslogtreecommitdiff
path: root/rules.ts
diff options
context:
space:
mode:
Diffstat (limited to 'rules.ts')
-rw-r--r--rules.ts65
1 files changed, 40 insertions, 25 deletions
diff --git a/rules.ts b/rules.ts
index 2f09ea7..cc1c0f6 100644
--- a/rules.ts
+++ b/rules.ts
@@ -2052,6 +2052,13 @@ states.player_turn = {
},
};
+function remove_blank_marker(b: number) {
+ 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() {
@@ -2070,24 +2077,32 @@ states.remove_blank_marker = {
resolve_spend_hp();
},
blank_marker(b: number) {
- 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
- );
+ remove_blank_marker(b);
+ resolve_active_and_proceed();
+ },
+ skip() {
+ resolve_active_and_proceed();
+ },
+};
- if (get_active_node_args()?.src === 'medallion') {
- // Used Archives medallion
- logi(`M${ARCHIVES_MEDALLION_ID} removed Blank from ${get_track_name(track_id)} ${space_id}`);
- game.used_medallions.push(ARCHIVES_MEDALLION_ID);
- pay_hero_points(faction, 1);
- } else {
- // Used Event
- logi(`Removed Blank from ${get_track_name(track_id)} ${space_id}`);
+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);
}
-
+ if (game.triggered_track_effects.length === 0) {
+ view.prompt = 'No Blank marker to remove.';
+ gen_action('skip');
+ }
+ },
+ blank_marker(b: number) {
+ const faction = get_active_faction();
+ pay_hero_points(faction, 1);
+ log(`>M${ARCHIVES_MEDALLION_ID}`);
+ remove_blank_marker(b);
+ game.used_medallions.push(ARCHIVES_MEDALLION_ID);
resolve_active_and_proceed();
},
skip() {
@@ -2234,13 +2249,13 @@ states.spend_hero_points = {
gen_action('draw_card');
if (can_use_medallion(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(VOLUNTEERS_MEDALLION_ID, faction)) {
- gen_action('add_to_front');
+ gen_action('volunteers');
}
if (hero_points < 2) {
@@ -2275,12 +2290,12 @@ states.spend_hero_points = {
gen_spend_hero_points_move_track(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: ANY,
v: 1,
})
@@ -2301,14 +2316,14 @@ 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(ARCHIVES_MEDALLION_ID);
} else {
game.used_medallions = [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: number) {
@@ -3727,8 +3742,8 @@ function get_source_name(source: EffectSource): string {
case 'tr4': return tracks[4].name + ' Trigger';
case 'track_icon':
throw "UNUSED"
- case 'medallion':
- return "Medallion";
+ case 'volunteers':
+ return 'Volunteers Medallion'
case MOMENTUM:
return 'Momentum';
}