diff options
author | Tor Andersson <tor@ccxvii.net> | 2025-03-09 17:02:34 +0100 |
---|---|---|
committer | Tor Andersson <tor@ccxvii.net> | 2025-03-09 17:02:34 +0100 |
commit | 59dea4f112065f499ca8ce7379953a22e52a2f48 (patch) | |
tree | 627917385651fb73d563a59b155d622dac51ed98 | |
parent | ef570959b52296b7c58a9a29ccdff5aad3d0afa7 (diff) | |
download | land-and-freedom-59dea4f112065f499ca8ce7379953a22e52a2f48.tar.gz |
List morale bonus icons on prompt.
-rw-r--r-- | play.js | 2 | ||||
-rw-r--r-- | rules.js | 42 | ||||
-rw-r--r-- | rules.ts | 47 |
3 files changed, 86 insertions, 5 deletions
@@ -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) @@ -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': @@ -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': |