mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-06-21 06:20:44 +00:00
Move map metadata into info.json and generate map TypeScript from it (#4227)
**Add approved & assigned issue number here:** N/A — maintainer refactor. ## Description: Makes each map's `info.json` the single source of truth for map metadata — adding a map is now a folder with `image.png` + `info.json`, a `gen-maps` run, and an en.json display name. **info.json / manifest.json carry full map metadata.** Every `map-generator/assets/maps/<map>/info.json` declares `id` (the `GameMapType` enum key), `name` (the enum value — wire format, unchanged for all 94 maps), `translation_key`, `categories`, and `multiplayer_frequency` (the public-playlist weight that used to be the `FREQUENCY` record in MapPlaylist.ts). The generator validates everything and mirrors it into `resources/maps/<map>/manifest.json`. 23 stale info.json `name` values were normalized to the canonical enum value; enum values are byte-identical, so replays and stored game configs are unaffected. **The generator emits the TypeScript and discovers maps itself.** New `map-generator/codegen.go` generates `src/core/game/Maps.gen.ts` (`GameMapType`, `GameMapName`, `mapCategories`, `mapTranslationKeys`, `multiplayerFrequency` — now a full `Record<GameMapName, number>`, killing the old `Partial`) on every run; `Game.ts` re-exports it. The hardcoded map registry in `main.go` is gone — maps are auto-discovered from the `assets/maps` / `assets/test_maps` directories. MapConsistency tests fail with a "run `npm run gen-maps`" message if info.json, manifest.json, and Maps.gen.ts drift. The tracked `map-generator/map-generator` binary is rebuilt to match. **New categories: continents + world/cosmic/tournament/other, multi-category support.** `continental`/`regional`/`fantasy`/`arcade` are replaced by `featured`, `world`, `europe`, `asia`, `north_america`, `africa`, `south_america`, `oceania`, `antarctica`, `cosmic`, `tournament`, and `other`. Maps can list multiple categories, so straddlers (Black Sea, Bosphorus, Caucasus, Between Two Seas, Bering Sea/Strait, Mena, Strait of Gibraltar, Hawaii, Arctic) appear under both regions. Featured is itself a category (same 7 maps as before). MapPlaylist keeps its arcade exclusion via an explicit set. **Map picker UI.** Two tabs: **Featured** (default — featured maps plus a Favorites section when maps are starred) and **All** (one prominent collapsible bar per category with a map count, collapsed by default). The selected map is prepended to the featured grid when it lives elsewhere. `getMapName()` resolves through the generated `mapTranslationKeys`, which also fixes tourney maps never resolving a valid translation key. ## Please complete the following: - [ ] I have added screenshots for all UI updates (maintainer change — picker described above) - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory ## Please put your Discord username so you can be contacted if a bug or regression is found: evanpelle 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,113 @@
|
|||||||
|
---
|
||||||
|
name: run-openfront
|
||||||
|
description: Build, run, and drive OpenFront locally. Use when asked to run the game, start the dev server, take a screenshot of the UI, verify a client change in the real app, or interact with the running game (lobby, modals, map picker).
|
||||||
|
---
|
||||||
|
|
||||||
|
OpenFront is a browser game (Lit + Pixi.js client, Node game server).
|
||||||
|
Run the dev server with `npm run dev` (serves on **http://localhost:9000**,
|
||||||
|
not Vite's default 5173), then drive it with headless Chromium via
|
||||||
|
`.claude/skills/run-openfront/driver.mjs`. All paths are relative to the
|
||||||
|
repo root.
|
||||||
|
|
||||||
|
## Prerequisites (one-time per machine, no sudo)
|
||||||
|
|
||||||
|
The host (Ubuntu 26.04, headless) has no browser, and Playwright doesn't
|
||||||
|
support 26.04 yet. `setup.sh` works around both: it installs Playwright
|
||||||
|
(`--no-save`), downloads the ubuntu24.04 chromium-headless-shell via
|
||||||
|
`PLAYWRIGHT_HOST_PLATFORM_OVERRIDE`, extracts the missing system libraries
|
||||||
|
from `.deb` packages into `~/.cache/openfront-run/` (no root needed), and
|
||||||
|
builds a local fontconfig (the host has no `/etc/fonts`; Skia FATALs
|
||||||
|
without one).
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bash .claude/skills/run-openfront/setup.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Deps were installed with `npm run inst` (`npm ci --ignore-scripts`) — do
|
||||||
|
not use `npm install`.
|
||||||
|
|
||||||
|
## Run the dev server
|
||||||
|
|
||||||
|
```bash
|
||||||
|
(npm run dev > /tmp/dev.log 2>&1 &)
|
||||||
|
timeout 60 bash -c 'until curl -sf http://localhost:9000 >/dev/null 2>&1; do sleep 1; done'
|
||||||
|
```
|
||||||
|
|
||||||
|
Stop it with `pkill -f "tsx src/server/Server.ts"; pkill -f vite`.
|
||||||
|
`ECONNREFUSED "Error polling lobby"` lines in `/tmp/dev.log` are normal —
|
||||||
|
the closed-source API isn't running in dev.
|
||||||
|
|
||||||
|
## Drive it (agent path)
|
||||||
|
|
||||||
|
Smoke flow — home page, open the single-player modal, dump the map-picker
|
||||||
|
state, screenshot:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
node .claude/skills/run-openfront/driver.mjs
|
||||||
|
# screenshots: /tmp/openfront-run/home.png, /tmp/openfront-run/solo-modal.png
|
||||||
|
```
|
||||||
|
|
||||||
|
For ad-hoc flows, write a script **inside the repo** (so `playwright`
|
||||||
|
resolves) importing the driver's helpers:
|
||||||
|
|
||||||
|
```js
|
||||||
|
import {
|
||||||
|
launch,
|
||||||
|
gotoHome,
|
||||||
|
openSoloModal,
|
||||||
|
} from "./.claude/skills/run-openfront/driver.mjs";
|
||||||
|
const { browser, page } = await launch(); // env/libs/fonts handled here
|
||||||
|
await gotoHome(page);
|
||||||
|
await openSoloModal(page);
|
||||||
|
// Lit components use light DOM — query and read properties directly:
|
||||||
|
const s = await page.evaluate(
|
||||||
|
() => document.querySelector("map-picker")?.selectedMap,
|
||||||
|
);
|
||||||
|
await browser.close();
|
||||||
|
```
|
||||||
|
|
||||||
|
## Run (human path)
|
||||||
|
|
||||||
|
`npm run dev`, open http://localhost:9000 in a browser. Useless headless.
|
||||||
|
|
||||||
|
## Test
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm test # full suite (Vitest)
|
||||||
|
npx vitest tests/MapConsistency.test.ts --run # single file
|
||||||
|
```
|
||||||
|
|
||||||
|
## Gotchas
|
||||||
|
|
||||||
|
- **Vite serves on port 9000**, not 5173 (configured in vite.config.ts).
|
||||||
|
- **Playwright on Ubuntu 26.04**: `npx playwright install chromium` fails
|
||||||
|
with "does not support chromium on ubuntu26.04-x64". Fix:
|
||||||
|
`PLAYWRIGHT_HOST_PLATFORM_OVERRIDE=ubuntu24.04-x64` (setup.sh does this).
|
||||||
|
- **Browser dies at launch / mid-load**: missing host libs
|
||||||
|
(`libnspr4.so`, `libatk-1.0.so.0`, …) then a Skia FATAL
|
||||||
|
(`SkFontMgr_FontConfigInterface.cpp: Not implemented`) from the absent
|
||||||
|
fontconfig. `launch()` in driver.mjs injects `LD_LIBRARY_PATH` and
|
||||||
|
`FONTCONFIG_FILE` pointing at `~/.cache/openfront-run/`; diagnose new
|
||||||
|
missing libs with `DEBUG=pw:browser` and
|
||||||
|
`ldd .../chrome-headless-shell | grep "not found"`.
|
||||||
|
- **The single-player button is labeled "SOLO!"**, and the DOM has more
|
||||||
|
than one (responsive layouts) — use `button:visible` with
|
||||||
|
`hasText: /solo/i`.
|
||||||
|
- **Lit + Vite HMR**: custom elements can't be re-registered, so an
|
||||||
|
already-open tab keeps old component code after an edit. Hard-reload
|
||||||
|
(or re-`goto`) before judging behavior.
|
||||||
|
- **`PAGEERROR: ... reading 'inSpawnPhase'`** on the home page is
|
||||||
|
pre-existing background noise, not your breakage.
|
||||||
|
- Wait ~3s after `load` before interacting — Lit components render
|
||||||
|
client-side (driver's `gotoHome` does this).
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
- `Cannot find package 'playwright'` — your script is outside the repo;
|
||||||
|
module resolution starts at the script's path, not cwd. Move it inside
|
||||||
|
the repo (anywhere under the root works).
|
||||||
|
- `Target page, context or browser has been closed` immediately —
|
||||||
|
re-run `bash .claude/skills/run-openfront/setup.sh` (the
|
||||||
|
`~/.cache/openfront-run` lib cache is missing or was cleared).
|
||||||
|
- `EADDRINUSE` on relaunch — a previous dev server is still up:
|
||||||
|
`pkill -f "tsx src/server/Server.ts"; pkill -f vite`.
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
// Headless-Chromium driver for OpenFront. Run from the repo root:
|
||||||
|
// node .claude/skills/run-openfront/driver.mjs # smoke flow
|
||||||
|
// or import { launch, gotoHome, openSoloModal } from it in an ad-hoc
|
||||||
|
// script placed inside the repo (so `playwright` resolves from
|
||||||
|
// node_modules). Requires setup.sh to have been run once on this machine.
|
||||||
|
import fs from "fs";
|
||||||
|
import os from "os";
|
||||||
|
import path from "path";
|
||||||
|
import { chromium } from "playwright";
|
||||||
|
|
||||||
|
const CACHE =
|
||||||
|
process.env.OPENFRONT_RUN_CACHE ??
|
||||||
|
path.join(os.homedir(), ".cache", "openfront-run");
|
||||||
|
export const BASE_URL = process.env.OPENFRONT_URL ?? "http://localhost:9000";
|
||||||
|
|
||||||
|
// Launch chromium with the locally-extracted system libraries and fontconfig
|
||||||
|
// (see setup.sh). Without them the headless shell dies on libnspr4.so, and
|
||||||
|
// later Skia FATALs on the missing fontconfig.
|
||||||
|
export async function launch() {
|
||||||
|
const env = { ...process.env };
|
||||||
|
const libs = path.join(CACHE, "extracted", "usr", "lib", "x86_64-linux-gnu");
|
||||||
|
if (fs.existsSync(libs)) {
|
||||||
|
env.LD_LIBRARY_PATH = env.LD_LIBRARY_PATH
|
||||||
|
? `${libs}:${env.LD_LIBRARY_PATH}`
|
||||||
|
: libs;
|
||||||
|
env.FONTCONFIG_FILE = path.join(CACHE, "fonts.conf");
|
||||||
|
}
|
||||||
|
const browser = await chromium.launch({
|
||||||
|
args: ["--no-sandbox", "--disable-gpu"],
|
||||||
|
env,
|
||||||
|
});
|
||||||
|
const context = await browser.newContext({
|
||||||
|
viewport: { width: 1400, height: 1000 },
|
||||||
|
});
|
||||||
|
const page = await context.newPage();
|
||||||
|
page.on("pageerror", (e) =>
|
||||||
|
console.log("PAGEERROR:", e.message.split("\n")[0]),
|
||||||
|
);
|
||||||
|
page.on("crash", () => console.log("PAGE CRASHED"));
|
||||||
|
return { browser, page };
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function gotoHome(page) {
|
||||||
|
await page.goto(BASE_URL, { waitUntil: "load", timeout: 60000 });
|
||||||
|
// Lit components render client-side after load.
|
||||||
|
await page.waitForTimeout(3000);
|
||||||
|
}
|
||||||
|
|
||||||
|
// The single-player button is labeled "SOLO!". There are multiple SOLO
|
||||||
|
// buttons in the DOM (responsive layouts) — only one is visible.
|
||||||
|
export async function openSoloModal(page) {
|
||||||
|
await page.locator("button:visible", { hasText: /solo/i }).first().click();
|
||||||
|
await page.waitForTimeout(1500);
|
||||||
|
}
|
||||||
|
|
||||||
|
const isMain =
|
||||||
|
process.argv[1] && import.meta.url === `file://${process.argv[1]}`;
|
||||||
|
if (isMain) {
|
||||||
|
const outDir = "/tmp/openfront-run";
|
||||||
|
fs.mkdirSync(outDir, { recursive: true });
|
||||||
|
const { browser, page } = await launch();
|
||||||
|
await gotoHome(page);
|
||||||
|
await page.screenshot({ path: `${outDir}/home.png` });
|
||||||
|
await openSoloModal(page);
|
||||||
|
await page.screenshot({ path: `${outDir}/solo-modal.png` });
|
||||||
|
// Reach into a Lit component for ground-truth state (light DOM, no shadow
|
||||||
|
// root — properties are directly on the element).
|
||||||
|
const picker = await page.evaluate(() => {
|
||||||
|
const p = document.querySelector("map-picker");
|
||||||
|
return { selectedMap: p?.selectedMap, activeTab: p?.activeTab };
|
||||||
|
});
|
||||||
|
console.log("map-picker state:", JSON.stringify(picker));
|
||||||
|
console.log(`screenshots: ${outDir}/home.png ${outDir}/solo-modal.png`);
|
||||||
|
await browser.close();
|
||||||
|
}
|
||||||
Executable
+43
@@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# One-time per-machine setup for headless-Chromium driving of OpenFront.
|
||||||
|
# No sudo needed: Playwright's chromium is downloaded with a platform
|
||||||
|
# override, and its missing system libraries are extracted locally from
|
||||||
|
# .deb packages.
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
CACHE="${OPENFRONT_RUN_CACHE:-$HOME/.cache/openfront-run}"
|
||||||
|
mkdir -p "$CACHE/debs" "$CACHE/fonts" "$CACHE/fc-cache"
|
||||||
|
|
||||||
|
# 1. Playwright (not a project dependency; --no-save keeps package.json clean)
|
||||||
|
npm ls playwright > /dev/null 2>&1 || npm install --no-save playwright
|
||||||
|
|
||||||
|
# 2. Chromium headless shell. Playwright refuses to download on Ubuntu 26.04
|
||||||
|
# ("does not support chromium on ubuntu26.04-x64"); the ubuntu24.04 build
|
||||||
|
# is ABI-compatible, so override the host platform.
|
||||||
|
PLAYWRIGHT_HOST_PLATFORM_OVERRIDE=ubuntu24.04-x64 npx playwright install chromium
|
||||||
|
|
||||||
|
# 3. Shared libraries the headless shell needs that a minimal host lacks
|
||||||
|
# (found via: ldd chrome-headless-shell | grep "not found").
|
||||||
|
(
|
||||||
|
cd "$CACHE/debs"
|
||||||
|
apt-get download \
|
||||||
|
libnspr4 libnss3 libasound2t64 libatk1.0-0t64 libatk-bridge2.0-0t64 \
|
||||||
|
libatspi2.0-0t64 libgbm1 libx11-6 libxcb1 libxcomposite1 libxdamage1 \
|
||||||
|
libxext6 libxfixes3 libxrandr2 libxau6 libxdmcp6 libxi6 libxrender1 \
|
||||||
|
libxres1 fonts-dejavu-core
|
||||||
|
for f in *.deb; do dpkg -x "$f" "$CACHE/extracted"; done
|
||||||
|
)
|
||||||
|
|
||||||
|
# 4. Fonts. This host has no /etc/fonts at all, and Skia FATALs without a
|
||||||
|
# fontconfig (SkFontMgr_FontConfigInterface.cpp "Not implemented").
|
||||||
|
cp "$CACHE/extracted/usr/share/fonts/truetype/dejavu/"*.ttf "$CACHE/fonts/"
|
||||||
|
cat > "$CACHE/fonts.conf" << CONF
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<dir>$CACHE/fonts</dir>
|
||||||
|
<cachedir>$CACHE/fc-cache</cachedir>
|
||||||
|
</fontconfig>
|
||||||
|
CONF
|
||||||
|
|
||||||
|
echo "setup complete: $CACHE"
|
||||||
+2
-1
@@ -10,7 +10,8 @@ resources/.DS_Store
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
.clinic/
|
.clinic/
|
||||||
NOTES.md
|
NOTES.md
|
||||||
.claude/
|
.claude/*
|
||||||
|
!.claude/skills/
|
||||||
.idea/
|
.idea/
|
||||||
# this is autogenerated by script
|
# this is autogenerated by script
|
||||||
src/assets/
|
src/assets/
|
||||||
|
|||||||
+7
-1
@@ -13,7 +13,13 @@ const gitignorePath = path.resolve(__dirname, ".gitignore");
|
|||||||
/** @type {import('eslint').Linter.Config[]} */
|
/** @type {import('eslint').Linter.Config[]} */
|
||||||
export default [
|
export default [
|
||||||
includeIgnoreFile(gitignorePath),
|
includeIgnoreFile(gitignorePath),
|
||||||
{ ignores: ["src/server/gatekeeper/**", "tests/pathfinding/playground/**"] },
|
{
|
||||||
|
ignores: [
|
||||||
|
"src/server/gatekeeper/**",
|
||||||
|
"tests/pathfinding/playground/**",
|
||||||
|
".claude/**",
|
||||||
|
],
|
||||||
|
},
|
||||||
{ files: ["**/*.{js,mjs,cjs,ts}"] },
|
{ files: ["**/*.{js,mjs,cjs,ts}"] },
|
||||||
{ languageOptions: { globals: { ...globals.browser, ...globals.node } } },
|
{ languageOptions: { globals: { ...globals.browser, ...globals.node } } },
|
||||||
pluginJs.configs.recommended,
|
pluginJs.configs.recommended,
|
||||||
|
|||||||
+31
-12
@@ -17,11 +17,12 @@ the [Official Openfront Wiki](https://openfront.wiki/Map_Making)
|
|||||||
|
|
||||||
## Creating a new map
|
## Creating a new map
|
||||||
|
|
||||||
|
Maps are discovered automatically from the `assets/maps/` folders — `info.json` holds everything the game needs to know about a map.
|
||||||
|
|
||||||
1. Create a new folder in `assets/maps/<map_name>`
|
1. Create a new folder in `assets/maps/<map_name>`
|
||||||
2. Create `assets/maps/<map_name>/image.png`
|
2. Create `assets/maps/<map_name>/image.png`
|
||||||
3. Create `assets/maps/<map_name>/info.json` with name and countries
|
3. Create `assets/maps/<map_name>/info.json` (see below)
|
||||||
4. Add the map name in `main.go` The `<name>` in `{Name: "<name>"},` should match the `<map-name>` folder at `assets/maps/<map_name>`
|
4. Run the generator for your map: `go run . --maps=<map_name>`
|
||||||
5. Run the generator for your map: `go run . --maps=<map_name>`
|
|
||||||
|
|
||||||
By default, `go run .` will process all defined maps.
|
By default, `go run .` will process all defined maps.
|
||||||
|
|
||||||
@@ -33,12 +34,14 @@ the [Official Openfront Wiki](https://openfront.wiki/Map_Making)
|
|||||||
|
|
||||||
`go run . --maps=northamerica,world`
|
`go run . --maps=northamerica,world`
|
||||||
|
|
||||||
6. Find the output folder at `../resources/maps/<map_name>`
|
5. Find the output folder at `../resources/maps/<map_name>`
|
||||||
7. Go back to the root directory: `cd ..`
|
6. Go back to the root directory: `cd ..`
|
||||||
8. Run Prettier: `npm run format`
|
7. Run Prettier: `npm run format`
|
||||||
This rewrites ALL files in place. Git figures out which files are actually changed, don't worry.
|
This rewrites ALL files in place. Git figures out which files are actually changed, don't worry.
|
||||||
Alternatively, you can either run Prettier per file: `npx prettier --write resources/maps/<map_name>/<file_name>` or in VSCode install the Prettier extension and per file do Show and run Commands > Format Document.
|
Alternatively, you can either run Prettier per file: `npx prettier --write resources/maps/<map_name>/<file_name>` or in VSCode install the Prettier extension and per file do Show and run Commands > Format Document.
|
||||||
|
|
||||||
|
Alternatively, `npm run gen-maps` (from the root directory) runs the generator for all maps and formats the output in one step.
|
||||||
|
|
||||||
## Output Files
|
## Output Files
|
||||||
|
|
||||||
- `../resources/maps/<map_name>/manifest.json` - JSON metadata containing map dimensions and land tile counts for all scales.
|
- `../resources/maps/<map_name>/manifest.json` - JSON metadata containing map dimensions and land tile counts for all scales.
|
||||||
@@ -46,6 +49,7 @@ the [Official Openfront Wiki](https://openfront.wiki/Map_Making)
|
|||||||
- `../resources/maps/<map_name>/map4x.bin` - 1/4 scale (half dimensions) binary map data used for mini-maps.
|
- `../resources/maps/<map_name>/map4x.bin` - 1/4 scale (half dimensions) binary map data used for mini-maps.
|
||||||
- `../resources/maps/<map_name>/map16x.bin` - 1/16 scale (quarter dimensions) binary map data used for mini-maps.
|
- `../resources/maps/<map_name>/map16x.bin` - 1/16 scale (quarter dimensions) binary map data used for mini-maps.
|
||||||
- `../resources/maps/<map_name>/thumbnail.webp` - WebP image thumbnail of the map.
|
- `../resources/maps/<map_name>/thumbnail.webp` - WebP image thumbnail of the map.
|
||||||
|
- `../src/core/game/Maps.gen.ts` - Generated TypeScript (`GameMapType`, `mapCategories`, `mapTranslationKeys`, `multiplayerFrequency`) built from every map's info.json. Regenerated on every run, even with `--maps`.
|
||||||
|
|
||||||
## Command Line Flags
|
## Command Line Flags
|
||||||
|
|
||||||
@@ -96,7 +100,11 @@ Example:
|
|||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"name": "MySampleMap",
|
"id": "MySampleMap",
|
||||||
|
"name": "My Sample Map",
|
||||||
|
"translation_key": "map.mysamplemap",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [396, 364],
|
"coordinates": [396, 364],
|
||||||
@@ -109,7 +117,17 @@ Example:
|
|||||||
|
|
||||||
`coordinates` is x/y position of the nation spawn on the map. Origin is at top left, with x extending right and y extending down
|
`coordinates` is x/y position of the nation spawn on the map. Origin is at top left, with x extending right and y extending down
|
||||||
|
|
||||||
`name` is a `CamelCaseName` of your map. It is used to enable the map in-game.
|
`id` is the `CamelCaseName` of your map. It must match the `assets/maps/<map_name>` folder name (lowercased) and becomes the `GameMapType` enum key.
|
||||||
|
|
||||||
|
`name` is the map's canonical name — the `GameMapType` enum value. It must never change once the map ships (it is part of the wire format and stored in game records).
|
||||||
|
|
||||||
|
`translation_key` is the key of the map's display name in `../resources/lang/en.json` (`map.<map_name>`).
|
||||||
|
|
||||||
|
`categories` groups the map in the map picker. Each entry must be one of: `featured`, `world`, `europe`, `asia`, `north_america`, `africa`, `south_america`, `oceania`, `antarctica`, `cosmic`, `tournament`, `other`. Maps that straddle regions (e.g. Black Sea, Bering Strait) can list more than one. Add `featured` to show the map in the featured section of the map picker.
|
||||||
|
|
||||||
|
`multiplayer_frequency` is how many times the map appears in the public multiplayer playlist. Use 0 (or omit) to keep the map out of the regular rotation.
|
||||||
|
|
||||||
|
`featured_rank` (optional, featured maps only) is the map's position in the featured grid (1 = first). Featured maps without a rank sort after ranked ones, alphabetically.
|
||||||
|
|
||||||
`flag` is the code for a country
|
`flag` is the code for a country
|
||||||
|
|
||||||
@@ -130,11 +148,12 @@ The country will need to be added to `../src/client/data/countries.json`
|
|||||||
|
|
||||||
## To Enable In-Game
|
## To Enable In-Game
|
||||||
|
|
||||||
Using the `name` from your json:
|
`GameMapType`, `mapCategories`, `mapTranslationKeys`, and
|
||||||
|
`multiplayerFrequency` are generated from the info.json files into
|
||||||
|
`../src/core/game/Maps.gen.ts` when the map-generator runs — do not edit that
|
||||||
|
file by hand. The only step outside info.json is:
|
||||||
|
|
||||||
- Add to GameMapType and mapCategories in `../src/core/game/Game.ts`
|
- Add the map's display name to the `map` translation object in `../resources/lang/en.json` (using your `translation_key`)
|
||||||
- Add to the map playlist in `../src/server/MapPlaylist.ts`
|
|
||||||
- Add to the `map` translation object in `../resources/lang/en.json`
|
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Achiran",
|
||||||
"name": "Achiran",
|
"name": "Achiran",
|
||||||
|
"translation_key": "map.achiran",
|
||||||
|
"categories": ["other"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [785, 985],
|
"coordinates": [785, 985],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "aegean",
|
"id": "Aegean",
|
||||||
|
"name": "Aegean",
|
||||||
|
"translation_key": "map.aegean",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [786, 1860],
|
"coordinates": [786, 1860],
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Africa",
|
||||||
"name": "Africa",
|
"name": "Africa",
|
||||||
|
"translation_key": "map.africa",
|
||||||
|
"categories": ["featured", "africa"],
|
||||||
|
"multiplayer_frequency": 7,
|
||||||
|
"featured_rank": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1144, 1894],
|
"coordinates": [1144, 1894],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Alps",
|
||||||
"name": "Alps",
|
"name": "Alps",
|
||||||
|
"translation_key": "map.alps",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [740, 620],
|
"coordinates": [740, 620],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "AmazonRiver",
|
||||||
"name": "Amazon River",
|
"name": "Amazon River",
|
||||||
|
"translation_key": "map.amazonriver",
|
||||||
|
"categories": ["south_america"],
|
||||||
|
"multiplayer_frequency": 3,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [524, 60],
|
"coordinates": [524, 60],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "antarctica",
|
"id": "Antarctica",
|
||||||
|
"name": "Antarctica",
|
||||||
|
"translation_key": "map.antarctica",
|
||||||
|
"categories": ["antarctica"],
|
||||||
|
"multiplayer_frequency": 1,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1159, 1261],
|
"coordinates": [1159, 1261],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "Archipelago Sea",
|
"id": "ArchipelagoSea",
|
||||||
|
"name": "ArchipelagoSea",
|
||||||
|
"translation_key": "map.archipelagosea",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 3,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [145, 767],
|
"coordinates": [145, 767],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Arctic",
|
||||||
"name": "Arctic",
|
"name": "Arctic",
|
||||||
|
"translation_key": "map.arctic",
|
||||||
|
"categories": ["europe", "north_america"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [622, 1171],
|
"coordinates": [622, 1171],
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Asia",
|
||||||
"name": "Asia",
|
"name": "Asia",
|
||||||
|
"translation_key": "map.asia",
|
||||||
|
"categories": ["featured", "asia"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
|
"featured_rank": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [165, 422],
|
"coordinates": [165, 422],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Australia",
|
||||||
"name": "Australia",
|
"name": "Australia",
|
||||||
|
"translation_key": "map.australia",
|
||||||
|
"categories": ["oceania"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [460, 720],
|
"coordinates": [460, 720],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Baikal",
|
||||||
"name": "Baikal",
|
"name": "Baikal",
|
||||||
|
"translation_key": "map.baikal",
|
||||||
|
"categories": ["asia"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [695, 665],
|
"coordinates": [695, 665],
|
||||||
|
|||||||
@@ -1,10 +1,24 @@
|
|||||||
{
|
{
|
||||||
"name": "Baikal (Nuke Wars)",
|
"id": "BaikalNukeWars",
|
||||||
|
"name": "Baikal Nuke Wars",
|
||||||
|
"translation_key": "map.baikalnukewars",
|
||||||
|
"categories": ["other"],
|
||||||
|
"multiplayer_frequency": 0,
|
||||||
"nations": [],
|
"nations": [],
|
||||||
"teamGameSpawnAreas": {
|
"teamGameSpawnAreas": {
|
||||||
"2": [
|
"2": [
|
||||||
{ "x": 0, "y": 0, "width": 1330, "height": 1564 },
|
{
|
||||||
{ "x": 1430, "y": 0, "width": 1070, "height": 1564 }
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"width": 1330,
|
||||||
|
"height": 1564
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 1430,
|
||||||
|
"y": 0,
|
||||||
|
"width": 1070,
|
||||||
|
"height": 1564
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "BajaCalifornia",
|
||||||
"name": "Baja California",
|
"name": "Baja California",
|
||||||
|
"translation_key": "map.bajacalifornia",
|
||||||
|
"categories": ["north_america"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [513, 44],
|
"coordinates": [513, 44],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Balkans",
|
||||||
"name": "Balkans",
|
"name": "Balkans",
|
||||||
|
"translation_key": "map.balkans",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [122, 281],
|
"coordinates": [122, 281],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "BeringSea",
|
||||||
"name": "Bering Sea",
|
"name": "Bering Sea",
|
||||||
|
"translation_key": "map.beringsea",
|
||||||
|
"categories": ["asia", "north_america"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1043, 121],
|
"coordinates": [1043, 121],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "BeringStrait",
|
"id": "BeringStrait",
|
||||||
|
"name": "Bering Strait",
|
||||||
|
"translation_key": "map.beringstrait",
|
||||||
|
"categories": ["asia", "north_america"],
|
||||||
|
"multiplayer_frequency": 2,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1297, 287],
|
"coordinates": [1297, 287],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "BetweenTwoSeas",
|
"id": "BetweenTwoSeas",
|
||||||
|
"name": "Between Two Seas",
|
||||||
|
"translation_key": "map.betweentwoseas",
|
||||||
|
"categories": ["europe", "asia"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [40, 674],
|
"coordinates": [40, 674],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "BlackSea",
|
"id": "BlackSea",
|
||||||
|
"name": "Black Sea",
|
||||||
|
"translation_key": "map.blacksea",
|
||||||
|
"categories": ["europe", "asia"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [122, 647],
|
"coordinates": [122, 647],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "BosphorusStraits",
|
||||||
"name": "Bosphorus Straits",
|
"name": "Bosphorus Straits",
|
||||||
|
"translation_key": "map.bosphorusstraits",
|
||||||
|
"categories": ["europe", "asia"],
|
||||||
|
"multiplayer_frequency": 3,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [564, 245],
|
"coordinates": [564, 245],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Britannia",
|
||||||
"name": "Britannia",
|
"name": "Britannia",
|
||||||
|
"translation_key": "map.britannia",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1539, 1915],
|
"coordinates": [1539, 1915],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "BritanniaClassic",
|
||||||
"name": "Britannia Classic",
|
"name": "Britannia Classic",
|
||||||
|
"translation_key": "map.britanniaclassic",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 0,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [960, 1258],
|
"coordinates": [960, 1258],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Caribbean",
|
||||||
"name": "Caribbean",
|
"name": "Caribbean",
|
||||||
|
"translation_key": "map.caribbean",
|
||||||
|
"categories": ["north_america"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [538, 200],
|
"coordinates": [538, 200],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Caucasus",
|
||||||
"name": "Caucasus",
|
"name": "Caucasus",
|
||||||
|
"translation_key": "map.caucasus",
|
||||||
|
"categories": ["europe", "asia"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [624, 581],
|
"coordinates": [624, 581],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "ChoppingBlock",
|
||||||
"name": "Chopping Block",
|
"name": "Chopping Block",
|
||||||
|
"translation_key": "map.choppingblock",
|
||||||
|
"categories": ["other"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [230, 230],
|
"coordinates": [230, 230],
|
||||||
@@ -307,14 +311,44 @@
|
|||||||
],
|
],
|
||||||
"teamGameSpawnAreas": {
|
"teamGameSpawnAreas": {
|
||||||
"2": [
|
"2": [
|
||||||
{ "x": 0, "y": 0, "width": 800, "height": 1610 },
|
{
|
||||||
{ "x": 809, "y": 0, "width": 800, "height": 1610 }
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"width": 800,
|
||||||
|
"height": 1610
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 809,
|
||||||
|
"y": 0,
|
||||||
|
"width": 800,
|
||||||
|
"height": 1610
|
||||||
|
}
|
||||||
],
|
],
|
||||||
"4": [
|
"4": [
|
||||||
{ "x": 0, "y": 0, "width": 800, "height": 800 },
|
{
|
||||||
{ "x": 809, "y": 0, "width": 800, "height": 800 },
|
"x": 0,
|
||||||
{ "x": 0, "y": 809, "width": 800, "height": 800 },
|
"y": 0,
|
||||||
{ "x": 809, "y": 809, "width": 800, "height": 800 }
|
"width": 800,
|
||||||
|
"height": 800
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 809,
|
||||||
|
"y": 0,
|
||||||
|
"width": 800,
|
||||||
|
"height": 800
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": 809,
|
||||||
|
"width": 800,
|
||||||
|
"height": 800
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 809,
|
||||||
|
"y": 809,
|
||||||
|
"width": 800,
|
||||||
|
"height": 800
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Conakry",
|
||||||
"name": "Conakry",
|
"name": "Conakry",
|
||||||
|
"translation_key": "map.conakry",
|
||||||
|
"categories": ["africa"],
|
||||||
|
"multiplayer_frequency": 3,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [510, 420],
|
"coordinates": [510, 420],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "DanishStraits",
|
||||||
"name": "Danish Straits",
|
"name": "Danish Straits",
|
||||||
|
"translation_key": "map.danishstraits",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [37, 227],
|
"coordinates": [37, 227],
|
||||||
@@ -94,7 +98,6 @@
|
|||||||
{
|
{
|
||||||
"coordinates": [219, 1205],
|
"coordinates": [219, 1205],
|
||||||
"name": "Hanover",
|
"name": "Hanover",
|
||||||
|
|
||||||
"flag": "prussia"
|
"flag": "prussia"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "DeglaciatedAntarctica",
|
||||||
"name": "Deglaciated Antarctica",
|
"name": "Deglaciated Antarctica",
|
||||||
|
"translation_key": "map.deglaciatedantarctica",
|
||||||
|
"categories": ["antarctica"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1545, 785],
|
"coordinates": [1545, 785],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Didier",
|
||||||
"name": "Didier",
|
"name": "Didier",
|
||||||
|
"translation_key": "map.didier",
|
||||||
|
"categories": ["other"],
|
||||||
|
"multiplayer_frequency": 1,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [478, 163],
|
"coordinates": [478, 163],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "Didier (France)",
|
"id": "DidierFrance",
|
||||||
|
"name": "Didier France",
|
||||||
|
"translation_key": "map.didierfrance",
|
||||||
|
"categories": ["other"],
|
||||||
|
"multiplayer_frequency": 1,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [120, 680],
|
"coordinates": [120, 680],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Dyslexdria",
|
||||||
"name": "Dyslexdria",
|
"name": "Dyslexdria",
|
||||||
|
"translation_key": "map.dyslexdria",
|
||||||
|
"categories": ["world"],
|
||||||
|
"multiplayer_frequency": 8,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [2380, 400],
|
"coordinates": [2380, 400],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "EastAsia",
|
||||||
"name": "East Asia",
|
"name": "East Asia",
|
||||||
|
"translation_key": "map.eastasia",
|
||||||
|
"categories": ["asia"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1150, 660],
|
"coordinates": [1150, 660],
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Europe",
|
||||||
"name": "Europe",
|
"name": "Europe",
|
||||||
|
"translation_key": "map.europe",
|
||||||
|
"categories": ["featured", "europe"],
|
||||||
|
"multiplayer_frequency": 7,
|
||||||
|
"featured_rank": 2,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [634, 781],
|
"coordinates": [634, 781],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "Europe",
|
"id": "EuropeClassic",
|
||||||
|
"name": "Europe Classic",
|
||||||
|
"translation_key": "map.europeclassic",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 0,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [171, 171],
|
"coordinates": [171, 171],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "FalklandIslands",
|
||||||
"name": "Falkland Islands",
|
"name": "Falkland Islands",
|
||||||
|
"translation_key": "map.falklandislands",
|
||||||
|
"categories": ["south_america"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [484, 987],
|
"coordinates": [484, 987],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "FaroeIslands",
|
||||||
"name": "Faroe Islands",
|
"name": "Faroe Islands",
|
||||||
|
"translation_key": "map.faroeislands",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [920, 1780],
|
"coordinates": [920, 1780],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "FourIslands",
|
||||||
"name": "Four Islands",
|
"name": "Four Islands",
|
||||||
|
"translation_key": "map.fourislands",
|
||||||
|
"categories": ["other"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [403, 1296],
|
"coordinates": [403, 1296],
|
||||||
@@ -24,14 +28,44 @@
|
|||||||
],
|
],
|
||||||
"teamGameSpawnAreas": {
|
"teamGameSpawnAreas": {
|
||||||
"2": [
|
"2": [
|
||||||
{ "x": 0, "y": 0, "width": 750, "height": 1500 },
|
{
|
||||||
{ "x": 750, "y": 0, "width": 750, "height": 1500 }
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"width": 750,
|
||||||
|
"height": 1500
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 750,
|
||||||
|
"y": 0,
|
||||||
|
"width": 750,
|
||||||
|
"height": 1500
|
||||||
|
}
|
||||||
],
|
],
|
||||||
"4": [
|
"4": [
|
||||||
{ "x": 0, "y": 0, "width": 750, "height": 750 },
|
{
|
||||||
{ "x": 750, "y": 0, "width": 750, "height": 750 },
|
"x": 0,
|
||||||
{ "x": 0, "y": 750, "width": 750, "height": 750 },
|
"y": 0,
|
||||||
{ "x": 750, "y": 750, "width": 750, "height": 750 }
|
"width": 750,
|
||||||
|
"height": 750
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 750,
|
||||||
|
"y": 0,
|
||||||
|
"width": 750,
|
||||||
|
"height": 750
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": 750,
|
||||||
|
"width": 750,
|
||||||
|
"height": 750
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 750,
|
||||||
|
"y": 750,
|
||||||
|
"width": 750,
|
||||||
|
"height": 750
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "GatewayToTheAtlantic",
|
"id": "GatewayToTheAtlantic",
|
||||||
|
"name": "Gateway to the Atlantic",
|
||||||
|
"translation_key": "map.gatewaytotheatlantic",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [2161, 420],
|
"coordinates": [2161, 420],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "Giant_World_Map",
|
"id": "GiantWorldMap",
|
||||||
|
"name": "Giant World Map",
|
||||||
|
"translation_key": "map.giantworldmap",
|
||||||
|
"categories": ["world"],
|
||||||
|
"multiplayer_frequency": 0,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [2309, 535],
|
"coordinates": [2309, 535],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "GreatLakes",
|
||||||
"name": "Great Lakes",
|
"name": "Great Lakes",
|
||||||
|
"translation_key": "map.greatlakes",
|
||||||
|
"categories": ["north_america"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [38, 326],
|
"coordinates": [38, 326],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "GulfOfStLawrence",
|
||||||
"name": "Gulf of St. Lawrence",
|
"name": "Gulf of St. Lawrence",
|
||||||
|
"translation_key": "map.gulfofstlawrence",
|
||||||
|
"categories": ["north_america"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [88, 364],
|
"coordinates": [88, 364],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Halkidiki",
|
||||||
"name": "Halkidiki",
|
"name": "Halkidiki",
|
||||||
|
"translation_key": "map.halkidiki",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1798, 984],
|
"coordinates": [1798, 984],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Hawaii",
|
||||||
"name": "Hawaii",
|
"name": "Hawaii",
|
||||||
|
"translation_key": "map.hawaii",
|
||||||
|
"categories": ["north_america", "oceania"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [283, 281],
|
"coordinates": [283, 281],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "HongKong",
|
||||||
"name": "Hong Kong",
|
"name": "Hong Kong",
|
||||||
|
"translation_key": "map.hongkong",
|
||||||
|
"categories": ["asia"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1592, 1147],
|
"coordinates": [1592, 1147],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Iceland",
|
||||||
"name": "Iceland",
|
"name": "Iceland",
|
||||||
|
"translation_key": "map.iceland",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [455, 1115],
|
"coordinates": [455, 1115],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "IndianSubcontinent",
|
||||||
"name": "Indian Subcontinent",
|
"name": "Indian Subcontinent",
|
||||||
|
"translation_key": "map.indiansubcontinent",
|
||||||
|
"categories": ["asia"],
|
||||||
|
"multiplayer_frequency": 8,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1601, 840],
|
"coordinates": [1601, 840],
|
||||||
@@ -69,163 +73,136 @@
|
|||||||
{
|
{
|
||||||
"coordinates": [1051, 1586],
|
"coordinates": [1051, 1586],
|
||||||
"name": "Tamil Nadu",
|
"name": "Tamil Nadu",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [783, 1322],
|
"coordinates": [783, 1322],
|
||||||
"name": "Karnataka",
|
"name": "Karnataka",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1057, 1256],
|
"coordinates": [1057, 1256],
|
||||||
"name": "Andhra Pradesh",
|
"name": "Andhra Pradesh",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1007, 1065],
|
"coordinates": [1007, 1065],
|
||||||
"name": "Telangana",
|
"name": "Telangana",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [787, 998],
|
"coordinates": [787, 998],
|
||||||
"name": "Maharashtra",
|
"name": "Maharashtra",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [706, 1141],
|
"coordinates": [706, 1141],
|
||||||
"name": "Goa",
|
"name": "Goa",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1391, 906],
|
"coordinates": [1391, 906],
|
||||||
"name": "Odisha",
|
"name": "Odisha",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [565, 892],
|
"coordinates": [565, 892],
|
||||||
"name": "Gujarat",
|
"name": "Gujarat",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [961, 717],
|
"coordinates": [961, 717],
|
||||||
"name": "Madhya Pradesh",
|
"name": "Madhya Pradesh",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1120, 895],
|
"coordinates": [1120, 895],
|
||||||
"name": "Chhattisgarh",
|
"name": "Chhattisgarh",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1508, 825],
|
"coordinates": [1508, 825],
|
||||||
"name": "West Bengal",
|
"name": "West Bengal",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1317, 717],
|
"coordinates": [1317, 717],
|
||||||
"name": "Jharkhand",
|
"name": "Jharkhand",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1379, 608],
|
"coordinates": [1379, 608],
|
||||||
"name": "Bihar",
|
"name": "Bihar",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1519, 506],
|
"coordinates": [1519, 506],
|
||||||
"name": "Sikkim",
|
"name": "Sikkim",
|
||||||
|
|
||||||
"flag": "Sikkim"
|
"flag": "Sikkim"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1738, 668],
|
"coordinates": [1738, 668],
|
||||||
"name": "Assam",
|
"name": "Assam",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1194, 535],
|
"coordinates": [1194, 535],
|
||||||
"name": "Uttar Pradesh",
|
"name": "Uttar Pradesh",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [735, 611],
|
"coordinates": [735, 611],
|
||||||
"name": "Rajasthan",
|
"name": "Rajasthan",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1624, 507],
|
"coordinates": [1624, 507],
|
||||||
"name": "Meghalaya",
|
"name": "Meghalaya",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1658, 759],
|
"coordinates": [1658, 759],
|
||||||
"name": "Tripura",
|
"name": "Tripura",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1790, 834],
|
"coordinates": [1790, 834],
|
||||||
"name": "Mizoram",
|
"name": "Mizoram",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1878, 762],
|
"coordinates": [1878, 762],
|
||||||
"name": "Manipur",
|
"name": "Manipur",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1952, 637],
|
"coordinates": [1952, 637],
|
||||||
"name": "Nagaland",
|
"name": "Nagaland",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1957, 480],
|
"coordinates": [1957, 480],
|
||||||
"name": "Arunachal Pradesh",
|
"name": "Arunachal Pradesh",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [884, 439],
|
"coordinates": [884, 439],
|
||||||
"name": "Haryana",
|
"name": "Haryana",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [840, 305],
|
"coordinates": [840, 305],
|
||||||
"name": "Punjab",
|
"name": "Punjab",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1082, 384],
|
"coordinates": [1082, 384],
|
||||||
"name": "Uttarakhand",
|
"name": "Uttarakhand",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [948, 236],
|
"coordinates": [948, 236],
|
||||||
"name": "Himachal Pradesh",
|
"name": "Himachal Pradesh",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -236,67 +213,56 @@
|
|||||||
{
|
{
|
||||||
"coordinates": [51, 580],
|
"coordinates": [51, 580],
|
||||||
"name": "Iran",
|
"name": "Iran",
|
||||||
|
|
||||||
"flag": "ir"
|
"flag": "ir"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [81, 24],
|
"coordinates": [81, 24],
|
||||||
"name": "Tajikistan",
|
"name": "Tajikistan",
|
||||||
|
|
||||||
"flag": "tj"
|
"flag": "tj"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [978, 550],
|
"coordinates": [978, 550],
|
||||||
"name": "New Delhi",
|
"name": "New Delhi",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [468, 692],
|
"coordinates": [468, 692],
|
||||||
"name": "Sindh",
|
"name": "Sindh",
|
||||||
|
|
||||||
"flag": "pk"
|
"flag": "pk"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [309, 529],
|
"coordinates": [309, 529],
|
||||||
"name": "Balochistan",
|
"name": "Balochistan",
|
||||||
|
|
||||||
"flag": "pk"
|
"flag": "pk"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [637, 464],
|
"coordinates": [637, 464],
|
||||||
"name": "Punjab",
|
"name": "Punjab",
|
||||||
|
|
||||||
"flag": "pk"
|
"flag": "pk"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [514, 366],
|
"coordinates": [514, 366],
|
||||||
"name": "Fata",
|
"name": "Fata",
|
||||||
|
|
||||||
"flag": "pk"
|
"flag": "pk"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [616, 224],
|
"coordinates": [616, 224],
|
||||||
"name": "Khyber Pakhtunkhwa",
|
"name": "Khyber Pakhtunkhwa",
|
||||||
|
|
||||||
"flag": "pk"
|
"flag": "pk"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [740, 161],
|
"coordinates": [740, 161],
|
||||||
"name": "Azad Kashmir",
|
"name": "Azad Kashmir",
|
||||||
|
|
||||||
"flag": "Azad Kashmir"
|
"flag": "Azad Kashmir"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [628, 12],
|
"coordinates": [628, 12],
|
||||||
"name": "Gilgit-Baltistan",
|
"name": "Gilgit-Baltistan",
|
||||||
|
|
||||||
"flag": "pk"
|
"flag": "pk"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"coordinates": [1065, 1454],
|
"coordinates": [1065, 1454],
|
||||||
"name": "Puducherry",
|
"name": "Puducherry",
|
||||||
|
|
||||||
"flag": "in"
|
"flag": "in"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Italia",
|
||||||
"name": "Italia",
|
"name": "Italia",
|
||||||
|
"translation_key": "map.italia",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1038, 993],
|
"coordinates": [1038, 993],
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "japan",
|
"id": "Japan",
|
||||||
|
"name": "Japan",
|
||||||
|
"translation_key": "map.japan",
|
||||||
|
"categories": ["featured", "asia"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
|
"featured_rank": 7,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1895, 288],
|
"coordinates": [1895, 288],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "JuanDeFucaStrait",
|
||||||
"name": "Juan De Fuca Strait",
|
"name": "Juan De Fuca Strait",
|
||||||
|
"translation_key": "map.juandefucastrait",
|
||||||
|
"categories": ["north_america"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1812, 445],
|
"coordinates": [1812, 445],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Korea",
|
||||||
"name": "Korea",
|
"name": "Korea",
|
||||||
|
"translation_key": "map.korea",
|
||||||
|
"categories": ["asia"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [849, 1523],
|
"coordinates": [849, 1523],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Labyrinth",
|
||||||
"name": "Labyrinth",
|
"name": "Labyrinth",
|
||||||
|
"translation_key": "map.labyrinth",
|
||||||
|
"categories": ["other"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [50, 50],
|
"coordinates": [50, 50],
|
||||||
@@ -361,43 +365,178 @@
|
|||||||
],
|
],
|
||||||
"teamGameSpawnAreas": {
|
"teamGameSpawnAreas": {
|
||||||
"2": [
|
"2": [
|
||||||
{ "x": 0, "y": 0, "width": 680, "height": 1355 },
|
{
|
||||||
{ "x": 680, "y": 0, "width": 680, "height": 1355 }
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"width": 680,
|
||||||
|
"height": 1355
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 680,
|
||||||
|
"y": 0,
|
||||||
|
"width": 680,
|
||||||
|
"height": 1355
|
||||||
|
}
|
||||||
],
|
],
|
||||||
"3": [
|
"3": [
|
||||||
{ "x": 1020, "y": 680, "width": 340, "height": 680 },
|
{
|
||||||
{ "x": 0, "y": 680, "width": 340, "height": 680 },
|
"x": 1020,
|
||||||
{ "x": 340, "y": 0, "width": 680, "height": 680 }
|
"y": 680,
|
||||||
|
"width": 340,
|
||||||
|
"height": 680
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": 680,
|
||||||
|
"width": 340,
|
||||||
|
"height": 680
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 340,
|
||||||
|
"y": 0,
|
||||||
|
"width": 680,
|
||||||
|
"height": 680
|
||||||
|
}
|
||||||
],
|
],
|
||||||
"4": [
|
"4": [
|
||||||
{ "x": 0, "y": 0, "width": 676, "height": 676 },
|
{
|
||||||
{ "x": 680, "y": 0, "width": 676, "height": 676 },
|
"x": 0,
|
||||||
{ "x": 0, "y": 680, "width": 676, "height": 676 },
|
"y": 0,
|
||||||
{ "x": 680, "y": 680, "width": 676, "height": 676 }
|
"width": 676,
|
||||||
|
"height": 676
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 680,
|
||||||
|
"y": 0,
|
||||||
|
"width": 676,
|
||||||
|
"height": 676
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": 680,
|
||||||
|
"width": 676,
|
||||||
|
"height": 676
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 680,
|
||||||
|
"y": 680,
|
||||||
|
"width": 676,
|
||||||
|
"height": 676
|
||||||
|
}
|
||||||
],
|
],
|
||||||
"5": [
|
"5": [
|
||||||
{ "x": 1088, "y": 453, "width": 272, "height": 453 },
|
{
|
||||||
{ "x": 0, "y": 816, "width": 453, "height": 272 },
|
"x": 1088,
|
||||||
{ "x": 580, "y": 0, "width": 453, "height": 272 },
|
"y": 453,
|
||||||
{ "x": 580, "y": 1088, "width": 453, "height": 272 },
|
"width": 272,
|
||||||
{ "x": 0, "y": 272, "width": 453, "height": 272 }
|
"height": 453
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": 816,
|
||||||
|
"width": 453,
|
||||||
|
"height": 272
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 580,
|
||||||
|
"y": 0,
|
||||||
|
"width": 453,
|
||||||
|
"height": 272
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 580,
|
||||||
|
"y": 1088,
|
||||||
|
"width": 453,
|
||||||
|
"height": 272
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": 272,
|
||||||
|
"width": 453,
|
||||||
|
"height": 272
|
||||||
|
}
|
||||||
],
|
],
|
||||||
"6": [
|
"6": [
|
||||||
{ "x": 226, "y": 0, "width": 453, "height": 680 },
|
{
|
||||||
{ "x": 679, "y": 680, "width": 453, "height": 680 },
|
"x": 226,
|
||||||
{ "x": 226, "y": 680, "width": 453, "height": 680 },
|
"y": 0,
|
||||||
{ "x": 679, "y": 0, "width": 453, "height": 680 },
|
"width": 453,
|
||||||
{ "x": 0, "y": 0, "width": 226, "height": 1360 },
|
"height": 680
|
||||||
{ "x": 1132, "y": 0, "width": 226, "height": 1360 }
|
},
|
||||||
|
{
|
||||||
|
"x": 679,
|
||||||
|
"y": 680,
|
||||||
|
"width": 453,
|
||||||
|
"height": 680
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 226,
|
||||||
|
"y": 680,
|
||||||
|
"width": 453,
|
||||||
|
"height": 680
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 679,
|
||||||
|
"y": 0,
|
||||||
|
"width": 453,
|
||||||
|
"height": 680
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"width": 226,
|
||||||
|
"height": 1360
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 1132,
|
||||||
|
"y": 0,
|
||||||
|
"width": 226,
|
||||||
|
"height": 1360
|
||||||
|
}
|
||||||
],
|
],
|
||||||
"7": [
|
"7": [
|
||||||
{ "x": 510, "y": 1088, "width": 340, "height": 272 },
|
{
|
||||||
{ "x": 272, "y": 0, "width": 272, "height": 340 },
|
"x": 510,
|
||||||
{ "x": 816, "y": 0, "width": 272, "height": 340 },
|
"y": 1088,
|
||||||
{ "x": 0, "y": 340, "width": 272, "height": 340 },
|
"width": 340,
|
||||||
{ "x": 50, "y": 920, "width": 272, "height": 340 },
|
"height": 272
|
||||||
{ "x": 1088, "y": 340, "width": 272, "height": 340 },
|
},
|
||||||
{ "x": 1038, "y": 920, "width": 272, "height": 340 }
|
{
|
||||||
|
"x": 272,
|
||||||
|
"y": 0,
|
||||||
|
"width": 272,
|
||||||
|
"height": 340
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 816,
|
||||||
|
"y": 0,
|
||||||
|
"width": 272,
|
||||||
|
"height": 340
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": 340,
|
||||||
|
"width": 272,
|
||||||
|
"height": 340
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 50,
|
||||||
|
"y": 920,
|
||||||
|
"width": 272,
|
||||||
|
"height": 340
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 1088,
|
||||||
|
"y": 340,
|
||||||
|
"width": 272,
|
||||||
|
"height": 340
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 1038,
|
||||||
|
"y": 920,
|
||||||
|
"width": 272,
|
||||||
|
"height": 340
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Lemnos",
|
||||||
"name": "Lemnos",
|
"name": "Lemnos",
|
||||||
|
"translation_key": "map.lemnos",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 3,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [550, 317],
|
"coordinates": [550, 317],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Lisbon",
|
||||||
"name": "Lisbon",
|
"name": "Lisbon",
|
||||||
|
"translation_key": "map.lisbon",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [750, 630],
|
"coordinates": [750, 630],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "LosAngeles",
|
||||||
"name": "Los Angeles",
|
"name": "Los Angeles",
|
||||||
|
"translation_key": "map.losangeles",
|
||||||
|
"categories": ["north_america"],
|
||||||
|
"multiplayer_frequency": 8,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [546, 16],
|
"coordinates": [546, 16],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Luna",
|
||||||
"name": "Luna",
|
"name": "Luna",
|
||||||
|
"translation_key": "map.luna",
|
||||||
|
"categories": ["cosmic"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [265, 662],
|
"coordinates": [265, 662],
|
||||||
@@ -46,7 +50,6 @@
|
|||||||
"flag": "us",
|
"flag": "us",
|
||||||
"name": "Artemis II"
|
"name": "Artemis II"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"coordinates": [515, 170],
|
"coordinates": [515, 170],
|
||||||
"flag": "Russian SSR",
|
"flag": "Russian SSR",
|
||||||
@@ -57,7 +60,6 @@
|
|||||||
"flag": "Russian SSR",
|
"flag": "Russian SSR",
|
||||||
"name": "Luna 21"
|
"name": "Luna 21"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"coordinates": [1030, 790],
|
"coordinates": [1030, 790],
|
||||||
"flag": "Russian SSR",
|
"flag": "Russian SSR",
|
||||||
@@ -83,7 +85,6 @@
|
|||||||
"flag": "Russian SSR",
|
"flag": "Russian SSR",
|
||||||
"name": "Luna 1"
|
"name": "Luna 1"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"coordinates": [672, 2323],
|
"coordinates": [672, 2323],
|
||||||
"flag": "cn",
|
"flag": "cn",
|
||||||
@@ -104,13 +105,11 @@
|
|||||||
"flag": "cn",
|
"flag": "cn",
|
||||||
"name": "Chang'e 6"
|
"name": "Chang'e 6"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"coordinates": [830, 745],
|
"coordinates": [830, 745],
|
||||||
"flag": "jp",
|
"flag": "jp",
|
||||||
"name": "S.L.I.M."
|
"name": "S.L.I.M."
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"coordinates": [400, 3360],
|
"coordinates": [400, 3360],
|
||||||
"flag": "in",
|
"flag": "in",
|
||||||
@@ -121,7 +120,6 @@
|
|||||||
"flag": "in",
|
"flag": "in",
|
||||||
"name": "Chandrayaan 1"
|
"name": "Chandrayaan 1"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"coordinates": [755, 3035],
|
"coordinates": [755, 3035],
|
||||||
"flag": "",
|
"flag": "",
|
||||||
@@ -135,8 +133,18 @@
|
|||||||
],
|
],
|
||||||
"teamGameSpawnAreas": {
|
"teamGameSpawnAreas": {
|
||||||
"2": [
|
"2": [
|
||||||
{ "x": 0, "y": 0, "width": 1308, "height": 1754 },
|
{
|
||||||
{ "x": 0, "y": 1754, "width": 1308, "height": 1754 }
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"width": 1308,
|
||||||
|
"height": 1754
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": 1754,
|
||||||
|
"width": 1308,
|
||||||
|
"height": 1754
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Manicouagan",
|
||||||
"name": "Manicouagan",
|
"name": "Manicouagan",
|
||||||
|
"translation_key": "map.manicouagan",
|
||||||
|
"categories": ["north_america"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [784, 1034],
|
"coordinates": [784, 1034],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "MareNostrum",
|
||||||
"name": "Mare Nostrum",
|
"name": "Mare Nostrum",
|
||||||
|
"translation_key": "map.marenostrum",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [141, 574],
|
"coordinates": [141, 574],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Mars",
|
||||||
"name": "Mars",
|
"name": "Mars",
|
||||||
|
"translation_key": "map.mars",
|
||||||
|
"categories": ["cosmic"],
|
||||||
|
"multiplayer_frequency": 3,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [650, 415],
|
"coordinates": [650, 415],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "MENA",
|
"id": "Mena",
|
||||||
|
"name": "Mena",
|
||||||
|
"translation_key": "map.mena",
|
||||||
|
"categories": ["asia", "africa"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [257, 82],
|
"coordinates": [257, 82],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "MiddleEast",
|
||||||
"name": "Middle East",
|
"name": "Middle East",
|
||||||
|
"translation_key": "map.middleeast",
|
||||||
|
"categories": ["asia"],
|
||||||
|
"multiplayer_frequency": 8,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [300, 65],
|
"coordinates": [300, 65],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "Milky Way",
|
"id": "MilkyWay",
|
||||||
|
"name": "MilkyWay",
|
||||||
|
"translation_key": "map.milkyway",
|
||||||
|
"categories": ["cosmic"],
|
||||||
|
"multiplayer_frequency": 8,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [775, 757],
|
"coordinates": [775, 757],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "MississippiRiver",
|
||||||
"name": "Mississippi River",
|
"name": "Mississippi River",
|
||||||
|
"translation_key": "map.mississippiriver",
|
||||||
|
"categories": ["north_america"],
|
||||||
|
"multiplayer_frequency": 3,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [390, 269],
|
"coordinates": [390, 269],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Montreal",
|
||||||
"name": "Montreal",
|
"name": "Montreal",
|
||||||
|
"translation_key": "map.montreal",
|
||||||
|
"categories": ["north_america"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [800, 430],
|
"coordinates": [800, 430],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "NewYorkCity",
|
||||||
"name": "New York City",
|
"name": "New York City",
|
||||||
|
"translation_key": "map.newyorkcity",
|
||||||
|
"categories": ["north_america"],
|
||||||
|
"multiplayer_frequency": 3,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [127, 1323],
|
"coordinates": [127, 1323],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "NileDelta",
|
||||||
"name": "Nile Delta",
|
"name": "Nile Delta",
|
||||||
|
"translation_key": "map.niledelta",
|
||||||
|
"categories": ["africa"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [305, 414],
|
"coordinates": [305, 414],
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "NorthAmerica",
|
"id": "NorthAmerica",
|
||||||
|
"name": "North America",
|
||||||
|
"translation_key": "map.northamerica",
|
||||||
|
"categories": ["featured", "north_america"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
|
"featured_rank": 3,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1625, 1040],
|
"coordinates": [1625, 1040],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "NorthwestPassage",
|
||||||
"name": "Northwest Passage",
|
"name": "Northwest Passage",
|
||||||
|
"translation_key": "map.northwestpassage",
|
||||||
|
"categories": ["north_america"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1203, 592],
|
"coordinates": [1203, 592],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Oceania",
|
||||||
"name": "Oceania",
|
"name": "Oceania",
|
||||||
|
"translation_key": "map.oceania",
|
||||||
|
"categories": ["oceania"],
|
||||||
|
"multiplayer_frequency": 0,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [515, 690],
|
"coordinates": [515, 690],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "onion",
|
"id": "Onion",
|
||||||
|
"name": "Onion",
|
||||||
|
"translation_key": "map.onion",
|
||||||
|
"categories": ["other"],
|
||||||
|
"multiplayer_frequency": 2,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [51, 188],
|
"coordinates": [51, 188],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Pangaea",
|
||||||
"name": "Pangaea",
|
"name": "Pangaea",
|
||||||
|
"translation_key": "map.pangaea",
|
||||||
|
"categories": ["other"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [389, 800],
|
"coordinates": [389, 800],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Passage",
|
||||||
"name": "Passage",
|
"name": "Passage",
|
||||||
|
"translation_key": "map.passage",
|
||||||
|
"categories": ["other"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [256, 80],
|
"coordinates": [256, 80],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Pluto",
|
||||||
"name": "Pluto",
|
"name": "Pluto",
|
||||||
|
"translation_key": "map.pluto",
|
||||||
|
"categories": ["cosmic"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [396, 364],
|
"coordinates": [396, 364],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "SanFrancisco",
|
"id": "SanFrancisco",
|
||||||
|
"name": "San Francisco",
|
||||||
|
"translation_key": "map.sanfrancisco",
|
||||||
|
"categories": ["north_america"],
|
||||||
|
"multiplayer_frequency": 3,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [996, 990],
|
"coordinates": [996, 990],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Sierpinski",
|
||||||
"name": "Sierpinski",
|
"name": "Sierpinski",
|
||||||
|
"translation_key": "map.sierpinski",
|
||||||
|
"categories": ["other"],
|
||||||
|
"multiplayer_frequency": 10,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [216, 701],
|
"coordinates": [216, 701],
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"id": "SouthAmerica",
|
||||||
"name": "South America",
|
"name": "South America",
|
||||||
|
"translation_key": "map.southamerica",
|
||||||
|
"categories": ["featured", "south_america"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
|
"featured_rank": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [438, 58],
|
"coordinates": [438, 58],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "Southeast Asia",
|
"id": "SoutheastAsia",
|
||||||
|
"name": "SoutheastAsia",
|
||||||
|
"translation_key": "map.southeastasia",
|
||||||
|
"categories": ["asia"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1319, 76],
|
"coordinates": [1319, 76],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "StraitOfGibraltar",
|
||||||
"name": "Strait of Gibraltar",
|
"name": "Strait of Gibraltar",
|
||||||
|
"translation_key": "map.straitofgibraltar",
|
||||||
|
"categories": ["europe", "africa"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1941, 1031],
|
"coordinates": [1941, 1031],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "StraitOfHormuz",
|
||||||
"name": "Strait of Hormuz",
|
"name": "Strait of Hormuz",
|
||||||
|
"translation_key": "map.straitofhormuz",
|
||||||
|
"categories": ["asia"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [837, 356],
|
"coordinates": [837, 356],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "StraitOfMalacca",
|
||||||
"name": "Strait Of Malacca",
|
"name": "Strait Of Malacca",
|
||||||
|
"translation_key": "map.straitofmalacca",
|
||||||
|
"categories": ["asia"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1268, 730],
|
"coordinates": [1268, 730],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Surrounded",
|
||||||
"name": "Surrounded",
|
"name": "Surrounded",
|
||||||
|
"translation_key": "map.surrounded",
|
||||||
|
"categories": ["other"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1043, 910],
|
"coordinates": [1043, 910],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Svalmel",
|
||||||
"name": "Svalmel",
|
"name": "Svalmel",
|
||||||
|
"translation_key": "map.svalmel",
|
||||||
|
"categories": ["other"],
|
||||||
|
"multiplayer_frequency": 8,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [900, 850],
|
"coordinates": [900, 850],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "TaiwanStrait",
|
||||||
"name": "Taiwan Strait",
|
"name": "Taiwan Strait",
|
||||||
|
"translation_key": "map.taiwanstrait",
|
||||||
|
"categories": ["asia"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [694, 26],
|
"coordinates": [694, 26],
|
||||||
|
|||||||
@@ -1,18 +1,74 @@
|
|||||||
{
|
{
|
||||||
"name": "TheBox",
|
"id": "TheBox",
|
||||||
|
"name": "The Box",
|
||||||
|
"translation_key": "map.thebox",
|
||||||
|
"categories": ["other"],
|
||||||
|
"multiplayer_frequency": 3,
|
||||||
"nations": [
|
"nations": [
|
||||||
{ "coordinates": [10, 10], "flag": "", "name": "King of the Corner" },
|
{
|
||||||
{ "coordinates": [1024, 300], "flag": "", "name": "Suspicious Ally" },
|
"coordinates": [10, 10],
|
||||||
{ "coordinates": [1650, 400], "flag": "", "name": "Evan The Dev" },
|
"flag": "",
|
||||||
{ "coordinates": [1024, 1024], "flag": "", "name": "Middle Defender" },
|
"name": "King of the Corner"
|
||||||
{ "coordinates": [350, 1024], "flag": "", "name": "Punch Merchant" },
|
},
|
||||||
{ "coordinates": [1700, 1024], "flag": "", "name": "Nuke Thrower" },
|
{
|
||||||
{ "coordinates": [400, 1650], "flag": "", "name": "Fullsender" },
|
"coordinates": [1024, 300],
|
||||||
{ "coordinates": [1024, 1750], "flag": "", "name": "Factory Builder" },
|
"flag": "",
|
||||||
{ "coordinates": [1650, 1650], "flag": "", "name": "Front Manager" },
|
"name": "Suspicious Ally"
|
||||||
{ "coordinates": [700, 700], "flag": "", "name": "Box Fighter" },
|
},
|
||||||
{ "coordinates": [1350, 700], "flag": "", "name": "Cage Liberator" },
|
{
|
||||||
{ "coordinates": [700, 1350], "flag": "", "name": "Train Trader" },
|
"coordinates": [1650, 400],
|
||||||
{ "coordinates": [1350, 1350], "flag": "", "name": "Non-peaceful Bot" }
|
"flag": "",
|
||||||
|
"name": "Evan The Dev"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"coordinates": [1024, 1024],
|
||||||
|
"flag": "",
|
||||||
|
"name": "Middle Defender"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"coordinates": [350, 1024],
|
||||||
|
"flag": "",
|
||||||
|
"name": "Punch Merchant"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"coordinates": [1700, 1024],
|
||||||
|
"flag": "",
|
||||||
|
"name": "Nuke Thrower"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"coordinates": [400, 1650],
|
||||||
|
"flag": "",
|
||||||
|
"name": "Fullsender"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"coordinates": [1024, 1750],
|
||||||
|
"flag": "",
|
||||||
|
"name": "Factory Builder"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"coordinates": [1650, 1650],
|
||||||
|
"flag": "",
|
||||||
|
"name": "Front Manager"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"coordinates": [700, 700],
|
||||||
|
"flag": "",
|
||||||
|
"name": "Box Fighter"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"coordinates": [1350, 700],
|
||||||
|
"flag": "",
|
||||||
|
"name": "Cage Liberator"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"coordinates": [700, 1350],
|
||||||
|
"flag": "",
|
||||||
|
"name": "Train Trader"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"coordinates": [1350, 1350],
|
||||||
|
"flag": "",
|
||||||
|
"name": "Non-peaceful Bot"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Titan",
|
||||||
"name": "Titan",
|
"name": "Titan",
|
||||||
|
"translation_key": "map.titan",
|
||||||
|
"categories": ["cosmic"],
|
||||||
|
"multiplayer_frequency": 3,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"name": "Stone-Keeping Purple Aliens",
|
"name": "Stone-Keeping Purple Aliens",
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "Tourney1",
|
"id": "Tourney1",
|
||||||
|
"name": "Tourney 2 Teams",
|
||||||
|
"translation_key": "map.tourney1",
|
||||||
|
"categories": ["tournament"],
|
||||||
|
"multiplayer_frequency": 0,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [177, 510],
|
"coordinates": [177, 510],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "Tourney2",
|
"id": "Tourney2",
|
||||||
|
"name": "Tourney 3 Teams",
|
||||||
|
"translation_key": "map.tourney2",
|
||||||
|
"categories": ["tournament"],
|
||||||
|
"multiplayer_frequency": 0,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [339, 987],
|
"coordinates": [339, 987],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "Tourney3",
|
"id": "Tourney3",
|
||||||
|
"name": "Tourney 4 Teams",
|
||||||
|
"translation_key": "map.tourney3",
|
||||||
|
"categories": ["tournament"],
|
||||||
|
"multiplayer_frequency": 0,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [437, 410],
|
"coordinates": [437, 410],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "Tourney4",
|
"id": "Tourney4",
|
||||||
|
"name": "Tourney 8 Teams",
|
||||||
|
"translation_key": "map.tourney4",
|
||||||
|
"categories": ["tournament"],
|
||||||
|
"multiplayer_frequency": 0,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [568, 309],
|
"coordinates": [568, 309],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "TradersDream",
|
||||||
"name": "Traders Dream",
|
"name": "Traders Dream",
|
||||||
|
"translation_key": "map.tradersdream",
|
||||||
|
"categories": ["other"],
|
||||||
|
"multiplayer_frequency": 4,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1010, 120],
|
"coordinates": [1010, 120],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "TwoLakes",
|
||||||
"name": "Two Lakes",
|
"name": "Two Lakes",
|
||||||
|
"translation_key": "map.twolakes",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1025, 750],
|
"coordinates": [1025, 750],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Venice",
|
||||||
"name": "Venice",
|
"name": "Venice",
|
||||||
|
"translation_key": "map.venice",
|
||||||
|
"categories": ["europe"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [760, 593],
|
"coordinates": [760, 593],
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
"id": "World",
|
||||||
"name": "World",
|
"name": "World",
|
||||||
|
"translation_key": "map.world",
|
||||||
|
"categories": ["featured", "world"],
|
||||||
|
"multiplayer_frequency": 20,
|
||||||
|
"featured_rank": 1,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [484, 284],
|
"coordinates": [484, 284],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "WorldInverted",
|
||||||
"name": "World Inverted",
|
"name": "World Inverted",
|
||||||
|
"translation_key": "map.worldinverted",
|
||||||
|
"categories": ["world"],
|
||||||
|
"multiplayer_frequency": 8,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"name": "Titan Submersible",
|
"name": "Titan Submersible",
|
||||||
@@ -49,7 +53,6 @@
|
|||||||
"name": "Atlantis",
|
"name": "Atlantis",
|
||||||
"flag": ""
|
"flag": ""
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"coordinates": [2420, 230],
|
"coordinates": [2420, 230],
|
||||||
"name": "RMS Lusitania",
|
"name": "RMS Lusitania",
|
||||||
@@ -250,7 +253,6 @@
|
|||||||
"name": "ARA San Juan",
|
"name": "ARA San Juan",
|
||||||
"flag": "ar"
|
"flag": "ar"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"coordinates": [1500, 610],
|
"coordinates": [1500, 610],
|
||||||
"name": "Pacific",
|
"name": "Pacific",
|
||||||
@@ -326,7 +328,6 @@
|
|||||||
"name": "Weddell",
|
"name": "Weddell",
|
||||||
"flag": ""
|
"flag": ""
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"coordinates": [120, 1050],
|
"coordinates": [120, 1050],
|
||||||
"name": "Weddell Plain",
|
"name": "Weddell Plain",
|
||||||
@@ -382,7 +383,6 @@
|
|||||||
"name": "Nazca Ridge",
|
"name": "Nazca Ridge",
|
||||||
"flag": ""
|
"flag": ""
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"coordinates": [1450, 333],
|
"coordinates": [1450, 333],
|
||||||
"name": "Mendocino",
|
"name": "Mendocino",
|
||||||
@@ -464,7 +464,6 @@
|
|||||||
"flag": ""
|
"flag": ""
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
"additionalNations": [
|
"additionalNations": [
|
||||||
{
|
{
|
||||||
"name": "TCG Dumlupınar",
|
"name": "TCG Dumlupınar",
|
||||||
@@ -777,7 +776,6 @@
|
|||||||
"name": "SS Monroe",
|
"name": "SS Monroe",
|
||||||
"flag": "us"
|
"flag": "us"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"name": "Wave Goodbye",
|
"name": "Wave Goodbye",
|
||||||
"flag": ""
|
"flag": ""
|
||||||
@@ -898,7 +896,6 @@
|
|||||||
"name": "Red November",
|
"name": "Red November",
|
||||||
"flag": "ussr"
|
"flag": "ussr"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"coordinates": [2326, 303],
|
"coordinates": [2326, 303],
|
||||||
"name": "Ocean Ranger",
|
"name": "Ocean Ranger",
|
||||||
@@ -1019,7 +1016,6 @@
|
|||||||
"name": "SS Kiche Maru",
|
"name": "SS Kiche Maru",
|
||||||
"flag": "jp"
|
"flag": "jp"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"coordinates": [2030, 480],
|
"coordinates": [2030, 480],
|
||||||
"name": "Gulf of Merica",
|
"name": "Gulf of Merica",
|
||||||
@@ -1295,7 +1291,6 @@
|
|||||||
"name": "South-Sandwich",
|
"name": "South-Sandwich",
|
||||||
"flag": ""
|
"flag": ""
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"coordinates": [1255, 920],
|
"coordinates": [1255, 920],
|
||||||
"name": "Challenger Bay",
|
"name": "Challenger Bay",
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "YellowSea",
|
||||||
"name": "Yellow Sea",
|
"name": "Yellow Sea",
|
||||||
|
"translation_key": "map.yellowsea",
|
||||||
|
"categories": ["asia"],
|
||||||
|
"multiplayer_frequency": 5,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1350, 575],
|
"coordinates": [1350, 575],
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"id": "Yenisei",
|
||||||
"name": "Yenisei",
|
"name": "Yenisei",
|
||||||
|
"translation_key": "map.yenisei",
|
||||||
|
"categories": ["asia"],
|
||||||
|
"multiplayer_frequency": 6,
|
||||||
"nations": [
|
"nations": [
|
||||||
{
|
{
|
||||||
"coordinates": [1050, 535],
|
"coordinates": [1050, 535],
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user