summaryrefslogtreecommitdiff
path: root/data.js
diff options
context:
space:
mode:
Diffstat (limited to 'data.js')
-rw-r--r--data.js314
1 files changed, 314 insertions, 0 deletions
diff --git a/data.js b/data.js
new file mode 100644
index 0000000..8a710a6
--- /dev/null
+++ b/data.js
@@ -0,0 +1,314 @@
+"use strict";
+
+const CARDS = {
+ 1: {
+ name: "Herald",
+ event: "herald",
+ image: "card_herald",
+ text: "Name an enemy noble (not Moray). Roll a die to convert him to your side at current strength.\n1-4 Success\n5-6 Failure\nIf a battle results, resolve it now with the defecting noble as the attacker."
+ },
+ 2: {
+ name: "Pillage",
+ event: "pillage",
+ image: "card_pillage",
+ text: "Pillage one enemy group adjacent to a friendly group. The enemy blocks take two (2) hits (applied as per combat losses).\nPillaged step(s) may be added to friendly blocks in the pillaging group."
+ },
+ 3: {
+ name: "Sea Move",
+ event: "sea_move",
+ image: "card_sea_move",
+ text: "Move one (1) or two (2) blocks from one coastal area to one other friendly (not vacant) coastal area (including England).\nThe Norse cannot use this card."
+ },
+ 4: {
+ name: "Truce",
+ event: "truce",
+ image: "card_truce",
+ text: "Opponent can move, but not attack. Scots cannot enter England."
+ },
+ 5: {
+ name: "Victuals",
+ event: "victuals",
+ image: "card_victuals",
+ text: "Distribute three (3) steps among friendly blocks in one group."
+ },
+ 6: { name: "a 3", moves: 3, image: "card_3" },
+ 7: { name: "a 3", moves: 3, image: "card_3" },
+ 8: { name: "a 3", moves: 3, image: "card_3" },
+ 9: { name: "a 2", moves: 2, image: "card_2" },
+ 10: { name: "a 2", moves: 2, image: "card_2" },
+ 11: { name: "a 2", moves: 2, image: "card_2" },
+ 12: { name: "a 2", moves: 2, image: "card_2" },
+ 13: { name: "a 2", moves: 2, image: "card_2" },
+ 14: { name: "a 2", moves: 2, image: "card_2" },
+ 15: { name: "a 2", moves: 2, image: "card_2" },
+ 16: { name: "a 2", moves: 2, image: "card_2" },
+ 17: { name: "a 2", moves: 2, image: "card_2" },
+ 18: { name: "a 2", moves: 2, image: "card_2" },
+ 19: { name: "a 1", moves: 1, image: "card_1" },
+ 20: { name: "a 1", moves: 1, image: "card_1" },
+ 21: { name: "a 1", moves: 1, image: "card_1" },
+ 22: { name: "a 1", moves: 1, image: "card_1" },
+ 23: { name: "a 1", moves: 1, image: "card_1" },
+ 24: { name: "a 1", moves: 1, image: "card_1" },
+ 25: { name: "a 1", moves: 1, image: "card_1" },
+};
+
+let BLOCKS = {}
+
+let AREAS = {
+ "England": { x: 1360, y: 1750 },
+ "Ross": { x: 583, y: 376 },
+ "Garmoran": { x: 466, y: 573 },
+ "Moray": { x: 644, y: 599 },
+ "Strathspey": { x: 973, y: 436 },
+ "Buchan": { x: 1218, y: 518 },
+ "Lochaber": { x: 435, y: 766 },
+ "Badenoch": { x: 834, y: 635 },
+ "Mar": { x: 974, y: 709 },
+ "Angus": { x: 1099, y: 820 },
+ "Argyll": { x: 433, y: 1099 },
+ "Atholl": { x: 714, y: 904 },
+ "Lennox": { x: 626, y: 1244 },
+ "Mentieth": { x: 748, y: 1067 },
+ "Fife": { x: 966, y: 1089 },
+ "Carrick": { x: 675, y: 1446 },
+ "Lanark": { x: 830, y: 1375 },
+ "Lothian": { x: 973, y: 1236 },
+ "Selkirk": { x: 1015, y: 1379 },
+ "Dunbar": { x: 1187, y: 1287 },
+ "Galloway": { x: 685, y: 1667 },
+ "Annan": { x: 946, y: 1566 },
+ "Teviot": { x: 1151, y: 1424 },
+
+ "E. Bag": { x: 150, y: 1900 },
+ "S. Bag": { x: 150, y: 50 },
+}
+
+let BORDERS = {};
+
+(function () {
+ function border(A,B,T) {
+ if (A > B)
+ [A, B] = [B, A];
+ let id = A + "/" + B;
+ AREAS[A].exits.push(B);
+ AREAS[B].exits.push(A);
+ BORDERS[id] = T;
+ }
+
+ for (let a in AREAS) {
+ AREAS[a].cathedral = false;
+ AREAS[a].home = null;
+ AREAS[a].coastal = false;
+ AREAS[a].exits = [];
+ }
+
+ AREAS["Strathspey"].cathedral = true;
+ AREAS["Lennox"].cathedral = true;
+ AREAS["Fife"].cathedral = true;
+
+ AREAS["Ross"].home = "Ross";
+ AREAS["Moray"].home = "Moray";
+ AREAS["Buchan"].home = "Buchan";
+ AREAS["Lochaber"].home = "Comyn";
+ AREAS["Badenoch"].home = "Comyn";
+ AREAS["Mar"].home = "Mar";
+ AREAS["Angus"].home = "Angus";
+ AREAS["Argyll"].home = "Argyll";
+ AREAS["Atholl"].home = "Atholl";
+ AREAS["Lennox"].home = "Lennox";
+ AREAS["Mentieth"].home = "Mentieth";
+ AREAS["Carrick"].home = "Bruce";
+ AREAS["Lanark"].home = "Steward";
+ AREAS["Dunbar"].home = "Dunbar";
+ AREAS["Galloway"].home = "Galloway";
+ AREAS["Annan"].home = "Bruce";
+
+ AREAS["England"].limit = 0;
+ AREAS["Ross"].limit = 1;
+ AREAS["Garmoran"].limit = 0;
+ AREAS["Moray"].limit = 2;
+ AREAS["Strathspey"].limit = 1;
+ AREAS["Buchan"].limit = 2;
+ AREAS["Lochaber"].limit = 1;
+ AREAS["Badenoch"].limit = 2;
+ AREAS["Mar"].limit = 1;
+ AREAS["Angus"].limit = 2;
+ AREAS["Argyll"].limit = 2;
+ AREAS["Atholl"].limit = 1;
+ AREAS["Lennox"].limit = 1;
+ AREAS["Mentieth"].limit = 3;
+ AREAS["Fife"].limit = 2;
+ AREAS["Carrick"].limit = 1;
+ AREAS["Lanark"].limit = 2;
+ AREAS["Lothian"].limit = 2;
+ AREAS["Selkirk"].limit = 0;
+ AREAS["Dunbar"].limit = 2;
+ AREAS["Galloway"].limit = 1;
+ AREAS["Annan"].limit = 2;
+ AREAS["Teviot"].limit = 1;
+
+ function red(A,B) { border(A,B,"minor"); }
+ function black(A,B) { border(A,B,"major"); }
+ function northsea(A) { AREAS[A].coastal = true; }
+ function irishsea(A) { AREAS[A].coastal = true; }
+
+ black("Buchan", "Angus")
+ black("Buchan", "Mar")
+ black("Carrick", "Annan")
+ black("Carrick", "Lanark")
+ black("England", "Annan")
+ black("England", "Dunbar")
+ black("Fife", "Angus")
+ black("Fife", "Mentieth")
+ black("Lanark", "Mentieth")
+ black("Lennox", "Carrick")
+ black("Lennox", "Lanark")
+ black("Lennox", "Mentieth")
+ black("Lothian", "Dunbar")
+ black("Lothian", "Lanark")
+ black("Lothian", "Mentieth")
+ black("Moray", "Lochaber")
+ black("Moray", "Strathspey")
+ black("Selkirk", "Teviot")
+ black("Strathspey", "Badenoch")
+ black("Strathspey", "Buchan")
+ black("Teviot", "Dunbar")
+ red("Angus", "Mar")
+ red("Argyll", "Lennox")
+ red("Atholl", "Angus")
+ red("Atholl", "Argyll")
+ red("Atholl", "Badenoch")
+ red("Atholl", "Fife")
+ red("Atholl", "Lennox")
+ red("Atholl", "Mar")
+ red("Atholl", "Mentieth")
+ red("Badenoch", "Lochaber")
+ red("Badenoch", "Mar")
+ red("Buchan", "Badenoch")
+ red("England", "Teviot")
+ red("Galloway", "Annan")
+ red("Lanark", "Annan")
+ red("Galloway", "Carrick")
+ red("Garmoran", "Lochaber")
+ red("Garmoran", "Moray")
+ red("Lochaber", "Argyll")
+ red("Lochaber", "Atholl")
+ red("Moray", "Badenoch")
+ red("Ross", "Garmoran")
+ red("Ross", "Moray")
+ red("Selkirk", "Annan")
+ red("Selkirk", "Dunbar")
+ red("Selkirk", "Lanark")
+ red("Selkirk", "Lothian")
+ red("Teviot", "Annan")
+
+ northsea("England")
+ northsea("Ross")
+ northsea("Moray")
+ northsea("Strathspey")
+ northsea("Buchan")
+ northsea("Angus")
+ northsea("Mentieth")
+ northsea("Fife")
+ northsea("Lothian")
+ northsea("Dunbar")
+
+ irishsea("England")
+ irishsea("Ross")
+ irishsea("Garmoran")
+ irishsea("Lochaber")
+ irishsea("Argyll")
+ irishsea("Lennox")
+ irishsea("Carrick")
+ irishsea("Galloway")
+ irishsea("Annan")
+
+ function block(owner, type, name, move, combat, steps, mortal, image) {
+ let id = name;
+ if (type == 'nobles')
+ id = name + "/" + owner[0];
+ let item = {
+ owner: owner,
+ type: type,
+ name: name,
+ move: move,
+ combat: combat,
+ steps: steps,
+ mortal: mortal,
+ image: image,
+ }
+ BLOCKS[id] = item;
+ }
+
+ const A4 = "A4"; const A3 = "A3"; const A2 = "A2"; const A1 = "A1";
+ const B4 = "B4"; const B3 = "B3"; const B2 = "B2"; const B1 = "B1";
+ const C4 = "C4"; const C3 = "C3"; const C2 = "C2"; const C1 = "C1";
+
+ block("Scotland", "wallace", "Wallace", 3, A3, 4, true, 11);
+ block("Scotland", "king", "King", 3, A3, 4, true, 12);
+ block("Scotland", "infantry", "Douglas", 2, C3, 4, false, 13);
+ block("Scotland", "infantry", "Campbell", 2, C2, 4, false, 14);
+ block("Scotland", "infantry", "Graham", 2, C2, 4, false, 15);
+ block("Scotland", "infantry", "MacDonald", 2, C3, 3, false, 16);
+ block("Scotland", "infantry", "Lindsay", 2, C2, 3, false, 17);
+
+ block("Scotland", "infantry", "Fraser", 2, C3, 3, false, 21);
+ block("Scotland", "infantry", "Barclay", 2, C2, 4, false, 22);
+ block("Scotland", "infantry", "Grant", 2, C2, 3, false, 23);
+ block("Scotland", "cavalry", "Keith", 3, B1, 3, false, 24);
+ block("Scotland", "archers", "Etterick", 3, B2, 2, false, 25);
+ block("Scotland", "norse", "Norse", 0, A2, 3, true, 26);
+ block("Scotland", "knights", "French Knights", 2, B3, 4, true, 27);
+
+ block("Scotland", "nobles", "Comyn", 2, B2, 4, false, 31);
+ block("Scotland", "moray", "Moray", 2, B2, 3, true, 32);
+ block("Scotland", "nobles", "Angus", 2, B2, 3, false, 33);
+ block("Scotland", "nobles", "Argyll", 2, B2, 3, false, 34);
+ block("Scotland", "nobles", "Bruce", 2, B2, 4, false, 35);
+ block("Scotland", "nobles", "Mar", 2, B2, 3, false, 36);
+ block("Scotland", "nobles", "Lennox", 2, B2, 3, false, 37);
+
+ block("Scotland", "nobles", "Buchan", 2, B2, 3, false, 41);
+ block("Scotland", "nobles", "Galloway", 2, B2, 3, false, 42);
+ block("Scotland", "nobles", "Ross", 2, B2, 3, false, 43);
+ block("Scotland", "nobles", "Atholl", 2, B2, 3, false, 44);
+ block("Scotland", "nobles", "Dunbar", 2, B2, 3, false, 45);
+ block("Scotland", "nobles", "Mentieth", 2, B2, 3, false, 46);
+ block("Scotland", "nobles", "Steward", 2, B2, 3, false, 47);
+
+ block("England", "king", "Edward", 3, B4, 4, true, 61);
+ block("England", "archers", "Lancaster Archers", 2, B3, 3, false, 62);
+ block("England", "archers", "Wales Archers", 2, B3, 3, false, 63);
+ block("England", "knights", "Lancaster Knights", 2, B3, 4, false, 64);
+ block("England", "knights", "York Knights", 2, B3, 4, false, 65);
+ block("England", "knights", "Durham Knights", 2, B3, 3, false, 66);
+ block("England", "hobelars", "Hobelars", 3, A2, 3, true, 67);
+
+ block("England", "infantry", "York Infantry", 2, C2, 4, false, 71);
+ block("England", "infantry", "Lancaster Infantry", 2, C2, 4, false, 72);
+ block("England", "infantry", "Northumber Infantry", 2, C2, 4, false, 73);
+ block("England", "infantry", "Durham Infantry", 2, C2, 3, false, 74);
+ block("England", "infantry", "Cumbria Infantry", 2, C2, 3, false, 75);
+ block("England", "infantry", "Westmor Infantry", 2, C2, 3, false, 82);
+ block("England", "infantry", "Wales Infantry", 2, C3, 3, false, 76);
+ block("England", "infantry", "Ulster Infantry", 2, C3, 3, false, 77);
+
+ block("England", "nobles", "Comyn", 2, B2, 4, false, 81);
+ block("England", "nobles", "Angus", 2, B2, 3, false, 83);
+ block("England", "nobles", "Argyll", 2, B2, 3, false, 84);
+ block("England", "nobles", "Bruce", 2, B2, 4, false, 85);
+ block("England", "nobles", "Mar", 2, B2, 3, false, 86);
+ block("England", "nobles", "Lennox", 2, B2, 3, false, 87);
+
+ block("England", "nobles", "Buchan", 2, B2, 3, false, 91);
+ block("England", "nobles", "Galloway", 2, B2, 3, false, 92);
+ block("England", "nobles", "Ross", 2, B2, 3, false, 93);
+ block("England", "nobles", "Atholl", 2, B2, 3, false, 94);
+ block("England", "nobles", "Dunbar", 2, B2, 3, false, 95);
+ block("England", "nobles", "Mentieth", 2, B2, 3, false, 96);
+ block("England", "nobles", "Steward", 2, B2, 3, false, 97);
+})();
+
+if (typeof module != 'undefined')
+ module.exports = { CARDS, BLOCKS, AREAS, BORDERS }