From 59dea4f112065f499ca8ce7379953a22e52a2f48 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Sun, 9 Mar 2025 17:02:34 +0100 Subject: List morale bonus icons on prompt. --- play.js | 2 +- rules.js | 42 ++++++++++++++++++++++++++++++++++++++++-- rules.ts | 47 +++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 86 insertions(+), 5 deletions(-) diff --git a/play.js b/play.js index 2b439f9..e6d5b37 100644 --- a/play.js +++ b/play.js @@ -550,7 +550,7 @@ function on_update() { // eslint-disable-line no-unused-vars action_button("spend_hp", "Spend Hero Points") action_button("use_momentum", "Play second card (Momentum)") action_button("done", "Done") - action_button("end_turn", "End turn") + action_button("end_turn", "End Turn") action_button("undo", "Undo") for (e of action_register) diff --git a/rules.js b/rules.js index 7c89b4f..b371266 100644 --- a/rules.js +++ b/rules.js @@ -554,8 +554,10 @@ states.activate_icon = { inactive: 'activate an icon', prompt() { gen_spend_hero_points(); - view.prompt = 'Choose an icon to activate'; const c = cards[game.played_card]; + view.prompt = 'Morale Bonus: '; + view.prompt += join_oxford_comma(c.icons.map(get_icon_name), "or"); + view.prompt += '.'; for (const i of c.icons) { const count = get_icon_count_in_tableau(i); let direction = 0; @@ -1470,7 +1472,7 @@ function set_player_turn_prompt({ can_play_card, can_spend_hp, use_ap, use_momen view.prompt = 'Spend Hero Points.'; } else { - view.prompt = 'End turn.'; + view.prompt = 'Player Turn: Done.'; } } states.player_turn = { @@ -2789,6 +2791,42 @@ function get_player_order_in_game(first_player = game.initiative) { } return order; } +function join_oxford_comma(list, conjunction) { + let n = list.length; + if (n == 0) + return "nothing"; + if (n == 1) + return list[0]; + if (n == 2) + return list[0] + " " + conjunction + " " + list[1]; + let result = list[0]; + for (let i = 1; i < n; ++i) { + result += ", "; + if (i == n - 1) + result += conjunction + " "; + result += list[i]; + } + return result; +} +const icon_names = { + add_to_front: "+1 to Front", + collectivization: "Increase Collectivization", + foreign_aid: "Increase Foreign Aid", + liberty: "Increase Liberty", + soviet_support: "Increase Soviet Support", + government: "Increase Government", + d_collectivization: "Decrease Collectivization", + d_foreign_aid: "Decrease Foreign Aid", + d_government: "Decrease Government", + d_liberty: "Decrease Liberty", + d_soviet_support: "Decrease Soviet Support", + government_to_center: "Move Government to Center", + teamwork_on: "Turn on Teamwork Bonus", + draw_card: "Draw a Card", +}; +function get_icon_name(icon) { + return icon_names[icon]; +} function get_source_name(source) { switch (source) { case 'player_event': diff --git a/rules.ts b/rules.ts index 762411a..373d1cd 100644 --- a/rules.ts +++ b/rules.ts @@ -766,8 +766,12 @@ states.activate_icon = { inactive: 'activate an icon', prompt() { gen_spend_hero_points(); - view.prompt = 'Choose an icon to activate'; const c = cards[game.played_card] as PlayerCard; + + view.prompt = 'Morale Bonus: '; + view.prompt += join_oxford_comma(c.icons.map(get_icon_name), "or"); + view.prompt += '.'; + for (const i of c.icons) { const count = get_icon_count_in_tableau(i); let direction = 0; @@ -1819,7 +1823,7 @@ function set_player_turn_prompt({ } else if (can_spend_hp) { view.prompt = 'Spend Hero Points.'; } else { - view.prompt = 'End turn.'; + view.prompt = 'Player Turn: Done.'; } } @@ -3562,6 +3566,45 @@ function get_player_order_in_game( return order; } +function join_oxford_comma(list: string[], conjunction: string) { + let n = list.length + if (n == 0) + return "nothing"; + if (n == 1) + return list[0]; + if (n == 2) + return list[0] + " " + conjunction + " " + list[1]; + let result = list[0]; + for (let i = 1; i < n; ++i) { + result += ", "; + if (i == n - 1) + result += conjunction + " " + result += list[i]; + } + return result +} + +const icon_names = { + add_to_front: "+1 to Front", + collectivization: "Increase Collectivization", + foreign_aid: "Increase Foreign Aid", + liberty: "Increase Liberty", + soviet_support: "Increase Soviet Support", + government: "Increase Government", + d_collectivization: "Decrease Collectivization", + d_foreign_aid: "Decrease Foreign Aid", + d_government: "Decrease Government", + d_liberty: "Decrease Liberty", + d_soviet_support: "Decrease Soviet Support", + government_to_center: "Move Government to Center", + teamwork_on: "Turn on Teamwork Bonus", + draw_card: "Draw a Card", +} + +function get_icon_name(icon: Icon): string { + return icon_names[icon] +} + function get_source_name(source: EffectSource): string { switch (source) { case 'player_event': -- cgit v1.2.3