diff options
Diffstat (limited to 'data.js')
-rw-r--r-- | data.js | 803 |
1 files changed, 334 insertions, 469 deletions
@@ -1,7 +1,4 @@ -"use strict"; - -const CAESAR = "Caesar"; -const POMPEIUS = "Pompeius"; +"use strict" const CARDS = { 1: { name: "Apollo", event: "Apollo", image: "apollo" }, @@ -31,200 +28,107 @@ const CARDS = { 25: { name: "1/3", move: 1, levy: 3, image: "13" }, 26: { name: "1/2", move: 1, levy: 2, image: "12" }, 27: { name: "1/2", move: 1, levy: 2, image: "12" }, -}; +} -const block_index = {} const BLOCKS = [] -const space_index = {} const SPACES = [] +const EDGES = {} -const EDGES = {}; - -const SPACE_XY = { - Dead: { x: 300, y: 236 }, - Levy: { x: 767, y: 1191 }, - Aenos: { x: 1872, y: 463 }, - Aleria: { x: 1000, y: 470 }, - Alexandria: { x: 2045, y: 1083 }, - Ambracia: { x: 1582, y: 600 }, - Ancyra: { x: 2195, y: 488 }, - Antiochia: { x: 2360, y: 700 }, - Appia: { x: 2043, y: 553 }, - Aquileia: { x: 1215, y: 206 }, - Asculum: { x: 1233, y: 394 }, - Asturica: { x: 232, y: 565 }, - Athenae: { x: 1739, y: 663 }, - Badias: { x: 902, y: 977 }, - Bilbilis: { x: 459, y: 585 }, - Brundisium: { x: 1441, y: 525 }, - Burdigala: { x: 495, y: 320 }, - Byzantium: { x: 1990, y: 417 }, - Caralis: { x: 990, y: 665 }, - 'Carthago Nova': { x: 479, y: 818 }, - Catabathmus: { x: 1890, y: 1080 }, - Cenabum: { x: 653, y: 133 }, - Corduba: { x: 317, y: 837 }, - Creta: { x: 1794, y: 842 }, - Cyrene: { x: 1584, y: 1044 }, - Damascus: { x: 2415, y: 870 }, - Dyrrachium: { x: 1522, y: 472 }, - Emerita: { x: 200, y: 765 }, - Ephesus: { x: 1905, y: 635 }, - Eusebia: { x: 2310, y: 556 }, - Gades: { x: 232, y: 922 }, - Genua: { x: 995, y: 313 }, - Iomnium: { x: 763, y: 860 }, - Jerusalem: { x: 2324, y: 994 }, - Lilybaeum: { x: 1172, y: 731 }, - Lugdunum: { x: 790, y: 235 }, - Massilia: { x: 795, y: 405 }, - Memphis: { x: 2105, y: 1167 }, - Messana: { x: 1290, y: 708 }, - Narbo: { x: 695, y: 455 }, - Neapolis: { x: 1298, y: 535 }, - Nicomedia: { x: 2056, y: 424 }, - Olisipo: { x: 92, y: 810 }, - Pelusium: { x: 2178, y: 1069 }, - Perga: { x: 2085, y: 700 }, - Pergamum: { x: 1913, y: 535 }, - Portus: { x: 100, y: 630 }, - Pylos: { x: 1633, y: 733 }, - Ravenna: { x: 1144, y: 286 }, - Rhegium: { x: 1357, y: 698 }, - Roma: { x: 1160, y: 450 }, - Sala: { x: 205, y: 1089 }, - Salamis: { x: 2240, y: 800 }, - Salona: { x: 1336, y: 319 }, - Serdica: { x: 1689, y: 354 }, - Siga: { x: 472, y: 987 }, - Sinope: { x: 2303, y: 339 }, - Sipontum: { x: 1325, y: 455 }, - Sirmium: { x: 1460, y: 208 }, - Syracusae: { x: 1302, y: 778 }, - Tacape: { x: 1059, y: 1019 }, - Tarraco: { x: 564, y: 599 }, - Tarsus: { x: 2285, y: 675 }, - Thessalonica: { x: 1689, y: 484 }, - Thubactus: { x: 1276, y: 1084 }, - Tingis: { x: 257, y: 1000 }, - Toletum: { x: 359, y: 712 }, - Treviri: { x: 860, y: 68 }, - Utica: { x: 1045, y: 795 }, - 'Mare Aegaeum': { x: 1830, y: 670 }, - 'Mare Aegypticum': { x: 2020, y: 905 }, - 'Mare Hadriaticum': { x: 1360, y: 390 }, - 'Mare Hispanum': { x: 835, y: 650 }, - 'Mare Internum': { x: 1485, y: 870 }, - 'Mare Tyrrhenum': { x: 1140, y: 640 }, - 'Oceanus Atlanticus': { x: 118, y: 1014 }, - 'Pontus Euxinus': { x: 2147, y: 271 }, - 'Propontis': { x: 1945, y: 468 } -}; - -(function () { - function space(axis, major_align, minor_align, wrap, name, type, value) { - let id = space_index[name] = SPACES.length - SPACES[id] = SPACE_XY[name] - SPACES[id].name = name; - SPACES[id].type = type; - SPACES[id].value = value | 0; - SPACES[id].exits = []; - SPACES[id].layout_axis = axis; - SPACES[id].layout_major = (1 - major_align) / 2; - SPACES[id].layout_minor = (1 - minor_align) / 2; - SPACES[id].wrap = wrap; +function init_data() { + function space(name, type, value, axis, major, minor, wrap, x, y) { + major = (1 - major) / 2 + minor = (1 - minor) / 2 + SPACES.push({name, type, value, exits: [], layout: { axis, major, minor, wrap, x, y }}) } - space('X', 0, 0, 3, "Dead", "pool"); - space('X', 0, 0, 18, "Levy", "pool"); - - space('Y', -1, 0, 3, "Aenos", "port"); - space('X', 0, 0, 3, "Aleria", "port"); - space('X', 0, -1, 3, "Alexandria", "major-port", 2); - space('X', 0, 0, 3, "Ambracia", "port"); - space('X', 1, 0, 3, "Ancyra", "city"); - space('Y', 0, 1, 4, "Antiochia", "port", 1); - space('X', 1, 0, 3, "Appia", "city"); - space('X', 1, 0, 3, "Aquileia", "port"); - space('Y', 0, 1, 3, "Asculum", "city"); - space('Y', -1, 0, 3, "Asturica", "city"); - space('Y', 0, 0, 4, "Athenae", "major-port", 1); - space('X', -1, 1, 3, "Badias", "city"); - space('X', -1, 0, 3, "Bilbilis", "city"); - space('Y', 1, 0, 3, "Brundisium", "port"); - space('Y', 1, -1, 3, "Burdigala", "port"); - space('Y', -1, 0, 4, "Byzantium", "port", 1); - space('Y', -1, 0, 3, "Caralis", "port"); - space('X', 1, 0, 4, "Carthago Nova", "major-port", 1); - space('X', -1, 1, 3, "Catabathmus", "port"); - space('X', -1, 0, 3, "Cenabum", "city"); - space('X', 0, 0, 3, "Corduba", "city"); - space('X', 0, 0, 3, "Creta", "major-port"); - space('X', 0, 1, 3, "Cyrene", "port"); - space('X', -1, 0, 3, "Damascus", "city"); - space('Y', -1, 0, 3, "Dyrrachium", "port"); - space('Y', -1, 0, 3, "Emerita", "city"); - space('X', 1, 0, 4, "Ephesus", "major-port", 1); - space('X', 1, 0, 3, "Eusebia", "city"); - space('X', 0, 0, 3, "Gades", "port"); - space('Y', -1, -1, 3, "Genua", "port"); - space('X', 0, 1, 3, "Iomnium", "port"); - space('X', 0, 0, 3, "Jerusalem", "city"); - space('Y', 1, 0, 3, "Lilybaeum", "port"); - space('X', 0, -1, 3, "Lugdunum", "city"); - space('Y', 0, 1, 4, "Massilia", "major-port", 1); - space('X', 0, 1, 3, "Memphis", "city"); - space('Y', -1, 0, 3, "Messana", "port"); - space('X', -1, 0, 3, "Narbo", "port"); - space('X', 0, 1, 3, "Neapolis", "major-port"); - space('X', 1, 0, 3, "Nicomedia", "port"); - space('Y', 1, 0, 3, "Olisipo", "port"); - space('X', 1, 0, 3, "Pelusium", "port"); - space('Y', 1, -1, 3, "Perga", "port"); - space('X', 0, 0, 3, "Pergamum", "city"); - space('Y', 0, 0, 3, "Portus", "port"); - space('X', -1, 0, 3, "Pylos", "port"); - space('Y', -1, -1, 3, "Ravenna", "major-port"); - space('X', 1, 0, 3, "Rhegium", "port"); - space('Y', 0, -1, 4, "Roma", "port", 2); - space('X', 1, 1, 3, "Sala", "port"); - space('X', 0, 0, 3, "Salamis", "major-port"); - space('X', 1, 0, 3, "Salona", "port"); - space('X', 0, 0, 3, "Serdica", "city"); - space('X', 0, 1, 3, "Siga", "port"); - space('X', 0, 0, 3, "Sinope", "port"); - space('X', 1, 0, 3, "Sipontum", "port"); - space('X', 1, -1, 3, "Sirmium", "city"); - space('Y', 1, 0, 4, "Syracusae", "major-port", 1); - space('X', 0, 1, 3, "Tacape", "port"); - space('X', 1, 0, 4, "Tarraco", "port", 1); - space('X', -1, 0, 3, "Tarsus", "port"); - space('X', 0, 0, 3, "Thessalonica", "port"); - space('X', 0, 0, 3, "Thubactus", "port"); - space('X', 0, 0, 3, "Tingis", "port"); - space('X', 0, 0, 3, "Toletum", "city"); - space('X', 1, 1, 3, "Treviri", "city"); - space('X', -1, 0, 4, "Utica", "major-port", 1); - - space('Y', 0, 0, 5, "Mare Aegaeum", "sea"); - space('X', 0, 0, 5, "Mare Aegypticum", "sea"); - space('X', 0, 0, 5, "Mare Hadriaticum", "sea"); - space('Y', 0, 0, 5, "Mare Hispanum", "sea"); - space('X', 0, 0, 5, "Mare Internum", "sea"); - space('X', 0, 0, 5, "Mare Tyrrhenum", "sea"); - space('Y', 0, 0, 5, "Oceanus Atlanticus", "sea"); - space('X', 0, 0, 5, "Pontus Euxinus", "sea"); - space('X', 0, 0, 5, "Propontis", "sea"); + space("Dead", "pool", 0, "X", 0, 0, 3, 300, 236) + space("Levy", "pool", 0, "X", 0, 0, 18, 767, 1191) + + space("Aenos", "port", 0, "Y", -1, 0, 3, 1872, 463) + space("Aleria", "port", 0, "X", 0, 0, 3, 1000, 470) + space("Alexandria", "major-port", 2, "X", 0, -1, 3, 2045, 1083) + space("Ambracia", "port", 0, "X", 0, 0, 3, 1582, 600) + space("Ancyra", "city", 0, "X", 1, 0, 3, 2195, 488) + space("Antiochia", "port", 1, "Y", 0, 1, 4, 2360, 700) + space("Appia", "city", 0, "X", 1, 0, 3, 2043, 553) + space("Aquileia", "port", 0, "X", 1, 0, 3, 1215, 206) + space("Asculum", "city", 0, "Y", 0, 1, 3, 1233, 394) + space("Asturica", "city", 0, "Y", -1, 0, 3, 232, 565) + space("Athenae", "major-port", 1, "Y", 0, 0, 4, 1739, 663) + space("Badias", "city", 0, "X", -1, 1, 3, 902, 977) + space("Bilbilis", "city", 0, "X", -1, 0, 3, 459, 585) + space("Brundisium", "port", 0, "Y", 1, 0, 3, 1441, 525) + space("Burdigala", "port", 0, "Y", 1, -1, 3, 495, 320) + space("Byzantium", "port", 1, "Y", -1, 0, 4, 1990, 417) + space("Caralis", "port", 0, "Y", -1, 0, 3, 990, 665) + space("Carthago Nova", "major-port", 1, "X", 1, 0, 4, 479, 818) + space("Catabathmus", "port", 0, "X", -1, 1, 3, 1890, 1080) + space("Cenabum", "city", 0, "X", -1, 0, 3, 653, 133) + space("Corduba", "city", 0, "X", 0, 0, 3, 317, 837) + space("Creta", "major-port", 0, "X", 0, 0, 3, 1794, 842) + space("Cyrene", "port", 0, "X", 0, 1, 3, 1584, 1044) + space("Damascus", "city", 0, "X", -1, 0, 3, 2415, 870) + space("Dyrrachium", "port", 0, "Y", -1, 0, 3, 1522, 472) + space("Emerita", "city", 0, "Y", -1, 0, 3, 200, 765) + space("Ephesus", "major-port", 1, "X", 1, 0, 4, 1905, 635) + space("Eusebia", "city", 0, "X", 1, 0, 3, 2310, 556) + space("Gades", "port", 0, "X", 0, 0, 3, 232, 922) + space("Genua", "port", 0, "Y", -1, -1, 3, 995, 313) + space("Iomnium", "port", 0, "X", 0, 1, 3, 763, 860) + space("Jerusalem", "city", 0, "X", 0, 0, 3, 2324, 994) + space("Lilybaeum", "port", 0, "Y", 1, 0, 3, 1172, 731) + space("Lugdunum", "city", 0, "X", 0, -1, 3, 790, 235) + space("Massilia", "major-port", 1, "Y", 0, 1, 4, 795, 405) + space("Memphis", "city", 0, "X", 0, 1, 3, 2105, 1167) + space("Messana", "port", 0, "Y", -1, 0, 3, 1290, 708) + space("Narbo", "port", 0, "X", -1, 0, 3, 695, 455) + space("Neapolis", "major-port", 0, "X", 0, 1, 3, 1298, 535) + space("Nicomedia", "port", 0, "X", 1, 0, 3, 2056, 424) + space("Olisipo", "port", 0, "Y", 1, 0, 3, 92, 810) + space("Pelusium", "port", 0, "X", 1, 0, 3, 2178, 1069) + space("Perga", "port", 0, "Y", 1, -1, 3, 2085, 700) + space("Pergamum", "city", 0, "X", 0, 0, 3, 1913, 535) + space("Portus", "port", 0, "Y", 0, 0, 3, 100, 630) + space("Pylos", "port", 0, "X", -1, 0, 3, 1633, 733) + space("Ravenna", "major-port", 0, "Y", -1, -1, 3, 1144, 286) + space("Rhegium", "port", 0, "X", 1, 0, 3, 1357, 698) + space("Roma", "port", 2, "Y", 0, -1, 4, 1160, 450) + space("Sala", "port", 0, "X", 1, 1, 3, 205, 1089) + space("Salamis", "major-port", 0, "X", 0, 0, 3, 2240, 800) + space("Salona", "port", 0, "X", 1, 0, 3, 1336, 319) + space("Serdica", "city", 0, "X", 0, 0, 3, 1689, 354) + space("Siga", "port", 0, "X", 0, 1, 3, 472, 987) + space("Sinope", "port", 0, "X", 0, 0, 3, 2303, 339) + space("Sipontum", "port", 0, "X", 1, 0, 3, 1325, 455) + space("Sirmium", "city", 0, "X", 1, -1, 3, 1460, 208) + space("Syracusae", "major-port", 1, "Y", 1, 0, 4, 1302, 778) + space("Tacape", "port", 0, "X", 0, 1, 3, 1059, 1019) + space("Tarraco", "port", 1, "X", 1, 0, 4, 564, 599) + space("Tarsus", "port", 0, "X", -1, 0, 3, 2285, 675) + space("Thessalonica", "port", 0, "X", 0, 0, 3, 1689, 484) + space("Thubactus", "port", 0, "X", 0, 0, 3, 1276, 1084) + space("Tingis", "port", 0, "X", 0, 0, 3, 257, 1000) + space("Toletum", "city", 0, "X", 0, 0, 3, 359, 712) + space("Treviri", "city", 0, "X", 1, 1, 3, 860, 68) + space("Utica", "major-port", 1, "X", -1, 0, 4, 1045, 795) + + space("Mare Aegaeum", "sea", 0, "Y", 0, 0, 5, 1830, 670) + space("Mare Aegypticum", "sea", 0, "X", 0, 0, 5, 2020, 905) + space("Mare Hadriaticum", "sea", 0, "X", 0, 0, 5, 1360, 390) + space("Mare Hispanum", "sea", 0, "Y", 0, 0, 5, 835, 650) + space("Mare Internum", "sea", 0, "X", 0, 0, 5, 1485, 870) + space("Mare Tyrrhenum", "sea", 0, "X", 0, 0, 5, 1140, 640) + space("Oceanus Atlanticus", "sea", 0, "Y", 0, 0, 5, 118, 1014) + space("Pontus Euxinus", "sea", 0, "X", 0, 0, 5, 2147, 271) + space("Propontis", "sea", 0, "X", 0, 0, 5, 1945, 468) function edge(a, b, type) { - a = space_index[a] - b = space_index[b] - if (a > b) - [a, b] = [b, a]; - let AB = a * 100 + b; - EDGES[AB] = type; - SPACES[a].exits.push(b); - SPACES[b].exits.push(a); + a = SPACES.findIndex(s=>s.name===a) + b = SPACES.findIndex(s=>s.name===b) + let AB = (a > b) ? b * 100 + a : a * 100 + b + EDGES[AB] = type + SPACES[a].exits.push(b) + SPACES[b].exits.push(a) } function major(a,b) { edge(a,b, "major"); } @@ -232,286 +136,247 @@ const SPACE_XY = { function strait(a,b) { edge(a,b, "strait"); } function sea(a,b) { edge(a,b, "sea"); } - major("Alexandria", "Catabathmus"); - major("Alexandria", "Memphis"); - major("Antiochia", "Damascus"); - major("Antiochia", "Tarsus"); - major("Athenae", "Thessalonica"); - major("Aenos", "Byzantium"); - major("Aenos", "Thessalonica"); - major("Ancyra", "Appia"); - major("Ancyra", "Eusebia"); - major("Ancyra", "Nicomedia"); - major("Appia", "Ephesus"); - major("Aquileia", "Ravenna"); - major("Aquileia", "Salona"); - major("Aquileia", "Sirmium"); - major("Asculum", "Ravenna"); - major("Badias", "Utica"); - major("Bilbilis", "Burdigala"); - major("Bilbilis", "Toletum"); - major("Brundisium", "Neapolis"); - major("Burdigala", "Narbo"); - major("Carthago Nova", "Corduba"); - major("Carthago Nova", "Tarraco"); - major("Catabathmus", "Cyrene"); - major("Cenabum", "Lugdunum"); - major("Corduba", "Gades"); - major("Corduba", "Toletum"); - major("Damascus", "Jerusalem"); - major("Dyrrachium", "Thessalonica"); - major("Eusebia", "Tarsus"); - major("Genua", "Massilia"); - major("Genua", "Roma"); - major("Genua", "Ravenna"); - major("Iomnium", "Utica"); - major("Jerusalem", "Pelusium"); - major("Lugdunum", "Massilia"); - major("Massilia", "Narbo"); - major("Memphis", "Pelusium"); - major("Narbo", "Tarraco"); - major("Neapolis", "Roma"); - major("Neapolis", "Rhegium"); - major("Serdica", "Sirmium"); - major("Serdica", "Thessalonica"); - major("Tacape", "Utica"); - - minor("Alexandria", "Pelusium"); - minor("Athenae", "Ambracia"); - minor("Athenae", "Pylos"); - minor("Aenos", "Serdica"); - minor("Ambracia", "Dyrrachium"); - minor("Ancyra", "Sinope"); - minor("Appia", "Nicomedia"); - minor("Appia", "Perga"); - minor("Asculum", "Roma"); - minor("Asculum", "Sipontum"); - minor("Asturica", "Bilbilis"); - minor("Asturica", "Emerita"); - minor("Asturica", "Portus"); - minor("Asturica", "Toletum"); - minor("Badias", "Iomnium"); - minor("Badias", "Tacape"); - minor("Bilbilis", "Tarraco"); - minor("Brundisium", "Sipontum"); - minor("Burdigala", "Cenabum"); - minor("Carthago Nova", "Gades"); - minor("Carthago Nova", "Toletum"); - minor("Cenabum", "Treviri"); - minor("Cyrene", "Thubactus"); - minor("Dyrrachium", "Salona"); - minor("Ephesus", "Perga"); - minor("Ephesus", "Pergamum"); - minor("Emerita", "Gades"); - minor("Emerita", "Olisipo"); - minor("Eusebia", "Sinope"); - minor("Gades", "Olisipo"); - minor("Genua", "Lugdunum"); - minor("Iomnium", "Siga"); - minor("Lilybaeum", "Messana"); - minor("Lilybaeum", "Syracusae"); - minor("Lugdunum", "Treviri"); - minor("Messana", "Syracusae"); - minor("Neapolis", "Sipontum"); - minor("Nicomedia", "Pergamum"); - minor("Nicomedia", "Sinope"); - minor("Olisipo", "Portus"); - minor("Perga", "Tarsus"); - minor("Roma", "Ravenna"); - minor("Sala", "Siga"); - minor("Sala", "Tingis"); - minor("Salona", "Sirmium"); - minor("Siga", "Tingis"); - minor("Tacape", "Thubactus"); - - strait("Aenos", "Pergamum"); - strait("Byzantium", "Nicomedia"); - strait("Gades", "Tingis"); - strait("Messana", "Rhegium"); - - sea("Alexandria", "Mare Aegypticum"); - sea("Antiochia", "Mare Aegypticum"); - sea("Athenae", "Mare Aegaeum"); - sea("Aenos", "Mare Aegaeum"); - sea("Aleria", "Mare Tyrrhenum"); - sea("Ambracia", "Mare Internum"); - sea("Aquileia", "Mare Hadriaticum"); - sea("Byzantium", "Pontus Euxinus"); - sea("Byzantium", "Propontis"); - sea("Brundisium", "Mare Hadriaticum"); - sea("Brundisium", "Mare Internum"); - sea("Burdigala", "Oceanus Atlanticus"); - sea("Carthago Nova", "Mare Hispanum"); - sea("Caralis", "Mare Hispanum"); - sea("Caralis", "Mare Tyrrhenum"); - sea("Catabathmus", "Mare Aegypticum"); - sea("Creta", "Mare Aegaeum"); - sea("Creta", "Mare Aegypticum"); - sea("Creta", "Mare Internum"); - sea("Cyrene", "Mare Internum"); - sea("Dyrrachium", "Mare Hadriaticum"); - sea("Ephesus", "Mare Aegaeum"); - sea("Gades", "Oceanus Atlanticus"); - sea("Genua", "Mare Hispanum"); - sea("Genua", "Mare Tyrrhenum"); - sea("Iomnium", "Mare Hispanum"); - sea("Lilybaeum", "Mare Internum"); - sea("Lilybaeum", "Mare Tyrrhenum"); - sea("Massilia", "Mare Hispanum"); - sea("Mare Aegaeum", "Mare Aegypticum"); - sea("Mare Aegaeum", "Mare Internum"); - sea("Mare Aegaeum", "Propontis"); - sea("Mare Aegaeum", "Thessalonica"); - sea("Mare Aegypticum", "Mare Internum"); - sea("Mare Aegypticum", "Pelusium"); - sea("Mare Aegypticum", "Perga"); - sea("Mare Aegypticum", "Salamis"); - sea("Mare Aegypticum", "Tarsus"); - sea("Mare Hadriaticum", "Mare Internum"); - sea("Mare Hadriaticum", "Ravenna"); - sea("Mare Hadriaticum", "Salona"); - sea("Mare Hadriaticum", "Sipontum"); - sea("Mare Hispanum", "Mare Tyrrhenum"); - sea("Mare Hispanum", "Narbo"); - sea("Mare Hispanum", "Oceanus Atlanticus"); - sea("Mare Hispanum", "Siga"); - sea("Mare Hispanum", "Tarraco"); - sea("Mare Hispanum", "Tingis"); - sea("Mare Hispanum", "Utica"); - sea("Mare Internum", "Mare Tyrrhenum"); - sea("Mare Internum", "Messana"); - sea("Mare Internum", "Pylos"); - sea("Mare Internum", "Rhegium"); - sea("Mare Internum", "Syracusae"); - sea("Mare Internum", "Tacape"); - sea("Mare Internum", "Thubactus"); - sea("Mare Internum", "Utica"); - sea("Mare Tyrrhenum", "Messana"); - sea("Mare Tyrrhenum", "Neapolis"); - sea("Mare Tyrrhenum", "Roma"); - sea("Mare Tyrrhenum", "Rhegium"); - sea("Mare Tyrrhenum", "Utica"); - sea("Nicomedia", "Propontis"); - sea("Oceanus Atlanticus", "Olisipo"); - sea("Oceanus Atlanticus", "Portus"); - sea("Oceanus Atlanticus", "Sala"); - sea("Oceanus Atlanticus", "Tingis"); - sea("Pontus Euxinus", "Propontis"); - sea("Pontus Euxinus", "Sinope"); - - let index = 0; - - function block(owner, CR, steps, type, name, levy) { - let sid = name; - let [initiative, firepower] = CR; - if (type !== 'leader' && type !== 'cleopatra' && type !== 'legio') - sid = owner[0] + " " + sid; - let descr = name; - if (type !== 'leader' && type !== 'cleopatra' && type !== 'legio') - descr = owner[0] + ". " + descr; - if (levy) { - if (levy === "Carthago Nova") - descr += " (C. Nova)"; - else - descr += " (" + levy + ")"; - } - - let id = block_index[sid] = BLOCKS.length - BLOCKS[id] = { - owner: owner, - sid: sid, - name: name, - steps: steps, - initiative: initiative, - firepower: firepower | 0, - type: type, - levy: space_index[levy], - description: descr, - label: index++, - } + major("Alexandria", "Catabathmus") + major("Alexandria", "Memphis") + major("Antiochia", "Damascus") + major("Antiochia", "Tarsus") + major("Athenae", "Thessalonica") + major("Aenos", "Byzantium") + major("Aenos", "Thessalonica") + major("Ancyra", "Appia") + major("Ancyra", "Eusebia") + major("Ancyra", "Nicomedia") + major("Appia", "Ephesus") + major("Aquileia", "Ravenna") + major("Aquileia", "Salona") + major("Aquileia", "Sirmium") + major("Asculum", "Ravenna") + major("Badias", "Utica") + major("Bilbilis", "Burdigala") + major("Bilbilis", "Toletum") + major("Brundisium", "Neapolis") + major("Burdigala", "Narbo") + major("Carthago Nova", "Corduba") + major("Carthago Nova", "Tarraco") + major("Catabathmus", "Cyrene") + major("Cenabum", "Lugdunum") + major("Corduba", "Gades") + major("Corduba", "Toletum") + major("Damascus", "Jerusalem") + major("Dyrrachium", "Thessalonica") + major("Eusebia", "Tarsus") + major("Genua", "Massilia") + major("Genua", "Roma") + major("Genua", "Ravenna") + major("Iomnium", "Utica") + major("Jerusalem", "Pelusium") + major("Lugdunum", "Massilia") + major("Massilia", "Narbo") + major("Memphis", "Pelusium") + major("Narbo", "Tarraco") + major("Neapolis", "Roma") + major("Neapolis", "Rhegium") + major("Serdica", "Sirmium") + major("Serdica", "Thessalonica") + major("Tacape", "Utica") + + minor("Alexandria", "Pelusium") + minor("Athenae", "Ambracia") + minor("Athenae", "Pylos") + minor("Aenos", "Serdica") + minor("Ambracia", "Dyrrachium") + minor("Ancyra", "Sinope") + minor("Appia", "Nicomedia") + minor("Appia", "Perga") + minor("Asculum", "Roma") + minor("Asculum", "Sipontum") + minor("Asturica", "Bilbilis") + minor("Asturica", "Emerita") + minor("Asturica", "Portus") + minor("Asturica", "Toletum") + minor("Badias", "Iomnium") + minor("Badias", "Tacape") + minor("Bilbilis", "Tarraco") + minor("Brundisium", "Sipontum") + minor("Burdigala", "Cenabum") + minor("Carthago Nova", "Gades") + minor("Carthago Nova", "Toletum") + minor("Cenabum", "Treviri") + minor("Cyrene", "Thubactus") + minor("Dyrrachium", "Salona") + minor("Ephesus", "Perga") + minor("Ephesus", "Pergamum") + minor("Emerita", "Gades") + minor("Emerita", "Olisipo") + minor("Eusebia", "Sinope") + minor("Gades", "Olisipo") + minor("Genua", "Lugdunum") + minor("Iomnium", "Siga") + minor("Lilybaeum", "Messana") + minor("Lilybaeum", "Syracusae") + minor("Lugdunum", "Treviri") + minor("Messana", "Syracusae") + minor("Neapolis", "Sipontum") + minor("Nicomedia", "Pergamum") + minor("Nicomedia", "Sinope") + minor("Olisipo", "Portus") + minor("Perga", "Tarsus") + minor("Roma", "Ravenna") + minor("Sala", "Siga") + minor("Sala", "Tingis") + minor("Salona", "Sirmium") + minor("Siga", "Tingis") + minor("Tacape", "Thubactus") + + strait("Aenos", "Pergamum") + strait("Byzantium", "Nicomedia") + strait("Gades", "Tingis") + strait("Messana", "Rhegium") + + sea("Alexandria", "Mare Aegypticum") + sea("Antiochia", "Mare Aegypticum") + sea("Athenae", "Mare Aegaeum") + sea("Aenos", "Mare Aegaeum") + sea("Aleria", "Mare Tyrrhenum") + sea("Ambracia", "Mare Internum") + sea("Aquileia", "Mare Hadriaticum") + sea("Byzantium", "Pontus Euxinus") + sea("Byzantium", "Propontis") + sea("Brundisium", "Mare Hadriaticum") + sea("Brundisium", "Mare Internum") + sea("Burdigala", "Oceanus Atlanticus") + sea("Carthago Nova", "Mare Hispanum") + sea("Caralis", "Mare Hispanum") + sea("Caralis", "Mare Tyrrhenum") + sea("Catabathmus", "Mare Aegypticum") + sea("Creta", "Mare Aegaeum") + sea("Creta", "Mare Aegypticum") + sea("Creta", "Mare Internum") + sea("Cyrene", "Mare Internum") + sea("Dyrrachium", "Mare Hadriaticum") + sea("Ephesus", "Mare Aegaeum") + sea("Gades", "Oceanus Atlanticus") + sea("Genua", "Mare Hispanum") + sea("Genua", "Mare Tyrrhenum") + sea("Iomnium", "Mare Hispanum") + sea("Lilybaeum", "Mare Internum") + sea("Lilybaeum", "Mare Tyrrhenum") + sea("Massilia", "Mare Hispanum") + sea("Mare Aegaeum", "Mare Aegypticum") + sea("Mare Aegaeum", "Mare Internum") + sea("Mare Aegaeum", "Propontis") + sea("Mare Aegaeum", "Thessalonica") + sea("Mare Aegypticum", "Mare Internum") + sea("Mare Aegypticum", "Pelusium") + sea("Mare Aegypticum", "Perga") + sea("Mare Aegypticum", "Salamis") + sea("Mare Aegypticum", "Tarsus") + sea("Mare Hadriaticum", "Mare Internum") + sea("Mare Hadriaticum", "Ravenna") + sea("Mare Hadriaticum", "Salona") + sea("Mare Hadriaticum", "Sipontum") + sea("Mare Hispanum", "Mare Tyrrhenum") + sea("Mare Hispanum", "Narbo") + sea("Mare Hispanum", "Oceanus Atlanticus") + sea("Mare Hispanum", "Siga") + sea("Mare Hispanum", "Tarraco") + sea("Mare Hispanum", "Tingis") + sea("Mare Hispanum", "Utica") + sea("Mare Internum", "Mare Tyrrhenum") + sea("Mare Internum", "Messana") + sea("Mare Internum", "Pylos") + sea("Mare Internum", "Rhegium") + sea("Mare Internum", "Syracusae") + sea("Mare Internum", "Tacape") + sea("Mare Internum", "Thubactus") + sea("Mare Internum", "Utica") + sea("Mare Tyrrhenum", "Messana") + sea("Mare Tyrrhenum", "Neapolis") + sea("Mare Tyrrhenum", "Roma") + sea("Mare Tyrrhenum", "Rhegium") + sea("Mare Tyrrhenum", "Utica") + sea("Nicomedia", "Propontis") + sea("Oceanus Atlanticus", "Olisipo") + sea("Oceanus Atlanticus", "Portus") + sea("Oceanus Atlanticus", "Sala") + sea("Oceanus Atlanticus", "Tingis") + sea("Pontus Euxinus", "Propontis") + sea("Pontus Euxinus", "Sinope") + + function block(name, type, steps, initiative, firepower, levy = 0) { + if (levy) + levy = SPACES.findIndex(s=>s.name===levy) + BLOCKS.push({ name, type, steps, initiative, firepower, levy }) } - function caesar(CR,S,T,N,L) { block(CAESAR, CR, S, T, N, L); } - function pompeius(CR,S,T,N,L) { block(POMPEIUS, CR, S, T, N, L); } - - caesar("A3", 3, "leader", "Caesar"); - caesar("A2", 2, "leader", "Antonius"); - caesar("A2", 3, "leader", "Octavian"); - - caesar("C2", 3, "legio", "Legio 7", "Tarraco"); - caesar("C3", 3, "legio", "Legio 8", "Tarraco"); - caesar("C2", 3, "legio", "Legio 9", "Carthago Nova"); - caesar("C4", 3, "legio", "Legio 10", "Corduba"); - caesar("C3", 3, "legio", "Legio 11", "Genua"); - caesar("C3", 3, "legio", "Legio 12", "Genua"); - caesar("C3", 3, "legio", "Legio 13", "Ravenna"); - - caesar("C3", 3, "legio", "Legio 14", "Ravenna"); - caesar("C2", 3, "legio", "Legio 16", "Aquileia"); - caesar("C2", 4, "legio", "Legio 17", "Roma"); - caesar("C2", 4, "legio", "Legio 18", "Neapolis"); - caesar("C2", 4, "legio", "Legio 19", "Syracusae"); - caesar("C2", 4, "legio", "Legio 20", "Athenae"); - caesar("C3", 4, "legio", "Legio 21", "Ancyra"); - - caesar("B2", 3, "equitatus", "Equitatus 1", "Lugdunum"); - caesar("B2", 2, "equitatus", "Equitatus 2", "Toletum"); - caesar("B3", 2, "equitatus", "Equitatus 3", "Byzantium"); - caesar("B3", 3, "equitatus", "Equitatus 4", "Antiochia"); - - caesar("B1", 4, "auxilia-b", "Auxilia 1"); - caesar("B1", 4, "auxilia-b", "Auxilia 2"); - caesar("A1", 3, "auxilia-a", "Auxilia 3"); - caesar("A1", 3, "auxilia-a", "Auxilia 4"); - - caesar("X4", 2, "ballista", "Ballista"); - - caesar("D2", 2, "navis", "Navis 1"); - caesar("D2", 2, "navis", "Navis 2"); - caesar("D2", 2, "navis", "Navis 3"); - caesar("D3", 2, "navis", "Navis 4"); - caesar("D3", 2, "navis", "Navis 5"); - - block(POMPEIUS, "C1", 4, "cleopatra", "Cleopatra"); - - pompeius("B3", 3, "leader", "Pompeius"); - pompeius("A2", 3, "leader", "Scipio"); - pompeius("A2", 2, "leader", "Brutus"); - - pompeius("C2", 4, "legio", "Legio 1", "Roma"); - pompeius("C2", 4, "legio", "Legio 2", "Carthago Nova"); - pompeius("C3", 3, "legio", "Legio 3", "Ravenna"); - pompeius("C2", 3, "legio", "Legio 4", "Carthago Nova"); - pompeius("C2", 3, "legio", "Legio 5", "Tarraco"); - pompeius("C2", 3, "legio", "Legio 6", "Tarraco"); - pompeius("C2", 3, "legio", "Legio 32", "Athenae"); - - pompeius("C3", 3, "legio", "Legio 33", "Creta"); - pompeius("C3", 3, "legio", "Legio 34", "Antiochia"); - pompeius("C2", 3, "legio", "Legio 35", "Byzantium"); - pompeius("C2", 4, "legio", "Legio 36", "Ephesus"); - pompeius("C2", 3, "legio", "Legio 37", "Syracusae"); - pompeius("C2", 4, "legio", "Legio 38", "Alexandria"); - pompeius("C2", 3, "legio", "Legio 39", "Utica"); - - pompeius("B3", 2, "equitatus", "Equitatus 1", "Toletum"); - pompeius("B2", 4, "equitatus", "Equitatus 2", "Badias"); - pompeius("B2", 3, "equitatus", "Equitatus 3", "Antiochia"); - pompeius("B3", 2, "elephant", "Elephant", "Utica"); - - pompeius("B1", 4, "auxilia-b", "Auxilia 1"); - pompeius("B1", 4, "auxilia-b", "Auxilia 2"); - pompeius("A1", 3, "auxilia-a", "Auxilia 3"); - pompeius("A1", 3, "auxilia-a", "Auxilia 4"); - - pompeius("X4", 2, "ballista", "Ballista"); - - pompeius("D3", 2, "navis", "Navis 1"); - pompeius("D3", 2, "navis", "Navis 2"); - pompeius("D2", 2, "navis", "Navis 3"); - pompeius("D2", 2, "navis", "Navis 4"); - pompeius("D2", 2, "navis", "Navis 5"); -})(); + block("Caesar", "leader", 3, "A", 3) + block("Antonius", "leader", 2, "A", 2) + block("Octavian", "leader", 3, "A", 2) + block("Legio 7", "legio", 3, "C", 2, "Tarraco") + block("Legio 8", "legio", 3, "C", 3, "Tarraco") + block("Legio 9", "legio", 3, "C", 2, "Carthago Nova") + block("Legio 10", "legio", 3, "C", 4, "Corduba") + block("Legio 11", "legio", 3, "C", 3, "Genua") + block("Legio 12", "legio", 3, "C", 3, "Genua") + block("Legio 13", "legio", 3, "C", 3, "Ravenna") + block("Legio 14", "legio", 3, "C", 3, "Ravenna") + block("Legio 16", "legio", 3, "C", 2, "Aquileia") + block("Legio 17", "legio", 4, "C", 2, "Roma") + block("Legio 18", "legio", 4, "C", 2, "Neapolis") + block("Legio 19", "legio", 4, "C", 2, "Syracusae") + block("Legio 20", "legio", 4, "C", 2, "Athenae") + block("Legio 21", "legio", 4, "C", 3, "Ancyra") + block("Equitatus 1", "equitatus", 3, "B", 2, "Lugdunum") + block("Equitatus 2", "equitatus", 2, "B", 2, "Toletum") + block("Equitatus 3", "equitatus", 2, "B", 3, "Byzantium") + block("Equitatus 4", "equitatus", 3, "B", 3, "Antiochia") + block("Auxilia 1", "auxilia-b", 4, "B", 1) + block("Auxilia 2", "auxilia-b", 4, "B", 1) + block("Auxilia 3", "auxilia-a", 3, "A", 1) + block("Auxilia 4", "auxilia-a", 3, "A", 1) + block("Ballista", "ballista", 2, "X", 4) + block("Navis 1", "navis", 2, "D", 2) + block("Navis 2", "navis", 2, "D", 2) + block("Navis 3", "navis", 2, "D", 2) + block("Navis 4", "navis", 2, "D", 3) + block("Navis 5", "navis", 2, "D", 3) + + block("Cleopatra", "cleopatra", 4, "C", 1) + + block("Pompeius", "leader", 3, "B", 3) + block("Scipio", "leader", 3, "A", 2) + block("Brutus", "leader", 2, "A", 2) + block("Legio 1", "legio", 4, "C", 2, "Roma") + block("Legio 2", "legio", 4, "C", 2, "Carthago Nova") + block("Legio 3", "legio", 3, "C", 3, "Ravenna") + block("Legio 4", "legio", 3, "C", 2, "Carthago Nova") + block("Legio 5", "legio", 3, "C", 2, "Tarraco") + block("Legio 6", "legio", 3, "C", 2, "Tarraco") + block("Legio 32", "legio", 3, "C", 2, "Athenae") + block("Legio 33", "legio", 3, "C", 3, "Creta") + block("Legio 34", "legio", 3, "C", 3, "Antiochia") + block("Legio 35", "legio", 3, "C", 2, "Byzantium") + block("Legio 36", "legio", 4, "C", 2, "Ephesus") + block("Legio 37", "legio", 3, "C", 2, "Syracusae") + block("Legio 38", "legio", 4, "C", 2, "Alexandria") + block("Legio 39", "legio", 3, "C", 2, "Utica") + block("Equitatus 1", "equitatus", 2, "B", 3, "Toletum") + block("Equitatus 2", "equitatus", 4, "B", 2, "Badias") + block("Equitatus 3", "equitatus", 3, "B", 2, "Antiochia") + block("Elephant", "elephant", 2, "B", 3, "Utica") + block("Auxilia 1", "auxilia-b", 4, "B", 1) + block("Auxilia 2", "auxilia-b", 4, "B", 1) + block("Auxilia 3", "auxilia-a", 3, "A", 1) + block("Auxilia 4", "auxilia-a", 3, "A", 1) + block("Ballista", "ballista", 2, "X", 4) + block("Navis 1", "navis", 2, "D", 3) + block("Navis 2", "navis", 2, "D", 3) + block("Navis 3", "navis", 2, "D", 2) + block("Navis 4", "navis", 2, "D", 2) + block("Navis 5", "navis", 2, "D", 2) +} + +init_data() if (typeof module !== 'undefined') - module.exports = { CARDS, BLOCKS, SPACES, EDGES, block_index, space_index } + module.exports = { CARDS, BLOCKS, SPACES, EDGES } |