From 124b070dc95390adb3fe944821dbe7eee4d54385 Mon Sep 17 00:00:00 2001 From: Hide_D Date: Mon, 29 Dec 2025 05:59:15 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20add=20initial=20Pok=C3=A9mon=20map=20da?= =?UTF-8?q?ta=20and=20loader?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Introduced a new JSON file `map_pokemon_v1.json` containing detailed city data for the Pokémon map, including attributes like population, agriculture, commerce, and connections. - Implemented a map loader in `mapLoader.ts` to read and parse map definitions from JSON files, allowing for dynamic loading of map data. - Created a script `generate-map-data.mjs` to convert legacy PHP map data into the new JSON format, ensuring compatibility with the updated map system. --- app/game-engine/resources/map/map_che.json | 3722 ++++++++++++++++ app/game-engine/resources/map/map_chess.json | 2968 +++++++++++++ app/game-engine/resources/map/map_cr.json | 2161 +++++++++ .../resources/map/map_ludo_rathowm.json | 3849 +++++++++++++++++ .../resources/map/map_miniche.json | 3114 +++++++++++++ .../resources/map/map_miniche_b.json | 3114 +++++++++++++ .../resources/map/map_miniche_clean.json | 3114 +++++++++++++ .../resources/map/map_pokemon_v1.json | 879 ++++ app/game-engine/src/index.ts | 2 +- app/game-engine/src/scenario/mapLoader.ts | 51 + .../src/scenario/scenarioSeeder.ts | 8 +- .../generate-map-data.mjs | 201 +- 12 files changed, 23074 insertions(+), 109 deletions(-) create mode 100644 app/game-engine/resources/map/map_che.json create mode 100644 app/game-engine/resources/map/map_chess.json create mode 100644 app/game-engine/resources/map/map_cr.json create mode 100644 app/game-engine/resources/map/map_ludo_rathowm.json create mode 100644 app/game-engine/resources/map/map_miniche.json create mode 100644 app/game-engine/resources/map/map_miniche_b.json create mode 100644 app/game-engine/resources/map/map_miniche_clean.json create mode 100644 app/game-engine/resources/map/map_pokemon_v1.json create mode 100644 app/game-engine/src/scenario/mapLoader.ts rename app/game-engine/src/scenario/legacyMapLoader.ts => tools/generate-map-data.mjs (66%) diff --git a/app/game-engine/resources/map/map_che.json b/app/game-engine/resources/map/map_che.json new file mode 100644 index 0000000..6b61e00 --- /dev/null +++ b/app/game-engine/resources/map/map_che.json @@ -0,0 +1,3722 @@ +{ + "id": "che", + "name": "che", + "cities": [ + { + "id": 1, + "name": "업", + "level": 8, + "region": 1, + "position": { + "x": 345, + "y": 130 + }, + "connections": [ + 9, + 18, + 70, + 78, + 80 + ], + "max": { + "population": 620500, + "agriculture": 12500, + "commerce": 11300, + "security": 10000, + "defence": 11700, + "wall": 12200 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "남피", + "복양", + "호관", + "계교", + "관도" + ] + } + }, + { + "id": 2, + "name": "허창", + "level": 8, + "region": 2, + "position": { + "x": 330, + "y": 215 + }, + "connections": [ + 10, + 19, + 38, + 71, + 74, + 80 + ], + "max": { + "population": 587600, + "agriculture": 12100, + "commerce": 12400, + "security": 10000, + "defence": 11700, + "wall": 12500 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "완", + "진류", + "초", + "호로", + "사수", + "관도" + ] + } + }, + { + "id": 3, + "name": "낙양", + "level": 8, + "region": 2, + "position": { + "x": 275, + "y": 180 + }, + "connections": [ + 70, + 71, + 72, + 74 + ], + "max": { + "population": 835700, + "agriculture": 11700, + "commerce": 12000, + "security": 10000, + "defence": 12100, + "wall": 12400 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "호관", + "호로", + "사곡", + "사수" + ] + } + }, + { + "id": 4, + "name": "장안", + "level": 8, + "region": 3, + "position": { + "x": 145, + "y": 165 + }, + "connections": [ + 41, + 73, + 86 + ], + "max": { + "population": 592300, + "agriculture": 11600, + "commerce": 12300, + "security": 10000, + "defence": 12000, + "wall": 11800 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "안정", + "함곡", + "기산" + ] + } + }, + { + "id": 5, + "name": "성도", + "level": 8, + "region": 4, + "position": { + "x": 25, + "y": 290 + }, + "connections": [ + 26, + 27, + 87 + ], + "max": { + "population": 652500, + "agriculture": 12300, + "commerce": 12500, + "security": 10000, + "defence": 12500, + "wall": 12300 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "덕양", + "강주", + "면죽" + ] + } + }, + { + "id": 6, + "name": "양양", + "level": 8, + "region": 6, + "position": { + "x": 255, + "y": 290 + }, + "connections": [ + 51, + 89 + ], + "max": { + "population": 583700, + "agriculture": 12000, + "commerce": 12600, + "security": 10000, + "defence": 11500, + "wall": 11700 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "신야", + "장판" + ] + } + }, + { + "id": 7, + "name": "건업", + "level": 8, + "region": 7, + "position": { + "x": 505, + "y": 305 + }, + "connections": [ + 31, + 82, + 83 + ], + "max": { + "population": 638600, + "agriculture": 11600, + "commerce": 12300, + "security": 10000, + "defence": 11500, + "wall": 11900 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "오", + "합비", + "광릉" + ] + } + }, + { + "id": 8, + "name": "북평", + "level": 7, + "region": 1, + "position": { + "x": 465, + "y": 65 + }, + "connections": [ + 77, + 90 + ], + "max": { + "population": 486200, + "agriculture": 10200, + "commerce": 9500, + "security": 8000, + "defence": 10300, + "wall": 9900 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "역경", + "백랑" + ] + } + }, + { + "id": 9, + "name": "남피", + "level": 7, + "region": 1, + "position": { + "x": 395, + "y": 95 + }, + "connections": [ + 1, + 36, + 77 + ], + "max": { + "population": 503200, + "agriculture": 9900, + "commerce": 10100, + "security": 8000, + "defence": 10100, + "wall": 10500 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "업", + "평원", + "역경" + ] + } + }, + { + "id": 10, + "name": "완", + "level": 7, + "region": 2, + "position": { + "x": 270, + "y": 235 + }, + "connections": [ + 2, + 20, + 51, + 71 + ], + "max": { + "population": 472400, + "agriculture": 10300, + "commerce": 10000, + "security": 8000, + "defence": 10100, + "wall": 9900 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "허창", + "여남", + "신야", + "호로" + ] + } + }, + { + "id": 11, + "name": "수춘", + "level": 7, + "region": 2, + "position": { + "x": 395, + "y": 270 + }, + "connections": [ + 12, + 20, + 38, + 82 + ], + "max": { + "population": 514300, + "agriculture": 9900, + "commerce": 9600, + "security": 8000, + "defence": 9900, + "wall": 9500 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "서주", + "여남", + "초", + "합비" + ] + } + }, + { + "id": 12, + "name": "서주", + "level": 7, + "region": 2, + "position": { + "x": 440, + "y": 250 + }, + "connections": [ + 11, + 21, + 38, + 39 + ], + "max": { + "population": 485300, + "agriculture": 10100, + "commerce": 9800, + "security": 8000, + "defence": 10200, + "wall": 9700 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "수춘", + "하비", + "초", + "패" + ] + } + }, + { + "id": 13, + "name": "강릉", + "level": 7, + "region": 6, + "position": { + "x": 245, + "y": 335 + }, + "connections": [ + 14, + 53, + 88, + 89 + ], + "max": { + "population": 485000, + "agriculture": 10500, + "commerce": 9600, + "security": 8000, + "defence": 9500, + "wall": 9600 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "장사", + "무릉", + "이릉", + "장판" + ] + } + }, + { + "id": 14, + "name": "장사", + "level": 7, + "region": 6, + "position": { + "x": 255, + "y": 375 + }, + "connections": [ + 13, + 15, + 30, + 53, + 54 + ], + "max": { + "population": 471000, + "agriculture": 9700, + "commerce": 9900, + "security": 8000, + "defence": 10000, + "wall": 10500 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강릉", + "시상", + "계양", + "무릉", + "영릉" + ] + } + }, + { + "id": 15, + "name": "시상", + "level": 7, + "region": 7, + "position": { + "x": 360, + "y": 360 + }, + "connections": [ + 14, + 56, + 58, + 91, + 92 + ], + "max": { + "population": 525200, + "agriculture": 9800, + "commerce": 10000, + "security": 10000, + "defence": 9900, + "wall": 9600 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "장사", + "여강", + "고창", + "적벽", + "파양" + ] + } + }, + { + "id": 16, + "name": "위례", + "level": 7, + "region": 8, + "position": { + "x": 620, + "y": 145 + }, + "connections": [ + 32, + 33, + 34, + 60, + 79 + ], + "max": { + "population": 492600, + "agriculture": 10000, + "commerce": 9300, + "security": 8000, + "defence": 9800, + "wall": 10300 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "평양", + "사비", + "계림", + "안평", + "동황" + ] + } + }, + { + "id": 17, + "name": "계", + "level": 6, + "region": 1, + "position": { + "x": 365, + "y": 35 + }, + "connections": [ + 35, + 77 + ], + "max": { + "population": 388500, + "agriculture": 7500, + "commerce": 8000, + "security": 6000, + "defence": 7800, + "wall": 8100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진양", + "역경" + ] + } + }, + { + "id": 18, + "name": "복양", + "level": 6, + "region": 2, + "position": { + "x": 410, + "y": 170 + }, + "connections": [ + 1, + 19, + 78, + 81 + ], + "max": { + "population": 418500, + "agriculture": 8000, + "commerce": 8300, + "security": 6000, + "defence": 8200, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "업", + "진류", + "계교", + "정도" + ] + } + }, + { + "id": 19, + "name": "진류", + "level": 6, + "region": 2, + "position": { + "x": 365, + "y": 185 + }, + "connections": [ + 2, + 18, + 74, + 80, + 81 + ], + "max": { + "population": 395700, + "agriculture": 8200, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "허창", + "복양", + "사수", + "관도", + "정도" + ] + } + }, + { + "id": 20, + "name": "여남", + "level": 6, + "region": 2, + "position": { + "x": 330, + "y": 260 + }, + "connections": [ + 10, + 11, + 38 + ], + "max": { + "population": 383100, + "agriculture": 7700, + "commerce": 8100, + "security": 6000, + "defence": 8400, + "wall": 7700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "완", + "수춘", + "초" + ] + } + }, + { + "id": 21, + "name": "하비", + "level": 6, + "region": 2, + "position": { + "x": 480, + "y": 235 + }, + "connections": [ + 12, + 83 + ], + "max": { + "population": 427800, + "agriculture": 8500, + "commerce": 8300, + "security": 6000, + "defence": 8200, + "wall": 7800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "서주", + "광릉" + ] + } + }, + { + "id": 22, + "name": "서량", + "level": 6, + "region": 3, + "position": { + "x": 25, + "y": 50 + }, + "connections": [ + 40, + 63, + 64 + ], + "max": { + "population": 387400, + "agriculture": 7700, + "commerce": 7900, + "security": 6000, + "defence": 8300, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "천수", + "강", + "저" + ] + } + }, + { + "id": 23, + "name": "하내", + "level": 6, + "region": 3, + "position": { + "x": 230, + "y": 150 + }, + "connections": [ + 35, + 42, + 65, + 70 + ], + "max": { + "population": 373600, + "agriculture": 7700, + "commerce": 8100, + "security": 6000, + "defence": 8100, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진양", + "홍농", + "흉노", + "호관" + ] + } + }, + { + "id": 24, + "name": "한중", + "level": 6, + "region": 4, + "position": { + "x": 135, + "y": 205 + }, + "connections": [ + 25, + 75, + 86 + ], + "max": { + "population": 402700, + "agriculture": 7700, + "commerce": 8400, + "security": 6000, + "defence": 8000, + "wall": 8500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "상용", + "양평", + "기산" + ] + } + }, + { + "id": 25, + "name": "상용", + "level": 6, + "region": 4, + "position": { + "x": 185, + "y": 225 + }, + "connections": [ + 24, + 51 + ], + "max": { + "population": 368700, + "agriculture": 7800, + "commerce": 7600, + "security": 6000, + "defence": 7700, + "wall": 8100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "한중", + "신야" + ] + } + }, + { + "id": 26, + "name": "덕양", + "level": 6, + "region": 4, + "position": { + "x": 85, + "y": 275 + }, + "connections": [ + 5, + 27, + 44, + 45 + ], + "max": { + "population": 380300, + "agriculture": 8100, + "commerce": 8400, + "security": 6000, + "defence": 7900, + "wall": 7700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "성도", + "강주", + "자동", + "영안" + ] + } + }, + { + "id": 27, + "name": "강주", + "level": 6, + "region": 4, + "position": { + "x": 70, + "y": 310 + }, + "connections": [ + 5, + 26, + 45, + 46, + 47 + ], + "max": { + "population": 412600, + "agriculture": 7900, + "commerce": 8000, + "security": 6000, + "defence": 8400, + "wall": 8100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "성도", + "덕양", + "영안", + "귀양", + "주시" + ] + } + }, + { + "id": 28, + "name": "건녕", + "level": 6, + "region": 5, + "position": { + "x": 80, + "y": 400 + }, + "connections": [ + 46, + 48, + 49 + ], + "max": { + "population": 376500, + "agriculture": 8200, + "commerce": 8000, + "security": 6000, + "defence": 8600, + "wall": 8100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "귀양", + "운남", + "남영" + ] + } + }, + { + "id": 29, + "name": "남해", + "level": 6, + "region": 5, + "position": { + "x": 245, + "y": 480 + }, + "connections": [ + 50, + 55, + 59, + 67 + ], + "max": { + "population": 380300, + "agriculture": 8200, + "commerce": 7600, + "security": 6000, + "defence": 8000, + "wall": 8100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "교지", + "상동", + "대", + "산월" + ] + } + }, + { + "id": 30, + "name": "계양", + "level": 6, + "region": 6, + "position": { + "x": 230, + "y": 400 + }, + "connections": [ + 14, + 54, + 55 + ], + "max": { + "population": 395500, + "agriculture": 8300, + "commerce": 8000, + "security": 6000, + "defence": 8100, + "wall": 7700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "장사", + "영릉", + "상동" + ] + } + }, + { + "id": 31, + "name": "오", + "level": 6, + "region": 7, + "position": { + "x": 510, + "y": 345 + }, + "connections": [ + 7, + 57, + 92, + 93 + ], + "max": { + "population": 435500, + "agriculture": 7700, + "commerce": 8100, + "security": 6000, + "defence": 7700, + "wall": 7600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건업", + "회계", + "파양", + "탐라" + ] + } + }, + { + "id": 32, + "name": "평양", + "level": 6, + "region": 8, + "position": { + "x": 590, + "y": 100 + }, + "connections": [ + 16, + 61 + ], + "max": { + "population": 398200, + "agriculture": 7800, + "commerce": 8000, + "security": 6000, + "defence": 8300, + "wall": 7800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "위례", + "졸본" + ] + } + }, + { + "id": 33, + "name": "사비", + "level": 6, + "region": 8, + "position": { + "x": 605, + "y": 205 + }, + "connections": [ + 16, + 34, + 93 + ], + "max": { + "population": 415700, + "agriculture": 7700, + "commerce": 7900, + "security": 6000, + "defence": 7800, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "위례", + "계림", + "탐라" + ] + } + }, + { + "id": 34, + "name": "계림", + "level": 6, + "region": 8, + "position": { + "x": 655, + "y": 200 + }, + "connections": [ + 16, + 33, + 62, + 93 + ], + "max": { + "population": 391100, + "agriculture": 8000, + "commerce": 7400, + "security": 6000, + "defence": 8100, + "wall": 7800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "위례", + "사비", + "이도", + "탐라" + ] + } + }, + { + "id": 35, + "name": "진양", + "level": 5, + "region": 1, + "position": { + "x": 295, + "y": 60 + }, + "connections": [ + 17, + 23, + 70 + ], + "max": { + "population": 307400, + "agriculture": 5600, + "commerce": 5900, + "security": 4000, + "defence": 6400, + "wall": 5900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "계", + "하내", + "호관" + ] + } + }, + { + "id": 36, + "name": "평원", + "level": 5, + "region": 1, + "position": { + "x": 440, + "y": 115 + }, + "connections": [ + 9, + 37, + 78 + ], + "max": { + "population": 307400, + "agriculture": 6200, + "commerce": 6500, + "security": 4000, + "defence": 6100, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "남피", + "북해", + "계교" + ] + } + }, + { + "id": 37, + "name": "북해", + "level": 5, + "region": 1, + "position": { + "x": 470, + "y": 155 + }, + "connections": [ + 36, + 39, + 79 + ], + "max": { + "population": 314600, + "agriculture": 5500, + "commerce": 6300, + "security": 4000, + "defence": 6300, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "평원", + "패", + "동황" + ] + } + }, + { + "id": 38, + "name": "초", + "level": 5, + "region": 2, + "position": { + "x": 365, + "y": 230 + }, + "connections": [ + 2, + 11, + 12, + 20, + 81 + ], + "max": { + "population": 328600, + "agriculture": 6000, + "commerce": 6200, + "security": 4000, + "defence": 6200, + "wall": 5700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "허창", + "수춘", + "서주", + "여남", + "정도" + ] + } + }, + { + "id": 39, + "name": "패", + "level": 5, + "region": 2, + "position": { + "x": 430, + "y": 220 + }, + "connections": [ + 12, + 37, + 81 + ], + "max": { + "population": 287700, + "agriculture": 6400, + "commerce": 5800, + "security": 4000, + "defence": 5800, + "wall": 5900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "서주", + "북해", + "정도" + ] + } + }, + { + "id": 40, + "name": "천수", + "level": 5, + "region": 3, + "position": { + "x": 70, + "y": 105 + }, + "connections": [ + 22, + 41, + 64, + 84 + ], + "max": { + "population": 298500, + "agriculture": 5900, + "commerce": 6400, + "security": 4000, + "defence": 6000, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "서량", + "안정", + "저", + "적도" + ] + } + }, + { + "id": 41, + "name": "안정", + "level": 5, + "region": 3, + "position": { + "x": 95, + "y": 145 + }, + "connections": [ + 4, + 40, + 85 + ], + "max": { + "population": 276400, + "agriculture": 5700, + "commerce": 5900, + "security": 4000, + "defence": 5700, + "wall": 6200 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "장안", + "천수", + "가정" + ] + } + }, + { + "id": 42, + "name": "홍농", + "level": 5, + "region": 3, + "position": { + "x": 210, + "y": 175 + }, + "connections": [ + 23, + 72, + 73 + ], + "max": { + "population": 274800, + "agriculture": 5700, + "commerce": 6300, + "security": 4000, + "defence": 5800, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "하내", + "사곡", + "함곡" + ] + } + }, + { + "id": 43, + "name": "하변", + "level": 5, + "region": 4, + "position": { + "x": 45, + "y": 190 + }, + "connections": [ + 76, + 85 + ], + "max": { + "population": 278500, + "agriculture": 5800, + "commerce": 6200, + "security": 4000, + "defence": 6000, + "wall": 5600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "가맹", + "가정" + ] + } + }, + { + "id": 44, + "name": "자동", + "level": 5, + "region": 4, + "position": { + "x": 75, + "y": 245 + }, + "connections": [ + 26, + 75, + 76, + 87 + ], + "max": { + "population": 287000, + "agriculture": 5700, + "commerce": 5500, + "security": 4000, + "defence": 6000, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "덕양", + "양평", + "가맹", + "면죽" + ] + } + }, + { + "id": 45, + "name": "영안", + "level": 5, + "region": 4, + "position": { + "x": 115, + "y": 295 + }, + "connections": [ + 26, + 27, + 88 + ], + "max": { + "population": 315300, + "agriculture": 6200, + "commerce": 5900, + "security": 4000, + "defence": 5800, + "wall": 5900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "덕양", + "강주", + "이릉" + ] + } + }, + { + "id": 46, + "name": "귀양", + "level": 5, + "region": 5, + "position": { + "x": 90, + "y": 360 + }, + "connections": [ + 27, + 28, + 47 + ], + "max": { + "population": 274600, + "agriculture": 5800, + "commerce": 6100, + "security": 4000, + "defence": 6100, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강주", + "건녕", + "주시" + ] + } + }, + { + "id": 47, + "name": "주시", + "level": 5, + "region": 5, + "position": { + "x": 30, + "y": 345 + }, + "connections": [ + 27, + 46, + 48 + ], + "max": { + "population": 282800, + "agriculture": 6000, + "commerce": 5900, + "security": 4000, + "defence": 5800, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강주", + "귀양", + "운남" + ] + } + }, + { + "id": 48, + "name": "운남", + "level": 5, + "region": 5, + "position": { + "x": 30, + "y": 415 + }, + "connections": [ + 28, + 47, + 66 + ], + "max": { + "population": 325800, + "agriculture": 6200, + "commerce": 6000, + "security": 4000, + "defence": 6400, + "wall": 6100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건녕", + "주시", + "남만" + ] + } + }, + { + "id": 49, + "name": "남영", + "level": 5, + "region": 5, + "position": { + "x": 135, + "y": 405 + }, + "connections": [ + 28, + 54, + 66 + ], + "max": { + "population": 285300, + "agriculture": 5900, + "commerce": 6200, + "security": 4000, + "defence": 5800, + "wall": 5700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건녕", + "영릉", + "남만" + ] + } + }, + { + "id": 50, + "name": "교지", + "level": 5, + "region": 5, + "position": { + "x": 130, + "y": 480 + }, + "connections": [ + 29, + 66 + ], + "max": { + "population": 319500, + "agriculture": 5800, + "commerce": 5900, + "security": 4000, + "defence": 5800, + "wall": 5900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "남해", + "남만" + ] + } + }, + { + "id": 51, + "name": "신야", + "level": 5, + "region": 6, + "position": { + "x": 250, + "y": 260 + }, + "connections": [ + 6, + 10, + 25 + ], + "max": { + "population": 278600, + "agriculture": 6000, + "commerce": 6200, + "security": 4000, + "defence": 5800, + "wall": 5500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "양양", + "완", + "상용" + ] + } + }, + { + "id": 52, + "name": "강하", + "level": 5, + "region": 6, + "position": { + "x": 315, + "y": 295 + }, + "connections": [ + 89, + 91 + ], + "max": { + "population": 307400, + "agriculture": 5500, + "commerce": 5600, + "security": 4000, + "defence": 5700, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "장판", + "적벽" + ] + } + }, + { + "id": 53, + "name": "무릉", + "level": 5, + "region": 6, + "position": { + "x": 195, + "y": 355 + }, + "connections": [ + 13, + 14, + 54 + ], + "max": { + "population": 319600, + "agriculture": 5800, + "commerce": 6300, + "security": 4000, + "defence": 6300, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강릉", + "장사", + "영릉" + ] + } + }, + { + "id": 54, + "name": "영릉", + "level": 5, + "region": 6, + "position": { + "x": 190, + "y": 395 + }, + "connections": [ + 30, + 49, + 53, + 14 + ], + "max": { + "population": 284900, + "agriculture": 6200, + "commerce": 5800, + "security": 4000, + "defence": 6200, + "wall": 6200 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "계양", + "남영", + "무릉", + "장사" + ] + } + }, + { + "id": 55, + "name": "상동", + "level": 5, + "region": 6, + "position": { + "x": 210, + "y": 435 + }, + "connections": [ + 29, + 30, + 58 + ], + "max": { + "population": 276700, + "agriculture": 5800, + "commerce": 5900, + "security": 4000, + "defence": 6200, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "남해", + "계양", + "고창" + ] + } + }, + { + "id": 56, + "name": "여강", + "level": 5, + "region": 7, + "position": { + "x": 380, + "y": 315 + }, + "connections": [ + 15, + 82, + 91, + 92 + ], + "max": { + "population": 290500, + "agriculture": 5600, + "commerce": 5800, + "security": 4000, + "defence": 6000, + "wall": 5500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "시상", + "합비", + "적벽", + "파양" + ] + } + }, + { + "id": 57, + "name": "회계", + "level": 5, + "region": 7, + "position": { + "x": 480, + "y": 395 + }, + "connections": [ + 31, + 67 + ], + "max": { + "population": 300500, + "agriculture": 6400, + "commerce": 5900, + "security": 4000, + "defence": 6200, + "wall": 6400 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "오", + "산월" + ] + } + }, + { + "id": 58, + "name": "고창", + "level": 5, + "region": 7, + "position": { + "x": 350, + "y": 405 + }, + "connections": [ + 15, + 55, + 67 + ], + "max": { + "population": 280200, + "agriculture": 5700, + "commerce": 6200, + "security": 4000, + "defence": 5800, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "시상", + "상동", + "산월" + ] + } + }, + { + "id": 59, + "name": "대", + "level": 5, + "region": 7, + "position": { + "x": 450, + "y": 480 + }, + "connections": [ + 29, + 67, + 94 + ], + "max": { + "population": 325600, + "agriculture": 6000, + "commerce": 6200, + "security": 4000, + "defence": 5700, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "남해", + "산월", + "유구" + ] + } + }, + { + "id": 60, + "name": "안평", + "level": 5, + "region": 8, + "position": { + "x": 530, + "y": 80 + }, + "connections": [ + 16, + 61, + 79, + 90 + ], + "max": { + "population": 293700, + "agriculture": 6300, + "commerce": 5900, + "security": 4000, + "defence": 5900, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "위례", + "졸본", + "동황", + "백랑" + ] + } + }, + { + "id": 61, + "name": "졸본", + "level": 5, + "region": 8, + "position": { + "x": 570, + "y": 65 + }, + "connections": [ + 32, + 60, + 68 + ], + "max": { + "population": 293900, + "agriculture": 5500, + "commerce": 5900, + "security": 4000, + "defence": 6000, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "평양", + "안평", + "오환" + ] + } + }, + { + "id": 62, + "name": "이도", + "level": 5, + "region": 8, + "position": { + "x": 680, + "y": 260 + }, + "connections": [ + 34, + 69, + 93 + ], + "max": { + "population": 317400, + "agriculture": 5800, + "commerce": 6100, + "security": 4000, + "defence": 5800, + "wall": 5600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "계림", + "왜", + "탐라" + ] + } + }, + { + "id": 63, + "name": "강", + "level": 4, + "region": 3, + "position": { + "x": 95, + "y": 35 + }, + "connections": [ + 22, + 84 + ], + "max": { + "population": 209500, + "agriculture": 4000, + "commerce": 4200, + "security": 2000, + "defence": 4300, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "서량", + "적도" + ] + } + }, + { + "id": 64, + "name": "저", + "level": 4, + "region": 3, + "position": { + "x": 25, + "y": 120 + }, + "connections": [ + 22, + 40, + 85 + ], + "max": { + "population": 195700, + "agriculture": 4000, + "commerce": 4200, + "security": 2000, + "defence": 4300, + "wall": 4200 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "서량", + "천수", + "가정" + ] + } + }, + { + "id": 65, + "name": "흉노", + "level": 4, + "region": 3, + "position": { + "x": 180, + "y": 95 + }, + "connections": [ + 23, + 84 + ], + "max": { + "population": 206400, + "agriculture": 4000, + "commerce": 4100, + "security": 2000, + "defence": 4000, + "wall": 3800 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "하내", + "적도" + ] + } + }, + { + "id": 66, + "name": "남만", + "level": 4, + "region": 5, + "position": { + "x": 80, + "y": 455 + }, + "connections": [ + 48, + 49, + 50 + ], + "max": { + "population": 237800, + "agriculture": 4000, + "commerce": 4200, + "security": 2000, + "defence": 4300, + "wall": 4500 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "운남", + "남영", + "교지" + ] + } + }, + { + "id": 67, + "name": "산월", + "level": 4, + "region": 7, + "position": { + "x": 425, + "y": 430 + }, + "connections": [ + 29, + 57, + 58, + 59 + ], + "max": { + "population": 227500, + "agriculture": 4000, + "commerce": 3700, + "security": 2000, + "defence": 4300, + "wall": 3800 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "남해", + "회계", + "고창", + "대" + ] + } + }, + { + "id": 68, + "name": "오환", + "level": 4, + "region": 8, + "position": { + "x": 610, + "y": 20 + }, + "connections": [ + 61, + 90 + ], + "max": { + "population": 215300, + "agriculture": 4200, + "commerce": 3700, + "security": 2000, + "defence": 4300, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "졸본", + "백랑" + ] + } + }, + { + "id": 69, + "name": "왜", + "level": 4, + "region": 8, + "position": { + "x": 680, + "y": 320 + }, + "connections": [ + 62, + 94 + ], + "max": { + "population": 206500, + "agriculture": 3900, + "commerce": 3700, + "security": 2000, + "defence": 4300, + "wall": 4100 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "이도", + "유구" + ] + } + }, + { + "id": 70, + "name": "호관", + "level": 3, + "region": 1, + "position": { + "x": 285, + "y": 140 + }, + "connections": [ + 1, + 3, + 23, + 35 + ], + "max": { + "population": 88700, + "agriculture": 1900, + "commerce": 1800, + "security": 2000, + "defence": 9500, + "wall": 9600 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "업", + "낙양", + "하내", + "진양" + ] + } + }, + { + "id": 71, + "name": "호로", + "level": 3, + "region": 2, + "position": { + "x": 285, + "y": 205 + }, + "connections": [ + 2, + 3, + 10 + ], + "max": { + "population": 111200, + "agriculture": 2200, + "commerce": 2100, + "security": 2000, + "defence": 10300, + "wall": 9800 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "허창", + "낙양", + "완" + ] + } + }, + { + "id": 72, + "name": "사곡", + "level": 3, + "region": 3, + "position": { + "x": 240, + "y": 175 + }, + "connections": [ + 3, + 42 + ], + "max": { + "population": 100800, + "agriculture": 2100, + "commerce": 1900, + "security": 2000, + "defence": 9900, + "wall": 10100 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "낙양", + "홍농" + ] + } + }, + { + "id": 73, + "name": "함곡", + "level": 3, + "region": 3, + "position": { + "x": 180, + "y": 175 + }, + "connections": [ + 4, + 42 + ], + "max": { + "population": 108100, + "agriculture": 2000, + "commerce": 2200, + "security": 2000, + "defence": 10100, + "wall": 10200 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "장안", + "홍농" + ] + } + }, + { + "id": 74, + "name": "사수", + "level": 3, + "region": 2, + "position": { + "x": 310, + "y": 185 + }, + "connections": [ + 2, + 3, + 19, + 80 + ], + "max": { + "population": 95800, + "agriculture": 1700, + "commerce": 1900, + "security": 2000, + "defence": 9500, + "wall": 9600 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "허창", + "낙양", + "진류", + "관도" + ] + } + }, + { + "id": 75, + "name": "양평", + "level": 3, + "region": 4, + "position": { + "x": 90, + "y": 220 + }, + "connections": [ + 24, + 44, + 86 + ], + "max": { + "population": 86800, + "agriculture": 1900, + "commerce": 1900, + "security": 2000, + "defence": 9700, + "wall": 9600 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "한중", + "자동", + "기산" + ] + } + }, + { + "id": 76, + "name": "가맹", + "level": 3, + "region": 4, + "position": { + "x": 45, + "y": 225 + }, + "connections": [ + 43, + 44 + ], + "max": { + "population": 85500, + "agriculture": 1700, + "commerce": 1800, + "security": 2000, + "defence": 9600, + "wall": 9500 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "하변", + "자동" + ] + } + }, + { + "id": 77, + "name": "역경", + "level": 2, + "region": 1, + "position": { + "x": 410, + "y": 65 + }, + "connections": [ + 8, + 9, + 17 + ], + "max": { + "population": 98500, + "agriculture": 1800, + "commerce": 1900, + "security": 2000, + "defence": 3900, + "wall": 4100 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "북평", + "남피", + "계" + ] + } + }, + { + "id": 78, + "name": "계교", + "level": 2, + "region": 1, + "position": { + "x": 405, + "y": 135 + }, + "connections": [ + 1, + 18, + 36 + ], + "max": { + "population": 101200, + "agriculture": 2100, + "commerce": 1900, + "security": 2000, + "defence": 4000, + "wall": 4200 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "업", + "복양", + "평원" + ] + } + }, + { + "id": 79, + "name": "동황", + "level": 2, + "region": 1, + "position": { + "x": 515, + "y": 145 + }, + "connections": [ + 16, + 37, + 60 + ], + "max": { + "population": 99200, + "agriculture": 1900, + "commerce": 2100, + "security": 2000, + "defence": 3800, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "위례", + "북해", + "안평" + ] + } + }, + { + "id": 80, + "name": "관도", + "level": 2, + "region": 2, + "position": { + "x": 340, + "y": 165 + }, + "connections": [ + 1, + 2, + 19, + 74 + ], + "max": { + "population": 112300, + "agriculture": 2200, + "commerce": 2000, + "security": 2000, + "defence": 4200, + "wall": 4300 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "업", + "허창", + "진류", + "사수" + ] + } + }, + { + "id": 81, + "name": "정도", + "level": 2, + "region": 2, + "position": { + "x": 400, + "y": 210 + }, + "connections": [ + 18, + 19, + 38, + 39 + ], + "max": { + "population": 108500, + "agriculture": 2100, + "commerce": 2100, + "security": 2000, + "defence": 4100, + "wall": 3800 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "복양", + "진류", + "초", + "패" + ] + } + }, + { + "id": 82, + "name": "합비", + "level": 2, + "region": 2, + "position": { + "x": 435, + "y": 285 + }, + "connections": [ + 7, + 11, + 56 + ], + "max": { + "population": 99800, + "agriculture": 2000, + "commerce": 1900, + "security": 2000, + "defence": 3900, + "wall": 4100 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건업", + "수춘", + "여강" + ] + } + }, + { + "id": 83, + "name": "광릉", + "level": 2, + "region": 2, + "position": { + "x": 490, + "y": 275 + }, + "connections": [ + 7, + 21 + ], + "max": { + "population": 100100, + "agriculture": 2000, + "commerce": 2100, + "security": 2000, + "defence": 4100, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건업", + "하비" + ] + } + }, + { + "id": 84, + "name": "적도", + "level": 2, + "region": 3, + "position": { + "x": 130, + "y": 75 + }, + "connections": [ + 40, + 63, + 65 + ], + "max": { + "population": 95200, + "agriculture": 1800, + "commerce": 1700, + "security": 2000, + "defence": 3800, + "wall": 3700 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "천수", + "강", + "흉노" + ] + } + }, + { + "id": 85, + "name": "가정", + "level": 2, + "region": 3, + "position": { + "x": 40, + "y": 160 + }, + "connections": [ + 41, + 43, + 64 + ], + "max": { + "population": 93100, + "agriculture": 1700, + "commerce": 1700, + "security": 2000, + "defence": 3600, + "wall": 3800 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "안정", + "하변", + "저" + ] + } + }, + { + "id": 86, + "name": "기산", + "level": 2, + "region": 4, + "position": { + "x": 110, + "y": 180 + }, + "connections": [ + 4, + 24, + 75 + ], + "max": { + "population": 100500, + "agriculture": 1900, + "commerce": 1800, + "security": 2000, + "defence": 4100, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "장안", + "한중", + "양평" + ] + } + }, + { + "id": 87, + "name": "면죽", + "level": 3, + "region": 4, + "position": { + "x": 35, + "y": 255 + }, + "connections": [ + 5, + 44 + ], + "max": { + "population": 109300, + "agriculture": 2200, + "commerce": 2100, + "security": 2000, + "defence": 10800, + "wall": 9900 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "성도", + "자동" + ] + } + }, + { + "id": 88, + "name": "이릉", + "level": 2, + "region": 6, + "position": { + "x": 215, + "y": 295 + }, + "connections": [ + 13, + 45 + ], + "max": { + "population": 96800, + "agriculture": 1800, + "commerce": 1900, + "security": 2000, + "defence": 3900, + "wall": 4100 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강릉", + "영안" + ] + } + }, + { + "id": 89, + "name": "장판", + "level": 2, + "region": 6, + "position": { + "x": 280, + "y": 315 + }, + "connections": [ + 6, + 13, + 52, + 91 + ], + "max": { + "population": 103200, + "agriculture": 2100, + "commerce": 2000, + "security": 2000, + "defence": 4000, + "wall": 3700 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "양양", + "강릉", + "강하", + "적벽" + ] + } + }, + { + "id": 90, + "name": "백랑", + "level": 2, + "region": 8, + "position": { + "x": 530, + "y": 30 + }, + "connections": [ + 8, + 60, + 68 + ], + "max": { + "population": 105200, + "agriculture": 2200, + "commerce": 1900, + "security": 2000, + "defence": 3800, + "wall": 4200 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "북평", + "안평", + "오환" + ] + } + }, + { + "id": 91, + "name": "적벽", + "level": 1, + "region": 7, + "position": { + "x": 330, + "y": 325 + }, + "connections": [ + 15, + 52, + 56, + 89 + ], + "max": { + "population": 111700, + "agriculture": 2300, + "commerce": 2100, + "security": 2000, + "defence": 4200, + "wall": 4100 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "시상", + "강하", + "여강", + "장판" + ] + } + }, + { + "id": 92, + "name": "파양", + "level": 1, + "region": 7, + "position": { + "x": 430, + "y": 350 + }, + "connections": [ + 15, + 31, + 56 + ], + "max": { + "population": 103700, + "agriculture": 2000, + "commerce": 2200, + "security": 2000, + "defence": 3800, + "wall": 3800 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "시상", + "오", + "여강" + ] + } + }, + { + "id": 93, + "name": "탐라", + "level": 1, + "region": 8, + "position": { + "x": 605, + "y": 260 + }, + "connections": [ + 31, + 33, + 34, + 62 + ], + "max": { + "population": 113000, + "agriculture": 2200, + "commerce": 2100, + "security": 2000, + "defence": 4300, + "wall": 4100 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "오", + "사비", + "계림", + "이도" + ] + } + }, + { + "id": 94, + "name": "유구", + "level": 1, + "region": 8, + "position": { + "x": 625, + "y": 435 + }, + "connections": [ + 59, + 69 + ], + "max": { + "population": 92100, + "agriculture": 1700, + "commerce": 1800, + "security": 2000, + "defence": 3700, + "wall": 3700 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "대", + "왜" + ] + } + } + ], + "defaults": { + "trust": 50, + "trade": 100, + "supplyState": 1, + "frontState": 0 + }, + "meta": { + "source": "legacy", + "mapName": "che" + } +} diff --git a/app/game-engine/resources/map/map_chess.json b/app/game-engine/resources/map/map_chess.json new file mode 100644 index 0000000..db59b25 --- /dev/null +++ b/app/game-engine/resources/map/map_chess.json @@ -0,0 +1,2968 @@ +{ + "id": "chess", + "name": "chess", + "cities": [ + { + "id": 1, + "name": "A1", + "level": 6, + "region": 3, + "position": { + "x": 350.2, + "y": 420.2 + }, + "connections": [ + 9, + 2, + 10 + ], + "max": { + "population": 800000, + "agriculture": 8000, + "commerce": 8000, + "security": 8000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "A2", + "B1", + "B2" + ] + } + }, + { + "id": 2, + "name": "B1", + "level": 6, + "region": 4, + "position": { + "x": 392.7, + "y": 395.6 + }, + "connections": [ + 1, + 9, + 10, + 3, + 11 + ], + "max": { + "population": 800000, + "agriculture": 8000, + "commerce": 8000, + "security": 8000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "A1", + "A2", + "B2", + "C1", + "C2" + ] + } + }, + { + "id": 3, + "name": "C1", + "level": 6, + "region": 5, + "position": { + "x": 435.2, + "y": 371.1 + }, + "connections": [ + 2, + 10, + 11, + 4, + 12 + ], + "max": { + "population": 800000, + "agriculture": 8000, + "commerce": 8000, + "security": 8000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "B1", + "B2", + "C2", + "D1", + "D2" + ] + } + }, + { + "id": 4, + "name": "D1", + "level": 8, + "region": 1, + "position": { + "x": 477.7, + "y": 346.5 + }, + "connections": [ + 3, + 11, + 12, + 5, + 13 + ], + "max": { + "population": 1200000, + "agriculture": 12000, + "commerce": 12000, + "security": 12000, + "defence": 12000, + "wall": 12000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "C1", + "C2", + "D2", + "E1", + "E2" + ] + } + }, + { + "id": 5, + "name": "E1", + "level": 7, + "region": 2, + "position": { + "x": 520.2, + "y": 322 + }, + "connections": [ + 4, + 12, + 13, + 6, + 14 + ], + "max": { + "population": 1000000, + "agriculture": 10000, + "commerce": 10000, + "security": 10000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "D1", + "D2", + "E2", + "F1", + "F2" + ] + } + }, + { + "id": 6, + "name": "F1", + "level": 6, + "region": 5, + "position": { + "x": 562.7, + "y": 297.5 + }, + "connections": [ + 5, + 13, + 14, + 7, + 15 + ], + "max": { + "population": 800000, + "agriculture": 8000, + "commerce": 8000, + "security": 8000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "E1", + "E2", + "F2", + "G1", + "G2" + ] + } + }, + { + "id": 7, + "name": "G1", + "level": 6, + "region": 4, + "position": { + "x": 605.2, + "y": 272.9 + }, + "connections": [ + 6, + 14, + 15, + 8, + 16 + ], + "max": { + "population": 800000, + "agriculture": 8000, + "commerce": 8000, + "security": 8000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "F1", + "F2", + "G2", + "H1", + "H2" + ] + } + }, + { + "id": 8, + "name": "H1", + "level": 6, + "region": 3, + "position": { + "x": 647.7, + "y": 248.4 + }, + "connections": [ + 7, + 15, + 16 + ], + "max": { + "population": 800000, + "agriculture": 8000, + "commerce": 8000, + "security": 8000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "G1", + "G2", + "H2" + ] + } + }, + { + "id": 9, + "name": "A2", + "level": 5, + "region": 6, + "position": { + "x": 307.7, + "y": 395.6 + }, + "connections": [ + 1, + 17, + 2, + 10, + 18 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "A1", + "A3", + "B1", + "B2", + "B3" + ] + } + }, + { + "id": 10, + "name": "B2", + "level": 5, + "region": 6, + "position": { + "x": 350.2, + "y": 371.1 + }, + "connections": [ + 1, + 9, + 17, + 2, + 18, + 3, + 11, + 19 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "A1", + "A2", + "A3", + "B1", + "B3", + "C1", + "C2", + "C3" + ] + } + }, + { + "id": 11, + "name": "C2", + "level": 5, + "region": 6, + "position": { + "x": 392.7, + "y": 346.5 + }, + "connections": [ + 2, + 10, + 18, + 3, + 19, + 4, + 12, + 20 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "B1", + "B2", + "B3", + "C1", + "C3", + "D1", + "D2", + "D3" + ] + } + }, + { + "id": 12, + "name": "D2", + "level": 5, + "region": 6, + "position": { + "x": 435.2, + "y": 322 + }, + "connections": [ + 3, + 11, + 19, + 4, + 20, + 5, + 13, + 21 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "C1", + "C2", + "C3", + "D1", + "D3", + "E1", + "E2", + "E3" + ] + } + }, + { + "id": 13, + "name": "E2", + "level": 5, + "region": 6, + "position": { + "x": 477.7, + "y": 297.5 + }, + "connections": [ + 4, + 12, + 20, + 5, + 21, + 6, + 14, + 22 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "D1", + "D2", + "D3", + "E1", + "E3", + "F1", + "F2", + "F3" + ] + } + }, + { + "id": 14, + "name": "F2", + "level": 5, + "region": 6, + "position": { + "x": 520.2, + "y": 272.9 + }, + "connections": [ + 5, + 13, + 21, + 6, + 22, + 7, + 15, + 23 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "E1", + "E2", + "E3", + "F1", + "F3", + "G1", + "G2", + "G3" + ] + } + }, + { + "id": 15, + "name": "G2", + "level": 5, + "region": 6, + "position": { + "x": 562.7, + "y": 248.4 + }, + "connections": [ + 6, + 14, + 22, + 7, + 23, + 8, + 16, + 24 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "F1", + "F2", + "F3", + "G1", + "G3", + "H1", + "H2", + "H3" + ] + } + }, + { + "id": 16, + "name": "H2", + "level": 5, + "region": 6, + "position": { + "x": 605.2, + "y": 223.8 + }, + "connections": [ + 7, + 15, + 23, + 8, + 24 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "G1", + "G2", + "G3", + "H1", + "H3" + ] + } + }, + { + "id": 17, + "name": "A3", + "level": 2, + "region": 7, + "position": { + "x": 265.2, + "y": 371.1 + }, + "connections": [ + 9, + 25, + 10, + 18, + 26 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "A2", + "A4", + "B2", + "B3", + "B4" + ] + } + }, + { + "id": 18, + "name": "B3", + "level": 1, + "region": 7, + "position": { + "x": 307.7, + "y": 346.5 + }, + "connections": [ + 9, + 17, + 25, + 10, + 26, + 11, + 19, + 27 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "A2", + "A3", + "A4", + "B2", + "B4", + "C2", + "C3", + "C4" + ] + } + }, + { + "id": 19, + "name": "C3", + "level": 2, + "region": 7, + "position": { + "x": 350.2, + "y": 322 + }, + "connections": [ + 10, + 18, + 26, + 11, + 27, + 12, + 20, + 28 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "B2", + "B3", + "B4", + "C2", + "C4", + "D2", + "D3", + "D4" + ] + } + }, + { + "id": 20, + "name": "D3", + "level": 1, + "region": 7, + "position": { + "x": 392.7, + "y": 297.5 + }, + "connections": [ + 11, + 19, + 27, + 12, + 28, + 13, + 21, + 29 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "C2", + "C3", + "C4", + "D2", + "D4", + "E2", + "E3", + "E4" + ] + } + }, + { + "id": 21, + "name": "E3", + "level": 2, + "region": 7, + "position": { + "x": 435.2, + "y": 272.9 + }, + "connections": [ + 12, + 20, + 28, + 13, + 29, + 14, + 22, + 30 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "D2", + "D3", + "D4", + "E2", + "E4", + "F2", + "F3", + "F4" + ] + } + }, + { + "id": 22, + "name": "F3", + "level": 1, + "region": 7, + "position": { + "x": 477.7, + "y": 248.4 + }, + "connections": [ + 13, + 21, + 29, + 14, + 30, + 15, + 23, + 31 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "E2", + "E3", + "E4", + "F2", + "F4", + "G2", + "G3", + "G4" + ] + } + }, + { + "id": 23, + "name": "G3", + "level": 2, + "region": 7, + "position": { + "x": 520.2, + "y": 223.8 + }, + "connections": [ + 14, + 22, + 30, + 15, + 31, + 16, + 24, + 32 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "F2", + "F3", + "F4", + "G2", + "G4", + "H2", + "H3", + "H4" + ] + } + }, + { + "id": 24, + "name": "H3", + "level": 1, + "region": 7, + "position": { + "x": 562.7, + "y": 199.3 + }, + "connections": [ + 15, + 23, + 31, + 16, + 32 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "G2", + "G3", + "G4", + "H2", + "H4" + ] + } + }, + { + "id": 25, + "name": "A4", + "level": 1, + "region": 7, + "position": { + "x": 222.7, + "y": 346.5 + }, + "connections": [ + 17, + 33, + 18, + 26, + 34 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "A3", + "A5", + "B3", + "B4", + "B5" + ] + } + }, + { + "id": 26, + "name": "B4", + "level": 2, + "region": 7, + "position": { + "x": 265.2, + "y": 322 + }, + "connections": [ + 17, + 25, + 33, + 18, + 34, + 19, + 27, + 35 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "A3", + "A4", + "A5", + "B3", + "B5", + "C3", + "C4", + "C5" + ] + } + }, + { + "id": 27, + "name": "C4", + "level": 1, + "region": 7, + "position": { + "x": 307.7, + "y": 297.5 + }, + "connections": [ + 18, + 26, + 34, + 19, + 35, + 20, + 28, + 36 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "B3", + "B4", + "B5", + "C3", + "C5", + "D3", + "D4", + "D5" + ] + } + }, + { + "id": 28, + "name": "D4", + "level": 2, + "region": 7, + "position": { + "x": 350.2, + "y": 272.9 + }, + "connections": [ + 19, + 27, + 35, + 20, + 36, + 21, + 29, + 37 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "C3", + "C4", + "C5", + "D3", + "D5", + "E3", + "E4", + "E5" + ] + } + }, + { + "id": 29, + "name": "E4", + "level": 1, + "region": 7, + "position": { + "x": 392.7, + "y": 248.4 + }, + "connections": [ + 20, + 28, + 36, + 21, + 37, + 22, + 30, + 38 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "D3", + "D4", + "D5", + "E3", + "E5", + "F3", + "F4", + "F5" + ] + } + }, + { + "id": 30, + "name": "F4", + "level": 2, + "region": 7, + "position": { + "x": 435.2, + "y": 223.8 + }, + "connections": [ + 21, + 29, + 37, + 22, + 38, + 23, + 31, + 39 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "E3", + "E4", + "E5", + "F3", + "F5", + "G3", + "G4", + "G5" + ] + } + }, + { + "id": 31, + "name": "G4", + "level": 1, + "region": 7, + "position": { + "x": 477.7, + "y": 199.3 + }, + "connections": [ + 22, + 30, + 38, + 23, + 39, + 24, + 32, + 40 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "F3", + "F4", + "F5", + "G3", + "G5", + "H3", + "H4", + "H5" + ] + } + }, + { + "id": 32, + "name": "H4", + "level": 2, + "region": 7, + "position": { + "x": 520.2, + "y": 174.8 + }, + "connections": [ + 23, + 31, + 39, + 24, + 40 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "G3", + "G4", + "G5", + "H3", + "H5" + ] + } + }, + { + "id": 33, + "name": "A5", + "level": 2, + "region": 7, + "position": { + "x": 180.2, + "y": 322 + }, + "connections": [ + 25, + 41, + 26, + 34, + 42 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "A4", + "A6", + "B4", + "B5", + "B6" + ] + } + }, + { + "id": 34, + "name": "B5", + "level": 1, + "region": 7, + "position": { + "x": 222.7, + "y": 297.5 + }, + "connections": [ + 25, + 33, + 41, + 26, + 42, + 27, + 35, + 43 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "A4", + "A5", + "A6", + "B4", + "B6", + "C4", + "C5", + "C6" + ] + } + }, + { + "id": 35, + "name": "C5", + "level": 2, + "region": 7, + "position": { + "x": 265.2, + "y": 272.9 + }, + "connections": [ + 26, + 34, + 42, + 27, + 43, + 28, + 36, + 44 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "B4", + "B5", + "B6", + "C4", + "C6", + "D4", + "D5", + "D6" + ] + } + }, + { + "id": 36, + "name": "D5", + "level": 1, + "region": 7, + "position": { + "x": 307.7, + "y": 248.4 + }, + "connections": [ + 27, + 35, + 43, + 28, + 44, + 29, + 37, + 45 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "C4", + "C5", + "C6", + "D4", + "D6", + "E4", + "E5", + "E6" + ] + } + }, + { + "id": 37, + "name": "E5", + "level": 2, + "region": 7, + "position": { + "x": 350.2, + "y": 223.8 + }, + "connections": [ + 28, + 36, + 44, + 29, + 45, + 30, + 38, + 46 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "D4", + "D5", + "D6", + "E4", + "E6", + "F4", + "F5", + "F6" + ] + } + }, + { + "id": 38, + "name": "F5", + "level": 1, + "region": 7, + "position": { + "x": 392.7, + "y": 199.3 + }, + "connections": [ + 29, + 37, + 45, + 30, + 46, + 31, + 39, + 47 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "E4", + "E5", + "E6", + "F4", + "F6", + "G4", + "G5", + "G6" + ] + } + }, + { + "id": 39, + "name": "G5", + "level": 2, + "region": 7, + "position": { + "x": 435.2, + "y": 174.8 + }, + "connections": [ + 30, + 38, + 46, + 31, + 47, + 32, + 40, + 48 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "F4", + "F5", + "F6", + "G4", + "G6", + "H4", + "H5", + "H6" + ] + } + }, + { + "id": 40, + "name": "H5", + "level": 1, + "region": 7, + "position": { + "x": 477.7, + "y": 150.2 + }, + "connections": [ + 31, + 39, + 47, + 32, + 48 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "G4", + "G5", + "G6", + "H4", + "H6" + ] + } + }, + { + "id": 41, + "name": "A6", + "level": 1, + "region": 7, + "position": { + "x": 137.7, + "y": 297.5 + }, + "connections": [ + 33, + 49, + 34, + 42, + 50 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "A5", + "A7", + "B5", + "B6", + "B7" + ] + } + }, + { + "id": 42, + "name": "B6", + "level": 2, + "region": 7, + "position": { + "x": 180.2, + "y": 272.9 + }, + "connections": [ + 33, + 41, + 49, + 34, + 50, + 35, + 43, + 51 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "A5", + "A6", + "A7", + "B5", + "B7", + "C5", + "C6", + "C7" + ] + } + }, + { + "id": 43, + "name": "C6", + "level": 1, + "region": 7, + "position": { + "x": 222.7, + "y": 248.4 + }, + "connections": [ + 34, + 42, + 50, + 35, + 51, + 36, + 44, + 52 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "B5", + "B6", + "B7", + "C5", + "C7", + "D5", + "D6", + "D7" + ] + } + }, + { + "id": 44, + "name": "D6", + "level": 2, + "region": 7, + "position": { + "x": 265.2, + "y": 223.8 + }, + "connections": [ + 35, + 43, + 51, + 36, + 52, + 37, + 45, + 53 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "C5", + "C6", + "C7", + "D5", + "D7", + "E5", + "E6", + "E7" + ] + } + }, + { + "id": 45, + "name": "E6", + "level": 1, + "region": 7, + "position": { + "x": 307.7, + "y": 199.3 + }, + "connections": [ + 36, + 44, + 52, + 37, + 53, + 38, + 46, + 54 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "D5", + "D6", + "D7", + "E5", + "E7", + "F5", + "F6", + "F7" + ] + } + }, + { + "id": 46, + "name": "F6", + "level": 2, + "region": 7, + "position": { + "x": 350.2, + "y": 174.8 + }, + "connections": [ + 37, + 45, + 53, + 38, + 54, + 39, + 47, + 55 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "E5", + "E6", + "E7", + "F5", + "F7", + "G5", + "G6", + "G7" + ] + } + }, + { + "id": 47, + "name": "G6", + "level": 1, + "region": 7, + "position": { + "x": 392.7, + "y": 150.2 + }, + "connections": [ + 38, + 46, + 54, + 39, + 55, + 40, + 48, + 56 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "F5", + "F6", + "F7", + "G5", + "G7", + "H5", + "H6", + "H7" + ] + } + }, + { + "id": 48, + "name": "H6", + "level": 2, + "region": 7, + "position": { + "x": 435.2, + "y": 125.7 + }, + "connections": [ + 39, + 47, + 55, + 40, + 56 + ], + "max": { + "population": 400000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "G5", + "G6", + "G7", + "H5", + "H7" + ] + } + }, + { + "id": 49, + "name": "A7", + "level": 5, + "region": 6, + "position": { + "x": 95.2, + "y": 272.9 + }, + "connections": [ + 41, + 57, + 42, + 50, + 58 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "A6", + "A8", + "B6", + "B7", + "B8" + ] + } + }, + { + "id": 50, + "name": "B7", + "level": 5, + "region": 6, + "position": { + "x": 137.7, + "y": 248.4 + }, + "connections": [ + 41, + 49, + 57, + 42, + 58, + 43, + 51, + 59 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "A6", + "A7", + "A8", + "B6", + "B8", + "C6", + "C7", + "C8" + ] + } + }, + { + "id": 51, + "name": "C7", + "level": 5, + "region": 6, + "position": { + "x": 180.2, + "y": 223.8 + }, + "connections": [ + 42, + 50, + 58, + 43, + 59, + 44, + 52, + 60 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "B6", + "B7", + "B8", + "C6", + "C8", + "D6", + "D7", + "D8" + ] + } + }, + { + "id": 52, + "name": "D7", + "level": 5, + "region": 6, + "position": { + "x": 222.7, + "y": 199.3 + }, + "connections": [ + 43, + 51, + 59, + 44, + 60, + 45, + 53, + 61 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "C6", + "C7", + "C8", + "D6", + "D8", + "E6", + "E7", + "E8" + ] + } + }, + { + "id": 53, + "name": "E7", + "level": 5, + "region": 6, + "position": { + "x": 265.2, + "y": 174.8 + }, + "connections": [ + 44, + 52, + 60, + 45, + 61, + 46, + 54, + 62 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "D6", + "D7", + "D8", + "E6", + "E8", + "F6", + "F7", + "F8" + ] + } + }, + { + "id": 54, + "name": "F7", + "level": 5, + "region": 6, + "position": { + "x": 307.7, + "y": 150.2 + }, + "connections": [ + 45, + 53, + 61, + 46, + 62, + 47, + 55, + 63 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "E6", + "E7", + "E8", + "F6", + "F8", + "G6", + "G7", + "G8" + ] + } + }, + { + "id": 55, + "name": "G7", + "level": 5, + "region": 6, + "position": { + "x": 350.2, + "y": 125.7 + }, + "connections": [ + 46, + 54, + 62, + 47, + 63, + 48, + 56, + 64 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "F6", + "F7", + "F8", + "G6", + "G8", + "H6", + "H7", + "H8" + ] + } + }, + { + "id": 56, + "name": "H7", + "level": 5, + "region": 6, + "position": { + "x": 392.7, + "y": 101.1 + }, + "connections": [ + 47, + 55, + 63, + 48, + 64 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "G6", + "G7", + "G8", + "H6", + "H8" + ] + } + }, + { + "id": 57, + "name": "A8", + "level": 6, + "region": 3, + "position": { + "x": 52.7, + "y": 248.4 + }, + "connections": [ + 49, + 50, + 58 + ], + "max": { + "population": 600000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "A7", + "B7", + "B8" + ] + } + }, + { + "id": 58, + "name": "B8", + "level": 6, + "region": 4, + "position": { + "x": 95.2, + "y": 223.8 + }, + "connections": [ + 49, + 57, + 50, + 51, + 59 + ], + "max": { + "population": 800000, + "agriculture": 8000, + "commerce": 8000, + "security": 8000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "A7", + "A8", + "B7", + "C7", + "C8" + ] + } + }, + { + "id": 59, + "name": "C8", + "level": 6, + "region": 5, + "position": { + "x": 137.7, + "y": 199.3 + }, + "connections": [ + 50, + 58, + 51, + 52, + 60 + ], + "max": { + "population": 800000, + "agriculture": 8000, + "commerce": 8000, + "security": 8000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "B7", + "B8", + "C7", + "D7", + "D8" + ] + } + }, + { + "id": 60, + "name": "D8", + "level": 8, + "region": 1, + "position": { + "x": 180.2, + "y": 174.8 + }, + "connections": [ + 51, + 59, + 52, + 53, + 61 + ], + "max": { + "population": 800000, + "agriculture": 8000, + "commerce": 8000, + "security": 8000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "C7", + "C8", + "D7", + "E7", + "E8" + ] + } + }, + { + "id": 61, + "name": "E8", + "level": 7, + "region": 2, + "position": { + "x": 222.7, + "y": 150.2 + }, + "connections": [ + 52, + 60, + 53, + 54, + 62 + ], + "max": { + "population": 1200000, + "agriculture": 12000, + "commerce": 12000, + "security": 12000, + "defence": 12000, + "wall": 12000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "D7", + "D8", + "E7", + "F7", + "F8" + ] + } + }, + { + "id": 62, + "name": "F8", + "level": 6, + "region": 5, + "position": { + "x": 265.2, + "y": 125.7 + }, + "connections": [ + 53, + 61, + 54, + 55, + 63 + ], + "max": { + "population": 1000000, + "agriculture": 10000, + "commerce": 10000, + "security": 10000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "E7", + "E8", + "F7", + "G7", + "G8" + ] + } + }, + { + "id": 63, + "name": "G8", + "level": 6, + "region": 4, + "position": { + "x": 307.7, + "y": 101.1 + }, + "connections": [ + 54, + 62, + 55, + 56, + 64 + ], + "max": { + "population": 800000, + "agriculture": 8000, + "commerce": 8000, + "security": 8000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "F7", + "F8", + "G7", + "H7", + "H8" + ] + } + }, + { + "id": 64, + "name": "H8", + "level": 6, + "region": 3, + "position": { + "x": 350.2, + "y": 76.6 + }, + "connections": [ + 55, + 63, + 56 + ], + "max": { + "population": 800000, + "agriculture": 8000, + "commerce": 8000, + "security": 8000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "G7", + "G8", + "H7" + ] + } + } + ], + "defaults": { + "trust": 50, + "trade": 100, + "supplyState": 1, + "frontState": 0 + }, + "meta": { + "source": "legacy", + "mapName": "chess" + } +} diff --git a/app/game-engine/resources/map/map_cr.json b/app/game-engine/resources/map/map_cr.json new file mode 100644 index 0000000..22752f2 --- /dev/null +++ b/app/game-engine/resources/map/map_cr.json @@ -0,0 +1,2161 @@ +{ + "id": "cr", + "name": "cr", + "cities": [ + { + "id": 1, + "name": "서량", + "level": 5, + "region": 2, + "position": { + "x": 127.25, + "y": 101.25 + }, + "connections": [ + 5 + ], + "max": { + "population": 430000, + "agriculture": 5000, + "commerce": 5000, + "security": 5000, + "defence": 10100, + "wall": 9900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "안정" + ] + } + }, + { + "id": 2, + "name": "무도", + "level": 5, + "region": 2, + "position": { + "x": 127.25, + "y": 222.75 + }, + "connections": [ + 6, + 7, + 52 + ], + "max": { + "population": 355000, + "agriculture": 5000, + "commerce": 5000, + "security": 5000, + "defence": 5100, + "wall": 4900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "한중", + "검각", + "천수" + ] + } + }, + { + "id": 3, + "name": "성도", + "level": 8, + "region": 2, + "position": { + "x": 127.25, + "y": 344.25 + }, + "connections": [ + 8, + 9, + 4 + ], + "max": { + "population": 1112000, + "agriculture": 9000, + "commerce": 8000, + "security": 8500, + "defence": 20400, + "wall": 19600 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "자동", + "강주", + "건녕" + ] + } + }, + { + "id": 4, + "name": "건녕", + "level": 6, + "region": 2, + "position": { + "x": 127.25, + "y": 384.75 + }, + "connections": [ + 3, + 9, + 51 + ], + "max": { + "population": 775000, + "agriculture": 6000, + "commerce": 6000, + "security": 5500, + "defence": 5100, + "wall": 4900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "성도", + "강주", + "운남" + ] + } + }, + { + "id": 5, + "name": "안정", + "level": 5, + "region": 2, + "position": { + "x": 167.75, + "y": 141.75 + }, + "connections": [ + 1, + 10, + 52 + ], + "max": { + "population": 290000, + "agriculture": 5000, + "commerce": 5000, + "security": 5500, + "defence": 5200, + "wall": 4800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "서량", + "장안", + "천수" + ] + } + }, + { + "id": 6, + "name": "한중", + "level": 7, + "region": 2, + "position": { + "x": 167.75, + "y": 222.75 + }, + "connections": [ + 2, + 7, + 10, + 52 + ], + "max": { + "population": 1090000, + "agriculture": 6000, + "commerce": 8000, + "security": 7500, + "defence": 10100, + "wall": 9900 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무도", + "검각", + "장안", + "천수" + ] + } + }, + { + "id": 7, + "name": "검각", + "level": 6, + "region": 2, + "position": { + "x": 167.75, + "y": 263.25 + }, + "connections": [ + 2, + 6, + 8 + ], + "max": { + "population": 575000, + "agriculture": 5000, + "commerce": 5000, + "security": 5000, + "defence": 5000, + "wall": 5000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무도", + "한중", + "자동" + ] + } + }, + { + "id": 8, + "name": "자동", + "level": 6, + "region": 2, + "position": { + "x": 167.75, + "y": 303.75 + }, + "connections": [ + 3, + 7, + 9 + ], + "max": { + "population": 795000, + "agriculture": 6000, + "commerce": 5000, + "security": 5500, + "defence": 5000, + "wall": 5000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "성도", + "검각", + "강주" + ] + } + }, + { + "id": 9, + "name": "강주", + "level": 5, + "region": 2, + "position": { + "x": 167.75, + "y": 344.25 + }, + "connections": [ + 3, + 4, + 8, + 11 + ], + "max": { + "population": 430000, + "agriculture": 5000, + "commerce": 5000, + "security": 6000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "성도", + "건녕", + "자동", + "영안" + ] + } + }, + { + "id": 10, + "name": "장안", + "level": 8, + "region": 2, + "position": { + "x": 208.25, + "y": 182.25 + }, + "connections": [ + 5, + 6, + 12, + 13 + ], + "max": { + "population": 970000, + "agriculture": 9000, + "commerce": 9000, + "security": 9000, + "defence": 20200, + "wall": 19800 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "안정", + "한중", + "홍농", + "완" + ] + } + }, + { + "id": 11, + "name": "영안", + "level": 6, + "region": 2, + "position": { + "x": 208.25, + "y": 384.75 + }, + "connections": [ + 9, + 15, + 16, + 17 + ], + "max": { + "population": 690000, + "agriculture": 5000, + "commerce": 5000, + "security": 5000, + "defence": 5000, + "wall": 5000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강주", + "강릉", + "무릉", + "영릉" + ] + } + }, + { + "id": 12, + "name": "홍농", + "level": 7, + "region": 2, + "position": { + "x": 248.75, + "y": 182.25 + }, + "connections": [ + 10, + 13, + 18 + ], + "max": { + "population": 800000, + "agriculture": 7000, + "commerce": 7000, + "security": 7000, + "defence": 15500, + "wall": 14500 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "장안", + "완", + "낙양" + ] + } + }, + { + "id": 13, + "name": "완", + "level": 7, + "region": 2, + "position": { + "x": 248.75, + "y": 222.75 + }, + "connections": [ + 10, + 12, + 18, + 19 + ], + "max": { + "population": 887000, + "agriculture": 7000, + "commerce": 8000, + "security": 7500, + "defence": 15100, + "wall": 14900 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "장안", + "홍농", + "낙양", + "신야" + ] + } + }, + { + "id": 14, + "name": "양양", + "level": 8, + "region": 2, + "position": { + "x": 248.75, + "y": 303.75 + }, + "connections": [ + 15, + 19, + 20 + ], + "max": { + "population": 1103500, + "agriculture": 8000, + "commerce": 8000, + "security": 8000, + "defence": 20500, + "wall": 19500 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강릉", + "신야", + "강하" + ] + } + }, + { + "id": 15, + "name": "강릉", + "level": 7, + "region": 2, + "position": { + "x": 248.75, + "y": 344.25 + }, + "connections": [ + 11, + 14, + 16, + 20, + 21 + ], + "max": { + "population": 725000, + "agriculture": 8000, + "commerce": 6000, + "security": 7000, + "defence": 15400, + "wall": 14600 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "영안", + "양양", + "무릉", + "강하", + "장사" + ] + } + }, + { + "id": 16, + "name": "무릉", + "level": 5, + "region": 2, + "position": { + "x": 248.75, + "y": 384.75 + }, + "connections": [ + 11, + 15, + 17, + 20, + 21, + 22 + ], + "max": { + "population": 255000, + "agriculture": 3000, + "commerce": 3000, + "security": 3500, + "defence": 5000, + "wall": 5000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "영안", + "강릉", + "영릉", + "강하", + "장사", + "계양" + ] + } + }, + { + "id": 17, + "name": "영릉", + "level": 6, + "region": 2, + "position": { + "x": 248.75, + "y": 425.25 + }, + "connections": [ + 11, + 16, + 21, + 22, + 23 + ], + "max": { + "population": 775000, + "agriculture": 5000, + "commerce": 5000, + "security": 5500, + "defence": 5000, + "wall": 5000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "영안", + "무릉", + "장사", + "계양", + "남해" + ] + } + }, + { + "id": 18, + "name": "낙양", + "level": 8, + "region": 2, + "position": { + "x": 289.25, + "y": 182.25 + }, + "connections": [ + 12, + 13, + 26, + 27, + 25 + ], + "max": { + "population": 1780000, + "agriculture": 8000, + "commerce": 10000, + "security": 9000, + "defence": 20900, + "wall": 19100 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "홍농", + "완", + "허창", + "여남", + "진유" + ] + } + }, + { + "id": 19, + "name": "신야", + "level": 6, + "region": 2, + "position": { + "x": 289.25, + "y": 263.25 + }, + "connections": [ + 13, + 14, + 27 + ], + "max": { + "population": 650000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 5000, + "wall": 5000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "완", + "양양", + "여남" + ] + } + }, + { + "id": 20, + "name": "강하", + "level": 5, + "region": 2, + "position": { + "x": 289.25, + "y": 344.25 + }, + "connections": [ + 14, + 15, + 16, + 21, + 28 + ], + "max": { + "population": 415000, + "agriculture": 5000, + "commerce": 5000, + "security": 5000, + "defence": 10400, + "wall": 9600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "양양", + "강릉", + "무릉", + "장사", + "시상" + ] + } + }, + { + "id": 21, + "name": "장사", + "level": 7, + "region": 2, + "position": { + "x": 289.25, + "y": 384.75 + }, + "connections": [ + 15, + 16, + 17, + 20, + 22, + 28 + ], + "max": { + "population": 1023500, + "agriculture": 7000, + "commerce": 6000, + "security": 7000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강릉", + "무릉", + "영릉", + "강하", + "계양", + "시상" + ] + } + }, + { + "id": 22, + "name": "계양", + "level": 6, + "region": 2, + "position": { + "x": 289.25, + "y": 425.25 + }, + "connections": [ + 16, + 17, + 21, + 23 + ], + "max": { + "population": 600000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 5000, + "wall": 5000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무릉", + "영릉", + "장사", + "남해" + ] + } + }, + { + "id": 23, + "name": "남해", + "level": 5, + "region": 2, + "position": { + "x": 289.25, + "y": 465.75 + }, + "connections": [ + 17, + 22 + ], + "max": { + "population": 325000, + "agriculture": 3000, + "commerce": 4000, + "security": 3500, + "defence": 10300, + "wall": 9700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "영릉", + "계양" + ] + } + }, + { + "id": 24, + "name": "업", + "level": 8, + "region": 2, + "position": { + "x": 329.75, + "y": 101.25 + }, + "connections": [ + 25, + 29, + 30, + 31 + ], + "max": { + "population": 856500, + "agriculture": 9000, + "commerce": 8000, + "security": 8500, + "defence": 20500, + "wall": 19500 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진유", + "평원", + "복양", + "초" + ] + } + }, + { + "id": 25, + "name": "진유", + "level": 6, + "region": 2, + "position": { + "x": 329.75, + "y": 141.75 + }, + "connections": [ + 18, + 24, + 26, + 30, + 31 + ], + "max": { + "population": 651000, + "agriculture": 6000, + "commerce": 4000, + "security": 6000, + "defence": 10300, + "wall": 9700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "낙양", + "업", + "허창", + "복양", + "초" + ] + } + }, + { + "id": 26, + "name": "허창", + "level": 8, + "region": 2, + "position": { + "x": 329.75, + "y": 182.25 + }, + "connections": [ + 18, + 25, + 27, + 31, + 32 + ], + "max": { + "population": 1580000, + "agriculture": 10000, + "commerce": 8000, + "security": 9000, + "defence": 20600, + "wall": 19400 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "낙양", + "진유", + "여남", + "초", + "수춘" + ] + } + }, + { + "id": 27, + "name": "여남", + "level": 5, + "region": 2, + "position": { + "x": 329.75, + "y": 222.75 + }, + "connections": [ + 18, + 19, + 26, + 32, + 33 + ], + "max": { + "population": 410000, + "agriculture": 5000, + "commerce": 5000, + "security": 5000, + "defence": 15500, + "wall": 14500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "낙양", + "신야", + "허창", + "수춘", + "단양" + ] + } + }, + { + "id": 28, + "name": "시상", + "level": 6, + "region": 2, + "position": { + "x": 329.75, + "y": 344.25 + }, + "connections": [ + 20, + 21, + 34 + ], + "max": { + "population": 665000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 10400, + "wall": 9600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강하", + "장사", + "여강" + ] + } + }, + { + "id": 29, + "name": "평원", + "level": 5, + "region": 2, + "position": { + "x": 370.25, + "y": 60.75 + }, + "connections": [ + 24, + 30, + 35, + 36 + ], + "max": { + "population": 548000, + "agriculture": 5000, + "commerce": 5000, + "security": 5000, + "defence": 5200, + "wall": 4800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "업", + "복양", + "계", + "남피" + ] + } + }, + { + "id": 30, + "name": "복양", + "level": 7, + "region": 2, + "position": { + "x": 370.25, + "y": 101.25 + }, + "connections": [ + 24, + 25, + 29, + 31, + 36, + 37 + ], + "max": { + "population": 770500, + "agriculture": 6000, + "commerce": 8000, + "security": 7000, + "defence": 15600, + "wall": 14400 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "업", + "진유", + "평원", + "초", + "남피", + "소패" + ] + } + }, + { + "id": 31, + "name": "초", + "level": 6, + "region": 2, + "position": { + "x": 370.25, + "y": 141.75 + }, + "connections": [ + 24, + 25, + 26, + 30, + 37 + ], + "max": { + "population": 514000, + "agriculture": 4000, + "commerce": 6000, + "security": 6500, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "업", + "진유", + "허창", + "복양", + "소패" + ] + } + }, + { + "id": 32, + "name": "수춘", + "level": 7, + "region": 2, + "position": { + "x": 370.25, + "y": 222.75 + }, + "connections": [ + 26, + 27, + 33, + 38 + ], + "max": { + "population": 705000, + "agriculture": 8000, + "commerce": 8000, + "security": 8000, + "defence": 15400, + "wall": 14600 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "허창", + "여남", + "단양", + "건업" + ] + } + }, + { + "id": 33, + "name": "단양", + "level": 6, + "region": 2, + "position": { + "x": 370.25, + "y": 263.25 + }, + "connections": [ + 27, + 32, + 34, + 38 + ], + "max": { + "population": 540000, + "agriculture": 7000, + "commerce": 6000, + "security": 5000, + "defence": 10300, + "wall": 9700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "여남", + "수춘", + "여강", + "건업" + ] + } + }, + { + "id": 34, + "name": "여강", + "level": 5, + "region": 2, + "position": { + "x": 370.25, + "y": 303.75 + }, + "connections": [ + 33, + 28 + ], + "max": { + "population": 350000, + "agriculture": 4000, + "commerce": 4000, + "security": 4000, + "defence": 5100, + "wall": 4900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "단양", + "시상" + ] + } + }, + { + "id": 35, + "name": "계", + "level": 7, + "region": 2, + "position": { + "x": 410.75, + "y": 20.25 + }, + "connections": [ + 29, + 36, + 39 + ], + "max": { + "population": 855000, + "agriculture": 7000, + "commerce": 7000, + "security": 7000, + "defence": 15300, + "wall": 14700 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "평원", + "남피", + "북평" + ] + } + }, + { + "id": 36, + "name": "남피", + "level": 7, + "region": 2, + "position": { + "x": 410.75, + "y": 60.75 + }, + "connections": [ + 29, + 30, + 35, + 39, + 40 + ], + "max": { + "population": 1173000, + "agriculture": 8000, + "commerce": 7000, + "security": 7500, + "defence": 15200, + "wall": 14800 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "평원", + "복양", + "계", + "북평", + "북해" + ] + } + }, + { + "id": 37, + "name": "소패", + "level": 5, + "region": 2, + "position": { + "x": 410.75, + "y": 141.75 + }, + "connections": [ + 30, + 31, + 40, + 41, + 42 + ], + "max": { + "population": 314000, + "agriculture": 4000, + "commerce": 5000, + "security": 4000, + "defence": 5100, + "wall": 4900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "복양", + "초", + "북해", + "하비", + "광릉" + ] + } + }, + { + "id": 38, + "name": "건업", + "level": 8, + "region": 2, + "position": { + "x": 410.75, + "y": 222.75 + }, + "connections": [ + 32, + 33, + 42, + 43 + ], + "max": { + "population": 980000, + "agriculture": 8000, + "commerce": 10000, + "security": 9000, + "defence": 20700, + "wall": 19300 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "수춘", + "단양", + "광릉", + "오" + ] + } + }, + { + "id": 39, + "name": "북평", + "level": 6, + "region": 2, + "position": { + "x": 451.25, + "y": 20.25 + }, + "connections": [ + 35, + 36, + 45 + ], + "max": { + "population": 855000, + "agriculture": 7000, + "commerce": 5000, + "security": 6000, + "defence": 10100, + "wall": 9900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "계", + "남피", + "양평" + ] + } + }, + { + "id": 40, + "name": "북해", + "level": 6, + "region": 2, + "position": { + "x": 451.25, + "y": 101.25 + }, + "connections": [ + 36, + 37, + 41, + 48 + ], + "max": { + "population": 654000, + "agriculture": 6000, + "commerce": 6000, + "security": 7000, + "defence": 15200, + "wall": 14800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "남피", + "소패", + "하비", + "사비" + ] + } + }, + { + "id": 41, + "name": "하비", + "level": 7, + "region": 2, + "position": { + "x": 451.25, + "y": 141.75 + }, + "connections": [ + 37, + 40, + 42 + ], + "max": { + "population": 798000, + "agriculture": 7000, + "commerce": 9000, + "security": 8000, + "defence": 15300, + "wall": 14700 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "소패", + "북해", + "광릉" + ] + } + }, + { + "id": 42, + "name": "광릉", + "level": 6, + "region": 2, + "position": { + "x": 451.25, + "y": 182.25 + }, + "connections": [ + 38, + 41, + 37 + ], + "max": { + "population": 650000, + "agriculture": 6000, + "commerce": 6000, + "security": 5000, + "defence": 15300, + "wall": 14700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건업", + "하비", + "소패" + ] + } + }, + { + "id": 43, + "name": "오", + "level": 6, + "region": 2, + "position": { + "x": 451.25, + "y": 263.25 + }, + "connections": [ + 38, + 44 + ], + "max": { + "population": 690000, + "agriculture": 4000, + "commerce": 7000, + "security": 6000, + "defence": 15600, + "wall": 14400 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건업", + "회계" + ] + } + }, + { + "id": 44, + "name": "회계", + "level": 5, + "region": 2, + "position": { + "x": 451.25, + "y": 303.75 + }, + "connections": [ + 43 + ], + "max": { + "population": 370000, + "agriculture": 5000, + "commerce": 4000, + "security": 4500, + "defence": 10400, + "wall": 9600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "오" + ] + } + }, + { + "id": 45, + "name": "양평", + "level": 5, + "region": 2, + "position": { + "x": 491.75, + "y": 20.25 + }, + "connections": [ + 39, + 46, + 47 + ], + "max": { + "population": 350000, + "agriculture": 4000, + "commerce": 4000, + "security": 5000, + "defence": 5100, + "wall": 4900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "북평", + "국내", + "한" + ] + } + }, + { + "id": 46, + "name": "국내", + "level": 7, + "region": 2, + "position": { + "x": 532.25, + "y": 20.25 + }, + "connections": [ + 45, + 47, + 49, + 53 + ], + "max": { + "population": 850000, + "agriculture": 6000, + "commerce": 7000, + "security": 6500, + "defence": 15500, + "wall": 14500 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "양평", + "한", + "매소", + "졸본" + ] + } + }, + { + "id": 47, + "name": "한", + "level": 8, + "region": 2, + "position": { + "x": 532.25, + "y": 60.75 + }, + "connections": [ + 45, + 46, + 48, + 49, + 50, + 53 + ], + "max": { + "population": 1150000, + "agriculture": 9000, + "commerce": 8000, + "security": 8500, + "defence": 20700, + "wall": 19300 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "양평", + "국내", + "사비", + "매소", + "서라벌", + "졸본" + ] + } + }, + { + "id": 48, + "name": "사비", + "level": 6, + "region": 2, + "position": { + "x": 532.25, + "y": 101.25 + }, + "connections": [ + 47, + 49, + 50, + 40 + ], + "max": { + "population": 650000, + "agriculture": 6000, + "commerce": 7000, + "security": 4500, + "defence": 10300, + "wall": 9700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "한", + "매소", + "서라벌", + "북해" + ] + } + }, + { + "id": 49, + "name": "매소", + "level": 5, + "region": 2, + "position": { + "x": 572.75, + "y": 60.75 + }, + "connections": [ + 46, + 47, + 48, + 50, + 53 + ], + "max": { + "population": 346500, + "agriculture": 4000, + "commerce": 5000, + "security": 4500, + "defence": 5000, + "wall": 5000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "국내", + "한", + "사비", + "서라벌", + "졸본" + ] + } + }, + { + "id": 50, + "name": "서라벌", + "level": 6, + "region": 2, + "position": { + "x": 572.75, + "y": 101.25 + }, + "connections": [ + 47, + 48, + 49 + ], + "max": { + "population": 740000, + "agriculture": 6000, + "commerce": 6000, + "security": 6000, + "defence": 10300, + "wall": 9700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "한", + "사비", + "매소" + ] + } + }, + { + "id": 51, + "name": "운남", + "level": 4, + "region": 2, + "position": { + "x": 127.25, + "y": 425.25 + }, + "connections": [ + 4 + ], + "max": { + "population": 952000, + "agriculture": 6000, + "commerce": 8000, + "security": 7000, + "defence": 5100, + "wall": 4900 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건녕" + ] + } + }, + { + "id": 52, + "name": "천수", + "level": 5, + "region": 2, + "position": { + "x": 127.25, + "y": 182.25 + }, + "connections": [ + 5, + 6, + 2 + ], + "max": { + "population": 301000, + "agriculture": 5000, + "commerce": 5000, + "security": 5500, + "defence": 10200, + "wall": 9800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "안정", + "한중", + "무도" + ] + } + }, + { + "id": 53, + "name": "졸본", + "level": 6, + "region": 2, + "position": { + "x": 572.75, + "y": 20.25 + }, + "connections": [ + 46, + 47, + 49 + ], + "max": { + "population": 619000, + "agriculture": 5500, + "commerce": 5500, + "security": 5500, + "defence": 10100, + "wall": 9900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "국내", + "한", + "매소" + ] + } + } + ], + "defaults": { + "trust": 50, + "trade": 100, + "supplyState": 1, + "frontState": 0 + }, + "meta": { + "source": "legacy", + "mapName": "cr" + } +} diff --git a/app/game-engine/resources/map/map_ludo_rathowm.json b/app/game-engine/resources/map/map_ludo_rathowm.json new file mode 100644 index 0000000..59257da --- /dev/null +++ b/app/game-engine/resources/map/map_ludo_rathowm.json @@ -0,0 +1,3849 @@ +{ + "id": "ludo_rathowm", + "name": "ludo_rathowm", + "cities": [ + { + "id": 1, + "name": "구 마왕성", + "level": 8, + "region": 1, + "position": { + "x": 35, + "y": 142 + }, + "connections": [ + 2, + 9, + 11 + ], + "max": { + "population": 800000, + "agriculture": 12000, + "commerce": 12000, + "security": 10000, + "defence": 12000, + "wall": 12000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "악의 탑", + "한탄의 협곡", + "유황의 숲" + ] + } + }, + { + "id": 2, + "name": "악의 탑", + "level": 4, + "region": 1, + "position": { + "x": 45, + "y": 40 + }, + "connections": [ + 64, + 1 + ], + "max": { + "population": 350000, + "agriculture": 4000, + "commerce": 4000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "반리요새 A", + "구 마왕성" + ] + } + }, + { + "id": 3, + "name": "실키의 성", + "level": 6, + "region": 1, + "position": { + "x": 45, + "y": 270 + }, + "connections": [ + 11, + 4, + 15 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "유황의 숲", + "카스케도바우", + "죽음의 대지" + ] + } + }, + { + "id": 4, + "name": "카스케도바우", + "level": 6, + "region": 1, + "position": { + "x": 120, + "y": 276 + }, + "connections": [ + 3, + 6 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "실키의 성", + "케셀링크의 성" + ] + } + }, + { + "id": 5, + "name": "붉은 집", + "level": 1, + "region": 2, + "position": { + "x": 70, + "y": 335 + }, + "connections": [ + 7, + 6 + ], + "max": { + "population": 250000, + "agriculture": 2000, + "commerce": 2000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "케이브리스의 성", + "케셀링크의 성" + ] + } + }, + { + "id": 6, + "name": "케셀링크의 성", + "level": 7, + "region": 2, + "position": { + "x": 135, + "y": 338 + }, + "connections": [ + 5, + 13, + 4, + 10 + ], + "max": { + "population": 700000, + "agriculture": 10000, + "commerce": 10000, + "security": 8000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "붉은 집", + "메이드의 묘지", + "카스케도바우", + "뼈의 숲" + ] + } + }, + { + "id": 7, + "name": "케이브리스의 성", + "level": 8, + "region": 2, + "position": { + "x": 37, + "y": 384 + }, + "connections": [ + 5, + 8, + 15 + ], + "max": { + "population": 800000, + "agriculture": 12000, + "commerce": 12000, + "security": 10000, + "defence": 12000, + "wall": 12000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "붉은 집", + "푸른 집", + "죽음의 대지" + ] + } + }, + { + "id": 8, + "name": "푸른 집", + "level": 1, + "region": 2, + "position": { + "x": 59, + "y": 446 + }, + "connections": [ + 7, + 13, + 12 + ], + "max": { + "population": 250000, + "agriculture": 2000, + "commerce": 2000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "케이브리스의 성", + "메이드의 묘지", + "카미라의 성" + ] + } + }, + { + "id": 9, + "name": "한탄의 협곡", + "level": 5, + "region": 1, + "position": { + "x": 97, + "y": 152 + }, + "connections": [ + 1, + 65 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "구 마왕성", + "반리요새 B" + ] + } + }, + { + "id": 10, + "name": "뼈의 숲", + "level": 5, + "region": 2, + "position": { + "x": 160, + "y": 386 + }, + "connections": [ + 6, + 34 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "케셀링크의 성", + "마지노 A" + ] + } + }, + { + "id": 11, + "name": "유황의 숲", + "level": 5, + "region": 1, + "position": { + "x": 72, + "y": 209 + }, + "connections": [ + 1, + 3 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "구 마왕성", + "실키의 성" + ] + } + }, + { + "id": 12, + "name": "카미라의 성", + "level": 7, + "region": 2, + "position": { + "x": 130, + "y": 460 + }, + "connections": [ + 8, + 14 + ], + "max": { + "population": 700000, + "agriculture": 10000, + "commerce": 10000, + "security": 8000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "푸른 집", + "갈라놓은 숲" + ] + } + }, + { + "id": 13, + "name": "메이드의 묘지", + "level": 4, + "region": 2, + "position": { + "x": 102, + "y": 380 + }, + "connections": [ + 6, + 8 + ], + "max": { + "population": 350000, + "agriculture": 4000, + "commerce": 4000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "케셀링크의 성", + "푸른 집" + ] + } + }, + { + "id": 14, + "name": "갈라놓은 숲", + "level": 5, + "region": 2, + "position": { + "x": 186, + "y": 472 + }, + "connections": [ + 12, + 35 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "카미라의 성", + "마지노 B" + ] + } + }, + { + "id": 15, + "name": "죽음의 대지", + "level": 4, + "region": 2, + "position": { + "x": 10, + "y": 320 + }, + "connections": [ + 7, + 3 + ], + "max": { + "population": 350000, + "agriculture": 4000, + "commerce": 4000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "케이브리스의 성", + "실키의 성" + ] + } + }, + { + "id": 16, + "name": "녹의 마을", + "level": 5, + "region": 3, + "position": { + "x": 202, + "y": 290 + }, + "connections": [ + 34, + 19 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "마지노 A", + "파리티라온" + ] + } + }, + { + "id": 17, + "name": "펜실 카우", + "level": 4, + "region": 3, + "position": { + "x": 297, + "y": 267 + }, + "connections": [ + 19, + 40 + ], + "max": { + "population": 350000, + "agriculture": 4000, + "commerce": 4000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "파리티라온", + "라보리" + ] + } + }, + { + "id": 18, + "name": "샹그릴라", + "level": 7, + "region": 4, + "position": { + "x": 374, + "y": 272 + }, + "connections": [ + 45, + 61, + 32, + 67 + ], + "max": { + "population": 700000, + "agriculture": 10000, + "commerce": 10000, + "security": 8000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "스도리 13", + "보르고 Z", + "사바사바", + "릿치" + ] + } + }, + { + "id": 19, + "name": "파리티라온", + "level": 6, + "region": 5, + "position": { + "x": 259, + "y": 332 + }, + "connections": [ + 16, + 34, + 20, + 17 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "녹의 마을", + "마지노 A", + "왕자의 탑", + "펜실 카우" + ] + } + }, + { + "id": 20, + "name": "왕자의 탑", + "level": 5, + "region": 5, + "position": { + "x": 259, + "y": 367 + }, + "connections": [ + 19, + 21, + 22, + 24 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "파리티라온", + "도약의 탑", + "일요일의 탑", + "라그나로크 아크" + ] + } + }, + { + "id": 21, + "name": "도약의 탑", + "level": 5, + "region": 6, + "position": { + "x": 265, + "y": 406 + }, + "connections": [ + 20, + 24, + 23, + 26 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "왕자의 탑", + "라그나로크 아크", + "탄창의 탑", + "마크" + ] + } + }, + { + "id": 22, + "name": "일요일의 탑", + "level": 5, + "region": 5, + "position": { + "x": 324, + "y": 358 + }, + "connections": [ + 20, + 24, + 23, + 31 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "왕자의 탑", + "라그나로크 아크", + "탄창의 탑", + "나가르모르" + ] + } + }, + { + "id": 23, + "name": "탄창의 탑", + "level": 5, + "region": 6, + "position": { + "x": 331, + "y": 409 + }, + "connections": [ + 21, + 24, + 22, + 28 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "도약의 탑", + "라그나로크 아크", + "일요일의 탑", + "올드제스" + ] + } + }, + { + "id": 24, + "name": "라그나로크 아크", + "level": 8, + "region": 5, + "position": { + "x": 295, + "y": 385 + }, + "connections": [ + 20, + 21, + 21, + 23, + 22 + ], + "max": { + "population": 800000, + "agriculture": 12000, + "commerce": 12000, + "security": 10000, + "defence": 12000, + "wall": 12000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "왕자의 탑", + "도약의 탑", + "도약의 탑", + "탄창의 탑", + "일요일의 탑" + ] + } + }, + { + "id": 25, + "name": "알텐누", + "level": 6, + "region": 6, + "position": { + "x": 293, + "y": 482 + }, + "connections": [ + 26, + 35 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "마크", + "마지노 B" + ] + } + }, + { + "id": 26, + "name": "마크", + "level": 6, + "region": 6, + "position": { + "x": 288, + "y": 436 + }, + "connections": [ + 25, + 27, + 21 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "알텐누", + "호박성", + "도약의 탑" + ] + } + }, + { + "id": 27, + "name": "호박성", + "level": 4, + "region": 6, + "position": { + "x": 328, + "y": 458 + }, + "connections": [ + 26, + 28 + ], + "max": { + "population": 350000, + "agriculture": 4000, + "commerce": 4000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "마크", + "올드제스" + ] + } + }, + { + "id": 28, + "name": "올드제스", + "level": 8, + "region": 6, + "position": { + "x": 367, + "y": 444 + }, + "connections": [ + 23, + 27, + 29, + 99 + ], + "max": { + "population": 800000, + "agriculture": 12000, + "commerce": 12000, + "security": 10000, + "defence": 12000, + "wall": 12000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "탄창의 탑", + "호박성", + "테이브", + "카이즈" + ] + } + }, + { + "id": 29, + "name": "테이브", + "level": 5, + "region": 6, + "position": { + "x": 385, + "y": 406 + }, + "connections": [ + 30, + 28 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "이탈리아", + "올드제스" + ] + } + }, + { + "id": 30, + "name": "이탈리아", + "level": 7, + "region": 5, + "position": { + "x": 375, + "y": 361 + }, + "connections": [ + 29, + 32, + 33 + ], + "max": { + "population": 700000, + "agriculture": 10000, + "commerce": 10000, + "security": 8000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "테이브", + "사바사바", + "아담의탑" + ] + } + }, + { + "id": 31, + "name": "나가르모르", + "level": 6, + "region": 5, + "position": { + "x": 322, + "y": 322 + }, + "connections": [ + 22, + 32 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "일요일의 탑", + "사바사바" + ] + } + }, + { + "id": 32, + "name": "사바사바", + "level": 7, + "region": 5, + "position": { + "x": 375, + "y": 324 + }, + "connections": [ + 31, + 30, + 18 + ], + "max": { + "population": 700000, + "agriculture": 10000, + "commerce": 10000, + "security": 8000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "나가르모르", + "이탈리아", + "샹그릴라" + ] + } + }, + { + "id": 33, + "name": "아담의탑", + "level": 2, + "region": 5, + "position": { + "x": 420, + "y": 340 + }, + "connections": [ + 30, + 66 + ], + "max": { + "population": 250000, + "agriculture": 2000, + "commerce": 2000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "이탈리아", + "파라파라성채" + ] + } + }, + { + "id": 34, + "name": "마지노 A", + "level": 3, + "region": 5, + "position": { + "x": 215, + "y": 365 + }, + "connections": [ + 10, + 16, + 19 + ], + "max": { + "population": 250000, + "agriculture": 2000, + "commerce": 2000, + "security": 2000, + "defence": 9000, + "wall": 9000 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "뼈의 숲", + "녹의 마을", + "파리티라온" + ] + } + }, + { + "id": 35, + "name": "마지노 B", + "level": 3, + "region": 6, + "position": { + "x": 243, + "y": 477 + }, + "connections": [ + 14, + 25 + ], + "max": { + "population": 250000, + "agriculture": 2000, + "commerce": 2000, + "security": 2000, + "defence": 9000, + "wall": 9000 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "갈라놓은 숲", + "알텐누" + ] + } + }, + { + "id": 36, + "name": "이코마", + "level": 6, + "region": 7, + "position": { + "x": 211, + "y": 60 + }, + "connections": [ + 64, + 42, + 37, + 38 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "반리요새 A", + "거대전함", + "워크랜드", + "로렌그라드" + ] + } + }, + { + "id": 37, + "name": "워크랜드", + "level": 5, + "region": 7, + "position": { + "x": 177, + "y": 90 + }, + "connections": [ + 36, + 38 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "이코마", + "로렌그라드" + ] + } + }, + { + "id": 38, + "name": "로렌그라드", + "level": 7, + "region": 7, + "position": { + "x": 200, + "y": 126 + }, + "connections": [ + 39, + 41, + 36, + 65, + 37 + ], + "max": { + "population": 700000, + "agriculture": 10000, + "commerce": 10000, + "security": 8000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "파르나스", + "랑그바우", + "이코마", + "반리요새 B", + "워크랜드" + ] + } + }, + { + "id": 39, + "name": "파르나스", + "level": 6, + "region": 7, + "position": { + "x": 204, + "y": 171 + }, + "connections": [ + 38, + 43 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "로렌그라드", + "세미타포" + ] + } + }, + { + "id": 40, + "name": "라보리", + "level": 6, + "region": 7, + "position": { + "x": 225, + "y": 219 + }, + "connections": [ + 17, + 44 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "펜실 카우", + "스도리 17" + ] + } + }, + { + "id": 41, + "name": "랑그바우", + "level": 8, + "region": 7, + "position": { + "x": 263, + "y": 135 + }, + "connections": [ + 38, + 46 + ], + "max": { + "population": 800000, + "agriculture": 12000, + "commerce": 12000, + "security": 10000, + "defence": 12000, + "wall": 12000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "로렌그라드", + "마이크로그라드" + ] + } + }, + { + "id": 42, + "name": "거대전함", + "level": 4, + "region": 7, + "position": { + "x": 273, + "y": 21 + }, + "connections": [ + 36, + 48, + 58, + 56 + ], + "max": { + "population": 350000, + "agriculture": 4000, + "commerce": 4000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "이코마", + "파스", + "호라가의 탑", + "시베리아" + ] + } + }, + { + "id": 43, + "name": "세미타포", + "level": 5, + "region": 7, + "position": { + "x": 268, + "y": 174 + }, + "connections": [ + 39, + 44 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "파르나스", + "스도리 17" + ] + } + }, + { + "id": 44, + "name": "스도리 17", + "level": 2, + "region": 7, + "position": { + "x": 296, + "y": 214 + }, + "connections": [ + 40, + 43, + 45 + ], + "max": { + "population": 250000, + "agriculture": 2000, + "commerce": 2000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "라보리", + "세미타포", + "스도리 13" + ] + } + }, + { + "id": 45, + "name": "스도리 13", + "level": 2, + "region": 7, + "position": { + "x": 359, + "y": 217 + }, + "connections": [ + 18, + 47, + 44, + 53, + 61 + ], + "max": { + "population": 250000, + "agriculture": 2000, + "commerce": 2000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "샹그릴라", + "폰", + "스도리 17", + "코사크", + "보르고 Z" + ] + } + }, + { + "id": 46, + "name": "마이크로그라드", + "level": 5, + "region": 7, + "position": { + "x": 316, + "y": 166 + }, + "connections": [ + 47, + 41, + 50 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "폰", + "랑그바우", + "스도리 10" + ] + } + }, + { + "id": 47, + "name": "폰", + "level": 6, + "region": 7, + "position": { + "x": 377, + "y": 187 + }, + "connections": [ + 46, + 45, + 53 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "마이크로그라드", + "스도리 13", + "코사크" + ] + } + }, + { + "id": 48, + "name": "파스", + "level": 6, + "region": 7, + "position": { + "x": 286, + "y": 90 + }, + "connections": [ + 42, + 49, + 50 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "거대전함", + "큐로브", + "스도리 10" + ] + } + }, + { + "id": 49, + "name": "큐로브", + "level": 5, + "region": 7, + "position": { + "x": 341, + "y": 96 + }, + "connections": [ + 48, + 51 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "파스", + "소로토이" + ] + } + }, + { + "id": 50, + "name": "스도리 10", + "level": 2, + "region": 7, + "position": { + "x": 337, + "y": 137 + }, + "connections": [ + 48, + 52, + 46 + ], + "max": { + "population": 250000, + "agriculture": 2000, + "commerce": 2000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "파스", + "로제스그라드", + "마이크로그라드" + ] + } + }, + { + "id": 51, + "name": "소로토이", + "level": 5, + "region": 8, + "position": { + "x": 382, + "y": 119 + }, + "connections": [ + 49, + 57 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "큐로브", + "바바로프스" + ] + } + }, + { + "id": 52, + "name": "로제스그라드", + "level": 8, + "region": 8, + "position": { + "x": 401, + "y": 148 + }, + "connections": [ + 50, + 57, + 54 + ], + "max": { + "population": 800000, + "agriculture": 12000, + "commerce": 12000, + "security": 10000, + "defence": 12000, + "wall": 12000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "스도리 10", + "바바로프스", + "아크그라드" + ] + } + }, + { + "id": 53, + "name": "코사크", + "level": 6, + "region": 8, + "position": { + "x": 419, + "y": 204 + }, + "connections": [ + 45, + 61, + 47 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "스도리 13", + "보르고 Z", + "폰" + ] + } + }, + { + "id": 54, + "name": "아크그라드", + "level": 5, + "region": 8, + "position": { + "x": 452, + "y": 179 + }, + "connections": [ + 63, + 52, + 55 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "로그 B", + "로제스그라드", + "야크트크" + ] + } + }, + { + "id": 55, + "name": "야크트크", + "level": 5, + "region": 8, + "position": { + "x": 437, + "y": 129 + }, + "connections": [ + 54, + 57, + 59 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "아크그라드", + "바바로프스", + "고라크" + ] + } + }, + { + "id": 56, + "name": "시베리아", + "level": 7, + "region": 8, + "position": { + "x": 394, + "y": 55 + }, + "connections": [ + 57, + 58, + 42 + ], + "max": { + "population": 700000, + "agriculture": 10000, + "commerce": 10000, + "security": 8000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "바바로프스", + "호라가의 탑", + "거대전함" + ] + } + }, + { + "id": 57, + "name": "바바로프스", + "level": 6, + "region": 8, + "position": { + "x": 418, + "y": 89 + }, + "connections": [ + 56, + 55, + 51, + 52 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "시베리아", + "야크트크", + "소로토이", + "로제스그라드" + ] + } + }, + { + "id": 58, + "name": "호라가의 탑", + "level": 3, + "region": 8, + "position": { + "x": 561, + "y": 20 + }, + "connections": [ + 56, + 42, + 72 + ], + "max": { + "population": 250000, + "agriculture": 2000, + "commerce": 2000, + "security": 2000, + "defence": 9000, + "wall": 9000 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "시베리아", + "거대전함", + "떨어진 궁도" + ] + } + }, + { + "id": 59, + "name": "고라크", + "level": 6, + "region": 8, + "position": { + "x": 478, + "y": 146 + }, + "connections": [ + 60, + 62, + 55 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "블라디보스토크", + "로그 A", + "야크트크" + ] + } + }, + { + "id": 60, + "name": "블라디보스토크", + "level": 4, + "region": 8, + "position": { + "x": 500, + "y": 109 + }, + "connections": [ + 59, + 62 + ], + "max": { + "population": 350000, + "agriculture": 4000, + "commerce": 4000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "고라크", + "로그 A" + ] + } + }, + { + "id": 61, + "name": "보르고 Z", + "level": 3, + "region": 8, + "position": { + "x": 436, + "y": 245 + }, + "connections": [ + 53, + 45, + 63, + 18 + ], + "max": { + "population": 250000, + "agriculture": 2000, + "commerce": 2000, + "security": 2000, + "defence": 9000, + "wall": 9000 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "코사크", + "스도리 13", + "로그 B", + "샹그릴라" + ] + } + }, + { + "id": 62, + "name": "로그 A", + "level": 3, + "region": 8, + "position": { + "x": 506, + "y": 183 + }, + "connections": [ + 59, + 60, + 63, + 70 + ], + "max": { + "population": 250000, + "agriculture": 2000, + "commerce": 2000, + "security": 2000, + "defence": 9000, + "wall": 9000 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "고라크", + "블라디보스토크", + "로그 B", + "스케일" + ] + } + }, + { + "id": 63, + "name": "로그 B", + "level": 3, + "region": 8, + "position": { + "x": 475, + "y": 216 + }, + "connections": [ + 54, + 62, + 61, + 69 + ], + "max": { + "population": 250000, + "agriculture": 2000, + "commerce": 2000, + "security": 2000, + "defence": 9000, + "wall": 9000 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "아크그라드", + "로그 A", + "보르고 Z", + "마우네스" + ] + } + }, + { + "id": 64, + "name": "반리요새 A", + "level": 2, + "region": 7, + "position": { + "x": 149, + "y": 18 + }, + "connections": [ + 2, + 36 + ], + "max": { + "population": 250000, + "agriculture": 2000, + "commerce": 2000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "악의 탑", + "이코마" + ] + } + }, + { + "id": 65, + "name": "반리요새 B", + "level": 2, + "region": 7, + "position": { + "x": 151, + "y": 153 + }, + "connections": [ + 38, + 9 + ], + "max": { + "population": 250000, + "agriculture": 2000, + "commerce": 2000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "로렌그라드", + "한탄의 협곡" + ] + } + }, + { + "id": 66, + "name": "파라파라성채", + "level": 2, + "region": 9, + "position": { + "x": 449, + "y": 315 + }, + "connections": [ + 33, + 67 + ], + "max": { + "population": 250000, + "agriculture": 2000, + "commerce": 2000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "아담의탑", + "릿치" + ] + } + }, + { + "id": 67, + "name": "릿치", + "level": 6, + "region": 9, + "position": { + "x": 476, + "y": 288 + }, + "connections": [ + 68, + 69, + 66, + 18 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "푸아", + "마우네스", + "파라파라성채", + "샹그릴라" + ] + } + }, + { + "id": 68, + "name": "푸아", + "level": 5, + "region": 9, + "position": { + "x": 528, + "y": 289 + }, + "connections": [ + 67, + 94 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "릿치", + "록아스" + ] + } + }, + { + "id": 69, + "name": "마우네스", + "level": 5, + "region": 9, + "position": { + "x": 502, + "y": 250 + }, + "connections": [ + 67, + 63, + 76 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "릿치", + "로그 B", + "노스" + ] + } + }, + { + "id": 70, + "name": "스케일", + "level": 7, + "region": 10, + "position": { + "x": 542, + "y": 198 + }, + "connections": [ + 62, + 71, + 76 + ], + "max": { + "population": 700000, + "agriculture": 10000, + "commerce": 10000, + "security": 8000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "로그 A", + "아란", + "노스" + ] + } + }, + { + "id": 71, + "name": "아란", + "level": 6, + "region": 10, + "position": { + "x": 596, + "y": 154 + }, + "connections": [ + 72, + 73, + 70, + 74 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "떨어진 궁도", + "포나라", + "스케일", + "브리테리아" + ] + } + }, + { + "id": 72, + "name": "떨어진 궁도", + "level": 4, + "region": 10, + "position": { + "x": 598, + "y": 111 + }, + "connections": [ + 58, + 71 + ], + "max": { + "population": 350000, + "agriculture": 4000, + "commerce": 4000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "호라가의 탑", + "아란" + ] + } + }, + { + "id": 73, + "name": "포나라", + "level": 5, + "region": 10, + "position": { + "x": 640, + "y": 168 + }, + "connections": [ + 71, + 74, + 82 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "아란", + "브리테리아", + "웨스" + ] + } + }, + { + "id": 74, + "name": "브리테리아", + "level": 7, + "region": 10, + "position": { + "x": 587, + "y": 205 + }, + "connections": [ + 71, + 82, + 73 + ], + "max": { + "population": 700000, + "agriculture": 10000, + "commerce": 10000, + "security": 8000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "아란", + "웨스", + "포나라" + ] + } + }, + { + "id": 75, + "name": "파란치", + "level": 5, + "region": 10, + "position": { + "x": 667, + "y": 229 + }, + "connections": [ + 82, + 80 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "웨스", + "이스" + ] + } + }, + { + "id": 76, + "name": "노스", + "level": 6, + "region": 9, + "position": { + "x": 563, + "y": 255 + }, + "connections": [ + 70, + 69, + 77, + 78 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "스케일", + "마우네스", + "오크", + "리자스성" + ] + } + }, + { + "id": 77, + "name": "오크", + "level": 6, + "region": 9, + "position": { + "x": 577, + "y": 295 + }, + "connections": [ + 76, + 79, + 86 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "노스", + "사우스", + "지오" + ] + } + }, + { + "id": 78, + "name": "리자스성", + "level": 8, + "region": 9, + "position": { + "x": 611, + "y": 245 + }, + "connections": [ + 76, + 79, + 82 + ], + "max": { + "population": 800000, + "agriculture": 12000, + "commerce": 12000, + "security": 10000, + "defence": 12000, + "wall": 12000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "노스", + "사우스", + "웨스" + ] + } + }, + { + "id": 79, + "name": "사우스", + "level": 5, + "region": 9, + "position": { + "x": 618, + "y": 285 + }, + "connections": [ + 78, + 77, + 80 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "리자스성", + "오크", + "이스" + ] + } + }, + { + "id": 80, + "name": "이스", + "level": 6, + "region": 9, + "position": { + "x": 656, + "y": 269 + }, + "connections": [ + 79, + 75, + 81 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "사우스", + "파란치", + "오크스" + ] + } + }, + { + "id": 81, + "name": "오크스", + "level": 6, + "region": 9, + "position": { + "x": 650, + "y": 311 + }, + "connections": [ + 80, + 87, + 83 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "이스", + "한나", + "오슈" + ] + } + }, + { + "id": 82, + "name": "웨스", + "level": 6, + "region": 10, + "position": { + "x": 632, + "y": 212 + }, + "connections": [ + 78, + 73, + 75, + 74 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "리자스성", + "포나라", + "파란치", + "브리테리아" + ] + } + }, + { + "id": 83, + "name": "오슈", + "level": 4, + "region": 11, + "position": { + "x": 688, + "y": 308 + }, + "connections": [ + 81, + 84 + ], + "max": { + "population": 350000, + "agriculture": 4000, + "commerce": 4000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "오크스", + "오와리" + ] + } + }, + { + "id": 84, + "name": "오와리", + "level": 8, + "region": 11, + "position": { + "x": 679, + "y": 394 + }, + "connections": [ + 83, + 85 + ], + "max": { + "population": 800000, + "agriculture": 12000, + "commerce": 12000, + "security": 10000, + "defence": 12000, + "wall": 12000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "오슈", + "모로코" + ] + } + }, + { + "id": 85, + "name": "모로코", + "level": 1, + "region": 11, + "position": { + "x": 627, + "y": 450 + }, + "connections": [ + 84, + 89 + ], + "max": { + "population": 250000, + "agriculture": 2000, + "commerce": 2000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "오와리", + "포르투갈" + ] + } + }, + { + "id": 86, + "name": "지오", + "level": 6, + "region": 12, + "position": { + "x": 578, + "y": 333 + }, + "connections": [ + 77, + 98, + 88 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "오크", + "렛드", + "M랜드" + ] + } + }, + { + "id": 87, + "name": "한나", + "level": 5, + "region": 12, + "position": { + "x": 632, + "y": 342 + }, + "connections": [ + 81, + 88 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "오크스", + "M랜드" + ] + } + }, + { + "id": 88, + "name": "M랜드", + "level": 7, + "region": 12, + "position": { + "x": 616, + "y": 379 + }, + "connections": [ + 86, + 87, + 98, + 89 + ], + "max": { + "population": 700000, + "agriculture": 10000, + "commerce": 10000, + "security": 8000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "지오", + "한나", + "렛드", + "포르투갈" + ] + } + }, + { + "id": 89, + "name": "포르투갈", + "level": 6, + "region": 12, + "position": { + "x": 599, + "y": 422 + }, + "connections": [ + 88, + 90, + 85 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "M랜드", + "투신도시", + "모로코" + ] + } + }, + { + "id": 90, + "name": "투신도시", + "level": 4, + "region": 12, + "position": { + "x": 553, + "y": 415 + }, + "connections": [ + 89, + 92, + 96 + ], + "max": { + "population": 350000, + "agriculture": 4000, + "commerce": 4000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "포르투갈", + "커스텀", + "파란쵸 왕국" + ] + } + }, + { + "id": 91, + "name": "화성", + "level": 5, + "region": 13, + "position": { + "x": 503, + "y": 482 + }, + "connections": [ + 92 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "커스텀" + ] + } + }, + { + "id": 92, + "name": "커스텀", + "level": 8, + "region": 13, + "position": { + "x": 506, + "y": 416 + }, + "connections": [ + 90, + 95, + 93, + 96, + 91 + ], + "max": { + "population": 800000, + "agriculture": 12000, + "commerce": 12000, + "security": 10000, + "defence": 12000, + "wall": 12000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "투신도시", + "지브테리아", + "라지르", + "파란쵸 왕국", + "화성" + ] + } + }, + { + "id": 93, + "name": "라지르", + "level": 5, + "region": 13, + "position": { + "x": 530, + "y": 358 + }, + "connections": [ + 98, + 92, + 97 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "렛드", + "커스텀", + "아이스" + ] + } + }, + { + "id": 94, + "name": "록아스", + "level": 6, + "region": 13, + "position": { + "x": 489, + "y": 329 + }, + "connections": [ + 97, + 68 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "아이스", + "푸아" + ] + } + }, + { + "id": 95, + "name": "지브테리아", + "level": 7, + "region": 13, + "position": { + "x": 452, + "y": 370 + }, + "connections": [ + 97, + 99, + 92 + ], + "max": { + "population": 700000, + "agriculture": 10000, + "commerce": 10000, + "security": 8000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "아이스", + "카이즈", + "커스텀" + ] + } + }, + { + "id": 96, + "name": "파란쵸 왕국", + "level": 4, + "region": 12, + "position": { + "x": 537, + "y": 458 + }, + "connections": [ + 92, + 90 + ], + "max": { + "population": 350000, + "agriculture": 4000, + "commerce": 4000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "커스텀", + "투신도시" + ] + } + }, + { + "id": 97, + "name": "아이스", + "level": 5, + "region": 13, + "position": { + "x": 489, + "y": 375 + }, + "connections": [ + 94, + 95, + 93 + ], + "max": { + "population": 450000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "록아스", + "지브테리아", + "라지르" + ] + } + }, + { + "id": 98, + "name": "렛드", + "level": 6, + "region": 13, + "position": { + "x": 566, + "y": 372 + }, + "connections": [ + 93, + 88, + 86 + ], + "max": { + "population": 550000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "라지르", + "M랜드", + "지오" + ] + } + }, + { + "id": 99, + "name": "카이즈", + "level": 4, + "region": 14, + "position": { + "x": 439, + "y": 425 + }, + "connections": [ + 28, + 95 + ], + "max": { + "population": 350000, + "agriculture": 4000, + "commerce": 4000, + "security": 2000, + "defence": 4000, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "올드제스", + "지브테리아" + ] + } + } + ], + "defaults": { + "trust": 50, + "trade": 100, + "supplyState": 1, + "frontState": 0 + }, + "meta": { + "source": "legacy", + "mapName": "ludo_rathowm" + } +} diff --git a/app/game-engine/resources/map/map_miniche.json b/app/game-engine/resources/map/map_miniche.json new file mode 100644 index 0000000..847d707 --- /dev/null +++ b/app/game-engine/resources/map/map_miniche.json @@ -0,0 +1,3114 @@ +{ + "id": "miniche", + "name": "miniche", + "cities": [ + { + "id": 1, + "name": "낙양", + "level": 8, + "region": 2, + "position": { + "x": 285, + "y": 176 + }, + "connections": [ + 32, + 67, + 76 + ], + "max": { + "population": 835700, + "agriculture": 11700, + "commerce": 12000, + "security": 10000, + "defence": 12100, + "wall": 12400 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "하내", + "홍농", + "호로" + ] + } + }, + { + "id": 2, + "name": "성도", + "level": 8, + "region": 4, + "position": { + "x": 30, + "y": 285 + }, + "connections": [ + 31, + 21 + ], + "max": { + "population": 652500, + "agriculture": 12300, + "commerce": 12500, + "security": 10000, + "defence": 12500, + "wall": 12300 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "덕양", + "강주" + ] + } + }, + { + "id": 3, + "name": "건업", + "level": 8, + "region": 7, + "position": { + "x": 507, + "y": 303 + }, + "connections": [ + 57, + 43, + 17 + ], + "max": { + "population": 638600, + "agriculture": 11600, + "commerce": 12300, + "security": 10000, + "defence": 11500, + "wall": 11900 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "광릉", + "합비", + "오" + ] + } + }, + { + "id": 4, + "name": "업", + "level": 8, + "region": 1, + "position": { + "x": 355, + "y": 135 + }, + "connections": [ + 32, + 53, + 11, + 29, + 24 + ], + "max": { + "population": 620500, + "agriculture": 12500, + "commerce": 11300, + "security": 10000, + "defence": 11700, + "wall": 12200 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "하내", + "거록", + "남피", + "제남", + "진류" + ] + } + }, + { + "id": 5, + "name": "장안", + "level": 8, + "region": 3, + "position": { + "x": 162, + "y": 173 + }, + "connections": [ + 65, + 77, + 10, + 67 + ], + "max": { + "population": 592300, + "agriculture": 11600, + "commerce": 12300, + "security": 10000, + "defence": 12000, + "wall": 11800 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "안정", + "오장원", + "한중", + "홍농" + ] + } + }, + { + "id": 6, + "name": "허창", + "level": 8, + "region": 2, + "position": { + "x": 325, + "y": 218 + }, + "connections": [ + 76, + 24, + 34, + 66, + 15 + ], + "max": { + "population": 587600, + "agriculture": 12100, + "commerce": 12400, + "security": 10000, + "defence": 11700, + "wall": 12500 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "호로", + "진류", + "초", + "여남", + "완" + ] + } + }, + { + "id": 7, + "name": "양양", + "level": 8, + "region": 6, + "position": { + "x": 259, + "y": 295 + }, + "connections": [ + 62, + 14, + 46 + ], + "max": { + "population": 583700, + "agriculture": 12000, + "commerce": 12600, + "security": 10000, + "defence": 11500, + "wall": 11700 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "신야", + "강릉", + "강하" + ] + } + }, + { + "id": 8, + "name": "시상", + "level": 7, + "region": 7, + "position": { + "x": 357, + "y": 357 + }, + "connections": [ + 78, + 54, + 40, + 64, + 16 + ], + "max": { + "population": 525200, + "agriculture": 9800, + "commerce": 10000, + "security": 8000, + "defence": 9900, + "wall": 9600 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "적벽", + "여강", + "단양", + "상동", + "장사" + ] + } + }, + { + "id": 9, + "name": "수춘", + "level": 7, + "region": 2, + "position": { + "x": 385, + "y": 270 + }, + "connections": [ + 66, + 34, + 18, + 43 + ], + "max": { + "population": 514300, + "agriculture": 9900, + "commerce": 9600, + "security": 8000, + "defence": 9900, + "wall": 9500 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "여남", + "초", + "하비", + "합비" + ] + } + }, + { + "id": 10, + "name": "한중", + "level": 7, + "region": 4, + "position": { + "x": 130, + "y": 218 + }, + "connections": [ + 22, + 77, + 5, + 33, + 56 + ], + "max": { + "population": 513700, + "agriculture": 9600, + "commerce": 10100, + "security": 8000, + "defence": 10200, + "wall": 10300 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무도", + "오장원", + "장안", + "상용", + "자동" + ] + } + }, + { + "id": 11, + "name": "남피", + "level": 7, + "region": 1, + "position": { + "x": 410, + "y": 93 + }, + "connections": [ + 27, + 13, + 48, + 4, + 53 + ], + "max": { + "population": 503200, + "agriculture": 9900, + "commerce": 10100, + "security": 8000, + "defence": 10100, + "wall": 10500 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "계", + "북평", + "평원", + "업", + "거록" + ] + } + }, + { + "id": 12, + "name": "위례", + "level": 7, + "region": 8, + "position": { + "x": 618, + "y": 140 + }, + "connections": [ + 51, + 42, + 20, + 26 + ], + "max": { + "population": 492600, + "agriculture": 10000, + "commerce": 9300, + "security": 8000, + "defence": 9800, + "wall": 10300 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "평양", + "북해", + "웅진", + "계림" + ] + } + }, + { + "id": 13, + "name": "북평", + "level": 7, + "region": 1, + "position": { + "x": 442, + "y": 53 + }, + "connections": [ + 27, + 52, + 11 + ], + "max": { + "population": 486200, + "agriculture": 10200, + "commerce": 9500, + "security": 8000, + "defence": 10300, + "wall": 9900 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "계", + "요동", + "남피" + ] + } + }, + { + "id": 14, + "name": "강릉", + "level": 7, + "region": 6, + "position": { + "x": 245, + "y": 330 + }, + "connections": [ + 44, + 7, + 78, + 16, + 38 + ], + "max": { + "population": 485000, + "agriculture": 10500, + "commerce": 9600, + "security": 8000, + "defence": 9500, + "wall": 9600 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "이릉", + "양양", + "적벽", + "장사", + "무릉" + ] + } + }, + { + "id": 15, + "name": "완", + "level": 7, + "region": 2, + "position": { + "x": 275, + "y": 235 + }, + "connections": [ + 6, + 66, + 62 + ], + "max": { + "population": 472400, + "agriculture": 10300, + "commerce": 10000, + "security": 8000, + "defence": 10100, + "wall": 9900 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "허창", + "여남", + "신야" + ] + } + }, + { + "id": 16, + "name": "장사", + "level": 7, + "region": 6, + "position": { + "x": 258, + "y": 373 + }, + "connections": [ + 14, + 8, + 25, + 38 + ], + "max": { + "population": 471000, + "agriculture": 9700, + "commerce": 9900, + "security": 8000, + "defence": 10000, + "wall": 10500 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강릉", + "시상", + "계양", + "무릉" + ] + } + }, + { + "id": 17, + "name": "오", + "level": 6, + "region": 7, + "position": { + "x": 515, + "y": 340 + }, + "connections": [ + 3, + 40, + 49, + 63 + ], + "max": { + "population": 435500, + "agriculture": 7700, + "commerce": 8100, + "security": 6000, + "defence": 7700, + "wall": 7600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건업", + "단양", + "회계", + "탐라" + ] + } + }, + { + "id": 18, + "name": "하비", + "level": 6, + "region": 2, + "position": { + "x": 460, + "y": 240 + }, + "connections": [ + 55, + 42, + 57, + 9 + ], + "max": { + "population": 427800, + "agriculture": 8500, + "commerce": 8300, + "security": 6000, + "defence": 8200, + "wall": 7800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "패", + "북해", + "광릉", + "수춘" + ] + } + }, + { + "id": 19, + "name": "복양", + "level": 6, + "region": 2, + "position": { + "x": 412, + "y": 170 + }, + "connections": [ + 29, + 24, + 55 + ], + "max": { + "population": 418500, + "agriculture": 8000, + "commerce": 8300, + "security": 6000, + "defence": 8200, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "제남", + "진류", + "패" + ] + } + }, + { + "id": 20, + "name": "웅진", + "level": 6, + "region": 8, + "position": { + "x": 615, + "y": 205 + }, + "connections": [ + 12, + 26, + 63 + ], + "max": { + "population": 415700, + "agriculture": 7700, + "commerce": 7900, + "security": 6000, + "defence": 7800, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "위례", + "계림", + "탐라" + ] + } + }, + { + "id": 21, + "name": "강주", + "level": 6, + "region": 4, + "position": { + "x": 75, + "y": 305 + }, + "connections": [ + 2, + 31, + 41, + 68, + 60 + ], + "max": { + "population": 412600, + "agriculture": 7900, + "commerce": 8000, + "security": 6000, + "defence": 8400, + "wall": 8100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "성도", + "덕양", + "영안", + "주제", + "월수" + ] + } + }, + { + "id": 22, + "name": "무도", + "level": 6, + "region": 4, + "position": { + "x": 55, + "y": 191 + }, + "connections": [ + 75, + 10, + 56 + ], + "max": { + "population": 402700, + "agriculture": 7700, + "commerce": 8400, + "security": 6000, + "defence": 8000, + "wall": 8500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "저", + "한중", + "자동" + ] + } + }, + { + "id": 23, + "name": "국내", + "level": 6, + "region": 8, + "position": { + "x": 596, + "y": 48 + }, + "connections": [ + 52, + 71, + 51 + ], + "max": { + "population": 398200, + "agriculture": 7800, + "commerce": 8000, + "security": 6000, + "defence": 8300, + "wall": 7800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "요동", + "오환", + "평양" + ] + } + }, + { + "id": 24, + "name": "진류", + "level": 6, + "region": 2, + "position": { + "x": 370, + "y": 175 + }, + "connections": [ + 4, + 19, + 55, + 34, + 6, + 76 + ], + "max": { + "population": 395700, + "agriculture": 8200, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "업", + "복양", + "패", + "초", + "허창", + "호로" + ] + } + }, + { + "id": 25, + "name": "계양", + "level": 6, + "region": 6, + "position": { + "x": 242, + "y": 408 + }, + "connections": [ + 59, + 16, + 64 + ], + "max": { + "population": 395500, + "agriculture": 8300, + "commerce": 8000, + "security": 6000, + "defence": 8100, + "wall": 7700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "영릉", + "장사", + "상동" + ] + } + }, + { + "id": 26, + "name": "계림", + "level": 6, + "region": 8, + "position": { + "x": 660, + "y": 195 + }, + "connections": [ + 12, + 20, + 73 + ], + "max": { + "population": 391100, + "agriculture": 8000, + "commerce": 7400, + "security": 6000, + "defence": 8100, + "wall": 7800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "위례", + "웅진", + "왜" + ] + } + }, + { + "id": 27, + "name": "계", + "level": 6, + "region": 1, + "position": { + "x": 386, + "y": 55 + }, + "connections": [ + 47, + 13, + 11 + ], + "max": { + "population": 388500, + "agriculture": 7500, + "commerce": 8000, + "security": 6000, + "defence": 7800, + "wall": 8100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진양", + "북평", + "남피" + ] + } + }, + { + "id": 28, + "name": "무위", + "level": 6, + "region": 3, + "position": { + "x": 56, + "y": 76 + }, + "connections": [ + 72, + 65, + 50, + 75 + ], + "max": { + "population": 387400, + "agriculture": 7700, + "commerce": 7900, + "security": 6000, + "defence": 8300, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강", + "안정", + "천수", + "저" + ] + } + }, + { + "id": 29, + "name": "제남", + "level": 6, + "region": 1, + "position": { + "x": 402, + "y": 132 + }, + "connections": [ + 4, + 48, + 19 + ], + "max": { + "population": 383100, + "agriculture": 7700, + "commerce": 8100, + "security": 6000, + "defence": 8400, + "wall": 7700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "업", + "평원", + "복양" + ] + } + }, + { + "id": 30, + "name": "남해", + "level": 6, + "region": 7, + "position": { + "x": 270, + "y": 474 + }, + "connections": [ + 64, + 70, + 39 + ], + "max": { + "population": 380300, + "agriculture": 8200, + "commerce": 7600, + "security": 6000, + "defence": 8000, + "wall": 8100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "상동", + "산월", + "교지" + ] + } + }, + { + "id": 31, + "name": "덕양", + "level": 6, + "region": 4, + "position": { + "x": 73, + "y": 276 + }, + "connections": [ + 56, + 41, + 21, + 2 + ], + "max": { + "population": 380300, + "agriculture": 8100, + "commerce": 8400, + "security": 6000, + "defence": 7900, + "wall": 7700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "자동", + "영안", + "강주", + "성도" + ] + } + }, + { + "id": 32, + "name": "하내", + "level": 6, + "region": 1, + "position": { + "x": 295, + "y": 140 + }, + "connections": [ + 47, + 4, + 1, + 37 + ], + "max": { + "population": 373600, + "agriculture": 7700, + "commerce": 8100, + "security": 6000, + "defence": 8100, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진양", + "업", + "낙양", + "하동" + ] + } + }, + { + "id": 33, + "name": "상용", + "level": 6, + "region": 4, + "position": { + "x": 190, + "y": 220 + }, + "connections": [ + 10, + 62 + ], + "max": { + "population": 368700, + "agriculture": 7800, + "commerce": 7600, + "security": 6000, + "defence": 7700, + "wall": 8100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "한중", + "신야" + ] + } + }, + { + "id": 34, + "name": "초", + "level": 5, + "region": 2, + "position": { + "x": 375, + "y": 225 + }, + "connections": [ + 6, + 24, + 55, + 9, + 66 + ], + "max": { + "population": 328600, + "agriculture": 6000, + "commerce": 6200, + "security": 4000, + "defence": 6200, + "wall": 5700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "허창", + "진류", + "패", + "수춘", + "여남" + ] + } + }, + { + "id": 35, + "name": "운남", + "level": 5, + "region": 5, + "position": { + "x": 45, + "y": 405 + }, + "connections": [ + 60, + 45, + 69 + ], + "max": { + "population": 325800, + "agriculture": 6200, + "commerce": 6000, + "security": 4000, + "defence": 6400, + "wall": 6100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "월수", + "건녕", + "남만" + ] + } + }, + { + "id": 36, + "name": "대", + "level": 5, + "region": 7, + "position": { + "x": 450, + "y": 470 + }, + "connections": [ + 70, + 49, + 73 + ], + "max": { + "population": 325600, + "agriculture": 6000, + "commerce": 6200, + "security": 4000, + "defence": 5700, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "산월", + "회계", + "왜" + ] + } + }, + { + "id": 37, + "name": "하동", + "level": 5, + "region": 3, + "position": { + "x": 240, + "y": 140 + }, + "connections": [ + 74, + 47, + 32, + 67 + ], + "max": { + "population": 320800, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6200, + "wall": 5500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "흉노", + "진양", + "하내", + "홍농" + ] + } + }, + { + "id": 38, + "name": "무릉", + "level": 5, + "region": 6, + "position": { + "x": 195, + "y": 352 + }, + "connections": [ + 14, + 16, + 59 + ], + "max": { + "population": 319600, + "agriculture": 5800, + "commerce": 6300, + "security": 4000, + "defence": 6300, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강릉", + "장사", + "영릉" + ] + } + }, + { + "id": 39, + "name": "교지", + "level": 5, + "region": 5, + "position": { + "x": 136, + "y": 480 + }, + "connections": [ + 69, + 30 + ], + "max": { + "population": 319500, + "agriculture": 5800, + "commerce": 5900, + "security": 4000, + "defence": 5800, + "wall": 5900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "남만", + "남해" + ] + } + }, + { + "id": 40, + "name": "단양", + "level": 5, + "region": 7, + "position": { + "x": 440, + "y": 350 + }, + "connections": [ + 54, + 17, + 61, + 8 + ], + "max": { + "population": 318300, + "agriculture": 6200, + "commerce": 6400, + "security": 4000, + "defence": 5800, + "wall": 5700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "여강", + "오", + "건안", + "시상" + ] + } + }, + { + "id": 41, + "name": "영안", + "level": 5, + "region": 4, + "position": { + "x": 116, + "y": 282 + }, + "connections": [ + 31, + 44, + 21 + ], + "max": { + "population": 315300, + "agriculture": 6200, + "commerce": 5900, + "security": 4000, + "defence": 5800, + "wall": 5900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "덕양", + "이릉", + "강주" + ] + } + }, + { + "id": 42, + "name": "북해", + "level": 5, + "region": 1, + "position": { + "x": 470, + "y": 150 + }, + "connections": [ + 48, + 12, + 18 + ], + "max": { + "population": 314600, + "agriculture": 5500, + "commerce": 6300, + "security": 4000, + "defence": 6300, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "평원", + "위례", + "하비" + ] + } + }, + { + "id": 43, + "name": "합비", + "level": 2, + "region": 2, + "position": { + "x": 420, + "y": 294 + }, + "connections": [ + 9, + 3, + 54 + ], + "max": { + "population": 99800, + "agriculture": 2000, + "commerce": 1900, + "security": 2000, + "defence": 3900, + "wall": 4100 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "수춘", + "건업", + "여강" + ] + } + }, + { + "id": 44, + "name": "이릉", + "level": 2, + "region": 6, + "position": { + "x": 188, + "y": 275 + }, + "connections": [ + 41, + 14 + ], + "max": { + "population": 96800, + "agriculture": 1800, + "commerce": 1900, + "security": 2000, + "defence": 3900, + "wall": 4100 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "영안", + "강릉" + ] + } + }, + { + "id": 45, + "name": "건녕", + "level": 5, + "region": 5, + "position": { + "x": 85, + "y": 390 + }, + "connections": [ + 68, + 58, + 35 + ], + "max": { + "population": 308200, + "agriculture": 5800, + "commerce": 5900, + "security": 4000, + "defence": 6300, + "wall": 5600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "주제", + "장가", + "운남" + ] + } + }, + { + "id": 46, + "name": "강하", + "level": 5, + "region": 6, + "position": { + "x": 320, + "y": 299 + }, + "connections": [ + 7, + 78, + 54 + ], + "max": { + "population": 307400, + "agriculture": 5500, + "commerce": 5600, + "security": 4000, + "defence": 5700, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "양양", + "적벽", + "여강" + ] + } + }, + { + "id": 47, + "name": "진양", + "level": 5, + "region": 1, + "position": { + "x": 310, + "y": 75 + }, + "connections": [ + 74, + 37, + 32, + 53, + 27 + ], + "max": { + "population": 307400, + "agriculture": 5600, + "commerce": 5900, + "security": 4000, + "defence": 6400, + "wall": 5900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "흉노", + "하동", + "하내", + "거록", + "계" + ] + } + }, + { + "id": 48, + "name": "평원", + "level": 5, + "region": 1, + "position": { + "x": 445, + "y": 110 + }, + "connections": [ + 11, + 29, + 42 + ], + "max": { + "population": 307400, + "agriculture": 6200, + "commerce": 6500, + "security": 4000, + "defence": 6100, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "남피", + "제남", + "북해" + ] + } + }, + { + "id": 49, + "name": "회계", + "level": 5, + "region": 7, + "position": { + "x": 485, + "y": 390 + }, + "connections": [ + 17, + 61, + 36 + ], + "max": { + "population": 300500, + "agriculture": 6400, + "commerce": 5900, + "security": 4000, + "defence": 6200, + "wall": 6400 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "오", + "건안", + "대" + ] + } + }, + { + "id": 50, + "name": "천수", + "level": 5, + "region": 3, + "position": { + "x": 76, + "y": 140 + }, + "connections": [ + 28, + 65, + 77, + 75 + ], + "max": { + "population": 298500, + "agriculture": 5900, + "commerce": 6400, + "security": 4000, + "defence": 6000, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무위", + "안정", + "오장원", + "저" + ] + } + }, + { + "id": 51, + "name": "평양", + "level": 5, + "region": 8, + "position": { + "x": 606, + "y": 97 + }, + "connections": [ + 23, + 12 + ], + "max": { + "population": 293900, + "agriculture": 5500, + "commerce": 5900, + "security": 4000, + "defence": 6000, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "국내", + "위례" + ] + } + }, + { + "id": 52, + "name": "요동", + "level": 5, + "region": 8, + "position": { + "x": 549, + "y": 26 + }, + "connections": [ + 13, + 71, + 23 + ], + "max": { + "population": 293700, + "agriculture": 6300, + "commerce": 5900, + "security": 4000, + "defence": 5900, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "북평", + "오환", + "국내" + ] + } + }, + { + "id": 53, + "name": "거록", + "level": 5, + "region": 1, + "position": { + "x": 355, + "y": 95 + }, + "connections": [ + 47, + 11, + 4 + ], + "max": { + "population": 293600, + "agriculture": 6100, + "commerce": 5700, + "security": 4000, + "defence": 6400, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진양", + "남피", + "업" + ] + } + }, + { + "id": 54, + "name": "여강", + "level": 5, + "region": 7, + "position": { + "x": 392, + "y": 325 + }, + "connections": [ + 43, + 40, + 8, + 46 + ], + "max": { + "population": 290500, + "agriculture": 5600, + "commerce": 5800, + "security": 4000, + "defence": 6000, + "wall": 5500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "합비", + "단양", + "시상", + "강하" + ] + } + }, + { + "id": 55, + "name": "패", + "level": 5, + "region": 2, + "position": { + "x": 425, + "y": 210 + }, + "connections": [ + 24, + 19, + 18, + 34 + ], + "max": { + "population": 287700, + "agriculture": 6400, + "commerce": 5800, + "security": 4000, + "defence": 5800, + "wall": 5900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진류", + "복양", + "하비", + "초" + ] + } + }, + { + "id": 56, + "name": "자동", + "level": 5, + "region": 4, + "position": { + "x": 62, + "y": 240 + }, + "connections": [ + 22, + 10, + 31 + ], + "max": { + "population": 287000, + "agriculture": 5700, + "commerce": 5500, + "security": 4000, + "defence": 6000, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무도", + "한중", + "덕양" + ] + } + }, + { + "id": 57, + "name": "광릉", + "level": 5, + "region": 7, + "position": { + "x": 478, + "y": 270 + }, + "connections": [ + 18, + 3 + ], + "max": { + "population": 286700, + "agriculture": 6100, + "commerce": 5500, + "security": 4000, + "defence": 6000, + "wall": 6200 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "하비", + "건업" + ] + } + }, + { + "id": 58, + "name": "장가", + "level": 5, + "region": 5, + "position": { + "x": 136, + "y": 395 + }, + "connections": [ + 45, + 59, + 69 + ], + "max": { + "population": 285300, + "agriculture": 5900, + "commerce": 6200, + "security": 4000, + "defence": 5800, + "wall": 5700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건녕", + "영릉", + "남만" + ] + } + }, + { + "id": 59, + "name": "영릉", + "level": 5, + "region": 6, + "position": { + "x": 197, + "y": 390 + }, + "connections": [ + 38, + 25, + 58 + ], + "max": { + "population": 284900, + "agriculture": 6200, + "commerce": 5800, + "security": 4000, + "defence": 6200, + "wall": 6200 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무릉", + "계양", + "장가" + ] + } + }, + { + "id": 60, + "name": "월수", + "level": 5, + "region": 5, + "position": { + "x": 39, + "y": 349 + }, + "connections": [ + 21, + 68, + 35 + ], + "max": { + "population": 282800, + "agriculture": 6000, + "commerce": 5900, + "security": 4000, + "defence": 5800, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강주", + "주제", + "운남" + ] + } + }, + { + "id": 61, + "name": "건안", + "level": 5, + "region": 7, + "position": { + "x": 440, + "y": 420 + }, + "connections": [ + 40, + 49, + 70 + ], + "max": { + "population": 280200, + "agriculture": 5700, + "commerce": 6200, + "security": 4000, + "defence": 5800, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "단양", + "회계", + "산월" + ] + } + }, + { + "id": 62, + "name": "신야", + "level": 5, + "region": 6, + "position": { + "x": 245, + "y": 255 + }, + "connections": [ + 33, + 15, + 7 + ], + "max": { + "population": 278600, + "agriculture": 6000, + "commerce": 6200, + "security": 4000, + "defence": 5800, + "wall": 5500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "상용", + "완", + "양양" + ] + } + }, + { + "id": 63, + "name": "탐라", + "level": 1, + "region": 8, + "position": { + "x": 614, + "y": 259 + }, + "connections": [ + 20, + 73, + 17 + ], + "max": { + "population": 113000, + "agriculture": 2200, + "commerce": 2100, + "security": 2000, + "defence": 4300, + "wall": 4100 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "웅진", + "왜", + "오" + ] + } + }, + { + "id": 64, + "name": "상동", + "level": 5, + "region": 6, + "position": { + "x": 285, + "y": 405 + }, + "connections": [ + 25, + 8, + 30 + ], + "max": { + "population": 276700, + "agriculture": 5800, + "commerce": 5900, + "security": 4000, + "defence": 6200, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "계양", + "시상", + "남해" + ] + } + }, + { + "id": 65, + "name": "안정", + "level": 5, + "region": 3, + "position": { + "x": 135, + "y": 130 + }, + "connections": [ + 72, + 28, + 50, + 5 + ], + "max": { + "population": 276400, + "agriculture": 5700, + "commerce": 5900, + "security": 4000, + "defence": 5700, + "wall": 6200 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강", + "무위", + "천수", + "장안" + ] + } + }, + { + "id": 66, + "name": "여남", + "level": 5, + "region": 2, + "position": { + "x": 335, + "y": 255 + }, + "connections": [ + 15, + 6, + 34, + 9 + ], + "max": { + "population": 274900, + "agriculture": 6300, + "commerce": 5600, + "security": 4000, + "defence": 6400, + "wall": 6400 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "완", + "허창", + "초", + "수춘" + ] + } + }, + { + "id": 67, + "name": "홍농", + "level": 5, + "region": 3, + "position": { + "x": 220, + "y": 170 + }, + "connections": [ + 37, + 1, + 5 + ], + "max": { + "population": 274800, + "agriculture": 5700, + "commerce": 6300, + "security": 4000, + "defence": 5800, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "하동", + "낙양", + "장안" + ] + } + }, + { + "id": 68, + "name": "주제", + "level": 5, + "region": 5, + "position": { + "x": 93, + "y": 357 + }, + "connections": [ + 21, + 60, + 45 + ], + "max": { + "population": 274600, + "agriculture": 5800, + "commerce": 6100, + "security": 4000, + "defence": 6100, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강주", + "월수", + "건녕" + ] + } + }, + { + "id": 69, + "name": "남만", + "level": 4, + "region": 5, + "position": { + "x": 90, + "y": 454 + }, + "connections": [ + 35, + 58, + 39 + ], + "max": { + "population": 237800, + "agriculture": 4000, + "commerce": 4200, + "security": 2000, + "defence": 4300, + "wall": 4500 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "운남", + "장가", + "교지" + ] + } + }, + { + "id": 70, + "name": "산월", + "level": 4, + "region": 7, + "position": { + "x": 373, + "y": 447 + }, + "connections": [ + 61, + 36, + 30 + ], + "max": { + "population": 227500, + "agriculture": 4000, + "commerce": 3700, + "security": 2000, + "defence": 4300, + "wall": 3800 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건안", + "대", + "남해" + ] + } + }, + { + "id": 71, + "name": "오환", + "level": 4, + "region": 8, + "position": { + "x": 628, + "y": 19 + }, + "connections": [ + 52, + 23 + ], + "max": { + "population": 215300, + "agriculture": 4200, + "commerce": 3700, + "security": 2000, + "defence": 4300, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "요동", + "국내" + ] + } + }, + { + "id": 72, + "name": "강", + "level": 4, + "region": 3, + "position": { + "x": 154, + "y": 70 + }, + "connections": [ + 28, + 65 + ], + "max": { + "population": 209500, + "agriculture": 4000, + "commerce": 4200, + "security": 2000, + "defence": 4300, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무위", + "안정" + ] + } + }, + { + "id": 73, + "name": "왜", + "level": 4, + "region": 8, + "position": { + "x": 681, + "y": 292 + }, + "connections": [ + 26, + 63, + 36 + ], + "max": { + "population": 206500, + "agriculture": 3900, + "commerce": 3700, + "security": 2000, + "defence": 4300, + "wall": 4100 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "계림", + "탐라", + "대" + ] + } + }, + { + "id": 74, + "name": "흉노", + "level": 4, + "region": 3, + "position": { + "x": 227, + "y": 79 + }, + "connections": [ + 47, + 37 + ], + "max": { + "population": 206400, + "agriculture": 4000, + "commerce": 4100, + "security": 2000, + "defence": 4000, + "wall": 3800 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진양", + "하동" + ] + } + }, + { + "id": 75, + "name": "저", + "level": 4, + "region": 3, + "position": { + "x": 24, + "y": 123 + }, + "connections": [ + 28, + 50, + 22 + ], + "max": { + "population": 195700, + "agriculture": 4000, + "commerce": 4200, + "security": 2000, + "defence": 4300, + "wall": 4200 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무위", + "천수", + "무도" + ] + } + }, + { + "id": 76, + "name": "호로", + "level": 3, + "region": 2, + "position": { + "x": 317, + "y": 182 + }, + "connections": [ + 1, + 24, + 6 + ], + "max": { + "population": 95800, + "agriculture": 1700, + "commerce": 1900, + "security": 2000, + "defence": 9500, + "wall": 9600 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "낙양", + "진류", + "허창" + ] + } + }, + { + "id": 77, + "name": "오장원", + "level": 2, + "region": 3, + "position": { + "x": 104, + "y": 175 + }, + "connections": [ + 50, + 5, + 10 + ], + "max": { + "population": 100500, + "agriculture": 1900, + "commerce": 1800, + "security": 2000, + "defence": 4100, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "천수", + "장안", + "한중" + ] + } + }, + { + "id": 78, + "name": "적벽", + "level": 1, + "region": 7, + "position": { + "x": 335, + "y": 330 + }, + "connections": [ + 46, + 14, + 8 + ], + "max": { + "population": 111700, + "agriculture": 2300, + "commerce": 2100, + "security": 2000, + "defence": 4200, + "wall": 4100 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강하", + "강릉", + "시상" + ] + } + } + ], + "defaults": { + "trust": 50, + "trade": 100, + "supplyState": 1, + "frontState": 0 + }, + "meta": { + "source": "legacy", + "mapName": "miniche" + } +} diff --git a/app/game-engine/resources/map/map_miniche_b.json b/app/game-engine/resources/map/map_miniche_b.json new file mode 100644 index 0000000..9ebebc7 --- /dev/null +++ b/app/game-engine/resources/map/map_miniche_b.json @@ -0,0 +1,3114 @@ +{ + "id": "miniche_b", + "name": "miniche_b", + "cities": [ + { + "id": 1, + "name": "낙양", + "level": 8, + "region": 2, + "position": { + "x": 285, + "y": 176 + }, + "connections": [ + 32, + 67, + 76 + ], + "max": { + "population": 668600, + "agriculture": 7800, + "commerce": 8000, + "security": 6700, + "defence": 9700, + "wall": 9900 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "하내", + "홍농", + "호로" + ] + } + }, + { + "id": 2, + "name": "성도", + "level": 8, + "region": 4, + "position": { + "x": 30, + "y": 285 + }, + "connections": [ + 31, + 21 + ], + "max": { + "population": 522000, + "agriculture": 8200, + "commerce": 8300, + "security": 6700, + "defence": 10000, + "wall": 9800 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "덕양", + "강주" + ] + } + }, + { + "id": 3, + "name": "건업", + "level": 8, + "region": 7, + "position": { + "x": 507, + "y": 303 + }, + "connections": [ + 57, + 43, + 17 + ], + "max": { + "population": 510900, + "agriculture": 7700, + "commerce": 8200, + "security": 6700, + "defence": 9200, + "wall": 9500 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "광릉", + "합비", + "오" + ] + } + }, + { + "id": 4, + "name": "업", + "level": 8, + "region": 1, + "position": { + "x": 355, + "y": 135 + }, + "connections": [ + 32, + 53, + 11, + 29, + 24 + ], + "max": { + "population": 496400, + "agriculture": 8300, + "commerce": 7500, + "security": 6700, + "defence": 9400, + "wall": 9800 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "하내", + "거록", + "남피", + "제남", + "진류" + ] + } + }, + { + "id": 5, + "name": "장안", + "level": 8, + "region": 3, + "position": { + "x": 162, + "y": 173 + }, + "connections": [ + 65, + 77, + 10, + 67 + ], + "max": { + "population": 473800, + "agriculture": 7700, + "commerce": 8200, + "security": 6700, + "defence": 9600, + "wall": 9400 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "안정", + "오장원", + "한중", + "홍농" + ] + } + }, + { + "id": 6, + "name": "허창", + "level": 8, + "region": 2, + "position": { + "x": 325, + "y": 218 + }, + "connections": [ + 76, + 24, + 34, + 66, + 15 + ], + "max": { + "population": 470100, + "agriculture": 8100, + "commerce": 8300, + "security": 6700, + "defence": 9400, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "호로", + "진류", + "초", + "여남", + "완" + ] + } + }, + { + "id": 7, + "name": "양양", + "level": 8, + "region": 6, + "position": { + "x": 259, + "y": 295 + }, + "connections": [ + 62, + 14, + 46 + ], + "max": { + "population": 467000, + "agriculture": 8000, + "commerce": 8400, + "security": 6700, + "defence": 9200, + "wall": 9400 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "신야", + "강릉", + "강하" + ] + } + }, + { + "id": 8, + "name": "시상", + "level": 7, + "region": 7, + "position": { + "x": 357, + "y": 357 + }, + "connections": [ + 78, + 54, + 40, + 64, + 16 + ], + "max": { + "population": 420200, + "agriculture": 6500, + "commerce": 6700, + "security": 5300, + "defence": 7900, + "wall": 7700 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "적벽", + "여강", + "단양", + "상동", + "장사" + ] + } + }, + { + "id": 9, + "name": "수춘", + "level": 7, + "region": 2, + "position": { + "x": 385, + "y": 270 + }, + "connections": [ + 66, + 34, + 18, + 43 + ], + "max": { + "population": 411400, + "agriculture": 6600, + "commerce": 6400, + "security": 5300, + "defence": 7900, + "wall": 7600 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "여남", + "초", + "하비", + "합비" + ] + } + }, + { + "id": 10, + "name": "한중", + "level": 7, + "region": 4, + "position": { + "x": 130, + "y": 218 + }, + "connections": [ + 22, + 77, + 5, + 33, + 56 + ], + "max": { + "population": 411000, + "agriculture": 6400, + "commerce": 6700, + "security": 5300, + "defence": 8200, + "wall": 8200 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무도", + "오장원", + "장안", + "상용", + "자동" + ] + } + }, + { + "id": 11, + "name": "남피", + "level": 7, + "region": 1, + "position": { + "x": 410, + "y": 93 + }, + "connections": [ + 27, + 13, + 48, + 4, + 53 + ], + "max": { + "population": 402600, + "agriculture": 6600, + "commerce": 6700, + "security": 5300, + "defence": 8100, + "wall": 8400 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "계", + "북평", + "평원", + "업", + "거록" + ] + } + }, + { + "id": 12, + "name": "위례", + "level": 7, + "region": 8, + "position": { + "x": 618, + "y": 140 + }, + "connections": [ + 51, + 42, + 20, + 26 + ], + "max": { + "population": 394100, + "agriculture": 6700, + "commerce": 6200, + "security": 5300, + "defence": 7800, + "wall": 8200 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "평양", + "북해", + "웅진", + "계림" + ] + } + }, + { + "id": 13, + "name": "북평", + "level": 7, + "region": 1, + "position": { + "x": 442, + "y": 53 + }, + "connections": [ + 27, + 52, + 11 + ], + "max": { + "population": 389000, + "agriculture": 6800, + "commerce": 6300, + "security": 5300, + "defence": 8200, + "wall": 7900 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "계", + "요동", + "남피" + ] + } + }, + { + "id": 14, + "name": "강릉", + "level": 7, + "region": 6, + "position": { + "x": 245, + "y": 330 + }, + "connections": [ + 44, + 7, + 78, + 16, + 38 + ], + "max": { + "population": 388000, + "agriculture": 7000, + "commerce": 6400, + "security": 5300, + "defence": 7600, + "wall": 7700 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "이릉", + "양양", + "적벽", + "장사", + "무릉" + ] + } + }, + { + "id": 15, + "name": "완", + "level": 7, + "region": 2, + "position": { + "x": 275, + "y": 235 + }, + "connections": [ + 6, + 66, + 62 + ], + "max": { + "population": 377900, + "agriculture": 6900, + "commerce": 6700, + "security": 5300, + "defence": 8100, + "wall": 7900 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "허창", + "여남", + "신야" + ] + } + }, + { + "id": 16, + "name": "장사", + "level": 7, + "region": 6, + "position": { + "x": 258, + "y": 373 + }, + "connections": [ + 14, + 8, + 25, + 38 + ], + "max": { + "population": 376800, + "agriculture": 6500, + "commerce": 6600, + "security": 5300, + "defence": 8000, + "wall": 8400 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강릉", + "시상", + "계양", + "무릉" + ] + } + }, + { + "id": 17, + "name": "오", + "level": 6, + "region": 7, + "position": { + "x": 515, + "y": 340 + }, + "connections": [ + 3, + 40, + 49, + 63 + ], + "max": { + "population": 348400, + "agriculture": 5100, + "commerce": 5400, + "security": 4000, + "defence": 6200, + "wall": 6100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건업", + "단양", + "회계", + "탐라" + ] + } + }, + { + "id": 18, + "name": "하비", + "level": 6, + "region": 2, + "position": { + "x": 460, + "y": 240 + }, + "connections": [ + 55, + 42, + 57, + 9 + ], + "max": { + "population": 342200, + "agriculture": 5700, + "commerce": 5500, + "security": 4000, + "defence": 6600, + "wall": 6200 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "패", + "북해", + "광릉", + "수춘" + ] + } + }, + { + "id": 19, + "name": "복양", + "level": 6, + "region": 2, + "position": { + "x": 412, + "y": 170 + }, + "connections": [ + 29, + 24, + 55 + ], + "max": { + "population": 334800, + "agriculture": 5300, + "commerce": 5500, + "security": 4000, + "defence": 6600, + "wall": 6400 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "제남", + "진류", + "패" + ] + } + }, + { + "id": 20, + "name": "웅진", + "level": 6, + "region": 8, + "position": { + "x": 615, + "y": 205 + }, + "connections": [ + 12, + 26, + 63 + ], + "max": { + "population": 332600, + "agriculture": 5100, + "commerce": 5300, + "security": 4000, + "defence": 6200, + "wall": 6400 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "위례", + "계림", + "탐라" + ] + } + }, + { + "id": 21, + "name": "강주", + "level": 6, + "region": 4, + "position": { + "x": 75, + "y": 305 + }, + "connections": [ + 2, + 31, + 41, + 68, + 60 + ], + "max": { + "population": 330100, + "agriculture": 5300, + "commerce": 5300, + "security": 4000, + "defence": 6700, + "wall": 6500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "성도", + "덕양", + "영안", + "주제", + "월수" + ] + } + }, + { + "id": 22, + "name": "무도", + "level": 6, + "region": 4, + "position": { + "x": 55, + "y": 191 + }, + "connections": [ + 75, + 10, + 56 + ], + "max": { + "population": 322200, + "agriculture": 5100, + "commerce": 5600, + "security": 4000, + "defence": 6400, + "wall": 6800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "저", + "한중", + "자동" + ] + } + }, + { + "id": 23, + "name": "국내", + "level": 6, + "region": 8, + "position": { + "x": 596, + "y": 48 + }, + "connections": [ + 52, + 71, + 51 + ], + "max": { + "population": 318600, + "agriculture": 5200, + "commerce": 5300, + "security": 4000, + "defence": 6600, + "wall": 6200 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "요동", + "오환", + "평양" + ] + } + }, + { + "id": 24, + "name": "진류", + "level": 6, + "region": 2, + "position": { + "x": 370, + "y": 175 + }, + "connections": [ + 4, + 19, + 55, + 34, + 6, + 76 + ], + "max": { + "population": 316600, + "agriculture": 5500, + "commerce": 5300, + "security": 4000, + "defence": 6400, + "wall": 6600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "업", + "복양", + "패", + "초", + "허창", + "호로" + ] + } + }, + { + "id": 25, + "name": "계양", + "level": 6, + "region": 6, + "position": { + "x": 242, + "y": 408 + }, + "connections": [ + 59, + 16, + 64 + ], + "max": { + "population": 316400, + "agriculture": 5500, + "commerce": 5300, + "security": 4000, + "defence": 6500, + "wall": 6200 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "영릉", + "장사", + "상동" + ] + } + }, + { + "id": 26, + "name": "계림", + "level": 6, + "region": 8, + "position": { + "x": 660, + "y": 195 + }, + "connections": [ + 12, + 20, + 73 + ], + "max": { + "population": 312900, + "agriculture": 5300, + "commerce": 4900, + "security": 4000, + "defence": 6500, + "wall": 6200 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "위례", + "웅진", + "왜" + ] + } + }, + { + "id": 27, + "name": "계", + "level": 6, + "region": 1, + "position": { + "x": 386, + "y": 55 + }, + "connections": [ + 47, + 13, + 11 + ], + "max": { + "population": 310800, + "agriculture": 5000, + "commerce": 5300, + "security": 4000, + "defence": 6200, + "wall": 6500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진양", + "북평", + "남피" + ] + } + }, + { + "id": 28, + "name": "무위", + "level": 6, + "region": 3, + "position": { + "x": 56, + "y": 76 + }, + "connections": [ + 72, + 65, + 50, + 75 + ], + "max": { + "population": 309900, + "agriculture": 5100, + "commerce": 5300, + "security": 4000, + "defence": 6600, + "wall": 6400 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강", + "안정", + "천수", + "저" + ] + } + }, + { + "id": 29, + "name": "제남", + "level": 6, + "region": 1, + "position": { + "x": 402, + "y": 132 + }, + "connections": [ + 4, + 48, + 19 + ], + "max": { + "population": 306500, + "agriculture": 5100, + "commerce": 5400, + "security": 4000, + "defence": 6700, + "wall": 6200 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "업", + "평원", + "복양" + ] + } + }, + { + "id": 30, + "name": "남해", + "level": 6, + "region": 7, + "position": { + "x": 270, + "y": 474 + }, + "connections": [ + 64, + 70, + 39 + ], + "max": { + "population": 304200, + "agriculture": 5500, + "commerce": 5100, + "security": 4000, + "defence": 6400, + "wall": 6500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "상동", + "산월", + "교지" + ] + } + }, + { + "id": 31, + "name": "덕양", + "level": 6, + "region": 4, + "position": { + "x": 73, + "y": 276 + }, + "connections": [ + 56, + 41, + 21, + 2 + ], + "max": { + "population": 304200, + "agriculture": 5400, + "commerce": 5600, + "security": 4000, + "defence": 6300, + "wall": 6200 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "자동", + "영안", + "강주", + "성도" + ] + } + }, + { + "id": 32, + "name": "하내", + "level": 6, + "region": 1, + "position": { + "x": 295, + "y": 140 + }, + "connections": [ + 47, + 4, + 1, + 37 + ], + "max": { + "population": 298900, + "agriculture": 5100, + "commerce": 5400, + "security": 4000, + "defence": 6500, + "wall": 6400 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진양", + "업", + "낙양", + "하동" + ] + } + }, + { + "id": 33, + "name": "상용", + "level": 6, + "region": 4, + "position": { + "x": 190, + "y": 220 + }, + "connections": [ + 10, + 62 + ], + "max": { + "population": 295000, + "agriculture": 5200, + "commerce": 5100, + "security": 4000, + "defence": 6200, + "wall": 6500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "한중", + "신야" + ] + } + }, + { + "id": 34, + "name": "초", + "level": 5, + "region": 2, + "position": { + "x": 375, + "y": 225 + }, + "connections": [ + 6, + 24, + 55, + 9, + 66 + ], + "max": { + "population": 262900, + "agriculture": 4000, + "commerce": 4100, + "security": 2700, + "defence": 5000, + "wall": 4600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "허창", + "진류", + "패", + "수춘", + "여남" + ] + } + }, + { + "id": 35, + "name": "운남", + "level": 5, + "region": 5, + "position": { + "x": 45, + "y": 405 + }, + "connections": [ + 60, + 45, + 69 + ], + "max": { + "population": 260600, + "agriculture": 4100, + "commerce": 4000, + "security": 2700, + "defence": 5100, + "wall": 4900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "월수", + "건녕", + "남만" + ] + } + }, + { + "id": 36, + "name": "대", + "level": 5, + "region": 7, + "position": { + "x": 450, + "y": 470 + }, + "connections": [ + 70, + 49, + 73 + ], + "max": { + "population": 260500, + "agriculture": 4000, + "commerce": 4100, + "security": 2700, + "defence": 4600, + "wall": 4800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "산월", + "회계", + "왜" + ] + } + }, + { + "id": 37, + "name": "하동", + "level": 5, + "region": 3, + "position": { + "x": 240, + "y": 140 + }, + "connections": [ + 74, + 47, + 32, + 67 + ], + "max": { + "population": 256600, + "agriculture": 4000, + "commerce": 4000, + "security": 2700, + "defence": 5000, + "wall": 4400 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "흉노", + "진양", + "하내", + "홍농" + ] + } + }, + { + "id": 38, + "name": "무릉", + "level": 5, + "region": 6, + "position": { + "x": 195, + "y": 352 + }, + "connections": [ + 14, + 16, + 59 + ], + "max": { + "population": 255700, + "agriculture": 3900, + "commerce": 4200, + "security": 2700, + "defence": 5000, + "wall": 4600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강릉", + "장사", + "영릉" + ] + } + }, + { + "id": 39, + "name": "교지", + "level": 5, + "region": 5, + "position": { + "x": 136, + "y": 480 + }, + "connections": [ + 69, + 30 + ], + "max": { + "population": 255600, + "agriculture": 3900, + "commerce": 3900, + "security": 2700, + "defence": 4600, + "wall": 4700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "남만", + "남해" + ] + } + }, + { + "id": 40, + "name": "단양", + "level": 5, + "region": 7, + "position": { + "x": 440, + "y": 350 + }, + "connections": [ + 54, + 17, + 61, + 8 + ], + "max": { + "population": 254600, + "agriculture": 4100, + "commerce": 4300, + "security": 2700, + "defence": 4600, + "wall": 4600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "여강", + "오", + "건안", + "시상" + ] + } + }, + { + "id": 41, + "name": "영안", + "level": 5, + "region": 4, + "position": { + "x": 116, + "y": 282 + }, + "connections": [ + 31, + 44, + 21 + ], + "max": { + "population": 252200, + "agriculture": 4100, + "commerce": 3900, + "security": 2700, + "defence": 4600, + "wall": 4700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "덕양", + "이릉", + "강주" + ] + } + }, + { + "id": 42, + "name": "북해", + "level": 5, + "region": 1, + "position": { + "x": 470, + "y": 150 + }, + "connections": [ + 48, + 12, + 18 + ], + "max": { + "population": 251700, + "agriculture": 3700, + "commerce": 4200, + "security": 2700, + "defence": 5000, + "wall": 4600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "평원", + "위례", + "하비" + ] + } + }, + { + "id": 43, + "name": "합비", + "level": 2, + "region": 2, + "position": { + "x": 420, + "y": 294 + }, + "connections": [ + 9, + 3, + 54 + ], + "max": { + "population": 79800, + "agriculture": 1300, + "commerce": 1300, + "security": 1300, + "defence": 3100, + "wall": 3300 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "수춘", + "건업", + "여강" + ] + } + }, + { + "id": 44, + "name": "이릉", + "level": 2, + "region": 6, + "position": { + "x": 188, + "y": 275 + }, + "connections": [ + 41, + 14 + ], + "max": { + "population": 77400, + "agriculture": 1200, + "commerce": 1300, + "security": 1300, + "defence": 3100, + "wall": 3300 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "영안", + "강릉" + ] + } + }, + { + "id": 45, + "name": "건녕", + "level": 5, + "region": 5, + "position": { + "x": 85, + "y": 390 + }, + "connections": [ + 68, + 58, + 35 + ], + "max": { + "population": 246600, + "agriculture": 3900, + "commerce": 3900, + "security": 2700, + "defence": 5000, + "wall": 4500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "주제", + "장가", + "운남" + ] + } + }, + { + "id": 46, + "name": "강하", + "level": 5, + "region": 6, + "position": { + "x": 320, + "y": 299 + }, + "connections": [ + 7, + 78, + 54 + ], + "max": { + "population": 245900, + "agriculture": 3700, + "commerce": 3700, + "security": 2700, + "defence": 4600, + "wall": 4800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "양양", + "적벽", + "여강" + ] + } + }, + { + "id": 47, + "name": "진양", + "level": 5, + "region": 1, + "position": { + "x": 310, + "y": 75 + }, + "connections": [ + 74, + 37, + 32, + 53, + 27 + ], + "max": { + "population": 245900, + "agriculture": 3700, + "commerce": 3900, + "security": 2700, + "defence": 5100, + "wall": 4700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "흉노", + "하동", + "하내", + "거록", + "계" + ] + } + }, + { + "id": 48, + "name": "평원", + "level": 5, + "region": 1, + "position": { + "x": 445, + "y": 110 + }, + "connections": [ + 11, + 29, + 42 + ], + "max": { + "population": 245900, + "agriculture": 4100, + "commerce": 4300, + "security": 2700, + "defence": 4900, + "wall": 5000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "남피", + "제남", + "북해" + ] + } + }, + { + "id": 49, + "name": "회계", + "level": 5, + "region": 7, + "position": { + "x": 485, + "y": 390 + }, + "connections": [ + 17, + 61, + 36 + ], + "max": { + "population": 240400, + "agriculture": 4300, + "commerce": 3900, + "security": 2700, + "defence": 5000, + "wall": 5100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "오", + "건안", + "대" + ] + } + }, + { + "id": 50, + "name": "천수", + "level": 5, + "region": 3, + "position": { + "x": 76, + "y": 140 + }, + "connections": [ + 28, + 65, + 77, + 75 + ], + "max": { + "population": 238800, + "agriculture": 3900, + "commerce": 4300, + "security": 2700, + "defence": 4800, + "wall": 4600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무위", + "안정", + "오장원", + "저" + ] + } + }, + { + "id": 51, + "name": "평양", + "level": 5, + "region": 8, + "position": { + "x": 606, + "y": 97 + }, + "connections": [ + 23, + 12 + ], + "max": { + "population": 235100, + "agriculture": 3700, + "commerce": 3900, + "security": 2700, + "defence": 4800, + "wall": 4600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "국내", + "위례" + ] + } + }, + { + "id": 52, + "name": "요동", + "level": 5, + "region": 8, + "position": { + "x": 549, + "y": 26 + }, + "connections": [ + 13, + 71, + 23 + ], + "max": { + "population": 235000, + "agriculture": 4200, + "commerce": 3900, + "security": 2700, + "defence": 4700, + "wall": 5000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "북평", + "오환", + "국내" + ] + } + }, + { + "id": 53, + "name": "거록", + "level": 5, + "region": 1, + "position": { + "x": 355, + "y": 95 + }, + "connections": [ + 47, + 11, + 4 + ], + "max": { + "population": 234900, + "agriculture": 4100, + "commerce": 3800, + "security": 2700, + "defence": 5100, + "wall": 4600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진양", + "남피", + "업" + ] + } + }, + { + "id": 54, + "name": "여강", + "level": 5, + "region": 7, + "position": { + "x": 392, + "y": 325 + }, + "connections": [ + 43, + 40, + 8, + 46 + ], + "max": { + "population": 232400, + "agriculture": 3700, + "commerce": 3900, + "security": 2700, + "defence": 4800, + "wall": 4400 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "합비", + "단양", + "시상", + "강하" + ] + } + }, + { + "id": 55, + "name": "패", + "level": 5, + "region": 2, + "position": { + "x": 425, + "y": 210 + }, + "connections": [ + 24, + 19, + 18, + 34 + ], + "max": { + "population": 230200, + "agriculture": 4300, + "commerce": 3900, + "security": 2700, + "defence": 4600, + "wall": 4700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진류", + "복양", + "하비", + "초" + ] + } + }, + { + "id": 56, + "name": "자동", + "level": 5, + "region": 4, + "position": { + "x": 62, + "y": 240 + }, + "connections": [ + 22, + 10, + 31 + ], + "max": { + "population": 229600, + "agriculture": 3800, + "commerce": 3700, + "security": 2700, + "defence": 4800, + "wall": 4600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무도", + "한중", + "덕양" + ] + } + }, + { + "id": 57, + "name": "광릉", + "level": 5, + "region": 7, + "position": { + "x": 478, + "y": 270 + }, + "connections": [ + 18, + 3 + ], + "max": { + "population": 229400, + "agriculture": 4100, + "commerce": 3700, + "security": 2700, + "defence": 4800, + "wall": 5000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "하비", + "건업" + ] + } + }, + { + "id": 58, + "name": "장가", + "level": 5, + "region": 5, + "position": { + "x": 136, + "y": 395 + }, + "connections": [ + 45, + 59, + 69 + ], + "max": { + "population": 228200, + "agriculture": 3900, + "commerce": 4100, + "security": 2700, + "defence": 4600, + "wall": 4600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건녕", + "영릉", + "남만" + ] + } + }, + { + "id": 59, + "name": "영릉", + "level": 5, + "region": 6, + "position": { + "x": 197, + "y": 390 + }, + "connections": [ + 38, + 25, + 58 + ], + "max": { + "population": 227900, + "agriculture": 4100, + "commerce": 3900, + "security": 2700, + "defence": 5000, + "wall": 5000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무릉", + "계양", + "장가" + ] + } + }, + { + "id": 60, + "name": "월수", + "level": 5, + "region": 5, + "position": { + "x": 39, + "y": 349 + }, + "connections": [ + 21, + 68, + 35 + ], + "max": { + "population": 226200, + "agriculture": 4000, + "commerce": 3900, + "security": 2700, + "defence": 4600, + "wall": 5000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강주", + "주제", + "운남" + ] + } + }, + { + "id": 61, + "name": "건안", + "level": 5, + "region": 7, + "position": { + "x": 440, + "y": 420 + }, + "connections": [ + 40, + 49, + 70 + ], + "max": { + "population": 224200, + "agriculture": 3800, + "commerce": 4100, + "security": 2700, + "defence": 4600, + "wall": 5000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "단양", + "회계", + "산월" + ] + } + }, + { + "id": 62, + "name": "신야", + "level": 5, + "region": 6, + "position": { + "x": 245, + "y": 255 + }, + "connections": [ + 33, + 15, + 7 + ], + "max": { + "population": 222900, + "agriculture": 4000, + "commerce": 4100, + "security": 2700, + "defence": 4600, + "wall": 4400 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "상용", + "완", + "양양" + ] + } + }, + { + "id": 63, + "name": "탐라", + "level": 1, + "region": 8, + "position": { + "x": 614, + "y": 259 + }, + "connections": [ + 20, + 73, + 17 + ], + "max": { + "population": 90400, + "agriculture": 1500, + "commerce": 1400, + "security": 1300, + "defence": 3400, + "wall": 3300 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "웅진", + "왜", + "오" + ] + } + }, + { + "id": 64, + "name": "상동", + "level": 5, + "region": 6, + "position": { + "x": 285, + "y": 405 + }, + "connections": [ + 25, + 8, + 30 + ], + "max": { + "population": 221400, + "agriculture": 3900, + "commerce": 3900, + "security": 2700, + "defence": 5000, + "wall": 4600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "계양", + "시상", + "남해" + ] + } + }, + { + "id": 65, + "name": "안정", + "level": 5, + "region": 3, + "position": { + "x": 135, + "y": 130 + }, + "connections": [ + 72, + 28, + 50, + 5 + ], + "max": { + "population": 221100, + "agriculture": 3800, + "commerce": 3900, + "security": 2700, + "defence": 4600, + "wall": 5000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강", + "무위", + "천수", + "장안" + ] + } + }, + { + "id": 66, + "name": "여남", + "level": 5, + "region": 2, + "position": { + "x": 335, + "y": 255 + }, + "connections": [ + 15, + 6, + 34, + 9 + ], + "max": { + "population": 219900, + "agriculture": 4200, + "commerce": 3700, + "security": 2700, + "defence": 5100, + "wall": 5100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "완", + "허창", + "초", + "수춘" + ] + } + }, + { + "id": 67, + "name": "홍농", + "level": 5, + "region": 3, + "position": { + "x": 220, + "y": 170 + }, + "connections": [ + 37, + 1, + 5 + ], + "max": { + "population": 219800, + "agriculture": 3800, + "commerce": 4200, + "security": 2700, + "defence": 4600, + "wall": 5000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "하동", + "낙양", + "장안" + ] + } + }, + { + "id": 68, + "name": "주제", + "level": 5, + "region": 5, + "position": { + "x": 93, + "y": 357 + }, + "connections": [ + 21, + 60, + 45 + ], + "max": { + "population": 219700, + "agriculture": 3900, + "commerce": 4100, + "security": 2700, + "defence": 4900, + "wall": 4600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강주", + "월수", + "건녕" + ] + } + }, + { + "id": 69, + "name": "남만", + "level": 4, + "region": 5, + "position": { + "x": 90, + "y": 454 + }, + "connections": [ + 35, + 58, + 39 + ], + "max": { + "population": 190200, + "agriculture": 2700, + "commerce": 2800, + "security": 1300, + "defence": 3400, + "wall": 3600 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "운남", + "장가", + "교지" + ] + } + }, + { + "id": 70, + "name": "산월", + "level": 4, + "region": 7, + "position": { + "x": 373, + "y": 447 + }, + "connections": [ + 61, + 36, + 30 + ], + "max": { + "population": 182000, + "agriculture": 2700, + "commerce": 2500, + "security": 1300, + "defence": 3400, + "wall": 3000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건안", + "대", + "남해" + ] + } + }, + { + "id": 71, + "name": "오환", + "level": 4, + "region": 8, + "position": { + "x": 628, + "y": 19 + }, + "connections": [ + 52, + 23 + ], + "max": { + "population": 172200, + "agriculture": 2800, + "commerce": 2500, + "security": 1300, + "defence": 3400, + "wall": 3200 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "요동", + "국내" + ] + } + }, + { + "id": 72, + "name": "강", + "level": 4, + "region": 3, + "position": { + "x": 154, + "y": 70 + }, + "connections": [ + 28, + 65 + ], + "max": { + "population": 167600, + "agriculture": 2700, + "commerce": 2800, + "security": 1300, + "defence": 3400, + "wall": 3200 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무위", + "안정" + ] + } + }, + { + "id": 73, + "name": "왜", + "level": 4, + "region": 8, + "position": { + "x": 681, + "y": 292 + }, + "connections": [ + 26, + 63, + 36 + ], + "max": { + "population": 165200, + "agriculture": 2600, + "commerce": 2500, + "security": 1300, + "defence": 3400, + "wall": 3300 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "계림", + "탐라", + "대" + ] + } + }, + { + "id": 74, + "name": "흉노", + "level": 4, + "region": 3, + "position": { + "x": 227, + "y": 79 + }, + "connections": [ + 47, + 37 + ], + "max": { + "population": 165100, + "agriculture": 2700, + "commerce": 2700, + "security": 1300, + "defence": 3200, + "wall": 3000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진양", + "하동" + ] + } + }, + { + "id": 75, + "name": "저", + "level": 4, + "region": 3, + "position": { + "x": 24, + "y": 123 + }, + "connections": [ + 28, + 50, + 22 + ], + "max": { + "population": 156600, + "agriculture": 2700, + "commerce": 2800, + "security": 1300, + "defence": 3400, + "wall": 3400 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무위", + "천수", + "무도" + ] + } + }, + { + "id": 76, + "name": "호로", + "level": 3, + "region": 2, + "position": { + "x": 317, + "y": 182 + }, + "connections": [ + 1, + 24, + 6 + ], + "max": { + "population": 76600, + "agriculture": 1100, + "commerce": 1300, + "security": 1300, + "defence": 7600, + "wall": 7700 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "낙양", + "진류", + "허창" + ] + } + }, + { + "id": 77, + "name": "오장원", + "level": 2, + "region": 3, + "position": { + "x": 104, + "y": 175 + }, + "connections": [ + 50, + 5, + 10 + ], + "max": { + "population": 80400, + "agriculture": 1300, + "commerce": 1200, + "security": 1300, + "defence": 3300, + "wall": 3200 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "천수", + "장안", + "한중" + ] + } + }, + { + "id": 78, + "name": "적벽", + "level": 1, + "region": 7, + "position": { + "x": 335, + "y": 330 + }, + "connections": [ + 46, + 14, + 8 + ], + "max": { + "population": 89400, + "agriculture": 1500, + "commerce": 1400, + "security": 1300, + "defence": 3400, + "wall": 3300 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강하", + "강릉", + "시상" + ] + } + } + ], + "defaults": { + "trust": 50, + "trade": 100, + "supplyState": 1, + "frontState": 0 + }, + "meta": { + "source": "legacy", + "mapName": "miniche_b" + } +} diff --git a/app/game-engine/resources/map/map_miniche_clean.json b/app/game-engine/resources/map/map_miniche_clean.json new file mode 100644 index 0000000..411debc --- /dev/null +++ b/app/game-engine/resources/map/map_miniche_clean.json @@ -0,0 +1,3114 @@ +{ + "id": "miniche_clean", + "name": "miniche_clean", + "cities": [ + { + "id": 1, + "name": "낙양", + "level": 5, + "region": 2, + "position": { + "x": 285, + "y": 176 + }, + "connections": [ + 32, + 67, + 76 + ], + "max": { + "population": 416300, + "agriculture": 5700, + "commerce": 6000, + "security": 4000, + "defence": 6100, + "wall": 6400 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "하내", + "홍농", + "호로" + ] + } + }, + { + "id": 2, + "name": "성도", + "level": 5, + "region": 4, + "position": { + "x": 30, + "y": 285 + }, + "connections": [ + 31, + 21 + ], + "max": { + "population": 324700, + "agriculture": 6300, + "commerce": 6500, + "security": 4000, + "defence": 6500, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "덕양", + "강주" + ] + } + }, + { + "id": 3, + "name": "건업", + "level": 5, + "region": 7, + "position": { + "x": 507, + "y": 303 + }, + "connections": [ + 57, + 43, + 17 + ], + "max": { + "population": 317800, + "agriculture": 5600, + "commerce": 6300, + "security": 4000, + "defence": 5500, + "wall": 5900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "광릉", + "합비", + "오" + ] + } + }, + { + "id": 4, + "name": "업", + "level": 5, + "region": 1, + "position": { + "x": 355, + "y": 135 + }, + "connections": [ + 32, + 53, + 11, + 29, + 24 + ], + "max": { + "population": 308700, + "agriculture": 6500, + "commerce": 5300, + "security": 4000, + "defence": 5700, + "wall": 6200 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "하내", + "거록", + "남피", + "제남", + "진류" + ] + } + }, + { + "id": 5, + "name": "장안", + "level": 5, + "region": 3, + "position": { + "x": 162, + "y": 173 + }, + "connections": [ + 65, + 77, + 10, + 67 + ], + "max": { + "population": 294600, + "agriculture": 5600, + "commerce": 6300, + "security": 4000, + "defence": 6000, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "안정", + "오장원", + "한중", + "홍농" + ] + } + }, + { + "id": 6, + "name": "허창", + "level": 5, + "region": 2, + "position": { + "x": 325, + "y": 218 + }, + "connections": [ + 76, + 24, + 34, + 66, + 15 + ], + "max": { + "population": 292300, + "agriculture": 6100, + "commerce": 6400, + "security": 4000, + "defence": 5700, + "wall": 6500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "호로", + "진류", + "초", + "여남", + "완" + ] + } + }, + { + "id": 7, + "name": "양양", + "level": 5, + "region": 6, + "position": { + "x": 259, + "y": 295 + }, + "connections": [ + 62, + 14, + 46 + ], + "max": { + "population": 290300, + "agriculture": 6000, + "commerce": 6600, + "security": 4000, + "defence": 5500, + "wall": 5700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "신야", + "강릉", + "강하" + ] + } + }, + { + "id": 8, + "name": "시상", + "level": 5, + "region": 7, + "position": { + "x": 357, + "y": 357 + }, + "connections": [ + 78, + 54, + 40, + 64, + 16 + ], + "max": { + "population": 311600, + "agriculture": 5800, + "commerce": 6000, + "security": 4000, + "defence": 5900, + "wall": 5600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "적벽", + "여강", + "단양", + "상동", + "장사" + ] + } + }, + { + "id": 9, + "name": "수춘", + "level": 5, + "region": 2, + "position": { + "x": 385, + "y": 270 + }, + "connections": [ + 66, + 34, + 18, + 43 + ], + "max": { + "population": 306100, + "agriculture": 5900, + "commerce": 5600, + "security": 4000, + "defence": 5900, + "wall": 5500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "여남", + "초", + "하비", + "합비" + ] + } + }, + { + "id": 10, + "name": "한중", + "level": 5, + "region": 4, + "position": { + "x": 130, + "y": 218 + }, + "connections": [ + 22, + 77, + 5, + 33, + 56 + ], + "max": { + "population": 305800, + "agriculture": 5600, + "commerce": 6100, + "security": 4000, + "defence": 6200, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무도", + "오장원", + "장안", + "상용", + "자동" + ] + } + }, + { + "id": 11, + "name": "남피", + "level": 5, + "region": 1, + "position": { + "x": 410, + "y": 93 + }, + "connections": [ + 27, + 13, + 48, + 4, + 53 + ], + "max": { + "population": 300600, + "agriculture": 5900, + "commerce": 6100, + "security": 4000, + "defence": 6100, + "wall": 6500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "계", + "북평", + "평원", + "업", + "거록" + ] + } + }, + { + "id": 12, + "name": "위례", + "level": 5, + "region": 8, + "position": { + "x": 618, + "y": 140 + }, + "connections": [ + 51, + 42, + 20, + 26 + ], + "max": { + "population": 295300, + "agriculture": 6000, + "commerce": 5300, + "security": 4000, + "defence": 5800, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "평양", + "북해", + "웅진", + "계림" + ] + } + }, + { + "id": 13, + "name": "북평", + "level": 5, + "region": 1, + "position": { + "x": 442, + "y": 53 + }, + "connections": [ + 27, + 52, + 11 + ], + "max": { + "population": 292100, + "agriculture": 6200, + "commerce": 5500, + "security": 4000, + "defence": 6300, + "wall": 5900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "계", + "요동", + "남피" + ] + } + }, + { + "id": 14, + "name": "강릉", + "level": 5, + "region": 6, + "position": { + "x": 245, + "y": 330 + }, + "connections": [ + 44, + 7, + 78, + 16, + 38 + ], + "max": { + "population": 291500, + "agriculture": 6500, + "commerce": 5600, + "security": 4000, + "defence": 5500, + "wall": 5600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "이릉", + "양양", + "적벽", + "장사", + "무릉" + ] + } + }, + { + "id": 15, + "name": "완", + "level": 5, + "region": 2, + "position": { + "x": 275, + "y": 235 + }, + "connections": [ + 6, + 66, + 62 + ], + "max": { + "population": 285200, + "agriculture": 6300, + "commerce": 6000, + "security": 4000, + "defence": 6100, + "wall": 5900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "허창", + "여남", + "신야" + ] + } + }, + { + "id": 16, + "name": "장사", + "level": 5, + "region": 6, + "position": { + "x": 258, + "y": 373 + }, + "connections": [ + 14, + 8, + 25, + 38 + ], + "max": { + "population": 284500, + "agriculture": 5700, + "commerce": 5900, + "security": 4000, + "defence": 6000, + "wall": 6500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강릉", + "시상", + "계양", + "무릉" + ] + } + }, + { + "id": 17, + "name": "오", + "level": 5, + "region": 7, + "position": { + "x": 515, + "y": 340 + }, + "connections": [ + 3, + 40, + 49, + 63 + ], + "max": { + "population": 317200, + "agriculture": 5700, + "commerce": 6100, + "security": 4000, + "defence": 5700, + "wall": 5600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건업", + "단양", + "회계", + "탐라" + ] + } + }, + { + "id": 18, + "name": "하비", + "level": 5, + "region": 2, + "position": { + "x": 460, + "y": 240 + }, + "connections": [ + 55, + 42, + 57, + 9 + ], + "max": { + "population": 313400, + "agriculture": 6500, + "commerce": 6300, + "security": 4000, + "defence": 6200, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "패", + "북해", + "광릉", + "수춘" + ] + } + }, + { + "id": 19, + "name": "복양", + "level": 5, + "region": 2, + "position": { + "x": 412, + "y": 170 + }, + "connections": [ + 29, + 24, + 55 + ], + "max": { + "population": 308700, + "agriculture": 6000, + "commerce": 6300, + "security": 4000, + "defence": 6200, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "제남", + "진류", + "패" + ] + } + }, + { + "id": 20, + "name": "웅진", + "level": 5, + "region": 8, + "position": { + "x": 615, + "y": 205 + }, + "connections": [ + 12, + 26, + 63 + ], + "max": { + "population": 307300, + "agriculture": 5700, + "commerce": 5900, + "security": 4000, + "defence": 5800, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "위례", + "계림", + "탐라" + ] + } + }, + { + "id": 21, + "name": "강주", + "level": 5, + "region": 4, + "position": { + "x": 75, + "y": 305 + }, + "connections": [ + 2, + 31, + 41, + 68, + 60 + ], + "max": { + "population": 305800, + "agriculture": 5900, + "commerce": 6000, + "security": 4000, + "defence": 6400, + "wall": 6100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "성도", + "덕양", + "영안", + "주제", + "월수" + ] + } + }, + { + "id": 22, + "name": "무도", + "level": 5, + "region": 4, + "position": { + "x": 55, + "y": 191 + }, + "connections": [ + 75, + 10, + 56 + ], + "max": { + "population": 300800, + "agriculture": 5700, + "commerce": 6400, + "security": 4000, + "defence": 6000, + "wall": 6500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "저", + "한중", + "자동" + ] + } + }, + { + "id": 23, + "name": "국내", + "level": 5, + "region": 8, + "position": { + "x": 596, + "y": 48 + }, + "connections": [ + 52, + 71, + 51 + ], + "max": { + "population": 298600, + "agriculture": 5800, + "commerce": 6000, + "security": 4000, + "defence": 6300, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "요동", + "오환", + "평양" + ] + } + }, + { + "id": 24, + "name": "진류", + "level": 5, + "region": 2, + "position": { + "x": 370, + "y": 175 + }, + "connections": [ + 4, + 19, + 55, + 34, + 6, + 76 + ], + "max": { + "population": 297300, + "agriculture": 6200, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "업", + "복양", + "패", + "초", + "허창", + "호로" + ] + } + }, + { + "id": 25, + "name": "계양", + "level": 5, + "region": 6, + "position": { + "x": 242, + "y": 408 + }, + "connections": [ + 59, + 16, + 64 + ], + "max": { + "population": 297200, + "agriculture": 6300, + "commerce": 6000, + "security": 4000, + "defence": 6100, + "wall": 5700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "영릉", + "장사", + "상동" + ] + } + }, + { + "id": 26, + "name": "계림", + "level": 5, + "region": 8, + "position": { + "x": 660, + "y": 195 + }, + "connections": [ + 12, + 20, + 73 + ], + "max": { + "population": 295000, + "agriculture": 6000, + "commerce": 5400, + "security": 4000, + "defence": 6100, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "위례", + "웅진", + "왜" + ] + } + }, + { + "id": 27, + "name": "계", + "level": 5, + "region": 1, + "position": { + "x": 386, + "y": 55 + }, + "connections": [ + 47, + 13, + 11 + ], + "max": { + "population": 293700, + "agriculture": 5500, + "commerce": 6000, + "security": 4000, + "defence": 5800, + "wall": 6100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진양", + "북평", + "남피" + ] + } + }, + { + "id": 28, + "name": "무위", + "level": 5, + "region": 3, + "position": { + "x": 56, + "y": 76 + }, + "connections": [ + 72, + 65, + 50, + 75 + ], + "max": { + "population": 293200, + "agriculture": 5700, + "commerce": 5900, + "security": 4000, + "defence": 6300, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강", + "안정", + "천수", + "저" + ] + } + }, + { + "id": 29, + "name": "제남", + "level": 5, + "region": 1, + "position": { + "x": 402, + "y": 132 + }, + "connections": [ + 4, + 48, + 19 + ], + "max": { + "population": 291000, + "agriculture": 5700, + "commerce": 6100, + "security": 4000, + "defence": 6400, + "wall": 5700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "업", + "평원", + "복양" + ] + } + }, + { + "id": 30, + "name": "남해", + "level": 5, + "region": 7, + "position": { + "x": 270, + "y": 474 + }, + "connections": [ + 64, + 70, + 39 + ], + "max": { + "population": 289600, + "agriculture": 6200, + "commerce": 5600, + "security": 4000, + "defence": 6000, + "wall": 6100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "상동", + "산월", + "교지" + ] + } + }, + { + "id": 31, + "name": "덕양", + "level": 5, + "region": 4, + "position": { + "x": 73, + "y": 276 + }, + "connections": [ + 56, + 41, + 21, + 2 + ], + "max": { + "population": 289600, + "agriculture": 6100, + "commerce": 6400, + "security": 4000, + "defence": 5900, + "wall": 5700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "자동", + "영안", + "강주", + "성도" + ] + } + }, + { + "id": 32, + "name": "하내", + "level": 5, + "region": 1, + "position": { + "x": 295, + "y": 140 + }, + "connections": [ + 47, + 4, + 1, + 37 + ], + "max": { + "population": 286300, + "agriculture": 5700, + "commerce": 6100, + "security": 4000, + "defence": 6100, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진양", + "업", + "낙양", + "하동" + ] + } + }, + { + "id": 33, + "name": "상용", + "level": 5, + "region": 4, + "position": { + "x": 190, + "y": 220 + }, + "connections": [ + 10, + 62 + ], + "max": { + "population": 283800, + "agriculture": 5800, + "commerce": 5600, + "security": 4000, + "defence": 5700, + "wall": 6100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "한중", + "신야" + ] + } + }, + { + "id": 34, + "name": "초", + "level": 5, + "region": 2, + "position": { + "x": 375, + "y": 225 + }, + "connections": [ + 6, + 24, + 55, + 9, + 66 + ], + "max": { + "population": 328600, + "agriculture": 6000, + "commerce": 6200, + "security": 4000, + "defence": 6200, + "wall": 5700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "허창", + "진류", + "패", + "수춘", + "여남" + ] + } + }, + { + "id": 35, + "name": "운남", + "level": 5, + "region": 5, + "position": { + "x": 45, + "y": 405 + }, + "connections": [ + 60, + 45, + 69 + ], + "max": { + "population": 325800, + "agriculture": 6200, + "commerce": 6000, + "security": 4000, + "defence": 6400, + "wall": 6100 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "월수", + "건녕", + "남만" + ] + } + }, + { + "id": 36, + "name": "대", + "level": 5, + "region": 7, + "position": { + "x": 450, + "y": 470 + }, + "connections": [ + 70, + 49, + 73 + ], + "max": { + "population": 325600, + "agriculture": 6000, + "commerce": 6200, + "security": 4000, + "defence": 5700, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "산월", + "회계", + "왜" + ] + } + }, + { + "id": 37, + "name": "하동", + "level": 5, + "region": 3, + "position": { + "x": 240, + "y": 140 + }, + "connections": [ + 74, + 47, + 32, + 67 + ], + "max": { + "population": 320800, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6200, + "wall": 5500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "흉노", + "진양", + "하내", + "홍농" + ] + } + }, + { + "id": 38, + "name": "무릉", + "level": 5, + "region": 6, + "position": { + "x": 195, + "y": 352 + }, + "connections": [ + 14, + 16, + 59 + ], + "max": { + "population": 319600, + "agriculture": 5800, + "commerce": 6300, + "security": 4000, + "defence": 6300, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강릉", + "장사", + "영릉" + ] + } + }, + { + "id": 39, + "name": "교지", + "level": 5, + "region": 5, + "position": { + "x": 136, + "y": 480 + }, + "connections": [ + 69, + 30 + ], + "max": { + "population": 319500, + "agriculture": 5800, + "commerce": 5900, + "security": 4000, + "defence": 5800, + "wall": 5900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "남만", + "남해" + ] + } + }, + { + "id": 40, + "name": "단양", + "level": 5, + "region": 7, + "position": { + "x": 440, + "y": 350 + }, + "connections": [ + 54, + 17, + 61, + 8 + ], + "max": { + "population": 318300, + "agriculture": 6200, + "commerce": 6400, + "security": 4000, + "defence": 5800, + "wall": 5700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "여강", + "오", + "건안", + "시상" + ] + } + }, + { + "id": 41, + "name": "영안", + "level": 5, + "region": 4, + "position": { + "x": 116, + "y": 282 + }, + "connections": [ + 31, + 44, + 21 + ], + "max": { + "population": 315300, + "agriculture": 6200, + "commerce": 5900, + "security": 4000, + "defence": 5800, + "wall": 5900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "덕양", + "이릉", + "강주" + ] + } + }, + { + "id": 42, + "name": "북해", + "level": 5, + "region": 1, + "position": { + "x": 470, + "y": 150 + }, + "connections": [ + 48, + 12, + 18 + ], + "max": { + "population": 314600, + "agriculture": 5500, + "commerce": 6300, + "security": 4000, + "defence": 6300, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "평원", + "위례", + "하비" + ] + } + }, + { + "id": 43, + "name": "합비", + "level": 2, + "region": 2, + "position": { + "x": 420, + "y": 294 + }, + "connections": [ + 9, + 3, + 54 + ], + "max": { + "population": 99800, + "agriculture": 2000, + "commerce": 1900, + "security": 2000, + "defence": 3900, + "wall": 4100 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "수춘", + "건업", + "여강" + ] + } + }, + { + "id": 44, + "name": "이릉", + "level": 2, + "region": 6, + "position": { + "x": 188, + "y": 275 + }, + "connections": [ + 41, + 14 + ], + "max": { + "population": 96800, + "agriculture": 1800, + "commerce": 1900, + "security": 2000, + "defence": 3900, + "wall": 4100 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "영안", + "강릉" + ] + } + }, + { + "id": 45, + "name": "건녕", + "level": 5, + "region": 5, + "position": { + "x": 85, + "y": 390 + }, + "connections": [ + 68, + 58, + 35 + ], + "max": { + "population": 308200, + "agriculture": 5800, + "commerce": 5900, + "security": 4000, + "defence": 6300, + "wall": 5600 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "주제", + "장가", + "운남" + ] + } + }, + { + "id": 46, + "name": "강하", + "level": 5, + "region": 6, + "position": { + "x": 320, + "y": 299 + }, + "connections": [ + 7, + 78, + 54 + ], + "max": { + "population": 307400, + "agriculture": 5500, + "commerce": 5600, + "security": 4000, + "defence": 5700, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "양양", + "적벽", + "여강" + ] + } + }, + { + "id": 47, + "name": "진양", + "level": 5, + "region": 1, + "position": { + "x": 310, + "y": 75 + }, + "connections": [ + 74, + 37, + 32, + 53, + 27 + ], + "max": { + "population": 307400, + "agriculture": 5600, + "commerce": 5900, + "security": 4000, + "defence": 6400, + "wall": 5900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "흉노", + "하동", + "하내", + "거록", + "계" + ] + } + }, + { + "id": 48, + "name": "평원", + "level": 5, + "region": 1, + "position": { + "x": 445, + "y": 110 + }, + "connections": [ + 11, + 29, + 42 + ], + "max": { + "population": 307400, + "agriculture": 6200, + "commerce": 6500, + "security": 4000, + "defence": 6100, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "남피", + "제남", + "북해" + ] + } + }, + { + "id": 49, + "name": "회계", + "level": 5, + "region": 7, + "position": { + "x": 485, + "y": 390 + }, + "connections": [ + 17, + 61, + 36 + ], + "max": { + "population": 300500, + "agriculture": 6400, + "commerce": 5900, + "security": 4000, + "defence": 6200, + "wall": 6400 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "오", + "건안", + "대" + ] + } + }, + { + "id": 50, + "name": "천수", + "level": 5, + "region": 3, + "position": { + "x": 76, + "y": 140 + }, + "connections": [ + 28, + 65, + 77, + 75 + ], + "max": { + "population": 298500, + "agriculture": 5900, + "commerce": 6400, + "security": 4000, + "defence": 6000, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무위", + "안정", + "오장원", + "저" + ] + } + }, + { + "id": 51, + "name": "평양", + "level": 5, + "region": 8, + "position": { + "x": 606, + "y": 97 + }, + "connections": [ + 23, + 12 + ], + "max": { + "population": 293900, + "agriculture": 5500, + "commerce": 5900, + "security": 4000, + "defence": 6000, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "국내", + "위례" + ] + } + }, + { + "id": 52, + "name": "요동", + "level": 5, + "region": 8, + "position": { + "x": 549, + "y": 26 + }, + "connections": [ + 13, + 71, + 23 + ], + "max": { + "population": 293700, + "agriculture": 6300, + "commerce": 5900, + "security": 4000, + "defence": 5900, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "북평", + "오환", + "국내" + ] + } + }, + { + "id": 53, + "name": "거록", + "level": 5, + "region": 1, + "position": { + "x": 355, + "y": 95 + }, + "connections": [ + 47, + 11, + 4 + ], + "max": { + "population": 293600, + "agriculture": 6100, + "commerce": 5700, + "security": 4000, + "defence": 6400, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진양", + "남피", + "업" + ] + } + }, + { + "id": 54, + "name": "여강", + "level": 5, + "region": 7, + "position": { + "x": 392, + "y": 325 + }, + "connections": [ + 43, + 40, + 8, + 46 + ], + "max": { + "population": 290500, + "agriculture": 5600, + "commerce": 5800, + "security": 4000, + "defence": 6000, + "wall": 5500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "합비", + "단양", + "시상", + "강하" + ] + } + }, + { + "id": 55, + "name": "패", + "level": 5, + "region": 2, + "position": { + "x": 425, + "y": 210 + }, + "connections": [ + 24, + 19, + 18, + 34 + ], + "max": { + "population": 287700, + "agriculture": 6400, + "commerce": 5800, + "security": 4000, + "defence": 5800, + "wall": 5900 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진류", + "복양", + "하비", + "초" + ] + } + }, + { + "id": 56, + "name": "자동", + "level": 5, + "region": 4, + "position": { + "x": 62, + "y": 240 + }, + "connections": [ + 22, + 10, + 31 + ], + "max": { + "population": 287000, + "agriculture": 5700, + "commerce": 5500, + "security": 4000, + "defence": 6000, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무도", + "한중", + "덕양" + ] + } + }, + { + "id": 57, + "name": "광릉", + "level": 5, + "region": 7, + "position": { + "x": 478, + "y": 270 + }, + "connections": [ + 18, + 3 + ], + "max": { + "population": 286700, + "agriculture": 6100, + "commerce": 5500, + "security": 4000, + "defence": 6000, + "wall": 6200 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "하비", + "건업" + ] + } + }, + { + "id": 58, + "name": "장가", + "level": 5, + "region": 5, + "position": { + "x": 136, + "y": 395 + }, + "connections": [ + 45, + 59, + 69 + ], + "max": { + "population": 285300, + "agriculture": 5900, + "commerce": 6200, + "security": 4000, + "defence": 5800, + "wall": 5700 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건녕", + "영릉", + "남만" + ] + } + }, + { + "id": 59, + "name": "영릉", + "level": 5, + "region": 6, + "position": { + "x": 197, + "y": 390 + }, + "connections": [ + 38, + 25, + 58 + ], + "max": { + "population": 284900, + "agriculture": 6200, + "commerce": 5800, + "security": 4000, + "defence": 6200, + "wall": 6200 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무릉", + "계양", + "장가" + ] + } + }, + { + "id": 60, + "name": "월수", + "level": 5, + "region": 5, + "position": { + "x": 39, + "y": 349 + }, + "connections": [ + 21, + 68, + 35 + ], + "max": { + "population": 282800, + "agriculture": 6000, + "commerce": 5900, + "security": 4000, + "defence": 5800, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강주", + "주제", + "운남" + ] + } + }, + { + "id": 61, + "name": "건안", + "level": 5, + "region": 7, + "position": { + "x": 440, + "y": 420 + }, + "connections": [ + 40, + 49, + 70 + ], + "max": { + "population": 280200, + "agriculture": 5700, + "commerce": 6200, + "security": 4000, + "defence": 5800, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "단양", + "회계", + "산월" + ] + } + }, + { + "id": 62, + "name": "신야", + "level": 5, + "region": 6, + "position": { + "x": 245, + "y": 255 + }, + "connections": [ + 33, + 15, + 7 + ], + "max": { + "population": 278600, + "agriculture": 6000, + "commerce": 6200, + "security": 4000, + "defence": 5800, + "wall": 5500 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "상용", + "완", + "양양" + ] + } + }, + { + "id": 63, + "name": "탐라", + "level": 1, + "region": 8, + "position": { + "x": 614, + "y": 259 + }, + "connections": [ + 20, + 73, + 17 + ], + "max": { + "population": 113000, + "agriculture": 2200, + "commerce": 2100, + "security": 2000, + "defence": 4300, + "wall": 4100 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "웅진", + "왜", + "오" + ] + } + }, + { + "id": 64, + "name": "상동", + "level": 5, + "region": 6, + "position": { + "x": 285, + "y": 405 + }, + "connections": [ + 25, + 8, + 30 + ], + "max": { + "population": 276700, + "agriculture": 5800, + "commerce": 5900, + "security": 4000, + "defence": 6200, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "계양", + "시상", + "남해" + ] + } + }, + { + "id": 65, + "name": "안정", + "level": 5, + "region": 3, + "position": { + "x": 135, + "y": 130 + }, + "connections": [ + 72, + 28, + 50, + 5 + ], + "max": { + "population": 276400, + "agriculture": 5700, + "commerce": 5900, + "security": 4000, + "defence": 5700, + "wall": 6200 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강", + "무위", + "천수", + "장안" + ] + } + }, + { + "id": 66, + "name": "여남", + "level": 5, + "region": 2, + "position": { + "x": 335, + "y": 255 + }, + "connections": [ + 15, + 6, + 34, + 9 + ], + "max": { + "population": 274900, + "agriculture": 6300, + "commerce": 5600, + "security": 4000, + "defence": 6400, + "wall": 6400 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "완", + "허창", + "초", + "수춘" + ] + } + }, + { + "id": 67, + "name": "홍농", + "level": 5, + "region": 3, + "position": { + "x": 220, + "y": 170 + }, + "connections": [ + 37, + 1, + 5 + ], + "max": { + "population": 274800, + "agriculture": 5700, + "commerce": 6300, + "security": 4000, + "defence": 5800, + "wall": 6300 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "하동", + "낙양", + "장안" + ] + } + }, + { + "id": 68, + "name": "주제", + "level": 5, + "region": 5, + "position": { + "x": 93, + "y": 357 + }, + "connections": [ + 21, + 60, + 45 + ], + "max": { + "population": 274600, + "agriculture": 5800, + "commerce": 6100, + "security": 4000, + "defence": 6100, + "wall": 5800 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강주", + "월수", + "건녕" + ] + } + }, + { + "id": 69, + "name": "남만", + "level": 4, + "region": 5, + "position": { + "x": 90, + "y": 454 + }, + "connections": [ + 35, + 58, + 39 + ], + "max": { + "population": 237800, + "agriculture": 4000, + "commerce": 4200, + "security": 2000, + "defence": 4300, + "wall": 4500 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "운남", + "장가", + "교지" + ] + } + }, + { + "id": 70, + "name": "산월", + "level": 4, + "region": 7, + "position": { + "x": 373, + "y": 447 + }, + "connections": [ + 61, + 36, + 30 + ], + "max": { + "population": 227500, + "agriculture": 4000, + "commerce": 3700, + "security": 2000, + "defence": 4300, + "wall": 3800 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "건안", + "대", + "남해" + ] + } + }, + { + "id": 71, + "name": "오환", + "level": 4, + "region": 8, + "position": { + "x": 628, + "y": 19 + }, + "connections": [ + 52, + 23 + ], + "max": { + "population": 215300, + "agriculture": 4200, + "commerce": 3700, + "security": 2000, + "defence": 4300, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "요동", + "국내" + ] + } + }, + { + "id": 72, + "name": "강", + "level": 4, + "region": 3, + "position": { + "x": 154, + "y": 70 + }, + "connections": [ + 28, + 65 + ], + "max": { + "population": 209500, + "agriculture": 4000, + "commerce": 4200, + "security": 2000, + "defence": 4300, + "wall": 4000 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무위", + "안정" + ] + } + }, + { + "id": 73, + "name": "왜", + "level": 4, + "region": 8, + "position": { + "x": 681, + "y": 292 + }, + "connections": [ + 26, + 63, + 36 + ], + "max": { + "population": 206500, + "agriculture": 3900, + "commerce": 3700, + "security": 2000, + "defence": 4300, + "wall": 4100 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "계림", + "탐라", + "대" + ] + } + }, + { + "id": 74, + "name": "흉노", + "level": 4, + "region": 3, + "position": { + "x": 227, + "y": 79 + }, + "connections": [ + 47, + 37 + ], + "max": { + "population": 206400, + "agriculture": 4000, + "commerce": 4100, + "security": 2000, + "defence": 4000, + "wall": 3800 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "진양", + "하동" + ] + } + }, + { + "id": 75, + "name": "저", + "level": 4, + "region": 3, + "position": { + "x": 24, + "y": 123 + }, + "connections": [ + 28, + 50, + 22 + ], + "max": { + "population": 195700, + "agriculture": 4000, + "commerce": 4200, + "security": 2000, + "defence": 4300, + "wall": 4200 + }, + "initial": { + "population": 50000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무위", + "천수", + "무도" + ] + } + }, + { + "id": 76, + "name": "호로", + "level": 3, + "region": 2, + "position": { + "x": 317, + "y": 182 + }, + "connections": [ + 1, + 24, + 6 + ], + "max": { + "population": 95800, + "agriculture": 1700, + "commerce": 1900, + "security": 2000, + "defence": 9500, + "wall": 9600 + }, + "initial": { + "population": 10000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 1000, + "wall": 1000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "낙양", + "진류", + "허창" + ] + } + }, + { + "id": 77, + "name": "오장원", + "level": 2, + "region": 3, + "position": { + "x": 104, + "y": 175 + }, + "connections": [ + 50, + 5, + 10 + ], + "max": { + "population": 100500, + "agriculture": 1900, + "commerce": 1800, + "security": 2000, + "defence": 4100, + "wall": 4000 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "천수", + "장안", + "한중" + ] + } + }, + { + "id": 78, + "name": "적벽", + "level": 1, + "region": 7, + "position": { + "x": 335, + "y": 330 + }, + "connections": [ + 46, + 14, + 8 + ], + "max": { + "population": 111700, + "agriculture": 2300, + "commerce": 2100, + "security": 2000, + "defence": 4200, + "wall": 4100 + }, + "initial": { + "population": 5000, + "agriculture": 100, + "commerce": 100, + "security": 100, + "defence": 500, + "wall": 500 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "강하", + "강릉", + "시상" + ] + } + } + ], + "defaults": { + "trust": 50, + "trade": 100, + "supplyState": 1, + "frontState": 0 + }, + "meta": { + "source": "legacy", + "mapName": "miniche_clean" + } +} diff --git a/app/game-engine/resources/map/map_pokemon_v1.json b/app/game-engine/resources/map/map_pokemon_v1.json new file mode 100644 index 0000000..d78dce9 --- /dev/null +++ b/app/game-engine/resources/map/map_pokemon_v1.json @@ -0,0 +1,879 @@ +{ + "id": "pokemon_v1", + "name": "pokemon_v1", + "cities": [ + { + "id": 1, + "name": "태초마을", + "level": 6, + "region": 1, + "position": { + "x": 169, + "y": 321 + }, + "connections": [ + 2, + 11 + ], + "max": { + "population": 1200000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "상록시티", + "홍련마을" + ] + } + }, + { + "id": 2, + "name": "상록시티", + "level": 5, + "region": 1, + "position": { + "x": 169, + "y": 231 + }, + "connections": [ + 1, + 3, + 12 + ], + "max": { + "population": 900000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "태초마을", + "회색시티", + "챔피언로드(입구)" + ] + } + }, + { + "id": 3, + "name": "회색시티", + "level": 6, + "region": 1, + "position": { + "x": 174, + "y": 104 + }, + "connections": [ + 2, + 4 + ], + "max": { + "population": 1200000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "상록시티", + "달맞이산" + ] + } + }, + { + "id": 4, + "name": "달맞이산", + "level": 6, + "region": 1, + "position": { + "x": 297, + "y": 94 + }, + "connections": [ + 3, + 5 + ], + "max": { + "population": 1200000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "회색시티", + "블루시티" + ] + } + }, + { + "id": 5, + "name": "블루시티", + "level": 6, + "region": 1, + "position": { + "x": 452, + "y": 92 + }, + "connections": [ + 4, + 10, + 18, + 21 + ], + "max": { + "population": 1200000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "달맞이산", + "노랑시티", + "무인발전소", + "블루시티동굴" + ] + } + }, + { + "id": 6, + "name": "갈색시티", + "level": 7, + "region": 1, + "position": { + "x": 451, + "y": 278 + }, + "connections": [ + 19, + 10 + ], + "max": { + "population": 1500000, + "agriculture": 10000, + "commerce": 10000, + "security": 8000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "IC", + "노랑시티" + ] + } + }, + { + "id": 7, + "name": "보라타운", + "level": 5, + "region": 1, + "position": { + "x": 627, + "y": 180 + }, + "connections": [ + 19, + 10, + 18 + ], + "max": { + "population": 1200000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "IC", + "노랑시티", + "무인발전소" + ] + } + }, + { + "id": 8, + "name": "무지개시티", + "level": 8, + "region": 1, + "position": { + "x": 343, + "y": 180 + }, + "connections": [ + 10, + 15 + ], + "max": { + "population": 1800000, + "agriculture": 12000, + "commerce": 12000, + "security": 10000, + "defence": 12000, + "wall": 12000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "노랑시티", + "사이클링로드(입구)" + ] + } + }, + { + "id": 9, + "name": "연분홍시티", + "level": 8, + "region": 1, + "position": { + "x": 357, + "y": 377 + }, + "connections": [ + 16, + 17, + 23 + ], + "max": { + "population": 1800000, + "agriculture": 12000, + "commerce": 12000, + "security": 10000, + "defence": 12000, + "wall": 12000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "사이클링로드(출구)", + "관동15로", + "쌍둥이섬" + ] + } + }, + { + "id": 10, + "name": "노랑시티", + "level": 8, + "region": 1, + "position": { + "x": 451, + "y": 180 + }, + "connections": [ + 7, + 8, + 5, + 6 + ], + "max": { + "population": 1800000, + "agriculture": 12000, + "commerce": 12000, + "security": 10000, + "defence": 12000, + "wall": 12000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "보라타운", + "무지개시티", + "블루시티", + "갈색시티" + ] + } + }, + { + "id": 11, + "name": "홍련마을", + "level": 6, + "region": 1, + "position": { + "x": 169, + "y": 454 + }, + "connections": [ + 1, + 23 + ], + "max": { + "population": 1200000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "태초마을", + "쌍둥이섬" + ] + } + }, + { + "id": 12, + "name": "챔피언로드(입구)", + "level": 6, + "region": 1, + "position": { + "x": 90, + "y": 231 + }, + "connections": [ + 2, + 13 + ], + "max": { + "population": 1200000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "상록시티", + "챔피언로드(동굴)" + ] + } + }, + { + "id": 13, + "name": "챔피언로드(동굴)", + "level": 7, + "region": 1, + "position": { + "x": 90, + "y": 180 + }, + "connections": [ + 14, + 12 + ], + "max": { + "population": 1500000, + "agriculture": 10000, + "commerce": 10000, + "security": 8000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "석영고원", + "챔피언로드(입구)" + ] + } + }, + { + "id": 14, + "name": "석영고원", + "level": 8, + "region": 1, + "position": { + "x": 90, + "y": 29 + }, + "connections": [ + 13 + ], + "max": { + "population": 1800000, + "agriculture": 12000, + "commerce": 12000, + "security": 10000, + "defence": 12000, + "wall": 12000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 5000, + "wall": 5000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "챔피언로드(동굴)" + ] + } + }, + { + "id": 15, + "name": "사이클링로드(입구)", + "level": 6, + "region": 1, + "position": { + "x": 252, + "y": 180 + }, + "connections": [ + 8, + 16 + ], + "max": { + "population": 1200000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "무지개시티", + "사이클링로드(출구)" + ] + } + }, + { + "id": 16, + "name": "사이클링로드(출구)", + "level": 7, + "region": 1, + "position": { + "x": 252, + "y": 377 + }, + "connections": [ + 15, + 9 + ], + "max": { + "population": 1500000, + "agriculture": 10000, + "commerce": 10000, + "security": 8000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "사이클링로드(입구)", + "연분홍시티" + ] + } + }, + { + "id": 17, + "name": "관동15로", + "level": 6, + "region": 1, + "position": { + "x": 451, + "y": 377 + }, + "connections": [ + 9, + 20 + ], + "max": { + "population": 1200000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "연분홍시티", + "관동13로" + ] + } + }, + { + "id": 18, + "name": "무인발전소", + "level": 7, + "region": 1, + "position": { + "x": 627, + "y": 94 + }, + "connections": [ + 7, + 5 + ], + "max": { + "population": 1500000, + "agriculture": 10000, + "commerce": 10000, + "security": 8000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "보라타운", + "블루시티" + ] + } + }, + { + "id": 19, + "name": "IC", + "level": 5, + "region": 1, + "position": { + "x": 627, + "y": 278 + }, + "connections": [ + 6, + 7, + 20 + ], + "max": { + "population": 900000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "갈색시티", + "보라타운", + "관동13로" + ] + } + }, + { + "id": 20, + "name": "관동13로", + "level": 5, + "region": 1, + "position": { + "x": 627, + "y": 344 + }, + "connections": [ + 17, + 19 + ], + "max": { + "population": 900000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "관동15로", + "IC" + ] + } + }, + { + "id": 21, + "name": "블루시티동굴", + "level": 6, + "region": 1, + "position": { + "x": 451, + "y": 32 + }, + "connections": [ + 5, + 22 + ], + "max": { + "population": 1200000, + "agriculture": 8000, + "commerce": 8000, + "security": 6000, + "defence": 8000, + "wall": 8000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 3000, + "wall": 3000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "블루시티", + "이수재의집" + ] + } + }, + { + "id": 22, + "name": "이수재의집", + "level": 7, + "region": 1, + "position": { + "x": 572, + "y": 32 + }, + "connections": [ + 21 + ], + "max": { + "population": 1500000, + "agriculture": 10000, + "commerce": 10000, + "security": 8000, + "defence": 10000, + "wall": 10000 + }, + "initial": { + "population": 150000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 4000, + "wall": 4000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "블루시티동굴" + ] + } + }, + { + "id": 23, + "name": "쌍둥이섬", + "level": 5, + "region": 1, + "position": { + "x": 263, + "y": 454 + }, + "connections": [ + 9, + 11 + ], + "max": { + "population": 900000, + "agriculture": 6000, + "commerce": 6000, + "security": 4000, + "defence": 6000, + "wall": 6000 + }, + "initial": { + "population": 100000, + "agriculture": 1000, + "commerce": 1000, + "security": 1000, + "defence": 2000, + "wall": 2000 + }, + "meta": { + "source": "legacy", + "connectionNames": [ + "연분홍시티", + "홍련마을" + ] + } + } + ], + "defaults": { + "trust": 50, + "trade": 100, + "supplyState": 1, + "frontState": 0 + }, + "meta": { + "source": "legacy", + "mapName": "pokemon_v1" + } +} diff --git a/app/game-engine/src/index.ts b/app/game-engine/src/index.ts index cebf96f..6803ed2 100644 --- a/app/game-engine/src/index.ts +++ b/app/game-engine/src/index.ts @@ -5,5 +5,5 @@ export * from './lifecycle/turnDaemonLifecycle.js'; export * from './lifecycle/getNextTickTime.js'; export * from './scenario/scenarioLoader.js'; export * from './scenario/databaseUrl.js'; -export * from './scenario/legacyMapLoader.js'; +export * from './scenario/mapLoader.js'; export * from './scenario/scenarioSeeder.js'; diff --git a/app/game-engine/src/scenario/mapLoader.ts b/app/game-engine/src/scenario/mapLoader.ts new file mode 100644 index 0000000..725999e --- /dev/null +++ b/app/game-engine/src/scenario/mapLoader.ts @@ -0,0 +1,51 @@ +import fs from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +import type { MapDefinition } from '@sammo-ts/logic'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const DEFAULT_MAP_ROOT = path.resolve( + __dirname, + '..', + '..', + 'resources', + 'map' +); + +export interface MapLoaderOptions { + mapRoot?: string; + filePrefix?: string; +} + +const readJsonFile = async (filePath: string): Promise => { + const raw = await fs.readFile(filePath, 'utf8'); + return JSON.parse(raw) as unknown; +}; + +const resolveMapRoot = (options?: MapLoaderOptions): string => + options?.mapRoot ?? DEFAULT_MAP_ROOT; + +export const resolveMapDefinitionPath = ( + mapName: string, + options?: MapLoaderOptions +): string => { + const prefix = options?.filePrefix ?? 'map_'; + return path.resolve(resolveMapRoot(options), `${prefix}${mapName}.json`); +}; + +export const loadMapDefinition = async ( + mapPath: string +): Promise => { + const raw = await readJsonFile(mapPath); + return raw as MapDefinition; +}; + +export const loadMapDefinitionByName = async ( + mapName: string, + options?: MapLoaderOptions +): Promise => { + const mapPath = resolveMapDefinitionPath(mapName, options); + return loadMapDefinition(mapPath); +}; diff --git a/app/game-engine/src/scenario/scenarioSeeder.ts b/app/game-engine/src/scenario/scenarioSeeder.ts index a3fe112..0227cf3 100644 --- a/app/game-engine/src/scenario/scenarioSeeder.ts +++ b/app/game-engine/src/scenario/scenarioSeeder.ts @@ -7,8 +7,8 @@ import { type WorldSeedPayload, } from '@sammo-ts/logic'; -import type { LegacyMapLoaderOptions } from './legacyMapLoader.js'; -import { loadLegacyMapDefinition } from './legacyMapLoader.js'; +import type { MapLoaderOptions } from './mapLoader.js'; +import { loadMapDefinitionByName } from './mapLoader.js'; import type { ScenarioLoaderOptions } from './scenarioLoader.js'; import { loadScenarioDefinitionById } from './scenarioLoader.js'; @@ -20,7 +20,7 @@ export interface ScenarioSeedOptions { scenarioId: number; databaseUrl: string; scenarioOptions?: ScenarioLoaderOptions; - mapOptions?: LegacyMapLoaderOptions; + mapOptions?: MapLoaderOptions; resetTables?: boolean; now?: Date; tickSeconds?: number; @@ -93,7 +93,7 @@ export const seedScenarioToDatabase = async ( options.scenarioId, options.scenarioOptions ); - const map = await loadLegacyMapDefinition( + const map = await loadMapDefinitionByName( scenario.config.environment.mapName, options.mapOptions ); diff --git a/app/game-engine/src/scenario/legacyMapLoader.ts b/tools/generate-map-data.mjs similarity index 66% rename from app/game-engine/src/scenario/legacyMapLoader.ts rename to tools/generate-map-data.mjs index c70a3f4..b2fa666 100644 --- a/app/game-engine/src/scenario/legacyMapLoader.ts +++ b/tools/generate-map-data.mjs @@ -2,38 +2,45 @@ import fs from 'node:fs/promises'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; -import type { - MapCityDefinition, - MapCityStats, - MapDefinition, -} from '@sammo-ts/logic'; - const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -const DEFAULT_LEGACY_MAP_ROOT = path.resolve( +const LEGACY_MAP_ROOT = path.resolve( __dirname, '..', - '..', - '..', - '..', 'legacy', 'hwe', 'scenario', 'map' ); -const DEFAULT_LEGACY_BASE_FILE = path.resolve( +const LEGACY_BASE_FILE = path.resolve( __dirname, '..', - '..', - '..', - '..', 'legacy', 'hwe', 'sammo', 'CityConstBase.php' ); +const OUTPUT_ROOT = path.resolve( + __dirname, + '..', + 'app', + 'game-engine', + 'resources', + 'map' +); -const LEVEL_MAP: Record = { +const MAP_NAMES = [ + 'che', + 'miniche', + 'miniche_b', + 'miniche_clean', + 'cr', + 'chess', + 'ludo_rathowm', + 'pokemon_v1', +]; + +const LEVEL_MAP = { '수': 1, '진': 2, '관': 3, @@ -44,13 +51,12 @@ const LEVEL_MAP: Record = { '특': 8, }; -const LEVEL_LABELS: Record = Object.entries(LEVEL_MAP) - .reduce>((acc, [label, value]) => { - acc[value] = label; - return acc; - }, {}); +const LEVEL_LABELS = Object.entries(LEVEL_MAP).reduce((acc, [label, value]) => { + acc[value] = label; + return acc; +}, {}); -const REGION_MAP: Record = { +const DEFAULT_REGION_MAP = { '하북': 1, '중원': 2, '서북': 3, @@ -66,7 +72,7 @@ const BUILD_INIT_COMMON = { trade: 100, }; -const BUILD_INIT: Record = { +const BUILD_INIT = { '수': { population: 5000, agriculture: 100, @@ -136,28 +142,7 @@ const BUILD_INIT: Record = { const DEFAULT_SUPPLY_STATE = 1; const DEFAULT_FRONT_STATE = 0; -interface LegacyCityRow { - id: number; - name: string; - level: string | number; - population: number; - agriculture: number; - commerce: number; - security: number; - defence: number; - wall: number; - region: string | number; - positionX: number; - positionY: number; - connectionNames: string[]; -} - -export interface LegacyMapLoaderOptions { - mapRoot?: string; - baseFilePath?: string; -} - -const readFileOrNull = async (filePath: string): Promise => { +const readFileOrNull = async (filePath) => { try { return await fs.readFile(filePath, 'utf8'); } catch { @@ -165,7 +150,7 @@ const readFileOrNull = async (filePath: string): Promise => { } }; -const extractPhpArray = (source: string, marker: string): string | null => { +const extractPhpArray = (source, marker) => { const markerIndex = source.indexOf(marker); if (markerIndex < 0) { return null; @@ -176,7 +161,7 @@ const extractPhpArray = (source: string, marker: string): string | null => { } let depth = 0; - let inString: '"' | "'" | null = null; + let inString = null; for (let i = start; i < source.length; i += 1) { const char = source[i]; @@ -211,19 +196,19 @@ const extractPhpArray = (source: string, marker: string): string | null => { return null; }; -const stripPhpComments = (source: string): string => +const stripPhpComments = (source) => source .replace(/\/\*[\s\S]*?\*\//g, '') .replace(/\/\/.*$/gm, '') .replace(/#.*$/gm, ''); -const normalizePhpArray = (source: string): string => +const normalizePhpArray = (source) => stripPhpComments(source) .replace(/\bNULL\b/gi, 'null') .replace(/'/g, '"') .replace(/,(\s*[\]\}])/g, '$1'); -const parseLegacyCityRows = (value: unknown): LegacyCityRow[] => { +const parseLegacyCityRows = (value) => { if (!Array.isArray(value)) { throw new Error('Legacy map data is not an array.'); } @@ -251,40 +236,9 @@ const parseLegacyCityRows = (value: unknown): LegacyCityRow[] => { if (typeof id !== 'number' || typeof name !== 'string') { throw new Error(`Legacy map row ${index} has invalid id/name.`); } - if ( - typeof level !== 'string' && - typeof level !== 'number' - ) { - throw new Error(`Legacy map row ${index} has invalid level.`); - } - const stats = [ - population, - agriculture, - commerce, - security, - defence, - wall, - ]; - if (stats.some((value) => typeof value !== 'number')) { - throw new Error(`Legacy map row ${index} has invalid stats.`); - } - if ( - typeof region !== 'string' && - typeof region !== 'number' - ) { - throw new Error(`Legacy map row ${index} has invalid region.`); - } - if ( - typeof positionX !== 'number' || - typeof positionY !== 'number' - ) { - throw new Error(`Legacy map row ${index} has invalid position.`); - } const connectionNames = Array.isArray(connections) - ? connections.filter( - (value): value is string => typeof value === 'string' - ) + ? connections.filter((value) => typeof value === 'string') : []; return { @@ -305,7 +259,7 @@ const parseLegacyCityRows = (value: unknown): LegacyCityRow[] => { }); }; -const resolveLevelLabel = (level: string | number): string => { +const resolveLevelLabel = (level) => { if (typeof level === 'string') { return level; } @@ -316,7 +270,7 @@ const resolveLevelLabel = (level: string | number): string => { return label; }; -const resolveLevelValue = (level: string | number): number => { +const resolveLevelValue = (level) => { if (typeof level === 'number') { return level; } @@ -327,21 +281,18 @@ const resolveLevelValue = (level: string | number): number => { return value; }; -const resolveRegionValue = (region: string | number): number => { +const resolveRegionValue = (region, regionMap) => { if (typeof region === 'number') { return region; } - const value = REGION_MAP[region]; + const value = regionMap[region]; if (!value) { throw new Error(`Unknown region label: ${region}`); } return value; }; -const buildCityDefinition = ( - row: LegacyCityRow, - nameToId: Map -): MapCityDefinition => { +const buildCityDefinition = (row, nameToId, regionMap) => { const levelLabel = resolveLevelLabel(row.level); const initial = BUILD_INIT[levelLabel]; if (!initial) { @@ -350,13 +301,13 @@ const buildCityDefinition = ( const connections = row.connectionNames .map((name) => nameToId.get(name)) - .filter((value): value is number => typeof value === 'number'); + .filter((value) => typeof value === 'number'); return { id: row.id, name: row.name, level: resolveLevelValue(row.level), - region: resolveRegionValue(row.region), + region: resolveRegionValue(row.region, regionMap), position: { x: row.positionX, y: row.positionY, @@ -378,41 +329,60 @@ const buildCityDefinition = ( }; }; -export const loadLegacyMapDefinition = async ( - mapName: string, - options?: LegacyMapLoaderOptions -): Promise => { - const mapRoot = options?.mapRoot ?? DEFAULT_LEGACY_MAP_ROOT; - const baseFilePath = options?.baseFilePath ?? DEFAULT_LEGACY_BASE_FILE; - const mapFilePath = path.resolve(mapRoot, `${mapName}.php`); +const parseRegionMap = (source) => { + const raw = extractPhpArray(source, 'public static $regionMap'); + if (!raw) { + return null; + } + const normalized = normalizePhpArray(raw); + const regex = /"([^"]+)"\s*=>\s*(\d+)/g; + const regionMap = {}; + let match = regex.exec(normalized); + while (match) { + const [, key, value] = match; + regionMap[key] = Number(value); + match = regex.exec(normalized); + } + return Object.keys(regionMap).length > 0 ? regionMap : null; +}; +const loadLegacyMapRows = async (mapName) => { + const mapFilePath = path.resolve(LEGACY_MAP_ROOT, `${mapName}.php`); const [mapSource, baseSource] = await Promise.all([ readFileOrNull(mapFilePath), - readFileOrNull(baseFilePath), + readFileOrNull(LEGACY_BASE_FILE), ]); if (!baseSource) { - throw new Error(`Legacy base map file is missing: ${baseFilePath}`); + throw new Error(`Legacy base map file is missing: ${LEGACY_BASE_FILE}`); } - const mapInitCity = + const initCitySource = (mapSource ? extractPhpArray(mapSource, 'protected static $initCity') : null) ?? extractPhpArray(baseSource, 'protected static $initCity'); - if (!mapInitCity) { + if (!initCitySource) { throw new Error(`Legacy map data not found for ${mapName}.`); } - const parsed = JSON.parse(normalizePhpArray(mapInitCity)) as unknown; + const parsed = JSON.parse(normalizePhpArray(initCitySource)); const rows = parseLegacyCityRows(parsed); + const baseRegionMap = parseRegionMap(baseSource) ?? DEFAULT_REGION_MAP; + const regionMap = mapSource + ? parseRegionMap(mapSource) ?? baseRegionMap + : baseRegionMap; + return { rows, regionMap }; +}; + +const buildMapDefinition = (mapName, rows, regionMap) => { const nameToId = new Map(rows.map((row) => [row.name, row.id])); return { id: mapName, name: mapName, - cities: rows.map((row) => buildCityDefinition(row, nameToId)), + cities: rows.map((row) => buildCityDefinition(row, nameToId, regionMap)), defaults: { trust: BUILD_INIT_COMMON.trust, trade: BUILD_INIT_COMMON.trade, @@ -425,3 +395,26 @@ export const loadLegacyMapDefinition = async ( }, }; }; + +const ensureOutputRoot = async () => { + await fs.mkdir(OUTPUT_ROOT, { recursive: true }); +}; + +const writeMapDefinition = async (mapName, definition) => { + const filePath = path.resolve(OUTPUT_ROOT, `map_${mapName}.json`); + const payload = `${JSON.stringify(definition, null, 4)}\n`; + await fs.writeFile(filePath, payload, 'utf8'); +}; + +const main = async () => { + await ensureOutputRoot(); + + for (const mapName of MAP_NAMES) { + const { rows, regionMap } = await loadLegacyMapRows(mapName); + const definition = buildMapDefinition(mapName, rows, regionMap); + await writeMapDefinition(mapName, definition); + console.log(`Generated map_${mapName}.json (${rows.length} cities)`); + } +}; + +await main();