diff options
author | Tor Andersson <tor@ccxvii.net> | 2023-12-19 16:19:43 +0100 |
---|---|---|
committer | Tor Andersson <tor@ccxvii.net> | 2023-12-21 14:14:00 +0100 |
commit | 1441b54b78438348df7e34a727bd3fead6690326 (patch) | |
tree | 6553637456c2c1bb753dc47dac2295c190988f4f /tools | |
parent | d730047c4efbbe02139c4970c740190de20b0179 (diff) | |
download | plantagenet-1441b54b78438348df7e34a727bd3fead6690326.tar.gz |
Use HTML text for Arts of War cards (to improve legibility).
Diffstat (limited to 'tools')
-rw-r--r-- | tools/aow.js | 137 | ||||
-rw-r--r-- | tools/cards/lancaster.txt | 386 | ||||
-rw-r--r-- | tools/cards/york.txt | 391 |
3 files changed, 914 insertions, 0 deletions
diff --git a/tools/aow.js b/tools/aow.js new file mode 100644 index 0000000..f58f065 --- /dev/null +++ b/tools/aow.js @@ -0,0 +1,137 @@ +const fs = require("fs") + +let buf = [] + +let cards = [] + +let SHIELD_EVT_1 = [ "L17", "L32", "L35", "Y20", "Y24", "Y26", "Y28", "Y29", "Y32", "Y33" ] +let SHIELD_EVT_2 = [ "Y20", "Y26" ] +let SHIELD_CAP_R = [ "L19", "L21", "L23", "L26", "L35", "Y24" ] +let SHIELD_CAP_2 = [ "L20", "L33", "L34", "L35", "Y14", "Y18", "Y19", "Y20", "Y23", "Y30" ] +let SHIELD_CAP_3 = [ "L18", "L19", "L27", "L37", "Y21", "Y31", "L36" ] + +function flush_card() { + function blank() { + while(buf.length > 0 && buf[0].length === 0) + buf.shift() + } + + if (buf.length === 0) + return + + let number = buf.shift() + blank() + + let evt_title = buf.shift() + let evt_subtitle = null + if (buf[0].length > 0) + evt_subtitle = buf.shift() + blank() + let evt_text = buf.shift() + blank() + + let cap_title = buf.shift() + let cap_subtitle = null + if (buf[0].length > 0) + cap_subtitle = buf.shift() + blank() + let cap_text = buf.shift() + blank() + + let card = { + number, + evt_title, evt_subtitle, evt_text, + cap_title, cap_subtitle, cap_text + } + + cards.push(card) +} + +function process_line(line) { + line = line.trim() + if (/[YL]\d+/.test(line)) { + flush_card() + buf = [] + } + buf.push(line) +} + +fs.readFileSync("tools/cards/york.txt", "utf-8").split("\n").forEach(process_line) +fs.readFileSync("tools/cards/lancaster.txt", "utf-8").split("\n").forEach(process_line) +flush_card() + + + +console.log( +`<!doctype html> +<html lang="en"> +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<head> +<title>Plantagenet - Arts of War</title> +<link rel="stylesheet" href="/fonts/fonts.css"> +<link rel="stylesheet" href="/plantagenet/cards.css"> +<style> +body{background-color:dimgray;margin:20px;display:flex;flex-wrap:wrap;gap:20px;} +</style> +</head> +<body> +`) + +let out = [] +let i = 0 +for (let c of cards) { + + if (c.evt_text.startsWith("This Levy ")) + c.evt_text = c.evt_text.replace("This Levy ", "<b>This Levy</b><br>") + if (c.evt_text.startsWith("This Campaign ")) + c.evt_text = c.evt_text.replace("This Campaign ", "<b>This Campaign</b><br>") + if (c.evt_text.startsWith("Hold: ")) + c.evt_text = c.evt_text.replace("Hold: ", "<b>Hold:</b> ") + //c.evt_text = c.evt_text.replaceAll("Richard III", "Richard\xa0III") + c.evt_text = c.evt_text.replaceAll("'", "\u2019") + + c.cap_text = c.cap_text.replaceAll("'", "\u2019") + + let img = "" + if (c.number[0] == "Y") + img = `aow_york_${c.number.substring(1)}.jpg` + if (c.number[0] == "L") + img = `aow_lancaster_${c.number.substring(1)}.jpg` + + let xx = c.number[0] === "Y" ? " york" : " lancaster" + + out.push(`<div data-card="${c.number}" class="card aow${xx} c${i++}">`) + + let ec = "" + if (SHIELD_EVT_1.includes(c.number)) + ec = " sh1" + if (SHIELD_EVT_2.includes(c.number)) + ec = " sh2" + out.push(`<div class="event${ec}">`) + out.push(`<div class="title">${c.evt_title}</div>`) + if (c.evt_subtitle) + out.push(`<div class="subtitle">${c.evt_subtitle}</div>`) + out.push(`<div class="text">${c.evt_text}</div>`) + out.push(`</div>`) + + let cc = " sh1" + if (SHIELD_CAP_2.includes(c.number)) + cc = " sh2" + if (SHIELD_CAP_3.includes(c.number)) + cc = " sh3" + if (SHIELD_CAP_R.includes(c.number)) + cc += " shr" + out.push(`<div class="capability${cc}">`) + out.push(`<div class="title">${c.cap_title}</div>`) + if (c.cap_subtitle) + out.push(`<div class="subtitle">${c.cap_subtitle}</div>`) + out.push(`<div class="text">${c.cap_text}</div>`) + out.push(`</div>`) + + out.push(`<div class="number">${c.number}</div>`) + + out.push("</div>\n") +} + +console.log(out.join("")) diff --git a/tools/cards/lancaster.txt b/tools/cards/lancaster.txt new file mode 100644 index 0000000..6f74d00 --- /dev/null +++ b/tools/cards/lancaster.txt @@ -0,0 +1,386 @@ +L1 + +Leeward Battle Line + +Hold: Play in Battle to halve all Missile Hits (round up) to Friendly Lords, unless enemy <i>Leeward Battle Line</i>. + +Culverins and Falconets + +At start of Round 1 of Battle, this Lord may discard this card to add 1 die roll of Missile Hits. + +L2 + +Flank Attack + +Hold: Play to Intercept without rolling and become Attacker in that Battle. + +Culverins and Falconets + +At start of Round 1 of Battle, this Lord may discard this card to add 1 die roll of Missile Hits. + +L3 + +Escape Ship + +Hold: Play upon Death check if Lancastrian Route (4.5.1) (4.5.1) to Port for any Routed Lancastrians to go into Exile instead. + +Muster'd my soldiers +Gather'd flocks of friends + +Each Battle at a Friendly Stronghold, this Lord adds 2 Men-at-Arms and 1 Longbowmen. Remove them after Battle. + +L4 + +Be sent for +to return from France with speed + +This Levy Muster Lancastrian Exiles from anywhere on the Calendar. + +Heralds + +This Lord at Port may use full Command card for an Influence check. If successful, shift a Lord cylinder on Calendar to next Turn. + +L5 + +Suspicion +always haunts the guilty mind + +Hold: Play in Battle for participating Lancastrian Lord to check Influence. Success Disbands 1 Yorkist Lord at Yorkist Lord at Battle with lower Influence Rating. + +Church Blessing + +This Lord's Men-at-Arms have Armour 1-4. + +L6 + +Seamanship + +This Campaign Lancastrians may Sail for just 1 Command action. + +Great Ships + +This Lord's Ships count double for Sail and Supply and connect all Ports of all Seas. + +L7 + +For trust not him + +Hold: Play in Battle for a participating Lord to attempt to Levy (3.4.3) a regular Enemy Vassal at Battle onto the Lord's own mat. + +Harbingers + +This Lord's Supply actions draw twice the usual Provender. + +L8 + +Forced Marches + +This Campaign lone Lancastrian Lords (not Groups) March on Road as if Highway. + +Hay Wains + +This Lord's Carts count double for March and Supply. + +L9 + +Rising Wages + +This Levy Yorkist Lords must pay 1 Coin per Levy Troops action. + +Quartermasters + +This Lord Levies Troops without Depleting or Exhausting Strongholds. + +L10 + +New Act of Parliament + +This Campaign Yorkist Parley takes entire Command card. + +Chamberlains + +This Lord's Supply and Levy Troops do not Deplete the Stronghold at his or her Vassals' Seats. + +L11 + +Blocked Ford + +Hold: Play upon Approach to prevent Exile (all Lords there Battle). + +In the Name of the King +Sealed royal letter + +This Lord has Influence +1 for Parley. + +L12 + +Ravine + +Hold: Play on an Enemy Lord in Battle. Round 1, ignore that Lord for Engage and Strike. + +Commission of Array + +This Lord can Levy Troops from adjacent Friendly Strongholds where no Enemy Lord. + +L13 + +Aspielles +Lancastrian spies + +Hold: Play to inspect all Yorkist Held cards and 1 Hidden Yorkist Lord mat (1.5.3). + +Expert Counsellors + +This Lord has Valour +2. + +L14 + +Scots + +Each Lancastrian Lord on map may add up to 1 Men-at-Arms and 1 Militia to his or her mat. + +Percy's Power + +While this Lord is in the North, Lancastrian Pay (3.2) there is free. + +L15 + +Henry Pressures Parliament + +Yorkist lose 1 Influence point per Vassal they currently have Mustered. + +King's Parley + +Upon Yorkist Approach to this Lord, discard this card to cancel that Approach and end Command card. + +L16 + +Warden of the Marches + +Hold: Play upon Death check in the North. Move any Routed Lancastrians to a Friendly Stronghold there instead of rolling Death or Disband. + +Northmen + +Each Tides of War, Lancastrians Dominate the North with this Lord and 3+ Friendly Strongholds there. + +L17 + +My crown is in my heart + +This Levy Henry VI may Parley twice twice for for 0 Lordship (with Influence checks). + +Margaret +takes the reins + +Each Tides of War, this Lord at a Stronghold outside London or in an Exile box adds +2 Lancastrian Influence points. + +L18 + +Parliament Votes + +This Levy 1 Parley action by each Lancastrian Lord costs less by -1 Influence point and automatically succeeds. + +Council Member + +Each Tides of War, this Lord adds +1 Lancastrian Influence point. + +L19 + +Henry's Proclamation + +Yorkists shift all their Vassals' Calendar markers to the current Turn box. + +Andrew Trollope + +This Lord Levies Special Vassal Trollope (free) and has Valour +1. + +L20 + +Parliament Truce + +Hold: Play to prohibit all Approach and Intercept for the rest of this Campaign. + +Veteran of French Wars + +This Lord has Valour +2. + +L21 + +French Fleet + +This Campaign Yorkist Lords may not Sail. + +My Father's Blood + +This Lord Levies Special Vassal Clifford (free) and has Valour +1. + +L22 + +French Troops + +Add 2 Men-at-Arms and 2 Militia to a Lancastrian Lord at a Port. + +Stafford Estates + +At outset of each Campaign, this Lord receives 1 Coin and 1 Provender. + +L23 + +Warwick's Propaganda + +Select 3 Yorkist Strongholds. For each, Yorkists either pay 2 Influence points or remove Favour. + +Montagu + +This Lord Levies Special Vassal Montagu (free), and his Retinue has Armour 1-5. + +L24 + +Warwick's Propaganda + +Select 3 Yorkist Strongholds. For each, Yorkists either pay 2 Influence points or remove Favour. + +Married to a Neville + +This Lord at a Friendly Locale with Warwick has Influence +2 and Command +1. + +L25 + +Welsh Rebellion + +Remove 2 Troops from each Yorkist Lord in Wales OR, if no Yorkist Lords there, 2 Yorkist Favour from Wales. + +Welsh Lord + +Each Battle in Wales, this Lord adds 2 Longbowmen. Remove them after Battle. + +L26 + +Henry Released + +If London Favours Lancastrians, add 5 Lancastrian Influence points. + +Edward +Prince of Wales + +This Lord Levies Special Vassal Edward (free) and has Valour +1. + +L27 + +L'Universelle Aragne +Louis XI of France, a cunning King + +Select 2 Yorkist Mustered Yorkist Mustered Vassals. Their Lords check Influence for each - failure Disbands the Vassal. + +Barded Horse + +This Lord's Retinue and his or her Vassals have Armour 1-3 against Missile but Armour 1-5 against Melee. + +L28 + +Rebel Supply Depot + +Hold: Play after a Lord or Group Marches or Sails to a Port for them to receive 4 Provender and ignore their next Feed. + +Loyal Somerset + +This Lord at the same Locale as Margaret has Influence +1 and Valour +1. + +L29 + +To wilful disobedience +and rebel! + +Remove Yorkist Favour from 2 Strongholds at or adjacent to a Lancastrian Lord and not at or adjacent to Yorkist Lords. + +High Admiral + +This Lord can Sail to Ports where Enemy Lord(s), triggering Approach (4.3.5). + +L30 + +French War Loans + +Add 1 Coin and 1 Provender to each Lancastrian Lord on map. + +Merchants + +This Lord for 1 Command action and successful Influence check removes 2 Depleted or Exhausted at his location and/or adjacent. + +L31 + +Robin's Rebellion + +Place and/or remove up to 3 Favour total in the North. + +Yeomen of the Crown + +If this Lord's Retinue fails an Armour roll, she may instead Rout 1 of her Unrouted Men-at-arms units. + +L32 + +Tudor Banners + +If Henry Tudor is at a Friendly Stronghold, mark all adjacent Strongholds that are free of Yorkist Lords with Lancastrian Favour. + +Two Roses +Henry Tudor, married to a York, enjoys Lancastrian support. + +This Lord's Vassal Levy always succeeds + +L33 + +Surprise Landing + +Hold: Play after Sailing to a Port to add a free March action. + +Philibert de Chandée +French royal envoy + +Each Battle at or adjacent to Friendly English Channel Port, this Lord adds 2 Men-at-Arms. Remove them after Battle. + +L34 + +Buckingham's Plot +backfires + +This Levy each Yorkist Vassal Levy costs +2 extra Influence points. + +Piquiers +French pikemen + +This Lord's Men-at-Arms and Militia have Armour 1-4 until 3 of them Rout. + +L35 + +Margaret Beaufort +Henry Tudor's mother + +This Levy Henry Tudor may attempt to Levy any Vassals on the map. + +Thomas Stanley + +This Lord Levies Special Vassal Stanley (free). Once per Levy, he can Levy Troops for 0 Lordship. + +L36 + +Talbot to the Rescue + +Hold: Play upon Death check to Disband any Routed Lancastrians instead of rolling for Death. + +Chevaliers +French knights + +This Lord's Men-at-Arms suffer -1 Armour against Missiles but Melee Strike x2. + +L37 + +The Earl of Richmond +is with a mighty power landed at Milford + +This Levy Lancastrian Vassal Levy always succeeds. + +Madame La Grande +Louis XI's daughter Anne finances Tudors + +Each Pay segment (3.2) that this Lord at or adjacent to a Friendly English Channel Port, he receives 1 Coin. diff --git a/tools/cards/york.txt b/tools/cards/york.txt new file mode 100644 index 0000000..776d69e --- /dev/null +++ b/tools/cards/york.txt @@ -0,0 +1,391 @@ +Y1 + +Leeward Battle Line + +Hold: Play in Battle to halve all Missile Hits (round up) to Friendly Lords, unless Enemy Leeward Battle Line. + +Culverins and Falconets + +At start of Round 1 of Battle, this Lord may discard this card to add 1 die roll of Missile Hits. + +Y2 + +Flank Attack + +Hold: Play to Intercept without rolling and become Attacker in that Battle. + +Culverins and Falconets + +At start of Round 1 of Battle, this Lord may discard this card to add 1 die roll of Missile Hits. + +Y3 + +Escape Ship + +Hold: Play upon Death check if Yorkist Route (4.5.1) to Port for any Routed Yorkists to go into Exile instead. + +Muster'd my soldiers +Gather'd flocks of friends + +Each Battle at a Friendly Stronghold, this Lord adds 2 Men-at-Arms and 1 Longbowmen. Remove them after Battle. + +Y4 + +Jack Cade +Rebel leader calls himself a Mortimer + +This Levy Yorkist Lords in or adjacent to Yorkist Dominated Areas each add 2 free successful Parleys. + +We done deeds of charity + +Each Tides of War, this Lord may pay 1 or 2 Provender (may Share) for +1 Influence point each. + +Y5 + +Suspicion +always haunts the guilty mind + +Hold: Play in Battle for participating Yorkist Lord to check Influence. Success Disbands 1 Lancastrian Lord at Battle with lower Influence rating. + +Thomas Bourchier +Archbishop of Canterbury + +This Lord starts in any Friendly City Command +1. + +Y6 + +Seamanship + +This Campaign Yorkists may Sail for just 1 Command action. + +Great Ships + +This Lord's Ships count double for Sail and Supply and connect all Ports of all Seas. + +Y7 + +Yorkists Block Parliament + +This Levy Lancastrians may not Levy Vassals except by Event. + +Harbingers + +This Lord's Supply actions draw twice the usual Provender. + +Y8 + +Exile Pact + +This Campaign Yorkist Lords may use a Command action to place their cylinder into a Friendly Exile box (at no Influence cost). + +England is my Home + +When going into Exile, this Lord instead Disbands to the next Calendar box. + +Y9 + +Escape Ship + +Hold: Play upon Death check if Yorkist Route (4.5.1) to Port for any Routed Yorkists to go into Exile instead. + +Barricades + +At Friendly Strongholds, this Lord's Men-at-Arms have Armour 1-4 and Longbowmen and Militia have Armour 1-2. + +Y10 + +Tax Collectors + +Each Yorkist Lord may immediately conduct a Tax action to receive twice the usual Coin. + +Agitators + +This Lord can use a Command action to Deplete an adjacent Neutral or Enemy Stronghold or flip Depleted there to Exhausted. + +Y11 + +Blocked Ford + +Hold: Play upon Approach to prevent Exile (all Lords there Battle). + +Yorkists Never Wait + +This Lord Marches alone (not in a Group) on Road as if Highway. + +Y12 + +Parliament's Truce + +Hold: Play to prohibit all Approach and Intercept for the rest of this Campaign. + +Soldiers of Fortune + +When Levying Troops, this Lord may pay 1 Coin to also add 2 Mercenaries (from pool). + +Y13 + +Aspielles +Yorkist spies + +Hold: Play to inspect all Lancastrian Held cards and 1 Hidden Lancastrian Lord mat (1.5.3). + +Scourers + +This Lord's Forage actions always add +1 extra Provender. + +Y14 + +Richard of York +Lord Protector + +This Levy Yorkist Influence ratings +1 for Parley. + +Burgundians + +This Lord at any Port adds 2 Handgunners (once, maximum). + +Y15 + +London for York + +If Yorkist Favour at London, add a second Favour there - London changes Favour only by Event or Pillage. + +Naval Blockade + +This Lord at a Port cancels Lancastrian actions using Ports on that Sea unless a roll of 1-2. + +Y16 + +The Commons + +This Levy each Yorkist Levy Troops action may add up to 2 Militia extra (from pool). + +Beloved Warwick + +This Lord can Levy Troops for 5 Militia (from pool) instead of the Stronghold's listed Troops. + +Y17 + +She-Wolf of France +Queen without dowry + +Shift each Yorkist Vassal's Calendar marker 1 box right. + +Alice Montagu + +This Lord's Vassals have +1 Service and are immune to For trust not him. + +Y18 + +Succession +Richard declared Henry's heir + +This Levy 1 Parley action by each Yorkist Lord costs less by -1 Influence point and automatically succeeds. + +Irishmen + +This Lord in Ireland or at Port on Irish Sea can Levy Troops for 5 Militia (from pool) total, no Depletion or Exhaustion. + +Y19 + +Caltrops + +Hold: Play in Battle to add +2 Melee Hits against the Enemy each Round. + +Welshmen + +Each Tides of War, Yorkists Dominate Wales with this Lord and 3+ Friendly Strongholds there. + +Y20 + +Yorkist Parade + +Hold: Play if London Friendly and York or Warwick there. This Levy Yorkist Influence ratings +2. + +York's Favoured Son + +This Lord has Influence +1 and Command +1 + +Y21 + +Sir Richard Leigh +Yorkist Mayor of London + +Remove Lancastrian Favour from London or, if neutral, place Yorkist Favour there. + +Southerners + +Each Tides of War, Yorkists Dominate the South with this Lord and 5+ Friendly Strongholds there. + +Y22 + +Loyalty and Trust + +This Levy any 1 Yorkist Lord has Lordship +3. + +Fair Arbiter + +This Lord at a Friendly Locale has Influence +1 and Lordship +1. + +Y23 + +Charles the Bold +Edward IV's brother-in-law + +Add 1 Coin and 1 Provender to each Yorkist Lord on map. + +Burgundians + +This Lord at any Port receives 2 Handgunners (once, maximum). + +Y24 + +Sun in Splendour + +Hold: Play in Levy if Edward IV on Calendar (even as Exile) to Muster him at any Friendly Locale where no Lancastrian Lord. + +Hastings + +This Lord Levies Special Vassal Hastings (free), adds 2 Men-at-Arms units, and has Command +1. + +Y25 + +Owain Glyndwr +Welsh hold rebel in memory + +This Campaign no Lancastrian March or Sail to any Strongholds in Wales. + +Pembroke + +Each Battle in Wales, this Lord adds 2 Longbowmen. Remove them after Battle. + +Y26 + +Dubious Clarence +The weakest brother + +If Edward IV on map, he may check Influence to Disband Clarence. + +Fallen Brother + +If Clarence is Dead or Shipwrecked, this Lord has Influence +2 and Lordship +1. + +Y27 + +Yorkist North + +Gain 1 Influence point for each Yorkist Stronghold and each Yorkist Lord in the North. + +Percy's North + +Each Battle in the North, this Lord adds 4 Militia. Remove them after Battle. + +Y28 + +Gloucester as Heir + +This Levy Gloucester may Parley +3 times for 0 Lordship. + +First Son +Edward, son of Edward IV + +Each Tides of War, Yorkists add +1 extra Influence point. + +Y29 + +Dorset +The Staffords' lesser branch + +This Campaign Devon at Exeter Parleys for no Influence cost and automatic success. + +Stafford Branch +Duke of Buckingham's family + +Exeter and adjacent Strongholds add 1 more Provender or Coin than usual to this Lord's Supply or Tax. + +Y30 + +Regroup + +Hold: Play in Battle for a Lord once to roll each of his Routed Troops' (modified) Protection for them to recover. + +Captain + +This Lord is a Marshal in any Locales where no Friendly Marshal or Lieutenant. + +Y31 + +Earl Rivers +Woodville family head + +Add up to 2 Militia to each Yorkist Lord on map. + +Woodvilles +Powerbrokers under Edward IV + +This Lord Levies Troops without Depleting or Exhausting Strongholds. + +Y32 + +The King's Name +is a tower of strength + +This Levy Gloucester (not Richard III) may cancel each successful Lancastrian Levy action by paying 1 Influence point. + +Final Charge + +As Richard III (not Gloucester) this Lord's Retinue once per Melee Strike may suffer +1 Hit to add +3 extra Hits against Enemy. + +Y33 + +Edward V + +This Levy Gloucester (not Richard III) has +3 Lordship. + +Bloody thou art, +bloody will be thy end + +When this Lord as Richard III (not Gloucester) wins a Battle, skip Death checks. All Routed Lancastrian Lords Die. + +Y34 + +An honest tale speeds best +being plainly told + +Through end of this Campaign (including in Levy), each Lancastrian Parley costs +1 extra Influence point. + +So wise, so young + +Each Tax by this Lord as Gloucester adds +1 extra Coin. Discard if Richard III. + +Y35 + +Privy Council + +This Levy all Yorkist Influence ratings +1. + +Kingdom United + +Each Battle in the North, South, or Wales, this Lord as Gloucester adds 3 Militia. Remove them after Battle. Discard if Richard III. + +Y36 + +Swift Maneuver + +Hold: Play in Battle. Whenever a Lancastrian Retinue Routs, if desired, immediately end the Round. + +Vanguard + +In Battle, this Lord may choose his Engagement to be the only one fought in Round 1. + +Y37 + +Patrick de la Mote +Chief Cannoneer, Master Founder + +Hold: Play in Battle for Yorkist Culverins and Falconets to add 2 dice of Hits (not just 1 die). + +Percy's North + +Each Battle, this Lord with a Route (3.4.1) to Carlisle adds 2 Men-at-Arms. Remove them after Battle. + |