diff options
author | Tor Andersson <tor@ccxvii.net> | 2025-03-08 16:30:14 +0100 |
---|---|---|
committer | Tor Andersson <tor@ccxvii.net> | 2025-03-08 16:33:30 +0100 |
commit | 9a05c2d2ca2b16dd0c80614ef48944b1440d6b0f (patch) | |
tree | eda278d14b4e3d8ad4128d3bc18b810d7ec67030 /rules.js | |
parent | f09742d99d19ce0af287f0fe363b20d28f8b22c2 (diff) | |
download | land-and-freedom-9a05c2d2ca2b16dd0c80614ef48944b1440d6b0f.tar.gz |
Prefix prompt with event names.
Diffstat (limited to 'rules.js')
-rw-r--r-- | rules.js | 60 |
1 files changed, 31 insertions, 29 deletions
@@ -189,9 +189,9 @@ function end_of_player_turn() { function start_of_player_turn() { const args = get_active_node_args(); const player = faction_player_map[args.f]; - log_h2(player, player); game.faction_turn = args.f; game.played_card = game.selected_cards[args.f][0]; + log_h2(cards[game.played_card].title, player); resolve_active_and_proceed(); } const engine_functions = { @@ -521,8 +521,7 @@ function start_turn() { const cardId = draw_fascist_card(); game.current_events.push(cardId); const card = cards[cardId]; - log_h2('Fascist Event', 'fascist'); - log(card.title); + log_h2(card.title, 'fascist'); game.fascist = 1; game.engine = card.effects.map((effect) => resolve_effect(effect, 'fascist_event')); if (game.year === 3 && game.turn === 4) { @@ -1500,7 +1499,7 @@ states.player_turn = { }, play_to_tableau() { const faction = get_active_faction(); - const { strength } = play_card(faction, 'play_to_tableau'); + const { strength } = play_card_to_tableau(faction); update_active_node_args({ use_morale_bonus: true, use_ap: true, @@ -1510,11 +1509,11 @@ states.player_turn = { }, play_for_event() { const faction = get_active_faction(); - const { effects } = play_card(faction, 'play_for_event'); + const { effects } = play_card_for_event(faction); update_active_node_args({ resolving_event: true, }); - const node = create_effects_node(effects); + const node = create_effects_node(effects, 'player_event'); node.c.push(create_function_node('end_resolving_event_effects')); insert_before_active_node(node); next(); @@ -2233,21 +2232,26 @@ function get_hand_limit(faction) { } return hand_limit; } -function play_card(faction, type) { +function play_card_for_event(faction) { const index = game.selected_cards[faction].length - 1; const card_id = game.selected_cards[faction][index]; const card = cards[card_id]; game.played_card = card_id; array_remove(game.hands[faction], game.hands[faction].indexOf(card_id)); array_remove(game.selected_cards[faction], index); - if (type === 'play_for_event') { - log_h3(`${game.active} plays ${card.title} for the Event`); - game.trash[faction].push(card_id); - } - else { - log_h3(`${game.active} plays ${card.title} to their Tableau`); - game.tableaus[faction].push(card_id); - } + log("Played for Event:"); + game.trash[faction].push(card_id); + return card; +} +function play_card_to_tableau(faction) { + const index = game.selected_cards[faction].length - 1; + const card_id = game.selected_cards[faction][index]; + const card = cards[card_id]; + game.played_card = card_id; + array_remove(game.hands[faction], game.hands[faction].indexOf(card_id)); + array_remove(game.selected_cards[faction], index); + log("Played to Tableau:"); + game.tableaus[faction].push(card_id); return card; } function resolve_fascist_test() { @@ -2479,9 +2483,9 @@ function victory_on_a_front(front_id) { log('Victory on ' + get_front_name(front_id)); gain_hero_points_in_player_order(game.fronts[front_id].contributions, 3); } -function create_effects_node(effects) { +function create_effects_node(effects, source) { const nodes = effects.reduce((accrued, current) => { - const node = resolve_effect(current); + const node = resolve_effect(current, source); if (node !== null) { accrued.push(node); } @@ -2677,7 +2681,7 @@ function logi(msg) { } function log_h1(msg) { log_br(); - log('.h1 ' + msg); + log('#t ' + msg); log_br(); } function log_h2(msg, player) { @@ -2689,11 +2693,8 @@ function log_h3(msg) { log_br(); log('.h3 ' + msg); } -function lowerCaseFirstLetter(val) { - return String(val).charAt(0).toLowerCase() + String(val).slice(1); -} function add_prompt_prefix(prompt, prefix) { - return `${prefix}: ${lowerCaseFirstLetter(prompt)}`; + return `${prefix}: ${prompt}`; } function get_active_faction() { return player_faction_map[game.active]; @@ -2770,13 +2771,14 @@ function get_player_order_in_game(first_player = game.initiative) { return order; } function get_source_name(source) { - const prefix_map = { - fascist_event: 'Fascist Event', - fascist_test: 'Fascist Test', - track_icon: 'Track Trigger', - momentum: 'Momentum', - }; - return prefix_map[source]; + switch (source) { + case 'player_event': return cards[game.played_card].title; + case 'fascist_event': return cards[game.current_events[game.current_events.length - 1]].title; + case 'fascist_test': return 'Fascist Test'; + case 'track_icon': return 'Track Trigger'; + case 'momentum': return 'Momentum'; + } + return '???'; } function get_factions_with_most_hero_poins() { let most_hero_points = null; |