summaryrefslogtreecommitdiff
path: root/data.js
diff options
context:
space:
mode:
Diffstat (limited to 'data.js')
-rw-r--r--data.js757
1 files changed, 408 insertions, 349 deletions
diff --git a/data.js b/data.js
index 01229e9..10e0480 100644
--- a/data.js
+++ b/data.js
@@ -1,52 +1,4 @@
-"use strict";
-
-let AREAS = {
- "Ireland":{"x":120,"y":475},
- "Isle of Man":{"x":360,"y":525},
- "Scotland":{"x":635,"y":180},
- "Northumbria":{"x":885,"y":280},
- "Cumbria":{"x":680,"y":405},
- "North Yorks":{"x":890,"y":535},
- "East Yorks":{"x":1120,"y":545},
- "South Yorks":{"x":985,"y":710},
- "Lancaster":{"x":750,"y":690},
- "Caernarvon":{"x":480,"y":890},
- "Chester":{"x":720,"y":900},
- "Derby":{"x":960,"y":880},
- "Lincoln":{"x":1210,"y":820},
- "Pembroke":{"x":340,"y":1220},
- "Powys":{"x":565,"y":1100},
- "Hereford":{"x":715,"y":1125},
- "Warwick":{"x":890,"y":1090},
- "Leicester":{"x":1080,"y":1055},
- "Rutland":{"x":1265,"y":1060},
- "East Anglia":{"x":1505,"y":1040},
- "Glamorgan":{"x":570,"y":1330},
- "Gloucester":{"x":840,"y":1300},
- "Oxford":{"x":1035,"y":1290},
- "Middlesex":{"x":1235,"y":1305},
- "Essex":{"x":1440,"y":1255},
- "Somerset":{"x":750,"y":1510},
- "Wilts":{"x":920,"y":1460},
- "Sussex":{"x":1140,"y":1550},
- "Kent":{"x":1415,"y":1490},
- "Cornwall":{"x":400,"y":1660},
- "Dorset":{"x":810,"y":1640},
- "France":{"x":225,"y":160},
- "Calais":{"x":1465,"y":1795},
- "Irish Sea":{"x":280,"y":685},
- "North Sea":{"x":1425,"y":460},
- "English Channel":{"x":915,"y":1820},
- "Pool":{x:0,y:0},
- "Minor":{x:0,y:0},
- "LPool":{x:1688-50,y:50},
- "LMinor":{x:1688-50-210,y:50},
- "YPool":{x:50,y:1950-50},
- "YMinor":{x:50+210,y:1950-50},
-}
-
-let BORDERS = {};
-let BLOCKS = {};
+"use strict"
const CARDS = {
1: { name: "Force March", event: "force_march", actions: 1, image: "card_force_march" },
@@ -74,337 +26,444 @@ const CARDS = {
23: { name: "a 2", actions: 2, image: "card_2" },
24: { name: "a 2", actions: 2, image: "card_2" },
25: { name: "a 2", actions: 2, image: "card_2" },
-};
-
-(function () {
- for (let a in AREAS) {
- AREAS[a].exits = [];
- AREAS[a].shields = [];
- AREAS[a].wrap = 3;
- AREAS[a].layout_axis = 'X';
- AREAS[a].layout_major = 0.5;
- AREAS[a].layout_minor = 0.5;
+}
+
+let BORDERS = {}
+
+let BLOCKS = []
+let block_index = {}
+
+let AREAS = []
+let area_index = {}
+
+function init_areas() {
+ let AREA_XY = {
+ "Ireland":{"x":120,"y":475},
+ "Isle of Man":{"x":360,"y":525},
+ "Scotland":{"x":635,"y":180},
+ "Northumbria":{"x":885,"y":280},
+ "Cumbria":{"x":680,"y":405},
+ "North Yorks":{"x":890,"y":535},
+ "East Yorks":{"x":1120,"y":545},
+ "South Yorks":{"x":985,"y":710},
+ "Lancaster":{"x":750,"y":690},
+ "Caernarvon":{"x":480,"y":890},
+ "Chester":{"x":720,"y":900},
+ "Derby":{"x":960,"y":880},
+ "Lincoln":{"x":1210,"y":820},
+ "Pembroke":{"x":340,"y":1220},
+ "Powys":{"x":565,"y":1100},
+ "Hereford":{"x":715,"y":1125},
+ "Warwick":{"x":890,"y":1090},
+ "Leicester":{"x":1080,"y":1055},
+ "Rutland":{"x":1265,"y":1060},
+ "East Anglia":{"x":1505,"y":1040},
+ "Glamorgan":{"x":570,"y":1330},
+ "Gloucester":{"x":840,"y":1300},
+ "Oxford":{"x":1035,"y":1290},
+ "Middlesex":{"x":1235,"y":1305},
+ "Essex":{"x":1440,"y":1255},
+ "Somerset":{"x":750,"y":1510},
+ "Wilts":{"x":920,"y":1460},
+ "Sussex":{"x":1140,"y":1550},
+ "Kent":{"x":1415,"y":1490},
+ "Cornwall":{"x":400,"y":1660},
+ "Dorset":{"x":810,"y":1640},
+ "France":{"x":225,"y":160},
+ "Calais":{"x":1465,"y":1795},
+ "Irish Sea":{"x":280,"y":685},
+ "North Sea":{"x":1425,"y":460},
+ "English Channel":{"x":915,"y":1820},
+
+ "Dead":{x:0,y:0},
+ "Pool":{x:0,y:0},
+ "Minor":{x:0,y:0},
+ "LPool":{x:1688-50,y:50},
+ "LMinor":{x:1688-50-210,y:50},
+ "YPool":{x:50,y:1950-50},
+ "YMinor":{x:50+210,y:1950-50},
}
- function border(a, b, type) {
- if (a > b) [a, b] = [b, a];
- let id = a + "/" + b;
- BORDERS[id] = type;
- AREAS[a].exits.push(b);
- AREAS[b].exits.push(a);
+ let AREA_CITY = {
+ "Somerset": "Bristol",
+ "Warwick": "Coventry",
+ "Middlesex": "London",
+ "Northumbria": "Newcastle",
+ "East Anglia": "Norwich",
+ "Wilts": "Salisbury",
+ "South Yorks": "York",
}
- function yellow(A,B) { border(A,B,"major"); }
- function blue(A,B) { border(A,B,"river"); }
- function red(A,B) { border(A,B,"minor"); }
- function sea(A,B,major) { border(A,B,"sea"); if (major) AREAS[B].major_port = true; }
+ let AREA_CATHEDRAL = {
+ "Kent": "Canterbury",
+ "South Yorks": "York",
+ }
+
+ let AREA_CROWN = [
+ "Cumbria",
+ "South Yorks",
+ "Caernarvon",
+ "Chester",
+ "Derby",
+ "Pembroke",
+ "Warwick",
+ "Gloucester",
+ "Middlesex",
+ "Sussex",
+ "Cornwall",
+ ]
function layout(a, wrap, axis, major, minor) {
- AREAS[a].wrap = wrap;
- AREAS[a].layout_axis = axis;
- AREAS[a].layout_major = (1 - major) / 2;
- AREAS[a].layout_minor = (1 - minor) / 2;
+ area_index[a] = AREAS.length
+ AREAS.push({
+ name: a,
+ city: AREA_CITY[a] || null,
+ cathedral: AREA_CATHEDRAL[a] || null,
+ crown: AREA_CROWN.includes(a),
+ major_port: false,
+ shields: [],
+ exits: [],
+ layout: {
+ x: AREA_XY[a].x,
+ y: AREA_XY[a].y,
+ wrap,
+ axis,
+ major: (1 - major) / 2,
+ minor: (1 - minor) / 2,
+ },
+ })
}
- layout("LPool", 13, 'Y', 1, -1);
- layout("LMinor", 5, 'X', -1, 0);
- layout("YPool", 13, 'Y', -1, 1);
- layout("YMinor", 5, 'X', 1, 0);
-
- layout("France", 4, 'X', 0, 0);
- layout("Calais", 4, 'X', 0, 0);
-
- layout("Ireland", 3, 'Y', -1, -1);
- layout("Scotland", 3, 'X', -1, -1);
- layout("Northumbria", 4, 'Y', 0, 0);
- layout("Rutland", 4, 'Y', 0, 0);
- layout("Leicester", 4, 'Y', 0, 0);
-
- layout("North Sea", 10, 'Y', 1, 0);
- layout("Irish Sea", 10, 'Y', 1, 0);
- layout("English Channel", 10, 'X', 0, 0);
-
- layout("Cornwall", 4, 'X', 0, 0);
- layout("Dorset", 4, 'X', 0, 0);
- layout("Sussex", 4, 'X', 0, 0);
- layout("Kent", 4, 'X', 0, 0);
- layout("Somerset", 4, 'X', -1, -1);
-
- layout("East Anglia", 4, 'X', 0, 0);
- layout("Powys", 4, 'Y', 0, 0);
- layout("Hereford", 4, 'Y', 0, 0);
- layout("Oxford", 3, 'Y', 0, 0);
-
- layout("Derby", 4, 'X', 0, 0);
- layout("Caernarvon", 4, 'X', 0, 0);
- layout("Essex", 3, 'X', 0, 0);
- layout("Cumbria", 4, 'X', 0, 0);
- layout("Glamorgan", 4, 'X', 0, 0);
- layout("Pembroke", 4, 'X', 0, -1);
-
- red("Scotland", "Cumbria");
- red("Scotland", "Northumbria");
- red("Cumbria", "Northumbria");
- red("Cumbria", "North Yorks");
- red("Cumbria", "Lancaster");
- blue("Northumbria", "North Yorks");
- blue("Northumbria", "East Yorks");
-
- yellow("North Yorks", "East Yorks");
- yellow("North Yorks", "South Yorks");
- red("North Yorks", "Lancaster");
- blue("East Yorks", "South Yorks");
- red("Lancaster", "South Yorks");
- blue("Lancaster", "Chester");
- red("Lancaster", "Derby");
- yellow("South Yorks", "Derby");
- blue("South Yorks", "Lincoln");
-
- blue("Caernarvon", "Chester");
- red("Caernarvon", "Powys");
- red("Caernarvon", "Pembroke");
- yellow("Chester", "Powys");
- yellow("Chester", "Derby");
- blue("Chester", "Hereford");
- yellow("Chester", "Warwick");
- blue("Derby", "Warwick");
- blue("Derby", "Leicester");
- blue("Derby", "Lincoln");
- yellow("Lincoln", "Leicester");
- blue("Lincoln", "Rutland");
-
- red("Pembroke", "Powys");
- yellow("Pembroke", "Glamorgan");
- red("Powys", "Hereford");
- blue("Powys", "Glamorgan");
- blue("Hereford", "Warwick");
- blue("Hereford", "Gloucester");
- blue("Hereford", "Glamorgan");
- yellow("Warwick", "Leicester");
- blue("Warwick", "Oxford");
- blue("Warwick", "Gloucester");
- yellow("Leicester", "Rutland");
- blue("Leicester", "Essex");
- yellow("Leicester", "Middlesex");
- yellow("Leicester", "Oxford");
- blue("Rutland", "East Anglia");
- blue("Rutland", "Essex");
- yellow("East Anglia", "Essex");
-
- yellow("Gloucester", "Oxford");
- blue("Gloucester", "Wilts");
- yellow("Gloucester", "Somerset");
- yellow("Oxford", "Middlesex");
- blue("Oxford", "Wilts");
- blue("Oxford", "Sussex");
- blue("Middlesex", "Sussex");
- blue("Middlesex", "Kent");
- yellow("Middlesex", "Essex");
-
- yellow("Cornwall", "Somerset");
- yellow("Cornwall", "Dorset");
- yellow("Somerset", "Wilts");
- yellow("Somerset", "Dorset");
- yellow("Wilts", "Dorset");
- yellow("Wilts", "Sussex");
- blue("Sussex", "Dorset");
- yellow("Sussex", "Kent");
-
- sea("Irish Sea", "Ireland", true);
- sea("Irish Sea", "Isle of Man");
- sea("Irish Sea", "Scotland", true);
- sea("Irish Sea", "Cumbria");
- sea("Irish Sea", "Lancaster");
- sea("Irish Sea", "Chester", true);
- sea("Irish Sea", "Caernarvon");
- sea("Irish Sea", "Pembroke");
- sea("Irish Sea", "Glamorgan", true);
- sea("Irish Sea", "Somerset", true);
- sea("Irish Sea", "Cornwall", true);
-
- sea("North Sea", "Scotland", true);
- sea("North Sea", "Northumbria", true);
- sea("North Sea", "East Yorks", true);
- sea("North Sea", "Lincoln");
- sea("North Sea", "Rutland");
- sea("North Sea", "East Anglia", true);
- sea("North Sea", "Essex");
- sea("North Sea", "Middlesex", true);
- sea("North Sea", "Kent", true);
-
- sea("English Channel", "Cornwall", true);
- sea("English Channel", "Dorset");
- sea("English Channel", "Sussex", true);
- sea("English Channel", "Kent", true);
-
- sea("English Channel", "Calais", true);
- sea("North Sea", "Calais", true);
-
- sea("English Channel", "France", true);
- sea("Irish Sea", "France", true);
-
- AREAS["Somerset"].city = "Bristol";
- AREAS["Warwick"].city = "Coventry";
- AREAS["Middlesex"].city = "London";
- AREAS["Northumbria"].city = "Newcastle";
- AREAS["East Anglia"].city = "Norwich";
- AREAS["Wilts"].city = "Salisbury";
- AREAS["South Yorks"].city = "York";
-
- AREAS["Kent"].cathedral = "Canterbury";
- AREAS["South Yorks"].cathedral = "York";
-
- AREAS["Cumbria"].crown = true;
- AREAS["South Yorks"].crown = true;
- AREAS["Caernarvon"].crown = true;
- AREAS["Chester"].crown = true;
- AREAS["Derby"].crown = true;
- AREAS["Pembroke"].crown = true;
- AREAS["Warwick"].crown = true;
- AREAS["Gloucester"].crown = true;
- AREAS["Middlesex"].crown = true;
- AREAS["Sussex"].crown = true;
- AREAS["Cornwall"].crown = true;
+ // pools
+ layout("Dead", 3, 'X', 0, 0)
+ layout("Pool", 3, 'X', 0, 0)
+ layout("Minor", 3, 'X', 0, 0)
+
+ // seas
+ layout("English Channel", 10, 'X', 0, 0)
+ layout("Irish Sea", 10, 'Y', 1, 0)
+ layout("North Sea", 10, 'Y', 1, 0)
+
+ // exile areas
+ layout("Calais", 4, 'X', 0, 0)
+ layout("France", 4, 'X', 0, 0)
+ layout("Ireland", 3, 'Y', -1, -1)
+ layout("Scotland", 3, 'X', -1, -1)
+
+ layout("Caernarvon", 4, 'X', 0, 0)
+ layout("Chester", 3, 'X', 0, 0)
+ layout("Cornwall", 4, 'X', 0, 0)
+ layout("Cumbria", 4, 'X', 0, 0)
+ layout("Derby", 4, 'X', 0, 0)
+ layout("Dorset", 4, 'X', 0, 0)
+ layout("East Anglia", 4, 'X', 0, 0)
+ layout("East Yorks", 3, 'X', 0, 0)
+ layout("Essex", 3, 'X', 0, 0)
+ layout("Glamorgan", 4, 'X', 0, 0)
+ layout("Gloucester", 3, 'X', 0, 0)
+ layout("Hereford", 4, 'Y', 0, 0)
+ layout("Isle of Man", 3, 'X', 0, 0)
+ layout("Kent", 4, 'X', 0, 0)
+ layout("Lancaster", 3, 'X', 0, 0)
+ layout("Leicester", 4, 'Y', 0, 0)
+ layout("Lincoln", 3, 'X', 0, 0)
+ layout("Middlesex", 3, 'X', 0, 0)
+ layout("North Yorks", 3, 'X', 0, 0)
+ layout("Northumbria", 4, 'Y', 0, 0)
+ layout("Oxford", 3, 'Y', 0, 0)
+ layout("Pembroke", 4, 'X', 0, -1)
+ layout("Powys", 4, 'Y', 0, 0)
+ layout("Rutland", 4, 'Y', 0, 0)
+ layout("Somerset", 4, 'X', -1, -1)
+ layout("South Yorks", 3, 'X', 0, 0)
+ layout("Sussex", 4, 'X', 0, 0)
+ layout("Warwick", 3, 'X', 0, 0)
+ layout("Wilts", 3, 'X', 0, 0)
+
+ // only used for layout in ui
+ layout("LPool", 13, 'Y', 1, -1)
+ layout("LMinor", 5, 'X', -1, 0)
+ layout("YPool", 13, 'Y', -1, 1)
+ layout("YMinor", 5, 'X', 1, 0)
+}
+
+function init_borders() {
+ function border(a, b, type) {
+ a = area_index[a]
+ b = area_index[b]
+ let id = (a < b) ? a * 100 + b : b * 100 + a
+ BORDERS[id] = type
+ AREAS[a].exits.push(b)
+ AREAS[b].exits.push(a)
+ }
+ function yellow(A,B) { border(A,B,"major"); }
+ function blue(A,B) { border(A,B,"river"); }
+ function red(A,B) { border(A,B,"minor"); }
+ function sea(A,B,major) { border(A,B,"sea"); if (major) AREAS[area_index[B]].major_port = true; }
+
+ red("Scotland", "Cumbria")
+ red("Scotland", "Northumbria")
+ red("Cumbria", "Northumbria")
+ red("Cumbria", "North Yorks")
+ red("Cumbria", "Lancaster")
+ blue("Northumbria", "North Yorks")
+ blue("Northumbria", "East Yorks")
+
+ yellow("North Yorks", "East Yorks")
+ yellow("North Yorks", "South Yorks")
+ red("North Yorks", "Lancaster")
+ blue("East Yorks", "South Yorks")
+ red("Lancaster", "South Yorks")
+ blue("Lancaster", "Chester")
+ red("Lancaster", "Derby")
+ yellow("South Yorks", "Derby")
+ blue("South Yorks", "Lincoln")
+
+ blue("Caernarvon", "Chester")
+ red("Caernarvon", "Powys")
+ red("Caernarvon", "Pembroke")
+ yellow("Chester", "Powys")
+ yellow("Chester", "Derby")
+ blue("Chester", "Hereford")
+ yellow("Chester", "Warwick")
+ blue("Derby", "Warwick")
+ blue("Derby", "Leicester")
+ blue("Derby", "Lincoln")
+ yellow("Lincoln", "Leicester")
+ blue("Lincoln", "Rutland")
+
+ red("Pembroke", "Powys")
+ yellow("Pembroke", "Glamorgan")
+ red("Powys", "Hereford")
+ blue("Powys", "Glamorgan")
+ blue("Hereford", "Warwick")
+ blue("Hereford", "Gloucester")
+ blue("Hereford", "Glamorgan")
+ yellow("Warwick", "Leicester")
+ blue("Warwick", "Oxford")
+ blue("Warwick", "Gloucester")
+ yellow("Leicester", "Rutland")
+ blue("Leicester", "Essex")
+ yellow("Leicester", "Middlesex")
+ yellow("Leicester", "Oxford")
+ blue("Rutland", "East Anglia")
+ blue("Rutland", "Essex")
+ yellow("East Anglia", "Essex")
+
+ yellow("Gloucester", "Oxford")
+ blue("Gloucester", "Wilts")
+ yellow("Gloucester", "Somerset")
+ yellow("Oxford", "Middlesex")
+ blue("Oxford", "Wilts")
+ blue("Oxford", "Sussex")
+ blue("Middlesex", "Sussex")
+ blue("Middlesex", "Kent")
+ yellow("Middlesex", "Essex")
+
+ yellow("Cornwall", "Somerset")
+ yellow("Cornwall", "Dorset")
+ yellow("Somerset", "Wilts")
+ yellow("Somerset", "Dorset")
+ yellow("Wilts", "Dorset")
+ yellow("Wilts", "Sussex")
+ blue("Sussex", "Dorset")
+ yellow("Sussex", "Kent")
+
+ sea("Irish Sea", "Ireland", true)
+ sea("Irish Sea", "Isle of Man")
+ sea("Irish Sea", "Scotland", true)
+ sea("Irish Sea", "Cumbria")
+ sea("Irish Sea", "Lancaster")
+ sea("Irish Sea", "Chester", true)
+ sea("Irish Sea", "Caernarvon")
+ sea("Irish Sea", "Pembroke")
+ sea("Irish Sea", "Glamorgan", true)
+ sea("Irish Sea", "Somerset", true)
+ sea("Irish Sea", "Cornwall", true)
+
+ sea("North Sea", "Scotland", true)
+ sea("North Sea", "Northumbria", true)
+ sea("North Sea", "East Yorks", true)
+ sea("North Sea", "Lincoln")
+ sea("North Sea", "Rutland")
+ sea("North Sea", "East Anglia", true)
+ sea("North Sea", "Essex")
+ sea("North Sea", "Middlesex", true)
+ sea("North Sea", "Kent", true)
+
+ sea("English Channel", "Cornwall", true)
+ sea("English Channel", "Dorset")
+ sea("English Channel", "Sussex", true)
+ sea("English Channel", "Kent", true)
+
+ sea("English Channel", "Calais", true)
+ sea("North Sea", "Calais", true)
+
+ sea("English Channel", "France", true)
+ sea("Irish Sea", "France", true)
+
+ for (let a of AREAS)
+ a.exits.sort((a,b)=>a-b)
+}
+
+function init_blocks() {
function block(image, owner, type, name, steps, combat, loyalty, extra, extra2) {
- let id = name;
- let enemy = null;
+ let id = name
+ let enemy = null
if (name === "Bombard")
- id = name + "/" + owner[0];
+ id = name + "/" + owner[0]
if (loyalty) {
- id = name + "/" + owner[0];
+ id = name + "/" + owner[0]
if (owner === "York")
- enemy = name + "/L";
+ enemy = name + "/L"
else
- enemy = name + "/Y";
+ enemy = name + "/Y"
}
- if (id in BLOCKS)
- throw new Error("Duplicate block: " + id);
- BLOCKS[id] = {
- type: type,
- owner: owner,
+ if (id in block_index)
+ throw new Error("Duplicate block: " + id)
+ let i = block_index[id] = BLOCKS.length
+ BLOCKS.push({
+ id: id,
name: name,
+ owner: owner,
+ type: type,
shield: name,
steps: steps,
combat: combat,
+ initiative: combat[0],
+ fire_power: combat[1] | 0,
+ loyalty: loyalty || 0,
+ enemy: enemy || -1,
+ heir: 0,
+ home: null,
image: image,
- };
- if (loyalty)
- BLOCKS[id].loyalty = loyalty;
- if (enemy)
- BLOCKS[id].enemy = enemy;
+ })
if (extra) {
if (type === 'heir') {
- BLOCKS[id].heir = extra;
- BLOCKS[id].shield = extra2;
+ BLOCKS[i].heir = extra
+ if (extra2)
+ BLOCKS[i].shield = extra2
}
if (type === 'church' || type === 'levies')
- BLOCKS[id].home = extra;
+ BLOCKS[i].home = extra
if (type === 'nobles')
- BLOCKS[id].shield = extra;
+ BLOCKS[i].shield = extra
}
+
+ // console.log(`const B_${id.toUpperCase().replace(/[ \/]/g, "_").replace(/[()]/g, "")} = block_index["${id}"]`)
}
- block(11, "York", "heir", "York", 4, "B3", 0, 1);
- block(12, "York", "heir", "March", 3, "A3", 0, 2);
- block(13, "York", "heir", "Rutland", 3, "B1", 0, 3);
- block(14, "York", "heir", "Clarence", 3, "B2", 1, 4);
- block(15, "York", "heir", "Gloucester", 3, "B3", 0, 5);
-
- block(16, "York", "nobles", "Essex", 3, "B1", 0);
- block(17, "York", "nobles", "Hastings", 3, "B2", 0);
- block(21, "York", "nobles", "Herbert", 3, "A2", 0);
- block(22, "York", "nobles", "Worcester", 2, "B2", 0);
- block(23, "York", "nobles", "Suffolk", 3, "B2", 0);
- block(24, "York", "nobles", "Norfolk", 4, "B2", 0);
- block(25, "York", "nobles", "Buckingham", 4, "B2", 1);
- block(26, "York", "nobles", "Exeter", 3, "A1", 1);
- block(27, "York", "nobles", "Rivers", 2, "B2", 2);
- block(31, "York", "nobles", "Northumberland", 4, "B3", 1);
- block(32, "York", "nobles", "Shrewsbury", 3, "A1", 1);
- block(33, "York", "nobles", "Stanley", 4, "B2", 1);
- block(34, "York", "nobles", "Arundel", 3, "B2", 0);
- block(35, "York", "nobles", "Warwick", 4, "B3", 3);
- block(36, "York", "nobles", "Kent", 3, "A2", 2);
- block(37, "York", "nobles", "Salisbury", 3, "B2", 2);
- block(41, "York", "nobles", "Westmoreland", 3, "B2", 2);
-
- block(51, "York", "mercenaries", "Irish Mercenary", 4, "B2", 0);
- block(52, "York", "mercenaries", "Burgundian Mercenary", 3, "A3", 0);
- block(53, "York", "mercenaries", "Calais Mercenary", 3, "B4", 0);
- block(46, "York", "church", "Canterbury (church)", 3, "C1", 2, "Canterbury");
- block(47, "York", "church", "York (church)", 3, "C2", 1, "York");
- block(42, "York", "levies", "London (levy)", 4, "C3", 0, "London");
- block(43, "York", "levies", "Norwich (levy)", 4, "C2", 0, "Norwich");
- block(44, "York", "levies", "Salisbury (levy)", 4, "C2", 0, "Salisbury");
- block(45, "York", "bombard", "Bombard", 3, "D3", 0);
-
- block(91, "Lancaster", "heir", "Henry VI", 4, "B2", 0, 1);
- block(92, "Lancaster", "heir", "Prince Edward", 3, "B1", 0, 2);
- block(93, "Lancaster", "heir", "Exeter", 3, "A1", 2, 3, "Exeter");
- block(94, "Lancaster", "heir", "Somerset", 3, "A2", 0, 4, "Somerset");
- block(95, "Lancaster", "heir", "Richmond", 3, "B2", 0, 5, "Richmond");
-
- block(67, "Lancaster", "nobles", "Westmoreland", 3, "B2", 2);
- block(71, "Lancaster", "nobles", "Northumberland", 4, "B3", 2);
- block(72, "Lancaster", "nobles", "Shrewsbury", 3, "A1", 2);
- block(73, "Lancaster", "nobles", "Stanley", 4, "B2", 1);
- block(75, "Lancaster", "nobles", "Warwick", 4, "B3", 3);
- block(76, "Lancaster", "nobles", "Kent", 3, "A2", 2);
- block(77, "Lancaster", "nobles", "Salisbury", 3, "B2", 2);
- block(81, "Lancaster", "nobles", "Oxford", 3, "A2", 0);
- block(82, "Lancaster", "nobles", "Pembroke", 3, "B2", 0);
- block(83, "Lancaster", "nobles", "Devon", 2, "B2", 0);
- block(84, "Lancaster", "nobles", "Beaumont", 3, "B2", 0);
- block(85, "Lancaster", "nobles", "Buckingham", 4, "B2", 1);
- block(86, "Lancaster", "nobles", "Clarence", 3, "B2", 1);
- block(87, "Lancaster", "nobles", "Rivers", 2, "B2", 1);
- block(96, "Lancaster", "nobles", "Clifford", 3, "A2", 0);
- block(97, "Lancaster", "nobles", "Wiltshire", 3, "B2", 0);
-
- block(55, "Lancaster", "mercenaries", "Scots Mercenary", 4, "B3");
- block(56, "Lancaster", "mercenaries", "Welsh Mercenary", 3, "A2");
- block(57, "Lancaster", "mercenaries", "French Mercenary", 4, "B3");
- block(61, "Lancaster", "church", "Canterbury (church)", 3, "C1", 1, "Canterbury");
- block(62, "Lancaster", "church", "York (church)", 3, "C2", 2, "York");
- block(63, "Lancaster", "bombard", "Bombard", 3, "D3");
- block(64, "Lancaster", "levies", "Coventry (levy)", 4, "C2", 0, "Coventry");
- block(65, "Lancaster", "levies", "Bristol (levy)", 4, "C2", 0, "Bristol");
- block(66, "Lancaster", "levies", "Newcastle (levy)", 4, "C3", 0, "Newcastle");
- block(74, "Lancaster", "levies", "York (levy)", 4, "C3", 0, "York");
-
- block(54, "Rebel", "rebel", "Rebel", 4, "A2");
+ block(11, "York", "heir", "York", 4, "B3", 0, 1)
+ block(12, "York", "heir", "March", 3, "A3", 0, 2)
+ block(13, "York", "heir", "Rutland", 3, "B1", 0, 3)
+ block(14, "York", "heir", "Clarence", 3, "B2", 1, 4)
+ block(15, "York", "heir", "Gloucester", 3, "B3", 0, 5)
+
+ block(16, "York", "nobles", "Essex", 3, "B1", 0)
+ block(17, "York", "nobles", "Hastings", 3, "B2", 0)
+ block(21, "York", "nobles", "Herbert", 3, "A2", 0)
+ block(22, "York", "nobles", "Worcester", 2, "B2", 0)
+ block(23, "York", "nobles", "Suffolk", 3, "B2", 0)
+ block(24, "York", "nobles", "Norfolk", 4, "B2", 0)
+ block(25, "York", "nobles", "Buckingham", 4, "B2", 1)
+ block(26, "York", "nobles", "Exeter", 3, "A1", 1)
+ block(27, "York", "nobles", "Rivers", 2, "B2", 2)
+ block(31, "York", "nobles", "Northumberland", 4, "B3", 1)
+ block(32, "York", "nobles", "Shrewsbury", 3, "A1", 1)
+ block(33, "York", "nobles", "Stanley", 4, "B2", 1)
+ block(34, "York", "nobles", "Arundel", 3, "B2", 0)
+ block(35, "York", "nobles", "Warwick", 4, "B3", 3)
+ block(36, "York", "nobles", "Kent", 3, "A2", 2)
+ block(37, "York", "nobles", "Salisbury", 3, "B2", 2)
+ block(41, "York", "nobles", "Westmoreland", 3, "B2", 2)
+
+ block(51, "York", "mercenaries", "Irish Mercenary", 4, "B2", 0)
+ block(52, "York", "mercenaries", "Burgundian Mercenary", 3, "A3", 0)
+ block(53, "York", "mercenaries", "Calais Mercenary", 3, "B4", 0)
+ block(46, "York", "church", "Canterbury (church)", 3, "C1", 2, "Canterbury")
+ block(47, "York", "church", "York (church)", 3, "C2", 1, "York")
+ block(42, "York", "levies", "London (levy)", 4, "C3", 0, "London")
+ block(43, "York", "levies", "Norwich (levy)", 4, "C2", 0, "Norwich")
+ block(44, "York", "levies", "Salisbury (levy)", 4, "C2", 0, "Salisbury")
+ block(45, "York", "bombard", "Bombard", 3, "D3", 0)
+
+ block(91, "Lancaster", "heir", "Henry VI", 4, "B2", 0, 1)
+ block(92, "Lancaster", "heir", "Prince Edward", 3, "B1", 0, 2)
+ block(93, "Lancaster", "heir", "Exeter", 3, "A1", 2, 3, "Exeter")
+ block(94, "Lancaster", "heir", "Somerset", 3, "A2", 0, 4, "Somerset")
+ block(95, "Lancaster", "heir", "Richmond", 3, "B2", 0, 5, "Richmond")
+
+ block(67, "Lancaster", "nobles", "Westmoreland", 3, "B2", 2)
+ block(71, "Lancaster", "nobles", "Northumberland", 4, "B3", 2)
+ block(72, "Lancaster", "nobles", "Shrewsbury", 3, "A1", 2)
+ block(73, "Lancaster", "nobles", "Stanley", 4, "B2", 1)
+ block(75, "Lancaster", "nobles", "Warwick", 4, "B3", 3)
+ block(76, "Lancaster", "nobles", "Kent", 3, "A2", 2)
+ block(77, "Lancaster", "nobles", "Salisbury", 3, "B2", 2)
+ block(81, "Lancaster", "nobles", "Oxford", 3, "A2", 0)
+ block(82, "Lancaster", "nobles", "Pembroke", 3, "B2", 0)
+ block(83, "Lancaster", "nobles", "Devon", 2, "B2", 0)
+ block(84, "Lancaster", "nobles", "Beaumont", 3, "B2", 0)
+ block(85, "Lancaster", "nobles", "Buckingham", 4, "B2", 1)
+ block(86, "Lancaster", "nobles", "Clarence", 3, "B2", 1)
+ block(87, "Lancaster", "nobles", "Rivers", 2, "B2", 1)
+ block(96, "Lancaster", "nobles", "Clifford", 3, "A2", 0)
+ block(97, "Lancaster", "nobles", "Wiltshire", 3, "B2", 0)
+
+ block(55, "Lancaster", "mercenaries", "Scots Mercenary", 4, "B3")
+ block(56, "Lancaster", "mercenaries", "Welsh Mercenary", 3, "A2")
+ block(57, "Lancaster", "mercenaries", "French Mercenary", 4, "B3")
+ block(61, "Lancaster", "church", "Canterbury (church)", 3, "C1", 1, "Canterbury")
+ block(62, "Lancaster", "church", "York (church)", 3, "C2", 2, "York")
+ block(63, "Lancaster", "bombard", "Bombard", 3, "D3")
+ block(64, "Lancaster", "levies", "Coventry (levy)", 4, "C2", 0, "Coventry")
+ block(65, "Lancaster", "levies", "Bristol (levy)", 4, "C2", 0, "Bristol")
+ block(66, "Lancaster", "levies", "Newcastle (levy)", 4, "C3", 0, "Newcastle")
+ block(74, "Lancaster", "levies", "York (levy)", 4, "C3", 0, "York")
+
+ block(54, "Rebel", "rebel", "Rebel", 4, "A2")
+
+ for (let b of BLOCKS)
+ if (b.enemy !== -1)
+ b.enemy = block_index[b.enemy]
+}
+function init_shields() {
function shields(area, list) {
- AREAS[area].shields = list;
+ AREAS[area_index[area]].shields = list
}
- shields("Isle of Man", ["Stanley"]);
- shields("Northumbria", ["Northumberland", "Westmoreland"]);
- shields("Cumbria", ["Northumberland", "Clifford"]);
- shields("North Yorks", ["Salisbury", "Clifford"]);
- shields("East Yorks", ["Kent", "Salisbury", "Northumberland"]);
- shields("South Yorks", ["York", "Shrewsbury"]);
- shields("Lancaster", ["Lancaster", "Stanley"]);
- shields("Caernarvon", ["Norfolk"]);
- shields("Lincoln", ["Lancaster", "Beaumont"]);
- shields("Pembroke", ["Richmond", "Pembroke"]);
- shields("Hereford", ["York"]);
- shields("Warwick", ["Buckingham", "Warwick"]);
- shields("Leicester", ["Hastings", "Rivers"]);
- shields("Rutland", ["York", "Worcester"]);
- shields("East Anglia", ["Norfolk", "Suffolk"]);
- shields("Glamorgan", ["Buckingham", "Norfolk", "Herbert", "Warwick"]);
- shields("Oxford", ["Suffolk"]);
- shields("Essex", ["Oxford", "Essex"]);
- shields("Wilts", ["Wiltshire"]);
- shields("Sussex", ["Arundel"]);
- shields("Kent", ["Buckingham"]);
- shields("Cornwall", ["Devon", "Exeter"]);
- shields("Dorset", ["Somerset"]);
- shields("Calais", ["Warwick"]);
-
-})();
+ shields("Isle of Man", ["Stanley"])
+ shields("Northumbria", ["Northumberland", "Westmoreland"])
+ shields("Cumbria", ["Northumberland", "Clifford"])
+ shields("North Yorks", ["Salisbury", "Clifford"])
+ shields("East Yorks", ["Kent", "Salisbury", "Northumberland"])
+ shields("South Yorks", ["York", "Shrewsbury"])
+ shields("Lancaster", ["Lancaster", "Stanley"])
+ shields("Caernarvon", ["Norfolk"])
+ shields("Lincoln", ["Lancaster", "Beaumont"])
+ shields("Pembroke", ["Richmond", "Pembroke"])
+ shields("Hereford", ["York"])
+ shields("Warwick", ["Buckingham", "Warwick"])
+ shields("Leicester", ["Hastings", "Rivers"])
+ shields("Rutland", ["York", "Worcester"])
+ shields("East Anglia", ["Norfolk", "Suffolk"])
+ shields("Glamorgan", ["Buckingham", "Norfolk", "Herbert", "Warwick"])
+ shields("Oxford", ["Suffolk"])
+ shields("Essex", ["Oxford", "Essex"])
+ shields("Wilts", ["Wiltshire"])
+ shields("Sussex", ["Arundel"])
+ shields("Kent", ["Buckingham"])
+ shields("Cornwall", ["Devon", "Exeter"])
+ shields("Dorset", ["Somerset"])
+ shields("Calais", ["Warwick"])
+}
+
+init_areas()
+init_borders()
+init_blocks()
+init_shields()
if (typeof module !== 'undefined')
- module.exports = { CARDS, BLOCKS, AREAS, BORDERS }
+ module.exports = { CARDS, BLOCKS, AREAS, BORDERS, block_index, area_index }