diff options
-rw-r--r-- | events.txt | 136 | ||||
-rw-r--r-- | play.js | 4 | ||||
-rw-r--r-- | rules.js | 134 |
3 files changed, 139 insertions, 135 deletions
@@ -14,9 +14,9 @@ EVENT 1 SHADED 1 stay_eligible current DS - prompt "Select a Space to move in Units and Attack for free." + prompt "Select a space to move Units into and Attack for free." space 1 s - prompt `Move up to ${8-game.vm.pl.length} units in the selected space.` + prompt `Move up to ${8-game.vm.pl.length} units into the selected space.` mark_space move_to (game.vm.s) (is_ds_unit(p) && is_piece_on_map(p) && !is_piece_in_event_space(p) && game.vm.pl.length < 8) if (has_piece_faction(game.vm.s, BK) || has_piece_faction(game.vm.s, VE)) @@ -26,7 +26,7 @@ SHADED 1 log `Opposing Units to Rebelling in ${SPACE_NAME[game.vm.s]}` endif endspace - prompt "Free Attack in selected Space." + prompt "Free Attack in selected space." space 1 (s === game.vm.m[0] && can_attack_in_space(s)) free_attack endspace @@ -46,17 +46,17 @@ EVENT 2 SHADED 2 stay_eligible current DS - prompt "Attack for free in Mountain Passes or Punjab" + prompt "Attack in Mountain Passes or Punjab for free." space 1 ((s === S_MOUNTAIN_PASSES || s === S_PUNJAB) && has_ds_unit(s) && has_piece(s, MI, TROOPS)) free_attack endspace - prompt "Choose a Space with which to rearrange Units with Mountain Passes and Punjab" + prompt "Rearrange up to 6 Units among Mountain Passes and Punjab and one other space." space 1 (s !== S_MOUNTAIN_PASSES && s !== S_PUNJAB) mark_space endspace - prompt `Move up to ${6-game.vm.pp.length} Units between the selected Spaces.` + prompt `Move up to ${6-game.vm.pp.length} Units.` piece_opt 6 ([S_MOUNTAIN_PASSES, S_PUNJAB, game.vm.m[0]].includes(piece_space(p)) && is_ds_unit(p)) - prompt `Move up to ${6-game.vm.pp.length+1} Units between the selected Spaces.` + prompt `Move up to ${6-game.vm.pp.length+1} Units.` space 1 ((s === S_MOUNTAIN_PASSES || s === S_PUNJAB || s === game.vm.m[0]) && s !== piece_space(game.vm.p)) move endspace @@ -64,7 +64,7 @@ SHADED 2 EVENT 3 current REBEL_FACTIONS - prompt "Free Rally and gain 2 Resources in each Province adjacent to Warangal with your presence." + prompt "Free Rally and gain 2 Resources in each Province adjacent to Warangal where you have a piece." space_opt all (is_adjacent_to_city(C_WARANGAL, s) && has_piece_faction(s, game.current)) free_rally resources (game.current) 2 @@ -72,13 +72,13 @@ EVENT 3 SHADED 3 current DS - prompt "In each Province adjacent to Warangal with you presence, steal 2 Resources from each other Faction present." + prompt "In each Province adjacent to Warangal where you have a piece, steal 2 Resources from each other Faction present." space_opt all (is_adjacent_to_city(C_WARANGAL, s) && has_piece_faction(s, DS) && has_piece_enemy_faction(s, DS)) if has_piece_faction(game.vm.s, BK) - steal DS BK 2 + steal DS BK 2 endif if has_piece_faction(game.vm.s, VE) - steal DS VE 2 + steal DS VE 2 endif endspace @@ -93,7 +93,7 @@ EVENT 4 SHADED 4 stay_eligible current DS - prompt "Govern, without location requirements." + prompt "Govern ignoring location requirements." govern EVENT 5 @@ -111,7 +111,7 @@ EVENT 5 SHADED 5 stay_eligible current DS - prompt "Replace up to 3 opposing Units adjacent to Chittor." + prompt "Replace up to 3 opposing Units adjacent to Chittor with Troops." piece_undo_opt 3 (is_adjacent_to_city(C_CHITTOR, piece_space(p)) && is_enemy_unit(p)) replace DS TROOPS endpiece @@ -123,7 +123,7 @@ SHADED 5 EVENT 6 stay_eligible current REBEL_FACTIONS - prompt "Select a Province adjacent to Warangal to remove a Tributary marker." + prompt `Remove a Tributary marker in one Province adjacent to Warangal.` space_opt 1 (is_adjacent_to_city(C_WARANGAL, s)) remove_tributary prompt `Place up to 2 ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]}.` @@ -133,7 +133,7 @@ EVENT 6 SHADED 6 stay_eligible current DS - prompt "Select four contiguous spaces, finishing adjacent to Warangal" + prompt "Execute a Campaign ending in a Province adjacent to Warangal." shaded_6 shaded_6_2 @@ -158,9 +158,9 @@ SHADED 7 EVENT 8 current REBEL_FACTIONS - prompt `In each Province, replace a Delhi Sultanate Unit with a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]}.` + prompt `In each Province adjacent to Devagiri and/or Gulbarga, replace a Delhi Sultanate Unit with a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]}.` space_opt all (is_adjacent_to_city(C_DEVAGIRI, s) || is_adjacent_to_city(C_GULBARGA, s)) && has_ds_unit(s) - prompt `In each Province, replace a Delhi Sultanate Unit with a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]}.` + prompt `Peplace a Delhi Sultanate Unit with a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]}.` piece 1 is_ds_unit(p) && is_piece_in_event_space(p) replace (game.current) ELITE endpiece @@ -168,7 +168,7 @@ EVENT 8 SHADED 8 current DS - prompt `In each Province, free Govern and then add a Troop.` + prompt `In each Province adjacent to Devagiri and/or Gulbarga, Govern for free ignoring location requirements and place a Troop.` space_opt all (is_adjacent_to_city(C_DEVAGIRI, s) || is_adjacent_to_city(C_GULBARGA, s)) && can_govern_in_space(s) free_govern_in_space place_opt 1 DS TROOPS @@ -176,13 +176,13 @@ SHADED 8 EVENT 9 current VE - prompt "Compel in a Province adjacent to Warangal that you do not control and then Build there." + prompt "Compel in a Province adjacent to Warangal that you do not control, then Build there." add_influence VE space 1 (is_adjacent_to_city(C_WARANGAL, s) && !is_faction_control(s, game.current) && can_compel_in_space(s)) free_compel mark_space endspace - prompt `Build in the same Province.` + prompt `Build in ${SPACE_NAME[game.vm.m[0]]}.` space_opt 1 (s === game.vm.m[0] && can_place_piece(s, game.current, DISC)) free_build endspace @@ -199,9 +199,9 @@ SHADED 9 EVENT 10 stay_eligible - prompt "Move up to 4 Delhi Sultanate Units into adjacent Provinces." + prompt "Move up to 4 Delhi Sultanate Units to adjacent Provinces." piece_undo_opt 4 is_ds_unit(p) - prompt "Move Delhi Sultanate Unit into an adjacent space." + prompt "Move Delhi Sultanate Unit to an adjacent Province." space_no_undo 1 is_adjacent(s, piece_space(game.vm.p)) move endspace @@ -211,14 +211,14 @@ EVENT 10 SHADED 10 stay_eligible current DS - prompt "Move any Qasbah to Spaces containing Governors." + prompt "Move any Qasbahs to spaces containing Governors." piece_undo_opt all is_qasbah(p) - prompt "Move any Qasbah to Spaces containing Governors." + prompt "Move Qasbah to any space containing a Governor." space 1 has_governor(s) && !has_qasbah(s) move endspace endpiece - prompt "Add up to 2 Troops in each Space with a Qasbah." + prompt "Add up to 2 Troops in each space with a Qasbah." space_opt all has_qasbah(s) place_undo_opt 2 DS TROOPS endspace @@ -233,7 +233,7 @@ EVENT 11 SHADED 11 stay_eligible current DS - prompt "Remove 4 Mongol Invaders." + prompt "Remove up to 4 Mongol Invaders." piece_undo_opt 4 is_mongol_invader(p) summary_remove endpiece @@ -242,7 +242,7 @@ SHADED 11 EVENT 12 current REBEL_FACTIONS gain_cavalry 2 - prompt "Remove 4 Delhi Sultantes pieces from Provinces adjacent to Warangal." + prompt "Remove up to 4 Delhi Sultanate pieces from Provinces adjacent to Warangal." piece_undo_opt 4 (is_adjacent_to_city(C_WARANGAL, piece_space(p)) && piece_faction(p) === DS) summary_remove endpiece @@ -263,7 +263,7 @@ SHADED 12 asm (game.vm.count += 1) endspace endrepeat - prompt "Make a free Attack in a Province adjacent to Warangal." + prompt "Execute a free Limited Attack adjacent to Warangal." space 1 (is_adjacent_to_city(C_WARANGAL, s) && can_attack_in_space(s)) free_attack endspace @@ -289,14 +289,14 @@ SHADED 13 endspace prompt "Select a destination Province for the Rajas." space 1 (is_adjacent(s, game.vm.m) && has_piece_faction(s, BK)) - prompt "Move any number of Rajas to the adjacent Province." + prompt `Move any number of Rajas into `${SPACE_NAME[game.vm.m[0]]}.` piece_opt all (is_raja(p) && (piece_space(p) === game.vm.m[0])) move endpiece mark_space endspace current BK - prompt "Make a free Attack against the Vijayanagara Empire there." + prompt `Attack Vijayanagara Empire in ${SPACE_NAME[game.vm.m[0]]} for free.` space_opt 1 (game.vm.m[1] === s) free_attack VE endspace @@ -329,14 +329,14 @@ SHADED 14 EVENT 15 stay_eligible - prompt "Replace Governors with Rebelling Amirs in Provinces adjacent to Devagiri." + prompt "Replace any Governors adjacent to Devagiri with Rebelling Amirs." piece_undo_opt all is_adjacent_to_city(C_DEVAGIRI, piece_space(p)) && is_governor(p) set_piece_space mark_space replace_rebel BK ELITE set_space -1 endpiece - prompt "Remove a Tributary marker in a Province." + prompt "Remove a Tributary marker in one affected Province." space_opt 1 is_tributary(s) && set_has(game.vm.m, s) remove_tributary endspace @@ -389,7 +389,7 @@ SHADED 16 EVENT 17 current BK add_influence BK - prompt "Remove up to 5 Delhi Sultanate Units from Provinces with you presence." + prompt "Remove up to 5 Delhi Sultanate Units from Provinces where you have a piece." piece_undo_opt 5 is_ds_unit(p) && has_piece_faction(piece_space(p), BK) summary_remove endpiece @@ -398,11 +398,11 @@ EVENT 17 SHADED 17 prompt "Remove a Fort and up to 2 Amirs from one Province." space_opt 1 has_piece_faction(s, BK) - prompt "Remove a Fort from selected Province." + prompt `Remove a Fort from ${SPACE_NAME[game.vm.s]}.` piece_undo_opt 1 is_piece_in_event_space(p) && is_fort(p) remove endpiece - prompt "Remove up to 2 Amirs from selected Province." + prompt `Remove up to 2 Amirs from ${SPACE_NAME[game.vm.s]}.` piece_undo_opt 2 is_piece_in_event_space(p) && is_amir(p) summary_remove endpiece @@ -417,7 +417,7 @@ EVENT 18 add_influence BK endrepeat else - log "No Province shared." + log "No Province containing both Bahmani and Vijayanagara pieces." endif SHADED 18 @@ -454,26 +454,26 @@ SHADED 19 EVENT 20 current REBEL_FACTIONS add_influence (game.current) - prompt "In Orissa or an adjacent Province, you may Migrate, Rally and then Build." + prompt "In Orissa or an adjacent Province, you may free Migrate, then free Rally, then Build." space 1 (is_adjacent_to_city(C_WARANGAL, s) || s === S_BENGAL) mark_space - prompt "Migrate in selected Province." + prompt `Migrate in ${SPACE_NAME[game.vm.s]} for free.` if (can_migrate_in_space(game.vm.s)) free_migrate endif endspace - prompt "Rally in selected Province." + prompt `Rally in ${SPACE_NAME[game.vm.s]} for free.` space_opt 1 (game.vm.m[0] === s && can_rally_in_space(s)) free_rally endspace - prompt "Build in selected Province." + prompt `Build in ${SPACE_NAME[game.vm.s]}.` space_opt 1 (game.vm.m[0] === s && can_build_in_space(s)) free_build endspace SHADED 20 current DS - prompt "In Orissa, remove an enemy Structure, add a Governor, a Qasbah, 2 Troops and a Tributary marker." + prompt "In Orissa, remove a Temple/Fort, place a Governor, a Qasbah, up to 2 Troops and a Tributary marker." space 1 (s === S_ORISSA) piece_opt 1 ((is_temple(p) || is_fort(p)) && is_piece_in_event_space(p)) remove @@ -496,15 +496,15 @@ SHADED 21 if (can_campaign()) campaign endif - prompt "Govern, Attack or Demand Obedience in selected Province." - space 1 ([S_MALWA, S_MADHYADESH, S_JAUNPUR, S_GONDWANA].includes(s) && can_govern_attack_demande_in_space(s)) + prompt `Govern, Attack, or Demand Obedience in a Province adjacent to the Vindhya Range.` + space 1 ([S_MALWA, S_MADHYADESH, S_JAUNPUR, S_GONDWANA].includes(s) && can_govern_attack_demand_in_space(s)) govern_attack_demand endspace EVENT 22 stay_eligible current REBEL_FACTIONS - prompt `Build in any province with a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]}.` + prompt `Build in any Province with a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]}.` space 1 can_build_in_space(s) free_build endspace @@ -516,11 +516,11 @@ SHADED 22 space_opt 1 can_place_piece(s, DS, TROOPS) place_opt 1 DS TROOPS endspace - prompt "Place 2 Troops in one space." + prompt "Place up to 2 Troops in a second space." space_opt 1 can_place_piece(s, DS, TROOPS) place_opt 2 DS TROOPS endspace - prompt "Place 4 Troops in one space." + prompt "Place up to 4 Troops in a third space." space_opt 1 can_place_piece(s, DS, TROOPS) place_opt 4 DS TROOPS endspace @@ -533,7 +533,7 @@ EVENT 23 free_build log_br endspace - prompt "In each Province with a Temple, replace a Unit with a Raja." + prompt "Replace a Unit with a Raja in each Province with a Temple." space_opt all has_temple(s) && has_units_enemy_faction(s) piece_opt 1 is_enemy_unit(p) && is_piece_in_event_space(p) replace VE ELITE @@ -554,13 +554,13 @@ SHADED 23 EVENT 24 stay_eligible current VE - prompt "Free Migrate in up to 2 Provinces." + prompt "Free Migrate in up to 2 locations." space_opt 2 can_migrate_in_space(s) free_migrate mark_space endspace log_br - prompt "Replace a Unit with a Raja." + prompt "Replace a Unit with a Raja in one of the spaces." clean_p piece_opt 1 (set_has(game.vm.m, piece_space(p)) && is_enemy_unit(p)) replace (game.current) ELITE @@ -582,12 +582,12 @@ EVENT 25 SHADED 25 stay_eligible current DS - prompt "Place up to 2 Troops in 3 Provinces adjance to Goa or Warangal." + prompt "Place up to 2 Troops in 3 Provinces adjacent to Goa or Warangal." space_opt 3 (is_adjacent_to_city(C_GOA, s) || is_adjacent_to_city(C_WARANGAL, s)) mark_space place_opt 2 DS TROOPS endspace - prompt "Govern in one of the selected Province." + prompt "Govern in one of the selected Provinces for free." space 1 (can_govern_in_space(s) && set_has(game.vm.m, s)) free_govern_in_space endspace @@ -599,7 +599,7 @@ EVENT 26 EVENT 27 current BK add_influence BK - prompt "Place up to 2 Amirs in Sindh and Gujarat." + prompt "Place up to 2 Amirs in each of Sindh and Gujarat." space_opt all (s === S_GUJARAT || s === S_SINDH) && can_place_piece(s, game.current, ELITE) place_opt 2 BK ELITE endspace @@ -611,7 +611,7 @@ EVENT 27 SHADED 27 current DS - prompt "Place up to 2 Troops and a Governor in Sindh and Gujarat." + prompt "Place up to 2 Troops and a Governor in each of Sindh and Gujarat." space_opt all (s === S_GUJARAT || s === S_SINDH) && (can_place_piece(s, game.current, ELITE) || can_place_piece(s, game.current, TROOPS)) place_opt 2 DS TROOPS place_opt 1 DS ELITE @@ -642,9 +642,9 @@ SHADED 28 stay_eligible current [DS VE] if (game.current === DS) - prompt "In a space with Bahmani presence, you may add 2 Troops and free Attack without defenders." + prompt "In a space with a Bahmani piece, place up to 2 Troops and free Attack (defender rolls no dice)." else - prompt "In a space with Bahmani presence, you may add 2 Rajas and free Attack without defenders." + prompt "In a space with a Bahmani piece, place up to 2 Rajas and free Attack (defender rolls no dice)." endif space 1 (has_piece_faction(s, BK)) if (game.current === DS) @@ -675,31 +675,31 @@ SHADED 29 EVENT 30 stay_eligible current BK - prompt "Free Attack in each Province with a fort, without defenders." + prompt "Free Attack in each Province with a Fort (defender rolls no dice)." space_opt 5 (has_fort(s) && can_attack_in_space(s)) free_attack endspace SHADED 30 stay_eligible - prompt "Free limited Attak, without defenders." + prompt "Free limited Attack (attacker rolls 4 dice; defender rolls no dice)." space 1 (can_attack_in_space(s)) free_attack endspace EVENT 31 current REBEL_FACTIONS - prompt "Free Migrate in a Province adjacent to Vijayanagara." + prompt "Free Migrate into a Province adjacent to Vijayanagara." space_opt 1 (is_adjacent_to_city(C_VIJAYANAGARA, s) && can_migrate_in_space(s)) mark_space free_migrate clean_p - prompt "Remove an opposing Unit from the selected Province." + prompt `Remove an opposing Unit from ${SPACE_NAME[game.vm.s]}.` piece 1 (is_piece_in_event_space(p) && is_enemy_unit(p)) remove endpiece endspace - prompt "Free Attack in selected Province." + prompt `Free Attack in ${SPACE_NAME[game.vm.s]}.` space_opt 1 (s === game.vm.m[0] && can_attack_in_space(s)) free_attack endspace @@ -735,7 +735,7 @@ SHADED 32 EVENT 33 stay_eligible current (has_majority_goa()) - prompt "Remove up to 3 Opposing Units adjacent to Goa." + prompt "Remove up to 3 opposing Units adjacent to Goa." piece_opt 3 (is_adjacent_to_city(C_GOA, piece_space(p)) && is_enemy_piece(p)) summary_remove endpiece @@ -764,7 +764,7 @@ EVENT 35 stay_eligible current REBEL_FACTIONS add_influence (game.current) - prompt `Place a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]} in up to 3 Provinces with ${PIECE_FACTION_TYPE_NAME[other_rebel_faction(game.current)][ELITE]}.` + prompt `Place a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]} in up to 3 Provinces with a ${PIECE_FACTION_TYPE_NAME[other_rebel_faction(game.current)][ELITE]}.` space_opt 3 has_piece(s, other_rebel_faction(game.current), ELITE) && can_place_piece(s, game.current, ELITE) auto_place (game.current) ELITE endspace @@ -802,7 +802,7 @@ SUCC 0 log_h2 DS "The Sultanate reimposes its dominance." campaign force_current BK - prompt "Gain Cavalry token equal to Influence and Forts." + prompt "Gain Cavalry tokens equal to Influence and Forts." log_h2 BK "Military labor market thrives" gain_cavalry (game.inf[BK] + count_pieces_on_map(BK, DISC)) force_current VE @@ -851,23 +851,23 @@ SUCC 4 SUCC 5 force_current DS - prompt "Invaders are attacking in the Mountain Passes!" + prompt "Mongols attack the Mountain Passes!" space 1 (s === S_MOUNTAIN_PASSES && has_ds_unit(s) && has_mi_unit(s)) free_attack DS endspace - prompt "Invaders are moving towards Punjab." + prompt "Mongols move to Punjab." space 1 (s === S_PUNJAB) timurid_advance S_MOUNTAIN_PASSES S_PUNJAB endspace - prompt "Invaders are Attacking in Punjab!" + prompt "Mongols attack Punjab!" space 1 (s === S_PUNJAB && has_ds_unit(s) && has_mi_unit(s)) free_attack DS endspace - prompt "Invaders are moving towards Delhi." + prompt "Mongols move to Delhi." space 1 (s === S_DELHI) timurid_advance S_PUNJAB S_DELHI endspace - prompt "Invaders are laying a siege to Delhi!" + prompt "Mongols lay siege to Delhi!" space 1 (s === S_DELHI && has_ds_unit(s) && has_mi_unit(s)) while (has_ds_unit(game.vm.s) && has_mi_unit(game.vm.s)) free_attack DS @@ -1395,6 +1395,10 @@ const F_MI = '<img class="f" src="images/Flags_MI.png">' const I_BK = '<img class="i" src="images/Influence_BK.png">' const I_VE = '<img class="i" src="images/Influence_VE.png">' +function on_prompt(text) { + return text.replaceAll("a Amir", "an Amir") +} + function on_log(text) { let p = document.createElement("div") let sub_text = "" @@ -5667,7 +5667,7 @@ states.vm_conspire_trade = { } } -function can_govern_attack_demande_in_space(s) { +function can_govern_attack_demand_in_space(s) { if ( (can_govern() && can_govern_in_space(s)) || (can_attack() && can_attack_in_space(s)) || @@ -5935,9 +5935,9 @@ CODE[1 * 2 + 0] = [ CODE[1 * 2 + 1] = [ [ vm_stay_eligible ], [ vm_current, DS ], - [ vm_prompt, "Select a Space to move in Units and Attack for free." ], + [ vm_prompt, "Select a space to move Units into and Attack for free." ], [ vm_space, true, 1, 1, (s)=>s ], - [ vm_prompt, ()=>`Move up to ${8-game.vm.pl.length} units in the selected space.` ], + [ vm_prompt, ()=>`Move up to ${8-game.vm.pl.length} units into the selected space.` ], [ vm_mark_space ], [ vm_move_to, ()=>(game.vm.s), (p,s)=>(is_ds_unit(p) && is_piece_on_map(p) && !is_piece_in_event_space(p) && game.vm.pl.length < 8) ], [ vm_if, ()=>(has_piece_faction(game.vm.s, BK) || has_piece_faction(game.vm.s, VE)) ], @@ -5947,7 +5947,7 @@ CODE[1 * 2 + 1] = [ [ vm_log, ()=>`Opposing Units to Rebelling in ${SPACE_NAME[game.vm.s]}` ], [ vm_endif ], [ vm_endspace ], - [ vm_prompt, "Free Attack in selected Space." ], + [ vm_prompt, "Free Attack in selected space." ], [ vm_space, true, 1, 1, (s)=>(s === game.vm.m[0] && can_attack_in_space(s)) ], [ vm_free_attack ], [ vm_endspace ], @@ -5972,17 +5972,17 @@ CODE[2 * 2 + 0] = [ CODE[2 * 2 + 1] = [ [ vm_stay_eligible ], [ vm_current, DS ], - [ vm_prompt, "Attack for free in Mountain Passes or Punjab" ], + [ vm_prompt, "Attack in Mountain Passes or Punjab for free." ], [ vm_space, true, 1, 1, (s)=>((s === S_MOUNTAIN_PASSES || s === S_PUNJAB) && has_ds_unit(s) && has_piece(s, MI, TROOPS)) ], [ vm_free_attack ], [ vm_endspace ], - [ vm_prompt, "Choose a Space with which to rearrange Units with Mountain Passes and Punjab" ], + [ vm_prompt, "Rearrange up to 6 Units among Mountain Passes and Punjab and one other space." ], [ vm_space, true, 1, 1, (s)=>(s !== S_MOUNTAIN_PASSES && s !== S_PUNJAB) ], [ vm_mark_space ], [ vm_endspace ], - [ vm_prompt, ()=>`Move up to ${6-game.vm.pp.length} Units between the selected Spaces.` ], + [ vm_prompt, ()=>`Move up to ${6-game.vm.pp.length} Units.` ], [ vm_piece, false, 0, 6, (p,s)=>([S_MOUNTAIN_PASSES, S_PUNJAB, game.vm.m[0]].includes(piece_space(p)) && is_ds_unit(p)) ], - [ vm_prompt, ()=>`Move up to ${6-game.vm.pp.length+1} Units between the selected Spaces.` ], + [ vm_prompt, ()=>`Move up to ${6-game.vm.pp.length+1} Units.` ], [ vm_space, true, 1, 1, (s)=>((s === S_MOUNTAIN_PASSES || s === S_PUNJAB || s === game.vm.m[0]) && s !== piece_space(game.vm.p)) ], [ vm_move ], [ vm_endspace ], @@ -5993,7 +5993,7 @@ CODE[2 * 2 + 1] = [ // EVENT 3 CODE[3 * 2 + 0] = [ [ vm_current, REBEL_FACTIONS ], - [ vm_prompt, "Free Rally and gain 2 Resources in each Province adjacent to Warangal with your presence." ], + [ vm_prompt, "Free Rally and gain 2 Resources in each Province adjacent to Warangal where you have a piece." ], [ vm_space, true, 0, 999, (s)=>(is_adjacent_to_city(C_WARANGAL, s) && has_piece_faction(s, game.current)) ], [ vm_free_rally ], [ vm_resources, false, ()=>(game.current), 2 ], @@ -6004,7 +6004,7 @@ CODE[3 * 2 + 0] = [ // SHADED 3 CODE[3 * 2 + 1] = [ [ vm_current, DS ], - [ vm_prompt, "In each Province adjacent to Warangal with you presence, steal 2 Resources from each other Faction present." ], + [ vm_prompt, "In each Province adjacent to Warangal where you have a piece, steal 2 Resources from each other Faction present." ], [ vm_space, true, 0, 999, (s)=>(is_adjacent_to_city(C_WARANGAL, s) && has_piece_faction(s, DS) && has_piece_enemy_faction(s, DS)) ], [ vm_if, ()=>has_piece_faction(game.vm.s, BK) ], [ vm_steal, DS, BK, 2 ], @@ -6031,7 +6031,7 @@ CODE[4 * 2 + 0] = [ CODE[4 * 2 + 1] = [ [ vm_stay_eligible ], [ vm_current, DS ], - [ vm_prompt, "Govern, without location requirements." ], + [ vm_prompt, "Govern ignoring location requirements." ], [ vm_govern ], [ vm_return ], ] @@ -6055,7 +6055,7 @@ CODE[5 * 2 + 0] = [ CODE[5 * 2 + 1] = [ [ vm_stay_eligible ], [ vm_current, DS ], - [ vm_prompt, "Replace up to 3 opposing Units adjacent to Chittor." ], + [ vm_prompt, "Replace up to 3 opposing Units adjacent to Chittor with Troops." ], [ vm_piece, true, 0, 3, (p,s)=>(is_adjacent_to_city(C_CHITTOR, piece_space(p)) && is_enemy_unit(p)) ], [ vm_replace, DS, TROOPS, false, false ], [ vm_endpiece ], @@ -6070,7 +6070,7 @@ CODE[5 * 2 + 1] = [ CODE[6 * 2 + 0] = [ [ vm_stay_eligible ], [ vm_current, REBEL_FACTIONS ], - [ vm_prompt, "Select a Province adjacent to Warangal to remove a Tributary marker." ], + [ vm_prompt, ()=>`Remove a Tributary marker in one Province adjacent to Warangal.` ], [ vm_space, true, 0, 1, (s)=>(is_adjacent_to_city(C_WARANGAL, s)) ], [ vm_remove_tributary ], [ vm_prompt, ()=>`Place up to 2 ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]}.` ], @@ -6083,7 +6083,7 @@ CODE[6 * 2 + 0] = [ CODE[6 * 2 + 1] = [ [ vm_stay_eligible ], [ vm_current, DS ], - [ vm_prompt, "Select four contiguous spaces, finishing adjacent to Warangal" ], + [ vm_prompt, "Execute a Campaign ending in a Province adjacent to Warangal." ], [ vm_shaded_6 ], [ vm_shaded_6_2 ], [ vm_return ], @@ -6117,9 +6117,9 @@ CODE[7 * 2 + 1] = [ // EVENT 8 CODE[8 * 2 + 0] = [ [ vm_current, REBEL_FACTIONS ], - [ vm_prompt, ()=>`In each Province, replace a Delhi Sultanate Unit with a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]}.` ], + [ vm_prompt, ()=>`In each Province adjacent to Devagiri and/or Gulbarga, replace a Delhi Sultanate Unit with a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]}.` ], [ vm_space, true, 0, 999, (s)=>(is_adjacent_to_city(C_DEVAGIRI, s) || is_adjacent_to_city(C_GULBARGA, s)) && has_ds_unit(s) ], - [ vm_prompt, ()=>`In each Province, replace a Delhi Sultanate Unit with a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]}.` ], + [ vm_prompt, ()=>`Peplace a Delhi Sultanate Unit with a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]}.` ], [ vm_piece, false, 1, 1, (p,s)=>is_ds_unit(p) && is_piece_in_event_space(p) ], [ vm_replace, ()=>(game.current), ELITE, false, false ], [ vm_endpiece ], @@ -6130,7 +6130,7 @@ CODE[8 * 2 + 0] = [ // SHADED 8 CODE[8 * 2 + 1] = [ [ vm_current, DS ], - [ vm_prompt, ()=>`In each Province, free Govern and then add a Troop.` ], + [ vm_prompt, ()=>`In each Province adjacent to Devagiri and/or Gulbarga, Govern for free ignoring location requirements and place a Troop.` ], [ vm_space, true, 0, 999, (s)=>(is_adjacent_to_city(C_DEVAGIRI, s) || is_adjacent_to_city(C_GULBARGA, s)) && can_govern_in_space(s) ], [ vm_free_govern_in_space ], [ vm_place, false, 1, 1, DS, TROOPS ], @@ -6141,13 +6141,13 @@ CODE[8 * 2 + 1] = [ // EVENT 9 CODE[9 * 2 + 0] = [ [ vm_current, VE ], - [ vm_prompt, "Compel in a Province adjacent to Warangal that you do not control and then Build there." ], + [ vm_prompt, "Compel in a Province adjacent to Warangal that you do not control, then Build there." ], [ vm_add_influence, VE ], [ vm_space, true, 1, 1, (s)=>(is_adjacent_to_city(C_WARANGAL, s) && !is_faction_control(s, game.current) && can_compel_in_space(s)) ], [ vm_free_compel ], [ vm_mark_space ], [ vm_endspace ], - [ vm_prompt, ()=>`Build in the same Province.` ], + [ vm_prompt, ()=>`Build in ${SPACE_NAME[game.vm.m[0]]}.` ], [ vm_space, true, 0, 1, (s)=>(s === game.vm.m[0] && can_place_piece(s, game.current, DISC)) ], [ vm_free_build ], [ vm_endspace ], @@ -6170,9 +6170,9 @@ CODE[9 * 2 + 1] = [ // EVENT 10 CODE[10 * 2 + 0] = [ [ vm_stay_eligible ], - [ vm_prompt, "Move up to 4 Delhi Sultanate Units into adjacent Provinces." ], + [ vm_prompt, "Move up to 4 Delhi Sultanate Units to adjacent Provinces." ], [ vm_piece, true, 0, 4, (p,s)=>is_ds_unit(p) ], - [ vm_prompt, "Move Delhi Sultanate Unit into an adjacent space." ], + [ vm_prompt, "Move Delhi Sultanate Unit to an adjacent Province." ], [ vm_space, false, 1, 1, (s)=>is_adjacent(s, piece_space(game.vm.p)) ], [ vm_move ], [ vm_endspace ], @@ -6185,14 +6185,14 @@ CODE[10 * 2 + 0] = [ CODE[10 * 2 + 1] = [ [ vm_stay_eligible ], [ vm_current, DS ], - [ vm_prompt, "Move any Qasbah to Spaces containing Governors." ], + [ vm_prompt, "Move any Qasbahs to spaces containing Governors." ], [ vm_piece, true, 0, 999, (p,s)=>is_qasbah(p) ], - [ vm_prompt, "Move any Qasbah to Spaces containing Governors." ], + [ vm_prompt, "Move Qasbah to any space containing a Governor." ], [ vm_space, true, 1, 1, (s)=>has_governor(s) && !has_qasbah(s) ], [ vm_move ], [ vm_endspace ], [ vm_endpiece ], - [ vm_prompt, "Add up to 2 Troops in each Space with a Qasbah." ], + [ vm_prompt, "Add up to 2 Troops in each space with a Qasbah." ], [ vm_space, true, 0, 999, (s)=>has_qasbah(s) ], [ vm_place, true, 1, 2, DS, TROOPS ], [ vm_endspace ], @@ -6213,7 +6213,7 @@ CODE[11 * 2 + 0] = [ CODE[11 * 2 + 1] = [ [ vm_stay_eligible ], [ vm_current, DS ], - [ vm_prompt, "Remove 4 Mongol Invaders." ], + [ vm_prompt, "Remove up to 4 Mongol Invaders." ], [ vm_piece, true, 0, 4, (p,s)=>is_mongol_invader(p) ], [ vm_summary_remove ], [ vm_endpiece ], @@ -6225,7 +6225,7 @@ CODE[11 * 2 + 1] = [ CODE[12 * 2 + 0] = [ [ vm_current, REBEL_FACTIONS ], [ vm_gain_cavalry, ()=>2 ], - [ vm_prompt, "Remove 4 Delhi Sultantes pieces from Provinces adjacent to Warangal." ], + [ vm_prompt, "Remove up to 4 Delhi Sultanate pieces from Provinces adjacent to Warangal." ], [ vm_piece, true, 0, 4, (p,s)=>(is_adjacent_to_city(C_WARANGAL, piece_space(p)) && piece_faction(p) === DS) ], [ vm_summary_remove ], [ vm_endpiece ], @@ -6249,7 +6249,7 @@ CODE[12 * 2 + 1] = [ [ vm_asm, ()=>(game.vm.count += 1) ], [ vm_endspace ], [ vm_endrepeat ], - [ vm_prompt, "Make a free Attack in a Province adjacent to Warangal." ], + [ vm_prompt, "Execute a free Limited Attack adjacent to Warangal." ], [ vm_space, true, 1, 1, (s)=>(is_adjacent_to_city(C_WARANGAL, s) && can_attack_in_space(s)) ], [ vm_free_attack ], [ vm_endspace ], @@ -6281,14 +6281,14 @@ CODE[13 * 2 + 1] = [ [ vm_endspace ], [ vm_prompt, "Select a destination Province for the Rajas." ], [ vm_space, true, 1, 1, (s)=>(is_adjacent(s, game.vm.m) && has_piece_faction(s, BK)) ], - [ vm_prompt, "Move any number of Rajas to the adjacent Province." ], + [ vm_prompt, ()=>`Move any number of Rajas into `${SPACE_NAME[game.vm.m[0]]}.` ], [ vm_piece, false, 0, 999, (p,s)=>(is_raja(p) && (piece_space(p) === game.vm.m[0])) ], [ vm_move ], [ vm_endpiece ], [ vm_mark_space ], [ vm_endspace ], [ vm_current, BK ], - [ vm_prompt, "Make a free Attack against the Vijayanagara Empire there." ], + [ vm_prompt, ()=>`Attack Vijayanagara Empire in ${SPACE_NAME[game.vm.m[0]]} for free.` ], [ vm_space, true, 0, 1, (s)=>(game.vm.m[1] === s) ], [ vm_free_attack, VE ], [ vm_endspace ], @@ -6330,14 +6330,14 @@ CODE[14 * 2 + 1] = [ // EVENT 15 CODE[15 * 2 + 0] = [ [ vm_stay_eligible ], - [ vm_prompt, "Replace Governors with Rebelling Amirs in Provinces adjacent to Devagiri." ], + [ vm_prompt, "Replace any Governors adjacent to Devagiri with Rebelling Amirs." ], [ vm_piece, true, 0, 999, (p,s)=>is_adjacent_to_city(C_DEVAGIRI, piece_space(p)) && is_governor(p) ], [ vm_set_piece_space ], [ vm_mark_space ], [ vm_replace, BK, ELITE, true, false ], [ vm_set_space, -1 ], [ vm_endpiece ], - [ vm_prompt, "Remove a Tributary marker in a Province." ], + [ vm_prompt, "Remove a Tributary marker in one affected Province." ], [ vm_space, true, 0, 1, (s)=>is_tributary(s) && set_has(game.vm.m, s) ], [ vm_remove_tributary ], [ vm_endspace ], @@ -6402,7 +6402,7 @@ CODE[16 * 2 + 1] = [ CODE[17 * 2 + 0] = [ [ vm_current, BK ], [ vm_add_influence, BK ], - [ vm_prompt, "Remove up to 5 Delhi Sultanate Units from Provinces with you presence." ], + [ vm_prompt, "Remove up to 5 Delhi Sultanate Units from Provinces where you have a piece." ], [ vm_piece, true, 0, 5, (p,s)=>is_ds_unit(p) && has_piece_faction(piece_space(p), BK) ], [ vm_summary_remove ], [ vm_endpiece ], @@ -6414,11 +6414,11 @@ CODE[17 * 2 + 0] = [ CODE[17 * 2 + 1] = [ [ vm_prompt, "Remove a Fort and up to 2 Amirs from one Province." ], [ vm_space, true, 0, 1, (s)=>has_piece_faction(s, BK) ], - [ vm_prompt, "Remove a Fort from selected Province." ], + [ vm_prompt, ()=>`Remove a Fort from ${SPACE_NAME[game.vm.s]}.` ], [ vm_piece, true, 0, 1, (p,s)=>is_piece_in_event_space(p) && is_fort(p) ], [ vm_remove ], [ vm_endpiece ], - [ vm_prompt, "Remove up to 2 Amirs from selected Province." ], + [ vm_prompt, ()=>`Remove up to 2 Amirs from ${SPACE_NAME[game.vm.s]}.` ], [ vm_piece, true, 0, 2, (p,s)=>is_piece_in_event_space(p) && is_amir(p) ], [ vm_summary_remove ], [ vm_endpiece ], @@ -6436,7 +6436,7 @@ CODE[18 * 2 + 0] = [ [ vm_add_influence, BK ], [ vm_endrepeat ], [ vm_else ], - [ vm_log, "No Province shared." ], + [ vm_log, "No Province containing both Bahmani and Vijayanagara pieces." ], [ vm_endif ], [ vm_return ], ] @@ -6485,19 +6485,19 @@ CODE[19 * 2 + 1] = [ CODE[20 * 2 + 0] = [ [ vm_current, REBEL_FACTIONS ], [ vm_add_influence, ()=>(game.current) ], - [ vm_prompt, "In Orissa or an adjacent Province, you may Migrate, Rally and then Build." ], + [ vm_prompt, "In Orissa or an adjacent Province, you may free Migrate, then free Rally, then Build." ], [ vm_space, true, 1, 1, (s)=>(is_adjacent_to_city(C_WARANGAL, s) || s === S_BENGAL) ], [ vm_mark_space ], - [ vm_prompt, "Migrate in selected Province." ], + [ vm_prompt, ()=>`Migrate in ${SPACE_NAME[game.vm.s]} for free.` ], [ vm_if, ()=>(can_migrate_in_space(game.vm.s)) ], [ vm_free_migrate ], [ vm_endif ], [ vm_endspace ], - [ vm_prompt, "Rally in selected Province." ], + [ vm_prompt, ()=>`Rally in ${SPACE_NAME[game.vm.s]} for free.` ], [ vm_space, true, 0, 1, (s)=>(game.vm.m[0] === s && can_rally_in_space(s)) ], [ vm_free_rally ], [ vm_endspace ], - [ vm_prompt, "Build in selected Province." ], + [ vm_prompt, ()=>`Build in ${SPACE_NAME[game.vm.s]}.` ], [ vm_space, true, 0, 1, (s)=>(game.vm.m[0] === s && can_build_in_space(s)) ], [ vm_free_build ], [ vm_endspace ], @@ -6507,7 +6507,7 @@ CODE[20 * 2 + 0] = [ // SHADED 20 CODE[20 * 2 + 1] = [ [ vm_current, DS ], - [ vm_prompt, "In Orissa, remove an enemy Structure, add a Governor, a Qasbah, 2 Troops and a Tributary marker." ], + [ vm_prompt, "In Orissa, remove a Temple/Fort, place a Governor, a Qasbah, up to 2 Troops and a Tributary marker." ], [ vm_space, true, 1, 1, (s)=>(s === S_ORISSA) ], [ vm_piece, false, 0, 1, (p,s)=>((is_temple(p) || is_fort(p)) && is_piece_in_event_space(p)) ], [ vm_remove ], @@ -6536,8 +6536,8 @@ CODE[21 * 2 + 1] = [ [ vm_if, ()=>(can_campaign()) ], [ vm_campaign ], [ vm_endif ], - [ vm_prompt, "Govern, Attack or Demand Obedience in selected Province." ], - [ vm_space, true, 1, 1, (s)=>([S_MALWA, S_MADHYADESH, S_JAUNPUR, S_GONDWANA].includes(s) && can_govern_attack_demande_in_space(s)) ], + [ vm_prompt, ()=>`Govern, Attack, or Demand Obedience in a Province adjacent to the Vindhya Range.` ], + [ vm_space, true, 1, 1, (s)=>([S_MALWA, S_MADHYADESH, S_JAUNPUR, S_GONDWANA].includes(s) && can_govern_attack_demand_in_space(s)) ], [ vm_govern_attack_demand ], [ vm_endspace ], [ vm_return ], @@ -6547,7 +6547,7 @@ CODE[21 * 2 + 1] = [ CODE[22 * 2 + 0] = [ [ vm_stay_eligible ], [ vm_current, REBEL_FACTIONS ], - [ vm_prompt, ()=>`Build in any province with a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]}.` ], + [ vm_prompt, ()=>`Build in any Province with a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]}.` ], [ vm_space, true, 1, 1, (s)=>can_build_in_space(s) ], [ vm_free_build ], [ vm_endspace ], @@ -6562,11 +6562,11 @@ CODE[22 * 2 + 1] = [ [ vm_space, true, 0, 1, (s)=>can_place_piece(s, DS, TROOPS) ], [ vm_place, false, 1, 1, DS, TROOPS ], [ vm_endspace ], - [ vm_prompt, "Place 2 Troops in one space." ], + [ vm_prompt, "Place up to 2 Troops in a second space." ], [ vm_space, true, 0, 1, (s)=>can_place_piece(s, DS, TROOPS) ], [ vm_place, false, 1, 2, DS, TROOPS ], [ vm_endspace ], - [ vm_prompt, "Place 4 Troops in one space." ], + [ vm_prompt, "Place up to 4 Troops in a third space." ], [ vm_space, true, 0, 1, (s)=>can_place_piece(s, DS, TROOPS) ], [ vm_place, false, 1, 4, DS, TROOPS ], [ vm_endspace ], @@ -6582,7 +6582,7 @@ CODE[23 * 2 + 0] = [ [ vm_free_build ], [ vm_log_br ], [ vm_endspace ], - [ vm_prompt, "In each Province with a Temple, replace a Unit with a Raja." ], + [ vm_prompt, "Replace a Unit with a Raja in each Province with a Temple." ], [ vm_space, true, 0, 999, (s)=>has_temple(s) && has_units_enemy_faction(s) ], [ vm_piece, false, 0, 1, (p,s)=>is_enemy_unit(p) && is_piece_in_event_space(p) ], [ vm_replace, VE, ELITE, false, false ], @@ -6609,13 +6609,13 @@ CODE[23 * 2 + 1] = [ CODE[24 * 2 + 0] = [ [ vm_stay_eligible ], [ vm_current, VE ], - [ vm_prompt, "Free Migrate in up to 2 Provinces." ], + [ vm_prompt, "Free Migrate in up to 2 locations." ], [ vm_space, true, 0, 2, (s)=>can_migrate_in_space(s) ], [ vm_free_migrate ], [ vm_mark_space ], [ vm_endspace ], [ vm_log_br ], - [ vm_prompt, "Replace a Unit with a Raja." ], + [ vm_prompt, "Replace a Unit with a Raja in one of the spaces." ], [ vm_clean_p ], [ vm_piece, false, 0, 1, (p,s)=>(set_has(game.vm.m, piece_space(p)) && is_enemy_unit(p)) ], [ vm_replace, ()=>(game.current), ELITE, false, false ], @@ -6646,12 +6646,12 @@ CODE[25 * 2 + 0] = [ CODE[25 * 2 + 1] = [ [ vm_stay_eligible ], [ vm_current, DS ], - [ vm_prompt, "Place up to 2 Troops in 3 Provinces adjance to Goa or Warangal." ], + [ vm_prompt, "Place up to 2 Troops in 3 Provinces adjacent to Goa or Warangal." ], [ vm_space, true, 0, 3, (s)=>(is_adjacent_to_city(C_GOA, s) || is_adjacent_to_city(C_WARANGAL, s)) ], [ vm_mark_space ], [ vm_place, false, 1, 2, DS, TROOPS ], [ vm_endspace ], - [ vm_prompt, "Govern in one of the selected Province." ], + [ vm_prompt, "Govern in one of the selected Provinces for free." ], [ vm_space, true, 1, 1, (s)=>(can_govern_in_space(s) && set_has(game.vm.m, s)) ], [ vm_free_govern_in_space ], [ vm_endspace ], @@ -6669,7 +6669,7 @@ CODE[26 * 2 + 0] = [ CODE[27 * 2 + 0] = [ [ vm_current, BK ], [ vm_add_influence, BK ], - [ vm_prompt, "Place up to 2 Amirs in Sindh and Gujarat." ], + [ vm_prompt, "Place up to 2 Amirs in each of Sindh and Gujarat." ], [ vm_space, true, 0, 999, (s)=>(s === S_GUJARAT || s === S_SINDH) && can_place_piece(s, game.current, ELITE) ], [ vm_place, false, 1, 2, BK, ELITE ], [ vm_endspace ], @@ -6684,7 +6684,7 @@ CODE[27 * 2 + 0] = [ // SHADED 27 CODE[27 * 2 + 1] = [ [ vm_current, DS ], - [ vm_prompt, "Place up to 2 Troops and a Governor in Sindh and Gujarat." ], + [ vm_prompt, "Place up to 2 Troops and a Governor in each of Sindh and Gujarat." ], [ vm_space, true, 0, 999, (s)=>(s === S_GUJARAT || s === S_SINDH) && (can_place_piece(s, game.current, ELITE) || can_place_piece(s, game.current, TROOPS)) ], [ vm_place, false, 1, 2, DS, TROOPS ], [ vm_place, false, 1, 1, DS, ELITE ], @@ -6721,9 +6721,9 @@ CODE[28 * 2 + 1] = [ [ vm_stay_eligible ], [ vm_current, [DS, VE] ], [ vm_if, ()=>(game.current === DS) ], - [ vm_prompt, "In a space with Bahmani presence, you may add 2 Troops and free Attack without defenders." ], + [ vm_prompt, "In a space with a Bahmani piece, place up to 2 Troops and free Attack (defender rolls no dice)." ], [ vm_else ], - [ vm_prompt, "In a space with Bahmani presence, you may add 2 Rajas and free Attack without defenders." ], + [ vm_prompt, "In a space with a Bahmani piece, place up to 2 Rajas and free Attack (defender rolls no dice)." ], [ vm_endif ], [ vm_space, true, 1, 1, (s)=>(has_piece_faction(s, BK)) ], [ vm_if, ()=>(game.current === DS) ], @@ -6763,7 +6763,7 @@ CODE[29 * 2 + 1] = [ CODE[30 * 2 + 0] = [ [ vm_stay_eligible ], [ vm_current, BK ], - [ vm_prompt, "Free Attack in each Province with a fort, without defenders." ], + [ vm_prompt, "Free Attack in each Province with a Fort (defender rolls no dice)." ], [ vm_space, true, 0, 5, (s)=>(has_fort(s) && can_attack_in_space(s)) ], [ vm_free_attack ], [ vm_endspace ], @@ -6773,7 +6773,7 @@ CODE[30 * 2 + 0] = [ // SHADED 30 CODE[30 * 2 + 1] = [ [ vm_stay_eligible ], - [ vm_prompt, "Free limited Attak, without defenders." ], + [ vm_prompt, "Free limited Attack (attacker rolls 4 dice; defender rolls no dice)." ], [ vm_space, true, 1, 1, (s)=>(can_attack_in_space(s)) ], [ vm_free_attack ], [ vm_endspace ], @@ -6783,17 +6783,17 @@ CODE[30 * 2 + 1] = [ // EVENT 31 CODE[31 * 2 + 0] = [ [ vm_current, REBEL_FACTIONS ], - [ vm_prompt, "Free Migrate in a Province adjacent to Vijayanagara." ], + [ vm_prompt, "Free Migrate into a Province adjacent to Vijayanagara." ], [ vm_space, true, 0, 1, (s)=>(is_adjacent_to_city(C_VIJAYANAGARA, s) && can_migrate_in_space(s)) ], [ vm_mark_space ], [ vm_free_migrate ], [ vm_clean_p ], - [ vm_prompt, "Remove an opposing Unit from the selected Province." ], + [ vm_prompt, ()=>`Remove an opposing Unit from ${SPACE_NAME[game.vm.s]}.` ], [ vm_piece, false, 1, 1, (p,s)=>(is_piece_in_event_space(p) && is_enemy_unit(p)) ], [ vm_remove ], [ vm_endpiece ], [ vm_endspace ], - [ vm_prompt, "Free Attack in selected Province." ], + [ vm_prompt, ()=>`Free Attack in ${SPACE_NAME[game.vm.s]}.` ], [ vm_space, true, 0, 1, (s)=>(s === game.vm.m[0] && can_attack_in_space(s)) ], [ vm_free_attack ], [ vm_endspace ], @@ -6841,7 +6841,7 @@ CODE[32 * 2 + 1] = [ CODE[33 * 2 + 0] = [ [ vm_stay_eligible ], [ vm_current, ()=>(has_majority_goa()) ], - [ vm_prompt, "Remove up to 3 Opposing Units adjacent to Goa." ], + [ vm_prompt, "Remove up to 3 opposing Units adjacent to Goa." ], [ vm_piece, false, 0, 3, (p,s)=>(is_adjacent_to_city(C_GOA, piece_space(p)) && is_enemy_piece(p)) ], [ vm_summary_remove ], [ vm_endpiece ], @@ -6882,7 +6882,7 @@ CODE[35 * 2 + 0] = [ [ vm_stay_eligible ], [ vm_current, REBEL_FACTIONS ], [ vm_add_influence, ()=>(game.current) ], - [ vm_prompt, ()=>`Place a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]} in up to 3 Provinces with ${PIECE_FACTION_TYPE_NAME[other_rebel_faction(game.current)][ELITE]}.` ], + [ vm_prompt, ()=>`Place a ${PIECE_FACTION_TYPE_NAME[game.current][ELITE]} in up to 3 Provinces with a ${PIECE_FACTION_TYPE_NAME[other_rebel_faction(game.current)][ELITE]}.` ], [ vm_space, true, 0, 3, (s)=>has_piece(s, other_rebel_faction(game.current), ELITE) && can_place_piece(s, game.current, ELITE) ], [ vm_auto_place, false, 0, false, ()=>(game.current), ELITE ], [ vm_endspace ], @@ -6932,7 +6932,7 @@ CODE[0 * 2 + 74] = [ [ vm_log_h2, DS, "The Sultanate reimposes its dominance." ], [ vm_campaign ], [ vm_force_current, BK ], - [ vm_prompt, "Gain Cavalry token equal to Influence and Forts." ], + [ vm_prompt, "Gain Cavalry tokens equal to Influence and Forts." ], [ vm_log_h2, BK, "Military labor market thrives" ], [ vm_gain_cavalry, ()=>(game.inf[BK] + count_pieces_on_map(BK, DISC)) ], [ vm_force_current, VE ], @@ -6993,23 +6993,23 @@ CODE[4 * 2 + 74] = [ // SUCC 5 CODE[5 * 2 + 74] = [ [ vm_force_current, DS ], - [ vm_prompt, "Invaders are attacking in the Mountain Passes!" ], + [ vm_prompt, "Mongols attack the Mountain Passes!" ], [ vm_space, true, 1, 1, (s)=>(s === S_MOUNTAIN_PASSES && has_ds_unit(s) && has_mi_unit(s)) ], [ vm_free_attack, DS ], [ vm_endspace ], - [ vm_prompt, "Invaders are moving towards Punjab." ], + [ vm_prompt, "Mongols move to Punjab." ], [ vm_space, true, 1, 1, (s)=>(s === S_PUNJAB) ], [ vm_timurid_advance, S_MOUNTAIN_PASSES, S_PUNJAB ], [ vm_endspace ], - [ vm_prompt, "Invaders are Attacking in Punjab!" ], + [ vm_prompt, "Mongols attack Punjab!" ], [ vm_space, true, 1, 1, (s)=>(s === S_PUNJAB && has_ds_unit(s) && has_mi_unit(s)) ], [ vm_free_attack, DS ], [ vm_endspace ], - [ vm_prompt, "Invaders are moving towards Delhi." ], + [ vm_prompt, "Mongols move to Delhi." ], [ vm_space, true, 1, 1, (s)=>(s === S_DELHI) ], [ vm_timurid_advance, S_PUNJAB, S_DELHI ], [ vm_endspace ], - [ vm_prompt, "Invaders are laying a siege to Delhi!" ], + [ vm_prompt, "Mongols lay siege to Delhi!" ], [ vm_space, true, 1, 1, (s)=>(s === S_DELHI && has_ds_unit(s) && has_mi_unit(s)) ], [ vm_while, ()=>(has_ds_unit(game.vm.s) && has_mi_unit(game.vm.s)) ], [ vm_free_attack, DS ], |