From a2b9d63695592902ff241aaffd6ecba7ecbeb34f Mon Sep 17 00:00:00 2001 From: FreddyMSchubert Date: Mon, 18 Aug 2025 22:18:39 +0200 Subject: [PATCH 01/14] rework project to use vite --- .gitignore | 2 +- src/public/index.html => index.html | 4 +- package-lock.json | 1271 +++++++++++------ package.json | 16 +- .../JetBrainsMonoNerdFontMono-Regular.ttf | Bin .../assets/object-svgs/bomb.svg | 0 .../assets/object-svgs/cores/1.svg | 0 .../assets/object-svgs/cores/2.svg | 0 .../assets/object-svgs/money.svg | 0 .../assets/object-svgs/resource.svg | 0 .../assets/object-svgs/units/bomberman/1.svg | 0 .../assets/object-svgs/units/bomberman/2.svg | 0 .../assets/object-svgs/units/builder/1.svg | 0 .../assets/object-svgs/units/builder/2.svg | 0 .../assets/object-svgs/units/carrier/1.svg | 0 .../assets/object-svgs/units/carrier/2.svg | 0 .../assets/object-svgs/units/miner/1.svg | 0 .../assets/object-svgs/units/miner/2.svg | 0 .../assets/object-svgs/units/tank/1.svg | 0 .../assets/object-svgs/units/tank/2.svg | 0 .../assets/object-svgs/units/warrior/1.svg | 0 .../assets/object-svgs/units/warrior/2.svg | 0 .../assets/object-svgs/wall.svg | 0 .../assets/ui-svgs/core-logo.svg | 0 .../assets/ui-svgs/fullscreen-close.svg | 0 .../assets/ui-svgs/fullscreen-open.svg | 0 .../assets/ui-svgs/github-logo.svg | 0 .../assets/ui-svgs/pause.svg | 0 .../public => public}/assets/ui-svgs/play.svg | 0 .../assets/ui-svgs/skip_end.svg | 0 .../assets/ui-svgs/skip_start.svg | 0 .../assets/ui-svgs/speed_down.svg | 0 .../assets/ui-svgs/speed_up.svg | 0 .../assets/ui-svgs/tick_next.svg | 0 .../assets/ui-svgs/tick_previous.svg | 0 {src/public => public}/css/styles.css | 0 {src/public => public}/favicon.ico | Bin .../public => public}/misc/replay_latest.json | 0 src/ts/renderer/objectRenderer.ts | 6 +- src/ts/renderer/renderer.ts | 10 +- src/ts/replay_loader/object.ts | 5 +- src/ts/replay_loader/replayLoader.ts | 10 +- src/ts/time_manager/timeManager.ts | 4 +- tsconfig.json | 14 - vite.config.ts | 10 + 45 files changed, 858 insertions(+), 494 deletions(-) rename src/public/index.html => index.html (95%) rename {src/public => public}/assets/fonts/JetBrainsMonoNerdFontMono-Regular.ttf (100%) rename {src/public => public}/assets/object-svgs/bomb.svg (100%) rename {src/public => public}/assets/object-svgs/cores/1.svg (100%) rename {src/public => public}/assets/object-svgs/cores/2.svg (100%) rename {src/public => public}/assets/object-svgs/money.svg (100%) rename {src/public => public}/assets/object-svgs/resource.svg (100%) rename {src/public => public}/assets/object-svgs/units/bomberman/1.svg (100%) rename {src/public => public}/assets/object-svgs/units/bomberman/2.svg (100%) rename {src/public => public}/assets/object-svgs/units/builder/1.svg (100%) rename {src/public => public}/assets/object-svgs/units/builder/2.svg (100%) rename {src/public => public}/assets/object-svgs/units/carrier/1.svg (100%) rename {src/public => public}/assets/object-svgs/units/carrier/2.svg (100%) rename {src/public => public}/assets/object-svgs/units/miner/1.svg (100%) rename {src/public => public}/assets/object-svgs/units/miner/2.svg (100%) rename {src/public => public}/assets/object-svgs/units/tank/1.svg (100%) rename {src/public => public}/assets/object-svgs/units/tank/2.svg (100%) rename {src/public => public}/assets/object-svgs/units/warrior/1.svg (100%) rename {src/public => public}/assets/object-svgs/units/warrior/2.svg (100%) rename {src/public => public}/assets/object-svgs/wall.svg (100%) rename {src/public => public}/assets/ui-svgs/core-logo.svg (100%) rename {src/public => public}/assets/ui-svgs/fullscreen-close.svg (100%) rename {src/public => public}/assets/ui-svgs/fullscreen-open.svg (100%) rename {src/public => public}/assets/ui-svgs/github-logo.svg (100%) rename {src/public => public}/assets/ui-svgs/pause.svg (100%) rename {src/public => public}/assets/ui-svgs/play.svg (100%) rename {src/public => public}/assets/ui-svgs/skip_end.svg (100%) rename {src/public => public}/assets/ui-svgs/skip_start.svg (100%) rename {src/public => public}/assets/ui-svgs/speed_down.svg (100%) rename {src/public => public}/assets/ui-svgs/speed_up.svg (100%) rename {src/public => public}/assets/ui-svgs/tick_next.svg (100%) rename {src/public => public}/assets/ui-svgs/tick_previous.svg (100%) rename {src/public => public}/css/styles.css (100%) rename {src/public => public}/favicon.ico (100%) rename {src/public => public}/misc/replay_latest.json (100%) delete mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore index 68a3b5a..b680e00 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,5 @@ node_modules/ .DS_Store .env dist/ -src/public/js/* +public/js/* nohup.out \ No newline at end of file diff --git a/src/public/index.html b/index.html similarity index 95% rename from src/public/index.html rename to index.html index 32c5fd9..fe53f6c 100644 --- a/src/public/index.html +++ b/index.html @@ -8,8 +8,8 @@ - - + +
diff --git a/package-lock.json b/package-lock.json index bff249b..239a2ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,13 +5,10 @@ "packages": { "": { "name": "core-debug-visualizer", - "dependencies": { - "typescript": "^5.8.3" - }, "devDependencies": { "@biomejs/biome": "2.1.2", - "http-server": "^14.1.1", - "prettier": "^3.6.2" + "prettier": "^3.6.2", + "vite": "^7.1.2" } }, "node_modules/@biomejs/biome": { @@ -177,660 +174,1034 @@ "node": ">=14.21.3" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", + "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=18" } }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true, - "license": "MIT" - }, - "node_modules/basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "node_modules/@esbuild/android-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz", + "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "5.1.2" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 0.8" + "node": ">=18" } }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "node_modules/@esbuild/android-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz", + "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 0.4" + "node": ">=18" } }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "node_modules/@esbuild/android-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz", + "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=18" } }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz", + "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=18" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz", + "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=7.0.0" + "node": ">=18" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/corser": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", - "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz", + "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">= 0.4.0" + "node": ">=18" } }, - "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz", + "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=18" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "node_modules/@esbuild/linux-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz", + "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.4" + "node": ">=18" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz", + "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.4" + "node": ">=18" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz", + "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.4" + "node": ">=18" } }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz", + "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", + "cpu": [ + "loong64" + ], "dev": true, "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.4" + "node": ">=18" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true, - "license": "MIT" - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz", + "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", + "cpu": [ + "mips64el" ], + "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "node": ">=18" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz", + "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz", + "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", + "cpu": [ + "riscv64" + ], "dev": true, "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=18" } }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz", + "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", + "cpu": [ + "s390x" + ], "dev": true, "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.4" + "node": ">=18" } }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "node_modules/@esbuild/linux-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz", + "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=18" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz", + "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz", + "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=18" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz", + "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">= 0.4" + "node": ">=18" } }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz", + "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "bin": { - "he": "bin/he" + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz", + "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, + "optional": true, + "os": [ + "openharmony" + ], "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz", + "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=8.0.0" + "node": ">=18" } }, - "node_modules/http-server": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", - "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz", + "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "basic-auth": "^2.0.1", - "chalk": "^4.1.2", - "corser": "^2.0.1", - "he": "^1.2.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy": "^1.18.1", - "mime": "^1.6.0", - "minimist": "^1.2.6", - "opener": "^1.5.1", - "portfinder": "^1.0.28", - "secure-compare": "3.0.1", - "union": "~0.5.0", - "url-join": "^4.0.1" - }, - "bin": { - "http-server": "bin/http-server" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz", + "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", + "cpu": [ + "ia32" + ], "dev": true, "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=0.10.0" + "node": ">=18" } }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "node_modules/@esbuild/win32-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz", + "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 0.4" + "node": ">=18" } }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.3.tgz", + "integrity": "sha512-UmTdvXnLlqQNOCJnyksjPs1G4GqXNGW1LrzCe8+8QoaLhhDeTXYBgJ3k6x61WIhlHX2U+VzEJ55TtIjR/HTySA==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.3.tgz", + "integrity": "sha512-8NoxqLpXm7VyeI0ocidh335D6OKT0UJ6fHdnIxf3+6oOerZZc+O7r+UhvROji6OspyPm+rrIdb1gTXtVIqn+Sg==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.3.tgz", + "integrity": "sha512-csnNavqZVs1+7/hUKtgjMECsNG2cdB8F7XBHP6FfQjqhjF8rzMzb3SLyy/1BG7YSfQ+bG75Ph7DyedbUqwq1rA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.3.tgz", + "integrity": "sha512-r2MXNjbuYabSIX5yQqnT8SGSQ26XQc8fmp6UhlYJd95PZJkQD1u82fWP7HqvGUf33IsOC6qsiV+vcuD4SDP6iw==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.3.tgz", + "integrity": "sha512-uluObTmgPJDuJh9xqxyr7MV61Imq+0IvVsAlWyvxAaBSNzCcmZlhfYcRhCdMaCsy46ccZa7vtDDripgs9Jkqsw==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.3.tgz", + "integrity": "sha512-AVJXEq9RVHQnejdbFvh1eWEoobohUYN3nqJIPI4mNTMpsyYN01VvcAClxflyk2HIxvLpRcRggpX1m9hkXkpC/A==", + "cpu": [ + "x64" + ], "dev": true, - "license": "(WTFPL OR MIT)", - "bin": { - "opener": "bin/opener-bin.js" - } + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/portfinder": { - "version": "1.0.37", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.37.tgz", - "integrity": "sha512-yuGIEjDAYnnOex9ddMnKZEMFE0CcGo6zbfzDklkmT1m5z734ss6JMzN9rNB3+RR7iS+F10D4/BVIaXOyh8PQKw==", + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.3.tgz", + "integrity": "sha512-byyflM+huiwHlKi7VHLAYTKr67X199+V+mt1iRgJenAI594vcmGGddWlu6eHujmcdl6TqSNnvqaXJqZdnEWRGA==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "async": "^3.2.6", - "debug": "^4.3.6" - }, - "engines": { - "node": ">= 10.12" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/prettier": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", - "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.3.tgz", + "integrity": "sha512-aLm3NMIjr4Y9LklrH5cu7yybBqoVCdr4Nvnm8WB7PKCn34fMCGypVNpGK0JQWdPAzR/FnoEoFtlRqZbBBLhVoQ==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.3.tgz", + "integrity": "sha512-VtilE6eznJRDIoFOzaagQodUksTEfLIsvXymS+UdJiSXrPW7Ai+WG4uapAc3F7Hgs791TwdGh4xyOzbuzIZrnw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.3.tgz", + "integrity": "sha512-dG3JuS6+cRAL0GQ925Vppafi0qwZnkHdPeuZIxIPXqkCLP02l7ka+OCyBoDEv8S+nKHxfjvjW4OZ7hTdHkx8/w==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.3.tgz", + "integrity": "sha512-iU8DxnxEKJptf8Vcx4XvAUdpkZfaz0KWfRrnIRrOndL0SvzEte+MTM7nDH4A2Now4FvTZ01yFAgj6TX/mZl8hQ==", + "cpu": [ + "loong64" + ], "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.3.tgz", + "integrity": "sha512-VrQZp9tkk0yozJoQvQcqlWiqaPnLM6uY1qPYXvukKePb0fqaiQtOdMJSxNFUZFsGw5oA5vvVokjHrx8a9Qsz2A==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.3.tgz", + "integrity": "sha512-uf2eucWSUb+M7b0poZ/08LsbcRgaDYL8NCGjUeFMwCWFwOuFcZ8D9ayPl25P3pl+D2FH45EbHdfyUesQ2Lt9wA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.3.tgz", + "integrity": "sha512-7tnUcDvN8DHm/9ra+/nF7lLzYHDeODKKKrh6JmZejbh1FnCNZS8zMkZY5J4sEipy2OW1d1Ncc4gNHUd0DLqkSg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.3.tgz", + "integrity": "sha512-MUpAOallJim8CsJK+4Lc9tQzlfPbHxWDrGXZm2z6biaadNpvh3a5ewcdat478W+tXDoUiHwErX/dOql7ETcLqg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/secure-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", - "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.3.tgz", + "integrity": "sha512-F42IgZI4JicE2vM2PWCe0N5mR5vR0gIdORPqhGQ32/u1S1v3kLtbZ0C/mi9FFk7C5T0PgdeyWEPajPjaUpyoKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.3.tgz", + "integrity": "sha512-oLc+JrwwvbimJUInzx56Q3ujL3Kkhxehg7O1gWAYzm8hImCd5ld1F2Gry5YDjR21MNb5WCKhC9hXgU7rRlyegQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.3.tgz", + "integrity": "sha512-lOrQ+BVRstruD1fkWg9yjmumhowR0oLAAzavB7yFSaGltY8klttmZtCLvOXCmGE9mLIn8IBV/IFrQOWz5xbFPg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.3.tgz", + "integrity": "sha512-vvrVKPRS4GduGR7VMH8EylCBqsDcw6U+/0nPDuIjXQRbHJc6xOBj+frx8ksfZAh6+Fptw5wHrN7etlMmQnPQVg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.3.tgz", + "integrity": "sha512-fi3cPxCnu3ZeM3EwKZPgXbWoGzm2XHgB/WShKI81uj8wG0+laobmqy5wbgEwzstlbLu4MyO8C19FyhhWseYKNQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "node_modules/esbuild": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", + "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", "dev": true, + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": ">= 0.4" + "node": ">=18" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.9", + "@esbuild/android-arm": "0.25.9", + "@esbuild/android-arm64": "0.25.9", + "@esbuild/android-x64": "0.25.9", + "@esbuild/darwin-arm64": "0.25.9", + "@esbuild/darwin-x64": "0.25.9", + "@esbuild/freebsd-arm64": "0.25.9", + "@esbuild/freebsd-x64": "0.25.9", + "@esbuild/linux-arm": "0.25.9", + "@esbuild/linux-arm64": "0.25.9", + "@esbuild/linux-ia32": "0.25.9", + "@esbuild/linux-loong64": "0.25.9", + "@esbuild/linux-mips64el": "0.25.9", + "@esbuild/linux-ppc64": "0.25.9", + "@esbuild/linux-riscv64": "0.25.9", + "@esbuild/linux-s390x": "0.25.9", + "@esbuild/linux-x64": "0.25.9", + "@esbuild/netbsd-arm64": "0.25.9", + "@esbuild/netbsd-x64": "0.25.9", + "@esbuild/openbsd-arm64": "0.25.9", + "@esbuild/openbsd-x64": "0.25.9", + "@esbuild/openharmony-arm64": "0.25.9", + "@esbuild/sunos-x64": "0.25.9", + "@esbuild/win32-arm64": "0.25.9", + "@esbuild/win32-ia32": "0.25.9", + "@esbuild/win32-x64": "0.25.9" } }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, "engines": { - "node": ">= 0.4" + "node": ">=12.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, + "hasInstallScript": true, "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" + "bin": { + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": ">= 0.4" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >=14" } }, - "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", - "license": "Apache-2.0", + "node_modules/prettier": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "dev": true, + "license": "MIT", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=14.17" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/union": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", - "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "node_modules/rollup": { + "version": "4.46.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.3.tgz", + "integrity": "sha512-RZn2XTjXb8t5g13f5YclGoilU/kwT696DIkY3sywjdZidNSi3+vseaQov7D7BZXVJCPv3pDWUN69C78GGbXsKw==", "dev": true, + "license": "MIT", "dependencies": { - "qs": "^6.4.0" + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">= 0.8.0" + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.46.3", + "@rollup/rollup-android-arm64": "4.46.3", + "@rollup/rollup-darwin-arm64": "4.46.3", + "@rollup/rollup-darwin-x64": "4.46.3", + "@rollup/rollup-freebsd-arm64": "4.46.3", + "@rollup/rollup-freebsd-x64": "4.46.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.46.3", + "@rollup/rollup-linux-arm-musleabihf": "4.46.3", + "@rollup/rollup-linux-arm64-gnu": "4.46.3", + "@rollup/rollup-linux-arm64-musl": "4.46.3", + "@rollup/rollup-linux-loongarch64-gnu": "4.46.3", + "@rollup/rollup-linux-ppc64-gnu": "4.46.3", + "@rollup/rollup-linux-riscv64-gnu": "4.46.3", + "@rollup/rollup-linux-riscv64-musl": "4.46.3", + "@rollup/rollup-linux-s390x-gnu": "4.46.3", + "@rollup/rollup-linux-x64-gnu": "4.46.3", + "@rollup/rollup-linux-x64-musl": "4.46.3", + "@rollup/rollup-win32-arm64-msvc": "4.46.3", + "@rollup/rollup-win32-ia32-msvc": "4.46.3", + "@rollup/rollup-win32-x64-msvc": "4.46.3", + "fsevents": "~2.3.2" } }, - "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", "dev": true, "license": "MIT", "dependencies": { - "iconv-lite": "0.6.3" + "fdir": "^6.4.4", + "picomatch": "^4.0.2" }, "engines": { - "node": ">=12" + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/vite": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", + "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.6", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.14" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } } } } diff --git a/package.json b/package.json index 5992cc3..925ea62 100644 --- a/package.json +++ b/package.json @@ -1,16 +1,14 @@ { "name": "core-debug-visualizer", + "type": "module", "scripts": { - "dev": "tsc --watch & npm run serve", - "serve": "tsc && http-server src/public -p 8080 -H \"Cache-Control: no-cache\" -o index.html", - "build": "tsc" - }, - "dependencies": { - "typescript": "^5.8.3" + "dev": "vite", + "build": "vite build", + "preview": "vite preview --open" }, "devDependencies": { "@biomejs/biome": "2.1.2", - "http-server": "^14.1.1", - "prettier": "^3.6.2" + "prettier": "^3.6.2", + "vite": "^7.1.2" } -} \ No newline at end of file +} diff --git a/src/public/assets/fonts/JetBrainsMonoNerdFontMono-Regular.ttf b/public/assets/fonts/JetBrainsMonoNerdFontMono-Regular.ttf similarity index 100% rename from src/public/assets/fonts/JetBrainsMonoNerdFontMono-Regular.ttf rename to public/assets/fonts/JetBrainsMonoNerdFontMono-Regular.ttf diff --git a/src/public/assets/object-svgs/bomb.svg b/public/assets/object-svgs/bomb.svg similarity index 100% rename from src/public/assets/object-svgs/bomb.svg rename to public/assets/object-svgs/bomb.svg diff --git a/src/public/assets/object-svgs/cores/1.svg b/public/assets/object-svgs/cores/1.svg similarity index 100% rename from src/public/assets/object-svgs/cores/1.svg rename to public/assets/object-svgs/cores/1.svg diff --git a/src/public/assets/object-svgs/cores/2.svg b/public/assets/object-svgs/cores/2.svg similarity index 100% rename from src/public/assets/object-svgs/cores/2.svg rename to public/assets/object-svgs/cores/2.svg diff --git a/src/public/assets/object-svgs/money.svg b/public/assets/object-svgs/money.svg similarity index 100% rename from src/public/assets/object-svgs/money.svg rename to public/assets/object-svgs/money.svg diff --git a/src/public/assets/object-svgs/resource.svg b/public/assets/object-svgs/resource.svg similarity index 100% rename from src/public/assets/object-svgs/resource.svg rename to public/assets/object-svgs/resource.svg diff --git a/src/public/assets/object-svgs/units/bomberman/1.svg b/public/assets/object-svgs/units/bomberman/1.svg similarity index 100% rename from src/public/assets/object-svgs/units/bomberman/1.svg rename to public/assets/object-svgs/units/bomberman/1.svg diff --git a/src/public/assets/object-svgs/units/bomberman/2.svg b/public/assets/object-svgs/units/bomberman/2.svg similarity index 100% rename from src/public/assets/object-svgs/units/bomberman/2.svg rename to public/assets/object-svgs/units/bomberman/2.svg diff --git a/src/public/assets/object-svgs/units/builder/1.svg b/public/assets/object-svgs/units/builder/1.svg similarity index 100% rename from src/public/assets/object-svgs/units/builder/1.svg rename to public/assets/object-svgs/units/builder/1.svg diff --git a/src/public/assets/object-svgs/units/builder/2.svg b/public/assets/object-svgs/units/builder/2.svg similarity index 100% rename from src/public/assets/object-svgs/units/builder/2.svg rename to public/assets/object-svgs/units/builder/2.svg diff --git a/src/public/assets/object-svgs/units/carrier/1.svg b/public/assets/object-svgs/units/carrier/1.svg similarity index 100% rename from src/public/assets/object-svgs/units/carrier/1.svg rename to public/assets/object-svgs/units/carrier/1.svg diff --git a/src/public/assets/object-svgs/units/carrier/2.svg b/public/assets/object-svgs/units/carrier/2.svg similarity index 100% rename from src/public/assets/object-svgs/units/carrier/2.svg rename to public/assets/object-svgs/units/carrier/2.svg diff --git a/src/public/assets/object-svgs/units/miner/1.svg b/public/assets/object-svgs/units/miner/1.svg similarity index 100% rename from src/public/assets/object-svgs/units/miner/1.svg rename to public/assets/object-svgs/units/miner/1.svg diff --git a/src/public/assets/object-svgs/units/miner/2.svg b/public/assets/object-svgs/units/miner/2.svg similarity index 100% rename from src/public/assets/object-svgs/units/miner/2.svg rename to public/assets/object-svgs/units/miner/2.svg diff --git a/src/public/assets/object-svgs/units/tank/1.svg b/public/assets/object-svgs/units/tank/1.svg similarity index 100% rename from src/public/assets/object-svgs/units/tank/1.svg rename to public/assets/object-svgs/units/tank/1.svg diff --git a/src/public/assets/object-svgs/units/tank/2.svg b/public/assets/object-svgs/units/tank/2.svg similarity index 100% rename from src/public/assets/object-svgs/units/tank/2.svg rename to public/assets/object-svgs/units/tank/2.svg diff --git a/src/public/assets/object-svgs/units/warrior/1.svg b/public/assets/object-svgs/units/warrior/1.svg similarity index 100% rename from src/public/assets/object-svgs/units/warrior/1.svg rename to public/assets/object-svgs/units/warrior/1.svg diff --git a/src/public/assets/object-svgs/units/warrior/2.svg b/public/assets/object-svgs/units/warrior/2.svg similarity index 100% rename from src/public/assets/object-svgs/units/warrior/2.svg rename to public/assets/object-svgs/units/warrior/2.svg diff --git a/src/public/assets/object-svgs/wall.svg b/public/assets/object-svgs/wall.svg similarity index 100% rename from src/public/assets/object-svgs/wall.svg rename to public/assets/object-svgs/wall.svg diff --git a/src/public/assets/ui-svgs/core-logo.svg b/public/assets/ui-svgs/core-logo.svg similarity index 100% rename from src/public/assets/ui-svgs/core-logo.svg rename to public/assets/ui-svgs/core-logo.svg diff --git a/src/public/assets/ui-svgs/fullscreen-close.svg b/public/assets/ui-svgs/fullscreen-close.svg similarity index 100% rename from src/public/assets/ui-svgs/fullscreen-close.svg rename to public/assets/ui-svgs/fullscreen-close.svg diff --git a/src/public/assets/ui-svgs/fullscreen-open.svg b/public/assets/ui-svgs/fullscreen-open.svg similarity index 100% rename from src/public/assets/ui-svgs/fullscreen-open.svg rename to public/assets/ui-svgs/fullscreen-open.svg diff --git a/src/public/assets/ui-svgs/github-logo.svg b/public/assets/ui-svgs/github-logo.svg similarity index 100% rename from src/public/assets/ui-svgs/github-logo.svg rename to public/assets/ui-svgs/github-logo.svg diff --git a/src/public/assets/ui-svgs/pause.svg b/public/assets/ui-svgs/pause.svg similarity index 100% rename from src/public/assets/ui-svgs/pause.svg rename to public/assets/ui-svgs/pause.svg diff --git a/src/public/assets/ui-svgs/play.svg b/public/assets/ui-svgs/play.svg similarity index 100% rename from src/public/assets/ui-svgs/play.svg rename to public/assets/ui-svgs/play.svg diff --git a/src/public/assets/ui-svgs/skip_end.svg b/public/assets/ui-svgs/skip_end.svg similarity index 100% rename from src/public/assets/ui-svgs/skip_end.svg rename to public/assets/ui-svgs/skip_end.svg diff --git a/src/public/assets/ui-svgs/skip_start.svg b/public/assets/ui-svgs/skip_start.svg similarity index 100% rename from src/public/assets/ui-svgs/skip_start.svg rename to public/assets/ui-svgs/skip_start.svg diff --git a/src/public/assets/ui-svgs/speed_down.svg b/public/assets/ui-svgs/speed_down.svg similarity index 100% rename from src/public/assets/ui-svgs/speed_down.svg rename to public/assets/ui-svgs/speed_down.svg diff --git a/src/public/assets/ui-svgs/speed_up.svg b/public/assets/ui-svgs/speed_up.svg similarity index 100% rename from src/public/assets/ui-svgs/speed_up.svg rename to public/assets/ui-svgs/speed_up.svg diff --git a/src/public/assets/ui-svgs/tick_next.svg b/public/assets/ui-svgs/tick_next.svg similarity index 100% rename from src/public/assets/ui-svgs/tick_next.svg rename to public/assets/ui-svgs/tick_next.svg diff --git a/src/public/assets/ui-svgs/tick_previous.svg b/public/assets/ui-svgs/tick_previous.svg similarity index 100% rename from src/public/assets/ui-svgs/tick_previous.svg rename to public/assets/ui-svgs/tick_previous.svg diff --git a/src/public/css/styles.css b/public/css/styles.css similarity index 100% rename from src/public/css/styles.css rename to public/css/styles.css diff --git a/src/public/favicon.ico b/public/favicon.ico similarity index 100% rename from src/public/favicon.ico rename to public/favicon.ico diff --git a/src/public/misc/replay_latest.json b/public/misc/replay_latest.json similarity index 100% rename from src/public/misc/replay_latest.json rename to public/misc/replay_latest.json diff --git a/src/ts/renderer/objectRenderer.ts b/src/ts/renderer/objectRenderer.ts index 22959d6..9774675 100644 --- a/src/ts/renderer/objectRenderer.ts +++ b/src/ts/renderer/objectRenderer.ts @@ -1,6 +1,6 @@ -import { getBarMetrics, TickObject, MoneyObject } from '../replay_loader/object.js'; -import { getActionsByExecutor, getNameOfUnitType, getStateAt } from '../replay_loader/replayLoader.js'; -import { tickData } from '../time_manager/timeManager.js'; +import { getBarMetrics, type TickObject } from '../replay_loader/object'; +import { getActionsByExecutor, getNameOfUnitType, getStateAt } from '../replay_loader/replayLoader'; +import type { tickData } from '../time_manager/timeManager'; import { EaseInOutTimingCurve, MidTickIncreaseTimingCurve } from './animationUtil.js'; const svgNS = 'http://www.w3.org/2000/svg'; diff --git a/src/ts/renderer/renderer.ts b/src/ts/renderer/renderer.ts index 79c9cfd..32d178a 100644 --- a/src/ts/renderer/renderer.ts +++ b/src/ts/renderer/renderer.ts @@ -1,8 +1,8 @@ -import type { GameConfig } from '../replay_loader/config.js'; -import { formatObjectData, type TickObject } from '../replay_loader/object.js'; -import { getGameConfig, getGameMisc, getStateAt } from '../replay_loader/replayLoader.js'; -import { getCurrentTickData, isDirty } from '../time_manager/timeManager.js'; -import { calcAndDrawObject, initializeTeamMapping } from './objectRenderer.js'; +import type { GameConfig } from '../replay_loader/config'; +import { formatObjectData, type TickObject } from '../replay_loader/object'; +import { getGameConfig, getGameMisc, getStateAt } from '../replay_loader/replayLoader'; +import { getCurrentTickData, isDirty } from '../time_manager/timeManager'; +import { calcAndDrawObject, initializeTeamMapping } from './objectRenderer'; const svgNS = 'http://www.w3.org/2000/svg'; diff --git a/src/ts/replay_loader/object.ts b/src/ts/replay_loader/object.ts index 5ebbea9..1987f25 100644 --- a/src/ts/replay_loader/object.ts +++ b/src/ts/replay_loader/object.ts @@ -1,5 +1,4 @@ -import { getConfigFileParsingDiagnostics } from 'typescript'; -import { getGameConfig } from './replayLoader.js'; +import { getGameConfig } from './replayLoader'; export interface BaseObject { id: number; @@ -141,7 +140,7 @@ export function getBarMetrics(obj: TickObject): { key: string; percentage: numbe let calc = u.baseMoveCooldown + Math.floor(obj.balance / step); if (u.maxMoveCooldown > 0 && calc > u.maxMoveCooldown) calc = u.maxMoveCooldown; calc = Math.max(1, calc); - let denom = Math.max(calc, obj.moveCooldown); + const denom = Math.max(calc, obj.moveCooldown); metrics.push({ key: 'moveCooldown', percentage: (obj.moveCooldown / denom) * 100, diff --git a/src/ts/replay_loader/replayLoader.ts b/src/ts/replay_loader/replayLoader.ts index 9bd76dc..9c80723 100644 --- a/src/ts/replay_loader/replayLoader.ts +++ b/src/ts/replay_loader/replayLoader.ts @@ -1,8 +1,8 @@ -import { setupRenderer } from '../renderer/renderer.js'; -import { resetTimeManager } from '../time_manager/timeManager.js'; -import type { TickAction } from './action.js'; -import type { GameConfig } from './config.js'; -import type { TickObject } from './object.js'; +import { setupRenderer } from '../renderer/renderer'; +import { resetTimeManager } from '../time_manager/timeManager'; +import type { TickAction } from './action'; +import type { GameConfig } from './config'; +import type { TickObject } from './object'; const expectedReplayVersion = '1.1.1'; const winnerNameElement = document.getElementById('winnername') as HTMLSpanElement; diff --git a/src/ts/time_manager/timeManager.ts b/src/ts/time_manager/timeManager.ts index cfef2bc..6c037a4 100644 --- a/src/ts/time_manager/timeManager.ts +++ b/src/ts/time_manager/timeManager.ts @@ -1,5 +1,5 @@ -import { getTotalReplayTicks } from '../replay_loader/replayLoader.js'; -import { setRenderFireworks } from '../renderer/fireworksRenderer.js'; +import { setRenderFireworks } from '../renderer/fireworksRenderer'; +import { getTotalReplayTicks } from '../replay_loader/replayLoader'; const playButton = document.getElementById('play-pause-button') as HTMLButtonElement; diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 514bcd4..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "moduleResolution": "node", - "rootDir": "src/ts", - "outDir": "src/public/js", - "esModuleInterop": true, - "strict": true, - "allowJs": true - }, - "include": ["src/ts/**/*"], - "exclude": ["src/public/js", "vite.config.js"] -} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..32fc474 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'vite'; + +export default defineConfig({ + server: { open: '/index.html' }, + build: { + outDir: 'dist', + assetsDir: 'assets', + sourcemap: true, + }, +}); From 220799b8d6c1ae6b6a4cdf903c2a7711d06ecb9e Mon Sep 17 00:00:00 2001 From: FreddyMSchubert Date: Mon, 18 Aug 2025 22:55:55 +0200 Subject: [PATCH 02/14] update dockerfile build output expected dir to actual vite output dir --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 5e315f2..4f53fe5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,7 +22,7 @@ RUN npm run build FROM nginx:alpine # Copy built files from builder stage -COPY --from=builder /app/src/public /usr/share/nginx/html +COPY --from=builder /app/dist /usr/share/nginx/html # Copy nginx configuration COPY nginx.conf /etc/nginx/nginx.conf From 4df4a4073a76ea0a9b719b459791855f3b726299 Mon Sep 17 00:00:00 2001 From: FreddyMSchubert Date: Mon, 18 Aug 2025 23:03:20 +0200 Subject: [PATCH 03/14] fix: remove --only-production from npm install line in build stage docker image build --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4f53fe5..85cf932 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ WORKDIR /app COPY package*.json ./ # Install dependencies -RUN npm ci --only=production +RUN npm ci # Copy source code COPY . . From 1ccc1af9a102837bdada22855d0986f2e4076b7e Mon Sep 17 00:00:00 2001 From: FreddyMSchubert Date: Mon, 18 Aug 2025 23:40:27 +0200 Subject: [PATCH 04/14] cache hash css files also --- index.html | 2 +- {public => src}/css/styles.css | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename {public => src}/css/styles.css (100%) diff --git a/index.html b/index.html index fe53f6c..42a06b4 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ ⚡️ Core Game Visualizer - + diff --git a/public/css/styles.css b/src/css/styles.css similarity index 100% rename from public/css/styles.css rename to src/css/styles.css From 8c374c4e1466bd7f5907510e96d00fae48292221 Mon Sep 17 00:00:00 2001 From: FreddyMSchubert Date: Mon, 18 Aug 2025 23:51:36 +0200 Subject: [PATCH 05/14] nginx config tweaks: cache hash-cache-broken files forever, cache index.html file never (its small), and cache files like fonts for a little while --- nginx.conf | 51 +++++++++++++++++++++------------------------------ 1 file changed, 21 insertions(+), 30 deletions(-) diff --git a/nginx.conf b/nginx.conf index 157531d..dc146c2 100644 --- a/nginx.conf +++ b/nginx.conf @@ -5,23 +5,19 @@ events { http { include /etc/nginx/mime.types; default_type application/octet-stream; - # Ensure ETag headers are generated so clients can revalidate quickly etag on; - # Gzip compression for text-based / compressible assets - gzip on; # Enable gzip - gzip_comp_level 6; # Balance (1=fastest, 9=slowest). 6 is a good trade-off. - gzip_min_length 1024; # Only compress responses >= 1KB - gzip_vary on; # Add Vary: Accept-Encoding for proxies/CDNs - gzip_proxied any; # Allow compression for all proxied requests - gzip_disable "msie6"; # Disable for very old browsers - # Types to compress (avoid already-compressed formats like images, woff2) + gzip on; + gzip_comp_level 6; + gzip_min_length 1024; + gzip_vary on; + gzip_proxied any; + gzip_disable "msie6"; gzip_types text/plain text/css text/javascript application/javascript - application/x-javascript application/json application/xml application/rss+xml @@ -31,42 +27,37 @@ http { font/otf image/svg+xml; - sendfile on; - keepalive_timeout 65; + sendfile on; + keepalive_timeout 65; server { - listen 80; - server_name localhost; + listen 80; + server_name _; + + root /usr/share/nginx/html; + index index.html; - # SPA / root handler location / { - root /usr/share/nginx/html; - index index.html; try_files $uri $uri/ /index.html; } - # HTML should never be aggressively cached so new deployments are seen immediately - location ~* \.html$ { - root /usr/share/nginx/html; - add_header Cache-Control "no-cache, no-store, must-revalidate" always; + location = /index.html { + add_header Cache-Control "no-store, no-cache, must-revalidate" always; add_header Pragma "no-cache" always; add_header Expires "0" always; } - # Handle static assets (non-hashed filenames) with a short cache + revalidation. - # We avoid 'immutable' and long max-age because filenames do not contain content hashes. - # Using a modest max-age allows brief client-side caching while ETag enables fresh checks. + location ~* -[a-f0-9]{8,}\.(js|css|png|jpg|jpeg|gif|ico|svg|ttf|woff|woff2)$ { + add_header Cache-Control "public, max-age=31536000, immutable" always; + } + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|ttf|woff|woff2)$ { - root /usr/share/nginx/html; - # Provide a single authoritative Cache-Control header (avoid duplicate via 'expires'). - # max-age=300 (5 minutes) balances freshness and some caching; adjust as needed. add_header Cache-Control "public, max-age=600, must-revalidate" always; } - # Error pages - error_page 500 502 503 504 /50x.html; + error_page 500 502 503 504 /50x.html; location = /50x.html { - root /usr/share/nginx/html; + root /usr/share/nginx/html; } } } From 26a34f92dc614ae634241acf28f7b8c5b76dbf48 Mon Sep 17 00:00:00 2001 From: flomero <49640251+flomero@users.noreply.github.com> Date: Mon, 18 Aug 2025 23:49:16 +0200 Subject: [PATCH 06/14] format --- package.json | 5 +- public/misc/replay_latest.json | 9732 +++++++++++++++++++++++++- src/css/styles.css | 27 +- src/ts/main.ts | 38 +- src/ts/renderer/animationUtil.ts | 9 +- src/ts/renderer/fireworksRenderer.ts | 38 +- src/ts/renderer/objectRenderer.ts | 168 +- src/ts/renderer/renderer.ts | 127 +- src/ts/replay_loader/action.ts | 17 +- src/ts/replay_loader/object.ts | 101 +- src/ts/replay_loader/replayLoader.ts | 224 +- src/ts/time_manager/timeManager.ts | 213 +- vite.config.ts | 8 +- 13 files changed, 10366 insertions(+), 341 deletions(-) diff --git a/package.json b/package.json index 925ea62..fd50d99 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,10 @@ "scripts": { "dev": "vite", "build": "vite build", - "preview": "vite preview --open" + "preview": "vite preview --open", + "format": "biome format --write --no-errors-on-unmatched", + "lint": "biome lint --write --no-errors-on-unmatched", + "check": "biome check --write --no-errors-on-unmatched" }, "devDependencies": { "@biomejs/biome": "2.1.2", diff --git a/public/misc/replay_latest.json b/public/misc/replay_latest.json index 1d2c106..0c89269 100644 --- a/public/misc/replay_latest.json +++ b/public/misc/replay_latest.json @@ -1 +1,9731 @@ -{"misc":{"team_results":[{"id":1,"name":"Gridnoob","place":1,"death_reason":1},{"id":2,"name":"Gridmaster","place":0}],"game_end_reason":0,"version":"1.1.1","game_id":"","worldGeneratorSeed":3825364427},"ticks":{"0":{"objects":[{"id":1,"type":0,"x":0,"y":0,"hp":200,"teamId":1,"balance":200},{"id":3,"type":3,"x":12,"y":0,"hp":50},{"id":4,"type":3,"x":11,"y":1,"hp":50},{"id":5,"type":3,"x":12,"y":1,"hp":50},{"id":6,"type":3,"x":13,"y":1,"hp":50},{"id":7,"type":3,"x":10,"y":2,"hp":50},{"id":8,"type":3,"x":11,"y":2,"hp":50},{"id":9,"type":3,"x":12,"y":2,"hp":50},{"id":10,"type":3,"x":13,"y":2,"hp":50},{"id":11,"type":3,"x":14,"y":2,"hp":50},{"id":12,"type":3,"x":9,"y":3,"hp":50},{"id":13,"type":3,"x":10,"y":3,"hp":50},{"id":14,"type":3,"x":11,"y":3,"hp":50},{"id":15,"type":3,"x":12,"y":3,"hp":50},{"id":16,"type":3,"x":13,"y":3,"hp":50},{"id":17,"type":3,"x":14,"y":3,"hp":50},{"id":18,"type":3,"x":15,"y":3,"hp":50},{"id":19,"type":3,"x":8,"y":4,"hp":50},{"id":20,"type":3,"x":9,"y":4,"hp":50},{"id":21,"type":3,"x":10,"y":4,"hp":50},{"id":22,"type":3,"x":11,"y":4,"hp":50},{"id":23,"type":3,"x":13,"y":4,"hp":50},{"id":24,"type":3,"x":14,"y":4,"hp":50},{"id":25,"type":3,"x":15,"y":4,"hp":50},{"id":26,"type":3,"x":16,"y":4,"hp":50},{"id":27,"type":3,"x":7,"y":5,"hp":50},{"id":28,"type":3,"x":8,"y":5,"hp":50},{"id":29,"type":3,"x":9,"y":5,"hp":50},{"id":30,"type":3,"x":10,"y":5,"hp":50},{"id":31,"type":3,"x":14,"y":5,"hp":50},{"id":32,"type":3,"x":15,"y":5,"hp":50},{"id":33,"type":3,"x":16,"y":5,"hp":50},{"id":34,"type":3,"x":17,"y":5,"hp":50},{"id":35,"type":3,"x":6,"y":6,"hp":50},{"id":36,"type":3,"x":7,"y":6,"hp":50},{"id":37,"type":3,"x":8,"y":6,"hp":50},{"id":38,"type":3,"x":9,"y":6,"hp":50},{"id":39,"type":4,"x":12,"y":6,"hp":1,"balance":75},{"id":40,"type":3,"x":15,"y":6,"hp":50},{"id":41,"type":3,"x":16,"y":6,"hp":50},{"id":42,"type":3,"x":17,"y":6,"hp":50},{"id":43,"type":3,"x":18,"y":6,"hp":50},{"id":44,"type":3,"x":6,"y":7,"hp":50},{"id":45,"type":3,"x":7,"y":7,"hp":50},{"id":46,"type":3,"x":8,"y":7,"hp":50},{"id":47,"type":4,"x":11,"y":7,"hp":1,"balance":75},{"id":48,"type":4,"x":12,"y":7,"hp":1,"balance":75},{"id":49,"type":4,"x":13,"y":7,"hp":1,"balance":75},{"id":50,"type":3,"x":16,"y":7,"hp":50},{"id":51,"type":3,"x":17,"y":7,"hp":50},{"id":52,"type":3,"x":18,"y":7,"hp":50},{"id":53,"type":3,"x":6,"y":8,"hp":50},{"id":54,"type":3,"x":7,"y":8,"hp":50},{"id":55,"type":3,"x":8,"y":8,"hp":50},{"id":56,"type":4,"x":10,"y":8,"hp":1,"balance":75},{"id":57,"type":4,"x":11,"y":8,"hp":1,"balance":75},{"id":58,"type":4,"x":12,"y":8,"hp":1,"balance":75},{"id":59,"type":4,"x":13,"y":8,"hp":1,"balance":75},{"id":60,"type":4,"x":14,"y":8,"hp":1,"balance":75},{"id":61,"type":3,"x":16,"y":8,"hp":50},{"id":62,"type":3,"x":17,"y":8,"hp":50},{"id":63,"type":3,"x":18,"y":8,"hp":50},{"id":64,"type":3,"x":6,"y":9,"hp":50},{"id":65,"type":3,"x":7,"y":9,"hp":50},{"id":66,"type":3,"x":8,"y":9,"hp":50},{"id":67,"type":4,"x":10,"y":9,"hp":1,"balance":75},{"id":68,"type":4,"x":11,"y":9,"hp":1,"balance":75},{"id":69,"type":4,"x":12,"y":9,"hp":1,"balance":75},{"id":70,"type":4,"x":13,"y":9,"hp":1,"balance":75},{"id":71,"type":4,"x":14,"y":9,"hp":1,"balance":75},{"id":72,"type":3,"x":6,"y":10,"hp":50},{"id":73,"type":3,"x":7,"y":10,"hp":50},{"id":74,"type":3,"x":8,"y":10,"hp":50},{"id":75,"type":4,"x":10,"y":10,"hp":1,"balance":75},{"id":76,"type":4,"x":11,"y":10,"hp":1,"balance":75},{"id":77,"type":4,"x":12,"y":10,"hp":1,"balance":75},{"id":78,"type":4,"x":13,"y":10,"hp":1,"balance":75},{"id":79,"type":4,"x":14,"y":10,"hp":1,"balance":75},{"id":80,"type":3,"x":6,"y":11,"hp":50},{"id":81,"type":3,"x":7,"y":11,"hp":50},{"id":82,"type":3,"x":8,"y":11,"hp":50},{"id":83,"type":4,"x":10,"y":11,"hp":1,"balance":75},{"id":84,"type":4,"x":11,"y":11,"hp":1,"balance":75},{"id":85,"type":4,"x":12,"y":11,"hp":1,"balance":75},{"id":86,"type":4,"x":13,"y":11,"hp":1,"balance":75},{"id":87,"type":4,"x":14,"y":11,"hp":1,"balance":75},{"id":88,"type":3,"x":6,"y":12,"hp":50},{"id":89,"type":3,"x":7,"y":12,"hp":50},{"id":90,"type":3,"x":8,"y":12,"hp":50},{"id":91,"type":4,"x":10,"y":12,"hp":1,"balance":75},{"id":92,"type":4,"x":11,"y":12,"hp":1,"balance":75},{"id":93,"type":4,"x":12,"y":12,"hp":1,"balance":75},{"id":94,"type":4,"x":13,"y":12,"hp":1,"balance":75},{"id":95,"type":4,"x":14,"y":12,"hp":1,"balance":75},{"id":96,"type":3,"x":6,"y":13,"hp":50},{"id":97,"type":3,"x":7,"y":13,"hp":50},{"id":98,"type":3,"x":8,"y":13,"hp":50},{"id":99,"type":4,"x":10,"y":13,"hp":1,"balance":75},{"id":100,"type":4,"x":11,"y":13,"hp":1,"balance":75},{"id":101,"type":4,"x":12,"y":13,"hp":1,"balance":75},{"id":102,"type":4,"x":13,"y":13,"hp":1,"balance":75},{"id":103,"type":4,"x":14,"y":13,"hp":1,"balance":75},{"id":104,"type":3,"x":6,"y":14,"hp":50},{"id":105,"type":3,"x":7,"y":14,"hp":50},{"id":106,"type":3,"x":8,"y":14,"hp":50},{"id":107,"type":4,"x":10,"y":14,"hp":1,"balance":75},{"id":108,"type":4,"x":11,"y":14,"hp":1,"balance":75},{"id":109,"type":4,"x":12,"y":14,"hp":1,"balance":75},{"id":110,"type":4,"x":13,"y":14,"hp":1,"balance":75},{"id":111,"type":4,"x":14,"y":14,"hp":1,"balance":75},{"id":112,"type":3,"x":6,"y":15,"hp":50},{"id":113,"type":3,"x":7,"y":15,"hp":50},{"id":114,"type":3,"x":8,"y":15,"hp":50},{"id":115,"type":4,"x":10,"y":15,"hp":1,"balance":75},{"id":116,"type":4,"x":11,"y":15,"hp":1,"balance":75},{"id":117,"type":4,"x":12,"y":15,"hp":1,"balance":75},{"id":118,"type":4,"x":13,"y":15,"hp":1,"balance":75},{"id":119,"type":4,"x":14,"y":15,"hp":1,"balance":75},{"id":120,"type":3,"x":6,"y":16,"hp":50},{"id":121,"type":3,"x":7,"y":16,"hp":50},{"id":122,"type":3,"x":8,"y":16,"hp":50},{"id":123,"type":4,"x":10,"y":16,"hp":1,"balance":75},{"id":124,"type":4,"x":11,"y":16,"hp":1,"balance":75},{"id":125,"type":4,"x":12,"y":16,"hp":1,"balance":75},{"id":126,"type":4,"x":13,"y":16,"hp":1,"balance":75},{"id":127,"type":4,"x":14,"y":16,"hp":1,"balance":75},{"id":128,"type":3,"x":16,"y":16,"hp":50},{"id":129,"type":3,"x":17,"y":16,"hp":50},{"id":130,"type":3,"x":18,"y":16,"hp":50},{"id":131,"type":3,"x":6,"y":17,"hp":50},{"id":132,"type":3,"x":7,"y":17,"hp":50},{"id":133,"type":3,"x":8,"y":17,"hp":50},{"id":134,"type":4,"x":11,"y":17,"hp":1,"balance":75},{"id":135,"type":4,"x":12,"y":17,"hp":1,"balance":75},{"id":136,"type":4,"x":13,"y":17,"hp":1,"balance":75},{"id":137,"type":3,"x":16,"y":17,"hp":50},{"id":138,"type":3,"x":17,"y":17,"hp":50},{"id":139,"type":3,"x":18,"y":17,"hp":50},{"id":140,"type":3,"x":6,"y":18,"hp":50},{"id":141,"type":3,"x":7,"y":18,"hp":50},{"id":142,"type":3,"x":8,"y":18,"hp":50},{"id":143,"type":3,"x":9,"y":18,"hp":50},{"id":144,"type":4,"x":12,"y":18,"hp":1,"balance":75},{"id":145,"type":3,"x":15,"y":18,"hp":50},{"id":146,"type":3,"x":16,"y":18,"hp":50},{"id":147,"type":3,"x":17,"y":18,"hp":50},{"id":148,"type":3,"x":18,"y":18,"hp":50},{"id":149,"type":3,"x":7,"y":19,"hp":50},{"id":150,"type":3,"x":8,"y":19,"hp":50},{"id":151,"type":3,"x":9,"y":19,"hp":50},{"id":152,"type":3,"x":10,"y":19,"hp":50},{"id":153,"type":3,"x":14,"y":19,"hp":50},{"id":154,"type":3,"x":15,"y":19,"hp":50},{"id":155,"type":3,"x":16,"y":19,"hp":50},{"id":156,"type":3,"x":17,"y":19,"hp":50},{"id":157,"type":3,"x":8,"y":20,"hp":50},{"id":158,"type":3,"x":9,"y":20,"hp":50},{"id":159,"type":3,"x":10,"y":20,"hp":50},{"id":160,"type":3,"x":11,"y":20,"hp":50},{"id":161,"type":3,"x":13,"y":20,"hp":50},{"id":162,"type":3,"x":14,"y":20,"hp":50},{"id":163,"type":3,"x":15,"y":20,"hp":50},{"id":164,"type":3,"x":16,"y":20,"hp":50},{"id":165,"type":3,"x":9,"y":21,"hp":50},{"id":166,"type":3,"x":10,"y":21,"hp":50},{"id":167,"type":3,"x":11,"y":21,"hp":50},{"id":168,"type":3,"x":12,"y":21,"hp":50},{"id":169,"type":3,"x":13,"y":21,"hp":50},{"id":170,"type":3,"x":14,"y":21,"hp":50},{"id":171,"type":3,"x":15,"y":21,"hp":50},{"id":172,"type":3,"x":10,"y":22,"hp":50},{"id":173,"type":3,"x":11,"y":22,"hp":50},{"id":174,"type":3,"x":12,"y":22,"hp":50},{"id":175,"type":3,"x":13,"y":22,"hp":50},{"id":176,"type":3,"x":14,"y":22,"hp":50},{"id":177,"type":3,"x":11,"y":23,"hp":50},{"id":178,"type":3,"x":12,"y":23,"hp":50},{"id":179,"type":3,"x":13,"y":23,"hp":50},{"id":180,"type":3,"x":12,"y":24,"hp":50},{"id":2,"type":0,"x":24,"y":24,"hp":200,"teamId":2,"balance":200}]},"1":{"objects":[{"id":1,"balance":0},{"id":2,"balance":0},{"id":182,"type":1,"x":1,"y":0,"hp":10,"teamId":1,"unit_type":2,"balance":0,"moveCooldown":0},{"id":181,"type":1,"x":23,"y":24,"hp":10,"teamId":2,"unit_type":2,"balance":0,"moveCooldown":0}],"actions":[{"type":"create","unit_type":2},{"type":"create","unit_type":2}]},"2":{"objects":[{"id":182,"x":2},{"id":181,"y":23}],"actions":[{"type":"move","unit_id":182,"x":2,"y":0},{"type":"move","unit_id":181,"x":23,"y":23}]},"3":{"objects":[{"id":182,"x":3},{"id":181,"y":22}],"actions":[{"type":"move","unit_id":182,"x":3,"y":0},{"type":"move","unit_id":181,"x":23,"y":22}]},"4":{"objects":[{"id":182,"x":4},{"id":181,"y":21}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":182,"x":4,"y":0}]},"5":{"objects":[{"id":182,"x":5},{"id":181,"y":20}],"actions":[{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":182,"x":5,"y":0}]},"6":{"objects":[{"id":182,"x":6},{"id":181,"x":22}],"actions":[{"type":"move","unit_id":182,"x":6,"y":0},{"type":"move","unit_id":181,"x":22,"y":20}]},"7":{"objects":[{"id":182,"x":7},{"id":181,"y":19}],"actions":[{"type":"move","unit_id":181,"x":22,"y":19},{"type":"move","unit_id":182,"x":7,"y":0}]},"8":{"objects":[{"id":182,"x":8},{"id":181,"x":21}],"actions":[{"type":"move","unit_id":182,"x":8,"y":0},{"type":"move","unit_id":181,"x":21,"y":19}]},"9":{"objects":[{"id":182,"x":9},{"id":181,"y":18}],"actions":[{"type":"move","unit_id":181,"x":21,"y":18},{"type":"move","unit_id":182,"x":9,"y":0}]},"10":{"objects":[{"id":182,"x":10},{"id":181,"y":17}],"actions":[{"type":"move","unit_id":181,"x":21,"y":17},{"type":"move","unit_id":182,"x":10,"y":0}]},"11":{"objects":[{"id":182,"x":11},{"id":181,"x":20}],"actions":[{"type":"move","unit_id":182,"x":11,"y":0},{"type":"move","unit_id":181,"x":20,"y":17}]},"12":{"objects":[{"id":3,"hp":47},{"id":181,"y":16}],"actions":[{"type":"attack","unit_id":182,"x":12,"y":0},{"type":"move","unit_id":181,"x":20,"y":16}]},"13":{"objects":[{"id":3,"hp":44},{"id":181,"y":15}],"actions":[{"type":"move","unit_id":181,"x":20,"y":15},{"type":"attack","unit_id":182,"x":12,"y":0}]},"14":{"objects":[{"id":3,"hp":41},{"id":181,"x":19}],"actions":[{"type":"move","unit_id":181,"x":19,"y":15},{"type":"attack","unit_id":182,"x":12,"y":0}]},"15":{"objects":[{"id":3,"hp":38},{"id":181,"x":18}],"actions":[{"type":"move","unit_id":181,"x":18,"y":15},{"type":"attack","unit_id":182,"x":12,"y":0}]},"16":{"objects":[{"id":3,"hp":35},{"id":181,"x":17}],"actions":[{"type":"attack","unit_id":182,"x":12,"y":0},{"type":"move","unit_id":181,"x":17,"y":15}]},"17":{"objects":[{"id":3,"hp":32},{"id":181,"x":16}],"actions":[{"type":"move","unit_id":181,"x":16,"y":15},{"type":"attack","unit_id":182,"x":12,"y":0}]},"18":{"objects":[{"id":3,"hp":29},{"id":181,"x":15}],"actions":[{"type":"attack","unit_id":182,"x":12,"y":0},{"type":"move","unit_id":181,"x":15,"y":15}]},"19":{"objects":[{"id":3,"hp":26},{"id":119,"state":"dead"},{"id":181,"x":14,"balance":75}],"actions":[{"type":"move","unit_id":181,"x":14,"y":15},{"type":"attack","unit_id":182,"x":12,"y":0}]},"20":{"objects":[{"id":3,"hp":23},{"id":111,"state":"dead"},{"id":181,"y":14,"balance":150}],"actions":[{"type":"attack","unit_id":182,"x":12,"y":0},{"type":"move","unit_id":181,"x":14,"y":14}]},"21":{"objects":[{"id":3,"hp":20},{"id":103,"state":"dead"},{"id":181,"y":13,"balance":225}],"actions":[{"type":"attack","unit_id":182,"x":12,"y":0},{"type":"move","unit_id":181,"x":14,"y":13}]},"22":{"objects":[{"id":3,"hp":17},{"id":95,"state":"dead"},{"id":181,"y":12,"balance":300}],"actions":[{"type":"move","unit_id":181,"x":14,"y":12},{"type":"attack","unit_id":182,"x":12,"y":0}]},"23":{"objects":[{"id":3,"hp":14},{"id":87,"state":"dead"},{"id":181,"y":11,"balance":375}],"actions":[{"type":"attack","unit_id":182,"x":12,"y":0},{"type":"move","unit_id":181,"x":14,"y":11}]},"24":{"objects":[{"id":3,"hp":11},{"id":79,"state":"dead"},{"id":181,"y":10,"balance":450}],"actions":[{"type":"attack","unit_id":182,"x":12,"y":0},{"type":"move","unit_id":181,"x":14,"y":10}]},"25":{"objects":[{"id":3,"hp":8},{"id":71,"state":"dead"},{"id":181,"y":9,"balance":525}],"actions":[{"type":"move","unit_id":181,"x":14,"y":9},{"type":"attack","unit_id":182,"x":12,"y":0}]},"26":{"objects":[{"id":3,"hp":5},{"id":181,"y":10}],"actions":[{"type":"move","unit_id":181,"x":14,"y":10},{"type":"attack","unit_id":182,"x":12,"y":0}]},"27":{"objects":[{"id":3,"hp":2},{"id":181,"x":15}],"actions":[{"type":"attack","unit_id":182,"x":12,"y":0},{"type":"move","unit_id":181,"x":15,"y":10}]},"28":{"objects":[{"id":3,"state":"dead"},{"id":181,"x":16}],"actions":[{"type":"move","unit_id":181,"x":16,"y":10},{"type":"attack","unit_id":182,"x":12,"y":0}]},"29":{"objects":[{"id":182,"x":12},{"id":181,"y":11}],"actions":[{"type":"move","unit_id":181,"x":16,"y":11},{"type":"move","unit_id":182,"x":12,"y":0}]},"30":{"objects":[{"id":182,"x":13},{"id":181,"x":17}],"actions":[{"type":"move","unit_id":181,"x":17,"y":11},{"type":"move","unit_id":182,"x":13,"y":0}]},"31":{"objects":[{"id":182,"x":14},{"id":181,"y":12}],"actions":[{"type":"move","unit_id":182,"x":14,"y":0},{"type":"move","unit_id":181,"x":17,"y":12}]},"32":{"objects":[{"id":182,"x":15},{"id":181,"y":13}],"actions":[{"type":"move","unit_id":181,"x":17,"y":13},{"type":"move","unit_id":182,"x":15,"y":0}]},"33":{"objects":[{"id":182,"y":1},{"id":181,"y":14}],"actions":[{"type":"move","unit_id":181,"x":17,"y":14},{"type":"move","unit_id":182,"x":15,"y":1}]},"34":{"objects":[{"id":182,"x":16},{"id":181,"x":18}],"actions":[{"type":"move","unit_id":181,"x":18,"y":14},{"type":"move","unit_id":182,"x":16,"y":1}]},"35":{"objects":[{"id":182,"y":2},{"id":181,"y":15}],"actions":[{"type":"move","unit_id":182,"x":16,"y":2},{"type":"move","unit_id":181,"x":18,"y":15}]},"36":{"objects":[{"id":182,"x":17},{"id":181,"x":19}],"actions":[{"type":"move","unit_id":182,"x":17,"y":2},{"type":"move","unit_id":181,"x":19,"y":15}]},"37":{"objects":[{"id":182,"x":18},{"id":181,"y":16}],"actions":[{"type":"move","unit_id":181,"x":19,"y":16},{"type":"move","unit_id":182,"x":18,"y":2}]},"38":{"objects":[{"id":182,"y":3},{"id":181,"y":17}],"actions":[{"type":"move","unit_id":181,"x":19,"y":17},{"type":"move","unit_id":182,"x":18,"y":3}]},"39":{"objects":[{"id":182,"x":19},{"id":181,"x":20}],"actions":[{"type":"move","unit_id":181,"x":20,"y":17},{"type":"move","unit_id":182,"x":19,"y":3}]},"40":{"objects":[{"id":182,"y":4},{"id":181,"y":18}],"actions":[{"type":"move","unit_id":181,"x":20,"y":18},{"type":"move","unit_id":182,"x":19,"y":4}]},"41":{"objects":[{"id":182,"y":5},{"id":181,"x":21}],"actions":[{"type":"move","unit_id":181,"x":21,"y":18},{"type":"move","unit_id":182,"x":19,"y":5}]},"42":{"objects":[{"id":182,"y":6},{"id":181,"y":19}],"actions":[{"type":"move","unit_id":181,"x":21,"y":19},{"type":"move","unit_id":182,"x":19,"y":6}]},"43":{"objects":[{"id":182,"y":7},{"id":181,"y":20}],"actions":[{"type":"move","unit_id":182,"x":19,"y":7},{"type":"move","unit_id":181,"x":21,"y":20}]},"44":{"objects":[{"id":182,"y":8},{"id":181,"y":21}],"actions":[{"type":"move","unit_id":182,"x":19,"y":8},{"type":"move","unit_id":181,"x":21,"y":21}]},"45":{"objects":[{"id":182,"y":9},{"id":181,"y":22}],"actions":[{"type":"move","unit_id":182,"x":19,"y":9},{"type":"move","unit_id":181,"x":21,"y":22}]},"46":{"objects":[{"id":182,"x":18},{"id":181,"y":23}],"actions":[{"type":"move","unit_id":182,"x":18,"y":9},{"type":"move","unit_id":181,"x":21,"y":23}]},"47":{"objects":[{"id":182,"x":17},{"id":181,"x":22}],"actions":[{"type":"move","unit_id":182,"x":17,"y":9},{"type":"move","unit_id":181,"x":22,"y":23}]},"48":{"objects":[{"id":182,"x":16},{"id":181,"y":24}],"actions":[{"type":"move","unit_id":182,"x":16,"y":9},{"type":"move","unit_id":181,"x":22,"y":24}]},"49":{"objects":[{"id":182,"x":15},{"id":181,"x":23}],"actions":[{"type":"move","unit_id":182,"x":15,"y":9},{"type":"move","unit_id":181,"x":23,"y":24}]},"50":{"objects":[{"id":182,"x":14},{"id":181,"balance":0},{"id":2,"balance":525}],"actions":[{"type":"move","unit_id":182,"x":14,"y":9},{"type":"transfer_money","source_id":181,"x":24,"y":24,"amount":525}]},"51":{"objects":[{"id":60,"state":"dead"},{"id":182,"y":8,"balance":75},{"id":181,"y":23},{"id":2,"balance":425},{"id":183,"type":1,"x":23,"y":24,"hp":20,"teamId":2,"unit_type":1,"balance":0,"moveCooldown":4}],"actions":[{"type":"move","unit_id":181,"x":23,"y":23},{"type":"move","unit_id":182,"x":14,"y":8},{"type":"create","unit_type":1}]},"52":{"objects":[{"id":59,"state":"dead"},{"id":182,"x":13,"balance":150},{"id":181,"x":22},{"id":2,"balance":275},{"id":184,"type":1,"x":24,"y":23,"hp":35,"teamId":2,"unit_type":0,"balance":0,"moveCooldown":4}],"actions":[{"type":"move","unit_id":182,"x":13,"y":8},{"type":"move","unit_id":181,"x":22,"y":23},{"type":"create","unit_type":0}]},"53":{"objects":[{"id":49,"state":"dead"},{"id":182,"y":7,"balance":225},{"id":181,"y":22},{"id":2,"balance":75},{"id":185,"type":1,"x":22,"y":24,"hp":10,"teamId":2,"unit_type":2,"balance":0,"moveCooldown":0}],"actions":[{"type":"move","unit_id":181,"x":22,"y":22},{"type":"move","unit_id":182,"x":13,"y":7},{"type":"create","unit_type":2}]},"54":{"objects":[{"id":48,"state":"dead"},{"id":182,"x":12,"balance":300},{"id":181,"y":21},{"id":185,"y":23}],"actions":[{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":182,"x":12,"y":7}]},"55":{"objects":[{"id":39,"state":"dead"},{"id":182,"y":6,"balance":375},{"id":181,"y":20},{"id":185,"y":22}],"actions":[{"type":"move","unit_id":182,"x":12,"y":6},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":181,"x":22,"y":20}]},"56":{"objects":[{"id":182,"y":7},{"id":181,"y":19},{"id":185,"x":21}],"actions":[{"type":"move","unit_id":182,"x":12,"y":7},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":181,"x":22,"y":19}]},"57":{"objects":[{"id":47,"state":"dead"},{"id":182,"x":11,"balance":450},{"id":181,"x":21},{"id":185,"y":21},{"id":184,"y":22,"moveCooldown":4}],"actions":[{"type":"move","unit_id":184,"x":24,"y":22},{"type":"move","unit_id":182,"x":11,"y":7},{"type":"move","unit_id":181,"x":21,"y":19},{"type":"move","unit_id":185,"x":21,"y":21}]},"58":{"objects":[{"id":182,"y":8,"balance":525},{"id":57,"state":"dead"},{"id":181,"y":18},{"id":185,"y":20}],"actions":[{"type":"move","unit_id":185,"x":21,"y":20},{"type":"move","unit_id":181,"x":21,"y":18},{"type":"move","unit_id":182,"x":11,"y":8}]},"59":{"objects":[{"id":182,"x":12,"balance":600},{"id":58,"state":"dead"},{"id":181,"x":20},{"id":185,"y":19}],"actions":[{"type":"move","unit_id":181,"x":20,"y":18},{"type":"move","unit_id":182,"x":12,"y":8},{"type":"move","unit_id":185,"x":21,"y":19}]},"60":{"objects":[{"id":182,"x":13},{"id":181,"x":19},{"id":185,"y":18}],"actions":[{"type":"move","unit_id":182,"x":13,"y":8},{"type":"move","unit_id":185,"x":21,"y":18},{"type":"move","unit_id":181,"x":19,"y":18}]},"61":{"objects":[{"id":182,"x":14},{"id":181,"y":17},{"id":185,"y":17}],"actions":[{"type":"move","unit_id":182,"x":14,"y":8},{"type":"move","unit_id":185,"x":21,"y":17},{"type":"move","unit_id":181,"x":19,"y":17}]},"62":{"objects":[{"id":182,"y":9},{"id":181,"y":16},{"id":185,"y":16},{"id":184,"y":21,"moveCooldown":4}],"actions":[{"type":"move","unit_id":184,"x":24,"y":21},{"type":"move","unit_id":185,"x":21,"y":16},{"type":"move","unit_id":182,"x":14,"y":9},{"type":"move","unit_id":181,"x":19,"y":16}]},"63":{"objects":[{"id":182,"x":15},{"id":181,"y":15},{"id":185,"x":20}],"actions":[{"type":"move","unit_id":185,"x":20,"y":16},{"type":"move","unit_id":181,"x":19,"y":15},{"type":"move","unit_id":182,"x":15,"y":9}]},"64":{"objects":[{"id":182,"x":16},{"id":181,"x":18},{"id":185,"y":15}],"actions":[{"type":"move","unit_id":181,"x":18,"y":15},{"type":"move","unit_id":182,"x":16,"y":9},{"type":"move","unit_id":185,"x":20,"y":15}]},"65":{"objects":[{"id":182,"x":17},{"id":181,"x":17},{"id":185,"x":19}],"actions":[{"type":"move","unit_id":181,"x":17,"y":15},{"type":"move","unit_id":182,"x":17,"y":9},{"type":"move","unit_id":185,"x":19,"y":15}]},"66":{"objects":[{"id":182,"x":18},{"id":181,"x":16},{"id":185,"x":18}],"actions":[{"type":"move","unit_id":185,"x":18,"y":15},{"type":"move","unit_id":182,"x":18,"y":9},{"type":"move","unit_id":181,"x":16,"y":15}]},"67":{"objects":[{"id":182,"x":19},{"id":181,"x":15},{"id":185,"x":17},{"id":184,"y":20,"moveCooldown":4}],"actions":[{"type":"move","unit_id":185,"x":17,"y":15},{"type":"move","unit_id":181,"x":15,"y":15},{"type":"move","unit_id":182,"x":19,"y":9},{"type":"move","unit_id":184,"x":24,"y":20}]},"68":{"objects":[{"id":182,"y":8},{"id":181,"x":14},{"id":185,"x":16}],"actions":[{"type":"move","unit_id":181,"x":14,"y":15},{"type":"move","unit_id":185,"x":16,"y":15},{"type":"move","unit_id":182,"x":19,"y":8}]},"69":{"objects":[{"id":182,"y":7},{"id":118,"state":"dead"},{"id":181,"x":13,"balance":75},{"id":185,"x":15}],"actions":[{"type":"move","unit_id":181,"x":13,"y":15},{"type":"move","unit_id":185,"x":15,"y":15},{"type":"move","unit_id":182,"x":19,"y":7}]},"70":{"objects":[{"id":182,"y":6},{"id":110,"state":"dead"},{"id":181,"y":14,"balance":150},{"id":185,"y":16}],"actions":[{"type":"move","unit_id":185,"x":15,"y":16},{"type":"move","unit_id":181,"x":13,"y":14},{"type":"move","unit_id":182,"x":19,"y":6}]},"71":{"objects":[{"id":182,"y":5},{"id":102,"state":"dead"},{"id":181,"y":13,"balance":225},{"id":127,"state":"dead"},{"id":185,"x":14,"balance":75}],"actions":[{"type":"move","unit_id":185,"x":14,"y":16},{"type":"move","unit_id":182,"x":19,"y":5},{"type":"move","unit_id":181,"x":13,"y":13}]},"72":{"objects":[{"id":182,"y":4},{"id":94,"state":"dead"},{"id":181,"y":12,"balance":300},{"id":126,"state":"dead"},{"id":185,"x":13,"balance":150},{"id":184,"y":19,"moveCooldown":4}],"actions":[{"type":"move","unit_id":182,"x":19,"y":4},{"type":"move","unit_id":185,"x":13,"y":16},{"type":"move","unit_id":184,"x":24,"y":19},{"type":"move","unit_id":181,"x":13,"y":12}]},"73":{"objects":[{"id":182,"y":3},{"id":86,"state":"dead"},{"id":181,"y":11,"balance":375},{"id":125,"state":"dead"},{"id":185,"x":12,"balance":225}],"actions":[{"type":"move","unit_id":185,"x":12,"y":16},{"type":"move","unit_id":182,"x":19,"y":3},{"type":"move","unit_id":181,"x":13,"y":11}]},"74":{"objects":[{"id":182,"x":18},{"id":78,"state":"dead"},{"id":181,"y":10,"balance":450},{"id":117,"state":"dead"},{"id":185,"y":15,"balance":300}],"actions":[{"type":"move","unit_id":185,"x":12,"y":15},{"type":"move","unit_id":181,"x":13,"y":10},{"type":"move","unit_id":182,"x":18,"y":3}]},"75":{"objects":[{"id":182,"y":2},{"id":70,"state":"dead"},{"id":181,"y":9,"balance":525},{"id":109,"state":"dead"},{"id":185,"y":14,"balance":375}],"actions":[{"type":"move","unit_id":185,"x":12,"y":14},{"type":"move","unit_id":181,"x":13,"y":9},{"type":"move","unit_id":182,"x":18,"y":2}]},"76":{"objects":[{"id":182,"x":17},{"id":181,"x":14},{"id":101,"state":"dead"},{"id":185,"y":13,"balance":450}],"actions":[{"type":"move","unit_id":185,"x":12,"y":13},{"type":"move","unit_id":181,"x":14,"y":9},{"type":"move","unit_id":182,"x":17,"y":2}]},"77":{"objects":[{"id":182,"x":16},{"id":181,"x":15},{"id":93,"state":"dead"},{"id":185,"y":12,"balance":525},{"id":184,"y":18,"moveCooldown":4}],"actions":[{"type":"move","unit_id":182,"x":16,"y":2},{"type":"move","unit_id":181,"x":15,"y":9},{"type":"move","unit_id":185,"x":12,"y":12},{"type":"move","unit_id":184,"x":24,"y":18}]},"78":{"objects":[{"id":182,"x":15},{"id":181,"y":10},{"id":185,"x":13}],"actions":[{"type":"move","unit_id":185,"x":13,"y":12},{"type":"move","unit_id":181,"x":15,"y":10},{"type":"move","unit_id":182,"x":15,"y":2}]},"79":{"objects":[{"id":182,"y":1},{"id":181,"y":11},{"id":185,"x":14}],"actions":[{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":185,"x":14,"y":12},{"type":"move","unit_id":181,"x":15,"y":11}]},"80":{"objects":[{"id":182,"y":0},{"id":181,"x":16},{"id":185,"x":15}],"actions":[{"type":"move","unit_id":185,"x":15,"y":12},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":181,"x":16,"y":11}]},"81":{"objects":[{"id":182,"x":14},{"id":185,"x":16}],"actions":[{"type":"move","unit_id":182,"x":14,"y":0},{"type":"move","unit_id":185,"x":16,"y":12}]},"82":{"objects":[{"id":182,"x":13},{"id":181,"x":17},{"id":185,"x":17},{"id":184,"y":17,"moveCooldown":4}],"actions":[{"type":"move","unit_id":185,"x":17,"y":12},{"type":"move","unit_id":184,"x":24,"y":17},{"type":"move","unit_id":182,"x":13,"y":0},{"type":"move","unit_id":181,"x":17,"y":11}]},"83":{"objects":[{"id":182,"x":12},{"id":181,"x":18},{"id":185,"x":18}],"actions":[{"type":"move","unit_id":182,"x":12,"y":0},{"type":"move","unit_id":181,"x":18,"y":11},{"type":"move","unit_id":185,"x":18,"y":12}]},"84":{"objects":[{"id":182,"x":11},{"id":181,"x":19},{"id":185,"y":13}],"actions":[{"type":"move","unit_id":181,"x":19,"y":11},{"type":"move","unit_id":185,"x":18,"y":13},{"type":"move","unit_id":182,"x":11,"y":0}]},"85":{"objects":[{"id":182,"x":10},{"id":181,"y":12},{"id":185,"y":14}],"actions":[{"type":"move","unit_id":185,"x":18,"y":14},{"type":"move","unit_id":182,"x":10,"y":0},{"type":"move","unit_id":181,"x":19,"y":12}]},"86":{"objects":[{"id":182,"x":9},{"id":181,"y":13},{"id":185,"x":19}],"actions":[{"type":"move","unit_id":185,"x":19,"y":14},{"type":"move","unit_id":181,"x":19,"y":13},{"type":"move","unit_id":182,"x":9,"y":0}]},"87":{"objects":[{"id":182,"x":8},{"id":181,"x":20},{"id":185,"y":15},{"id":184,"y":16,"moveCooldown":4}],"actions":[{"type":"move","unit_id":184,"x":24,"y":16},{"type":"move","unit_id":185,"x":19,"y":15},{"type":"move","unit_id":182,"x":8,"y":0},{"type":"move","unit_id":181,"x":20,"y":13}]},"88":{"objects":[{"id":182,"x":7},{"id":181,"y":14},{"id":185,"y":16}],"actions":[{"type":"move","unit_id":181,"x":20,"y":14},{"type":"move","unit_id":182,"x":7,"y":0},{"type":"move","unit_id":185,"x":19,"y":16}]},"89":{"objects":[{"id":182,"x":6},{"id":181,"y":15},{"id":185,"y":17}],"actions":[{"type":"move","unit_id":182,"x":6,"y":0},{"type":"move","unit_id":181,"x":20,"y":15},{"type":"move","unit_id":185,"x":19,"y":17}]},"90":{"objects":[{"id":182,"x":5},{"id":181,"y":16},{"id":185,"y":18}],"actions":[{"type":"move","unit_id":182,"x":5,"y":0},{"type":"move","unit_id":181,"x":20,"y":16},{"type":"move","unit_id":185,"x":19,"y":18}]},"91":{"objects":[{"id":182,"x":4},{"id":181,"y":17},{"id":185,"y":19}],"actions":[{"type":"move","unit_id":181,"x":20,"y":17},{"type":"move","unit_id":182,"x":4,"y":0},{"type":"move","unit_id":185,"x":19,"y":19}]},"92":{"objects":[{"id":182,"x":3},{"id":184,"y":15,"moveCooldown":4},{"id":181,"y":18},{"id":185,"y":20}],"actions":[{"type":"move","unit_id":182,"x":3,"y":0},{"type":"move","unit_id":181,"x":20,"y":18},{"type":"move","unit_id":184,"x":24,"y":15},{"type":"move","unit_id":185,"x":19,"y":20}]},"93":{"objects":[{"id":182,"x":2},{"id":181,"y":19},{"id":185,"x":20}],"actions":[{"type":"move","unit_id":182,"x":2,"y":0},{"type":"move","unit_id":181,"x":20,"y":19},{"type":"move","unit_id":185,"x":20,"y":20}]},"94":{"objects":[{"id":182,"x":1},{"id":181,"x":21},{"id":185,"x":21}],"actions":[{"type":"move","unit_id":185,"x":21,"y":20},{"type":"move","unit_id":181,"x":21,"y":19},{"type":"move","unit_id":182,"x":1,"y":0}]},"95":{"objects":[{"id":1,"balance":600},{"id":182,"balance":0},{"id":181,"x":22},{"id":185,"y":21}],"actions":[{"type":"move","unit_id":181,"x":22,"y":19},{"type":"transfer_money","source_id":182,"x":0,"y":0,"amount":600},{"type":"move","unit_id":185,"x":21,"y":21}]},"96":{"objects":[{"id":1,"balance":500},{"id":182,"x":2},{"id":181,"y":20},{"id":185,"x":22},{"id":186,"type":1,"x":1,"y":0,"hp":20,"teamId":1,"unit_type":1,"balance":0,"moveCooldown":4}],"actions":[{"type":"move","unit_id":182,"x":2,"y":0},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":181,"x":22,"y":20},{"type":"create","unit_type":1}]},"97":{"objects":[{"id":1,"balance":350},{"id":182,"x":3},{"id":184,"y":14,"moveCooldown":4},{"id":181,"x":23},{"id":185,"y":22},{"id":187,"type":1,"x":0,"y":1,"hp":35,"teamId":1,"unit_type":0,"balance":0,"moveCooldown":4}],"actions":[{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":182,"x":3,"y":0},{"type":"create","unit_type":0},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":184,"x":24,"y":14}]},"98":{"objects":[{"id":1,"balance":150},{"id":182,"x":4},{"id":181,"y":21},{"id":185,"y":23},{"id":188,"type":1,"x":2,"y":0,"hp":10,"teamId":1,"unit_type":2,"balance":0,"moveCooldown":0}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"create","unit_type":2},{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":182,"x":4,"y":0}]},"99":{"objects":[{"id":1,"balance":50},{"id":188,"x":3},{"id":182,"x":5},{"id":181,"y":22},{"id":185,"y":24},{"id":189,"type":1,"x":2,"y":0,"hp":20,"teamId":1,"unit_type":1,"balance":0,"moveCooldown":4}],"actions":[{"type":"move","unit_id":188,"x":3,"y":0},{"type":"move","unit_id":181,"x":23,"y":22},{"type":"move","unit_id":182,"x":5,"y":0},{"type":"move","unit_id":185,"x":22,"y":24},{"type":"create","unit_type":1}]},"100":{"objects":[{"id":188,"x":4},{"id":182,"x":6},{"id":181,"y":23},{"id":185,"y":23}],"actions":[{"type":"move","unit_id":181,"x":23,"y":23},{"type":"move","unit_id":182,"x":6,"y":0},{"type":"move","unit_id":188,"x":4,"y":0},{"type":"move","unit_id":185,"x":22,"y":23}]},"101":{"objects":[{"id":188,"x":5},{"id":182,"x":7},{"id":185,"y":24},{"id":181,"x":24}],"actions":[{"type":"move","unit_id":181,"x":24,"y":23},{"type":"move","unit_id":185,"x":22,"y":24},{"type":"move","unit_id":182,"x":7,"y":0},{"type":"move","unit_id":188,"x":5,"y":0}]},"102":{"objects":[{"id":188,"x":6},{"id":182,"x":8},{"id":187,"x":1,"moveCooldown":4},{"id":184,"y":13,"moveCooldown":4},{"id":181,"balance":0},{"id":185,"balance":0},{"id":2,"balance":1125}],"actions":[{"type":"transfer_money","source_id":185,"x":24,"y":24,"amount":525},{"type":"move","unit_id":182,"x":8,"y":0},{"type":"transfer_money","source_id":181,"x":24,"y":24,"amount":525},{"type":"move","unit_id":184,"x":24,"y":13},{"type":"move","unit_id":188,"x":6,"y":0},{"type":"move","unit_id":187,"x":1,"y":1}]},"103":{"objects":[{"id":188,"x":7},{"id":182,"x":9},{"id":181,"y":22},{"id":185,"y":23},{"id":2,"balance":1025},{"id":190,"type":1,"x":23,"y":23,"hp":20,"teamId":2,"unit_type":1,"balance":0,"moveCooldown":4}],"actions":[{"type":"create","unit_type":1},{"type":"move","unit_id":181,"x":24,"y":22},{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":188,"x":7,"y":0},{"type":"move","unit_id":182,"x":9,"y":0}]},"104":{"objects":[{"id":188,"x":8},{"id":182,"x":10},{"id":181,"x":23},{"id":185,"y":22},{"id":2,"balance":875},{"id":191,"type":1,"x":24,"y":23,"hp":35,"teamId":2,"unit_type":0,"balance":0,"moveCooldown":4}],"actions":[{"type":"move","unit_id":181,"x":23,"y":22},{"type":"create","unit_type":0},{"type":"move","unit_id":182,"x":10,"y":0},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":188,"x":8,"y":0}]},"105":{"objects":[{"id":188,"x":9},{"id":182,"x":11},{"id":185,"y":21},{"id":181,"y":21},{"id":2,"balance":675},{"id":192,"type":1,"x":22,"y":24,"hp":10,"teamId":2,"unit_type":2,"balance":0,"moveCooldown":0}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":182,"x":11,"y":0},{"type":"create","unit_type":2},{"type":"move","unit_id":188,"x":9,"y":0}]},"106":{"objects":[{"id":188,"x":10},{"id":182,"x":12},{"id":185,"y":20},{"id":181,"y":20},{"id":192,"y":23},{"id":2,"balance":575},{"id":193,"type":1,"x":24,"y":22,"hp":20,"teamId":2,"unit_type":1,"balance":0,"moveCooldown":4}],"actions":[{"type":"create","unit_type":1},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":185,"x":22,"y":20},{"type":"move","unit_id":188,"x":10,"y":0},{"type":"move","unit_id":182,"x":12,"y":0}]},"107":{"objects":[{"id":188,"x":11},{"id":182,"x":13},{"id":187,"x":2,"moveCooldown":4},{"id":184,"x":23,"moveCooldown":4},{"id":185,"x":21},{"id":181,"y":19},{"id":192,"y":22},{"id":2,"balance":425},{"id":194,"type":1,"x":22,"y":24,"hp":35,"teamId":2,"unit_type":0,"balance":0,"moveCooldown":4}],"actions":[{"type":"move","unit_id":192,"x":22,"y":22},{"type":"move","unit_id":184,"x":23,"y":13},{"type":"move","unit_id":181,"x":23,"y":19},{"type":"move","unit_id":182,"x":13,"y":0},{"type":"move","unit_id":188,"x":11,"y":0},{"type":"move","unit_id":185,"x":21,"y":20},{"type":"move","unit_id":187,"x":2,"y":1},{"type":"create","unit_type":0}]},"108":{"objects":[{"id":188,"x":12},{"id":182,"x":14},{"id":181,"x":22},{"id":185,"y":19},{"id":192,"y":21},{"id":2,"balance":225},{"id":195,"type":1,"x":21,"y":24,"hp":10,"teamId":2,"unit_type":2,"balance":0,"moveCooldown":0}],"actions":[{"type":"move","unit_id":182,"x":14,"y":0},{"type":"move","unit_id":185,"x":21,"y":19},{"type":"create","unit_type":2},{"type":"move","unit_id":181,"x":22,"y":19},{"type":"move","unit_id":192,"x":22,"y":21},{"type":"move","unit_id":188,"x":12,"y":0}]},"109":{"objects":[{"id":188,"x":13},{"id":182,"x":15},{"id":185,"y":18},{"id":181,"y":18},{"id":192,"y":20},{"id":195,"y":23},{"id":2,"balance":125},{"id":196,"type":1,"x":21,"y":24,"hp":20,"teamId":2,"unit_type":1,"balance":0,"moveCooldown":4}],"actions":[{"type":"move","unit_id":195,"x":21,"y":23},{"type":"create","unit_type":1},{"type":"move","unit_id":192,"x":22,"y":20},{"type":"move","unit_id":185,"x":21,"y":18},{"type":"move","unit_id":188,"x":13,"y":0},{"type":"move","unit_id":181,"x":22,"y":18},{"type":"move","unit_id":182,"x":15,"y":0}]},"110":{"objects":[{"id":188,"x":14},{"id":182,"y":1},{"id":185,"x":20},{"id":181,"y":17},{"id":192,"y":19},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":181,"x":22,"y":17},{"type":"move","unit_id":195,"x":21,"y":22},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":185,"x":20,"y":18},{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":192,"x":22,"y":19}]},"111":{"objects":[{"id":188,"x":15},{"id":182,"y":2},{"id":181,"y":16},{"id":185,"y":17},{"id":192,"y":18},{"id":195,"y":21}],"actions":[{"type":"move","unit_id":195,"x":21,"y":21},{"type":"move","unit_id":185,"x":20,"y":17},{"type":"move","unit_id":182,"x":15,"y":2},{"type":"move","unit_id":192,"x":22,"y":18},{"type":"move","unit_id":188,"x":15,"y":0},{"type":"move","unit_id":181,"x":22,"y":16}]},"112":{"objects":[{"id":188,"x":16},{"id":187,"x":3,"moveCooldown":4},{"id":182,"x":16},{"id":184,"y":12,"moveCooldown":4},{"id":181,"x":21},{"id":185,"y":16},{"id":192,"y":17},{"id":195,"y":20},{"id":194,"y":23,"moveCooldown":4}],"actions":[{"type":"move","unit_id":188,"x":16,"y":0},{"type":"move","unit_id":194,"x":22,"y":23},{"type":"move","unit_id":192,"x":22,"y":17},{"type":"move","unit_id":195,"x":21,"y":20},{"type":"move","unit_id":184,"x":23,"y":12},{"type":"move","unit_id":181,"x":21,"y":16},{"type":"move","unit_id":182,"x":16,"y":2},{"type":"move","unit_id":187,"x":3,"y":1},{"type":"move","unit_id":185,"x":20,"y":16}]},"113":{"objects":[{"id":188,"y":1},{"id":182,"x":17},{"id":185,"y":15},{"id":181,"y":15},{"id":192,"x":21},{"id":195,"y":19}],"actions":[{"type":"move","unit_id":188,"x":16,"y":1},{"type":"move","unit_id":185,"x":20,"y":15},{"type":"move","unit_id":192,"x":21,"y":17},{"type":"move","unit_id":181,"x":21,"y":15},{"type":"move","unit_id":195,"x":21,"y":19},{"type":"move","unit_id":182,"x":17,"y":2}]},"114":{"objects":[{"id":188,"y":2},{"id":182,"y":3},{"id":185,"x":19},{"id":181,"y":14},{"id":192,"x":20},{"id":195,"x":20}],"actions":[{"type":"move","unit_id":181,"x":21,"y":14},{"type":"move","unit_id":185,"x":19,"y":15},{"type":"move","unit_id":192,"x":20,"y":17},{"type":"move","unit_id":182,"x":17,"y":3},{"type":"move","unit_id":188,"x":16,"y":2},{"type":"move","unit_id":195,"x":20,"y":19}]},"115":{"objects":[{"id":188,"x":17},{"id":182,"x":18},{"id":181,"x":20},{"id":185,"x":18},{"id":192,"y":16},{"id":195,"y":18}],"actions":[{"type":"move","unit_id":188,"x":17,"y":2},{"type":"move","unit_id":182,"x":18,"y":3},{"type":"move","unit_id":185,"x":18,"y":15},{"type":"move","unit_id":181,"x":20,"y":14},{"type":"move","unit_id":195,"x":20,"y":18},{"type":"move","unit_id":192,"x":20,"y":16}]},"116":{"objects":[{"id":188,"x":18},{"id":182,"x":19},{"id":181,"x":19},{"id":185,"x":17},{"id":192,"x":19},{"id":195,"y":17}],"actions":[{"type":"move","unit_id":181,"x":19,"y":14},{"type":"move","unit_id":182,"x":19,"y":3},{"type":"move","unit_id":188,"x":18,"y":2},{"type":"move","unit_id":185,"x":17,"y":15},{"type":"move","unit_id":195,"x":20,"y":17},{"type":"move","unit_id":192,"x":19,"y":16}]},"117":{"objects":[{"id":187,"x":4,"moveCooldown":4},{"id":188,"x":19},{"id":182,"y":4},{"id":184,"y":11,"moveCooldown":4},{"id":181,"x":18},{"id":185,"x":16},{"id":192,"y":15},{"id":195,"y":16},{"id":194,"y":22,"moveCooldown":4}],"actions":[{"type":"move","unit_id":188,"x":19,"y":2},{"type":"move","unit_id":194,"x":22,"y":22},{"type":"move","unit_id":192,"x":19,"y":15},{"type":"move","unit_id":187,"x":4,"y":1},{"type":"move","unit_id":195,"x":20,"y":16},{"type":"move","unit_id":184,"x":23,"y":11},{"type":"move","unit_id":182,"x":19,"y":4},{"type":"move","unit_id":181,"x":18,"y":14},{"type":"move","unit_id":185,"x":16,"y":15}]},"118":{"objects":[{"id":188,"y":3},{"id":182,"y":5},{"id":181,"x":17},{"id":185,"x":15},{"id":192,"x":18},{"id":195,"y":15}],"actions":[{"type":"move","unit_id":185,"x":15,"y":15},{"type":"move","unit_id":181,"x":17,"y":14},{"type":"move","unit_id":182,"x":19,"y":5},{"type":"move","unit_id":188,"x":19,"y":3},{"type":"move","unit_id":195,"x":20,"y":15},{"type":"move","unit_id":192,"x":18,"y":15}]},"119":{"objects":[{"id":188,"y":4},{"id":182,"y":6},{"id":181,"x":16},{"id":185,"x":14},{"id":192,"x":17},{"id":195,"x":19}],"actions":[{"type":"move","unit_id":185,"x":14,"y":15},{"type":"move","unit_id":188,"x":19,"y":4},{"type":"move","unit_id":182,"x":19,"y":6},{"type":"move","unit_id":181,"x":16,"y":14},{"type":"move","unit_id":192,"x":17,"y":15},{"type":"move","unit_id":195,"x":19,"y":15}]},"120":{"objects":[{"id":188,"y":5},{"id":182,"y":7},{"id":181,"x":15},{"id":185,"x":13},{"id":192,"x":16},{"id":195,"x":18}],"actions":[{"type":"move","unit_id":185,"x":13,"y":15},{"type":"move","unit_id":188,"x":19,"y":5},{"type":"move","unit_id":195,"x":18,"y":15},{"type":"move","unit_id":192,"x":16,"y":15},{"type":"move","unit_id":181,"x":15,"y":14},{"type":"move","unit_id":182,"x":19,"y":7}]},"121":{"objects":[{"id":188,"y":6},{"id":182,"y":8},{"id":181,"x":14},{"id":185,"x":12},{"id":192,"x":15},{"id":195,"x":17}],"actions":[{"type":"move","unit_id":182,"x":19,"y":8},{"type":"move","unit_id":192,"x":15,"y":15},{"type":"move","unit_id":185,"x":12,"y":15},{"type":"move","unit_id":181,"x":14,"y":14},{"type":"move","unit_id":188,"x":19,"y":6},{"type":"move","unit_id":195,"x":17,"y":15}]},"122":{"objects":[{"id":187,"x":5,"moveCooldown":4},{"id":188,"y":7},{"id":182,"y":9},{"id":184,"x":22,"moveCooldown":4},{"id":181,"x":13},{"id":116,"state":"dead"},{"id":185,"x":11,"balance":75},{"id":192,"x":14},{"id":195,"x":16},{"id":194,"y":21,"moveCooldown":4}],"actions":[{"type":"move","unit_id":185,"x":11,"y":15},{"type":"move","unit_id":181,"x":13,"y":14},{"type":"move","unit_id":182,"x":19,"y":9},{"type":"move","unit_id":195,"x":16,"y":15},{"type":"move","unit_id":192,"x":14,"y":15},{"type":"move","unit_id":188,"x":19,"y":7},{"type":"move","unit_id":194,"x":22,"y":21},{"type":"move","unit_id":187,"x":5,"y":1},{"type":"move","unit_id":184,"x":22,"y":11}]},"123":{"objects":[{"id":188,"y":8},{"id":182,"x":18},{"id":108,"state":"dead"},{"id":181,"x":12},{"id":185,"y":14,"balance":150},{"id":192,"y":16},{"id":195,"x":15}],"actions":[{"type":"move","unit_id":181,"x":12,"y":14},{"type":"move","unit_id":188,"x":19,"y":8},{"type":"move","unit_id":192,"x":14,"y":16},{"type":"move","unit_id":185,"x":11,"y":14},{"type":"move","unit_id":195,"x":15,"y":15},{"type":"move","unit_id":182,"x":18,"y":9}]},"124":{"objects":[{"id":188,"y":9},{"id":182,"x":17},{"id":100,"state":"dead"},{"id":185,"y":13,"balance":225},{"id":181,"y":13},{"id":195,"y":16},{"id":192,"x":13}],"actions":[{"type":"move","unit_id":192,"x":13,"y":16},{"type":"move","unit_id":188,"x":19,"y":9},{"type":"move","unit_id":185,"x":11,"y":13},{"type":"move","unit_id":182,"x":17,"y":9},{"type":"move","unit_id":181,"x":12,"y":13},{"type":"move","unit_id":195,"x":15,"y":16}]},"125":{"objects":[{"id":182,"x":16},{"id":188,"x":18},{"id":92,"state":"dead"},{"id":185,"y":12,"balance":300},{"id":181,"y":12},{"id":192,"y":17,"balance":75},{"id":195,"x":14},{"id":136,"state":"dead"}],"actions":[{"type":"move","unit_id":182,"x":16,"y":9},{"type":"move","unit_id":195,"x":14,"y":16},{"type":"move","unit_id":192,"x":13,"y":17},{"type":"move","unit_id":185,"x":11,"y":12},{"type":"move","unit_id":181,"x":12,"y":12},{"type":"move","unit_id":188,"x":18,"y":9}]},"126":{"objects":[{"id":182,"x":15},{"id":188,"x":17},{"id":84,"state":"dead"},{"id":85,"state":"dead"},{"id":185,"y":11,"balance":375},{"id":181,"y":11,"balance":75},{"id":195,"x":13},{"id":135,"state":"dead"},{"id":192,"x":12,"balance":150}],"actions":[{"type":"move","unit_id":182,"x":15,"y":9},{"type":"move","unit_id":188,"x":17,"y":9},{"type":"move","unit_id":185,"x":11,"y":11},{"type":"move","unit_id":195,"x":13,"y":16},{"type":"move","unit_id":192,"x":12,"y":17},{"type":"move","unit_id":181,"x":12,"y":11}]},"127":{"objects":[{"id":187,"x":6,"moveCooldown":4},{"id":182,"x":14},{"id":188,"x":16},{"id":76,"state":"dead"},{"id":77,"state":"dead"},{"id":185,"y":10,"balance":450},{"id":181,"y":10,"balance":150},{"id":184,"x":21,"moveCooldown":4},{"id":195,"x":12},{"id":134,"state":"dead"},{"id":192,"x":11,"balance":225},{"id":194,"y":20,"moveCooldown":4}],"actions":[{"type":"move","unit_id":185,"x":11,"y":10},{"type":"move","unit_id":194,"x":22,"y":20},{"type":"move","unit_id":182,"x":14,"y":9},{"type":"move","unit_id":192,"x":11,"y":17},{"type":"move","unit_id":187,"x":6,"y":1},{"type":"move","unit_id":181,"x":12,"y":10},{"type":"move","unit_id":195,"x":12,"y":16},{"type":"move","unit_id":184,"x":21,"y":11},{"type":"move","unit_id":188,"x":16,"y":9}]},"128":{"objects":[{"id":68,"state":"dead"},{"id":69,"state":"dead"},{"id":182,"x":13},{"id":188,"x":15},{"id":185,"y":9,"balance":525},{"id":181,"y":9,"balance":225},{"id":124,"state":"dead"},{"id":192,"y":16,"balance":300}],"actions":[{"type":"move","unit_id":188,"x":15,"y":9},{"type":"move","unit_id":192,"x":11,"y":16},{"type":"move","unit_id":185,"x":11,"y":9},{"type":"move","unit_id":181,"x":12,"y":9},{"type":"move","unit_id":182,"x":13,"y":9}]},"129":{"objects":[{"id":185,"y":10},{"id":181,"y":8},{"id":182,"y":10},{"id":188,"x":14},{"id":123,"state":"dead"},{"id":192,"x":10,"balance":375},{"id":195,"y":15}],"actions":[{"type":"move","unit_id":181,"x":12,"y":8},{"type":"move","unit_id":185,"x":11,"y":10},{"type":"move","unit_id":182,"x":13,"y":10},{"type":"move","unit_id":195,"x":12,"y":15},{"type":"move","unit_id":188,"x":14,"y":9},{"type":"move","unit_id":192,"x":10,"y":16}]},"130":{"objects":[{"id":181,"x":11},{"id":188,"x":13},{"id":185,"y":11},{"id":182,"x":12},{"id":115,"state":"dead"},{"id":195,"x":11},{"id":192,"y":15,"balance":450}],"actions":[{"type":"move","unit_id":192,"x":10,"y":15},{"type":"move","unit_id":185,"x":11,"y":11},{"type":"move","unit_id":188,"x":13,"y":9},{"type":"move","unit_id":182,"x":12,"y":10},{"type":"move","unit_id":181,"x":11,"y":8},{"type":"move","unit_id":195,"x":11,"y":15}]},"131":{"objects":[{"id":56,"state":"dead"},{"id":181,"x":10,"balance":300},{"id":188,"x":12},{"id":182,"x":11},{"id":185,"x":12},{"id":107,"state":"dead"},{"id":192,"y":14,"balance":525},{"id":195,"y":14}],"actions":[{"type":"move","unit_id":192,"x":10,"y":14},{"type":"move","unit_id":185,"x":12,"y":11},{"type":"move","unit_id":195,"x":11,"y":14},{"type":"move","unit_id":188,"x":12,"y":9},{"type":"move","unit_id":182,"x":11,"y":10},{"type":"move","unit_id":181,"x":10,"y":8}]},"132":{"objects":[{"id":187,"x":7,"moveCooldown":4},{"id":181,"y":9,"balance":375},{"id":67,"state":"dead"},{"id":188,"x":11},{"id":75,"state":"dead"},{"id":182,"x":10,"balance":75},{"id":185,"x":13},{"id":184,"x":20,"moveCooldown":4},{"id":192,"y":15},{"id":195,"y":13},{"id":194,"x":21,"moveCooldown":4}],"actions":[{"type":"move","unit_id":187,"x":7,"y":1},{"type":"move","unit_id":185,"x":13,"y":11},{"type":"move","unit_id":192,"x":10,"y":15},{"type":"move","unit_id":195,"x":11,"y":13},{"type":"move","unit_id":184,"x":20,"y":11},{"type":"move","unit_id":181,"x":10,"y":9},{"type":"move","unit_id":188,"x":11,"y":9},{"type":"move","unit_id":182,"x":10,"y":10},{"type":"move","unit_id":194,"x":21,"y":20}]},"133":{"objects":[{"id":181,"x":9},{"id":188,"y":10},{"id":182,"y":11,"balance":150},{"id":83,"state":"dead"},{"id":185,"x":14},{"id":99,"state":"dead"},{"id":195,"x":10,"balance":75},{"id":192,"x":11}],"actions":[{"type":"move","unit_id":188,"x":11,"y":10},{"type":"move","unit_id":195,"x":10,"y":13},{"type":"move","unit_id":192,"x":11,"y":15},{"type":"move","unit_id":182,"x":10,"y":11},{"type":"move","unit_id":181,"x":9,"y":9},{"type":"move","unit_id":185,"x":14,"y":11}]},"134":{"objects":[{"id":181,"y":10},{"id":188,"y":11},{"id":182,"y":12,"balance":225},{"id":185,"x":15},{"id":91,"state":"dead"},{"id":192,"x":12}],"actions":[{"type":"move","unit_id":188,"x":11,"y":11},{"type":"move","unit_id":182,"x":10,"y":12},{"type":"move","unit_id":192,"x":12,"y":15},{"type":"move","unit_id":181,"x":9,"y":10},{"type":"move","unit_id":185,"x":15,"y":11}]},"135":{"objects":[{"id":181,"y":11},{"id":188,"y":12},{"id":185,"x":16},{"id":195,"y":14},{"id":192,"x":13}],"actions":[{"type":"move","unit_id":188,"x":11,"y":12},{"type":"move","unit_id":181,"x":9,"y":11},{"type":"move","unit_id":195,"x":10,"y":14},{"type":"move","unit_id":192,"x":13,"y":15},{"type":"move","unit_id":185,"x":16,"y":11}]},"136":{"objects":[{"id":181,"y":12},{"id":185,"y":12},{"id":182,"y":13},{"id":188,"y":13},{"id":195,"x":11},{"id":192,"x":14}],"actions":[{"type":"move","unit_id":181,"x":9,"y":12},{"type":"move","unit_id":195,"x":11,"y":14},{"type":"move","unit_id":192,"x":14,"y":15},{"type":"move","unit_id":188,"x":11,"y":13},{"type":"move","unit_id":185,"x":16,"y":12},{"type":"move","unit_id":182,"x":10,"y":13}]},"137":{"objects":[{"id":187,"x":8,"moveCooldown":4},{"id":184,"x":19,"moveCooldown":4},{"id":181,"y":13},{"id":185,"y":13},{"id":182,"y":14},{"id":188,"x":12},{"id":195,"y":15},{"id":192,"x":15},{"id":194,"y":19,"moveCooldown":4}],"actions":[{"type":"move","unit_id":195,"x":11,"y":15},{"type":"move","unit_id":188,"x":12,"y":13},{"type":"move","unit_id":182,"x":10,"y":14},{"type":"move","unit_id":192,"x":15,"y":15},{"type":"move","unit_id":185,"x":16,"y":13},{"type":"move","unit_id":194,"x":21,"y":19},{"type":"move","unit_id":181,"x":9,"y":13},{"type":"move","unit_id":187,"x":8,"y":1},{"type":"move","unit_id":184,"x":19,"y":11}]},"138":{"objects":[{"id":181,"y":14},{"id":188,"y":14},{"id":185,"x":17},{"id":182,"y":15},{"id":195,"y":16},{"id":192,"x":16}],"actions":[{"type":"move","unit_id":195,"x":11,"y":16},{"type":"move","unit_id":192,"x":16,"y":15},{"type":"move","unit_id":188,"x":12,"y":14},{"type":"move","unit_id":182,"x":10,"y":15},{"type":"move","unit_id":185,"x":17,"y":13},{"type":"move","unit_id":181,"x":9,"y":14}]},"139":{"objects":[{"id":185,"x":18},{"id":181,"y":15},{"id":188,"y":15},{"id":182,"y":16},{"id":192,"x":17},{"id":195,"y":17}],"actions":[{"type":"move","unit_id":192,"x":17,"y":15},{"type":"move","unit_id":185,"x":18,"y":13},{"type":"move","unit_id":188,"x":12,"y":15},{"type":"move","unit_id":182,"x":10,"y":16},{"type":"move","unit_id":195,"x":11,"y":17},{"type":"move","unit_id":181,"x":9,"y":15}]},"140":{"objects":[{"id":185,"y":14},{"id":181,"x":10},{"id":188,"y":16},{"id":192,"x":18},{"id":182,"x":11},{"id":195,"y":18}],"actions":[{"type":"move","unit_id":182,"x":11,"y":16},{"type":"move","unit_id":188,"x":12,"y":16},{"type":"move","unit_id":181,"x":10,"y":15},{"type":"move","unit_id":195,"x":11,"y":18},{"type":"move","unit_id":192,"x":18,"y":15},{"type":"move","unit_id":185,"x":18,"y":14}]},"141":{"objects":[{"id":185,"x":19},{"id":181,"y":16},{"id":192,"x":19},{"id":182,"y":17},{"id":188,"y":17},{"id":195,"x":12,"balance":150},{"id":144,"state":"dead"}],"actions":[{"type":"move","unit_id":181,"x":10,"y":16},{"type":"move","unit_id":188,"x":12,"y":17},{"type":"move","unit_id":192,"x":19,"y":15},{"type":"move","unit_id":185,"x":19,"y":14},{"type":"move","unit_id":182,"x":11,"y":17},{"type":"move","unit_id":195,"x":12,"y":18}]},"142":{"objects":[{"id":187,"y":0,"moveCooldown":4},{"id":184,"x":18,"moveCooldown":4},{"id":185,"x":20},{"id":192,"y":16},{"id":181,"x":11},{"id":188,"x":13},{"id":195,"x":13},{"id":194,"x":20,"moveCooldown":4}],"actions":[{"type":"move","unit_id":181,"x":11,"y":16},{"type":"move","unit_id":187,"x":8,"y":0},{"type":"move","unit_id":188,"x":13,"y":17},{"type":"move","unit_id":185,"x":20,"y":14},{"type":"move","unit_id":184,"x":18,"y":11},{"type":"move","unit_id":192,"x":19,"y":16},{"type":"move","unit_id":195,"x":13,"y":18},{"type":"move","unit_id":194,"x":20,"y":19}]},"143":{"objects":[{"id":185,"y":15},{"id":181,"x":12},{"id":192,"y":17},{"id":182,"x":12},{"id":188,"y":16},{"id":195,"x":14}],"actions":[{"type":"move","unit_id":188,"x":13,"y":16},{"type":"move","unit_id":195,"x":14,"y":18},{"type":"move","unit_id":192,"x":19,"y":17},{"type":"move","unit_id":181,"x":12,"y":16},{"type":"move","unit_id":185,"x":20,"y":15},{"type":"move","unit_id":182,"x":12,"y":17}]},"144":{"objects":[{"id":185,"y":16},{"id":181,"y":15},{"id":188,"y":15},{"id":182,"x":13},{"id":192,"y":18},{"id":195,"y":17}],"actions":[{"type":"move","unit_id":188,"x":13,"y":15},{"type":"move","unit_id":192,"x":19,"y":18},{"type":"move","unit_id":182,"x":13,"y":17},{"type":"move","unit_id":195,"x":14,"y":17},{"type":"move","unit_id":185,"x":20,"y":16},{"type":"move","unit_id":181,"x":12,"y":15}]},"145":{"objects":[{"id":181,"y":14},{"id":188,"y":14},{"id":185,"y":17},{"id":182,"y":16},{"id":195,"y":16},{"id":192,"y":19}],"actions":[{"type":"move","unit_id":192,"x":19,"y":19},{"type":"move","unit_id":181,"x":12,"y":14},{"type":"move","unit_id":185,"x":20,"y":17},{"type":"move","unit_id":188,"x":13,"y":14},{"type":"move","unit_id":195,"x":14,"y":16},{"type":"move","unit_id":182,"x":13,"y":16}]},"146":{"objects":[{"id":181,"y":15},{"id":188,"y":13},{"id":182,"y":15},{"id":195,"y":15},{"id":185,"y":18},{"id":192,"y":20}],"actions":[{"type":"move","unit_id":181,"x":12,"y":15},{"type":"move","unit_id":195,"x":14,"y":15},{"type":"move","unit_id":192,"x":19,"y":20},{"type":"move","unit_id":188,"x":13,"y":13},{"type":"move","unit_id":185,"x":20,"y":18},{"type":"move","unit_id":182,"x":13,"y":15}]},"147":{"objects":[{"id":187,"x":9,"moveCooldown":4},{"id":184,"y":12,"moveCooldown":4},{"id":188,"x":14},{"id":181,"y":14},{"id":182,"y":14},{"id":195,"x":15},{"id":185,"x":21},{"id":194,"x":19,"moveCooldown":4},{"id":192,"y":21}],"actions":[{"type":"move","unit_id":195,"x":15,"y":15},{"type":"move","unit_id":188,"x":14,"y":13},{"type":"move","unit_id":182,"x":13,"y":14},{"type":"move","unit_id":184,"x":18,"y":12},{"type":"move","unit_id":194,"x":19,"y":19},{"type":"move","unit_id":187,"x":9,"y":0},{"type":"move","unit_id":192,"x":19,"y":21},{"type":"move","unit_id":181,"x":12,"y":14},{"type":"move","unit_id":185,"x":21,"y":18}]},"148":{"objects":[{"id":188,"x":15},{"id":181,"y":15},{"id":182,"x":14},{"id":195,"x":16},{"id":185,"x":22},{"id":192,"y":22}],"actions":[{"type":"move","unit_id":182,"x":14,"y":14},{"type":"move","unit_id":185,"x":22,"y":18},{"type":"move","unit_id":181,"x":12,"y":15},{"type":"move","unit_id":192,"x":19,"y":22},{"type":"move","unit_id":188,"x":15,"y":13},{"type":"move","unit_id":195,"x":16,"y":15}]},"149":{"objects":[{"id":188,"y":12},{"id":182,"x":15},{"id":181,"x":13},{"id":195,"x":17},{"id":185,"y":19},{"id":192,"x":20}],"actions":[{"type":"move","unit_id":195,"x":17,"y":15},{"type":"move","unit_id":188,"x":15,"y":12},{"type":"move","unit_id":185,"x":22,"y":19},{"type":"move","unit_id":182,"x":15,"y":14},{"type":"move","unit_id":192,"x":20,"y":22},{"type":"move","unit_id":181,"x":13,"y":15}]},"150":{"objects":[{"id":188,"y":11},{"id":182,"x":16},{"id":181,"x":14},{"id":195,"x":18},{"id":185,"y":20},{"id":192,"x":21}],"actions":[{"type":"move","unit_id":185,"x":22,"y":20},{"type":"move","unit_id":192,"x":21,"y":22},{"type":"move","unit_id":195,"x":18,"y":15},{"type":"move","unit_id":182,"x":16,"y":14},{"type":"move","unit_id":181,"x":14,"y":15},{"type":"move","unit_id":188,"x":15,"y":11}]},"151":{"objects":[{"id":188,"x":16},{"id":182,"y":13},{"id":181,"x":15},{"id":195,"x":19},{"id":185,"y":21},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":181,"x":15,"y":15},{"type":"move","unit_id":182,"x":16,"y":13},{"type":"move","unit_id":192,"x":21,"y":23},{"type":"move","unit_id":188,"x":16,"y":11},{"type":"move","unit_id":195,"x":19,"y":15},{"type":"move","unit_id":185,"x":22,"y":21}]},"152":{"objects":[{"id":187,"x":10,"moveCooldown":4},{"id":188,"x":17},{"id":184,"x":17,"moveCooldown":4},{"id":182,"y":12},{"id":181,"x":16},{"id":195,"y":16},{"id":194,"y":18,"moveCooldown":4},{"id":185,"y":22},{"id":192,"x":22}],"actions":[{"type":"move","unit_id":187,"x":10,"y":0},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":188,"x":17,"y":11},{"type":"move","unit_id":181,"x":16,"y":15},{"type":"move","unit_id":182,"x":16,"y":12},{"type":"move","unit_id":194,"x":19,"y":18},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":195,"x":19,"y":16},{"type":"move","unit_id":184,"x":17,"y":12}]},"153":{"objects":[{"id":188,"x":18},{"id":182,"y":11},{"id":181,"x":17},{"id":195,"x":20},{"id":185,"x":23},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":188,"x":18,"y":11},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":181,"x":17,"y":15},{"type":"move","unit_id":182,"x":16,"y":11},{"type":"move","unit_id":185,"x":23,"y":22},{"type":"move","unit_id":195,"x":20,"y":16}]},"154":{"objects":[{"id":182,"x":17},{"id":188,"x":19},{"id":181,"x":18},{"id":195,"y":17},{"id":185,"balance":0},{"id":192,"y":23},{"id":2,"balance":650}],"actions":[{"type":"move","unit_id":188,"x":19,"y":11},{"type":"transfer_money","source_id":185,"x":24,"y":24,"amount":525},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":195,"x":20,"y":17},{"type":"move","unit_id":182,"x":17,"y":11},{"type":"move","unit_id":181,"x":18,"y":15}]},"155":{"objects":[{"id":182,"x":18},{"id":188,"y":10},{"id":181,"x":19},{"id":195,"y":18},{"id":185,"x":22},{"id":192,"y":24},{"id":2,"balance":500},{"id":197,"type":1,"x":22,"y":23,"hp":35,"teamId":2,"unit_type":0,"balance":0,"moveCooldown":4}],"actions":[{"type":"move","unit_id":188,"x":19,"y":10},{"type":"move","unit_id":182,"x":18,"y":11},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":181,"x":19,"y":15},{"type":"create","unit_type":0},{"type":"move","unit_id":195,"x":20,"y":18}]},"156":{"objects":[{"id":188,"y":9},{"id":182,"y":10},{"id":181,"y":16},{"id":195,"x":21},{"id":192,"balance":0},{"id":2,"balance":825},{"id":198,"type":1,"x":23,"y":22,"hp":10,"teamId":2,"unit_type":2,"balance":0,"moveCooldown":0}],"actions":[{"type":"move","unit_id":182,"x":18,"y":10},{"type":"transfer_money","source_id":192,"x":24,"y":24,"amount":525},{"type":"move","unit_id":188,"x":19,"y":9},{"type":"create","unit_type":2},{"type":"move","unit_id":181,"x":19,"y":16},{"type":"move","unit_id":195,"x":21,"y":18}]},"157":{"objects":[{"id":187,"x":11,"moveCooldown":4},{"id":188,"y":8},{"id":182,"y":9},{"id":184,"x":18,"moveCooldown":4},{"id":194,"y":17,"moveCooldown":4},{"id":195,"y":19},{"id":185,"x":21},{"id":198,"y":21},{"id":2,"balance":725},{"id":199,"type":1,"x":23,"y":22,"hp":20,"teamId":2,"unit_type":1,"balance":0,"moveCooldown":4}],"actions":[{"type":"move","unit_id":194,"x":19,"y":17},{"type":"move","unit_id":182,"x":18,"y":9},{"type":"move","unit_id":198,"x":23,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":187,"x":11,"y":0},{"type":"create","unit_type":1},{"type":"move","unit_id":195,"x":21,"y":19},{"type":"move","unit_id":188,"x":19,"y":8},{"type":"move","unit_id":184,"x":18,"y":12}]},"158":{"objects":[{"id":188,"y":7},{"id":182,"x":19},{"id":181,"x":20},{"id":195,"y":20},{"id":198,"x":24},{"id":185,"y":23},{"id":2,"balance":575},{"id":200,"type":1,"x":20,"y":24,"hp":35,"teamId":2,"unit_type":0,"balance":0,"moveCooldown":4}],"actions":[{"type":"move","unit_id":185,"x":21,"y":23},{"type":"move","unit_id":188,"x":19,"y":7},{"type":"move","unit_id":198,"x":24,"y":21},{"type":"move","unit_id":181,"x":20,"y":16},{"type":"create","unit_type":0},{"type":"move","unit_id":195,"x":21,"y":20},{"type":"move","unit_id":182,"x":19,"y":9}]},"159":{"objects":[{"id":188,"y":6},{"id":182,"y":8},{"id":181,"y":17},{"id":195,"y":21},{"id":198,"x":23},{"id":185,"y":22},{"id":2,"balance":375},{"id":201,"type":1,"x":24,"y":21,"hp":10,"teamId":2,"unit_type":2,"balance":0,"moveCooldown":0}],"actions":[{"type":"move","unit_id":198,"x":23,"y":21},{"type":"move","unit_id":182,"x":19,"y":8},{"type":"create","unit_type":2},{"type":"move","unit_id":195,"x":21,"y":21},{"type":"move","unit_id":188,"x":19,"y":6},{"type":"move","unit_id":181,"x":20,"y":17},{"type":"move","unit_id":185,"x":21,"y":22}]},"160":{"objects":[{"id":188,"y":5},{"id":182,"y":7},{"id":181,"y":18},{"id":195,"x":22},{"id":201,"y":20},{"id":185,"x":22},{"id":2,"balance":275},{"id":202,"type":1,"x":21,"y":23,"hp":20,"teamId":2,"unit_type":1,"balance":0,"moveCooldown":4}],"actions":[{"type":"move","unit_id":195,"x":22,"y":21},{"type":"move","unit_id":182,"x":19,"y":7},{"type":"move","unit_id":188,"x":19,"y":5},{"type":"move","unit_id":181,"x":20,"y":18},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"create","unit_type":1},{"type":"move","unit_id":201,"x":24,"y":20}]},"161":{"objects":[{"id":188,"y":4},{"id":182,"y":6},{"id":181,"y":19},{"id":201,"y":21},{"id":195,"y":20},{"id":185,"x":21},{"id":2,"balance":125},{"id":203,"type":1,"x":22,"y":22,"hp":35,"teamId":2,"unit_type":0,"balance":0,"moveCooldown":4}],"actions":[{"type":"move","unit_id":201,"x":24,"y":21},{"type":"move","unit_id":182,"x":19,"y":6},{"type":"move","unit_id":181,"x":20,"y":19},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":188,"x":19,"y":4},{"type":"create","unit_type":0},{"type":"move","unit_id":195,"x":22,"y":20}]},"162":{"objects":[{"id":187,"x":12,"moveCooldown":4},{"id":188,"x":18},{"id":182,"y":5},{"id":184,"y":11,"moveCooldown":4},{"id":194,"y":16,"moveCooldown":4},{"id":181,"x":21},{"id":195,"y":21},{"id":201,"y":20},{"id":185,"y":21}],"actions":[{"type":"move","unit_id":187,"x":12,"y":0},{"type":"move","unit_id":201,"x":24,"y":20},{"type":"move","unit_id":184,"x":18,"y":11},{"type":"move","unit_id":188,"x":18,"y":4},{"type":"move","unit_id":182,"x":19,"y":5},{"type":"move","unit_id":194,"x":19,"y":16},{"type":"move","unit_id":195,"x":22,"y":21},{"type":"move","unit_id":181,"x":21,"y":19},{"type":"move","unit_id":185,"x":21,"y":21}]},"163":{"objects":[{"id":188,"y":3},{"id":182,"y":4},{"id":181,"y":20},{"id":201,"y":21},{"id":185,"y":22},{"id":195,"y":20},{"id":200,"y":23,"moveCooldown":4}],"actions":[{"type":"move","unit_id":182,"x":19,"y":4},{"type":"move","unit_id":181,"x":21,"y":20},{"type":"move","unit_id":188,"x":18,"y":3},{"type":"move","unit_id":195,"x":22,"y":20},{"type":"move","unit_id":201,"x":24,"y":21},{"type":"move","unit_id":200,"x":20,"y":23},{"type":"move","unit_id":185,"x":21,"y":22}]},"164":{"objects":[{"id":188,"y":2},{"id":182,"x":18},{"id":195,"x":23},{"id":198,"x":22},{"id":201,"y":20},{"id":185,"y":21}],"actions":[{"type":"move","unit_id":201,"x":24,"y":20},{"type":"move","unit_id":182,"x":18,"y":4},{"type":"move","unit_id":188,"x":18,"y":2},{"type":"move","unit_id":185,"x":21,"y":21},{"type":"move","unit_id":198,"x":22,"y":21},{"type":"move","unit_id":195,"x":23,"y":20}]},"165":{"objects":[{"id":188,"x":17},{"id":182,"y":3},{"id":181,"x":22},{"id":201,"y":21},{"id":185,"y":22},{"id":198,"x":23}],"actions":[{"type":"move","unit_id":198,"x":23,"y":21},{"type":"move","unit_id":181,"x":22,"y":20},{"type":"move","unit_id":188,"x":17,"y":2},{"type":"move","unit_id":201,"x":24,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":182,"x":18,"y":3}]},"166":{"objects":[{"id":188,"y":1},{"id":182,"x":17},{"id":198,"x":22},{"id":201,"y":20},{"id":185,"y":21}],"actions":[{"type":"move","unit_id":201,"x":24,"y":20},{"type":"move","unit_id":198,"x":22,"y":21},{"type":"move","unit_id":182,"x":17,"y":3},{"type":"move","unit_id":188,"x":17,"y":1},{"type":"move","unit_id":185,"x":21,"y":21}]},"167":{"objects":[{"id":187,"x":13,"moveCooldown":4},{"id":188,"x":16},{"id":182,"y":2},{"id":184,"y":10,"moveCooldown":4},{"id":194,"y":15,"moveCooldown":4},{"id":181,"y":19},{"id":201,"y":21},{"id":198,"x":23},{"id":203,"x":21,"moveCooldown":4}],"actions":[{"type":"move","unit_id":194,"x":19,"y":15},{"type":"move","unit_id":188,"x":16,"y":1},{"type":"move","unit_id":181,"x":22,"y":19},{"type":"move","unit_id":201,"x":24,"y":21},{"type":"move","unit_id":198,"x":23,"y":21},{"type":"move","unit_id":187,"x":13,"y":0},{"type":"move","unit_id":184,"x":18,"y":10},{"type":"move","unit_id":203,"x":21,"y":22},{"type":"move","unit_id":182,"x":17,"y":2}]},"168":{"objects":[{"id":188,"x":15},{"id":182,"x":16},{"id":181,"y":20},{"id":195,"x":24},{"id":185,"x":22},{"id":200,"y":22,"moveCooldown":4},{"id":197,"y":22,"moveCooldown":4}],"actions":[{"type":"move","unit_id":182,"x":16,"y":2},{"type":"move","unit_id":181,"x":22,"y":20},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":200,"x":20,"y":22},{"type":"move","unit_id":188,"x":15,"y":1},{"type":"move","unit_id":197,"x":22,"y":22},{"type":"move","unit_id":195,"x":24,"y":20}]},"169":{"objects":[{"id":188,"y":0},{"id":182,"y":1},{"id":181,"x":23},{"id":185,"x":21},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":182,"x":16,"y":1},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":185,"x":21,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":188,"x":15,"y":0}]},"170":{"objects":[{"id":188,"x":14},{"id":182,"y":0},{"id":181,"x":22},{"id":195,"y":19},{"id":185,"x":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":181,"x":22,"y":20},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":182,"x":16,"y":0},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":195,"x":24,"y":19}]},"171":{"objects":[{"id":188,"y":1},{"id":182,"x":15},{"id":195,"y":20},{"id":185,"x":21},{"id":198,"y":20},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":185,"x":21,"y":21},{"type":"move","unit_id":198,"x":23,"y":20},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":188,"x":14,"y":1}]},"172":{"objects":[{"id":188,"y":0},{"id":184,"y":9,"moveCooldown":4},{"id":194,"y":14,"moveCooldown":4},{"id":198,"y":21},{"id":195,"y":19},{"id":185,"x":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":198,"x":23,"y":21},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":195,"x":24,"y":19},{"type":"move","unit_id":184,"x":18,"y":9},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":194,"x":19,"y":14}]},"173":{"objects":[{"id":187,"moveCooldown":4},{"id":188,"y":1},{"id":182,"y":1},{"id":6,"hp":45},{"id":198,"y":20},{"id":201,"y":20},{"id":200,"y":21,"moveCooldown":4},{"id":203,"y":21,"moveCooldown":4},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":198,"x":23,"y":20},{"type":"attack","unit_id":187,"x":13,"y":1},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":188,"x":14,"y":1},{"type":"move","unit_id":200,"x":20,"y":21},{"type":"move","unit_id":201,"x":24,"y":20},{"type":"move","unit_id":203,"x":21,"y":21},{"type":"move","unit_id":182,"x":15,"y":1}]},"174":{"objects":[{"id":188,"y":0},{"id":182,"y":0},{"id":195,"x":23},{"id":181,"x":21},{"id":198,"y":21},{"id":201,"y":21},{"id":197,"x":21,"moveCooldown":4},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":201,"x":24,"y":21},{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":198,"x":23,"y":21},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":195,"x":23,"y":19},{"type":"move","unit_id":181,"x":21,"y":20},{"type":"move","unit_id":197,"x":21,"y":22}]},"175":{"objects":[{"id":188,"y":1},{"id":182,"y":1},{"id":181,"x":22},{"id":185,"y":22},{"id":198,"y":20},{"id":201,"y":20},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":201,"x":24,"y":20},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":188,"x":14,"y":1},{"type":"move","unit_id":198,"x":23,"y":20},{"type":"move","unit_id":181,"x":22,"y":20}]},"176":{"objects":[{"id":188,"y":0},{"id":182,"y":0},{"id":195,"x":24},{"id":181,"y":21},{"id":198,"y":21},{"id":201,"y":21},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":201,"x":24,"y":21},{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":198,"x":23,"y":21},{"type":"move","unit_id":195,"x":24,"y":19}]},"177":{"objects":[{"id":188,"y":1},{"id":182,"y":1},{"id":184,"x":19,"moveCooldown":4},{"id":194,"y":13,"moveCooldown":4},{"id":181,"y":20},{"id":198,"y":20},{"id":201,"y":20},{"id":185,"y":23}],"actions":[{"type":"move","unit_id":198,"x":23,"y":20},{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":184,"x":19,"y":9},{"type":"move","unit_id":181,"x":22,"y":20},{"type":"move","unit_id":201,"x":24,"y":20},{"type":"move","unit_id":194,"x":19,"y":13},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":188,"x":14,"y":1}]},"178":{"objects":[{"id":188,"y":0},{"id":182,"y":0},{"id":195,"x":23},{"id":181,"y":21},{"id":198,"y":21},{"id":201,"y":21},{"id":200,"y":20,"moveCooldown":4},{"id":203,"y":20,"moveCooldown":4},{"id":185,"y":22}],"actions":[{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":203,"x":21,"y":20},{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":198,"x":23,"y":21},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":200,"x":20,"y":20},{"type":"move","unit_id":201,"x":24,"y":21},{"type":"move","unit_id":195,"x":23,"y":19}]},"179":{"objects":[{"id":187,"moveCooldown":4},{"id":188,"y":1},{"id":182,"y":1},{"id":6,"hp":40},{"id":195,"y":20},{"id":181,"x":21},{"id":201,"y":20},{"id":185,"y":23}],"actions":[{"type":"move","unit_id":188,"x":14,"y":1},{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":201,"x":24,"y":20},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"attack","unit_id":187,"x":13,"y":1},{"type":"move","unit_id":182,"x":15,"y":1}]},"180":{"objects":[{"id":188,"y":0},{"id":182,"y":0},{"id":195,"x":22},{"id":181,"x":22},{"id":198,"x":24},{"id":197,"x":20,"moveCooldown":4},{"id":185,"y":22}],"actions":[{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":198,"x":24,"y":21},{"type":"move","unit_id":195,"x":22,"y":20},{"type":"move","unit_id":197,"x":20,"y":22},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":185,"x":22,"y":22}]},"181":{"objects":[{"id":188,"y":1},{"id":182,"y":1},{"id":195,"x":23},{"id":198,"x":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":188,"x":14,"y":1},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":198,"x":23,"y":21}]},"182":{"objects":[{"id":188,"y":0},{"id":182,"y":0},{"id":184,"y":8,"moveCooldown":4},{"id":194,"y":12,"moveCooldown":4},{"id":195,"x":22},{"id":201,"y":21},{"id":181,"x":21},{"id":185,"x":21},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":201,"x":24,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":194,"x":19,"y":12},{"type":"move","unit_id":184,"x":19,"y":8},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":195,"x":22,"y":20}]},"183":{"objects":[{"id":188,"y":1},{"id":182,"y":1},{"id":200,"y":19,"moveCooldown":4},{"id":203,"y":19,"moveCooldown":4},{"id":198,"x":22},{"id":201,"y":20},{"id":185,"x":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":198,"x":22,"y":21},{"type":"move","unit_id":188,"x":14,"y":1},{"type":"move","unit_id":203,"x":21,"y":19},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":200,"x":20,"y":19},{"type":"move","unit_id":201,"x":24,"y":20}]},"184":{"objects":[{"id":188,"y":0},{"id":182,"y":0},{"id":195,"x":23},{"id":201,"y":21},{"id":198,"x":23},{"id":185,"x":21},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":198,"x":23,"y":21},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":201,"x":24,"y":21},{"type":"move","unit_id":192,"x":22,"y":24}]},"185":{"objects":[{"id":187,"moveCooldown":4},{"id":188,"y":1},{"id":182,"y":1},{"id":6,"hp":35},{"id":195,"x":24},{"id":198,"x":22},{"id":197,"y":21,"moveCooldown":4},{"id":185,"x":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":198,"x":22,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":188,"x":14,"y":1},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":197,"x":20,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"attack","unit_id":187,"x":13,"y":1}]},"186":{"objects":[{"id":188,"y":0},{"id":182,"y":0},{"id":195,"x":23},{"id":181,"y":22},{"id":201,"x":23},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":181,"x":21,"y":22},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":201,"x":23,"y":21},{"type":"move","unit_id":195,"x":23,"y":20}]},"187":{"objects":[{"id":188,"y":1},{"id":182,"y":1},{"id":184,"y":7,"moveCooldown":4},{"id":194,"y":11,"moveCooldown":4},{"id":195,"x":24},{"id":201,"x":24},{"id":181,"y":21},{"id":185,"y":23}],"actions":[{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":184,"x":19,"y":7},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":188,"x":14,"y":1},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":201,"x":24,"y":21},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":194,"x":19,"y":11}]},"188":{"objects":[{"id":188,"y":0},{"id":182,"y":0},{"id":200,"y":18,"moveCooldown":4},{"id":203,"y":18,"moveCooldown":4},{"id":195,"balance":0},{"id":181,"y":22},{"id":198,"x":23},{"id":185,"y":22},{"id":2,"balance":275}],"actions":[{"type":"transfer_money","source_id":195,"x":24,"y":24,"amount":150},{"type":"move","unit_id":181,"x":21,"y":22},{"type":"move","unit_id":198,"x":23,"y":21},{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":203,"x":21,"y":18},{"type":"move","unit_id":200,"x":20,"y":18}]},"189":{"objects":[{"id":188,"y":1},{"id":182,"y":1},{"id":195,"x":23},{"id":198,"x":22},{"id":181,"y":21},{"id":185,"y":23},{"id":2,"balance":75},{"id":204,"type":1,"x":20,"y":24,"hp":10,"teamId":2,"unit_type":2,"balance":0,"moveCooldown":0}],"actions":[{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":198,"x":22,"y":21},{"type":"move","unit_id":188,"x":14,"y":1},{"type":"create","unit_type":2},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":195,"x":23,"y":20}]},"190":{"objects":[{"id":187,"x":14,"moveCooldown":4},{"id":182,"y":0},{"id":197,"y":20,"moveCooldown":4},{"id":181,"y":22},{"id":201,"x":23},{"id":185,"y":22},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":197,"x":20,"y":20},{"type":"move","unit_id":181,"x":21,"y":22},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":187,"x":14,"y":0},{"type":"move","unit_id":201,"x":23,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":204,"x":20,"y":23}]},"191":{"objects":[{"id":182,"y":1},{"id":6,"hp":32},{"id":195,"x":24},{"id":198,"x":21},{"id":201,"x":24},{"id":185,"y":23},{"id":204,"y":24}],"actions":[{"type":"move","unit_id":201,"x":24,"y":21},{"type":"move","unit_id":185,"x":22,"y":23},{"type":"attack","unit_id":188,"x":13,"y":1},{"type":"move","unit_id":198,"x":21,"y":21},{"type":"move","unit_id":204,"x":20,"y":24},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":182,"x":15,"y":1}]},"192":{"objects":[{"id":6,"hp":29},{"id":182,"y":0},{"id":184,"y":6,"moveCooldown":4},{"id":194,"y":10,"moveCooldown":4},{"id":195,"x":23},{"id":198,"x":22},{"id":201,"x":23},{"id":181,"x":22},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":201,"x":23,"y":21},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":181,"x":22,"y":22},{"type":"move","unit_id":194,"x":19,"y":10},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"attack","unit_id":188,"x":13,"y":1},{"type":"move","unit_id":198,"x":22,"y":21},{"type":"move","unit_id":184,"x":19,"y":6}]},"193":{"objects":[{"id":182,"y":1},{"id":6,"hp":26},{"id":200,"y":17,"moveCooldown":4},{"id":203,"y":17,"moveCooldown":4},{"id":195,"x":24},{"id":198,"y":20},{"id":201,"x":24},{"id":181,"balance":0},{"id":204,"y":24},{"id":2,"balance":450}],"actions":[{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":204,"x":20,"y":24},{"type":"move","unit_id":201,"x":24,"y":21},{"type":"move","unit_id":200,"x":20,"y":17},{"type":"transfer_money","source_id":181,"x":24,"y":24,"amount":375},{"type":"attack","unit_id":188,"x":13,"y":1},{"type":"move","unit_id":198,"x":22,"y":20},{"type":"move","unit_id":203,"x":21,"y":17}]},"194":{"objects":[{"id":6,"hp":23},{"id":182,"y":0},{"id":198,"y":21},{"id":195,"x":23},{"id":201,"x":23},{"id":204,"y":23},{"id":2,"balance":350},{"id":205,"type":1,"x":20,"y":24,"hp":20,"teamId":2,"unit_type":1,"balance":0,"moveCooldown":4}],"actions":[{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"create","unit_type":1},{"type":"attack","unit_id":188,"x":13,"y":1},{"type":"move","unit_id":198,"x":22,"y":21},{"type":"move","unit_id":201,"x":23,"y":21}]},"195":{"objects":[{"id":187,"x":13,"moveCooldown":4},{"id":182,"y":1},{"id":6,"hp":20},{"id":197,"y":19,"moveCooldown":4},{"id":195,"x":24},{"id":198,"x":21},{"id":181,"x":21},{"id":204,"y":22},{"id":2,"balance":200},{"id":206,"type":1,"x":24,"y":21,"hp":35,"teamId":2,"unit_type":0,"balance":0,"moveCooldown":4}],"actions":[{"type":"attack","unit_id":188,"x":13,"y":1},{"type":"create","unit_type":0},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":197,"x":20,"y":19},{"type":"move","unit_id":198,"x":21,"y":21},{"type":"move","unit_id":181,"x":21,"y":22},{"type":"move","unit_id":187,"x":13,"y":0},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":182,"x":15,"y":1}]},"196":{"objects":[{"id":188,"y":0},{"id":182,"y":0},{"id":195,"x":23},{"id":201,"x":22},{"id":204,"y":23},{"id":2,"balance":0},{"id":207,"type":1,"x":22,"y":22,"hp":10,"teamId":2,"unit_type":2,"balance":0,"moveCooldown":0}],"actions":[{"type":"create","unit_type":2},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":204,"x":20,"y":23}]},"197":{"objects":[{"id":188,"y":1},{"id":182,"y":1},{"id":184,"y":5,"moveCooldown":4},{"id":194,"y":9,"moveCooldown":4},{"id":198,"x":20},{"id":201,"x":23},{"id":204,"y":22}],"actions":[{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":188,"x":14,"y":1},{"type":"move","unit_id":184,"x":19,"y":5},{"type":"move","unit_id":198,"x":20,"y":21},{"type":"move","unit_id":201,"x":23,"y":21},{"type":"move","unit_id":194,"x":19,"y":9},{"type":"move","unit_id":182,"x":15,"y":1}]},"198":{"objects":[{"id":188,"y":0},{"id":182,"y":0},{"id":200,"y":16,"moveCooldown":4},{"id":203,"y":16,"moveCooldown":4},{"id":195,"x":24},{"id":204,"y":23},{"id":181,"y":21},{"id":207,"y":21}],"actions":[{"type":"move","unit_id":203,"x":21,"y":16},{"type":"move","unit_id":207,"x":22,"y":21},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":200,"x":20,"y":16},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":195,"x":24,"y":20}]},"199":{"objects":[{"id":188,"y":1},{"id":182,"y":1},{"id":198,"y":22},{"id":181,"y":22},{"id":207,"y":22},{"id":201,"y":20}],"actions":[{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":181,"x":21,"y":22},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":188,"x":14,"y":1},{"type":"move","unit_id":207,"x":22,"y":22},{"type":"move","unit_id":201,"x":23,"y":20}]},"200":{"objects":[{"id":187,"x":14,"moveCooldown":4},{"id":182,"y":0},{"id":197,"y":18,"moveCooldown":4},{"id":195,"y":19},{"id":206,"x":23,"moveCooldown":4},{"id":198,"y":21},{"id":181,"y":21},{"id":207,"y":21},{"id":204,"x":19}],"actions":[{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":187,"x":14,"y":0},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":206,"x":23,"y":21},{"type":"move","unit_id":207,"x":22,"y":21},{"type":"move","unit_id":195,"x":24,"y":19},{"type":"move","unit_id":197,"x":20,"y":18},{"type":"move","unit_id":198,"x":20,"y":21}]},"201":{"objects":[{"id":182,"y":1},{"id":6,"hp":17},{"id":195,"y":20},{"id":198,"y":22},{"id":181,"y":22},{"id":204,"x":20},{"id":185,"y":22}],"actions":[{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":181,"x":21,"y":22},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"attack","unit_id":188,"x":13,"y":1},{"type":"move","unit_id":198,"x":20,"y":22}]},"202":{"objects":[{"id":6,"hp":14},{"id":182,"y":0},{"id":184,"y":4,"moveCooldown":4},{"id":194,"y":8,"moveCooldown":4},{"id":201,"x":22},{"id":195,"y":21},{"id":207,"x":21},{"id":198,"y":21},{"id":185,"y":23},{"id":204,"x":19}],"actions":[{"type":"attack","unit_id":188,"x":13,"y":1},{"type":"move","unit_id":195,"x":24,"y":21},{"type":"move","unit_id":194,"x":19,"y":8},{"type":"move","unit_id":207,"x":21,"y":21},{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":201,"x":22,"y":20},{"type":"move","unit_id":184,"x":19,"y":4},{"type":"move","unit_id":198,"x":20,"y":21}]},"203":{"objects":[{"id":182,"y":1},{"id":6,"hp":11},{"id":200,"y":15,"moveCooldown":4},{"id":203,"y":15,"moveCooldown":4},{"id":198,"y":22},{"id":207,"x":22},{"id":195,"y":20},{"id":204,"x":20},{"id":185,"y":22}],"actions":[{"type":"move","unit_id":207,"x":22,"y":21},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":203,"x":21,"y":15},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"attack","unit_id":188,"x":13,"y":1},{"type":"move","unit_id":200,"x":20,"y":15}]},"204":{"objects":[{"id":6,"hp":8},{"id":182,"y":0},{"id":201,"x":23},{"id":195,"y":21},{"id":198,"x":19},{"id":181,"y":21},{"id":185,"y":23},{"id":204,"x":19}],"actions":[{"type":"move","unit_id":198,"x":19,"y":22},{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":201,"x":23,"y":20},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"attack","unit_id":188,"x":13,"y":1},{"type":"move","unit_id":195,"x":24,"y":21},{"type":"move","unit_id":204,"x":19,"y":23}]},"205":{"objects":[{"id":187,"x":13,"moveCooldown":4},{"id":182,"y":1},{"id":6,"hp":5},{"id":197,"y":17,"moveCooldown":4},{"id":181,"y":22},{"id":207,"y":22},{"id":195,"y":20},{"id":198,"x":20},{"id":204,"x":20}],"actions":[{"type":"move","unit_id":207,"x":22,"y":22},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":187,"x":13,"y":0},{"type":"move","unit_id":197,"x":20,"y":17},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"attack","unit_id":188,"x":13,"y":1},{"type":"move","unit_id":181,"x":21,"y":22},{"type":"move","unit_id":204,"x":20,"y":23}]},"206":{"objects":[{"id":188,"y":0},{"id":182,"y":0},{"id":201,"x":22},{"id":195,"y":21},{"id":198,"y":21},{"id":181,"y":21},{"id":207,"y":21},{"id":204,"x":19}],"actions":[{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":201,"x":22,"y":20},{"type":"move","unit_id":207,"x":22,"y":21},{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":195,"x":24,"y":21},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":198,"x":20,"y":21}]},"207":{"objects":[{"id":188,"y":1},{"id":182,"y":1},{"id":184,"x":18,"moveCooldown":4},{"id":194,"y":7,"moveCooldown":4},{"id":198,"y":22},{"id":181,"y":22},{"id":206,"y":20,"moveCooldown":4},{"id":195,"y":20},{"id":204,"x":20},{"id":185,"y":22}],"actions":[{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":181,"x":21,"y":22},{"type":"move","unit_id":188,"x":14,"y":1},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":206,"x":23,"y":20},{"type":"move","unit_id":184,"x":18,"y":4},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":194,"x":19,"y":7}]},"208":{"objects":[{"id":188,"y":0},{"id":182,"y":0},{"id":200,"y":14,"moveCooldown":4},{"id":203,"y":14,"moveCooldown":4},{"id":201,"x":21},{"id":195,"y":21},{"id":207,"x":23},{"id":198,"y":21},{"id":181,"y":21},{"id":204,"x":19},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":200,"x":20,"y":14},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":198,"x":20,"y":21},{"type":"move","unit_id":201,"x":21,"y":20},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":203,"x":21,"y":14},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":195,"x":24,"y":21}]},"209":{"objects":[{"id":188,"y":1},{"id":182,"y":1},{"id":201,"x":22},{"id":198,"y":22},{"id":207,"x":22},{"id":195,"y":20},{"id":185,"x":21},{"id":204,"x":20},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":207,"x":22,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":201,"x":22,"y":20},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":188,"x":14,"y":1}]},"210":{"objects":[{"id":188,"y":0},{"id":182,"y":0},{"id":197,"y":16,"moveCooldown":4},{"id":201,"x":21},{"id":195,"y":21},{"id":181,"x":20},{"id":185,"x":22},{"id":204,"x":19},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":181,"x":20,"y":21},{"type":"move","unit_id":197,"x":20,"y":16},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":201,"x":21,"y":20},{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":195,"x":24,"y":21}]},"211":{"objects":[{"id":187,"moveCooldown":4},{"id":188,"y":1},{"id":182,"y":1},{"id":6,"state":"dead"},{"id":181,"x":21},{"id":195,"x":23},{"id":185,"x":21},{"id":204,"x":20},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":195,"x":23,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":188,"x":14,"y":1},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"attack","unit_id":187,"x":13,"y":1}]},"212":{"objects":[{"id":188,"y":0},{"id":182,"y":0},{"id":184,"y":3,"moveCooldown":4},{"id":194,"y":6,"moveCooldown":4},{"id":201,"x":22},{"id":206,"y":19,"moveCooldown":4},{"id":181,"x":20},{"id":207,"y":22},{"id":195,"x":24},{"id":204,"x":19},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":188,"x":14,"y":0},{"type":"move","unit_id":195,"x":24,"y":21},{"type":"move","unit_id":181,"x":20,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":207,"x":22,"y":22},{"type":"move","unit_id":184,"x":18,"y":3},{"type":"move","unit_id":206,"x":23,"y":19},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":194,"x":19,"y":6},{"type":"move","unit_id":201,"x":22,"y":20}]},"213":{"objects":[{"id":188,"y":1},{"id":182,"y":1},{"id":200,"y":13,"moveCooldown":4},{"id":203,"y":13,"moveCooldown":4},{"id":201,"x":23},{"id":181,"x":21},{"id":195,"x":23},{"id":198,"y":23},{"id":207,"y":21},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":188,"x":14,"y":1},{"type":"move","unit_id":203,"x":21,"y":13},{"type":"move","unit_id":207,"x":22,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":195,"x":23,"y":21},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":201,"x":23,"y":20},{"type":"move","unit_id":200,"x":20,"y":13},{"type":"move","unit_id":181,"x":21,"y":21}]},"214":{"objects":[{"id":188,"y":0},{"id":182,"y":0},{"id":201,"x":24},{"id":181,"x":20},{"id":195,"x":24},{"id":185,"x":22},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":201,"x":24,"y":20},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":195,"x":24,"y":21},{"type":"move","unit_id":182,"x":15,"y":0},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":181,"x":20,"y":21},{"type":"move","unit_id":188,"x":14,"y":0}]},"215":{"objects":[{"id":188,"y":1},{"id":182,"y":1},{"id":197,"y":15,"moveCooldown":4},{"id":201,"x":23},{"id":181,"x":21},{"id":207,"x":23},{"id":185,"x":21},{"id":192,"y":24},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":201,"x":23,"y":20},{"type":"move","unit_id":197,"x":20,"y":15},{"type":"move","unit_id":188,"x":14,"y":1},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":204,"x":19,"y":23}]},"216":{"objects":[{"id":187,"x":14,"moveCooldown":4},{"id":188,"x":13},{"id":182,"y":0},{"id":181,"x":22},{"id":195,"y":20},{"id":185,"x":22},{"id":204,"x":20},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":187,"x":14,"y":0},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":188,"x":13,"y":1},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":182,"x":15,"y":0}]},"217":{"objects":[{"id":182,"y":1},{"id":188,"y":0},{"id":184,"y":2,"moveCooldown":4},{"id":194,"y":5,"moveCooldown":4},{"id":206,"y":18,"moveCooldown":4},{"id":201,"x":22},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"x":19},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":194,"x":19,"y":5},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":184,"x":18,"y":2},{"type":"move","unit_id":206,"x":23,"y":18},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":182,"x":15,"y":1},{"type":"move","unit_id":201,"x":22,"y":20},{"type":"move","unit_id":188,"x":13,"y":0}]},"218":{"objects":[{"id":188,"x":12},{"id":182,"x":14},{"id":200,"y":12,"moveCooldown":4},{"id":203,"y":12,"moveCooldown":4},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":188,"x":12,"y":0},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":203,"x":21,"y":12},{"type":"move","unit_id":200,"x":20,"y":12},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":182,"x":14,"y":1},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":192,"x":22,"y":23}]},"219":{"objects":[{"id":188,"x":11},{"id":182,"x":13},{"id":201,"y":19},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":188,"x":11,"y":0},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":182,"x":13,"y":1},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":201,"x":22,"y":19}]},"220":{"objects":[{"id":188,"x":10},{"id":182,"y":0},{"id":197,"y":14,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":182,"x":13,"y":0},{"type":"move","unit_id":197,"x":20,"y":14},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":188,"x":10,"y":0},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":185,"x":22,"y":22}]},"221":{"objects":[{"id":188,"x":9},{"id":182,"x":12},{"id":187,"x":15,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":188,"x":9,"y":0},{"type":"move","unit_id":182,"x":12,"y":0},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":187,"x":15,"y":0},{"type":"move","unit_id":201,"x":24,"y":19}]},"222":{"objects":[{"id":188,"x":8},{"id":182,"x":11},{"id":184,"x":17,"moveCooldown":4},{"id":194,"y":4,"moveCooldown":4},{"id":206,"y":17,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":188,"x":8,"y":0},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":194,"x":19,"y":4},{"type":"move","unit_id":206,"x":23,"y":17},{"type":"move","unit_id":182,"x":11,"y":0},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":184,"x":17,"y":2}]},"223":{"objects":[{"id":188,"x":7},{"id":182,"x":10},{"id":200,"y":11,"moveCooldown":4},{"id":203,"y":11,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":200,"x":20,"y":11},{"type":"move","unit_id":203,"x":21,"y":11},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":182,"x":10,"y":0},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":188,"x":7,"y":0},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":207,"x":24,"y":21}]},"224":{"objects":[{"id":188,"x":6},{"id":182,"x":9},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":188,"x":6,"y":0},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":182,"x":9,"y":0},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":192,"x":22,"y":23}]},"225":{"objects":[{"id":188,"x":5},{"id":182,"x":8},{"id":197,"y":13,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":188,"x":5,"y":0},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":197,"x":20,"y":13},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":182,"x":8,"y":0}]},"226":{"objects":[{"id":188,"x":4},{"id":182,"x":7},{"id":187,"y":1,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":187,"x":15,"y":1},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":188,"x":4,"y":0},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":182,"x":7,"y":0},{"type":"move","unit_id":181,"x":22,"y":21}]},"227":{"objects":[{"id":188,"x":3},{"id":182,"x":6},{"id":184,"x":16,"moveCooldown":4},{"id":194,"y":3,"moveCooldown":4},{"id":206,"y":16,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":182,"x":6,"y":0},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":194,"x":19,"y":3},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":188,"x":3,"y":0},{"type":"move","unit_id":184,"x":16,"y":2},{"type":"move","unit_id":206,"x":23,"y":16}]},"228":{"objects":[{"id":188,"y":1},{"id":182,"x":5},{"id":200,"y":10,"moveCooldown":4},{"id":203,"y":10,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":182,"x":5,"y":0},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":188,"x":3,"y":1},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":200,"x":20,"y":10},{"type":"move","unit_id":203,"x":21,"y":10},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":207,"x":23,"y":21}]},"229":{"objects":[{"id":182,"x":4},{"id":188,"x":2},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"y":20},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":188,"x":2,"y":1},{"type":"move","unit_id":182,"x":4,"y":0},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":181,"x":22,"y":20},{"type":"move","unit_id":192,"x":22,"y":24}]},"230":{"objects":[{"id":182,"x":3},{"id":188,"x":1},{"id":197,"y":12,"moveCooldown":4},{"id":201,"x":23},{"id":181,"y":21},{"id":195,"x":23},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":197,"x":20,"y":12},{"type":"move","unit_id":188,"x":1,"y":1},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":182,"x":3,"y":0},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":181,"x":22,"y":21}]},"231":{"objects":[{"id":182,"y":1},{"id":188,"x":0},{"id":187,"y":2,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":182,"x":3,"y":1},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":187,"x":15,"y":2},{"type":"move","unit_id":188,"x":0,"y":1},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":195,"x":24,"y":20}]},"232":{"objects":[{"id":182,"y":0},{"id":187,"hp":29},{"id":184,"moveCooldown":4},{"id":194,"x":18,"moveCooldown":4},{"id":206,"y":15,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":182,"x":3,"y":0},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":194,"x":18,"y":3},{"type":"move","unit_id":206,"x":23,"y":15},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"attack","unit_id":184,"x":15,"y":2},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":207,"x":23,"y":21}]},"233":{"objects":[{"id":182,"y":1},{"id":200,"y":9,"moveCooldown":4},{"id":203,"y":9,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":203,"x":21,"y":9},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":182,"x":3,"y":1},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":200,"x":20,"y":9}]},"234":{"objects":[{"id":182,"x":2},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":182,"x":2,"y":1},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":198,"x":20,"y":23}]},"235":{"objects":[{"id":182,"x":1},{"id":197,"y":11,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":197,"x":20,"y":11},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":182,"x":1,"y":1}]},"236":{"objects":[{"id":1,"balance":275},{"id":182,"balance":0},{"id":187,"moveCooldown":4},{"id":184,"hp":29},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"attack","unit_id":187,"x":16,"y":2},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"transfer_money","source_id":182,"x":0,"y":0,"amount":225}]},"237":{"objects":[{"id":1,"balance":125},{"id":187,"hp":23},{"id":184,"moveCooldown":4},{"id":194,"x":17,"moveCooldown":4},{"id":206,"y":14,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24},{"id":208,"type":1,"x":0,"y":2,"hp":35,"teamId":1,"unit_type":0,"balance":0,"moveCooldown":4}],"actions":[{"type":"create","unit_type":0},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":206,"x":23,"y":14},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"attack","unit_id":184,"x":15,"y":2},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":194,"x":17,"y":3},{"type":"move","unit_id":192,"x":22,"y":24}]},"238":{"objects":[{"id":200,"y":8,"moveCooldown":4},{"id":203,"y":8,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":200,"x":20,"y":8},{"type":"move","unit_id":203,"x":21,"y":8},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":195,"x":23,"y":20}]},"239":{"objects":[{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":195,"x":24,"y":20}]},"240":{"objects":[{"id":197,"y":10,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":197,"x":20,"y":10},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":192,"x":22,"y":23}]},"241":{"objects":[{"id":187,"moveCooldown":4},{"id":184,"hp":23},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"attack","unit_id":187,"x":16,"y":2},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":192,"x":22,"y":24}]},"242":{"objects":[{"id":208,"x":1,"moveCooldown":4},{"id":187,"hp":17},{"id":184,"moveCooldown":4},{"id":194,"x":16,"moveCooldown":4},{"id":206,"y":13,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":194,"x":16,"y":3},{"type":"move","unit_id":208,"x":1,"y":2},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"attack","unit_id":184,"x":15,"y":2},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":206,"x":23,"y":13},{"type":"move","unit_id":198,"x":20,"y":23}]},"243":{"objects":[{"id":200,"y":7,"moveCooldown":4},{"id":203,"y":7,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":203,"x":21,"y":7},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":200,"x":20,"y":7},{"type":"move","unit_id":195,"x":24,"y":20}]},"244":{"objects":[{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":198,"x":20,"y":23}]},"245":{"objects":[{"id":197,"y":9,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":197,"x":20,"y":9},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":201,"x":24,"y":19}]},"246":{"objects":[{"id":187,"moveCooldown":4},{"id":184,"hp":17},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":185,"x":22,"y":22},{"type":"attack","unit_id":187,"x":16,"y":2},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":204,"x":19,"y":23}]},"247":{"objects":[{"id":208,"x":2,"moveCooldown":4},{"id":187,"hp":11},{"id":184,"moveCooldown":4},{"id":194,"x":17,"moveCooldown":4},{"id":206,"y":12,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":194,"x":17,"y":3},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":206,"x":23,"y":12},{"type":"move","unit_id":208,"x":2,"y":2},{"type":"attack","unit_id":184,"x":15,"y":2},{"type":"move","unit_id":185,"x":21,"y":22}]},"248":{"objects":[{"id":200,"y":6,"moveCooldown":4},{"id":203,"y":6,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":200,"x":20,"y":6},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":203,"x":21,"y":6},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":181,"x":22,"y":21}]},"249":{"objects":[{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":195,"x":24,"y":20}]},"250":{"objects":[{"id":197,"y":8,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":197,"x":20,"y":8},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":181,"x":22,"y":21}]},"251":{"objects":[{"id":187,"moveCooldown":4},{"id":184,"hp":11},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"attack","unit_id":187,"x":16,"y":2},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":207,"x":24,"y":21}]},"252":{"objects":[{"id":208,"y":1,"moveCooldown":4},{"id":187,"hp":5},{"id":184,"moveCooldown":4},{"id":194,"y":2,"moveCooldown":4},{"id":206,"y":11,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":208,"x":2,"y":1},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":194,"x":17,"y":2},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":206,"x":23,"y":11},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"attack","unit_id":184,"x":15,"y":2},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":204,"x":19,"y":23}]},"253":{"objects":[{"id":200,"y":5,"moveCooldown":4},{"id":203,"y":5,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":200,"x":20,"y":5},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":203,"x":21,"y":5},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":195,"x":24,"y":20}]},"254":{"objects":[{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":204,"x":19,"y":23}]},"255":{"objects":[{"id":197,"y":7,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":197,"x":20,"y":7},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":185,"x":21,"y":22}]},"256":{"objects":[{"id":187,"moveCooldown":4},{"id":184,"hp":5},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"attack","unit_id":187,"x":16,"y":2},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":195,"x":23,"y":20}]},"257":{"objects":[{"id":208,"x":3,"moveCooldown":4},{"id":187,"state":"dead"},{"id":184,"moveCooldown":4},{"id":194,"y":1,"moveCooldown":4},{"id":206,"y":10,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":206,"x":23,"y":10},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":208,"x":3,"y":1},{"type":"move","unit_id":194,"x":17,"y":1},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"attack","unit_id":184,"x":15,"y":2}]},"258":{"objects":[{"id":200,"x":19,"moveCooldown":4},{"id":203,"y":4,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":200,"x":19,"y":5},{"type":"move","unit_id":203,"x":21,"y":4},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":198,"x":20,"y":23}]},"259":{"objects":[{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":201,"x":24,"y":19}]},"260":{"objects":[{"id":197,"y":6,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":197,"x":20,"y":6},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":192,"x":22,"y":23}]},"261":{"objects":[{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":204,"x":19,"y":24}]},"262":{"objects":[{"id":208,"x":4,"moveCooldown":4},{"id":184,"y":1,"moveCooldown":4},{"id":206,"y":9,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":206,"x":23,"y":9},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":184,"x":16,"y":1},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":208,"x":4,"y":1}]},"263":{"objects":[{"id":194,"y":0,"moveCooldown":4},{"id":203,"x":20,"moveCooldown":4},{"id":200,"y":4,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"y":20},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":194,"x":17,"y":0},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":203,"x":20,"y":4},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":200,"x":19,"y":4},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":181,"x":22,"y":20}]},"264":{"objects":[{"id":201,"x":23},{"id":181,"y":21},{"id":195,"x":23},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":181,"x":22,"y":21}]},"265":{"objects":[{"id":197,"y":5,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":197,"x":20,"y":5},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":185,"x":21,"y":22}]},"266":{"objects":[{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":201,"x":23,"y":19}]},"267":{"objects":[{"id":208,"x":5,"moveCooldown":4},{"id":184,"x":15,"moveCooldown":4},{"id":206,"x":22,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":184,"x":15,"y":1},{"type":"move","unit_id":208,"x":5,"y":1},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":206,"x":22,"y":9},{"type":"move","unit_id":195,"x":24,"y":20}]},"268":{"objects":[{"id":194,"x":16,"moveCooldown":4},{"id":200,"y":3,"moveCooldown":4},{"id":203,"y":3,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":194,"x":16,"y":0},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":203,"x":20,"y":3},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":200,"x":19,"y":3},{"type":"move","unit_id":201,"x":23,"y":19}]},"269":{"objects":[{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":207,"x":24,"y":21}]},"270":{"objects":[{"id":197,"y":4,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":197,"x":20,"y":4},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":195,"x":23,"y":20}]},"271":{"objects":[{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":195,"x":24,"y":20}]},"272":{"objects":[{"id":208,"x":6,"moveCooldown":4},{"id":184,"x":14,"moveCooldown":4},{"id":206,"y":8,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":208,"x":6,"y":1},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":206,"x":22,"y":8},{"type":"move","unit_id":184,"x":14,"y":1},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":192,"x":22,"y":23}]},"273":{"objects":[{"id":194,"x":15,"moveCooldown":4},{"id":200,"x":18,"moveCooldown":4},{"id":203,"y":2,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":203,"x":20,"y":2},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":194,"x":15,"y":0},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":200,"x":18,"y":3}]},"274":{"objects":[{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":195,"x":23,"y":20}]},"275":{"objects":[{"id":197,"x":19,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"y":20},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":181,"x":22,"y":20},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":197,"x":19,"y":4}]},"276":{"objects":[{"id":201,"x":23},{"id":181,"y":21},{"id":195,"x":23},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":195,"x":23,"y":20}]},"277":{"objects":[{"id":208,"x":7,"moveCooldown":4},{"id":184,"x":13,"moveCooldown":4},{"id":206,"y":7,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":208,"x":7,"y":1},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":206,"x":22,"y":7},{"type":"move","unit_id":184,"x":13,"y":1},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":201,"x":24,"y":19}]},"278":{"objects":[{"id":194,"x":14,"moveCooldown":4},{"id":203,"x":19,"moveCooldown":4},{"id":200,"x":17,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":200,"x":17,"y":3},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":203,"x":19,"y":2},{"type":"move","unit_id":194,"x":14,"y":0},{"type":"move","unit_id":201,"x":23,"y":19}]},"279":{"objects":[{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":204,"x":19,"y":24}]},"280":{"objects":[{"id":197,"y":3,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":197,"x":19,"y":3},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":201,"x":23,"y":19}]},"281":{"objects":[{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":198,"x":20,"y":22}]},"282":{"objects":[{"id":208,"y":0,"moveCooldown":4},{"id":184,"y":0,"moveCooldown":4},{"id":206,"y":6,"moveCooldown":4},{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":208,"x":7,"y":0},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":184,"x":13,"y":0},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":206,"x":22,"y":6}]},"283":{"objects":[{"id":194,"y":1,"moveCooldown":4},{"id":203,"x":18,"moveCooldown":4},{"id":200,"y":2,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"x":21},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":181,"x":21,"y":21},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":194,"x":14,"y":1},{"type":"move","unit_id":200,"x":17,"y":2},{"type":"move","unit_id":203,"x":18,"y":2},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":195,"x":24,"y":20}]},"284":{"objects":[{"id":201,"x":23},{"id":195,"x":23},{"id":181,"x":22},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":204,"x":19,"y":23}]},"285":{"objects":[{"id":197,"x":18,"moveCooldown":4},{"id":201,"x":24},{"id":195,"x":24},{"id":181,"y":20},{"id":207,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":197,"x":18,"y":3},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":181,"x":22,"y":20},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":201,"x":24,"y":19}]},"286":{"objects":[{"id":201,"x":23},{"id":181,"x":23},{"id":207,"x":23},{"id":198,"y":23},{"id":185,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":198,"x":20,"y":23},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":201,"x":23,"y":19}]},"287":{"objects":[{"id":208,"x":8,"moveCooldown":4},{"id":184,"x":12,"moveCooldown":4},{"id":206,"x":21,"moveCooldown":4},{"id":201,"x":24},{"id":181,"x":22},{"id":195,"y":21},{"id":185,"y":21},{"id":204,"y":24},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":206,"x":21,"y":6},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":181,"x":22,"y":20},{"type":"move","unit_id":195,"x":24,"y":21},{"type":"move","unit_id":208,"x":8,"y":0},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":184,"x":12,"y":0}]},"288":{"objects":[{"id":194,"x":13,"moveCooldown":4},{"id":200,"x":16,"moveCooldown":4},{"id":203,"y":1,"moveCooldown":4},{"id":201,"y":20},{"id":185,"y":22},{"id":207,"y":20},{"id":198,"x":21},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":201,"x":24,"y":20},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":200,"x":16,"y":2},{"type":"move","unit_id":194,"x":13,"y":1},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":203,"x":18,"y":1},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":185,"x":22,"y":22}]},"289":{"objects":[{"id":207,"y":21},{"id":201,"y":19},{"id":198,"x":20},{"id":185,"y":21},{"id":204,"y":24},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":204,"x":19,"y":24}]},"290":{"objects":[{"id":197,"y":2,"moveCooldown":4},{"id":185,"y":22},{"id":207,"y":20},{"id":195,"y":20},{"id":198,"x":21},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":197,"x":18,"y":2},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":192,"x":22,"y":23}]},"291":{"objects":[{"id":201,"x":23},{"id":181,"y":21},{"id":207,"y":21},{"id":195,"y":21},{"id":198,"y":21},{"id":204,"x":20},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":195,"x":24,"y":21},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":198,"x":21,"y":21},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":192,"x":22,"y":24}]},"292":{"objects":[{"id":208,"x":9,"moveCooldown":4},{"id":184,"x":11,"moveCooldown":4},{"id":206,"x":20,"moveCooldown":4},{"id":198,"y":22},{"id":181,"y":20},{"id":207,"y":20},{"id":195,"y":20},{"id":204,"y":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":181,"x":22,"y":20},{"type":"move","unit_id":184,"x":11,"y":0},{"type":"move","unit_id":206,"x":20,"y":6},{"type":"move","unit_id":208,"x":9,"y":0},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":195,"x":24,"y":20}]},"293":{"objects":[{"id":194,"y":0,"moveCooldown":4},{"id":203,"x":17,"moveCooldown":4},{"id":200,"x":15,"moveCooldown":4},{"id":201,"x":24},{"id":207,"y":21},{"id":195,"y":21},{"id":204,"y":23},{"id":198,"y":21},{"id":185,"y":21},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":198,"x":21,"y":21},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":203,"x":17,"y":1},{"type":"move","unit_id":200,"x":15,"y":2},{"type":"move","unit_id":194,"x":13,"y":0},{"type":"move","unit_id":195,"x":24,"y":21},{"type":"move","unit_id":192,"x":22,"y":24}]},"294":{"objects":[{"id":201,"y":20},{"id":198,"y":22},{"id":185,"y":22},{"id":207,"y":20},{"id":204,"y":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":201,"x":24,"y":20},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":207,"x":23,"y":20}]},"295":{"objects":[{"id":197,"x":17,"moveCooldown":4},{"id":181,"y":21},{"id":201,"y":19},{"id":195,"x":23},{"id":204,"y":23},{"id":198,"y":21},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":195,"x":23,"y":21},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":198,"x":21,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":197,"x":17,"y":2},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":201,"x":24,"y":19}]},"296":{"objects":[{"id":201,"y":20},{"id":198,"y":22},{"id":181,"y":20},{"id":195,"x":24},{"id":204,"y":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":201,"x":24,"y":20},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":181,"x":22,"y":20},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":195,"x":24,"y":21}]},"297":{"objects":[{"id":184,"x":10,"moveCooldown":4},{"id":206,"y":5,"moveCooldown":4},{"id":207,"y":21},{"id":201,"y":19},{"id":204,"y":23},{"id":198,"y":21},{"id":185,"y":21},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":206,"x":20,"y":5},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":198,"x":21,"y":21},{"type":"move","unit_id":184,"x":10,"y":0},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":201,"x":24,"y":19},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":185,"x":22,"y":21}]},"298":{"objects":[{"id":208,"moveCooldown":4},{"id":184,"state":"dead"},{"id":194,"x":12,"moveCooldown":4},{"id":203,"x":16,"moveCooldown":4},{"id":200,"y":1,"moveCooldown":4},{"id":181,"x":23},{"id":198,"y":22},{"id":185,"y":22},{"id":195,"y":20},{"id":204,"y":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"attack","unit_id":208,"x":10,"y":0},{"type":"move","unit_id":203,"x":16,"y":1},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":200,"x":15,"y":1},{"type":"move","unit_id":194,"x":12,"y":0},{"type":"move","unit_id":198,"x":21,"y":22}]},"299":{"objects":[{"id":201,"x":23},{"id":181,"x":22},{"id":195,"y":21},{"id":204,"y":23},{"id":198,"y":21},{"id":185,"y":21},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":181,"x":22,"y":20},{"type":"move","unit_id":195,"x":24,"y":21},{"type":"move","unit_id":198,"x":21,"y":21}]},"300":{"objects":[{"id":197,"y":1,"moveCooldown":4},{"id":201,"y":20},{"id":198,"y":22},{"id":185,"y":22},{"id":195,"y":20},{"id":204,"y":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":201,"x":23,"y":20},{"type":"move","unit_id":195,"x":24,"y":20},{"type":"move","unit_id":197,"x":17,"y":1},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":185,"x":22,"y":22}]},"301":{"objects":[{"id":181,"y":21},{"id":201,"y":19},{"id":207,"x":24},{"id":204,"y":23},{"id":198,"y":21},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":198,"x":21,"y":21},{"type":"move","unit_id":201,"x":23,"y":19},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":181,"x":22,"y":21}]},"302":{"objects":[{"id":206,"x":19,"moveCooldown":4},{"id":201,"y":20},{"id":198,"y":22},{"id":181,"x":23},{"id":204,"y":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":201,"x":23,"y":20},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":206,"x":19,"y":5}]},"303":{"objects":[{"id":208,"x":10,"moveCooldown":4},{"id":194,"x":11,"moveCooldown":4},{"id":200,"x":14,"moveCooldown":4},{"id":203,"y":0,"moveCooldown":4},{"id":201,"x":22},{"id":195,"y":19},{"id":204,"y":23},{"id":198,"y":21},{"id":185,"y":21},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":200,"x":14,"y":1},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":201,"x":22,"y":20},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":195,"x":24,"y":19},{"type":"move","unit_id":208,"x":10,"y":0},{"type":"move","unit_id":198,"x":21,"y":21},{"type":"move","unit_id":194,"x":11,"y":0},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":203,"x":16,"y":0}]},"304":{"objects":[{"id":198,"y":22},{"id":185,"y":22},{"id":181,"y":20},{"id":207,"y":20},{"id":204,"y":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":207,"x":24,"y":20}]},"305":{"objects":[{"id":197,"x":16,"moveCooldown":4},{"id":195,"x":23},{"id":201,"y":21},{"id":181,"y":21},{"id":207,"y":21},{"id":204,"y":23},{"id":198,"y":21},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":198,"x":21,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":195,"x":23,"y":19},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":197,"x":16,"y":1},{"type":"move","unit_id":204,"x":20,"y":23}]},"306":{"objects":[{"id":195,"y":20},{"id":198,"y":22},{"id":201,"y":20},{"id":207,"y":20},{"id":185,"y":23},{"id":204,"y":22}],"actions":[{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":201,"x":22,"y":20},{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":204,"x":20,"y":22}]},"307":{"objects":[{"id":206,"y":4,"moveCooldown":4},{"id":201,"y":21},{"id":195,"y":19},{"id":207,"y":21},{"id":204,"y":23},{"id":185,"y":22}],"actions":[{"type":"move","unit_id":206,"x":19,"y":4},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":195,"x":23,"y":19},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":201,"x":22,"y":21}]},"308":{"objects":[{"id":208,"hp":29,"moveCooldown":4},{"id":194,"hp":29,"moveCooldown":4},{"id":203,"x":15,"moveCooldown":4},{"id":200,"y":0,"moveCooldown":4},{"id":195,"y":20},{"id":201,"y":20},{"id":207,"y":20},{"id":198,"y":21},{"id":204,"y":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":200,"x":14,"y":0},{"type":"move","unit_id":198,"x":21,"y":21},{"type":"attack","unit_id":194,"x":10,"y":0},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"attack","unit_id":208,"x":11,"y":0},{"type":"move","unit_id":203,"x":15,"y":0},{"type":"move","unit_id":201,"x":22,"y":20}]},"309":{"objects":[{"id":201,"y":21},{"id":195,"y":19},{"id":207,"y":21},{"id":198,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":195,"x":23,"y":19},{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":192,"x":22,"y":24}]},"310":{"objects":[{"id":197,"x":15,"moveCooldown":4},{"id":195,"y":20},{"id":201,"x":21},{"id":207,"y":20},{"id":204,"y":23},{"id":185,"y":23}],"actions":[{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":197,"x":15,"y":1}]},"311":{"objects":[{"id":195,"x":22},{"id":201,"x":22},{"id":181,"x":24},{"id":204,"y":22},{"id":185,"y":22}],"actions":[{"type":"move","unit_id":195,"x":22,"y":20},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":201,"x":22,"y":21}]},"312":{"objects":[{"id":206,"x":18,"moveCooldown":4},{"id":195,"x":23},{"id":181,"x":23},{"id":204,"y":23},{"id":198,"y":21},{"id":185,"y":23}],"actions":[{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":195,"x":23,"y":20},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":206,"x":18,"y":4},{"type":"move","unit_id":198,"x":21,"y":21}]},"313":{"objects":[{"id":208,"hp":23,"moveCooldown":4},{"id":194,"hp":23,"moveCooldown":4},{"id":200,"x":13,"moveCooldown":4},{"id":203,"x":16,"moveCooldown":4},{"id":195,"x":22},{"id":198,"y":22},{"id":201,"y":22},{"id":181,"x":24},{"id":204,"y":22}],"actions":[{"type":"attack","unit_id":194,"x":10,"y":0},{"type":"move","unit_id":203,"x":16,"y":0},{"type":"attack","unit_id":208,"x":11,"y":0},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":201,"x":22,"y":22},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":195,"x":22,"y":20},{"type":"move","unit_id":200,"x":13,"y":0}]},"314":{"objects":[{"id":195,"y":21},{"id":207,"x":23},{"id":181,"x":23},{"id":204,"y":23},{"id":198,"y":21}],"actions":[{"type":"move","unit_id":195,"x":22,"y":21},{"type":"move","unit_id":198,"x":21,"y":21},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":207,"x":23,"y":20}]},"315":{"objects":[{"id":197,"y":0,"moveCooldown":4},{"id":207,"x":24},{"id":198,"y":22},{"id":195,"y":20},{"id":181,"x":24},{"id":204,"y":22}],"actions":[{"type":"move","unit_id":197,"x":15,"y":0},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":195,"x":22,"y":20},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":204,"x":20,"y":22}]},"316":{"objects":[{"id":195,"y":21},{"id":207,"x":23},{"id":181,"x":23},{"id":204,"y":23},{"id":198,"y":21}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":195,"x":22,"y":21},{"type":"move","unit_id":198,"x":21,"y":21}]},"317":{"objects":[{"id":206,"x":17,"moveCooldown":4},{"id":207,"x":24},{"id":195,"y":20},{"id":181,"x":24},{"id":201,"x":21},{"id":204,"y":22}],"actions":[{"type":"move","unit_id":206,"x":17,"y":4},{"type":"move","unit_id":195,"x":22,"y":20},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":181,"x":24,"y":21}]},"318":{"objects":[{"id":208,"hp":17,"moveCooldown":4},{"id":194,"hp":17,"moveCooldown":4},{"id":200,"x":12,"moveCooldown":4},{"id":203,"y":1,"moveCooldown":4},{"id":195,"y":21},{"id":207,"x":23},{"id":181,"x":23},{"id":204,"y":23},{"id":201,"x":22}],"actions":[{"type":"attack","unit_id":194,"x":10,"y":0},{"type":"attack","unit_id":208,"x":11,"y":0},{"type":"move","unit_id":195,"x":22,"y":21},{"type":"move","unit_id":203,"x":16,"y":1},{"type":"move","unit_id":201,"x":22,"y":22},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":200,"x":12,"y":0}]},"319":{"objects":[{"id":207,"x":24},{"id":195,"y":20},{"id":181,"x":24},{"id":201,"x":21},{"id":204,"y":22}],"actions":[{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":195,"x":22,"y":20},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":207,"x":24,"y":20}]},"320":{"objects":[{"id":197,"x":14,"moveCooldown":4},{"id":207,"x":23},{"id":198,"x":22},{"id":181,"x":23},{"id":204,"y":23},{"id":185,"y":22}],"actions":[{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":197,"x":14,"y":0},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":198,"x":22,"y":21},{"type":"move","unit_id":181,"x":23,"y":21}]},"321":{"objects":[{"id":195,"x":21},{"id":207,"x":24},{"id":198,"x":21},{"id":181,"x":24},{"id":185,"y":23},{"id":204,"y":22}],"actions":[{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":195,"x":21,"y":20},{"type":"move","unit_id":198,"x":21,"y":21}]},"322":{"objects":[{"id":206,"y":3,"moveCooldown":4},{"id":195,"x":22},{"id":207,"x":23},{"id":198,"x":22},{"id":181,"x":23},{"id":204,"y":23},{"id":201,"x":22}],"actions":[{"type":"move","unit_id":198,"x":22,"y":21},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":206,"x":17,"y":3},{"type":"move","unit_id":195,"x":22,"y":20},{"type":"move","unit_id":201,"x":22,"y":22},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":207,"x":23,"y":20}]},"323":{"objects":[{"id":208,"hp":11,"moveCooldown":4},{"id":194,"hp":11,"moveCooldown":4},{"id":200,"moveCooldown":4},{"id":5,"hp":45},{"id":203,"x":15,"moveCooldown":4},{"id":195,"x":21},{"id":207,"x":24},{"id":198,"x":21},{"id":181,"x":24},{"id":201,"x":21},{"id":204,"y":22}],"actions":[{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":195,"x":21,"y":20},{"type":"move","unit_id":203,"x":15,"y":1},{"type":"attack","unit_id":200,"x":12,"y":1},{"type":"attack","unit_id":208,"x":11,"y":0},{"type":"attack","unit_id":194,"x":10,"y":0},{"type":"move","unit_id":198,"x":21,"y":21},{"type":"move","unit_id":204,"x":20,"y":22}]},"324":{"objects":[{"id":195,"x":22},{"id":207,"x":23},{"id":198,"x":22},{"id":181,"x":23},{"id":204,"y":23},{"id":185,"y":22}],"actions":[{"type":"move","unit_id":198,"x":22,"y":21},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":195,"x":22,"y":20},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":207,"x":23,"y":20}]},"325":{"objects":[{"id":197,"x":13,"moveCooldown":4},{"id":195,"x":21},{"id":207,"x":24},{"id":181,"x":24},{"id":201,"y":21},{"id":204,"y":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":197,"x":13,"y":0},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":195,"x":21,"y":20},{"type":"move","unit_id":207,"x":24,"y":20}]},"326":{"objects":[{"id":195,"x":22},{"id":207,"x":23},{"id":181,"x":23},{"id":185,"x":21},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":195,"x":22,"y":20},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":192,"x":22,"y":24}]},"327":{"objects":[{"id":206,"y":2,"moveCooldown":4},{"id":195,"x":21},{"id":207,"x":24},{"id":181,"x":24},{"id":204,"y":23},{"id":185,"x":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":195,"x":21,"y":20},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":206,"x":17,"y":2},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":192,"x":22,"y":23}]},"328":{"objects":[{"id":208,"hp":5,"moveCooldown":4},{"id":194,"hp":5,"moveCooldown":4},{"id":200,"moveCooldown":4},{"id":5,"hp":40},{"id":203,"x":14,"moveCooldown":4},{"id":195,"x":22},{"id":207,"x":23},{"id":181,"x":23},{"id":185,"x":21},{"id":204,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":195,"x":22,"y":20},{"type":"attack","unit_id":208,"x":11,"y":0},{"type":"attack","unit_id":200,"x":12,"y":1},{"type":"attack","unit_id":194,"x":10,"y":0},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":203,"x":14,"y":1}]},"329":{"objects":[{"id":195,"x":21},{"id":207,"x":24},{"id":201,"x":20},{"id":198,"y":22},{"id":181,"x":24},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":201,"x":20,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":195,"x":21,"y":20}]},"330":{"objects":[{"id":197,"y":1,"moveCooldown":4},{"id":207,"x":23},{"id":181,"x":23},{"id":185,"y":21},{"id":198,"y":21},{"id":204,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":185,"x":21,"y":21},{"type":"move","unit_id":198,"x":22,"y":21},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":197,"x":13,"y":1},{"type":"move","unit_id":192,"x":22,"y":24}]},"331":{"objects":[{"id":195,"x":22},{"id":207,"x":24},{"id":201,"x":19},{"id":185,"y":22},{"id":198,"y":22},{"id":181,"x":24},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":201,"x":19,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":195,"x":22,"y":20},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":207,"x":24,"y":20}]},"332":{"objects":[{"id":206,"y":1,"moveCooldown":4},{"id":207,"x":23},{"id":201,"x":20},{"id":181,"x":23},{"id":185,"y":21},{"id":198,"y":21},{"id":204,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":206,"x":17,"y":1},{"type":"move","unit_id":201,"x":20,"y":21},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":198,"x":22,"y":21},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":185,"x":21,"y":21}]},"333":{"objects":[{"id":208,"state":"dead"},{"id":194,"state":"dead"},{"id":200,"moveCooldown":4},{"id":5,"hp":35},{"id":203,"y":0,"moveCooldown":4},{"id":195,"x":21},{"id":207,"x":24},{"id":201,"y":20},{"id":185,"y":22},{"id":198,"y":22},{"id":181,"x":24},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":201,"x":20,"y":20},{"type":"attack","unit_id":194,"x":10,"y":0},{"type":"move","unit_id":203,"x":14,"y":0},{"type":"attack","unit_id":208,"x":11,"y":0},{"type":"move","unit_id":195,"x":21,"y":20},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"attack","unit_id":200,"x":12,"y":1},{"type":"move","unit_id":207,"x":24,"y":20}]},"334":{"objects":[{"id":201,"y":21},{"id":195,"y":21},{"id":207,"x":23},{"id":181,"x":23},{"id":204,"y":23},{"id":198,"y":21},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":198,"x":22,"y":21},{"type":"move","unit_id":195,"x":21,"y":21},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":201,"x":20,"y":21},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":192,"x":22,"y":24}]},"335":{"objects":[{"id":197,"y":0,"moveCooldown":4},{"id":207,"x":24},{"id":195,"y":20},{"id":198,"y":22},{"id":181,"x":24},{"id":204,"y":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":197,"x":13,"y":0},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":195,"x":21,"y":20}]},"336":{"objects":[{"id":207,"x":23},{"id":181,"x":23},{"id":204,"y":23},{"id":185,"y":21},{"id":198,"y":21},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":185,"x":21,"y":21},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":198,"x":22,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":207,"x":23,"y":20}]},"337":{"objects":[{"id":206,"x":16,"moveCooldown":4},{"id":195,"x":22},{"id":207,"x":24},{"id":201,"y":22},{"id":185,"y":22},{"id":198,"y":22},{"id":181,"x":24},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":201,"x":20,"y":22},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":206,"x":16,"y":1},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":195,"x":22,"y":20}]},"338":{"objects":[{"id":200,"x":11,"moveCooldown":4},{"id":203,"y":1,"moveCooldown":4},{"id":195,"y":21},{"id":207,"x":23},{"id":181,"x":23},{"id":201,"y":21},{"id":185,"y":21},{"id":204,"x":19},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":201,"x":20,"y":21},{"type":"move","unit_id":203,"x":14,"y":1},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":195,"x":22,"y":21},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":200,"x":11,"y":0},{"type":"move","unit_id":185,"x":21,"y":21},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":204,"x":19,"y":23}]},"339":{"objects":[{"id":207,"x":24},{"id":201,"y":22},{"id":185,"y":22},{"id":195,"y":20},{"id":181,"x":24},{"id":204,"x":20},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":201,"x":20,"y":22},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":195,"x":22,"y":20},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":192,"x":22,"y":23}]},"340":{"objects":[{"id":197,"x":12,"moveCooldown":4},{"id":195,"y":21},{"id":207,"x":23},{"id":181,"x":23},{"id":201,"x":19},{"id":185,"y":21},{"id":204,"x":19},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":197,"x":12,"y":0},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":185,"x":21,"y":21},{"type":"move","unit_id":201,"x":19,"y":22},{"type":"move","unit_id":195,"x":22,"y":21}]},"341":{"objects":[{"id":207,"x":24},{"id":185,"y":22},{"id":195,"y":20},{"id":181,"x":24},{"id":201,"x":20},{"id":198,"y":23},{"id":204,"x":20}],"actions":[{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":201,"x":20,"y":22},{"type":"move","unit_id":198,"x":22,"y":23},{"type":"move","unit_id":195,"x":22,"y":20},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":185,"x":21,"y":22}]},"342":{"objects":[{"id":206,"x":15,"moveCooldown":4},{"id":195,"y":21},{"id":207,"x":23},{"id":181,"x":23},{"id":201,"y":21},{"id":204,"x":19},{"id":198,"y":22}],"actions":[{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":195,"x":22,"y":21},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":206,"x":15,"y":1},{"type":"move","unit_id":201,"x":20,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":181,"x":23,"y":21}]},"343":{"objects":[{"id":200,"x":10,"moveCooldown":4},{"id":203,"y":0,"moveCooldown":4},{"id":207,"x":24},{"id":181,"x":24},{"id":185,"y":21},{"id":198,"y":23},{"id":204,"x":20}],"actions":[{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":185,"x":21,"y":21},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":198,"x":22,"y":23},{"type":"move","unit_id":203,"x":14,"y":0},{"type":"move","unit_id":200,"x":10,"y":0},{"type":"move","unit_id":207,"x":24,"y":20}]},"344":{"objects":[{"id":207,"x":23},{"id":201,"y":22},{"id":185,"y":22},{"id":195,"y":22},{"id":181,"x":23}],"actions":[{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":201,"x":20,"y":22},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":195,"x":22,"y":22},{"type":"move","unit_id":207,"x":23,"y":20}]},"345":{"objects":[{"id":197,"x":11,"moveCooldown":4},{"id":207,"x":24},{"id":181,"x":24},{"id":201,"y":21},{"id":185,"y":21},{"id":195,"y":21},{"id":204,"x":19}],"actions":[{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":197,"x":11,"y":0},{"type":"move","unit_id":185,"x":21,"y":21},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":195,"x":22,"y":21},{"type":"move","unit_id":201,"x":20,"y":21}]},"346":{"objects":[{"id":207,"x":23},{"id":201,"y":22},{"id":185,"y":22},{"id":181,"x":23},{"id":204,"x":20},{"id":198,"y":22}],"actions":[{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":201,"x":20,"y":22},{"type":"move","unit_id":207,"x":23,"y":20}]},"347":{"objects":[{"id":206,"x":14,"moveCooldown":4},{"id":207,"x":24},{"id":195,"y":20},{"id":181,"x":24},{"id":201,"y":21},{"id":185,"y":21},{"id":198,"y":23},{"id":204,"x":19}],"actions":[{"type":"move","unit_id":206,"x":14,"y":1},{"type":"move","unit_id":201,"x":20,"y":21},{"type":"move","unit_id":195,"x":22,"y":20},{"type":"move","unit_id":185,"x":21,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":198,"x":22,"y":23},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":207,"x":24,"y":20}]},"348":{"objects":[{"id":200,"x":9,"moveCooldown":4},{"id":203,"x":13,"moveCooldown":4},{"id":195,"y":21},{"id":207,"x":23},{"id":201,"y":22},{"id":181,"x":23},{"id":204,"y":24},{"id":198,"y":22}],"actions":[{"type":"move","unit_id":201,"x":20,"y":22},{"type":"move","unit_id":200,"x":9,"y":0},{"type":"move","unit_id":195,"x":22,"y":21},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":203,"x":13,"y":0},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":181,"x":23,"y":21}]},"349":{"objects":[{"id":207,"x":24},{"id":185,"y":22},{"id":195,"y":20},{"id":181,"x":24},{"id":198,"y":23},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":198,"x":22,"y":23},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":195,"x":22,"y":20}]},"350":{"objects":[{"id":197,"x":10,"moveCooldown":4},{"id":195,"y":21},{"id":207,"x":23},{"id":181,"x":23},{"id":201,"y":23},{"id":185,"x":22}],"actions":[{"type":"move","unit_id":201,"x":20,"y":23},{"type":"move","unit_id":197,"x":10,"y":0},{"type":"move","unit_id":195,"x":22,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":181,"x":23,"y":21}]},"351":{"objects":[{"id":207,"x":24},{"id":195,"x":21},{"id":181,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":201,"y":22}],"actions":[{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":195,"x":21,"y":21},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":201,"x":20,"y":22},{"type":"move","unit_id":181,"x":24,"y":21}]},"352":{"objects":[{"id":206,"x":13,"moveCooldown":4},{"id":207,"x":23},{"id":195,"x":22},{"id":181,"x":23},{"id":201,"y":23},{"id":185,"x":22},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":195,"x":22,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":201,"x":20,"y":23},{"type":"move","unit_id":206,"x":13,"y":1},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":207,"x":23,"y":20}]},"353":{"objects":[{"id":200,"x":8,"moveCooldown":4},{"id":203,"x":12,"moveCooldown":4},{"id":207,"x":24},{"id":195,"x":21},{"id":181,"x":24},{"id":185,"x":21},{"id":204,"y":24},{"id":201,"y":22}],"actions":[{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":200,"x":8,"y":0},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":195,"x":21,"y":21},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":201,"x":20,"y":22},{"type":"move","unit_id":203,"x":12,"y":0},{"type":"move","unit_id":185,"x":21,"y":22}]},"354":{"objects":[{"id":207,"x":23},{"id":195,"x":22},{"id":181,"x":23},{"id":201,"y":23},{"id":198,"y":22},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":201,"x":20,"y":23},{"type":"move","unit_id":195,"x":22,"y":21},{"type":"move","unit_id":207,"x":23,"y":20}]},"355":{"objects":[{"id":197,"x":9,"moveCooldown":4},{"id":207,"x":24},{"id":181,"x":24},{"id":185,"y":21},{"id":198,"y":23},{"id":204,"y":24},{"id":201,"y":22}],"actions":[{"type":"move","unit_id":198,"x":22,"y":23},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":197,"x":9,"y":0},{"type":"move","unit_id":185,"x":21,"y":21},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":201,"x":20,"y":22},{"type":"move","unit_id":207,"x":24,"y":20}]},"356":{"objects":[{"id":207,"x":23},{"id":185,"y":22},{"id":195,"y":22},{"id":181,"x":23},{"id":201,"y":23},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":201,"x":20,"y":23},{"type":"move","unit_id":195,"x":22,"y":22},{"type":"move","unit_id":185,"x":21,"y":22},{"type":"move","unit_id":207,"x":23,"y":20}]},"357":{"objects":[{"id":206,"y":0,"moveCooldown":4},{"id":207,"x":24},{"id":181,"x":24},{"id":185,"y":21},{"id":195,"y":21},{"id":204,"y":24},{"id":201,"y":22}],"actions":[{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":201,"x":20,"y":22},{"type":"move","unit_id":206,"x":13,"y":0},{"type":"move","unit_id":195,"x":22,"y":21},{"type":"move","unit_id":185,"x":21,"y":21}]},"358":{"objects":[{"id":200,"x":7,"moveCooldown":4},{"id":203,"x":11,"moveCooldown":4},{"id":207,"x":23},{"id":195,"y":22},{"id":181,"x":23},{"id":201,"x":21},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":200,"x":7,"y":0},{"type":"move","unit_id":195,"x":22,"y":22},{"type":"move","unit_id":203,"x":11,"y":0}]},"359":{"objects":[{"id":207,"x":24},{"id":185,"x":22},{"id":181,"x":24},{"id":201,"x":20},{"id":204,"x":20}],"actions":[{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":201,"x":20,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":181,"x":24,"y":21}]},"360":{"objects":[{"id":197,"x":8,"moveCooldown":4},{"id":207,"x":23},{"id":181,"x":23},{"id":201,"x":21},{"id":204,"x":19}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":197,"x":8,"y":0},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":207,"x":23,"y":20}]},"361":{"objects":[{"id":207,"x":24},{"id":185,"x":21},{"id":181,"x":24},{"id":204,"x":20}],"actions":[{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":185,"x":21,"y":21},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":181,"x":24,"y":21}]},"362":{"objects":[{"id":206,"x":12,"moveCooldown":4},{"id":207,"x":23},{"id":185,"x":22},{"id":181,"x":23},{"id":204,"y":22}],"actions":[{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":206,"x":12,"y":0},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":207,"x":23,"y":20}]},"363":{"objects":[{"id":200,"x":6,"moveCooldown":4},{"id":203,"x":10,"moveCooldown":4},{"id":207,"x":24},{"id":181,"x":24},{"id":204,"y":23},{"id":201,"y":21}],"actions":[{"type":"move","unit_id":203,"x":10,"y":0},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":200,"x":6,"y":0}]},"364":{"objects":[{"id":207,"x":23},{"id":181,"x":23},{"id":195,"x":21},{"id":204,"y":22}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":195,"x":21,"y":22},{"type":"move","unit_id":207,"x":23,"y":20}]},"365":{"objects":[{"id":197,"x":7,"moveCooldown":4},{"id":207,"x":24},{"id":201,"x":20},{"id":185,"y":22},{"id":181,"x":24},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":201,"x":20,"y":21},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":197,"x":7,"y":0}]},"366":{"objects":[{"id":207,"x":23},{"id":201,"x":21},{"id":181,"x":23},{"id":185,"y":21},{"id":204,"y":22}],"actions":[{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":185,"x":22,"y":21}]},"367":{"objects":[{"id":206,"x":11,"moveCooldown":4},{"id":207,"x":24},{"id":201,"x":20},{"id":181,"x":24},{"id":204,"y":23},{"id":198,"y":22}],"actions":[{"type":"move","unit_id":206,"x":11,"y":0},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":201,"x":20,"y":21},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":181,"x":24,"y":21}]},"368":{"objects":[{"id":200,"x":5,"moveCooldown":4},{"id":203,"x":9,"moveCooldown":4},{"id":207,"x":23},{"id":181,"x":23},{"id":198,"y":23},{"id":204,"y":22}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":200,"x":5,"y":0},{"type":"move","unit_id":203,"x":9,"y":0},{"type":"move","unit_id":204,"x":20,"y":22},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":198,"x":22,"y":23}]},"369":{"objects":[{"id":207,"x":24},{"id":201,"x":21},{"id":185,"y":22},{"id":181,"x":24},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":201,"x":21,"y":21}]},"370":{"objects":[{"id":197,"x":6,"moveCooldown":4},{"id":207,"x":23},{"id":181,"x":23},{"id":195,"x":20},{"id":185,"y":21}],"actions":[{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":197,"x":6,"y":0},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":207,"x":23,"y":20}]},"371":{"objects":[{"id":207,"x":24},{"id":185,"y":22},{"id":181,"x":24},{"id":195,"x":21},{"id":204,"x":19}],"actions":[{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":195,"x":21,"y":22},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":204,"x":19,"y":23}]},"372":{"objects":[{"id":206,"x":10,"moveCooldown":4},{"id":207,"x":23},{"id":181,"x":23},{"id":195,"x":20},{"id":185,"y":21},{"id":204,"x":20}],"actions":[{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":206,"x":10,"y":0},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":181,"x":23,"y":21}]},"373":{"objects":[{"id":200,"x":4,"moveCooldown":4},{"id":203,"x":8,"moveCooldown":4},{"id":207,"x":24},{"id":185,"y":22},{"id":181,"x":24},{"id":195,"x":21},{"id":204,"x":19}],"actions":[{"type":"move","unit_id":195,"x":21,"y":22},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":203,"x":8,"y":0},{"type":"move","unit_id":200,"x":4,"y":0},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":204,"x":19,"y":23}]},"374":{"objects":[{"id":207,"x":23},{"id":181,"x":23},{"id":195,"x":20},{"id":185,"y":21},{"id":204,"x":20}],"actions":[{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":204,"x":20,"y":23}]},"375":{"objects":[{"id":197,"x":5,"moveCooldown":4},{"id":207,"x":24},{"id":201,"y":22},{"id":181,"x":24},{"id":204,"x":19},{"id":198,"y":22}],"actions":[{"type":"move","unit_id":197,"x":5,"y":0},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":204,"x":19,"y":23}]},"376":{"objects":[{"id":207,"x":23},{"id":185,"x":23},{"id":195,"y":23},{"id":201,"y":21},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":185,"x":23,"y":21},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":207,"x":23,"y":20}]},"377":{"objects":[{"id":206,"x":9,"moveCooldown":4},{"id":207,"x":24},{"id":185,"x":22},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":206,"x":9,"y":0}]},"378":{"objects":[{"id":200,"x":3,"moveCooldown":4},{"id":203,"x":7,"moveCooldown":4},{"id":207,"x":23},{"id":201,"y":22},{"id":185,"x":23},{"id":198,"y":23},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":185,"x":23,"y":21},{"type":"move","unit_id":198,"x":22,"y":23},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":203,"x":7,"y":0},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":200,"x":3,"y":0}]},"379":{"objects":[{"id":207,"x":24},{"id":185,"x":22},{"id":195,"y":23},{"id":198,"y":22}],"actions":[{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":207,"x":24,"y":20}]},"380":{"objects":[{"id":197,"x":4,"moveCooldown":4},{"id":207,"x":23},{"id":181,"x":23},{"id":201,"y":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":197,"x":4,"y":0},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":195,"x":20,"y":22}]},"381":{"objects":[{"id":207,"x":24},{"id":201,"y":22},{"id":185,"y":20},{"id":181,"x":24},{"id":192,"y":24},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":185,"x":22,"y":20},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":181,"x":24,"y":21}]},"382":{"objects":[{"id":206,"x":8,"moveCooldown":4},{"id":185,"y":21},{"id":207,"x":23},{"id":181,"x":23},{"id":195,"y":23},{"id":201,"y":21},{"id":198,"y":23}],"actions":[{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":198,"x":22,"y":23},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":206,"x":8,"y":0},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":201,"x":21,"y":21}]},"383":{"objects":[{"id":189,"hp":14},{"id":200,"moveCooldown":4},{"id":203,"x":6,"moveCooldown":4},{"id":207,"x":24},{"id":201,"y":22},{"id":181,"x":24},{"id":204,"y":24},{"id":195,"y":22},{"id":198,"y":22}],"actions":[{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"attack","unit_id":200,"x":2,"y":0},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":203,"x":6,"y":0}]},"384":{"objects":[{"id":207,"x":23},{"id":181,"x":23},{"id":195,"y":23},{"id":201,"y":21},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":201,"x":21,"y":21}]},"385":{"objects":[{"id":197,"y":1,"moveCooldown":4},{"id":207,"x":24},{"id":185,"y":20},{"id":181,"x":24},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":197,"x":4,"y":1},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":185,"x":22,"y":20},{"type":"move","unit_id":192,"x":22,"y":24}]},"386":{"objects":[{"id":185,"y":21},{"id":207,"x":23},{"id":181,"x":23},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":204,"x":19,"y":23}]},"387":{"objects":[{"id":206,"x":7,"moveCooldown":4},{"id":207,"x":24},{"id":201,"y":22},{"id":185,"y":20},{"id":181,"x":24},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":206,"x":7,"y":0},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":185,"x":22,"y":20},{"type":"move","unit_id":207,"x":24,"y":20}]},"388":{"objects":[{"id":189,"hp":8},{"id":200,"moveCooldown":4},{"id":203,"x":5,"moveCooldown":4},{"id":185,"y":21},{"id":207,"x":23},{"id":181,"x":23},{"id":195,"y":23},{"id":201,"y":21},{"id":198,"y":23},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":203,"x":5,"y":0},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"attack","unit_id":200,"x":2,"y":0},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":198,"x":22,"y":23},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":181,"x":23,"y":21}]},"389":{"objects":[{"id":207,"x":24},{"id":201,"y":22},{"id":185,"y":22},{"id":181,"x":24},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":201,"x":21,"y":22}]},"390":{"objects":[{"id":197,"x":3,"moveCooldown":4},{"id":207,"x":23},{"id":181,"x":23},{"id":195,"y":23},{"id":201,"y":21},{"id":185,"y":21},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":197,"x":3,"y":1},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":204,"x":19,"y":23}]},"391":{"objects":[{"id":207,"x":24},{"id":201,"y":22},{"id":181,"x":24},{"id":204,"y":24},{"id":195,"y":22},{"id":198,"y":22}],"actions":[{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":207,"x":24,"y":20}]},"392":{"objects":[{"id":206,"x":6,"moveCooldown":4},{"id":207,"x":23},{"id":181,"x":23},{"id":195,"y":23},{"id":201,"y":21},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":207,"x":23,"y":20},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":206,"x":6,"y":0},{"type":"move","unit_id":204,"x":19,"y":23}]},"393":{"objects":[{"id":189,"hp":2},{"id":200,"moveCooldown":4},{"id":203,"x":4,"moveCooldown":4},{"id":207,"x":24},{"id":185,"y":20},{"id":181,"x":24},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":181,"x":24,"y":21},{"type":"move","unit_id":185,"x":22,"y":20},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"attack","unit_id":200,"x":2,"y":0},{"type":"move","unit_id":203,"x":4,"y":0},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":204,"x":19,"y":24}]},"394":{"objects":[{"id":185,"x":23},{"id":201,"x":22},{"id":181,"x":23},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":185,"x":23,"y":20},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":195,"x":20,"y":23}]},"395":{"objects":[{"id":197,"x":2,"moveCooldown":4},{"id":185,"x":22},{"id":207,"y":21},{"id":201,"x":21},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":197,"x":2,"y":1},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":185,"x":22,"y":20},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":192,"x":22,"y":24}]},"396":{"objects":[{"id":201,"x":22},{"id":207,"y":20},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":198,"x":22,"y":22}]},"397":{"objects":[{"id":206,"x":5,"moveCooldown":4},{"id":185,"x":23},{"id":207,"y":21},{"id":201,"x":21},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":206,"x":5,"y":0},{"type":"move","unit_id":185,"x":23,"y":20},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":195,"x":20,"y":22}]},"398":{"objects":[{"id":189,"state":"dead"},{"id":200,"moveCooldown":4},{"id":203,"y":1,"moveCooldown":4},{"id":185,"x":24},{"id":181,"x":22},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":203,"x":4,"y":1},{"type":"move","unit_id":185,"x":24,"y":20},{"type":"attack","unit_id":200,"x":2,"y":0},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":195,"x":20,"y":23}]},"399":{"objects":[{"id":185,"x":23},{"id":201,"y":22},{"id":207,"x":23},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":185,"x":23,"y":20},{"type":"move","unit_id":204,"x":19,"y":24}]},"400":{"objects":[{"id":182,"hp":4},{"id":197,"moveCooldown":4},{"id":185,"x":24},{"id":207,"x":24},{"id":195,"y":23},{"id":201,"y":21},{"id":198,"y":23},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":185,"x":24,"y":20},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":198,"x":22,"y":23},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"attack","unit_id":197,"x":1,"y":1}]},"401":{"objects":[{"id":185,"x":23},{"id":201,"y":22},{"id":207,"x":23},{"id":204,"y":24},{"id":195,"y":22},{"id":198,"y":22}],"actions":[{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":185,"x":23,"y":20}]},"402":{"objects":[{"id":206,"x":4,"moveCooldown":4},{"id":185,"x":24},{"id":207,"x":24},{"id":195,"y":23},{"id":201,"y":21},{"id":198,"y":23},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":198,"x":22,"y":23},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":185,"x":24,"y":20},{"type":"move","unit_id":206,"x":4,"y":0}]},"403":{"objects":[{"id":200,"y":1,"moveCooldown":4},{"id":185,"x":23},{"id":201,"y":22},{"id":181,"y":22},{"id":207,"x":23},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":200,"x":3,"y":1},{"type":"move","unit_id":181,"x":22,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":185,"x":23,"y":20}]},"404":{"objects":[{"id":203,"y":2,"moveCooldown":4},{"id":185,"x":24},{"id":207,"x":24},{"id":195,"y":23},{"id":201,"y":21},{"id":181,"y":21},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":203,"x":4,"y":2},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":185,"x":24,"y":20},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":204,"x":19,"y":23}]},"405":{"objects":[{"id":182,"state":"dead"},{"id":197,"moveCooldown":4},{"id":185,"x":23},{"id":201,"y":22},{"id":181,"y":22},{"id":207,"x":23},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":181,"x":22,"y":22},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":185,"x":23,"y":20},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"attack","unit_id":197,"x":1,"y":1}]},"406":{"objects":[{"id":185,"x":24},{"id":207,"x":24},{"id":195,"y":23},{"id":201,"y":21},{"id":181,"y":21},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":185,"x":24,"y":20},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":207,"x":24,"y":21}]},"407":{"objects":[{"id":206,"x":3,"moveCooldown":4},{"id":185,"x":23},{"id":201,"y":22},{"id":181,"y":22},{"id":207,"x":23},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":185,"x":23,"y":20},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":181,"x":22,"y":22},{"type":"move","unit_id":206,"x":3,"y":0},{"type":"move","unit_id":207,"x":23,"y":21}]},"408":{"objects":[{"id":200,"y":2,"moveCooldown":4},{"id":185,"x":24},{"id":207,"x":24},{"id":195,"y":23},{"id":201,"y":21},{"id":181,"y":21},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":185,"x":24,"y":20},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":200,"x":3,"y":2},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":195,"x":20,"y":23}]},"409":{"objects":[{"id":203,"y":1,"moveCooldown":4},{"id":185,"x":23},{"id":201,"y":22},{"id":181,"x":23},{"id":204,"y":24},{"id":195,"y":22},{"id":198,"y":22}],"actions":[{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":185,"x":23,"y":20},{"type":"move","unit_id":203,"x":4,"y":1},{"type":"move","unit_id":195,"x":20,"y":22}]},"410":{"objects":[{"id":197,"x":1,"moveCooldown":4},{"id":185,"x":24},{"id":181,"x":22},{"id":195,"y":23},{"id":201,"y":21},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":181,"x":22,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":197,"x":1,"y":1},{"type":"move","unit_id":185,"x":24,"y":20},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":201,"x":21,"y":21}]},"411":{"objects":[{"id":185,"x":23},{"id":181,"x":23},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":185,"x":23,"y":20}]},"412":{"objects":[{"id":206,"x":2,"moveCooldown":4},{"id":185,"x":24},{"id":201,"x":22},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":185,"x":24,"y":20},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":206,"x":2,"y":0}]},"413":{"objects":[{"id":200,"y":1,"moveCooldown":4},{"id":185,"x":23},{"id":201,"x":21},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":185,"x":23,"y":20},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":200,"x":3,"y":1},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":204,"x":19,"y":24}]},"414":{"objects":[{"id":203,"y":0,"moveCooldown":4},{"id":185,"x":24},{"id":201,"x":22},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":185,"x":24,"y":20},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":203,"x":4,"y":0}]},"415":{"objects":[{"id":186,"hp":14},{"id":197,"moveCooldown":4},{"id":201,"y":20},{"id":181,"y":20},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":201,"x":22,"y":20},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"attack","unit_id":197,"x":1,"y":0},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":198,"x":21,"y":22}]},"416":{"objects":[{"id":201,"y":21},{"id":181,"y":21},{"id":185,"y":19},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":185,"x":24,"y":19},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":201,"x":22,"y":21}]},"417":{"objects":[{"id":186,"hp":8},{"id":206,"moveCooldown":4},{"id":185,"y":20},{"id":201,"y":20},{"id":181,"y":20},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":185,"x":24,"y":20},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":201,"x":22,"y":20},{"type":"attack","unit_id":206,"x":1,"y":0},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":204,"x":19,"y":24}]},"418":{"objects":[{"id":200,"x":2,"moveCooldown":4},{"id":201,"y":21},{"id":181,"y":21},{"id":185,"y":19},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":200,"x":2,"y":1},{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":185,"x":24,"y":19},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":198,"x":22,"y":22}]},"419":{"objects":[{"id":203,"x":3,"moveCooldown":4},{"id":201,"y":20},{"id":181,"y":20},{"id":207,"y":20},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":201,"x":22,"y":20},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":203,"x":3,"y":0},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":181,"x":23,"y":20}]},"420":{"objects":[{"id":186,"hp":2},{"id":197,"moveCooldown":4},{"id":185,"x":23},{"id":201,"y":21},{"id":181,"y":21},{"id":207,"y":21},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":195,"x":20,"y":23},{"type":"attack","unit_id":197,"x":1,"y":0},{"type":"move","unit_id":185,"x":23,"y":19},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":181,"x":23,"y":21}]},"421":{"objects":[{"id":201,"x":21},{"id":181,"y":20},{"id":207,"y":20},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":204,"x":19,"y":24}]},"422":{"objects":[{"id":186,"state":"dead"},{"id":206,"moveCooldown":4},{"id":185,"x":24},{"id":181,"y":21},{"id":207,"y":21},{"id":201,"x":22},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"attack","unit_id":206,"x":1,"y":0},{"type":"move","unit_id":185,"x":24,"y":19}]},"423":{"objects":[{"id":200,"y":2,"moveCooldown":4},{"id":201,"x":21},{"id":181,"y":20},{"id":207,"y":20},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":200,"x":2,"y":2},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":198,"x":21,"y":22}]},"424":{"objects":[{"id":203,"y":1,"moveCooldown":4},{"id":185,"x":23},{"id":181,"y":21},{"id":207,"y":21},{"id":201,"x":22},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":185,"x":23,"y":19},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":203,"x":3,"y":1},{"type":"move","unit_id":201,"x":22,"y":21}]},"425":{"objects":[{"id":188,"hp":4},{"id":197,"moveCooldown":4},{"id":185,"y":20},{"id":201,"x":21},{"id":207,"y":20},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":185,"x":23,"y":20},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"attack","unit_id":197,"x":0,"y":1},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":204,"x":19,"y":24}]},"426":{"objects":[{"id":185,"x":22},{"id":207,"y":21},{"id":201,"x":22},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":185,"x":22,"y":20},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":192,"x":22,"y":23}]},"427":{"objects":[{"id":206,"y":1,"moveCooldown":4},{"id":185,"x":23},{"id":201,"x":21},{"id":207,"y":20},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":185,"x":23,"y":20},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":206,"x":2,"y":1},{"type":"move","unit_id":192,"x":22,"y":24}]},"428":{"objects":[{"id":200,"x":1,"moveCooldown":4},{"id":185,"x":22},{"id":207,"y":21},{"id":201,"x":22},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":185,"x":22,"y":20},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":200,"x":1,"y":2},{"type":"move","unit_id":195,"x":20,"y":23}]},"429":{"objects":[{"id":203,"y":0,"moveCooldown":4},{"id":201,"x":21},{"id":181,"y":20},{"id":207,"y":20},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":203,"x":3,"y":0},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":201,"x":21,"y":21}]},"430":{"objects":[{"id":188,"state":"dead"},{"id":197,"moveCooldown":4},{"id":181,"y":21},{"id":207,"y":21},{"id":201,"x":22},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"attack","unit_id":197,"x":0,"y":1},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":198,"x":22,"y":22}]},"431":{"objects":[{"id":185,"x":23},{"id":201,"x":21},{"id":207,"y":20},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":185,"x":23,"y":20},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":198,"x":21,"y":22}]},"432":{"objects":[{"id":206,"y":0,"moveCooldown":4},{"id":185,"x":22},{"id":207,"y":21},{"id":201,"x":22},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":206,"x":2,"y":0},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":185,"x":22,"y":20}]},"433":{"objects":[{"id":200,"x":0,"moveCooldown":4},{"id":201,"x":21},{"id":181,"y":20},{"id":207,"y":20},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":200,"x":0,"y":2},{"type":"move","unit_id":198,"x":21,"y":22}]},"434":{"objects":[{"id":203,"y":1,"moveCooldown":4},{"id":185,"y":21},{"id":181,"y":21},{"id":207,"y":21},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":203,"x":3,"y":1},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":204,"x":19,"y":23}]},"435":{"objects":[{"id":197,"y":0,"moveCooldown":4},{"id":201,"y":22},{"id":185,"y":20},{"id":181,"y":20},{"id":207,"y":20},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":185,"x":22,"y":20},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":197,"x":1,"y":0},{"type":"move","unit_id":207,"x":24,"y":20}]},"436":{"objects":[{"id":185,"y":21},{"id":181,"y":21},{"id":207,"y":21},{"id":195,"y":23},{"id":201,"y":21},{"id":198,"y":23},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":198,"x":22,"y":23},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":201,"x":21,"y":21}]},"437":{"objects":[{"id":206,"y":1,"moveCooldown":4},{"id":201,"y":22},{"id":185,"y":22},{"id":181,"y":20},{"id":207,"y":20},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":206,"x":2,"y":1},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":201,"x":21,"y":22}]},"438":{"objects":[{"id":200,"y":1,"moveCooldown":4},{"id":181,"y":21},{"id":207,"y":21},{"id":195,"y":23},{"id":201,"y":21},{"id":185,"y":21},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":200,"x":0,"y":1},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":201,"x":21,"y":21}]},"439":{"objects":[{"id":203,"y":0,"moveCooldown":4},{"id":201,"y":22},{"id":185,"y":22},{"id":181,"y":20},{"id":207,"y":20},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":203,"x":3,"y":0},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":195,"x":20,"y":22}]},"440":{"objects":[{"id":1,"hp":188},{"id":197,"moveCooldown":4},{"id":181,"y":21},{"id":207,"y":21},{"id":195,"y":23},{"id":201,"y":21},{"id":185,"y":21},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"attack","unit_id":197,"x":0,"y":0},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":207,"x":24,"y":21}]},"441":{"objects":[{"id":201,"y":22},{"id":185,"y":22},{"id":181,"y":20},{"id":207,"y":20},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":201,"x":21,"y":22}]},"442":{"objects":[{"id":206,"x":1,"moveCooldown":4},{"id":181,"y":21},{"id":207,"y":21},{"id":195,"y":23},{"id":201,"y":21},{"id":185,"y":21},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":206,"x":1,"y":1},{"type":"move","unit_id":185,"x":22,"y":21}]},"443":{"objects":[{"id":1,"hp":176},{"id":200,"moveCooldown":4},{"id":201,"y":22},{"id":185,"y":22},{"id":181,"y":20},{"id":207,"y":20},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":181,"x":23,"y":20},{"type":"attack","unit_id":200,"x":0,"y":0},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":204,"x":19,"y":24}]},"444":{"objects":[{"id":203,"x":2,"moveCooldown":4},{"id":181,"y":21},{"id":207,"y":21},{"id":195,"y":23},{"id":201,"y":21},{"id":185,"y":21},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":203,"x":2,"y":0},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":207,"x":24,"y":21}]},"445":{"objects":[{"id":1,"hp":164},{"id":197,"moveCooldown":4},{"id":201,"y":22},{"id":185,"y":22},{"id":181,"y":20},{"id":207,"y":20},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"attack","unit_id":197,"x":0,"y":0},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":201,"x":21,"y":22}]},"446":{"objects":[{"id":181,"y":21},{"id":207,"y":21},{"id":195,"y":23},{"id":201,"y":21},{"id":185,"y":21},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":204,"x":19,"y":23}]},"447":{"objects":[{"id":201,"y":22},{"id":185,"y":22},{"id":181,"y":20},{"id":207,"y":20},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":204,"x":19,"y":24}]},"448":{"objects":[{"id":1,"hp":152},{"id":200,"moveCooldown":4},{"id":181,"y":21},{"id":207,"y":21},{"id":195,"y":23},{"id":201,"y":21},{"id":185,"y":21},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"attack","unit_id":200,"x":0,"y":0},{"type":"move","unit_id":204,"x":19,"y":23}]},"449":{"objects":[{"id":203,"y":1,"moveCooldown":4},{"id":201,"y":22},{"id":181,"y":20},{"id":207,"y":20},{"id":204,"y":24},{"id":195,"y":22},{"id":198,"y":22}],"actions":[{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":203,"x":2,"y":1},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":207,"x":24,"y":20}]},"450":{"objects":[{"id":1,"hp":140},{"id":197,"moveCooldown":4},{"id":207,"y":21},{"id":185,"x":23},{"id":195,"y":23},{"id":201,"y":21},{"id":198,"y":23},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":198,"x":22,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":185,"x":23,"y":21},{"type":"attack","unit_id":197,"x":0,"y":0},{"type":"move","unit_id":201,"x":21,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":207,"x":24,"y":21}]},"451":{"objects":[{"id":201,"y":22},{"id":185,"x":22},{"id":207,"y":20},{"id":204,"y":24},{"id":195,"y":22},{"id":198,"y":22}],"actions":[{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":201,"x":21,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":195,"x":20,"y":22}]},"452":{"objects":[{"id":207,"y":21},{"id":185,"x":23},{"id":195,"y":23},{"id":201,"y":21},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":185,"x":23,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":201,"x":21,"y":21}]},"453":{"objects":[{"id":1,"hp":128},{"id":200,"moveCooldown":4},{"id":181,"x":24},{"id":185,"x":22},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":181,"x":24,"y":20},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"attack","unit_id":200,"x":0,"y":0}]},"454":{"objects":[{"id":203,"y":0,"moveCooldown":4},{"id":181,"x":23},{"id":201,"y":20},{"id":185,"y":22},{"id":207,"x":23},{"id":195,"y":23},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":201,"x":21,"y":20},{"type":"move","unit_id":203,"x":2,"y":0},{"type":"move","unit_id":195,"x":20,"y":23}]},"455":{"objects":[{"id":1,"hp":116},{"id":197,"moveCooldown":4},{"id":201,"x":22},{"id":181,"x":24},{"id":207,"x":24},{"id":198,"x":20},{"id":185,"y":21},{"id":204,"y":24},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":181,"x":24,"y":20},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"attack","unit_id":197,"x":0,"y":0},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":185,"x":22,"y":21},{"type":"move","unit_id":201,"x":22,"y":20}]},"456":{"objects":[{"id":181,"x":23},{"id":185,"y":22},{"id":207,"x":23},{"id":198,"x":21},{"id":204,"y":23},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":207,"x":23,"y":21}]},"457":{"objects":[{"id":201,"y":21},{"id":181,"x":24},{"id":207,"x":24},{"id":198,"y":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":24}],"actions":[{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":181,"x":24,"y":20},{"type":"move","unit_id":192,"x":22,"y":24},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":198,"x":21,"y":21}]},"458":{"objects":[{"id":1,"hp":104},{"id":200,"moveCooldown":4},{"id":181,"x":23},{"id":198,"y":22},{"id":201,"x":23},{"id":185,"y":23},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":201,"x":23,"y":21},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"attack","unit_id":200,"x":0,"y":0}]},"459":{"objects":[{"id":203,"y":1,"moveCooldown":4},{"id":181,"x":24},{"id":201,"x":22},{"id":198,"x":22},{"id":204,"x":20}],"actions":[{"type":"move","unit_id":204,"x":20,"y":23},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":181,"x":24,"y":20},{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":203,"x":2,"y":1}]},"460":{"objects":[{"id":1,"hp":92},{"id":197,"moveCooldown":4},{"id":181,"x":23},{"id":207,"x":23},{"id":198,"x":21},{"id":204,"x":19}],"actions":[{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"attack","unit_id":197,"x":0,"y":0}]},"461":{"objects":[{"id":181,"x":24},{"id":207,"x":24},{"id":195,"y":23},{"id":198,"x":22}],"actions":[{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":181,"x":24,"y":20}]},"462":{"objects":[{"id":181,"x":23},{"id":207,"x":23},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":198,"x":21,"y":22}]},"463":{"objects":[{"id":1,"hp":80},{"id":200,"moveCooldown":4},{"id":181,"x":24},{"id":207,"x":24},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":181,"x":24,"y":20},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":198,"x":22,"y":22},{"type":"attack","unit_id":200,"x":0,"y":0},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":207,"x":24,"y":21}]},"464":{"objects":[{"id":203,"y":0,"moveCooldown":4},{"id":181,"x":23},{"id":207,"x":23},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":203,"x":2,"y":0},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":204,"x":19,"y":24}]},"465":{"objects":[{"id":1,"hp":68},{"id":197,"moveCooldown":4},{"id":181,"x":24},{"id":207,"x":24},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":181,"x":24,"y":20},{"type":"attack","unit_id":197,"x":0,"y":0},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":207,"x":24,"y":21}]},"466":{"objects":[{"id":181,"x":23},{"id":207,"x":23},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":207,"x":23,"y":21},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":204,"x":19,"y":24}]},"467":{"objects":[{"id":181,"x":24},{"id":207,"x":24},{"id":195,"y":23},{"id":198,"x":22},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":198,"x":22,"y":22},{"type":"move","unit_id":181,"x":24,"y":20},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":204,"x":19,"y":23}]},"468":{"objects":[{"id":1,"hp":56},{"id":200,"moveCooldown":4},{"id":181,"x":23},{"id":201,"x":23},{"id":198,"x":21},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":181,"x":23,"y":20},{"type":"attack","unit_id":200,"x":0,"y":0},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":201,"x":23,"y":21},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":204,"x":19,"y":24}]},"469":{"objects":[{"id":203,"y":1,"moveCooldown":4},{"id":201,"x":22},{"id":207,"y":20},{"id":195,"y":23},{"id":185,"y":22},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":203,"x":2,"y":1}]},"470":{"objects":[{"id":1,"hp":44},{"id":197,"moveCooldown":4},{"id":181,"y":21},{"id":207,"y":21},{"id":185,"y":23},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"attack","unit_id":197,"x":0,"y":0},{"type":"move","unit_id":207,"x":24,"y":21}]},"471":{"objects":[{"id":181,"y":20},{"id":207,"y":20},{"id":195,"y":23},{"id":185,"y":22},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":185,"x":22,"y":22},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":195,"x":20,"y":23}]},"472":{"objects":[{"id":207,"y":21},{"id":201,"x":23},{"id":198,"x":20},{"id":185,"y":23},{"id":204,"y":24}],"actions":[{"type":"move","unit_id":198,"x":20,"y":22},{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":201,"x":23,"y":21},{"type":"move","unit_id":207,"x":24,"y":21}]},"473":{"objects":[{"id":1,"hp":32},{"id":200,"moveCooldown":4},{"id":201,"x":22},{"id":207,"y":20},{"id":198,"x":21},{"id":185,"y":22},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":185,"x":22,"y":22},{"type":"attack","unit_id":200,"x":0,"y":0},{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":198,"x":21,"y":22}]},"474":{"objects":[{"id":203,"y":0,"moveCooldown":4},{"id":181,"y":21},{"id":207,"y":21},{"id":198,"y":21},{"id":204,"y":24},{"id":195,"y":22},{"id":192,"y":23}],"actions":[{"type":"move","unit_id":203,"x":2,"y":0},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":198,"x":21,"y":21},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":192,"x":22,"y":23},{"type":"move","unit_id":204,"x":19,"y":24}]},"475":{"objects":[{"id":1,"hp":20},{"id":197,"moveCooldown":4},{"id":198,"y":22},{"id":201,"y":20},{"id":181,"y":20},{"id":207,"y":20},{"id":192,"y":24},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"attack","unit_id":197,"x":0,"y":0},{"type":"move","unit_id":201,"x":22,"y":20},{"type":"move","unit_id":192,"x":22,"y":24}]},"476":{"objects":[{"id":201,"y":21},{"id":181,"y":21},{"id":207,"y":21},{"id":195,"y":23},{"id":198,"y":21},{"id":185,"y":23}],"actions":[{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":185,"x":22,"y":23},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":181,"x":23,"y":21},{"type":"move","unit_id":198,"x":21,"y":21}]},"477":{"objects":[{"id":198,"y":22},{"id":201,"y":22},{"id":181,"y":20},{"id":207,"y":20},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":207,"x":24,"y":20},{"type":"move","unit_id":201,"x":22,"y":22}]},"478":{"objects":[{"id":1,"hp":8},{"id":200,"moveCooldown":4},{"id":181,"y":21},{"id":207,"y":21},{"id":195,"y":23},{"id":198,"y":21},{"id":201,"y":21},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":195,"x":20,"y":23},{"type":"attack","unit_id":200,"x":0,"y":0},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":201,"x":22,"y":21},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":198,"x":21,"y":21},{"type":"move","unit_id":181,"x":23,"y":21}]},"479":{"objects":[{"id":203,"y":1,"moveCooldown":4},{"id":198,"y":22},{"id":201,"y":22},{"id":181,"y":20},{"id":207,"y":20},{"id":204,"y":24},{"id":195,"y":22}],"actions":[{"type":"move","unit_id":203,"x":2,"y":1},{"type":"move","unit_id":204,"x":19,"y":24},{"type":"move","unit_id":201,"x":22,"y":22},{"type":"move","unit_id":181,"x":23,"y":20},{"type":"move","unit_id":195,"x":20,"y":22},{"type":"move","unit_id":198,"x":21,"y":22},{"type":"move","unit_id":207,"x":24,"y":20}]},"480":{"objects":[{"id":1,"hp":-4},{"id":197,"moveCooldown":4},{"id":181,"y":21},{"id":207,"y":21},{"id":195,"y":23},{"id":198,"y":21},{"id":201,"y":21},{"id":204,"y":23}],"actions":[{"type":"move","unit_id":198,"x":21,"y":21},{"type":"move","unit_id":207,"x":24,"y":21},{"type":"move","unit_id":195,"x":20,"y":23},{"type":"move","unit_id":201,"x":22,"y":21},{"type":"attack","unit_id":197,"x":0,"y":0},{"type":"move","unit_id":204,"x":19,"y":23},{"type":"move","unit_id":181,"x":23,"y":21}]}},"config":{"gridSize":25,"seed":1,"idleIncome":0,"idleIncomeTimeOut":0,"resourceHp":50,"resourceIncome":200,"moneyObjIncome":75,"coreHp":200,"initialBalance":200,"wallHp":50,"wallBuildCost":20,"bombHp":50,"bombCountdown":10,"bombThrowCost":50,"bombReach":3,"bombDamage":50,"worldGenerator":"hardcoded","worldGeneratorConfig":{"map":[" W "," WWW "," WWWWW "," WWWWWWW "," WWWW WWWW "," WWWW WWWW "," WWWW M WWWW "," WWW MMM WWW "," WWW MMMMM WWW "," WWW MMMMM "," WWW MMMMM "," WWW MMMMM "," WWW MMMMM "," WWW MMMMM "," WWW MMMMM "," WWW MMMMM "," WWW MMMMM WWW "," WWW MMM WWW "," WWWW M WWWW "," WWWW WWWW "," WWWW WWWW "," WWWWWWW "," WWWWW "," WWW "," W "]},"units":[{"name":"Warrior","cost":150,"hp":35,"baseMoveCooldown":5,"maxMoveCooldown":20,"balancePerCooldownStep":30,"damageCore":12,"damageUnit":6,"damageResource":4,"damageWall":5,"buildType":0},{"name":"Miner","cost":100,"hp":20,"baseMoveCooldown":5,"maxMoveCooldown":10,"balancePerCooldownStep":100,"damageCore":5,"damageUnit":2,"damageResource":10,"damageWall":12,"buildType":0},{"name":"Carrier","cost":200,"hp":10,"baseMoveCooldown":0,"maxMoveCooldown":1,"balancePerCooldownStep":500,"damageCore":0,"damageUnit":0,"damageResource":0,"damageWall":3,"buildType":0}],"corePositions":[{"x":0,"y":0},{"x":24,"y":24}]},"full_tick_amount":480} \ No newline at end of file +{ + "misc": { + "team_results": [ + { "id": 1, "name": "Gridnoob", "place": 1, "death_reason": 1 }, + { "id": 2, "name": "Gridmaster", "place": 0 } + ], + "game_end_reason": 0, + "version": "1.1.1", + "game_id": "", + "worldGeneratorSeed": 3825364427 + }, + "ticks": { + "0": { + "objects": [ + { + "id": 1, + "type": 0, + "x": 0, + "y": 0, + "hp": 200, + "teamId": 1, + "balance": 200 + }, + { "id": 3, "type": 3, "x": 12, "y": 0, "hp": 50 }, + { "id": 4, "type": 3, "x": 11, "y": 1, "hp": 50 }, + { "id": 5, "type": 3, "x": 12, "y": 1, "hp": 50 }, + { "id": 6, "type": 3, "x": 13, "y": 1, "hp": 50 }, + { "id": 7, "type": 3, "x": 10, "y": 2, "hp": 50 }, + { "id": 8, "type": 3, "x": 11, "y": 2, "hp": 50 }, + { "id": 9, "type": 3, "x": 12, "y": 2, "hp": 50 }, + { "id": 10, "type": 3, "x": 13, "y": 2, "hp": 50 }, + { "id": 11, "type": 3, "x": 14, "y": 2, "hp": 50 }, + { "id": 12, "type": 3, "x": 9, "y": 3, "hp": 50 }, + { "id": 13, "type": 3, "x": 10, "y": 3, "hp": 50 }, + { "id": 14, "type": 3, "x": 11, "y": 3, "hp": 50 }, + { "id": 15, "type": 3, "x": 12, "y": 3, "hp": 50 }, + { "id": 16, "type": 3, "x": 13, "y": 3, "hp": 50 }, + { "id": 17, "type": 3, "x": 14, "y": 3, "hp": 50 }, + { "id": 18, "type": 3, "x": 15, "y": 3, "hp": 50 }, + { "id": 19, "type": 3, "x": 8, "y": 4, "hp": 50 }, + { "id": 20, "type": 3, "x": 9, "y": 4, "hp": 50 }, + { "id": 21, "type": 3, "x": 10, "y": 4, "hp": 50 }, + { "id": 22, "type": 3, "x": 11, "y": 4, "hp": 50 }, + { "id": 23, "type": 3, "x": 13, "y": 4, "hp": 50 }, + { "id": 24, "type": 3, "x": 14, "y": 4, "hp": 50 }, + { "id": 25, "type": 3, "x": 15, "y": 4, "hp": 50 }, + { "id": 26, "type": 3, "x": 16, "y": 4, "hp": 50 }, + { "id": 27, "type": 3, "x": 7, "y": 5, "hp": 50 }, + { "id": 28, "type": 3, "x": 8, "y": 5, "hp": 50 }, + { "id": 29, "type": 3, "x": 9, "y": 5, "hp": 50 }, + { "id": 30, "type": 3, "x": 10, "y": 5, "hp": 50 }, + { "id": 31, "type": 3, "x": 14, "y": 5, "hp": 50 }, + { "id": 32, "type": 3, "x": 15, "y": 5, "hp": 50 }, + { "id": 33, "type": 3, "x": 16, "y": 5, "hp": 50 }, + { "id": 34, "type": 3, "x": 17, "y": 5, "hp": 50 }, + { "id": 35, "type": 3, "x": 6, "y": 6, "hp": 50 }, + { "id": 36, "type": 3, "x": 7, "y": 6, "hp": 50 }, + { "id": 37, "type": 3, "x": 8, "y": 6, "hp": 50 }, + { "id": 38, "type": 3, "x": 9, "y": 6, "hp": 50 }, + { "id": 39, "type": 4, "x": 12, "y": 6, "hp": 1, "balance": 75 }, + { "id": 40, "type": 3, "x": 15, "y": 6, "hp": 50 }, + { "id": 41, "type": 3, "x": 16, "y": 6, "hp": 50 }, + { "id": 42, "type": 3, "x": 17, "y": 6, "hp": 50 }, + { "id": 43, "type": 3, "x": 18, "y": 6, "hp": 50 }, + { "id": 44, "type": 3, "x": 6, "y": 7, "hp": 50 }, + { "id": 45, "type": 3, "x": 7, "y": 7, "hp": 50 }, + { "id": 46, "type": 3, "x": 8, "y": 7, "hp": 50 }, + { "id": 47, "type": 4, "x": 11, "y": 7, "hp": 1, "balance": 75 }, + { "id": 48, "type": 4, "x": 12, "y": 7, "hp": 1, "balance": 75 }, + { "id": 49, "type": 4, "x": 13, "y": 7, "hp": 1, "balance": 75 }, + { "id": 50, "type": 3, "x": 16, "y": 7, "hp": 50 }, + { "id": 51, "type": 3, "x": 17, "y": 7, "hp": 50 }, + { "id": 52, "type": 3, "x": 18, "y": 7, "hp": 50 }, + { "id": 53, "type": 3, "x": 6, "y": 8, "hp": 50 }, + { "id": 54, "type": 3, "x": 7, "y": 8, "hp": 50 }, + { "id": 55, "type": 3, "x": 8, "y": 8, "hp": 50 }, + { "id": 56, "type": 4, "x": 10, "y": 8, "hp": 1, "balance": 75 }, + { "id": 57, "type": 4, "x": 11, "y": 8, "hp": 1, "balance": 75 }, + { "id": 58, "type": 4, "x": 12, "y": 8, "hp": 1, "balance": 75 }, + { "id": 59, "type": 4, "x": 13, "y": 8, "hp": 1, "balance": 75 }, + { "id": 60, "type": 4, "x": 14, "y": 8, "hp": 1, "balance": 75 }, + { "id": 61, "type": 3, "x": 16, "y": 8, "hp": 50 }, + { "id": 62, "type": 3, "x": 17, "y": 8, "hp": 50 }, + { "id": 63, "type": 3, "x": 18, "y": 8, "hp": 50 }, + { "id": 64, "type": 3, "x": 6, "y": 9, "hp": 50 }, + { "id": 65, "type": 3, "x": 7, "y": 9, "hp": 50 }, + { "id": 66, "type": 3, "x": 8, "y": 9, "hp": 50 }, + { "id": 67, "type": 4, "x": 10, "y": 9, "hp": 1, "balance": 75 }, + { "id": 68, "type": 4, "x": 11, "y": 9, "hp": 1, "balance": 75 }, + { "id": 69, "type": 4, "x": 12, "y": 9, "hp": 1, "balance": 75 }, + { "id": 70, "type": 4, "x": 13, "y": 9, "hp": 1, "balance": 75 }, + { "id": 71, "type": 4, "x": 14, "y": 9, "hp": 1, "balance": 75 }, + { "id": 72, "type": 3, "x": 6, "y": 10, "hp": 50 }, + { "id": 73, "type": 3, "x": 7, "y": 10, "hp": 50 }, + { "id": 74, "type": 3, "x": 8, "y": 10, "hp": 50 }, + { "id": 75, "type": 4, "x": 10, "y": 10, "hp": 1, "balance": 75 }, + { "id": 76, "type": 4, "x": 11, "y": 10, "hp": 1, "balance": 75 }, + { "id": 77, "type": 4, "x": 12, "y": 10, "hp": 1, "balance": 75 }, + { "id": 78, "type": 4, "x": 13, "y": 10, "hp": 1, "balance": 75 }, + { "id": 79, "type": 4, "x": 14, "y": 10, "hp": 1, "balance": 75 }, + { "id": 80, "type": 3, "x": 6, "y": 11, "hp": 50 }, + { "id": 81, "type": 3, "x": 7, "y": 11, "hp": 50 }, + { "id": 82, "type": 3, "x": 8, "y": 11, "hp": 50 }, + { "id": 83, "type": 4, "x": 10, "y": 11, "hp": 1, "balance": 75 }, + { "id": 84, "type": 4, "x": 11, "y": 11, "hp": 1, "balance": 75 }, + { "id": 85, "type": 4, "x": 12, "y": 11, "hp": 1, "balance": 75 }, + { "id": 86, "type": 4, "x": 13, "y": 11, "hp": 1, "balance": 75 }, + { "id": 87, "type": 4, "x": 14, "y": 11, "hp": 1, "balance": 75 }, + { "id": 88, "type": 3, "x": 6, "y": 12, "hp": 50 }, + { "id": 89, "type": 3, "x": 7, "y": 12, "hp": 50 }, + { "id": 90, "type": 3, "x": 8, "y": 12, "hp": 50 }, + { "id": 91, "type": 4, "x": 10, "y": 12, "hp": 1, "balance": 75 }, + { "id": 92, "type": 4, "x": 11, "y": 12, "hp": 1, "balance": 75 }, + { "id": 93, "type": 4, "x": 12, "y": 12, "hp": 1, "balance": 75 }, + { "id": 94, "type": 4, "x": 13, "y": 12, "hp": 1, "balance": 75 }, + { "id": 95, "type": 4, "x": 14, "y": 12, "hp": 1, "balance": 75 }, + { "id": 96, "type": 3, "x": 6, "y": 13, "hp": 50 }, + { "id": 97, "type": 3, "x": 7, "y": 13, "hp": 50 }, + { "id": 98, "type": 3, "x": 8, "y": 13, "hp": 50 }, + { "id": 99, "type": 4, "x": 10, "y": 13, "hp": 1, "balance": 75 }, + { "id": 100, "type": 4, "x": 11, "y": 13, "hp": 1, "balance": 75 }, + { "id": 101, "type": 4, "x": 12, "y": 13, "hp": 1, "balance": 75 }, + { "id": 102, "type": 4, "x": 13, "y": 13, "hp": 1, "balance": 75 }, + { "id": 103, "type": 4, "x": 14, "y": 13, "hp": 1, "balance": 75 }, + { "id": 104, "type": 3, "x": 6, "y": 14, "hp": 50 }, + { "id": 105, "type": 3, "x": 7, "y": 14, "hp": 50 }, + { "id": 106, "type": 3, "x": 8, "y": 14, "hp": 50 }, + { "id": 107, "type": 4, "x": 10, "y": 14, "hp": 1, "balance": 75 }, + { "id": 108, "type": 4, "x": 11, "y": 14, "hp": 1, "balance": 75 }, + { "id": 109, "type": 4, "x": 12, "y": 14, "hp": 1, "balance": 75 }, + { "id": 110, "type": 4, "x": 13, "y": 14, "hp": 1, "balance": 75 }, + { "id": 111, "type": 4, "x": 14, "y": 14, "hp": 1, "balance": 75 }, + { "id": 112, "type": 3, "x": 6, "y": 15, "hp": 50 }, + { "id": 113, "type": 3, "x": 7, "y": 15, "hp": 50 }, + { "id": 114, "type": 3, "x": 8, "y": 15, "hp": 50 }, + { "id": 115, "type": 4, "x": 10, "y": 15, "hp": 1, "balance": 75 }, + { "id": 116, "type": 4, "x": 11, "y": 15, "hp": 1, "balance": 75 }, + { "id": 117, "type": 4, "x": 12, "y": 15, "hp": 1, "balance": 75 }, + { "id": 118, "type": 4, "x": 13, "y": 15, "hp": 1, "balance": 75 }, + { "id": 119, "type": 4, "x": 14, "y": 15, "hp": 1, "balance": 75 }, + { "id": 120, "type": 3, "x": 6, "y": 16, "hp": 50 }, + { "id": 121, "type": 3, "x": 7, "y": 16, "hp": 50 }, + { "id": 122, "type": 3, "x": 8, "y": 16, "hp": 50 }, + { "id": 123, "type": 4, "x": 10, "y": 16, "hp": 1, "balance": 75 }, + { "id": 124, "type": 4, "x": 11, "y": 16, "hp": 1, "balance": 75 }, + { "id": 125, "type": 4, "x": 12, "y": 16, "hp": 1, "balance": 75 }, + { "id": 126, "type": 4, "x": 13, "y": 16, "hp": 1, "balance": 75 }, + { "id": 127, "type": 4, "x": 14, "y": 16, "hp": 1, "balance": 75 }, + { "id": 128, "type": 3, "x": 16, "y": 16, "hp": 50 }, + { "id": 129, "type": 3, "x": 17, "y": 16, "hp": 50 }, + { "id": 130, "type": 3, "x": 18, "y": 16, "hp": 50 }, + { "id": 131, "type": 3, "x": 6, "y": 17, "hp": 50 }, + { "id": 132, "type": 3, "x": 7, "y": 17, "hp": 50 }, + { "id": 133, "type": 3, "x": 8, "y": 17, "hp": 50 }, + { "id": 134, "type": 4, "x": 11, "y": 17, "hp": 1, "balance": 75 }, + { "id": 135, "type": 4, "x": 12, "y": 17, "hp": 1, "balance": 75 }, + { "id": 136, "type": 4, "x": 13, "y": 17, "hp": 1, "balance": 75 }, + { "id": 137, "type": 3, "x": 16, "y": 17, "hp": 50 }, + { "id": 138, "type": 3, "x": 17, "y": 17, "hp": 50 }, + { "id": 139, "type": 3, "x": 18, "y": 17, "hp": 50 }, + { "id": 140, "type": 3, "x": 6, "y": 18, "hp": 50 }, + { "id": 141, "type": 3, "x": 7, "y": 18, "hp": 50 }, + { "id": 142, "type": 3, "x": 8, "y": 18, "hp": 50 }, + { "id": 143, "type": 3, "x": 9, "y": 18, "hp": 50 }, + { "id": 144, "type": 4, "x": 12, "y": 18, "hp": 1, "balance": 75 }, + { "id": 145, "type": 3, "x": 15, "y": 18, "hp": 50 }, + { "id": 146, "type": 3, "x": 16, "y": 18, "hp": 50 }, + { "id": 147, "type": 3, "x": 17, "y": 18, "hp": 50 }, + { "id": 148, "type": 3, "x": 18, "y": 18, "hp": 50 }, + { "id": 149, "type": 3, "x": 7, "y": 19, "hp": 50 }, + { "id": 150, "type": 3, "x": 8, "y": 19, "hp": 50 }, + { "id": 151, "type": 3, "x": 9, "y": 19, "hp": 50 }, + { "id": 152, "type": 3, "x": 10, "y": 19, "hp": 50 }, + { "id": 153, "type": 3, "x": 14, "y": 19, "hp": 50 }, + { "id": 154, "type": 3, "x": 15, "y": 19, "hp": 50 }, + { "id": 155, "type": 3, "x": 16, "y": 19, "hp": 50 }, + { "id": 156, "type": 3, "x": 17, "y": 19, "hp": 50 }, + { "id": 157, "type": 3, "x": 8, "y": 20, "hp": 50 }, + { "id": 158, "type": 3, "x": 9, "y": 20, "hp": 50 }, + { "id": 159, "type": 3, "x": 10, "y": 20, "hp": 50 }, + { "id": 160, "type": 3, "x": 11, "y": 20, "hp": 50 }, + { "id": 161, "type": 3, "x": 13, "y": 20, "hp": 50 }, + { "id": 162, "type": 3, "x": 14, "y": 20, "hp": 50 }, + { "id": 163, "type": 3, "x": 15, "y": 20, "hp": 50 }, + { "id": 164, "type": 3, "x": 16, "y": 20, "hp": 50 }, + { "id": 165, "type": 3, "x": 9, "y": 21, "hp": 50 }, + { "id": 166, "type": 3, "x": 10, "y": 21, "hp": 50 }, + { "id": 167, "type": 3, "x": 11, "y": 21, "hp": 50 }, + { "id": 168, "type": 3, "x": 12, "y": 21, "hp": 50 }, + { "id": 169, "type": 3, "x": 13, "y": 21, "hp": 50 }, + { "id": 170, "type": 3, "x": 14, "y": 21, "hp": 50 }, + { "id": 171, "type": 3, "x": 15, "y": 21, "hp": 50 }, + { "id": 172, "type": 3, "x": 10, "y": 22, "hp": 50 }, + { "id": 173, "type": 3, "x": 11, "y": 22, "hp": 50 }, + { "id": 174, "type": 3, "x": 12, "y": 22, "hp": 50 }, + { "id": 175, "type": 3, "x": 13, "y": 22, "hp": 50 }, + { "id": 176, "type": 3, "x": 14, "y": 22, "hp": 50 }, + { "id": 177, "type": 3, "x": 11, "y": 23, "hp": 50 }, + { "id": 178, "type": 3, "x": 12, "y": 23, "hp": 50 }, + { "id": 179, "type": 3, "x": 13, "y": 23, "hp": 50 }, + { "id": 180, "type": 3, "x": 12, "y": 24, "hp": 50 }, + { + "id": 2, + "type": 0, + "x": 24, + "y": 24, + "hp": 200, + "teamId": 2, + "balance": 200 + } + ] + }, + "1": { + "objects": [ + { "id": 1, "balance": 0 }, + { "id": 2, "balance": 0 }, + { + "id": 182, + "type": 1, + "x": 1, + "y": 0, + "hp": 10, + "teamId": 1, + "unit_type": 2, + "balance": 0, + "moveCooldown": 0 + }, + { + "id": 181, + "type": 1, + "x": 23, + "y": 24, + "hp": 10, + "teamId": 2, + "unit_type": 2, + "balance": 0, + "moveCooldown": 0 + } + ], + "actions": [ + { "type": "create", "unit_type": 2 }, + { "type": "create", "unit_type": 2 } + ] + }, + "2": { + "objects": [{ "id": 182, "x": 2 }, { "id": 181, "y": 23 }], + "actions": [ + { "type": "move", "unit_id": 182, "x": 2, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 23 } + ] + }, + "3": { + "objects": [{ "id": 182, "x": 3 }, { "id": 181, "y": 22 }], + "actions": [ + { "type": "move", "unit_id": 182, "x": 3, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 22 } + ] + }, + "4": { + "objects": [{ "id": 182, "x": 4 }, { "id": 181, "y": 21 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 4, "y": 0 } + ] + }, + "5": { + "objects": [{ "id": 182, "x": 5 }, { "id": 181, "y": 20 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 182, "x": 5, "y": 0 } + ] + }, + "6": { + "objects": [{ "id": 182, "x": 6 }, { "id": 181, "x": 22 }], + "actions": [ + { "type": "move", "unit_id": 182, "x": 6, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 20 } + ] + }, + "7": { + "objects": [{ "id": 182, "x": 7 }, { "id": 181, "y": 19 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 22, "y": 19 }, + { "type": "move", "unit_id": 182, "x": 7, "y": 0 } + ] + }, + "8": { + "objects": [{ "id": 182, "x": 8 }, { "id": 181, "x": 21 }], + "actions": [ + { "type": "move", "unit_id": 182, "x": 8, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 19 } + ] + }, + "9": { + "objects": [{ "id": 182, "x": 9 }, { "id": 181, "y": 18 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 21, "y": 18 }, + { "type": "move", "unit_id": 182, "x": 9, "y": 0 } + ] + }, + "10": { + "objects": [{ "id": 182, "x": 10 }, { "id": 181, "y": 17 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 21, "y": 17 }, + { "type": "move", "unit_id": 182, "x": 10, "y": 0 } + ] + }, + "11": { + "objects": [{ "id": 182, "x": 11 }, { "id": 181, "x": 20 }], + "actions": [ + { "type": "move", "unit_id": 182, "x": 11, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 20, "y": 17 } + ] + }, + "12": { + "objects": [{ "id": 3, "hp": 47 }, { "id": 181, "y": 16 }], + "actions": [ + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 20, "y": 16 } + ] + }, + "13": { + "objects": [{ "id": 3, "hp": 44 }, { "id": 181, "y": 15 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 20, "y": 15 }, + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 } + ] + }, + "14": { + "objects": [{ "id": 3, "hp": 41 }, { "id": 181, "x": 19 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 19, "y": 15 }, + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 } + ] + }, + "15": { + "objects": [{ "id": 3, "hp": 38 }, { "id": 181, "x": 18 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 18, "y": 15 }, + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 } + ] + }, + "16": { + "objects": [{ "id": 3, "hp": 35 }, { "id": 181, "x": 17 }], + "actions": [ + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 17, "y": 15 } + ] + }, + "17": { + "objects": [{ "id": 3, "hp": 32 }, { "id": 181, "x": 16 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 16, "y": 15 }, + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 } + ] + }, + "18": { + "objects": [{ "id": 3, "hp": 29 }, { "id": 181, "x": 15 }], + "actions": [ + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 15, "y": 15 } + ] + }, + "19": { + "objects": [ + { "id": 3, "hp": 26 }, + { "id": 119, "state": "dead" }, + { "id": 181, "x": 14, "balance": 75 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 14, "y": 15 }, + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 } + ] + }, + "20": { + "objects": [ + { "id": 3, "hp": 23 }, + { "id": 111, "state": "dead" }, + { "id": 181, "y": 14, "balance": 150 } + ], + "actions": [ + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 14, "y": 14 } + ] + }, + "21": { + "objects": [ + { "id": 3, "hp": 20 }, + { "id": 103, "state": "dead" }, + { "id": 181, "y": 13, "balance": 225 } + ], + "actions": [ + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 14, "y": 13 } + ] + }, + "22": { + "objects": [ + { "id": 3, "hp": 17 }, + { "id": 95, "state": "dead" }, + { "id": 181, "y": 12, "balance": 300 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 14, "y": 12 }, + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 } + ] + }, + "23": { + "objects": [ + { "id": 3, "hp": 14 }, + { "id": 87, "state": "dead" }, + { "id": 181, "y": 11, "balance": 375 } + ], + "actions": [ + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 14, "y": 11 } + ] + }, + "24": { + "objects": [ + { "id": 3, "hp": 11 }, + { "id": 79, "state": "dead" }, + { "id": 181, "y": 10, "balance": 450 } + ], + "actions": [ + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 14, "y": 10 } + ] + }, + "25": { + "objects": [ + { "id": 3, "hp": 8 }, + { "id": 71, "state": "dead" }, + { "id": 181, "y": 9, "balance": 525 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 14, "y": 9 }, + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 } + ] + }, + "26": { + "objects": [{ "id": 3, "hp": 5 }, { "id": 181, "y": 10 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 14, "y": 10 }, + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 } + ] + }, + "27": { + "objects": [{ "id": 3, "hp": 2 }, { "id": 181, "x": 15 }], + "actions": [ + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 15, "y": 10 } + ] + }, + "28": { + "objects": [{ "id": 3, "state": "dead" }, { "id": 181, "x": 16 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 16, "y": 10 }, + { "type": "attack", "unit_id": 182, "x": 12, "y": 0 } + ] + }, + "29": { + "objects": [{ "id": 182, "x": 12 }, { "id": 181, "y": 11 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 16, "y": 11 }, + { "type": "move", "unit_id": 182, "x": 12, "y": 0 } + ] + }, + "30": { + "objects": [{ "id": 182, "x": 13 }, { "id": 181, "x": 17 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 17, "y": 11 }, + { "type": "move", "unit_id": 182, "x": 13, "y": 0 } + ] + }, + "31": { + "objects": [{ "id": 182, "x": 14 }, { "id": 181, "y": 12 }], + "actions": [ + { "type": "move", "unit_id": 182, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 17, "y": 12 } + ] + }, + "32": { + "objects": [{ "id": 182, "x": 15 }, { "id": 181, "y": 13 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 17, "y": 13 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 } + ] + }, + "33": { + "objects": [{ "id": 182, "y": 1 }, { "id": 181, "y": 14 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 17, "y": 14 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 } + ] + }, + "34": { + "objects": [{ "id": 182, "x": 16 }, { "id": 181, "x": 18 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 18, "y": 14 }, + { "type": "move", "unit_id": 182, "x": 16, "y": 1 } + ] + }, + "35": { + "objects": [{ "id": 182, "y": 2 }, { "id": 181, "y": 15 }], + "actions": [ + { "type": "move", "unit_id": 182, "x": 16, "y": 2 }, + { "type": "move", "unit_id": 181, "x": 18, "y": 15 } + ] + }, + "36": { + "objects": [{ "id": 182, "x": 17 }, { "id": 181, "x": 19 }], + "actions": [ + { "type": "move", "unit_id": 182, "x": 17, "y": 2 }, + { "type": "move", "unit_id": 181, "x": 19, "y": 15 } + ] + }, + "37": { + "objects": [{ "id": 182, "x": 18 }, { "id": 181, "y": 16 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 19, "y": 16 }, + { "type": "move", "unit_id": 182, "x": 18, "y": 2 } + ] + }, + "38": { + "objects": [{ "id": 182, "y": 3 }, { "id": 181, "y": 17 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 19, "y": 17 }, + { "type": "move", "unit_id": 182, "x": 18, "y": 3 } + ] + }, + "39": { + "objects": [{ "id": 182, "x": 19 }, { "id": 181, "x": 20 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 20, "y": 17 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 3 } + ] + }, + "40": { + "objects": [{ "id": 182, "y": 4 }, { "id": 181, "y": 18 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 20, "y": 18 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 4 } + ] + }, + "41": { + "objects": [{ "id": 182, "y": 5 }, { "id": 181, "x": 21 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 21, "y": 18 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 5 } + ] + }, + "42": { + "objects": [{ "id": 182, "y": 6 }, { "id": 181, "y": 19 }], + "actions": [ + { "type": "move", "unit_id": 181, "x": 21, "y": 19 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 6 } + ] + }, + "43": { + "objects": [{ "id": 182, "y": 7 }, { "id": 181, "y": 20 }], + "actions": [ + { "type": "move", "unit_id": 182, "x": 19, "y": 7 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 20 } + ] + }, + "44": { + "objects": [{ "id": 182, "y": 8 }, { "id": 181, "y": 21 }], + "actions": [ + { "type": "move", "unit_id": 182, "x": 19, "y": 8 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 } + ] + }, + "45": { + "objects": [{ "id": 182, "y": 9 }, { "id": 181, "y": 22 }], + "actions": [ + { "type": "move", "unit_id": 182, "x": 19, "y": 9 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 22 } + ] + }, + "46": { + "objects": [{ "id": 182, "x": 18 }, { "id": 181, "y": 23 }], + "actions": [ + { "type": "move", "unit_id": 182, "x": 18, "y": 9 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 23 } + ] + }, + "47": { + "objects": [{ "id": 182, "x": 17 }, { "id": 181, "x": 22 }], + "actions": [ + { "type": "move", "unit_id": 182, "x": 17, "y": 9 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 23 } + ] + }, + "48": { + "objects": [{ "id": 182, "x": 16 }, { "id": 181, "y": 24 }], + "actions": [ + { "type": "move", "unit_id": 182, "x": 16, "y": 9 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 24 } + ] + }, + "49": { + "objects": [{ "id": 182, "x": 15 }, { "id": 181, "x": 23 }], + "actions": [ + { "type": "move", "unit_id": 182, "x": 15, "y": 9 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 24 } + ] + }, + "50": { + "objects": [ + { "id": 182, "x": 14 }, + { "id": 181, "balance": 0 }, + { "id": 2, "balance": 525 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 14, "y": 9 }, + { + "type": "transfer_money", + "source_id": 181, + "x": 24, + "y": 24, + "amount": 525 + } + ] + }, + "51": { + "objects": [ + { "id": 60, "state": "dead" }, + { "id": 182, "y": 8, "balance": 75 }, + { "id": 181, "y": 23 }, + { "id": 2, "balance": 425 }, + { + "id": 183, + "type": 1, + "x": 23, + "y": 24, + "hp": 20, + "teamId": 2, + "unit_type": 1, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 23 }, + { "type": "move", "unit_id": 182, "x": 14, "y": 8 }, + { "type": "create", "unit_type": 1 } + ] + }, + "52": { + "objects": [ + { "id": 59, "state": "dead" }, + { "id": 182, "x": 13, "balance": 150 }, + { "id": 181, "x": 22 }, + { "id": 2, "balance": 275 }, + { + "id": 184, + "type": 1, + "x": 24, + "y": 23, + "hp": 35, + "teamId": 2, + "unit_type": 0, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 13, "y": 8 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 23 }, + { "type": "create", "unit_type": 0 } + ] + }, + "53": { + "objects": [ + { "id": 49, "state": "dead" }, + { "id": 182, "y": 7, "balance": 225 }, + { "id": 181, "y": 22 }, + { "id": 2, "balance": 75 }, + { + "id": 185, + "type": 1, + "x": 22, + "y": 24, + "hp": 10, + "teamId": 2, + "unit_type": 2, + "balance": 0, + "moveCooldown": 0 + } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 13, "y": 7 }, + { "type": "create", "unit_type": 2 } + ] + }, + "54": { + "objects": [ + { "id": 48, "state": "dead" }, + { "id": 182, "x": 12, "balance": 300 }, + { "id": 181, "y": 21 }, + { "id": 185, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 12, "y": 7 } + ] + }, + "55": { + "objects": [ + { "id": 39, "state": "dead" }, + { "id": 182, "y": 6, "balance": 375 }, + { "id": 181, "y": 20 }, + { "id": 185, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 12, "y": 6 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 20 } + ] + }, + "56": { + "objects": [ + { "id": 182, "y": 7 }, + { "id": 181, "y": 19 }, + { "id": 185, "x": 21 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 12, "y": 7 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 19 } + ] + }, + "57": { + "objects": [ + { "id": 47, "state": "dead" }, + { "id": 182, "x": 11, "balance": 450 }, + { "id": 181, "x": 21 }, + { "id": 185, "y": 21 }, + { "id": 184, "y": 22, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 184, "x": 24, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 11, "y": 7 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 19 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 } + ] + }, + "58": { + "objects": [ + { "id": 182, "y": 8, "balance": 525 }, + { "id": 57, "state": "dead" }, + { "id": 181, "y": 18 }, + { "id": 185, "y": 20 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 21, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 18 }, + { "type": "move", "unit_id": 182, "x": 11, "y": 8 } + ] + }, + "59": { + "objects": [ + { "id": 182, "x": 12, "balance": 600 }, + { "id": 58, "state": "dead" }, + { "id": 181, "x": 20 }, + { "id": 185, "y": 19 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 20, "y": 18 }, + { "type": "move", "unit_id": 182, "x": 12, "y": 8 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 19 } + ] + }, + "60": { + "objects": [ + { "id": 182, "x": 13 }, + { "id": 181, "x": 19 }, + { "id": 185, "y": 18 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 13, "y": 8 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 18 }, + { "type": "move", "unit_id": 181, "x": 19, "y": 18 } + ] + }, + "61": { + "objects": [ + { "id": 182, "x": 14 }, + { "id": 181, "y": 17 }, + { "id": 185, "y": 17 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 14, "y": 8 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 17 }, + { "type": "move", "unit_id": 181, "x": 19, "y": 17 } + ] + }, + "62": { + "objects": [ + { "id": 182, "y": 9 }, + { "id": 181, "y": 16 }, + { "id": 185, "y": 16 }, + { "id": 184, "y": 21, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 184, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 16 }, + { "type": "move", "unit_id": 182, "x": 14, "y": 9 }, + { "type": "move", "unit_id": 181, "x": 19, "y": 16 } + ] + }, + "63": { + "objects": [ + { "id": 182, "x": 15 }, + { "id": 181, "y": 15 }, + { "id": 185, "x": 20 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 20, "y": 16 }, + { "type": "move", "unit_id": 181, "x": 19, "y": 15 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 9 } + ] + }, + "64": { + "objects": [ + { "id": 182, "x": 16 }, + { "id": 181, "x": 18 }, + { "id": 185, "y": 15 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 18, "y": 15 }, + { "type": "move", "unit_id": 182, "x": 16, "y": 9 }, + { "type": "move", "unit_id": 185, "x": 20, "y": 15 } + ] + }, + "65": { + "objects": [ + { "id": 182, "x": 17 }, + { "id": 181, "x": 17 }, + { "id": 185, "x": 19 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 17, "y": 15 }, + { "type": "move", "unit_id": 182, "x": 17, "y": 9 }, + { "type": "move", "unit_id": 185, "x": 19, "y": 15 } + ] + }, + "66": { + "objects": [ + { "id": 182, "x": 18 }, + { "id": 181, "x": 16 }, + { "id": 185, "x": 18 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 18, "y": 15 }, + { "type": "move", "unit_id": 182, "x": 18, "y": 9 }, + { "type": "move", "unit_id": 181, "x": 16, "y": 15 } + ] + }, + "67": { + "objects": [ + { "id": 182, "x": 19 }, + { "id": 181, "x": 15 }, + { "id": 185, "x": 17 }, + { "id": 184, "y": 20, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 17, "y": 15 }, + { "type": "move", "unit_id": 181, "x": 15, "y": 15 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 9 }, + { "type": "move", "unit_id": 184, "x": 24, "y": 20 } + ] + }, + "68": { + "objects": [ + { "id": 182, "y": 8 }, + { "id": 181, "x": 14 }, + { "id": 185, "x": 16 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 14, "y": 15 }, + { "type": "move", "unit_id": 185, "x": 16, "y": 15 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 8 } + ] + }, + "69": { + "objects": [ + { "id": 182, "y": 7 }, + { "id": 118, "state": "dead" }, + { "id": 181, "x": 13, "balance": 75 }, + { "id": 185, "x": 15 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 13, "y": 15 }, + { "type": "move", "unit_id": 185, "x": 15, "y": 15 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 7 } + ] + }, + "70": { + "objects": [ + { "id": 182, "y": 6 }, + { "id": 110, "state": "dead" }, + { "id": 181, "y": 14, "balance": 150 }, + { "id": 185, "y": 16 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 15, "y": 16 }, + { "type": "move", "unit_id": 181, "x": 13, "y": 14 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 6 } + ] + }, + "71": { + "objects": [ + { "id": 182, "y": 5 }, + { "id": 102, "state": "dead" }, + { "id": 181, "y": 13, "balance": 225 }, + { "id": 127, "state": "dead" }, + { "id": 185, "x": 14, "balance": 75 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 14, "y": 16 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 5 }, + { "type": "move", "unit_id": 181, "x": 13, "y": 13 } + ] + }, + "72": { + "objects": [ + { "id": 182, "y": 4 }, + { "id": 94, "state": "dead" }, + { "id": 181, "y": 12, "balance": 300 }, + { "id": 126, "state": "dead" }, + { "id": 185, "x": 13, "balance": 150 }, + { "id": 184, "y": 19, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 19, "y": 4 }, + { "type": "move", "unit_id": 185, "x": 13, "y": 16 }, + { "type": "move", "unit_id": 184, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 181, "x": 13, "y": 12 } + ] + }, + "73": { + "objects": [ + { "id": 182, "y": 3 }, + { "id": 86, "state": "dead" }, + { "id": 181, "y": 11, "balance": 375 }, + { "id": 125, "state": "dead" }, + { "id": 185, "x": 12, "balance": 225 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 12, "y": 16 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 3 }, + { "type": "move", "unit_id": 181, "x": 13, "y": 11 } + ] + }, + "74": { + "objects": [ + { "id": 182, "x": 18 }, + { "id": 78, "state": "dead" }, + { "id": 181, "y": 10, "balance": 450 }, + { "id": 117, "state": "dead" }, + { "id": 185, "y": 15, "balance": 300 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 12, "y": 15 }, + { "type": "move", "unit_id": 181, "x": 13, "y": 10 }, + { "type": "move", "unit_id": 182, "x": 18, "y": 3 } + ] + }, + "75": { + "objects": [ + { "id": 182, "y": 2 }, + { "id": 70, "state": "dead" }, + { "id": 181, "y": 9, "balance": 525 }, + { "id": 109, "state": "dead" }, + { "id": 185, "y": 14, "balance": 375 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 12, "y": 14 }, + { "type": "move", "unit_id": 181, "x": 13, "y": 9 }, + { "type": "move", "unit_id": 182, "x": 18, "y": 2 } + ] + }, + "76": { + "objects": [ + { "id": 182, "x": 17 }, + { "id": 181, "x": 14 }, + { "id": 101, "state": "dead" }, + { "id": 185, "y": 13, "balance": 450 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 12, "y": 13 }, + { "type": "move", "unit_id": 181, "x": 14, "y": 9 }, + { "type": "move", "unit_id": 182, "x": 17, "y": 2 } + ] + }, + "77": { + "objects": [ + { "id": 182, "x": 16 }, + { "id": 181, "x": 15 }, + { "id": 93, "state": "dead" }, + { "id": 185, "y": 12, "balance": 525 }, + { "id": 184, "y": 18, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 16, "y": 2 }, + { "type": "move", "unit_id": 181, "x": 15, "y": 9 }, + { "type": "move", "unit_id": 185, "x": 12, "y": 12 }, + { "type": "move", "unit_id": 184, "x": 24, "y": 18 } + ] + }, + "78": { + "objects": [ + { "id": 182, "x": 15 }, + { "id": 181, "y": 10 }, + { "id": 185, "x": 13 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 13, "y": 12 }, + { "type": "move", "unit_id": 181, "x": 15, "y": 10 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 2 } + ] + }, + "79": { + "objects": [ + { "id": 182, "y": 1 }, + { "id": 181, "y": 11 }, + { "id": 185, "x": 14 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 14, "y": 12 }, + { "type": "move", "unit_id": 181, "x": 15, "y": 11 } + ] + }, + "80": { + "objects": [ + { "id": 182, "y": 0 }, + { "id": 181, "x": 16 }, + { "id": 185, "x": 15 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 15, "y": 12 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 16, "y": 11 } + ] + }, + "81": { + "objects": [{ "id": 182, "x": 14 }, { "id": 185, "x": 16 }], + "actions": [ + { "type": "move", "unit_id": 182, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 16, "y": 12 } + ] + }, + "82": { + "objects": [ + { "id": 182, "x": 13 }, + { "id": 181, "x": 17 }, + { "id": 185, "x": 17 }, + { "id": 184, "y": 17, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 17, "y": 12 }, + { "type": "move", "unit_id": 184, "x": 24, "y": 17 }, + { "type": "move", "unit_id": 182, "x": 13, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 17, "y": 11 } + ] + }, + "83": { + "objects": [ + { "id": 182, "x": 12 }, + { "id": 181, "x": 18 }, + { "id": 185, "x": 18 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 12, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 18, "y": 11 }, + { "type": "move", "unit_id": 185, "x": 18, "y": 12 } + ] + }, + "84": { + "objects": [ + { "id": 182, "x": 11 }, + { "id": 181, "x": 19 }, + { "id": 185, "y": 13 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 19, "y": 11 }, + { "type": "move", "unit_id": 185, "x": 18, "y": 13 }, + { "type": "move", "unit_id": 182, "x": 11, "y": 0 } + ] + }, + "85": { + "objects": [ + { "id": 182, "x": 10 }, + { "id": 181, "y": 12 }, + { "id": 185, "y": 14 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 18, "y": 14 }, + { "type": "move", "unit_id": 182, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 19, "y": 12 } + ] + }, + "86": { + "objects": [ + { "id": 182, "x": 9 }, + { "id": 181, "y": 13 }, + { "id": 185, "x": 19 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 19, "y": 14 }, + { "type": "move", "unit_id": 181, "x": 19, "y": 13 }, + { "type": "move", "unit_id": 182, "x": 9, "y": 0 } + ] + }, + "87": { + "objects": [ + { "id": 182, "x": 8 }, + { "id": 181, "x": 20 }, + { "id": 185, "y": 15 }, + { "id": 184, "y": 16, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 184, "x": 24, "y": 16 }, + { "type": "move", "unit_id": 185, "x": 19, "y": 15 }, + { "type": "move", "unit_id": 182, "x": 8, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 20, "y": 13 } + ] + }, + "88": { + "objects": [ + { "id": 182, "x": 7 }, + { "id": 181, "y": 14 }, + { "id": 185, "y": 16 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 20, "y": 14 }, + { "type": "move", "unit_id": 182, "x": 7, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 19, "y": 16 } + ] + }, + "89": { + "objects": [ + { "id": 182, "x": 6 }, + { "id": 181, "y": 15 }, + { "id": 185, "y": 17 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 6, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 20, "y": 15 }, + { "type": "move", "unit_id": 185, "x": 19, "y": 17 } + ] + }, + "90": { + "objects": [ + { "id": 182, "x": 5 }, + { "id": 181, "y": 16 }, + { "id": 185, "y": 18 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 5, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 20, "y": 16 }, + { "type": "move", "unit_id": 185, "x": 19, "y": 18 } + ] + }, + "91": { + "objects": [ + { "id": 182, "x": 4 }, + { "id": 181, "y": 17 }, + { "id": 185, "y": 19 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 20, "y": 17 }, + { "type": "move", "unit_id": 182, "x": 4, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 19, "y": 19 } + ] + }, + "92": { + "objects": [ + { "id": 182, "x": 3 }, + { "id": 184, "y": 15, "moveCooldown": 4 }, + { "id": 181, "y": 18 }, + { "id": 185, "y": 20 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 3, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 20, "y": 18 }, + { "type": "move", "unit_id": 184, "x": 24, "y": 15 }, + { "type": "move", "unit_id": 185, "x": 19, "y": 20 } + ] + }, + "93": { + "objects": [ + { "id": 182, "x": 2 }, + { "id": 181, "y": 19 }, + { "id": 185, "x": 20 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 2, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 20, "y": 19 }, + { "type": "move", "unit_id": 185, "x": 20, "y": 20 } + ] + }, + "94": { + "objects": [ + { "id": 182, "x": 1 }, + { "id": 181, "x": 21 }, + { "id": 185, "x": 21 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 21, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 19 }, + { "type": "move", "unit_id": 182, "x": 1, "y": 0 } + ] + }, + "95": { + "objects": [ + { "id": 1, "balance": 600 }, + { "id": 182, "balance": 0 }, + { "id": 181, "x": 22 }, + { "id": 185, "y": 21 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 22, "y": 19 }, + { + "type": "transfer_money", + "source_id": 182, + "x": 0, + "y": 0, + "amount": 600 + }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 } + ] + }, + "96": { + "objects": [ + { "id": 1, "balance": 500 }, + { "id": 182, "x": 2 }, + { "id": 181, "y": 20 }, + { "id": 185, "x": 22 }, + { + "id": 186, + "type": 1, + "x": 1, + "y": 0, + "hp": 20, + "teamId": 1, + "unit_type": 1, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 2, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 20 }, + { "type": "create", "unit_type": 1 } + ] + }, + "97": { + "objects": [ + { "id": 1, "balance": 350 }, + { "id": 182, "x": 3 }, + { "id": 184, "y": 14, "moveCooldown": 4 }, + { "id": 181, "x": 23 }, + { "id": 185, "y": 22 }, + { + "id": 187, + "type": 1, + "x": 0, + "y": 1, + "hp": 35, + "teamId": 1, + "unit_type": 0, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 3, "y": 0 }, + { "type": "create", "unit_type": 0 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 184, "x": 24, "y": 14 } + ] + }, + "98": { + "objects": [ + { "id": 1, "balance": 150 }, + { "id": 182, "x": 4 }, + { "id": 181, "y": 21 }, + { "id": 185, "y": 23 }, + { + "id": 188, + "type": 1, + "x": 2, + "y": 0, + "hp": 10, + "teamId": 1, + "unit_type": 2, + "balance": 0, + "moveCooldown": 0 + } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "create", "unit_type": 2 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 182, "x": 4, "y": 0 } + ] + }, + "99": { + "objects": [ + { "id": 1, "balance": 50 }, + { "id": 188, "x": 3 }, + { "id": 182, "x": 5 }, + { "id": 181, "y": 22 }, + { "id": 185, "y": 24 }, + { + "id": 189, + "type": 1, + "x": 2, + "y": 0, + "hp": 20, + "teamId": 1, + "unit_type": 1, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 3, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 5, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 24 }, + { "type": "create", "unit_type": 1 } + ] + }, + "100": { + "objects": [ + { "id": 188, "x": 4 }, + { "id": 182, "x": 6 }, + { "id": 181, "y": 23 }, + { "id": 185, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 23 }, + { "type": "move", "unit_id": 182, "x": 6, "y": 0 }, + { "type": "move", "unit_id": 188, "x": 4, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 23 } + ] + }, + "101": { + "objects": [ + { "id": 188, "x": 5 }, + { "id": 182, "x": 7 }, + { "id": 185, "y": 24 }, + { "id": 181, "x": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 24, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 182, "x": 7, "y": 0 }, + { "type": "move", "unit_id": 188, "x": 5, "y": 0 } + ] + }, + "102": { + "objects": [ + { "id": 188, "x": 6 }, + { "id": 182, "x": 8 }, + { "id": 187, "x": 1, "moveCooldown": 4 }, + { "id": 184, "y": 13, "moveCooldown": 4 }, + { "id": 181, "balance": 0 }, + { "id": 185, "balance": 0 }, + { "id": 2, "balance": 1125 } + ], + "actions": [ + { + "type": "transfer_money", + "source_id": 185, + "x": 24, + "y": 24, + "amount": 525 + }, + { "type": "move", "unit_id": 182, "x": 8, "y": 0 }, + { + "type": "transfer_money", + "source_id": 181, + "x": 24, + "y": 24, + "amount": 525 + }, + { "type": "move", "unit_id": 184, "x": 24, "y": 13 }, + { "type": "move", "unit_id": 188, "x": 6, "y": 0 }, + { "type": "move", "unit_id": 187, "x": 1, "y": 1 } + ] + }, + "103": { + "objects": [ + { "id": 188, "x": 7 }, + { "id": 182, "x": 9 }, + { "id": 181, "y": 22 }, + { "id": 185, "y": 23 }, + { "id": 2, "balance": 1025 }, + { + "id": 190, + "type": 1, + "x": 23, + "y": 23, + "hp": 20, + "teamId": 2, + "unit_type": 1, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "create", "unit_type": 1 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 188, "x": 7, "y": 0 }, + { "type": "move", "unit_id": 182, "x": 9, "y": 0 } + ] + }, + "104": { + "objects": [ + { "id": 188, "x": 8 }, + { "id": 182, "x": 10 }, + { "id": 181, "x": 23 }, + { "id": 185, "y": 22 }, + { "id": 2, "balance": 875 }, + { + "id": 191, + "type": 1, + "x": 24, + "y": 23, + "hp": 35, + "teamId": 2, + "unit_type": 0, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 22 }, + { "type": "create", "unit_type": 0 }, + { "type": "move", "unit_id": 182, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 188, "x": 8, "y": 0 } + ] + }, + "105": { + "objects": [ + { "id": 188, "x": 9 }, + { "id": 182, "x": 11 }, + { "id": 185, "y": 21 }, + { "id": 181, "y": 21 }, + { "id": 2, "balance": 675 }, + { + "id": 192, + "type": 1, + "x": 22, + "y": 24, + "hp": 10, + "teamId": 2, + "unit_type": 2, + "balance": 0, + "moveCooldown": 0 + } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 11, "y": 0 }, + { "type": "create", "unit_type": 2 }, + { "type": "move", "unit_id": 188, "x": 9, "y": 0 } + ] + }, + "106": { + "objects": [ + { "id": 188, "x": 10 }, + { "id": 182, "x": 12 }, + { "id": 185, "y": 20 }, + { "id": 181, "y": 20 }, + { "id": 192, "y": 23 }, + { "id": 2, "balance": 575 }, + { + "id": 193, + "type": 1, + "x": 24, + "y": 22, + "hp": 20, + "teamId": 2, + "unit_type": 1, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "create", "unit_type": 1 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 188, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 182, "x": 12, "y": 0 } + ] + }, + "107": { + "objects": [ + { "id": 188, "x": 11 }, + { "id": 182, "x": 13 }, + { "id": 187, "x": 2, "moveCooldown": 4 }, + { "id": 184, "x": 23, "moveCooldown": 4 }, + { "id": 185, "x": 21 }, + { "id": 181, "y": 19 }, + { "id": 192, "y": 22 }, + { "id": 2, "balance": 425 }, + { + "id": 194, + "type": 1, + "x": 22, + "y": 24, + "hp": 35, + "teamId": 2, + "unit_type": 0, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 184, "x": 23, "y": 13 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 182, "x": 13, "y": 0 }, + { "type": "move", "unit_id": 188, "x": 11, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 20 }, + { "type": "move", "unit_id": 187, "x": 2, "y": 1 }, + { "type": "create", "unit_type": 0 } + ] + }, + "108": { + "objects": [ + { "id": 188, "x": 12 }, + { "id": 182, "x": 14 }, + { "id": 181, "x": 22 }, + { "id": 185, "y": 19 }, + { "id": 192, "y": 21 }, + { "id": 2, "balance": 225 }, + { + "id": 195, + "type": 1, + "x": 21, + "y": 24, + "hp": 10, + "teamId": 2, + "unit_type": 2, + "balance": 0, + "moveCooldown": 0 + } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 19 }, + { "type": "create", "unit_type": 2 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 19 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 188, "x": 12, "y": 0 } + ] + }, + "109": { + "objects": [ + { "id": 188, "x": 13 }, + { "id": 182, "x": 15 }, + { "id": 185, "y": 18 }, + { "id": 181, "y": 18 }, + { "id": 192, "y": 20 }, + { "id": 195, "y": 23 }, + { "id": 2, "balance": 125 }, + { + "id": 196, + "type": 1, + "x": 21, + "y": 24, + "hp": 20, + "teamId": 2, + "unit_type": 1, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 21, "y": 23 }, + { "type": "create", "unit_type": 1 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 18 }, + { "type": "move", "unit_id": 188, "x": 13, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 18 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 } + ] + }, + "110": { + "objects": [ + { "id": 188, "x": 14 }, + { "id": 182, "y": 1 }, + { "id": 185, "x": 20 }, + { "id": 181, "y": 17 }, + { "id": 192, "y": 19 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 22, "y": 17 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 20, "y": 18 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 19 } + ] + }, + "111": { + "objects": [ + { "id": 188, "x": 15 }, + { "id": 182, "y": 2 }, + { "id": 181, "y": 16 }, + { "id": 185, "y": 17 }, + { "id": 192, "y": 18 }, + { "id": 195, "y": 21 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 20, "y": 17 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 2 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 18 }, + { "type": "move", "unit_id": 188, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 16 } + ] + }, + "112": { + "objects": [ + { "id": 188, "x": 16 }, + { "id": 187, "x": 3, "moveCooldown": 4 }, + { "id": 182, "x": 16 }, + { "id": 184, "y": 12, "moveCooldown": 4 }, + { "id": 181, "x": 21 }, + { "id": 185, "y": 16 }, + { "id": 192, "y": 17 }, + { "id": 195, "y": 20 }, + { "id": 194, "y": 23, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 16, "y": 0 }, + { "type": "move", "unit_id": 194, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 17 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 20 }, + { "type": "move", "unit_id": 184, "x": 23, "y": 12 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 16 }, + { "type": "move", "unit_id": 182, "x": 16, "y": 2 }, + { "type": "move", "unit_id": 187, "x": 3, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 20, "y": 16 } + ] + }, + "113": { + "objects": [ + { "id": 188, "y": 1 }, + { "id": 182, "x": 17 }, + { "id": 185, "y": 15 }, + { "id": 181, "y": 15 }, + { "id": 192, "x": 21 }, + { "id": 195, "y": 19 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 16, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 20, "y": 15 }, + { "type": "move", "unit_id": 192, "x": 21, "y": 17 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 15 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 19 }, + { "type": "move", "unit_id": 182, "x": 17, "y": 2 } + ] + }, + "114": { + "objects": [ + { "id": 188, "y": 2 }, + { "id": 182, "y": 3 }, + { "id": 185, "x": 19 }, + { "id": 181, "y": 14 }, + { "id": 192, "x": 20 }, + { "id": 195, "x": 20 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 21, "y": 14 }, + { "type": "move", "unit_id": 185, "x": 19, "y": 15 }, + { "type": "move", "unit_id": 192, "x": 20, "y": 17 }, + { "type": "move", "unit_id": 182, "x": 17, "y": 3 }, + { "type": "move", "unit_id": 188, "x": 16, "y": 2 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 19 } + ] + }, + "115": { + "objects": [ + { "id": 188, "x": 17 }, + { "id": 182, "x": 18 }, + { "id": 181, "x": 20 }, + { "id": 185, "x": 18 }, + { "id": 192, "y": 16 }, + { "id": 195, "y": 18 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 17, "y": 2 }, + { "type": "move", "unit_id": 182, "x": 18, "y": 3 }, + { "type": "move", "unit_id": 185, "x": 18, "y": 15 }, + { "type": "move", "unit_id": 181, "x": 20, "y": 14 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 18 }, + { "type": "move", "unit_id": 192, "x": 20, "y": 16 } + ] + }, + "116": { + "objects": [ + { "id": 188, "x": 18 }, + { "id": 182, "x": 19 }, + { "id": 181, "x": 19 }, + { "id": 185, "x": 17 }, + { "id": 192, "x": 19 }, + { "id": 195, "y": 17 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 19, "y": 14 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 3 }, + { "type": "move", "unit_id": 188, "x": 18, "y": 2 }, + { "type": "move", "unit_id": 185, "x": 17, "y": 15 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 17 }, + { "type": "move", "unit_id": 192, "x": 19, "y": 16 } + ] + }, + "117": { + "objects": [ + { "id": 187, "x": 4, "moveCooldown": 4 }, + { "id": 188, "x": 19 }, + { "id": 182, "y": 4 }, + { "id": 184, "y": 11, "moveCooldown": 4 }, + { "id": 181, "x": 18 }, + { "id": 185, "x": 16 }, + { "id": 192, "y": 15 }, + { "id": 195, "y": 16 }, + { "id": 194, "y": 22, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 19, "y": 2 }, + { "type": "move", "unit_id": 194, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 19, "y": 15 }, + { "type": "move", "unit_id": 187, "x": 4, "y": 1 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 16 }, + { "type": "move", "unit_id": 184, "x": 23, "y": 11 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 4 }, + { "type": "move", "unit_id": 181, "x": 18, "y": 14 }, + { "type": "move", "unit_id": 185, "x": 16, "y": 15 } + ] + }, + "118": { + "objects": [ + { "id": 188, "y": 3 }, + { "id": 182, "y": 5 }, + { "id": 181, "x": 17 }, + { "id": 185, "x": 15 }, + { "id": 192, "x": 18 }, + { "id": 195, "y": 15 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 15, "y": 15 }, + { "type": "move", "unit_id": 181, "x": 17, "y": 14 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 5 }, + { "type": "move", "unit_id": 188, "x": 19, "y": 3 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 15 }, + { "type": "move", "unit_id": 192, "x": 18, "y": 15 } + ] + }, + "119": { + "objects": [ + { "id": 188, "y": 4 }, + { "id": 182, "y": 6 }, + { "id": 181, "x": 16 }, + { "id": 185, "x": 14 }, + { "id": 192, "x": 17 }, + { "id": 195, "x": 19 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 14, "y": 15 }, + { "type": "move", "unit_id": 188, "x": 19, "y": 4 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 6 }, + { "type": "move", "unit_id": 181, "x": 16, "y": 14 }, + { "type": "move", "unit_id": 192, "x": 17, "y": 15 }, + { "type": "move", "unit_id": 195, "x": 19, "y": 15 } + ] + }, + "120": { + "objects": [ + { "id": 188, "y": 5 }, + { "id": 182, "y": 7 }, + { "id": 181, "x": 15 }, + { "id": 185, "x": 13 }, + { "id": 192, "x": 16 }, + { "id": 195, "x": 18 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 13, "y": 15 }, + { "type": "move", "unit_id": 188, "x": 19, "y": 5 }, + { "type": "move", "unit_id": 195, "x": 18, "y": 15 }, + { "type": "move", "unit_id": 192, "x": 16, "y": 15 }, + { "type": "move", "unit_id": 181, "x": 15, "y": 14 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 7 } + ] + }, + "121": { + "objects": [ + { "id": 188, "y": 6 }, + { "id": 182, "y": 8 }, + { "id": 181, "x": 14 }, + { "id": 185, "x": 12 }, + { "id": 192, "x": 15 }, + { "id": 195, "x": 17 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 19, "y": 8 }, + { "type": "move", "unit_id": 192, "x": 15, "y": 15 }, + { "type": "move", "unit_id": 185, "x": 12, "y": 15 }, + { "type": "move", "unit_id": 181, "x": 14, "y": 14 }, + { "type": "move", "unit_id": 188, "x": 19, "y": 6 }, + { "type": "move", "unit_id": 195, "x": 17, "y": 15 } + ] + }, + "122": { + "objects": [ + { "id": 187, "x": 5, "moveCooldown": 4 }, + { "id": 188, "y": 7 }, + { "id": 182, "y": 9 }, + { "id": 184, "x": 22, "moveCooldown": 4 }, + { "id": 181, "x": 13 }, + { "id": 116, "state": "dead" }, + { "id": 185, "x": 11, "balance": 75 }, + { "id": 192, "x": 14 }, + { "id": 195, "x": 16 }, + { "id": 194, "y": 21, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 11, "y": 15 }, + { "type": "move", "unit_id": 181, "x": 13, "y": 14 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 9 }, + { "type": "move", "unit_id": 195, "x": 16, "y": 15 }, + { "type": "move", "unit_id": 192, "x": 14, "y": 15 }, + { "type": "move", "unit_id": 188, "x": 19, "y": 7 }, + { "type": "move", "unit_id": 194, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 187, "x": 5, "y": 1 }, + { "type": "move", "unit_id": 184, "x": 22, "y": 11 } + ] + }, + "123": { + "objects": [ + { "id": 188, "y": 8 }, + { "id": 182, "x": 18 }, + { "id": 108, "state": "dead" }, + { "id": 181, "x": 12 }, + { "id": 185, "y": 14, "balance": 150 }, + { "id": 192, "y": 16 }, + { "id": 195, "x": 15 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 12, "y": 14 }, + { "type": "move", "unit_id": 188, "x": 19, "y": 8 }, + { "type": "move", "unit_id": 192, "x": 14, "y": 16 }, + { "type": "move", "unit_id": 185, "x": 11, "y": 14 }, + { "type": "move", "unit_id": 195, "x": 15, "y": 15 }, + { "type": "move", "unit_id": 182, "x": 18, "y": 9 } + ] + }, + "124": { + "objects": [ + { "id": 188, "y": 9 }, + { "id": 182, "x": 17 }, + { "id": 100, "state": "dead" }, + { "id": 185, "y": 13, "balance": 225 }, + { "id": 181, "y": 13 }, + { "id": 195, "y": 16 }, + { "id": 192, "x": 13 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 13, "y": 16 }, + { "type": "move", "unit_id": 188, "x": 19, "y": 9 }, + { "type": "move", "unit_id": 185, "x": 11, "y": 13 }, + { "type": "move", "unit_id": 182, "x": 17, "y": 9 }, + { "type": "move", "unit_id": 181, "x": 12, "y": 13 }, + { "type": "move", "unit_id": 195, "x": 15, "y": 16 } + ] + }, + "125": { + "objects": [ + { "id": 182, "x": 16 }, + { "id": 188, "x": 18 }, + { "id": 92, "state": "dead" }, + { "id": 185, "y": 12, "balance": 300 }, + { "id": 181, "y": 12 }, + { "id": 192, "y": 17, "balance": 75 }, + { "id": 195, "x": 14 }, + { "id": 136, "state": "dead" } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 16, "y": 9 }, + { "type": "move", "unit_id": 195, "x": 14, "y": 16 }, + { "type": "move", "unit_id": 192, "x": 13, "y": 17 }, + { "type": "move", "unit_id": 185, "x": 11, "y": 12 }, + { "type": "move", "unit_id": 181, "x": 12, "y": 12 }, + { "type": "move", "unit_id": 188, "x": 18, "y": 9 } + ] + }, + "126": { + "objects": [ + { "id": 182, "x": 15 }, + { "id": 188, "x": 17 }, + { "id": 84, "state": "dead" }, + { "id": 85, "state": "dead" }, + { "id": 185, "y": 11, "balance": 375 }, + { "id": 181, "y": 11, "balance": 75 }, + { "id": 195, "x": 13 }, + { "id": 135, "state": "dead" }, + { "id": 192, "x": 12, "balance": 150 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 15, "y": 9 }, + { "type": "move", "unit_id": 188, "x": 17, "y": 9 }, + { "type": "move", "unit_id": 185, "x": 11, "y": 11 }, + { "type": "move", "unit_id": 195, "x": 13, "y": 16 }, + { "type": "move", "unit_id": 192, "x": 12, "y": 17 }, + { "type": "move", "unit_id": 181, "x": 12, "y": 11 } + ] + }, + "127": { + "objects": [ + { "id": 187, "x": 6, "moveCooldown": 4 }, + { "id": 182, "x": 14 }, + { "id": 188, "x": 16 }, + { "id": 76, "state": "dead" }, + { "id": 77, "state": "dead" }, + { "id": 185, "y": 10, "balance": 450 }, + { "id": 181, "y": 10, "balance": 150 }, + { "id": 184, "x": 21, "moveCooldown": 4 }, + { "id": 195, "x": 12 }, + { "id": 134, "state": "dead" }, + { "id": 192, "x": 11, "balance": 225 }, + { "id": 194, "y": 20, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 11, "y": 10 }, + { "type": "move", "unit_id": 194, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 182, "x": 14, "y": 9 }, + { "type": "move", "unit_id": 192, "x": 11, "y": 17 }, + { "type": "move", "unit_id": 187, "x": 6, "y": 1 }, + { "type": "move", "unit_id": 181, "x": 12, "y": 10 }, + { "type": "move", "unit_id": 195, "x": 12, "y": 16 }, + { "type": "move", "unit_id": 184, "x": 21, "y": 11 }, + { "type": "move", "unit_id": 188, "x": 16, "y": 9 } + ] + }, + "128": { + "objects": [ + { "id": 68, "state": "dead" }, + { "id": 69, "state": "dead" }, + { "id": 182, "x": 13 }, + { "id": 188, "x": 15 }, + { "id": 185, "y": 9, "balance": 525 }, + { "id": 181, "y": 9, "balance": 225 }, + { "id": 124, "state": "dead" }, + { "id": 192, "y": 16, "balance": 300 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 15, "y": 9 }, + { "type": "move", "unit_id": 192, "x": 11, "y": 16 }, + { "type": "move", "unit_id": 185, "x": 11, "y": 9 }, + { "type": "move", "unit_id": 181, "x": 12, "y": 9 }, + { "type": "move", "unit_id": 182, "x": 13, "y": 9 } + ] + }, + "129": { + "objects": [ + { "id": 185, "y": 10 }, + { "id": 181, "y": 8 }, + { "id": 182, "y": 10 }, + { "id": 188, "x": 14 }, + { "id": 123, "state": "dead" }, + { "id": 192, "x": 10, "balance": 375 }, + { "id": 195, "y": 15 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 12, "y": 8 }, + { "type": "move", "unit_id": 185, "x": 11, "y": 10 }, + { "type": "move", "unit_id": 182, "x": 13, "y": 10 }, + { "type": "move", "unit_id": 195, "x": 12, "y": 15 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 9 }, + { "type": "move", "unit_id": 192, "x": 10, "y": 16 } + ] + }, + "130": { + "objects": [ + { "id": 181, "x": 11 }, + { "id": 188, "x": 13 }, + { "id": 185, "y": 11 }, + { "id": 182, "x": 12 }, + { "id": 115, "state": "dead" }, + { "id": 195, "x": 11 }, + { "id": 192, "y": 15, "balance": 450 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 10, "y": 15 }, + { "type": "move", "unit_id": 185, "x": 11, "y": 11 }, + { "type": "move", "unit_id": 188, "x": 13, "y": 9 }, + { "type": "move", "unit_id": 182, "x": 12, "y": 10 }, + { "type": "move", "unit_id": 181, "x": 11, "y": 8 }, + { "type": "move", "unit_id": 195, "x": 11, "y": 15 } + ] + }, + "131": { + "objects": [ + { "id": 56, "state": "dead" }, + { "id": 181, "x": 10, "balance": 300 }, + { "id": 188, "x": 12 }, + { "id": 182, "x": 11 }, + { "id": 185, "x": 12 }, + { "id": 107, "state": "dead" }, + { "id": 192, "y": 14, "balance": 525 }, + { "id": 195, "y": 14 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 10, "y": 14 }, + { "type": "move", "unit_id": 185, "x": 12, "y": 11 }, + { "type": "move", "unit_id": 195, "x": 11, "y": 14 }, + { "type": "move", "unit_id": 188, "x": 12, "y": 9 }, + { "type": "move", "unit_id": 182, "x": 11, "y": 10 }, + { "type": "move", "unit_id": 181, "x": 10, "y": 8 } + ] + }, + "132": { + "objects": [ + { "id": 187, "x": 7, "moveCooldown": 4 }, + { "id": 181, "y": 9, "balance": 375 }, + { "id": 67, "state": "dead" }, + { "id": 188, "x": 11 }, + { "id": 75, "state": "dead" }, + { "id": 182, "x": 10, "balance": 75 }, + { "id": 185, "x": 13 }, + { "id": 184, "x": 20, "moveCooldown": 4 }, + { "id": 192, "y": 15 }, + { "id": 195, "y": 13 }, + { "id": 194, "x": 21, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 187, "x": 7, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 13, "y": 11 }, + { "type": "move", "unit_id": 192, "x": 10, "y": 15 }, + { "type": "move", "unit_id": 195, "x": 11, "y": 13 }, + { "type": "move", "unit_id": 184, "x": 20, "y": 11 }, + { "type": "move", "unit_id": 181, "x": 10, "y": 9 }, + { "type": "move", "unit_id": 188, "x": 11, "y": 9 }, + { "type": "move", "unit_id": 182, "x": 10, "y": 10 }, + { "type": "move", "unit_id": 194, "x": 21, "y": 20 } + ] + }, + "133": { + "objects": [ + { "id": 181, "x": 9 }, + { "id": 188, "y": 10 }, + { "id": 182, "y": 11, "balance": 150 }, + { "id": 83, "state": "dead" }, + { "id": 185, "x": 14 }, + { "id": 99, "state": "dead" }, + { "id": 195, "x": 10, "balance": 75 }, + { "id": 192, "x": 11 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 11, "y": 10 }, + { "type": "move", "unit_id": 195, "x": 10, "y": 13 }, + { "type": "move", "unit_id": 192, "x": 11, "y": 15 }, + { "type": "move", "unit_id": 182, "x": 10, "y": 11 }, + { "type": "move", "unit_id": 181, "x": 9, "y": 9 }, + { "type": "move", "unit_id": 185, "x": 14, "y": 11 } + ] + }, + "134": { + "objects": [ + { "id": 181, "y": 10 }, + { "id": 188, "y": 11 }, + { "id": 182, "y": 12, "balance": 225 }, + { "id": 185, "x": 15 }, + { "id": 91, "state": "dead" }, + { "id": 192, "x": 12 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 11, "y": 11 }, + { "type": "move", "unit_id": 182, "x": 10, "y": 12 }, + { "type": "move", "unit_id": 192, "x": 12, "y": 15 }, + { "type": "move", "unit_id": 181, "x": 9, "y": 10 }, + { "type": "move", "unit_id": 185, "x": 15, "y": 11 } + ] + }, + "135": { + "objects": [ + { "id": 181, "y": 11 }, + { "id": 188, "y": 12 }, + { "id": 185, "x": 16 }, + { "id": 195, "y": 14 }, + { "id": 192, "x": 13 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 11, "y": 12 }, + { "type": "move", "unit_id": 181, "x": 9, "y": 11 }, + { "type": "move", "unit_id": 195, "x": 10, "y": 14 }, + { "type": "move", "unit_id": 192, "x": 13, "y": 15 }, + { "type": "move", "unit_id": 185, "x": 16, "y": 11 } + ] + }, + "136": { + "objects": [ + { "id": 181, "y": 12 }, + { "id": 185, "y": 12 }, + { "id": 182, "y": 13 }, + { "id": 188, "y": 13 }, + { "id": 195, "x": 11 }, + { "id": 192, "x": 14 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 9, "y": 12 }, + { "type": "move", "unit_id": 195, "x": 11, "y": 14 }, + { "type": "move", "unit_id": 192, "x": 14, "y": 15 }, + { "type": "move", "unit_id": 188, "x": 11, "y": 13 }, + { "type": "move", "unit_id": 185, "x": 16, "y": 12 }, + { "type": "move", "unit_id": 182, "x": 10, "y": 13 } + ] + }, + "137": { + "objects": [ + { "id": 187, "x": 8, "moveCooldown": 4 }, + { "id": 184, "x": 19, "moveCooldown": 4 }, + { "id": 181, "y": 13 }, + { "id": 185, "y": 13 }, + { "id": 182, "y": 14 }, + { "id": 188, "x": 12 }, + { "id": 195, "y": 15 }, + { "id": 192, "x": 15 }, + { "id": 194, "y": 19, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 11, "y": 15 }, + { "type": "move", "unit_id": 188, "x": 12, "y": 13 }, + { "type": "move", "unit_id": 182, "x": 10, "y": 14 }, + { "type": "move", "unit_id": 192, "x": 15, "y": 15 }, + { "type": "move", "unit_id": 185, "x": 16, "y": 13 }, + { "type": "move", "unit_id": 194, "x": 21, "y": 19 }, + { "type": "move", "unit_id": 181, "x": 9, "y": 13 }, + { "type": "move", "unit_id": 187, "x": 8, "y": 1 }, + { "type": "move", "unit_id": 184, "x": 19, "y": 11 } + ] + }, + "138": { + "objects": [ + { "id": 181, "y": 14 }, + { "id": 188, "y": 14 }, + { "id": 185, "x": 17 }, + { "id": 182, "y": 15 }, + { "id": 195, "y": 16 }, + { "id": 192, "x": 16 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 11, "y": 16 }, + { "type": "move", "unit_id": 192, "x": 16, "y": 15 }, + { "type": "move", "unit_id": 188, "x": 12, "y": 14 }, + { "type": "move", "unit_id": 182, "x": 10, "y": 15 }, + { "type": "move", "unit_id": 185, "x": 17, "y": 13 }, + { "type": "move", "unit_id": 181, "x": 9, "y": 14 } + ] + }, + "139": { + "objects": [ + { "id": 185, "x": 18 }, + { "id": 181, "y": 15 }, + { "id": 188, "y": 15 }, + { "id": 182, "y": 16 }, + { "id": 192, "x": 17 }, + { "id": 195, "y": 17 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 17, "y": 15 }, + { "type": "move", "unit_id": 185, "x": 18, "y": 13 }, + { "type": "move", "unit_id": 188, "x": 12, "y": 15 }, + { "type": "move", "unit_id": 182, "x": 10, "y": 16 }, + { "type": "move", "unit_id": 195, "x": 11, "y": 17 }, + { "type": "move", "unit_id": 181, "x": 9, "y": 15 } + ] + }, + "140": { + "objects": [ + { "id": 185, "y": 14 }, + { "id": 181, "x": 10 }, + { "id": 188, "y": 16 }, + { "id": 192, "x": 18 }, + { "id": 182, "x": 11 }, + { "id": 195, "y": 18 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 11, "y": 16 }, + { "type": "move", "unit_id": 188, "x": 12, "y": 16 }, + { "type": "move", "unit_id": 181, "x": 10, "y": 15 }, + { "type": "move", "unit_id": 195, "x": 11, "y": 18 }, + { "type": "move", "unit_id": 192, "x": 18, "y": 15 }, + { "type": "move", "unit_id": 185, "x": 18, "y": 14 } + ] + }, + "141": { + "objects": [ + { "id": 185, "x": 19 }, + { "id": 181, "y": 16 }, + { "id": 192, "x": 19 }, + { "id": 182, "y": 17 }, + { "id": 188, "y": 17 }, + { "id": 195, "x": 12, "balance": 150 }, + { "id": 144, "state": "dead" } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 10, "y": 16 }, + { "type": "move", "unit_id": 188, "x": 12, "y": 17 }, + { "type": "move", "unit_id": 192, "x": 19, "y": 15 }, + { "type": "move", "unit_id": 185, "x": 19, "y": 14 }, + { "type": "move", "unit_id": 182, "x": 11, "y": 17 }, + { "type": "move", "unit_id": 195, "x": 12, "y": 18 } + ] + }, + "142": { + "objects": [ + { "id": 187, "y": 0, "moveCooldown": 4 }, + { "id": 184, "x": 18, "moveCooldown": 4 }, + { "id": 185, "x": 20 }, + { "id": 192, "y": 16 }, + { "id": 181, "x": 11 }, + { "id": 188, "x": 13 }, + { "id": 195, "x": 13 }, + { "id": 194, "x": 20, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 11, "y": 16 }, + { "type": "move", "unit_id": 187, "x": 8, "y": 0 }, + { "type": "move", "unit_id": 188, "x": 13, "y": 17 }, + { "type": "move", "unit_id": 185, "x": 20, "y": 14 }, + { "type": "move", "unit_id": 184, "x": 18, "y": 11 }, + { "type": "move", "unit_id": 192, "x": 19, "y": 16 }, + { "type": "move", "unit_id": 195, "x": 13, "y": 18 }, + { "type": "move", "unit_id": 194, "x": 20, "y": 19 } + ] + }, + "143": { + "objects": [ + { "id": 185, "y": 15 }, + { "id": 181, "x": 12 }, + { "id": 192, "y": 17 }, + { "id": 182, "x": 12 }, + { "id": 188, "y": 16 }, + { "id": 195, "x": 14 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 13, "y": 16 }, + { "type": "move", "unit_id": 195, "x": 14, "y": 18 }, + { "type": "move", "unit_id": 192, "x": 19, "y": 17 }, + { "type": "move", "unit_id": 181, "x": 12, "y": 16 }, + { "type": "move", "unit_id": 185, "x": 20, "y": 15 }, + { "type": "move", "unit_id": 182, "x": 12, "y": 17 } + ] + }, + "144": { + "objects": [ + { "id": 185, "y": 16 }, + { "id": 181, "y": 15 }, + { "id": 188, "y": 15 }, + { "id": 182, "x": 13 }, + { "id": 192, "y": 18 }, + { "id": 195, "y": 17 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 13, "y": 15 }, + { "type": "move", "unit_id": 192, "x": 19, "y": 18 }, + { "type": "move", "unit_id": 182, "x": 13, "y": 17 }, + { "type": "move", "unit_id": 195, "x": 14, "y": 17 }, + { "type": "move", "unit_id": 185, "x": 20, "y": 16 }, + { "type": "move", "unit_id": 181, "x": 12, "y": 15 } + ] + }, + "145": { + "objects": [ + { "id": 181, "y": 14 }, + { "id": 188, "y": 14 }, + { "id": 185, "y": 17 }, + { "id": 182, "y": 16 }, + { "id": 195, "y": 16 }, + { "id": 192, "y": 19 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 19, "y": 19 }, + { "type": "move", "unit_id": 181, "x": 12, "y": 14 }, + { "type": "move", "unit_id": 185, "x": 20, "y": 17 }, + { "type": "move", "unit_id": 188, "x": 13, "y": 14 }, + { "type": "move", "unit_id": 195, "x": 14, "y": 16 }, + { "type": "move", "unit_id": 182, "x": 13, "y": 16 } + ] + }, + "146": { + "objects": [ + { "id": 181, "y": 15 }, + { "id": 188, "y": 13 }, + { "id": 182, "y": 15 }, + { "id": 195, "y": 15 }, + { "id": 185, "y": 18 }, + { "id": 192, "y": 20 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 12, "y": 15 }, + { "type": "move", "unit_id": 195, "x": 14, "y": 15 }, + { "type": "move", "unit_id": 192, "x": 19, "y": 20 }, + { "type": "move", "unit_id": 188, "x": 13, "y": 13 }, + { "type": "move", "unit_id": 185, "x": 20, "y": 18 }, + { "type": "move", "unit_id": 182, "x": 13, "y": 15 } + ] + }, + "147": { + "objects": [ + { "id": 187, "x": 9, "moveCooldown": 4 }, + { "id": 184, "y": 12, "moveCooldown": 4 }, + { "id": 188, "x": 14 }, + { "id": 181, "y": 14 }, + { "id": 182, "y": 14 }, + { "id": 195, "x": 15 }, + { "id": 185, "x": 21 }, + { "id": 194, "x": 19, "moveCooldown": 4 }, + { "id": 192, "y": 21 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 15, "y": 15 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 13 }, + { "type": "move", "unit_id": 182, "x": 13, "y": 14 }, + { "type": "move", "unit_id": 184, "x": 18, "y": 12 }, + { "type": "move", "unit_id": 194, "x": 19, "y": 19 }, + { "type": "move", "unit_id": 187, "x": 9, "y": 0 }, + { "type": "move", "unit_id": 192, "x": 19, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 12, "y": 14 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 18 } + ] + }, + "148": { + "objects": [ + { "id": 188, "x": 15 }, + { "id": 181, "y": 15 }, + { "id": 182, "x": 14 }, + { "id": 195, "x": 16 }, + { "id": 185, "x": 22 }, + { "id": 192, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 14, "y": 14 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 18 }, + { "type": "move", "unit_id": 181, "x": 12, "y": 15 }, + { "type": "move", "unit_id": 192, "x": 19, "y": 22 }, + { "type": "move", "unit_id": 188, "x": 15, "y": 13 }, + { "type": "move", "unit_id": 195, "x": 16, "y": 15 } + ] + }, + "149": { + "objects": [ + { "id": 188, "y": 12 }, + { "id": 182, "x": 15 }, + { "id": 181, "x": 13 }, + { "id": 195, "x": 17 }, + { "id": 185, "y": 19 }, + { "id": 192, "x": 20 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 17, "y": 15 }, + { "type": "move", "unit_id": 188, "x": 15, "y": 12 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 19 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 14 }, + { "type": "move", "unit_id": 192, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 13, "y": 15 } + ] + }, + "150": { + "objects": [ + { "id": 188, "y": 11 }, + { "id": 182, "x": 16 }, + { "id": 181, "x": 14 }, + { "id": 195, "x": 18 }, + { "id": 185, "y": 20 }, + { "id": 192, "x": 21 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 18, "y": 15 }, + { "type": "move", "unit_id": 182, "x": 16, "y": 14 }, + { "type": "move", "unit_id": 181, "x": 14, "y": 15 }, + { "type": "move", "unit_id": 188, "x": 15, "y": 11 } + ] + }, + "151": { + "objects": [ + { "id": 188, "x": 16 }, + { "id": 182, "y": 13 }, + { "id": 181, "x": 15 }, + { "id": 195, "x": 19 }, + { "id": 185, "y": 21 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 15, "y": 15 }, + { "type": "move", "unit_id": 182, "x": 16, "y": 13 }, + { "type": "move", "unit_id": 192, "x": 21, "y": 23 }, + { "type": "move", "unit_id": 188, "x": 16, "y": 11 }, + { "type": "move", "unit_id": 195, "x": 19, "y": 15 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 } + ] + }, + "152": { + "objects": [ + { "id": 187, "x": 10, "moveCooldown": 4 }, + { "id": 188, "x": 17 }, + { "id": 184, "x": 17, "moveCooldown": 4 }, + { "id": 182, "y": 12 }, + { "id": 181, "x": 16 }, + { "id": 195, "y": 16 }, + { "id": 194, "y": 18, "moveCooldown": 4 }, + { "id": 185, "y": 22 }, + { "id": 192, "x": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 187, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 188, "x": 17, "y": 11 }, + { "type": "move", "unit_id": 181, "x": 16, "y": 15 }, + { "type": "move", "unit_id": 182, "x": 16, "y": 12 }, + { "type": "move", "unit_id": 194, "x": 19, "y": 18 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 19, "y": 16 }, + { "type": "move", "unit_id": 184, "x": 17, "y": 12 } + ] + }, + "153": { + "objects": [ + { "id": 188, "x": 18 }, + { "id": 182, "y": 11 }, + { "id": 181, "x": 17 }, + { "id": 195, "x": 20 }, + { "id": 185, "x": 23 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 18, "y": 11 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 17, "y": 15 }, + { "type": "move", "unit_id": 182, "x": 16, "y": 11 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 16 } + ] + }, + "154": { + "objects": [ + { "id": 182, "x": 17 }, + { "id": 188, "x": 19 }, + { "id": 181, "x": 18 }, + { "id": 195, "y": 17 }, + { "id": 185, "balance": 0 }, + { "id": 192, "y": 23 }, + { "id": 2, "balance": 650 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 19, "y": 11 }, + { + "type": "transfer_money", + "source_id": 185, + "x": 24, + "y": 24, + "amount": 525 + }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 17 }, + { "type": "move", "unit_id": 182, "x": 17, "y": 11 }, + { "type": "move", "unit_id": 181, "x": 18, "y": 15 } + ] + }, + "155": { + "objects": [ + { "id": 182, "x": 18 }, + { "id": 188, "y": 10 }, + { "id": 181, "x": 19 }, + { "id": 195, "y": 18 }, + { "id": 185, "x": 22 }, + { "id": 192, "y": 24 }, + { "id": 2, "balance": 500 }, + { + "id": 197, + "type": 1, + "x": 22, + "y": 23, + "hp": 35, + "teamId": 2, + "unit_type": 0, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 19, "y": 10 }, + { "type": "move", "unit_id": 182, "x": 18, "y": 11 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 19, "y": 15 }, + { "type": "create", "unit_type": 0 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 18 } + ] + }, + "156": { + "objects": [ + { "id": 188, "y": 9 }, + { "id": 182, "y": 10 }, + { "id": 181, "y": 16 }, + { "id": 195, "x": 21 }, + { "id": 192, "balance": 0 }, + { "id": 2, "balance": 825 }, + { + "id": 198, + "type": 1, + "x": 23, + "y": 22, + "hp": 10, + "teamId": 2, + "unit_type": 2, + "balance": 0, + "moveCooldown": 0 + } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 18, "y": 10 }, + { + "type": "transfer_money", + "source_id": 192, + "x": 24, + "y": 24, + "amount": 525 + }, + { "type": "move", "unit_id": 188, "x": 19, "y": 9 }, + { "type": "create", "unit_type": 2 }, + { "type": "move", "unit_id": 181, "x": 19, "y": 16 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 18 } + ] + }, + "157": { + "objects": [ + { "id": 187, "x": 11, "moveCooldown": 4 }, + { "id": 188, "y": 8 }, + { "id": 182, "y": 9 }, + { "id": 184, "x": 18, "moveCooldown": 4 }, + { "id": 194, "y": 17, "moveCooldown": 4 }, + { "id": 195, "y": 19 }, + { "id": 185, "x": 21 }, + { "id": 198, "y": 21 }, + { "id": 2, "balance": 725 }, + { + "id": 199, + "type": 1, + "x": 23, + "y": 22, + "hp": 20, + "teamId": 2, + "unit_type": 1, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "move", "unit_id": 194, "x": 19, "y": 17 }, + { "type": "move", "unit_id": 182, "x": 18, "y": 9 }, + { "type": "move", "unit_id": 198, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 187, "x": 11, "y": 0 }, + { "type": "create", "unit_type": 1 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 19 }, + { "type": "move", "unit_id": 188, "x": 19, "y": 8 }, + { "type": "move", "unit_id": 184, "x": 18, "y": 12 } + ] + }, + "158": { + "objects": [ + { "id": 188, "y": 7 }, + { "id": 182, "x": 19 }, + { "id": 181, "x": 20 }, + { "id": 195, "y": 20 }, + { "id": 198, "x": 24 }, + { "id": 185, "y": 23 }, + { "id": 2, "balance": 575 }, + { + "id": 200, + "type": 1, + "x": 20, + "y": 24, + "hp": 35, + "teamId": 2, + "unit_type": 0, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 21, "y": 23 }, + { "type": "move", "unit_id": 188, "x": 19, "y": 7 }, + { "type": "move", "unit_id": 198, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 20, "y": 16 }, + { "type": "create", "unit_type": 0 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 20 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 9 } + ] + }, + "159": { + "objects": [ + { "id": 188, "y": 6 }, + { "id": 182, "y": 8 }, + { "id": 181, "y": 17 }, + { "id": 195, "y": 21 }, + { "id": 198, "x": 23 }, + { "id": 185, "y": 22 }, + { "id": 2, "balance": 375 }, + { + "id": 201, + "type": 1, + "x": 24, + "y": 21, + "hp": 10, + "teamId": 2, + "unit_type": 2, + "balance": 0, + "moveCooldown": 0 + } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 8 }, + { "type": "create", "unit_type": 2 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 188, "x": 19, "y": 6 }, + { "type": "move", "unit_id": 181, "x": 20, "y": 17 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 } + ] + }, + "160": { + "objects": [ + { "id": 188, "y": 5 }, + { "id": 182, "y": 7 }, + { "id": 181, "y": 18 }, + { "id": 195, "x": 22 }, + { "id": 201, "y": 20 }, + { "id": 185, "x": 22 }, + { "id": 2, "balance": 275 }, + { + "id": 202, + "type": 1, + "x": 21, + "y": 23, + "hp": 20, + "teamId": 2, + "unit_type": 1, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 7 }, + { "type": "move", "unit_id": 188, "x": 19, "y": 5 }, + { "type": "move", "unit_id": 181, "x": 20, "y": 18 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "create", "unit_type": 1 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 20 } + ] + }, + "161": { + "objects": [ + { "id": 188, "y": 4 }, + { "id": 182, "y": 6 }, + { "id": 181, "y": 19 }, + { "id": 201, "y": 21 }, + { "id": 195, "y": 20 }, + { "id": 185, "x": 21 }, + { "id": 2, "balance": 125 }, + { + "id": 203, + "type": 1, + "x": 22, + "y": 22, + "hp": 35, + "teamId": 2, + "unit_type": 0, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 6 }, + { "type": "move", "unit_id": 181, "x": 20, "y": 19 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 188, "x": 19, "y": 4 }, + { "type": "create", "unit_type": 0 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 } + ] + }, + "162": { + "objects": [ + { "id": 187, "x": 12, "moveCooldown": 4 }, + { "id": 188, "x": 18 }, + { "id": 182, "y": 5 }, + { "id": 184, "y": 11, "moveCooldown": 4 }, + { "id": 194, "y": 16, "moveCooldown": 4 }, + { "id": 181, "x": 21 }, + { "id": 195, "y": 21 }, + { "id": 201, "y": 20 }, + { "id": 185, "y": 21 } + ], + "actions": [ + { "type": "move", "unit_id": 187, "x": 12, "y": 0 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 184, "x": 18, "y": 11 }, + { "type": "move", "unit_id": 188, "x": 18, "y": 4 }, + { "type": "move", "unit_id": 182, "x": 19, "y": 5 }, + { "type": "move", "unit_id": 194, "x": 19, "y": 16 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 19 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 } + ] + }, + "163": { + "objects": [ + { "id": 188, "y": 3 }, + { "id": 182, "y": 4 }, + { "id": 181, "y": 20 }, + { "id": 201, "y": 21 }, + { "id": 185, "y": 22 }, + { "id": 195, "y": 20 }, + { "id": 200, "y": 23, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 19, "y": 4 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 20 }, + { "type": "move", "unit_id": 188, "x": 18, "y": 3 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 } + ] + }, + "164": { + "objects": [ + { "id": 188, "y": 2 }, + { "id": 182, "x": 18 }, + { "id": 195, "x": 23 }, + { "id": 198, "x": 22 }, + { "id": 201, "y": 20 }, + { "id": 185, "y": 21 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 182, "x": 18, "y": 4 }, + { "type": "move", "unit_id": 188, "x": 18, "y": 2 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 } + ] + }, + "165": { + "objects": [ + { "id": 188, "x": 17 }, + { "id": 182, "y": 3 }, + { "id": 181, "x": 22 }, + { "id": 201, "y": 21 }, + { "id": 185, "y": 22 }, + { "id": 198, "x": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 188, "x": 17, "y": 2 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 18, "y": 3 } + ] + }, + "166": { + "objects": [ + { "id": 188, "y": 1 }, + { "id": 182, "x": 17 }, + { "id": 198, "x": 22 }, + { "id": 201, "y": 20 }, + { "id": 185, "y": 21 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 17, "y": 3 }, + { "type": "move", "unit_id": 188, "x": 17, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 } + ] + }, + "167": { + "objects": [ + { "id": 187, "x": 13, "moveCooldown": 4 }, + { "id": 188, "x": 16 }, + { "id": 182, "y": 2 }, + { "id": 184, "y": 10, "moveCooldown": 4 }, + { "id": 194, "y": 15, "moveCooldown": 4 }, + { "id": 181, "y": 19 }, + { "id": 201, "y": 21 }, + { "id": 198, "x": 23 }, + { "id": 203, "x": 21, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 194, "x": 19, "y": 15 }, + { "type": "move", "unit_id": 188, "x": 16, "y": 1 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 19 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 187, "x": 13, "y": 0 }, + { "type": "move", "unit_id": 184, "x": 18, "y": 10 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 17, "y": 2 } + ] + }, + "168": { + "objects": [ + { "id": 188, "x": 15 }, + { "id": 182, "x": 16 }, + { "id": 181, "y": 20 }, + { "id": 195, "x": 24 }, + { "id": 185, "x": 22 }, + { "id": 200, "y": 22, "moveCooldown": 4 }, + { "id": 197, "y": 22, "moveCooldown": 4 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 16, "y": 2 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 188, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 197, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 } + ] + }, + "169": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 182, "y": 1 }, + { "id": 181, "x": 23 }, + { "id": 185, "x": 21 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 16, "y": 1 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 188, "x": 15, "y": 0 } + ] + }, + "170": { + "objects": [ + { "id": 188, "x": 14 }, + { "id": 182, "y": 0 }, + { "id": 181, "x": 22 }, + { "id": 195, "y": 19 }, + { "id": 185, "x": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 16, "y": 0 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 19 } + ] + }, + "171": { + "objects": [ + { "id": 188, "y": 1 }, + { "id": 182, "x": 15 }, + { "id": 195, "y": 20 }, + { "id": 185, "x": 21 }, + { "id": 198, "y": 20 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 1 } + ] + }, + "172": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 184, "y": 9, "moveCooldown": 4 }, + { "id": 194, "y": 14, "moveCooldown": 4 }, + { "id": 198, "y": 21 }, + { "id": 195, "y": 19 }, + { "id": 185, "x": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 184, "x": 18, "y": 9 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 194, "x": 19, "y": 14 } + ] + }, + "173": { + "objects": [ + { "id": 187, "moveCooldown": 4 }, + { "id": 188, "y": 1 }, + { "id": 182, "y": 1 }, + { "id": 6, "hp": 45 }, + { "id": 198, "y": 20 }, + { "id": 201, "y": 20 }, + { "id": 200, "y": 21, "moveCooldown": 4 }, + { "id": 203, "y": 21, "moveCooldown": 4 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 23, "y": 20 }, + { "type": "attack", "unit_id": 187, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 } + ] + }, + "174": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 182, "y": 0 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 21 }, + { "id": 198, "y": 21 }, + { "id": 201, "y": 21 }, + { "id": 197, "x": 21, "moveCooldown": 4 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 20 }, + { "type": "move", "unit_id": 197, "x": 21, "y": 22 } + ] + }, + "175": { + "objects": [ + { "id": 188, "y": 1 }, + { "id": 182, "y": 1 }, + { "id": 181, "x": 22 }, + { "id": 185, "y": 22 }, + { "id": 198, "y": 20 }, + { "id": 201, "y": 20 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 198, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 20 } + ] + }, + "176": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 182, "y": 0 }, + { "id": 195, "x": 24 }, + { "id": 181, "y": 21 }, + { "id": 198, "y": 21 }, + { "id": 201, "y": 21 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 19 } + ] + }, + "177": { + "objects": [ + { "id": 188, "y": 1 }, + { "id": 182, "y": 1 }, + { "id": 184, "x": 19, "moveCooldown": 4 }, + { "id": 194, "y": 13, "moveCooldown": 4 }, + { "id": 181, "y": 20 }, + { "id": 198, "y": 20 }, + { "id": 201, "y": 20 }, + { "id": 185, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 184, "x": 19, "y": 9 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 194, "x": 19, "y": 13 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 1 } + ] + }, + "178": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 182, "y": 0 }, + { "id": 195, "x": 23 }, + { "id": 181, "y": 21 }, + { "id": 198, "y": 21 }, + { "id": 201, "y": 21 }, + { "id": 200, "y": 20, "moveCooldown": 4 }, + { "id": 203, "y": 20, "moveCooldown": 4 }, + { "id": 185, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 20 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 19 } + ] + }, + "179": { + "objects": [ + { "id": 187, "moveCooldown": 4 }, + { "id": 188, "y": 1 }, + { "id": 182, "y": 1 }, + { "id": 6, "hp": 40 }, + { "id": 195, "y": 20 }, + { "id": 181, "x": 21 }, + { "id": 201, "y": 20 }, + { "id": 185, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "attack", "unit_id": 187, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 } + ] + }, + "180": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 182, "y": 0 }, + { "id": 195, "x": 22 }, + { "id": 181, "x": 22 }, + { "id": 198, "x": 24 }, + { "id": 197, "x": 20, "moveCooldown": 4 }, + { "id": 185, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 197, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 } + ] + }, + "181": { + "objects": [ + { "id": 188, "y": 1 }, + { "id": 182, "y": 1 }, + { "id": 195, "x": 23 }, + { "id": 198, "x": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 23, "y": 21 } + ] + }, + "182": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 182, "y": 0 }, + { "id": 184, "y": 8, "moveCooldown": 4 }, + { "id": 194, "y": 12, "moveCooldown": 4 }, + { "id": 195, "x": 22 }, + { "id": 201, "y": 21 }, + { "id": 181, "x": 21 }, + { "id": 185, "x": 21 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 194, "x": 19, "y": 12 }, + { "type": "move", "unit_id": 184, "x": 19, "y": 8 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 } + ] + }, + "183": { + "objects": [ + { "id": 188, "y": 1 }, + { "id": 182, "y": 1 }, + { "id": 200, "y": 19, "moveCooldown": 4 }, + { "id": 203, "y": 19, "moveCooldown": 4 }, + { "id": 198, "x": 22 }, + { "id": 201, "y": 20 }, + { "id": 185, "x": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 19 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 19 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 20 } + ] + }, + "184": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 182, "y": 0 }, + { "id": 195, "x": 23 }, + { "id": 201, "y": 21 }, + { "id": 198, "x": 23 }, + { "id": 185, "x": 21 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 } + ] + }, + "185": { + "objects": [ + { "id": 187, "moveCooldown": 4 }, + { "id": 188, "y": 1 }, + { "id": 182, "y": 1 }, + { "id": 6, "hp": 35 }, + { "id": 195, "x": 24 }, + { "id": 198, "x": 22 }, + { "id": 197, "y": 21, "moveCooldown": 4 }, + { "id": 185, "x": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 197, "x": 20, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "attack", "unit_id": 187, "x": 13, "y": 1 } + ] + }, + "186": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 182, "y": 0 }, + { "id": 195, "x": 23 }, + { "id": 181, "y": 22 }, + { "id": 201, "x": 23 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 } + ] + }, + "187": { + "objects": [ + { "id": 188, "y": 1 }, + { "id": 182, "y": 1 }, + { "id": 184, "y": 7, "moveCooldown": 4 }, + { "id": 194, "y": 11, "moveCooldown": 4 }, + { "id": 195, "x": 24 }, + { "id": 201, "x": 24 }, + { "id": 181, "y": 21 }, + { "id": 185, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 184, "x": 19, "y": 7 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 194, "x": 19, "y": 11 } + ] + }, + "188": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 182, "y": 0 }, + { "id": 200, "y": 18, "moveCooldown": 4 }, + { "id": 203, "y": 18, "moveCooldown": 4 }, + { "id": 195, "balance": 0 }, + { "id": 181, "y": 22 }, + { "id": 198, "x": 23 }, + { "id": 185, "y": 22 }, + { "id": 2, "balance": 275 } + ], + "actions": [ + { + "type": "transfer_money", + "source_id": 195, + "x": 24, + "y": 24, + "amount": 150 + }, + { "type": "move", "unit_id": 181, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 198, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 18 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 18 } + ] + }, + "189": { + "objects": [ + { "id": 188, "y": 1 }, + { "id": 182, "y": 1 }, + { "id": 195, "x": 23 }, + { "id": 198, "x": 22 }, + { "id": 181, "y": 21 }, + { "id": 185, "y": 23 }, + { "id": 2, "balance": 75 }, + { + "id": 204, + "type": 1, + "x": 20, + "y": 24, + "hp": 10, + "teamId": 2, + "unit_type": 2, + "balance": 0, + "moveCooldown": 0 + } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 1 }, + { "type": "create", "unit_type": 2 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 } + ] + }, + "190": { + "objects": [ + { "id": 187, "x": 14, "moveCooldown": 4 }, + { "id": 182, "y": 0 }, + { "id": 197, "y": 20, "moveCooldown": 4 }, + { "id": 181, "y": 22 }, + { "id": 201, "x": 23 }, + { "id": 185, "y": 22 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 197, "x": 20, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 187, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 } + ] + }, + "191": { + "objects": [ + { "id": 182, "y": 1 }, + { "id": 6, "hp": 32 }, + { "id": 195, "x": 24 }, + { "id": 198, "x": 21 }, + { "id": 201, "x": 24 }, + { "id": 185, "y": 23 }, + { "id": 204, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "attack", "unit_id": 188, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 } + ] + }, + "192": { + "objects": [ + { "id": 6, "hp": 29 }, + { "id": 182, "y": 0 }, + { "id": 184, "y": 6, "moveCooldown": 4 }, + { "id": 194, "y": 10, "moveCooldown": 4 }, + { "id": 195, "x": 23 }, + { "id": 198, "x": 22 }, + { "id": 201, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 194, "x": 19, "y": 10 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "attack", "unit_id": 188, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 184, "x": 19, "y": 6 } + ] + }, + "193": { + "objects": [ + { "id": 182, "y": 1 }, + { "id": 6, "hp": 26 }, + { "id": 200, "y": 17, "moveCooldown": 4 }, + { "id": 203, "y": 17, "moveCooldown": 4 }, + { "id": 195, "x": 24 }, + { "id": 198, "y": 20 }, + { "id": 201, "x": 24 }, + { "id": 181, "balance": 0 }, + { "id": 204, "y": 24 }, + { "id": 2, "balance": 450 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 17 }, + { + "type": "transfer_money", + "source_id": 181, + "x": 24, + "y": 24, + "amount": 375 + }, + { "type": "attack", "unit_id": 188, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 17 } + ] + }, + "194": { + "objects": [ + { "id": 6, "hp": 23 }, + { "id": 182, "y": 0 }, + { "id": 198, "y": 21 }, + { "id": 195, "x": 23 }, + { "id": 201, "x": 23 }, + { "id": 204, "y": 23 }, + { "id": 2, "balance": 350 }, + { + "id": 205, + "type": 1, + "x": 20, + "y": 24, + "hp": 20, + "teamId": 2, + "unit_type": 1, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "create", "unit_type": 1 }, + { "type": "attack", "unit_id": 188, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 21 } + ] + }, + "195": { + "objects": [ + { "id": 187, "x": 13, "moveCooldown": 4 }, + { "id": 182, "y": 1 }, + { "id": 6, "hp": 20 }, + { "id": 197, "y": 19, "moveCooldown": 4 }, + { "id": 195, "x": 24 }, + { "id": 198, "x": 21 }, + { "id": 181, "x": 21 }, + { "id": 204, "y": 22 }, + { "id": 2, "balance": 200 }, + { + "id": 206, + "type": 1, + "x": 24, + "y": 21, + "hp": 35, + "teamId": 2, + "unit_type": 0, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "attack", "unit_id": 188, "x": 13, "y": 1 }, + { "type": "create", "unit_type": 0 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 197, "x": 20, "y": 19 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 187, "x": 13, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 } + ] + }, + "196": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 182, "y": 0 }, + { "id": 195, "x": 23 }, + { "id": 201, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 2, "balance": 0 }, + { + "id": 207, + "type": 1, + "x": 22, + "y": 22, + "hp": 10, + "teamId": 2, + "unit_type": 2, + "balance": 0, + "moveCooldown": 0 + } + ], + "actions": [ + { "type": "create", "unit_type": 2 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 } + ] + }, + "197": { + "objects": [ + { "id": 188, "y": 1 }, + { "id": 182, "y": 1 }, + { "id": 184, "y": 5, "moveCooldown": 4 }, + { "id": 194, "y": 9, "moveCooldown": 4 }, + { "id": 198, "x": 20 }, + { "id": 201, "x": 23 }, + { "id": 204, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 184, "x": 19, "y": 5 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 194, "x": 19, "y": 9 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 } + ] + }, + "198": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 182, "y": 0 }, + { "id": 200, "y": 16, "moveCooldown": 4 }, + { "id": 203, "y": 16, "moveCooldown": 4 }, + { "id": 195, "x": 24 }, + { "id": 204, "y": 23 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 } + ], + "actions": [ + { "type": "move", "unit_id": 203, "x": 21, "y": 16 }, + { "type": "move", "unit_id": 207, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 16 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 } + ] + }, + "199": { + "objects": [ + { "id": 188, "y": 1 }, + { "id": 182, "y": 1 }, + { "id": 198, "y": 22 }, + { "id": 181, "y": 22 }, + { "id": 207, "y": 22 }, + { "id": 201, "y": 20 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 207, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 20 } + ] + }, + "200": { + "objects": [ + { "id": 187, "x": 14, "moveCooldown": 4 }, + { "id": 182, "y": 0 }, + { "id": 197, "y": 18, "moveCooldown": 4 }, + { "id": 195, "y": 19 }, + { "id": 206, "x": 23, "moveCooldown": 4 }, + { "id": 198, "y": 21 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 204, "x": 19 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 187, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 206, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 197, "x": 20, "y": 18 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 21 } + ] + }, + "201": { + "objects": [ + { "id": 182, "y": 1 }, + { "id": 6, "hp": 17 }, + { "id": 195, "y": 20 }, + { "id": 198, "y": 22 }, + { "id": 181, "y": 22 }, + { "id": 204, "x": 20 }, + { "id": 185, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "attack", "unit_id": 188, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 } + ] + }, + "202": { + "objects": [ + { "id": 6, "hp": 14 }, + { "id": 182, "y": 0 }, + { "id": 184, "y": 4, "moveCooldown": 4 }, + { "id": 194, "y": 8, "moveCooldown": 4 }, + { "id": 201, "x": 22 }, + { "id": 195, "y": 21 }, + { "id": 207, "x": 21 }, + { "id": 198, "y": 21 }, + { "id": 185, "y": 23 }, + { "id": 204, "x": 19 } + ], + "actions": [ + { "type": "attack", "unit_id": 188, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 194, "x": 19, "y": 8 }, + { "type": "move", "unit_id": 207, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 184, "x": 19, "y": 4 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 21 } + ] + }, + "203": { + "objects": [ + { "id": 182, "y": 1 }, + { "id": 6, "hp": 11 }, + { "id": 200, "y": 15, "moveCooldown": 4 }, + { "id": 203, "y": 15, "moveCooldown": 4 }, + { "id": 198, "y": 22 }, + { "id": 207, "x": 22 }, + { "id": 195, "y": 20 }, + { "id": 204, "x": 20 }, + { "id": 185, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 15 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "attack", "unit_id": 188, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 15 } + ] + }, + "204": { + "objects": [ + { "id": 6, "hp": 8 }, + { "id": 182, "y": 0 }, + { "id": 201, "x": 23 }, + { "id": 195, "y": 21 }, + { "id": 198, "x": 19 }, + { "id": 181, "y": 21 }, + { "id": 185, "y": 23 }, + { "id": 204, "x": 19 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 19, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "attack", "unit_id": 188, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "205": { + "objects": [ + { "id": 187, "x": 13, "moveCooldown": 4 }, + { "id": 182, "y": 1 }, + { "id": 6, "hp": 5 }, + { "id": 197, "y": 17, "moveCooldown": 4 }, + { "id": 181, "y": 22 }, + { "id": 207, "y": 22 }, + { "id": 195, "y": 20 }, + { "id": 198, "x": 20 }, + { "id": 204, "x": 20 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 187, "x": 13, "y": 0 }, + { "type": "move", "unit_id": 197, "x": 20, "y": 17 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "attack", "unit_id": 188, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 } + ] + }, + "206": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 182, "y": 0 }, + { "id": 201, "x": 22 }, + { "id": 195, "y": 21 }, + { "id": 198, "y": 21 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 204, "x": 19 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 21 } + ] + }, + "207": { + "objects": [ + { "id": 188, "y": 1 }, + { "id": 182, "y": 1 }, + { "id": 184, "x": 18, "moveCooldown": 4 }, + { "id": 194, "y": 7, "moveCooldown": 4 }, + { "id": 198, "y": 22 }, + { "id": 181, "y": 22 }, + { "id": 206, "y": 20, "moveCooldown": 4 }, + { "id": 195, "y": 20 }, + { "id": 204, "x": 20 }, + { "id": 185, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 206, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 184, "x": 18, "y": 4 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 194, "x": 19, "y": 7 } + ] + }, + "208": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 182, "y": 0 }, + { "id": 200, "y": 14, "moveCooldown": 4 }, + { "id": 203, "y": 14, "moveCooldown": 4 }, + { "id": 201, "x": 21 }, + { "id": 195, "y": 21 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 21 }, + { "id": 181, "y": 21 }, + { "id": 204, "x": 19 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 200, "x": 20, "y": 14 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 14 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 21 } + ] + }, + "209": { + "objects": [ + { "id": 188, "y": 1 }, + { "id": 182, "y": 1 }, + { "id": 201, "x": 22 }, + { "id": 198, "y": 22 }, + { "id": 207, "x": 22 }, + { "id": 195, "y": 20 }, + { "id": 185, "x": 21 }, + { "id": 204, "x": 20 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 1 } + ] + }, + "210": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 182, "y": 0 }, + { "id": 197, "y": 16, "moveCooldown": 4 }, + { "id": 201, "x": 21 }, + { "id": 195, "y": 21 }, + { "id": 181, "x": 20 }, + { "id": 185, "x": 22 }, + { "id": 204, "x": 19 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 20, "y": 21 }, + { "type": "move", "unit_id": 197, "x": 20, "y": 16 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 20 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 21 } + ] + }, + "211": { + "objects": [ + { "id": 187, "moveCooldown": 4 }, + { "id": 188, "y": 1 }, + { "id": 182, "y": 1 }, + { "id": 6, "state": "dead" }, + { "id": 181, "x": 21 }, + { "id": 195, "x": 23 }, + { "id": 185, "x": 21 }, + { "id": 204, "x": 20 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "attack", "unit_id": 187, "x": 13, "y": 1 } + ] + }, + "212": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 182, "y": 0 }, + { "id": 184, "y": 3, "moveCooldown": 4 }, + { "id": 194, "y": 6, "moveCooldown": 4 }, + { "id": 201, "x": 22 }, + { "id": 206, "y": 19, "moveCooldown": 4 }, + { "id": 181, "x": 20 }, + { "id": 207, "y": 22 }, + { "id": 195, "x": 24 }, + { "id": 204, "x": 19 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 20, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 184, "x": 18, "y": 3 }, + { "type": "move", "unit_id": 206, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 194, "x": 19, "y": 6 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 20 } + ] + }, + "213": { + "objects": [ + { "id": 188, "y": 1 }, + { "id": 182, "y": 1 }, + { "id": 200, "y": 13, "moveCooldown": 4 }, + { "id": 203, "y": 13, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 181, "x": 21 }, + { "id": 195, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 207, "y": 21 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 13 }, + { "type": "move", "unit_id": 207, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 13 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 } + ] + }, + "214": { + "objects": [ + { "id": 188, "y": 0 }, + { "id": 182, "y": 0 }, + { "id": 201, "x": 24 }, + { "id": 181, "x": 20 }, + { "id": 195, "x": 24 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 20, "y": 21 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 0 } + ] + }, + "215": { + "objects": [ + { "id": 188, "y": 1 }, + { "id": 182, "y": 1 }, + { "id": 197, "y": 15, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 23 }, + { "id": 185, "x": 21 }, + { "id": 192, "y": 24 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 197, "x": 20, "y": 15 }, + { "type": "move", "unit_id": 188, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "216": { + "objects": [ + { "id": 187, "x": 14, "moveCooldown": 4 }, + { "id": 188, "x": 13 }, + { "id": 182, "y": 0 }, + { "id": 181, "x": 22 }, + { "id": 195, "y": 20 }, + { "id": 185, "x": 22 }, + { "id": 204, "x": 20 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 187, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 188, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 0 } + ] + }, + "217": { + "objects": [ + { "id": 182, "y": 1 }, + { "id": 188, "y": 0 }, + { "id": 184, "y": 2, "moveCooldown": 4 }, + { "id": 194, "y": 5, "moveCooldown": 4 }, + { "id": 206, "y": 18, "moveCooldown": 4 }, + { "id": 201, "x": 22 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "x": 19 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 194, "x": 19, "y": 5 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 184, "x": 18, "y": 2 }, + { "type": "move", "unit_id": 206, "x": 23, "y": 18 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 182, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 188, "x": 13, "y": 0 } + ] + }, + "218": { + "objects": [ + { "id": 188, "x": 12 }, + { "id": 182, "x": 14 }, + { "id": 200, "y": 12, "moveCooldown": 4 }, + { "id": 203, "y": 12, "moveCooldown": 4 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 188, "x": 12, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 12 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 12 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 } + ] + }, + "219": { + "objects": [ + { "id": 188, "x": 11 }, + { "id": 182, "x": 13 }, + { "id": 201, "y": 19 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 11, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 182, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 19 } + ] + }, + "220": { + "objects": [ + { "id": 188, "x": 10 }, + { "id": 182, "y": 0 }, + { "id": 197, "y": 14, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 13, "y": 0 }, + { "type": "move", "unit_id": 197, "x": 20, "y": 14 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 188, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 } + ] + }, + "221": { + "objects": [ + { "id": 188, "x": 9 }, + { "id": 182, "x": 12 }, + { "id": 187, "x": 15, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 188, "x": 9, "y": 0 }, + { "type": "move", "unit_id": 182, "x": 12, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 187, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 } + ] + }, + "222": { + "objects": [ + { "id": 188, "x": 8 }, + { "id": 182, "x": 11 }, + { "id": 184, "x": 17, "moveCooldown": 4 }, + { "id": 194, "y": 4, "moveCooldown": 4 }, + { "id": 206, "y": 17, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 188, "x": 8, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 194, "x": 19, "y": 4 }, + { "type": "move", "unit_id": 206, "x": 23, "y": 17 }, + { "type": "move", "unit_id": 182, "x": 11, "y": 0 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 184, "x": 17, "y": 2 } + ] + }, + "223": { + "objects": [ + { "id": 188, "x": 7 }, + { "id": 182, "x": 10 }, + { "id": 200, "y": 11, "moveCooldown": 4 }, + { "id": 203, "y": 11, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 11 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 11 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 182, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 188, "x": 7, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 } + ] + }, + "224": { + "objects": [ + { "id": 188, "x": 6 }, + { "id": 182, "x": 9 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 188, "x": 6, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 9, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 } + ] + }, + "225": { + "objects": [ + { "id": 188, "x": 5 }, + { "id": 182, "x": 8 }, + { "id": 197, "y": 13, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 188, "x": 5, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 197, "x": 20, "y": 13 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 182, "x": 8, "y": 0 } + ] + }, + "226": { + "objects": [ + { "id": 188, "x": 4 }, + { "id": 182, "x": 7 }, + { "id": 187, "y": 1, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 187, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 188, "x": 4, "y": 0 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 182, "x": 7, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 } + ] + }, + "227": { + "objects": [ + { "id": 188, "x": 3 }, + { "id": 182, "x": 6 }, + { "id": 184, "x": 16, "moveCooldown": 4 }, + { "id": 194, "y": 3, "moveCooldown": 4 }, + { "id": 206, "y": 16, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 182, "x": 6, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 194, "x": 19, "y": 3 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 188, "x": 3, "y": 0 }, + { "type": "move", "unit_id": 184, "x": 16, "y": 2 }, + { "type": "move", "unit_id": 206, "x": 23, "y": 16 } + ] + }, + "228": { + "objects": [ + { "id": 188, "y": 1 }, + { "id": 182, "x": 5 }, + { "id": 200, "y": 10, "moveCooldown": 4 }, + { "id": 203, "y": 10, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 5, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 188, "x": 3, "y": 1 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 10 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 10 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 } + ] + }, + "229": { + "objects": [ + { "id": 182, "x": 4 }, + { "id": 188, "x": 2 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "y": 20 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 188, "x": 2, "y": 1 }, + { "type": "move", "unit_id": 182, "x": 4, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 } + ] + }, + "230": { + "objects": [ + { "id": 182, "x": 3 }, + { "id": 188, "x": 1 }, + { "id": 197, "y": 12, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 181, "y": 21 }, + { "id": 195, "x": 23 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 197, "x": 20, "y": 12 }, + { "type": "move", "unit_id": 188, "x": 1, "y": 1 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 182, "x": 3, "y": 0 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 } + ] + }, + "231": { + "objects": [ + { "id": 182, "y": 1 }, + { "id": 188, "x": 0 }, + { "id": 187, "y": 2, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 182, "x": 3, "y": 1 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 187, "x": 15, "y": 2 }, + { "type": "move", "unit_id": 188, "x": 0, "y": 1 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 } + ] + }, + "232": { + "objects": [ + { "id": 182, "y": 0 }, + { "id": 187, "hp": 29 }, + { "id": 184, "moveCooldown": 4 }, + { "id": 194, "x": 18, "moveCooldown": 4 }, + { "id": 206, "y": 15, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 182, "x": 3, "y": 0 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 194, "x": 18, "y": 3 }, + { "type": "move", "unit_id": 206, "x": 23, "y": 15 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "attack", "unit_id": 184, "x": 15, "y": 2 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 } + ] + }, + "233": { + "objects": [ + { "id": 182, "y": 1 }, + { "id": 200, "y": 9, "moveCooldown": 4 }, + { "id": 203, "y": 9, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 9 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 182, "x": 3, "y": 1 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 9 } + ] + }, + "234": { + "objects": [ + { "id": 182, "x": 2 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 182, "x": 2, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 } + ] + }, + "235": { + "objects": [ + { "id": 182, "x": 1 }, + { "id": 197, "y": 11, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 197, "x": 20, "y": 11 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 182, "x": 1, "y": 1 } + ] + }, + "236": { + "objects": [ + { "id": 1, "balance": 275 }, + { "id": 182, "balance": 0 }, + { "id": 187, "moveCooldown": 4 }, + { "id": 184, "hp": 29 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "attack", "unit_id": 187, "x": 16, "y": 2 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { + "type": "transfer_money", + "source_id": 182, + "x": 0, + "y": 0, + "amount": 225 + } + ] + }, + "237": { + "objects": [ + { "id": 1, "balance": 125 }, + { "id": 187, "hp": 23 }, + { "id": 184, "moveCooldown": 4 }, + { "id": 194, "x": 17, "moveCooldown": 4 }, + { "id": 206, "y": 14, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 }, + { + "id": 208, + "type": 1, + "x": 0, + "y": 2, + "hp": 35, + "teamId": 1, + "unit_type": 0, + "balance": 0, + "moveCooldown": 4 + } + ], + "actions": [ + { "type": "create", "unit_type": 0 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 206, "x": 23, "y": 14 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "attack", "unit_id": 184, "x": 15, "y": 2 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 194, "x": 17, "y": 3 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 } + ] + }, + "238": { + "objects": [ + { "id": 200, "y": 8, "moveCooldown": 4 }, + { "id": 203, "y": 8, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 8 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 8 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 } + ] + }, + "239": { + "objects": [ + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 } + ] + }, + "240": { + "objects": [ + { "id": 197, "y": 10, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 197, "x": 20, "y": 10 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 } + ] + }, + "241": { + "objects": [ + { "id": 187, "moveCooldown": 4 }, + { "id": 184, "hp": 23 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "attack", "unit_id": 187, "x": 16, "y": 2 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 } + ] + }, + "242": { + "objects": [ + { "id": 208, "x": 1, "moveCooldown": 4 }, + { "id": 187, "hp": 17 }, + { "id": 184, "moveCooldown": 4 }, + { "id": 194, "x": 16, "moveCooldown": 4 }, + { "id": 206, "y": 13, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 194, "x": 16, "y": 3 }, + { "type": "move", "unit_id": 208, "x": 1, "y": 2 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "attack", "unit_id": 184, "x": 15, "y": 2 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 206, "x": 23, "y": 13 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 } + ] + }, + "243": { + "objects": [ + { "id": 200, "y": 7, "moveCooldown": 4 }, + { "id": 203, "y": 7, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 7 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 7 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 } + ] + }, + "244": { + "objects": [ + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 } + ] + }, + "245": { + "objects": [ + { "id": 197, "y": 9, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 197, "x": 20, "y": 9 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 } + ] + }, + "246": { + "objects": [ + { "id": 187, "moveCooldown": 4 }, + { "id": 184, "hp": 17 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "attack", "unit_id": 187, "x": 16, "y": 2 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "247": { + "objects": [ + { "id": 208, "x": 2, "moveCooldown": 4 }, + { "id": 187, "hp": 11 }, + { "id": 184, "moveCooldown": 4 }, + { "id": 194, "x": 17, "moveCooldown": 4 }, + { "id": 206, "y": 12, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 194, "x": 17, "y": 3 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 206, "x": 23, "y": 12 }, + { "type": "move", "unit_id": 208, "x": 2, "y": 2 }, + { "type": "attack", "unit_id": 184, "x": 15, "y": 2 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 } + ] + }, + "248": { + "objects": [ + { "id": 200, "y": 6, "moveCooldown": 4 }, + { "id": 203, "y": 6, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 6 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 6 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 } + ] + }, + "249": { + "objects": [ + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 } + ] + }, + "250": { + "objects": [ + { "id": 197, "y": 8, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 197, "x": 20, "y": 8 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 } + ] + }, + "251": { + "objects": [ + { "id": 187, "moveCooldown": 4 }, + { "id": 184, "hp": 11 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "attack", "unit_id": 187, "x": 16, "y": 2 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 } + ] + }, + "252": { + "objects": [ + { "id": 208, "y": 1, "moveCooldown": 4 }, + { "id": 187, "hp": 5 }, + { "id": 184, "moveCooldown": 4 }, + { "id": 194, "y": 2, "moveCooldown": 4 }, + { "id": 206, "y": 11, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 208, "x": 2, "y": 1 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 194, "x": 17, "y": 2 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 206, "x": 23, "y": 11 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "attack", "unit_id": 184, "x": 15, "y": 2 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "253": { + "objects": [ + { "id": 200, "y": 5, "moveCooldown": 4 }, + { "id": 203, "y": 5, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 200, "x": 20, "y": 5 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 5 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 } + ] + }, + "254": { + "objects": [ + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "255": { + "objects": [ + { "id": 197, "y": 7, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 197, "x": 20, "y": 7 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 } + ] + }, + "256": { + "objects": [ + { "id": 187, "moveCooldown": 4 }, + { "id": 184, "hp": 5 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "attack", "unit_id": 187, "x": 16, "y": 2 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 } + ] + }, + "257": { + "objects": [ + { "id": 208, "x": 3, "moveCooldown": 4 }, + { "id": 187, "state": "dead" }, + { "id": 184, "moveCooldown": 4 }, + { "id": 194, "y": 1, "moveCooldown": 4 }, + { "id": 206, "y": 10, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 206, "x": 23, "y": 10 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 208, "x": 3, "y": 1 }, + { "type": "move", "unit_id": 194, "x": 17, "y": 1 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "attack", "unit_id": 184, "x": 15, "y": 2 } + ] + }, + "258": { + "objects": [ + { "id": 200, "x": 19, "moveCooldown": 4 }, + { "id": 203, "y": 4, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 200, "x": 19, "y": 5 }, + { "type": "move", "unit_id": 203, "x": 21, "y": 4 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 } + ] + }, + "259": { + "objects": [ + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 } + ] + }, + "260": { + "objects": [ + { "id": 197, "y": 6, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 197, "x": 20, "y": 6 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 } + ] + }, + "261": { + "objects": [ + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 } + ] + }, + "262": { + "objects": [ + { "id": 208, "x": 4, "moveCooldown": 4 }, + { "id": 184, "y": 1, "moveCooldown": 4 }, + { "id": 206, "y": 9, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 206, "x": 23, "y": 9 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 184, "x": 16, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 208, "x": 4, "y": 1 } + ] + }, + "263": { + "objects": [ + { "id": 194, "y": 0, "moveCooldown": 4 }, + { "id": 203, "x": 20, "moveCooldown": 4 }, + { "id": 200, "y": 4, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "y": 20 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 194, "x": 17, "y": 0 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 203, "x": 20, "y": 4 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 200, "x": 19, "y": 4 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 20 } + ] + }, + "264": { + "objects": [ + { "id": 201, "x": 23 }, + { "id": 181, "y": 21 }, + { "id": 195, "x": 23 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 } + ] + }, + "265": { + "objects": [ + { "id": 197, "y": 5, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 197, "x": 20, "y": 5 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 } + ] + }, + "266": { + "objects": [ + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 } + ] + }, + "267": { + "objects": [ + { "id": 208, "x": 5, "moveCooldown": 4 }, + { "id": 184, "x": 15, "moveCooldown": 4 }, + { "id": 206, "x": 22, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 184, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 208, "x": 5, "y": 1 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 206, "x": 22, "y": 9 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 } + ] + }, + "268": { + "objects": [ + { "id": 194, "x": 16, "moveCooldown": 4 }, + { "id": 200, "y": 3, "moveCooldown": 4 }, + { "id": 203, "y": 3, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 194, "x": 16, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 203, "x": 20, "y": 3 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 200, "x": 19, "y": 3 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 } + ] + }, + "269": { + "objects": [ + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 } + ] + }, + "270": { + "objects": [ + { "id": 197, "y": 4, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 197, "x": 20, "y": 4 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 } + ] + }, + "271": { + "objects": [ + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 } + ] + }, + "272": { + "objects": [ + { "id": 208, "x": 6, "moveCooldown": 4 }, + { "id": 184, "x": 14, "moveCooldown": 4 }, + { "id": 206, "y": 8, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 208, "x": 6, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 206, "x": 22, "y": 8 }, + { "type": "move", "unit_id": 184, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 } + ] + }, + "273": { + "objects": [ + { "id": 194, "x": 15, "moveCooldown": 4 }, + { "id": 200, "x": 18, "moveCooldown": 4 }, + { "id": 203, "y": 2, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 203, "x": 20, "y": 2 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 194, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 200, "x": 18, "y": 3 } + ] + }, + "274": { + "objects": [ + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 } + ] + }, + "275": { + "objects": [ + { "id": 197, "x": 19, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "y": 20 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 197, "x": 19, "y": 4 } + ] + }, + "276": { + "objects": [ + { "id": 201, "x": 23 }, + { "id": 181, "y": 21 }, + { "id": 195, "x": 23 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 } + ] + }, + "277": { + "objects": [ + { "id": 208, "x": 7, "moveCooldown": 4 }, + { "id": 184, "x": 13, "moveCooldown": 4 }, + { "id": 206, "y": 7, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 208, "x": 7, "y": 1 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 206, "x": 22, "y": 7 }, + { "type": "move", "unit_id": 184, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 } + ] + }, + "278": { + "objects": [ + { "id": 194, "x": 14, "moveCooldown": 4 }, + { "id": 203, "x": 19, "moveCooldown": 4 }, + { "id": 200, "x": 17, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 200, "x": 17, "y": 3 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 203, "x": 19, "y": 2 }, + { "type": "move", "unit_id": 194, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 } + ] + }, + "279": { + "objects": [ + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 } + ] + }, + "280": { + "objects": [ + { "id": 197, "y": 3, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 197, "x": 19, "y": 3 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 } + ] + }, + "281": { + "objects": [ + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 } + ] + }, + "282": { + "objects": [ + { "id": 208, "y": 0, "moveCooldown": 4 }, + { "id": 184, "y": 0, "moveCooldown": 4 }, + { "id": 206, "y": 6, "moveCooldown": 4 }, + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 208, "x": 7, "y": 0 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 184, "x": 13, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 206, "x": 22, "y": 6 } + ] + }, + "283": { + "objects": [ + { "id": 194, "y": 1, "moveCooldown": 4 }, + { "id": 203, "x": 18, "moveCooldown": 4 }, + { "id": 200, "y": 2, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 194, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 200, "x": 17, "y": 2 }, + { "type": "move", "unit_id": 203, "x": 18, "y": 2 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 } + ] + }, + "284": { + "objects": [ + { "id": 201, "x": 23 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "285": { + "objects": [ + { "id": 197, "x": 18, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 195, "x": 24 }, + { "id": 181, "y": 20 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 197, "x": 18, "y": 3 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 } + ] + }, + "286": { + "objects": [ + { "id": 201, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 207, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 } + ] + }, + "287": { + "objects": [ + { "id": 208, "x": 8, "moveCooldown": 4 }, + { "id": 184, "x": 12, "moveCooldown": 4 }, + { "id": 206, "x": 21, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 181, "x": 22 }, + { "id": 195, "y": 21 }, + { "id": 185, "y": 21 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 206, "x": 21, "y": 6 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 208, "x": 8, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 184, "x": 12, "y": 0 } + ] + }, + "288": { + "objects": [ + { "id": 194, "x": 13, "moveCooldown": 4 }, + { "id": 200, "x": 16, "moveCooldown": 4 }, + { "id": 203, "y": 1, "moveCooldown": 4 }, + { "id": 201, "y": 20 }, + { "id": 185, "y": 22 }, + { "id": 207, "y": 20 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 200, "x": 16, "y": 2 }, + { "type": "move", "unit_id": 194, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 203, "x": 18, "y": 1 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 } + ] + }, + "289": { + "objects": [ + { "id": 207, "y": 21 }, + { "id": 201, "y": 19 }, + { "id": 198, "x": 20 }, + { "id": 185, "y": 21 }, + { "id": 204, "y": 24 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 } + ] + }, + "290": { + "objects": [ + { "id": 197, "y": 2, "moveCooldown": 4 }, + { "id": 185, "y": 22 }, + { "id": 207, "y": 20 }, + { "id": 195, "y": 20 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 197, "x": 18, "y": 2 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 } + ] + }, + "291": { + "objects": [ + { "id": 201, "x": 23 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 195, "y": 21 }, + { "id": 198, "y": 21 }, + { "id": 204, "x": 20 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 } + ] + }, + "292": { + "objects": [ + { "id": 208, "x": 9, "moveCooldown": 4 }, + { "id": 184, "x": 11, "moveCooldown": 4 }, + { "id": 206, "x": 20, "moveCooldown": 4 }, + { "id": 198, "y": 22 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 195, "y": 20 }, + { "id": 204, "y": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 184, "x": 11, "y": 0 }, + { "type": "move", "unit_id": 206, "x": 20, "y": 6 }, + { "type": "move", "unit_id": 208, "x": 9, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 } + ] + }, + "293": { + "objects": [ + { "id": 194, "y": 0, "moveCooldown": 4 }, + { "id": 203, "x": 17, "moveCooldown": 4 }, + { "id": 200, "x": 15, "moveCooldown": 4 }, + { "id": 201, "x": 24 }, + { "id": 207, "y": 21 }, + { "id": 195, "y": 21 }, + { "id": 204, "y": 23 }, + { "id": 198, "y": 21 }, + { "id": 185, "y": 21 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 203, "x": 17, "y": 1 }, + { "type": "move", "unit_id": 200, "x": 15, "y": 2 }, + { "type": "move", "unit_id": 194, "x": 13, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 } + ] + }, + "294": { + "objects": [ + { "id": 201, "y": 20 }, + { "id": 198, "y": 22 }, + { "id": 185, "y": 22 }, + { "id": 207, "y": 20 }, + { "id": 204, "y": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 } + ] + }, + "295": { + "objects": [ + { "id": 197, "x": 17, "moveCooldown": 4 }, + { "id": 181, "y": 21 }, + { "id": 201, "y": 19 }, + { "id": 195, "x": 23 }, + { "id": 204, "y": 23 }, + { "id": 198, "y": 21 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 197, "x": 17, "y": 2 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 } + ] + }, + "296": { + "objects": [ + { "id": 201, "y": 20 }, + { "id": 198, "y": 22 }, + { "id": 181, "y": 20 }, + { "id": 195, "x": 24 }, + { "id": 204, "y": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 21 } + ] + }, + "297": { + "objects": [ + { "id": 184, "x": 10, "moveCooldown": 4 }, + { "id": 206, "y": 5, "moveCooldown": 4 }, + { "id": 207, "y": 21 }, + { "id": 201, "y": 19 }, + { "id": 204, "y": 23 }, + { "id": 198, "y": 21 }, + { "id": 185, "y": 21 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 206, "x": 20, "y": 5 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 184, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 } + ] + }, + "298": { + "objects": [ + { "id": 208, "moveCooldown": 4 }, + { "id": 184, "state": "dead" }, + { "id": 194, "x": 12, "moveCooldown": 4 }, + { "id": 203, "x": 16, "moveCooldown": 4 }, + { "id": 200, "y": 1, "moveCooldown": 4 }, + { "id": 181, "x": 23 }, + { "id": 198, "y": 22 }, + { "id": 185, "y": 22 }, + { "id": 195, "y": 20 }, + { "id": 204, "y": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "attack", "unit_id": 208, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 203, "x": 16, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 200, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 194, "x": 12, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 } + ] + }, + "299": { + "objects": [ + { "id": 201, "x": 23 }, + { "id": 181, "x": 22 }, + { "id": 195, "y": 21 }, + { "id": 204, "y": 23 }, + { "id": 198, "y": 21 }, + { "id": 185, "y": 21 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 } + ] + }, + "300": { + "objects": [ + { "id": 197, "y": 1, "moveCooldown": 4 }, + { "id": 201, "y": 20 }, + { "id": 198, "y": 22 }, + { "id": 185, "y": 22 }, + { "id": 195, "y": 20 }, + { "id": 204, "y": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 197, "x": 17, "y": 1 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 } + ] + }, + "301": { + "objects": [ + { "id": 181, "y": 21 }, + { "id": 201, "y": 19 }, + { "id": 207, "x": 24 }, + { "id": 204, "y": 23 }, + { "id": 198, "y": 21 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 } + ] + }, + "302": { + "objects": [ + { "id": 206, "x": 19, "moveCooldown": 4 }, + { "id": 201, "y": 20 }, + { "id": 198, "y": 22 }, + { "id": 181, "x": 23 }, + { "id": 204, "y": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 206, "x": 19, "y": 5 } + ] + }, + "303": { + "objects": [ + { "id": 208, "x": 10, "moveCooldown": 4 }, + { "id": 194, "x": 11, "moveCooldown": 4 }, + { "id": 200, "x": 14, "moveCooldown": 4 }, + { "id": 203, "y": 0, "moveCooldown": 4 }, + { "id": 201, "x": 22 }, + { "id": 195, "y": 19 }, + { "id": 204, "y": 23 }, + { "id": 198, "y": 21 }, + { "id": 185, "y": 21 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 200, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 208, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 194, "x": 11, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 203, "x": 16, "y": 0 } + ] + }, + "304": { + "objects": [ + { "id": 198, "y": 22 }, + { "id": 185, "y": 22 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 204, "y": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 } + ] + }, + "305": { + "objects": [ + { "id": 197, "x": 16, "moveCooldown": 4 }, + { "id": 195, "x": 23 }, + { "id": 201, "y": 21 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 204, "y": 23 }, + { "id": 198, "y": 21 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 197, "x": 16, "y": 1 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 } + ] + }, + "306": { + "objects": [ + { "id": 195, "y": 20 }, + { "id": 198, "y": 22 }, + { "id": 201, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 185, "y": 23 }, + { "id": 204, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 } + ] + }, + "307": { + "objects": [ + { "id": 206, "y": 4, "moveCooldown": 4 }, + { "id": 201, "y": 21 }, + { "id": 195, "y": 19 }, + { "id": 207, "y": 21 }, + { "id": 204, "y": 23 }, + { "id": 185, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 206, "x": 19, "y": 4 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 } + ] + }, + "308": { + "objects": [ + { "id": 208, "hp": 29, "moveCooldown": 4 }, + { "id": 194, "hp": 29, "moveCooldown": 4 }, + { "id": 203, "x": 15, "moveCooldown": 4 }, + { "id": 200, "y": 0, "moveCooldown": 4 }, + { "id": 195, "y": 20 }, + { "id": 201, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 198, "y": 21 }, + { "id": 204, "y": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 200, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 }, + { "type": "attack", "unit_id": 194, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "attack", "unit_id": 208, "x": 11, "y": 0 }, + { "type": "move", "unit_id": 203, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 20 } + ] + }, + "309": { + "objects": [ + { "id": 201, "y": 21 }, + { "id": 195, "y": 19 }, + { "id": 207, "y": 21 }, + { "id": 198, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 } + ] + }, + "310": { + "objects": [ + { "id": 197, "x": 15, "moveCooldown": 4 }, + { "id": 195, "y": 20 }, + { "id": 201, "x": 21 }, + { "id": 207, "y": 20 }, + { "id": 204, "y": 23 }, + { "id": 185, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 197, "x": 15, "y": 1 } + ] + }, + "311": { + "objects": [ + { "id": 195, "x": 22 }, + { "id": 201, "x": 22 }, + { "id": 181, "x": 24 }, + { "id": 204, "y": 22 }, + { "id": 185, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 } + ] + }, + "312": { + "objects": [ + { "id": 206, "x": 18, "moveCooldown": 4 }, + { "id": 195, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 204, "y": 23 }, + { "id": 198, "y": 21 }, + { "id": 185, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 206, "x": 18, "y": 4 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 } + ] + }, + "313": { + "objects": [ + { "id": 208, "hp": 23, "moveCooldown": 4 }, + { "id": 194, "hp": 23, "moveCooldown": 4 }, + { "id": 200, "x": 13, "moveCooldown": 4 }, + { "id": 203, "x": 16, "moveCooldown": 4 }, + { "id": 195, "x": 22 }, + { "id": 198, "y": 22 }, + { "id": 201, "y": 22 }, + { "id": 181, "x": 24 }, + { "id": 204, "y": 22 } + ], + "actions": [ + { "type": "attack", "unit_id": 194, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 203, "x": 16, "y": 0 }, + { "type": "attack", "unit_id": 208, "x": 11, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 200, "x": 13, "y": 0 } + ] + }, + "314": { + "objects": [ + { "id": 195, "y": 21 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 204, "y": 23 }, + { "id": 198, "y": 21 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 } + ] + }, + "315": { + "objects": [ + { "id": 197, "y": 0, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 198, "y": 22 }, + { "id": 195, "y": 20 }, + { "id": 181, "x": 24 }, + { "id": 204, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 197, "x": 15, "y": 0 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 } + ] + }, + "316": { + "objects": [ + { "id": 195, "y": 21 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 204, "y": 23 }, + { "id": 198, "y": 21 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 } + ] + }, + "317": { + "objects": [ + { "id": 206, "x": 17, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 195, "y": 20 }, + { "id": 181, "x": 24 }, + { "id": 201, "x": 21 }, + { "id": 204, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 206, "x": 17, "y": 4 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 } + ] + }, + "318": { + "objects": [ + { "id": 208, "hp": 17, "moveCooldown": 4 }, + { "id": 194, "hp": 17, "moveCooldown": 4 }, + { "id": 200, "x": 12, "moveCooldown": 4 }, + { "id": 203, "y": 1, "moveCooldown": 4 }, + { "id": 195, "y": 21 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 204, "y": 23 }, + { "id": 201, "x": 22 } + ], + "actions": [ + { "type": "attack", "unit_id": 194, "x": 10, "y": 0 }, + { "type": "attack", "unit_id": 208, "x": 11, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 203, "x": 16, "y": 1 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 200, "x": 12, "y": 0 } + ] + }, + "319": { + "objects": [ + { "id": 207, "x": 24 }, + { "id": 195, "y": 20 }, + { "id": 181, "x": 24 }, + { "id": 201, "x": 21 }, + { "id": 204, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 } + ] + }, + "320": { + "objects": [ + { "id": 197, "x": 14, "moveCooldown": 4 }, + { "id": 207, "x": 23 }, + { "id": 198, "x": 22 }, + { "id": 181, "x": 23 }, + { "id": 204, "y": 23 }, + { "id": 185, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 197, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 } + ] + }, + "321": { + "objects": [ + { "id": 195, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 198, "x": 21 }, + { "id": 181, "x": 24 }, + { "id": 185, "y": 23 }, + { "id": 204, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 } + ] + }, + "322": { + "objects": [ + { "id": 206, "y": 3, "moveCooldown": 4 }, + { "id": 195, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "x": 22 }, + { "id": 181, "x": 23 }, + { "id": 204, "y": 23 }, + { "id": 201, "x": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 206, "x": 17, "y": 3 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 } + ] + }, + "323": { + "objects": [ + { "id": 208, "hp": 11, "moveCooldown": 4 }, + { "id": 194, "hp": 11, "moveCooldown": 4 }, + { "id": 200, "moveCooldown": 4 }, + { "id": 5, "hp": 45 }, + { "id": 203, "x": 15, "moveCooldown": 4 }, + { "id": 195, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 198, "x": 21 }, + { "id": 181, "x": 24 }, + { "id": 201, "x": 21 }, + { "id": 204, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 20 }, + { "type": "move", "unit_id": 203, "x": 15, "y": 1 }, + { "type": "attack", "unit_id": 200, "x": 12, "y": 1 }, + { "type": "attack", "unit_id": 208, "x": 11, "y": 0 }, + { "type": "attack", "unit_id": 194, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 } + ] + }, + "324": { + "objects": [ + { "id": 195, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "x": 22 }, + { "id": 181, "x": 23 }, + { "id": 204, "y": 23 }, + { "id": 185, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 } + ] + }, + "325": { + "objects": [ + { "id": 197, "x": 13, "moveCooldown": 4 }, + { "id": 195, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 181, "x": 24 }, + { "id": 201, "y": 21 }, + { "id": 204, "y": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 197, "x": 13, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 } + ] + }, + "326": { + "objects": [ + { "id": 195, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 185, "x": 21 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 } + ] + }, + "327": { + "objects": [ + { "id": 206, "y": 2, "moveCooldown": 4 }, + { "id": 195, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 181, "x": 24 }, + { "id": 204, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 206, "x": 17, "y": 2 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 } + ] + }, + "328": { + "objects": [ + { "id": 208, "hp": 5, "moveCooldown": 4 }, + { "id": 194, "hp": 5, "moveCooldown": 4 }, + { "id": 200, "moveCooldown": 4 }, + { "id": 5, "hp": 40 }, + { "id": 203, "x": 14, "moveCooldown": 4 }, + { "id": 195, "x": 22 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 }, + { "type": "attack", "unit_id": 208, "x": 11, "y": 0 }, + { "type": "attack", "unit_id": 200, "x": 12, "y": 1 }, + { "type": "attack", "unit_id": 194, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 203, "x": 14, "y": 1 } + ] + }, + "329": { + "objects": [ + { "id": 195, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 201, "x": 20 }, + { "id": 198, "y": 22 }, + { "id": 181, "x": 24 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 20 } + ] + }, + "330": { + "objects": [ + { "id": 197, "y": 1, "moveCooldown": 4 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 185, "y": 21 }, + { "id": 198, "y": 21 }, + { "id": 204, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 197, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 } + ] + }, + "331": { + "objects": [ + { "id": 195, "x": 22 }, + { "id": 207, "x": 24 }, + { "id": 201, "x": 19 }, + { "id": 185, "y": 22 }, + { "id": 198, "y": 22 }, + { "id": 181, "x": 24 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 19, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 } + ] + }, + "332": { + "objects": [ + { "id": 206, "y": 1, "moveCooldown": 4 }, + { "id": 207, "x": 23 }, + { "id": 201, "x": 20 }, + { "id": 181, "x": 23 }, + { "id": 185, "y": 21 }, + { "id": 198, "y": 21 }, + { "id": 204, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 206, "x": 17, "y": 1 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 } + ] + }, + "333": { + "objects": [ + { "id": 208, "state": "dead" }, + { "id": 194, "state": "dead" }, + { "id": 200, "moveCooldown": 4 }, + { "id": 5, "hp": 35 }, + { "id": 203, "y": 0, "moveCooldown": 4 }, + { "id": 195, "x": 21 }, + { "id": 207, "x": 24 }, + { "id": 201, "y": 20 }, + { "id": 185, "y": 22 }, + { "id": 198, "y": 22 }, + { "id": 181, "x": 24 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 20 }, + { "type": "attack", "unit_id": 194, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 203, "x": 14, "y": 0 }, + { "type": "attack", "unit_id": 208, "x": 11, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "attack", "unit_id": 200, "x": 12, "y": 1 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 } + ] + }, + "334": { + "objects": [ + { "id": 201, "y": 21 }, + { "id": 195, "y": 21 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 204, "y": 23 }, + { "id": 198, "y": 21 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 } + ] + }, + "335": { + "objects": [ + { "id": 197, "y": 0, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 195, "y": 20 }, + { "id": 198, "y": 22 }, + { "id": 181, "x": 24 }, + { "id": 204, "y": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 197, "x": 13, "y": 0 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 20 } + ] + }, + "336": { + "objects": [ + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 204, "y": 23 }, + { "id": 185, "y": 21 }, + { "id": 198, "y": 21 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 } + ] + }, + "337": { + "objects": [ + { "id": 206, "x": 16, "moveCooldown": 4 }, + { "id": 195, "x": 22 }, + { "id": 207, "x": 24 }, + { "id": 201, "y": 22 }, + { "id": 185, "y": 22 }, + { "id": 198, "y": 22 }, + { "id": 181, "x": 24 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 206, "x": 16, "y": 1 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 } + ] + }, + "338": { + "objects": [ + { "id": 200, "x": 11, "moveCooldown": 4 }, + { "id": 203, "y": 1, "moveCooldown": 4 }, + { "id": 195, "y": 21 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 201, "y": 21 }, + { "id": 185, "y": 21 }, + { "id": 204, "x": 19 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 20, "y": 21 }, + { "type": "move", "unit_id": 203, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 200, "x": 11, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "339": { + "objects": [ + { "id": 207, "x": 24 }, + { "id": 201, "y": 22 }, + { "id": 185, "y": 22 }, + { "id": 195, "y": 20 }, + { "id": 181, "x": 24 }, + { "id": 204, "x": 20 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 } + ] + }, + "340": { + "objects": [ + { "id": 197, "x": 12, "moveCooldown": 4 }, + { "id": 195, "y": 21 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 201, "x": 19 }, + { "id": 185, "y": 21 }, + { "id": 204, "x": 19 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 197, "x": 12, "y": 0 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 19, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 21 } + ] + }, + "341": { + "objects": [ + { "id": 207, "x": 24 }, + { "id": 185, "y": 22 }, + { "id": 195, "y": 20 }, + { "id": 181, "x": 24 }, + { "id": 201, "x": 20 }, + { "id": 198, "y": 23 }, + { "id": 204, "x": 20 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 } + ] + }, + "342": { + "objects": [ + { "id": 206, "x": 15, "moveCooldown": 4 }, + { "id": 195, "y": 21 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 201, "y": 21 }, + { "id": 204, "x": 19 }, + { "id": 198, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 206, "x": 15, "y": 1 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 } + ] + }, + "343": { + "objects": [ + { "id": 200, "x": 10, "moveCooldown": 4 }, + { "id": 203, "y": 0, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 181, "x": 24 }, + { "id": 185, "y": 21 }, + { "id": 198, "y": 23 }, + { "id": 204, "x": 20 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 203, "x": 14, "y": 0 }, + { "type": "move", "unit_id": 200, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 } + ] + }, + "344": { + "objects": [ + { "id": 207, "x": 23 }, + { "id": 201, "y": 22 }, + { "id": 185, "y": 22 }, + { "id": 195, "y": 22 }, + { "id": 181, "x": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 } + ] + }, + "345": { + "objects": [ + { "id": 197, "x": 11, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 181, "x": 24 }, + { "id": 201, "y": 21 }, + { "id": 185, "y": 21 }, + { "id": 195, "y": 21 }, + { "id": 204, "x": 19 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 197, "x": 11, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 21 } + ] + }, + "346": { + "objects": [ + { "id": 207, "x": 23 }, + { "id": 201, "y": 22 }, + { "id": 185, "y": 22 }, + { "id": 181, "x": 23 }, + { "id": 204, "x": 20 }, + { "id": 198, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 } + ] + }, + "347": { + "objects": [ + { "id": 206, "x": 14, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 195, "y": 20 }, + { "id": 181, "x": 24 }, + { "id": 201, "y": 21 }, + { "id": 185, "y": 21 }, + { "id": 198, "y": 23 }, + { "id": 204, "x": 19 } + ], + "actions": [ + { "type": "move", "unit_id": 206, "x": 14, "y": 1 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 } + ] + }, + "348": { + "objects": [ + { "id": 200, "x": 9, "moveCooldown": 4 }, + { "id": 203, "x": 13, "moveCooldown": 4 }, + { "id": 195, "y": 21 }, + { "id": 207, "x": 23 }, + { "id": 201, "y": 22 }, + { "id": 181, "x": 23 }, + { "id": 204, "y": 24 }, + { "id": 198, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 200, "x": 9, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 203, "x": 13, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 } + ] + }, + "349": { + "objects": [ + { "id": 207, "x": 24 }, + { "id": 185, "y": 22 }, + { "id": 195, "y": 20 }, + { "id": 181, "x": 24 }, + { "id": 198, "y": 23 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 20 } + ] + }, + "350": { + "objects": [ + { "id": 197, "x": 10, "moveCooldown": 4 }, + { "id": 195, "y": 21 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 201, "y": 23 }, + { "id": 185, "x": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 197, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 } + ] + }, + "351": { + "objects": [ + { "id": 207, "x": 24 }, + { "id": 195, "x": 21 }, + { "id": 181, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 201, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 } + ] + }, + "352": { + "objects": [ + { "id": 206, "x": 13, "moveCooldown": 4 }, + { "id": 207, "x": 23 }, + { "id": 195, "x": 22 }, + { "id": 181, "x": 23 }, + { "id": 201, "y": 23 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 206, "x": 13, "y": 1 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 } + ] + }, + "353": { + "objects": [ + { "id": 200, "x": 8, "moveCooldown": 4 }, + { "id": 203, "x": 12, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 195, "x": 21 }, + { "id": 181, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 201, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 200, "x": 8, "y": 0 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 203, "x": 12, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 } + ] + }, + "354": { + "objects": [ + { "id": 207, "x": 23 }, + { "id": 195, "x": 22 }, + { "id": 181, "x": 23 }, + { "id": 201, "y": 23 }, + { "id": 198, "y": 22 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 } + ] + }, + "355": { + "objects": [ + { "id": 197, "x": 9, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 181, "x": 24 }, + { "id": 185, "y": 21 }, + { "id": 198, "y": 23 }, + { "id": 204, "y": 24 }, + { "id": 201, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 197, "x": 9, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 } + ] + }, + "356": { + "objects": [ + { "id": 207, "x": 23 }, + { "id": 185, "y": 22 }, + { "id": 195, "y": 22 }, + { "id": 181, "x": 23 }, + { "id": 201, "y": 23 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 } + ] + }, + "357": { + "objects": [ + { "id": 206, "y": 0, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 181, "x": 24 }, + { "id": 185, "y": 21 }, + { "id": 195, "y": 21 }, + { "id": 204, "y": 24 }, + { "id": 201, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 206, "x": 13, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 } + ] + }, + "358": { + "objects": [ + { "id": 200, "x": 7, "moveCooldown": 4 }, + { "id": 203, "x": 11, "moveCooldown": 4 }, + { "id": 207, "x": 23 }, + { "id": 195, "y": 22 }, + { "id": 181, "x": 23 }, + { "id": 201, "x": 21 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 200, "x": 7, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 203, "x": 11, "y": 0 } + ] + }, + "359": { + "objects": [ + { "id": 207, "x": 24 }, + { "id": 185, "x": 22 }, + { "id": 181, "x": 24 }, + { "id": 201, "x": 20 }, + { "id": 204, "x": 20 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 } + ] + }, + "360": { + "objects": [ + { "id": 197, "x": 8, "moveCooldown": 4 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 201, "x": 21 }, + { "id": 204, "x": 19 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 197, "x": 8, "y": 0 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 } + ] + }, + "361": { + "objects": [ + { "id": 207, "x": 24 }, + { "id": 185, "x": 21 }, + { "id": 181, "x": 24 }, + { "id": 204, "x": 20 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 } + ] + }, + "362": { + "objects": [ + { "id": 206, "x": 12, "moveCooldown": 4 }, + { "id": 207, "x": 23 }, + { "id": 185, "x": 22 }, + { "id": 181, "x": 23 }, + { "id": 204, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 206, "x": 12, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 } + ] + }, + "363": { + "objects": [ + { "id": 200, "x": 6, "moveCooldown": 4 }, + { "id": 203, "x": 10, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 181, "x": 24 }, + { "id": 204, "y": 23 }, + { "id": 201, "y": 21 } + ], + "actions": [ + { "type": "move", "unit_id": 203, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 200, "x": 6, "y": 0 } + ] + }, + "364": { + "objects": [ + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 195, "x": 21 }, + { "id": 204, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 } + ] + }, + "365": { + "objects": [ + { "id": 197, "x": 7, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 201, "x": 20 }, + { "id": 185, "y": 22 }, + { "id": 181, "x": 24 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 20, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 197, "x": 7, "y": 0 } + ] + }, + "366": { + "objects": [ + { "id": 207, "x": 23 }, + { "id": 201, "x": 21 }, + { "id": 181, "x": 23 }, + { "id": 185, "y": 21 }, + { "id": 204, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 } + ] + }, + "367": { + "objects": [ + { "id": 206, "x": 11, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 201, "x": 20 }, + { "id": 181, "x": 24 }, + { "id": 204, "y": 23 }, + { "id": 198, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 206, "x": 11, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 20, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 } + ] + }, + "368": { + "objects": [ + { "id": 200, "x": 5, "moveCooldown": 4 }, + { "id": 203, "x": 9, "moveCooldown": 4 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 204, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 200, "x": 5, "y": 0 }, + { "type": "move", "unit_id": 203, "x": 9, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 23 } + ] + }, + "369": { + "objects": [ + { "id": 207, "x": 24 }, + { "id": 201, "x": 21 }, + { "id": 185, "y": 22 }, + { "id": 181, "x": 24 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 } + ] + }, + "370": { + "objects": [ + { "id": 197, "x": 6, "moveCooldown": 4 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 195, "x": 20 }, + { "id": 185, "y": 21 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 197, "x": 6, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 } + ] + }, + "371": { + "objects": [ + { "id": 207, "x": 24 }, + { "id": 185, "y": 22 }, + { "id": 181, "x": 24 }, + { "id": 195, "x": 21 }, + { "id": 204, "x": 19 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "372": { + "objects": [ + { "id": 206, "x": 10, "moveCooldown": 4 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 195, "x": 20 }, + { "id": 185, "y": 21 }, + { "id": 204, "x": 20 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 206, "x": 10, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 } + ] + }, + "373": { + "objects": [ + { "id": 200, "x": 4, "moveCooldown": 4 }, + { "id": 203, "x": 8, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 185, "y": 22 }, + { "id": 181, "x": 24 }, + { "id": 195, "x": 21 }, + { "id": 204, "x": 19 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 203, "x": 8, "y": 0 }, + { "type": "move", "unit_id": 200, "x": 4, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "374": { + "objects": [ + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 195, "x": 20 }, + { "id": 185, "y": 21 }, + { "id": 204, "x": 20 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 20, "y": 23 } + ] + }, + "375": { + "objects": [ + { "id": 197, "x": 5, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 201, "y": 22 }, + { "id": 181, "x": 24 }, + { "id": 204, "x": 19 }, + { "id": 198, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 197, "x": 5, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "376": { + "objects": [ + { "id": 207, "x": 23 }, + { "id": 185, "x": 23 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 } + ] + }, + "377": { + "objects": [ + { "id": 206, "x": 9, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 185, "x": 22 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 206, "x": 9, "y": 0 } + ] + }, + "378": { + "objects": [ + { "id": 200, "x": 3, "moveCooldown": 4 }, + { "id": 203, "x": 7, "moveCooldown": 4 }, + { "id": 207, "x": 23 }, + { "id": 201, "y": 22 }, + { "id": 185, "x": 23 }, + { "id": 198, "y": 23 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 203, "x": 7, "y": 0 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 200, "x": 3, "y": 0 } + ] + }, + "379": { + "objects": [ + { "id": 207, "x": 24 }, + { "id": 185, "x": 22 }, + { "id": 195, "y": 23 }, + { "id": 198, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 } + ] + }, + "380": { + "objects": [ + { "id": 197, "x": 4, "moveCooldown": 4 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 201, "y": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 197, "x": 4, "y": 0 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 } + ] + }, + "381": { + "objects": [ + { "id": 207, "x": 24 }, + { "id": 201, "y": 22 }, + { "id": 185, "y": 20 }, + { "id": 181, "x": 24 }, + { "id": 192, "y": 24 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 } + ] + }, + "382": { + "objects": [ + { "id": 206, "x": 8, "moveCooldown": 4 }, + { "id": 185, "y": 21 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 198, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 206, "x": 8, "y": 0 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 } + ] + }, + "383": { + "objects": [ + { "id": 189, "hp": 14 }, + { "id": 200, "moveCooldown": 4 }, + { "id": 203, "x": 6, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 201, "y": 22 }, + { "id": 181, "x": 24 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 198, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "attack", "unit_id": 200, "x": 2, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 203, "x": 6, "y": 0 } + ] + }, + "384": { + "objects": [ + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 } + ] + }, + "385": { + "objects": [ + { "id": 197, "y": 1, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 185, "y": 20 }, + { "id": 181, "x": 24 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 197, "x": 4, "y": 1 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 } + ] + }, + "386": { + "objects": [ + { "id": 185, "y": 21 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "387": { + "objects": [ + { "id": 206, "x": 7, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 201, "y": 22 }, + { "id": 185, "y": 20 }, + { "id": 181, "x": 24 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 206, "x": 7, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 } + ] + }, + "388": { + "objects": [ + { "id": 189, "hp": 8 }, + { "id": 200, "moveCooldown": 4 }, + { "id": 203, "x": 5, "moveCooldown": 4 }, + { "id": 185, "y": 21 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 198, "y": 23 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 203, "x": 5, "y": 0 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "attack", "unit_id": 200, "x": 2, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 } + ] + }, + "389": { + "objects": [ + { "id": 207, "x": 24 }, + { "id": 201, "y": 22 }, + { "id": 185, "y": 22 }, + { "id": 181, "x": 24 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 } + ] + }, + "390": { + "objects": [ + { "id": 197, "x": 3, "moveCooldown": 4 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 185, "y": 21 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 197, "x": 3, "y": 1 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "391": { + "objects": [ + { "id": 207, "x": 24 }, + { "id": 201, "y": 22 }, + { "id": 181, "x": 24 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 198, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 } + ] + }, + "392": { + "objects": [ + { "id": 206, "x": 6, "moveCooldown": 4 }, + { "id": 207, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 206, "x": 6, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "393": { + "objects": [ + { "id": 189, "hp": 2 }, + { "id": 200, "moveCooldown": 4 }, + { "id": 203, "x": 4, "moveCooldown": 4 }, + { "id": 207, "x": 24 }, + { "id": 185, "y": 20 }, + { "id": 181, "x": 24 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "attack", "unit_id": 200, "x": 2, "y": 0 }, + { "type": "move", "unit_id": 203, "x": 4, "y": 0 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 } + ] + }, + "394": { + "objects": [ + { "id": 185, "x": 23 }, + { "id": 201, "x": 22 }, + { "id": 181, "x": 23 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 } + ] + }, + "395": { + "objects": [ + { "id": 197, "x": 2, "moveCooldown": 4 }, + { "id": 185, "x": 22 }, + { "id": 207, "y": 21 }, + { "id": 201, "x": 21 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 197, "x": 2, "y": 1 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 } + ] + }, + "396": { + "objects": [ + { "id": 201, "x": 22 }, + { "id": 207, "y": 20 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 } + ] + }, + "397": { + "objects": [ + { "id": 206, "x": 5, "moveCooldown": 4 }, + { "id": 185, "x": 23 }, + { "id": 207, "y": 21 }, + { "id": 201, "x": 21 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 206, "x": 5, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 } + ] + }, + "398": { + "objects": [ + { "id": 189, "state": "dead" }, + { "id": 200, "moveCooldown": 4 }, + { "id": 203, "y": 1, "moveCooldown": 4 }, + { "id": 185, "x": 24 }, + { "id": 181, "x": 22 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 203, "x": 4, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 24, "y": 20 }, + { "type": "attack", "unit_id": 200, "x": 2, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 } + ] + }, + "399": { + "objects": [ + { "id": 185, "x": 23 }, + { "id": 201, "y": 22 }, + { "id": 207, "x": 23 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 } + ] + }, + "400": { + "objects": [ + { "id": 182, "hp": 4 }, + { "id": 197, "moveCooldown": 4 }, + { "id": 185, "x": 24 }, + { "id": 207, "x": 24 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 198, "y": 23 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "attack", "unit_id": 197, "x": 1, "y": 1 } + ] + }, + "401": { + "objects": [ + { "id": 185, "x": 23 }, + { "id": 201, "y": 22 }, + { "id": 207, "x": 23 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 198, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 20 } + ] + }, + "402": { + "objects": [ + { "id": 206, "x": 4, "moveCooldown": 4 }, + { "id": 185, "x": 24 }, + { "id": 207, "x": 24 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 198, "y": 23 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 206, "x": 4, "y": 0 } + ] + }, + "403": { + "objects": [ + { "id": 200, "y": 1, "moveCooldown": 4 }, + { "id": 185, "x": 23 }, + { "id": 201, "y": 22 }, + { "id": 181, "y": 22 }, + { "id": 207, "x": 23 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 200, "x": 3, "y": 1 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 20 } + ] + }, + "404": { + "objects": [ + { "id": 203, "y": 2, "moveCooldown": 4 }, + { "id": 185, "x": 24 }, + { "id": 207, "x": 24 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 181, "y": 21 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 203, "x": 4, "y": 2 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "405": { + "objects": [ + { "id": 182, "state": "dead" }, + { "id": 197, "moveCooldown": 4 }, + { "id": 185, "x": 23 }, + { "id": 201, "y": 22 }, + { "id": 181, "y": 22 }, + { "id": 207, "x": 23 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "attack", "unit_id": 197, "x": 1, "y": 1 } + ] + }, + "406": { + "objects": [ + { "id": 185, "x": 24 }, + { "id": 207, "x": 24 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 181, "y": 21 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 } + ] + }, + "407": { + "objects": [ + { "id": 206, "x": 3, "moveCooldown": 4 }, + { "id": 185, "x": 23 }, + { "id": 201, "y": 22 }, + { "id": 181, "y": 22 }, + { "id": 207, "x": 23 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 206, "x": 3, "y": 0 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 } + ] + }, + "408": { + "objects": [ + { "id": 200, "y": 2, "moveCooldown": 4 }, + { "id": 185, "x": 24 }, + { "id": 207, "x": 24 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 181, "y": 21 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 200, "x": 3, "y": 2 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 } + ] + }, + "409": { + "objects": [ + { "id": 203, "y": 1, "moveCooldown": 4 }, + { "id": 185, "x": 23 }, + { "id": 201, "y": 22 }, + { "id": 181, "x": 23 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 198, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 203, "x": 4, "y": 1 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 } + ] + }, + "410": { + "objects": [ + { "id": 197, "x": 1, "moveCooldown": 4 }, + { "id": 185, "x": 24 }, + { "id": 181, "x": 22 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 197, "x": 1, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 } + ] + }, + "411": { + "objects": [ + { "id": 185, "x": 23 }, + { "id": 181, "x": 23 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 20 } + ] + }, + "412": { + "objects": [ + { "id": 206, "x": 2, "moveCooldown": 4 }, + { "id": 185, "x": 24 }, + { "id": 201, "x": 22 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 206, "x": 2, "y": 0 } + ] + }, + "413": { + "objects": [ + { "id": 200, "y": 1, "moveCooldown": 4 }, + { "id": 185, "x": 23 }, + { "id": 201, "x": 21 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 200, "x": 3, "y": 1 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 } + ] + }, + "414": { + "objects": [ + { "id": 203, "y": 0, "moveCooldown": 4 }, + { "id": 185, "x": 24 }, + { "id": 201, "x": 22 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 203, "x": 4, "y": 0 } + ] + }, + "415": { + "objects": [ + { "id": 186, "hp": 14 }, + { "id": 197, "moveCooldown": 4 }, + { "id": 201, "y": 20 }, + { "id": 181, "y": 20 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "attack", "unit_id": 197, "x": 1, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 } + ] + }, + "416": { + "objects": [ + { "id": 201, "y": 21 }, + { "id": 181, "y": 21 }, + { "id": 185, "y": 19 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 } + ] + }, + "417": { + "objects": [ + { "id": 186, "hp": 8 }, + { "id": 206, "moveCooldown": 4 }, + { "id": 185, "y": 20 }, + { "id": 201, "y": 20 }, + { "id": 181, "y": 20 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 185, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 20 }, + { "type": "attack", "unit_id": 206, "x": 1, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 } + ] + }, + "418": { + "objects": [ + { "id": 200, "x": 2, "moveCooldown": 4 }, + { "id": 201, "y": 21 }, + { "id": 181, "y": 21 }, + { "id": 185, "y": 19 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 200, "x": 2, "y": 1 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 24, "y": 19 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 } + ] + }, + "419": { + "objects": [ + { "id": 203, "x": 3, "moveCooldown": 4 }, + { "id": 201, "y": 20 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 203, "x": 3, "y": 0 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 } + ] + }, + "420": { + "objects": [ + { "id": 186, "hp": 2 }, + { "id": 197, "moveCooldown": 4 }, + { "id": 185, "x": 23 }, + { "id": 201, "y": 21 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "attack", "unit_id": 197, "x": 1, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 } + ] + }, + "421": { + "objects": [ + { "id": 201, "x": 21 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 } + ] + }, + "422": { + "objects": [ + { "id": 186, "state": "dead" }, + { "id": 206, "moveCooldown": 4 }, + { "id": 185, "x": 24 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 201, "x": 22 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "attack", "unit_id": 206, "x": 1, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 24, "y": 19 } + ] + }, + "423": { + "objects": [ + { "id": 200, "y": 2, "moveCooldown": 4 }, + { "id": 201, "x": 21 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 200, "x": 2, "y": 2 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 } + ] + }, + "424": { + "objects": [ + { "id": 203, "y": 1, "moveCooldown": 4 }, + { "id": 185, "x": 23 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 201, "x": 22 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 19 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 203, "x": 3, "y": 1 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 } + ] + }, + "425": { + "objects": [ + { "id": 188, "hp": 4 }, + { "id": 197, "moveCooldown": 4 }, + { "id": 185, "y": 20 }, + { "id": 201, "x": 21 }, + { "id": 207, "y": 20 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "attack", "unit_id": 197, "x": 0, "y": 1 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 } + ] + }, + "426": { + "objects": [ + { "id": 185, "x": 22 }, + { "id": 207, "y": 21 }, + { "id": 201, "x": 22 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 } + ] + }, + "427": { + "objects": [ + { "id": 206, "y": 1, "moveCooldown": 4 }, + { "id": 185, "x": 23 }, + { "id": 201, "x": 21 }, + { "id": 207, "y": 20 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 206, "x": 2, "y": 1 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 } + ] + }, + "428": { + "objects": [ + { "id": 200, "x": 1, "moveCooldown": 4 }, + { "id": 185, "x": 22 }, + { "id": 207, "y": 21 }, + { "id": 201, "x": 22 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 200, "x": 1, "y": 2 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 } + ] + }, + "429": { + "objects": [ + { "id": 203, "y": 0, "moveCooldown": 4 }, + { "id": 201, "x": 21 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 203, "x": 3, "y": 0 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 } + ] + }, + "430": { + "objects": [ + { "id": 188, "state": "dead" }, + { "id": 197, "moveCooldown": 4 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 201, "x": 22 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "attack", "unit_id": 197, "x": 0, "y": 1 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 } + ] + }, + "431": { + "objects": [ + { "id": 185, "x": 23 }, + { "id": 201, "x": 21 }, + { "id": 207, "y": 20 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 } + ] + }, + "432": { + "objects": [ + { "id": 206, "y": 0, "moveCooldown": 4 }, + { "id": 185, "x": 22 }, + { "id": 207, "y": 21 }, + { "id": 201, "x": 22 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 206, "x": 2, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 20 } + ] + }, + "433": { + "objects": [ + { "id": 200, "x": 0, "moveCooldown": 4 }, + { "id": 201, "x": 21 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 200, "x": 0, "y": 2 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 } + ] + }, + "434": { + "objects": [ + { "id": 203, "y": 1, "moveCooldown": 4 }, + { "id": 185, "y": 21 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 203, "x": 3, "y": 1 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "435": { + "objects": [ + { "id": 197, "y": 0, "moveCooldown": 4 }, + { "id": 201, "y": 22 }, + { "id": 185, "y": 20 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 197, "x": 1, "y": 0 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 } + ] + }, + "436": { + "objects": [ + { "id": 185, "y": 21 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 198, "y": 23 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 } + ] + }, + "437": { + "objects": [ + { "id": 206, "y": 1, "moveCooldown": 4 }, + { "id": 201, "y": 22 }, + { "id": 185, "y": 22 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 206, "x": 2, "y": 1 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 } + ] + }, + "438": { + "objects": [ + { "id": 200, "y": 1, "moveCooldown": 4 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 185, "y": 21 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 200, "x": 0, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 } + ] + }, + "439": { + "objects": [ + { "id": 203, "y": 0, "moveCooldown": 4 }, + { "id": 201, "y": 22 }, + { "id": 185, "y": 22 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 203, "x": 3, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 } + ] + }, + "440": { + "objects": [ + { "id": 1, "hp": 188 }, + { "id": 197, "moveCooldown": 4 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 185, "y": 21 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "attack", "unit_id": 197, "x": 0, "y": 0 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 } + ] + }, + "441": { + "objects": [ + { "id": 201, "y": 22 }, + { "id": 185, "y": 22 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 } + ] + }, + "442": { + "objects": [ + { "id": 206, "x": 1, "moveCooldown": 4 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 185, "y": 21 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 206, "x": 1, "y": 1 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 } + ] + }, + "443": { + "objects": [ + { "id": 1, "hp": 176 }, + { "id": 200, "moveCooldown": 4 }, + { "id": 201, "y": 22 }, + { "id": 185, "y": 22 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "attack", "unit_id": 200, "x": 0, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 } + ] + }, + "444": { + "objects": [ + { "id": 203, "x": 2, "moveCooldown": 4 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 185, "y": 21 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 203, "x": 2, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 } + ] + }, + "445": { + "objects": [ + { "id": 1, "hp": 164 }, + { "id": 197, "moveCooldown": 4 }, + { "id": 201, "y": 22 }, + { "id": 185, "y": 22 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "attack", "unit_id": 197, "x": 0, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 } + ] + }, + "446": { + "objects": [ + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 185, "y": 21 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "447": { + "objects": [ + { "id": 201, "y": 22 }, + { "id": 185, "y": 22 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 } + ] + }, + "448": { + "objects": [ + { "id": 1, "hp": 152 }, + { "id": 200, "moveCooldown": 4 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 185, "y": 21 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "attack", "unit_id": 200, "x": 0, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "449": { + "objects": [ + { "id": 203, "y": 1, "moveCooldown": 4 }, + { "id": 201, "y": 22 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 198, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 203, "x": 2, "y": 1 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 } + ] + }, + "450": { + "objects": [ + { "id": 1, "hp": 140 }, + { "id": 197, "moveCooldown": 4 }, + { "id": 207, "y": 21 }, + { "id": 185, "x": 23 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 198, "y": 23 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 21 }, + { "type": "attack", "unit_id": 197, "x": 0, "y": 0 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 } + ] + }, + "451": { + "objects": [ + { "id": 201, "y": 22 }, + { "id": 185, "x": 22 }, + { "id": 207, "y": 20 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 198, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 } + ] + }, + "452": { + "objects": [ + { "id": 207, "y": 21 }, + { "id": 185, "x": 23 }, + { "id": 195, "y": 23 }, + { "id": 201, "y": 21 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 21 } + ] + }, + "453": { + "objects": [ + { "id": 1, "hp": 128 }, + { "id": 200, "moveCooldown": 4 }, + { "id": 181, "x": 24 }, + { "id": 185, "x": 22 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "attack", "unit_id": 200, "x": 0, "y": 0 } + ] + }, + "454": { + "objects": [ + { "id": 203, "y": 0, "moveCooldown": 4 }, + { "id": 181, "x": 23 }, + { "id": 201, "y": 20 }, + { "id": 185, "y": 22 }, + { "id": 207, "x": 23 }, + { "id": 195, "y": 23 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 21, "y": 20 }, + { "type": "move", "unit_id": 203, "x": 2, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 } + ] + }, + "455": { + "objects": [ + { "id": 1, "hp": 116 }, + { "id": 197, "moveCooldown": 4 }, + { "id": 201, "x": 22 }, + { "id": 181, "x": 24 }, + { "id": 207, "x": 24 }, + { "id": 198, "x": 20 }, + { "id": 185, "y": 21 }, + { "id": 204, "y": 24 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "attack", "unit_id": 197, "x": 0, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 20 } + ] + }, + "456": { + "objects": [ + { "id": 181, "x": 23 }, + { "id": 185, "y": 22 }, + { "id": 207, "x": 23 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 23 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 } + ] + }, + "457": { + "objects": [ + { "id": 201, "y": 21 }, + { "id": 181, "x": 24 }, + { "id": 207, "x": 24 }, + { "id": 198, "y": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 } + ] + }, + "458": { + "objects": [ + { "id": 1, "hp": 104 }, + { "id": 200, "moveCooldown": 4 }, + { "id": 181, "x": 23 }, + { "id": 198, "y": 22 }, + { "id": 201, "x": 23 }, + { "id": 185, "y": 23 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 201, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "attack", "unit_id": 200, "x": 0, "y": 0 } + ] + }, + "459": { + "objects": [ + { "id": 203, "y": 1, "moveCooldown": 4 }, + { "id": 181, "x": 24 }, + { "id": 201, "x": 22 }, + { "id": 198, "x": 22 }, + { "id": 204, "x": 20 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 203, "x": 2, "y": 1 } + ] + }, + "460": { + "objects": [ + { "id": 1, "hp": 92 }, + { "id": 197, "moveCooldown": 4 }, + { "id": 181, "x": 23 }, + { "id": 207, "x": 23 }, + { "id": 198, "x": 21 }, + { "id": 204, "x": 19 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "attack", "unit_id": 197, "x": 0, "y": 0 } + ] + }, + "461": { + "objects": [ + { "id": 181, "x": 24 }, + { "id": 207, "x": 24 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 20 } + ] + }, + "462": { + "objects": [ + { "id": 181, "x": 23 }, + { "id": 207, "x": 23 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 } + ] + }, + "463": { + "objects": [ + { "id": 1, "hp": 80 }, + { "id": 200, "moveCooldown": 4 }, + { "id": 181, "x": 24 }, + { "id": 207, "x": 24 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "attack", "unit_id": 200, "x": 0, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 } + ] + }, + "464": { + "objects": [ + { "id": 203, "y": 0, "moveCooldown": 4 }, + { "id": 181, "x": 23 }, + { "id": 207, "x": 23 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 203, "x": 2, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 } + ] + }, + "465": { + "objects": [ + { "id": 1, "hp": 68 }, + { "id": 197, "moveCooldown": 4 }, + { "id": 181, "x": 24 }, + { "id": 207, "x": 24 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 20 }, + { "type": "attack", "unit_id": 197, "x": 0, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 } + ] + }, + "466": { + "objects": [ + { "id": 181, "x": 23 }, + { "id": 207, "x": 23 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 } + ] + }, + "467": { + "objects": [ + { "id": 181, "x": 24 }, + { "id": 207, "x": 24 }, + { "id": 195, "y": 23 }, + { "id": 198, "x": 22 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 } + ] + }, + "468": { + "objects": [ + { "id": 1, "hp": 56 }, + { "id": 200, "moveCooldown": 4 }, + { "id": 181, "x": 23 }, + { "id": 201, "x": 23 }, + { "id": 198, "x": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "attack", "unit_id": 200, "x": 0, "y": 0 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 } + ] + }, + "469": { + "objects": [ + { "id": 203, "y": 1, "moveCooldown": 4 }, + { "id": 201, "x": 22 }, + { "id": 207, "y": 20 }, + { "id": 195, "y": 23 }, + { "id": 185, "y": 22 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 203, "x": 2, "y": 1 } + ] + }, + "470": { + "objects": [ + { "id": 1, "hp": 44 }, + { "id": 197, "moveCooldown": 4 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 185, "y": 23 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "attack", "unit_id": 197, "x": 0, "y": 0 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 } + ] + }, + "471": { + "objects": [ + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 195, "y": 23 }, + { "id": 185, "y": 22 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 } + ] + }, + "472": { + "objects": [ + { "id": 207, "y": 21 }, + { "id": 201, "x": 23 }, + { "id": 198, "x": 20 }, + { "id": 185, "y": 23 }, + { "id": 204, "y": 24 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 } + ] + }, + "473": { + "objects": [ + { "id": 1, "hp": 32 }, + { "id": 200, "moveCooldown": 4 }, + { "id": 201, "x": 22 }, + { "id": 207, "y": 20 }, + { "id": 198, "x": 21 }, + { "id": 185, "y": 22 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 185, "x": 22, "y": 22 }, + { "type": "attack", "unit_id": 200, "x": 0, "y": 0 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 } + ] + }, + "474": { + "objects": [ + { "id": 203, "y": 0, "moveCooldown": 4 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 198, "y": 21 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 }, + { "id": 192, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 203, "x": 2, "y": 0 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 } + ] + }, + "475": { + "objects": [ + { "id": 1, "hp": 20 }, + { "id": 197, "moveCooldown": 4 }, + { "id": 198, "y": 22 }, + { "id": 201, "y": 20 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 192, "y": 24 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "attack", "unit_id": 197, "x": 0, "y": 0 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 20 }, + { "type": "move", "unit_id": 192, "x": 22, "y": 24 } + ] + }, + "476": { + "objects": [ + { "id": 201, "y": 21 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 195, "y": 23 }, + { "id": 198, "y": 21 }, + { "id": 185, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 185, "x": 22, "y": 23 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 } + ] + }, + "477": { + "objects": [ + { "id": 198, "y": 22 }, + { "id": 201, "y": 22 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 22 } + ] + }, + "478": { + "objects": [ + { "id": 1, "hp": 8 }, + { "id": 200, "moveCooldown": 4 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 195, "y": 23 }, + { "id": 198, "y": 21 }, + { "id": 201, "y": 21 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "attack", "unit_id": 200, "x": 0, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 } + ] + }, + "479": { + "objects": [ + { "id": 203, "y": 1, "moveCooldown": 4 }, + { "id": 198, "y": 22 }, + { "id": 201, "y": 22 }, + { "id": 181, "y": 20 }, + { "id": 207, "y": 20 }, + { "id": 204, "y": 24 }, + { "id": 195, "y": 22 } + ], + "actions": [ + { "type": "move", "unit_id": 203, "x": 2, "y": 1 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 24 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 22 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 20 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 22 }, + { "type": "move", "unit_id": 198, "x": 21, "y": 22 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 20 } + ] + }, + "480": { + "objects": [ + { "id": 1, "hp": -4 }, + { "id": 197, "moveCooldown": 4 }, + { "id": 181, "y": 21 }, + { "id": 207, "y": 21 }, + { "id": 195, "y": 23 }, + { "id": 198, "y": 21 }, + { "id": 201, "y": 21 }, + { "id": 204, "y": 23 } + ], + "actions": [ + { "type": "move", "unit_id": 198, "x": 21, "y": 21 }, + { "type": "move", "unit_id": 207, "x": 24, "y": 21 }, + { "type": "move", "unit_id": 195, "x": 20, "y": 23 }, + { "type": "move", "unit_id": 201, "x": 22, "y": 21 }, + { "type": "attack", "unit_id": 197, "x": 0, "y": 0 }, + { "type": "move", "unit_id": 204, "x": 19, "y": 23 }, + { "type": "move", "unit_id": 181, "x": 23, "y": 21 } + ] + } + }, + "config": { + "gridSize": 25, + "seed": 1, + "idleIncome": 0, + "idleIncomeTimeOut": 0, + "resourceHp": 50, + "resourceIncome": 200, + "moneyObjIncome": 75, + "coreHp": 200, + "initialBalance": 200, + "wallHp": 50, + "wallBuildCost": 20, + "bombHp": 50, + "bombCountdown": 10, + "bombThrowCost": 50, + "bombReach": 3, + "bombDamage": 50, + "worldGenerator": "hardcoded", + "worldGeneratorConfig": { + "map": [ + " W ", + " WWW ", + " WWWWW ", + " WWWWWWW ", + " WWWW WWWW ", + " WWWW WWWW ", + " WWWW M WWWW ", + " WWW MMM WWW ", + " WWW MMMMM WWW ", + " WWW MMMMM ", + " WWW MMMMM ", + " WWW MMMMM ", + " WWW MMMMM ", + " WWW MMMMM ", + " WWW MMMMM ", + " WWW MMMMM ", + " WWW MMMMM WWW ", + " WWW MMM WWW ", + " WWWW M WWWW ", + " WWWW WWWW ", + " WWWW WWWW ", + " WWWWWWW ", + " WWWWW ", + " WWW ", + " W " + ] + }, + "units": [ + { + "name": "Warrior", + "cost": 150, + "hp": 35, + "baseMoveCooldown": 5, + "maxMoveCooldown": 20, + "balancePerCooldownStep": 30, + "damageCore": 12, + "damageUnit": 6, + "damageResource": 4, + "damageWall": 5, + "buildType": 0 + }, + { + "name": "Miner", + "cost": 100, + "hp": 20, + "baseMoveCooldown": 5, + "maxMoveCooldown": 10, + "balancePerCooldownStep": 100, + "damageCore": 5, + "damageUnit": 2, + "damageResource": 10, + "damageWall": 12, + "buildType": 0 + }, + { + "name": "Carrier", + "cost": 200, + "hp": 10, + "baseMoveCooldown": 0, + "maxMoveCooldown": 1, + "balancePerCooldownStep": 500, + "damageCore": 0, + "damageUnit": 0, + "damageResource": 0, + "damageWall": 3, + "buildType": 0 + } + ], + "corePositions": [{ "x": 0, "y": 0 }, { "x": 24, "y": 24 }] + }, + "full_tick_amount": 480 +} diff --git a/src/css/styles.css b/src/css/styles.css index 4943f73..f961b1c 100644 --- a/src/css/styles.css +++ b/src/css/styles.css @@ -1,6 +1,7 @@ @font-face { - font-family: 'JetBrains Mono'; - src: url('/assets/fonts/JetBrainsMonoNerdFontMono-Regular.ttf') format('truetype'); + font-family: "JetBrains Mono"; + src: url("/assets/fonts/JetBrainsMonoNerdFontMono-Regular.ttf") + format("truetype"); } :root { @@ -18,7 +19,7 @@ body { height: 100%; overflow: hidden; overscroll-behavior: none; - font-family: 'JetBrains Mono', monospace; + font-family: "JetBrains Mono", monospace; background-color: color-mix(in srgb, var(--core-purple) 20%, white); } @@ -144,7 +145,7 @@ body { height: auto; } -#time-controls input[type='range'] { +#time-controls input[type="range"] { -webkit-appearance: none; width: 6rem; height: 0.5rem; @@ -152,13 +153,13 @@ body { border-radius: 0.25rem; } -#time-controls input[type='range']::-webkit-slider-runnable-track { +#time-controls input[type="range"]::-webkit-slider-runnable-track { height: 100%; background: #a4a4a4; border-radius: 0.25rem; } -#time-controls input[type='range']::-webkit-slider-thumb { +#time-controls input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 1rem; height: 1rem; @@ -168,23 +169,23 @@ body { cursor: pointer; } -#time-controls input[type='range'] { +#time-controls input[type="range"] { -moz-appearance: none; } -#time-controls input[type='range']::-moz-range-track { +#time-controls input[type="range"]::-moz-range-track { height: 0.5rem; background: #ddd; border-radius: 0.25rem; } -#time-controls input[type='range']::-moz-range-progress { +#time-controls input[type="range"]::-moz-range-progress { background: var(--core-purple); height: 0.5rem; border-radius: 0.25rem; } -#time-controls input[type='range']::-moz-range-thumb { +#time-controls input[type="range"]::-moz-range-thumb { width: 1rem; height: 1rem; background: var(--core-purple); @@ -193,7 +194,7 @@ body { cursor: pointer; } -#time-controls input[type='number'] { +#time-controls input[type="number"] { width: 3rem; } @@ -221,7 +222,7 @@ body { #corner-bottom-left { bottom: 0; left: 0; - background-image: url('/assets/ui-svgs/github-logo.svg'); + background-image: url("/assets/ui-svgs/github-logo.svg"); clip-path: polygon(0 100%, 0 0, 100% 100%); background-position: 17% 83%; transform-origin: bottom left; @@ -230,7 +231,7 @@ body { #corner-top-right { top: 0; right: 0; - background-image: url('/assets/ui-svgs/core-logo.svg'); + background-image: url("/assets/ui-svgs/core-logo.svg"); clip-path: polygon(0 0, 100% 0, 100% 100%); background-position: 83% 17%; transform-origin: top right; diff --git a/src/ts/main.ts b/src/ts/main.ts index 67c6394..2350e55 100644 --- a/src/ts/main.ts +++ b/src/ts/main.ts @@ -1,31 +1,33 @@ -const svgCanvas = document.getElementById('svg-canvas') as HTMLElement; +const svgCanvas = document.getElementById("svg-canvas") as HTMLElement; -window.addEventListener('DOMContentLoaded', async () => { +window.addEventListener("DOMContentLoaded", async () => { // load url parameters - let replayFilePath = '/misc/replay_latest.json'; + let replayFilePath = "/misc/replay_latest.json"; const urlParams = new URLSearchParams(window.location.search); - if (urlParams.has('replay')) { - replayFilePath = urlParams.get('replay') || replayFilePath; + if (urlParams.has("replay")) { + replayFilePath = urlParams.get("replay") || replayFilePath; } - const speedParam = urlParams.get('speed'); + const speedParam = urlParams.get("speed"); if (speedParam) { const v = parseFloat(speedParam); - if (!Number.isNaN(v)) localStorage.setItem('tm.speed', String(v)); + if (!Number.isNaN(v)) localStorage.setItem("tm.speed", String(v)); } - const autoplayRaw = urlParams.getAll('autoplay'); + const autoplayRaw = urlParams.getAll("autoplay"); const autoplayList = autoplayRaw - .flatMap((s) => s.split(',')) + .flatMap((s) => s.split(",")) .map((s) => s.trim()) .filter(Boolean); // project imports - const { setupReplayLoader } = await import('./replay_loader/replayLoader.js'); - const { setupTimeManager, startPlayback, isAtEnd } = await import('./time_manager/timeManager.js'); - const { setupRenderer } = await import('./renderer/renderer.js'); + const { setupReplayLoader } = await import("./replay_loader/replayLoader.js"); + const { setupTimeManager, startPlayback, isAtEnd } = await import( + "./time_manager/timeManager.js" + ); + const { setupRenderer } = await import("./renderer/renderer.js"); // autoplay enabled @@ -61,10 +63,14 @@ window.addEventListener('DOMContentLoaded', async () => { // svg layout height renderer function updateSvgSize() { - const svgHeight = window.innerHeight - svgCanvas.getBoundingClientRect().top; - document.documentElement.style.setProperty('--svg-canvas-scale', `${svgHeight - 24}px`); + const svgHeight = + window.innerHeight - svgCanvas.getBoundingClientRect().top; + document.documentElement.style.setProperty( + "--svg-canvas-scale", + `${svgHeight - 24}px`, + ); } - window.addEventListener('resize', updateSvgSize); - window.addEventListener('load', updateSvgSize); + window.addEventListener("resize", updateSvgSize); + window.addEventListener("load", updateSvgSize); updateSvgSize(); }); diff --git a/src/ts/renderer/animationUtil.ts b/src/ts/renderer/animationUtil.ts index b92e863..f812471 100644 --- a/src/ts/renderer/animationUtil.ts +++ b/src/ts/renderer/animationUtil.ts @@ -12,8 +12,13 @@ abstract class TimingCurve { const a = pts[i], b = pts[i + 1]; if (t >= a.realTime && t <= b.realTime) { - const u = b.realTime === a.realTime ? 1 : (t - a.realTime) / (b.realTime - a.realTime); - return a.animationProgress + u * (b.animationProgress - a.animationProgress); + const u = + b.realTime === a.realTime + ? 1 + : (t - a.realTime) / (b.realTime - a.realTime); + return ( + a.animationProgress + u * (b.animationProgress - a.animationProgress) + ); } } return last.animationProgress; diff --git a/src/ts/renderer/fireworksRenderer.ts b/src/ts/renderer/fireworksRenderer.ts index 0c9f93e..852aaa2 100644 --- a/src/ts/renderer/fireworksRenderer.ts +++ b/src/ts/renderer/fireworksRenderer.ts @@ -9,7 +9,7 @@ function isWindowMinimized(): boolean { } function shouldRun(): boolean { - const visible = document.visibilityState === 'visible' && !document.hidden; + const visible = document.visibilityState === "visible" && !document.hidden; return visible && !isWindowMinimized() && renderFireworks; } @@ -17,7 +17,7 @@ function ensureFireworks(): void { if (fireworks) return; const globalFW = (window as any).Fireworks; const Ctor = globalFW?.default ?? globalFW; - const container = document.querySelector('.fireworks') as HTMLElement | null; + const container = document.querySelector(".fireworks") as HTMLElement | null; if (!Ctor || !container) return; fireworks = new Ctor(container, { autoresize: true, @@ -51,18 +51,18 @@ function applyActivity(): void { } } -document.addEventListener('visibilitychange', applyActivity); -window.addEventListener('focus', applyActivity); -window.addEventListener('blur', applyActivity); -window.addEventListener('resize', applyActivity); -window.addEventListener('pageshow', applyActivity); -window.addEventListener('load', applyActivity); -window.addEventListener('pagehide', () => { +document.addEventListener("visibilitychange", applyActivity); +window.addEventListener("focus", applyActivity); +window.addEventListener("blur", applyActivity); +window.addEventListener("resize", applyActivity); +window.addEventListener("pageshow", applyActivity); +window.addEventListener("load", applyActivity); +window.addEventListener("pagehide", () => { fireworks?.clear?.(); fireworks?.stop?.(); isActive = false; }); -window.addEventListener('beforeunload', () => { +window.addEventListener("beforeunload", () => { fireworks?.clear?.(); fireworks?.stop?.(); }); @@ -76,22 +76,22 @@ window.addEventListener('beforeunload', () => { setTimeout(loop, isActive ? fireworkDelay : 1500); })(); -type Mode = 'SWISS' | 'ELIMINATION' | 'QUEUE'; +type Mode = "SWISS" | "ELIMINATION" | "QUEUE"; function getFireworkStrengthFromUrlParameters(): number { const p = new URLSearchParams(window.location.search); - const mode = (p.get('mode') || 'QUEUE').toUpperCase() as Mode; - const round = Number(p.get('round')); - const maxRounds = Number(p.get('maxRounds')); - if (mode === 'QUEUE' || !mode) return 1; + const mode = (p.get("mode") || "QUEUE").toUpperCase() as Mode; + const round = Number(p.get("round")); + const maxRounds = Number(p.get("maxRounds")); + if (mode === "QUEUE" || !mode) return 1; fireworkDelay = 750; - if (mode === 'SWISS') return 2; + if (mode === "SWISS") return 2; fireworkDelay = 250; - if (mode === 'ELIMINATION' && round >= maxRounds - 1) return 30; + if (mode === "ELIMINATION" && round >= maxRounds - 1) return 30; fireworkDelay = 500; - if (mode === 'ELIMINATION' && round >= maxRounds - 3) return 5; + if (mode === "ELIMINATION" && round >= maxRounds - 3) return 5; fireworkDelay = 625; - if (mode === 'ELIMINATION') return 3; + if (mode === "ELIMINATION") return 3; fireworkDelay = 2000; return 1; } diff --git a/src/ts/renderer/objectRenderer.ts b/src/ts/renderer/objectRenderer.ts index 9774675..01408c1 100644 --- a/src/ts/renderer/objectRenderer.ts +++ b/src/ts/renderer/objectRenderer.ts @@ -1,22 +1,29 @@ -import { getBarMetrics, type TickObject } from '../replay_loader/object'; -import { getActionsByExecutor, getNameOfUnitType, getStateAt } from '../replay_loader/replayLoader'; -import type { tickData } from '../time_manager/timeManager'; -import { EaseInOutTimingCurve, MidTickIncreaseTimingCurve } from './animationUtil.js'; - -const svgNS = 'http://www.w3.org/2000/svg'; -const xlinkNS = 'http://www.w3.org/1999/xlink'; +import { getBarMetrics, type TickObject } from "../replay_loader/object"; +import { + getActionsByExecutor, + getNameOfUnitType, + getStateAt, +} from "../replay_loader/replayLoader"; +import type { tickData } from "../time_manager/timeManager"; +import { + EaseInOutTimingCurve, + MidTickIncreaseTimingCurve, +} from "./animationUtil.js"; + +const svgNS = "http://www.w3.org/2000/svg"; +const xlinkNS = "http://www.w3.org/1999/xlink"; export type AssetTeam = 0 | 1; const svgAssets = { 0: { - 0: 'cores/1.svg', - 1: 'cores/2.svg', + 0: "cores/1.svg", + 1: "cores/2.svg", }, 1: {}, - 2: 'resource.svg', - 3: 'wall.svg', - 4: 'money.svg', - 5: 'core.svg', + 2: "resource.svg", + 3: "wall.svg", + 4: "money.svg", + 5: "core.svg", } as const; // metric bar interpolator @@ -31,9 +38,18 @@ type BarDrawingInstructions = { key: string; }; -function computeSmoothBarInstructions(curr: TickObject, next: TickObject | null | undefined, xOffset: number, yOffset: number, progress: number): BarDrawingInstructions[] { - const ORDER = ['hp', 'balance', 'moveCooldown'] as const; - const toMap = (arr: { key: string; percentage: number }[]) => Object.fromEntries(arr.map(({ key, percentage }) => [key, percentage / 100])); +function computeSmoothBarInstructions( + curr: TickObject, + next: TickObject | null | undefined, + xOffset: number, + yOffset: number, + progress: number, +): BarDrawingInstructions[] { + const ORDER = ["hp", "balance", "moveCooldown"] as const; + const toMap = (arr: { key: string; percentage: number }[]) => + Object.fromEntries( + arr.map(({ key, percentage }) => [key, percentage / 100]), + ); const currList = getBarMetrics(curr); const nextList = next ? getBarMetrics(next) : currList; const currMap = toMap(currList); @@ -108,26 +124,41 @@ function getTeamIndex(teamId: number | undefined): AssetTeam { // object -function drawObject(svgCanvas: SVGSVGElement, obj: TickObject, xOffset: number = 0, yOffset: number = 0, scaleFactor: number = 1, metricBars: BarDrawingInstructions[]): void { +function drawObject( + svgCanvas: SVGSVGElement, + obj: TickObject, + xOffset: number = 0, + yOffset: number = 0, + scaleFactor: number = 1, + metricBars: BarDrawingInstructions[], +): void { for (const bar of metricBars) { - const color = bar.key === 'hp' ? 'var(--hp-color)' : bar.key === 'balance' ? 'var(--balance-color)' : 'var(--cooldown-color)'; - - const bg = document.createElementNS(svgNS, 'rect'); - bg.setAttribute('x', xOffset.toString()); - bg.setAttribute('y', bar.topBorder.toString()); - bg.setAttribute('width', '1'); - bg.setAttribute('height', String(bar.bottomBorder - bar.topBorder)); - bg.setAttribute('fill', color); - bg.setAttribute('fill-opacity', String(0.3 * scaleFactor)); + const color = + bar.key === "hp" + ? "var(--hp-color)" + : bar.key === "balance" + ? "var(--balance-color)" + : "var(--cooldown-color)"; + + const bg = document.createElementNS(svgNS, "rect"); + bg.setAttribute("x", xOffset.toString()); + bg.setAttribute("y", bar.topBorder.toString()); + bg.setAttribute("width", "1"); + bg.setAttribute("height", String(bar.bottomBorder - bar.topBorder)); + bg.setAttribute("fill", color); + bg.setAttribute("fill-opacity", String(0.3 * scaleFactor)); svgCanvas.appendChild(bg); - const fg = document.createElementNS(svgNS, 'rect'); - fg.setAttribute('x', bar.leftBorder.toString()); - fg.setAttribute('y', bar.topBorder.toString()); - fg.setAttribute('width', String(Math.max(0, bar.rightBorder - bar.leftBorder))); - fg.setAttribute('height', String(bar.bottomBorder - bar.topBorder)); - fg.setAttribute('fill', color); - fg.setAttribute('fill-opacity', String(0.7 * scaleFactor)); + const fg = document.createElementNS(svgNS, "rect"); + fg.setAttribute("x", bar.leftBorder.toString()); + fg.setAttribute("y", bar.topBorder.toString()); + fg.setAttribute( + "width", + String(Math.max(0, bar.rightBorder - bar.leftBorder)), + ); + fg.setAttribute("height", String(bar.bottomBorder - bar.topBorder)); + fg.setAttribute("fill", color); + fg.setAttribute("fill-opacity", String(0.7 * scaleFactor)); svgCanvas.appendChild(fg); } @@ -163,19 +194,21 @@ function drawObject(svgCanvas: SVGSVGElement, obj: TickObject, xOffset: number = } } - let img = document.querySelector(`image[data-obj-id="${obj.id}"]`) as SVGImageElement | null; + let img = document.querySelector( + `image[data-obj-id="${obj.id}"]`, + ) as SVGImageElement | null; if (!img) { - img = document.createElementNS(svgNS, 'image'); - img.setAttribute('data-obj-id', obj.id.toString()); + img = document.createElementNS(svgNS, "image"); + img.setAttribute("data-obj-id", obj.id.toString()); } - img.classList.remove('not-touched'); - img.classList.remove('team-0', 'team-1'); + img.classList.remove("not-touched"); + img.classList.remove("team-0", "team-1"); if (obj.type === 0 || obj.type === 1) { img.classList.add(`team-${getTeamIndex(obj.teamId)}`); } - img.setAttributeNS(xlinkNS, 'href', `/assets/object-svgs/${path}`); + img.setAttributeNS(xlinkNS, "href", `/assets/object-svgs/${path}`); let scale = 0.8; if (obj.type === 2) { @@ -186,15 +219,22 @@ function drawObject(svgCanvas: SVGSVGElement, obj: TickObject, xOffset: number = scale = 0.6; // Money } const offset = (1 - scale * scaleFactor) / 2; - img.removeAttribute('x'); - img.removeAttribute('y'); - img.setAttribute('width', '1'); - img.setAttribute('height', '1'); - img.setAttribute('transform', `translate(${xOffset + offset},${yOffset + offset}) scale(${scale * scaleFactor})`); + img.removeAttribute("x"); + img.removeAttribute("y"); + img.setAttribute("width", "1"); + img.setAttribute("height", "1"); + img.setAttribute( + "transform", + `translate(${xOffset + offset},${yOffset + offset}) scale(${scale * scaleFactor})`, + ); svgCanvas.appendChild(img); } -export function calcAndDrawObject(currObj: TickObject, svgCanvas: SVGSVGElement, currentTickData: tickData): void { +export function calcAndDrawObject( + currObj: TickObject, + svgCanvas: SVGSVGElement, + currentTickData: tickData, +): void { const actionsByExec = getActionsByExecutor(currentTickData.tick + 1); let scale = 1; @@ -203,20 +243,29 @@ export function calcAndDrawObject(currObj: TickObject, svgCanvas: SVGSVGElement, let prevObj = null; try { - if (currentTickData.tick - 1 >= 0) prevObj = getStateAt(currentTickData.tick - 1)?.objects.find((o) => o.id === currObj.id); + if (currentTickData.tick - 1 >= 0) + prevObj = getStateAt(currentTickData.tick - 1)?.objects.find( + (o) => o.id === currObj.id, + ); } catch {} let nextObj = null; try { - nextObj = getStateAt(currentTickData.tick + 1)?.objects.find((o) => o.id === currObj.id); + nextObj = getStateAt(currentTickData.tick + 1)?.objects.find( + (o) => o.id === currObj.id, + ); } catch {} - const easeInOutProgress = new EaseInOutTimingCurve().getValue(currentTickData.tickProgress); - const midTickIncreaseProgress = new MidTickIncreaseTimingCurve().getValue(currentTickData.tickProgress); + const easeInOutProgress = new EaseInOutTimingCurve().getValue( + currentTickData.tickProgress, + ); + const midTickIncreaseProgress = new MidTickIncreaseTimingCurve().getValue( + currentTickData.tickProgress, + ); - if (!prevObj || prevObj.state === 'dead') { + if (!prevObj || prevObj.state === "dead") { scale = easeInOutProgress; } - if (!nextObj || nextObj.state === 'dead') { + if (!nextObj || nextObj.state === "dead") { scale = 1 - midTickIncreaseProgress; } // check movement @@ -229,11 +278,16 @@ export function calcAndDrawObject(currObj: TickObject, svgCanvas: SVGSVGElement, if (currObj.type === 1) { const actions = actionsByExec[currObj.id] || []; for (const action of actions) { - if (action.type === 'attack' || action.type === 'build' || action.type === 'transfer_money') { + if ( + action.type === "attack" || + action.type === "build" || + action.type === "transfer_money" + ) { const deltaX = action.x - currObj.x; const deltaY = action.y - currObj.y; - const halfActionTickProgress = easeInOutProgress > 0.5 ? 1 - easeInOutProgress : easeInOutProgress; + const halfActionTickProgress = + easeInOutProgress > 0.5 ? 1 - easeInOutProgress : easeInOutProgress; let offsetX = deltaX * halfActionTickProgress; let offsetY = deltaY * halfActionTickProgress; @@ -247,7 +301,13 @@ export function calcAndDrawObject(currObj: TickObject, svgCanvas: SVGSVGElement, } } - let metricBars: BarDrawingInstructions[] = computeSmoothBarInstructions(currObj, nextObj, x, y, new MidTickIncreaseTimingCurve().getValue(currentTickData.tickProgress)); + let metricBars: BarDrawingInstructions[] = computeSmoothBarInstructions( + currObj, + nextObj, + x, + y, + new MidTickIncreaseTimingCurve().getValue(currentTickData.tickProgress), + ); drawObject(svgCanvas, currObj, x, y, scale, metricBars); } diff --git a/src/ts/renderer/renderer.ts b/src/ts/renderer/renderer.ts index 32d178a..64d9065 100644 --- a/src/ts/renderer/renderer.ts +++ b/src/ts/renderer/renderer.ts @@ -1,19 +1,27 @@ -import type { GameConfig } from '../replay_loader/config'; -import { formatObjectData, type TickObject } from '../replay_loader/object'; -import { getGameConfig, getGameMisc, getStateAt } from '../replay_loader/replayLoader'; -import { getCurrentTickData, isDirty } from '../time_manager/timeManager'; -import { calcAndDrawObject, initializeTeamMapping } from './objectRenderer'; - -const svgNS = 'http://www.w3.org/2000/svg'; - -const svgCanvasElement = document.getElementById('svg-canvas'); +import type { GameConfig } from "../replay_loader/config"; +import { formatObjectData, type TickObject } from "../replay_loader/object"; +import { + getGameConfig, + getGameMisc, + getStateAt, +} from "../replay_loader/replayLoader"; +import { getCurrentTickData, isDirty } from "../time_manager/timeManager"; +import { calcAndDrawObject, initializeTeamMapping } from "./objectRenderer"; + +const svgNS = "http://www.w3.org/2000/svg"; + +const svgCanvasElement = document.getElementById("svg-canvas"); if (!svgCanvasElement || !(svgCanvasElement instanceof SVGSVGElement)) { - throw new Error('SVG canvas element not found or is not an SVG element'); + throw new Error("SVG canvas element not found or is not an SVG element"); } const svgCanvas = svgCanvasElement as SVGSVGElement; -const tooltipElement = document.getElementById('tooltip') as HTMLDivElement; -const teamOneElement = document.getElementById('team-one-name') as HTMLDivElement; -const teamTwoElement = document.getElementById('team-two-name') as HTMLDivElement; +const tooltipElement = document.getElementById("tooltip") as HTMLDivElement; +const teamOneElement = document.getElementById( + "team-one-name", +) as HTMLDivElement; +const teamTwoElement = document.getElementById( + "team-two-name", +) as HTMLDivElement; let gameConfig: GameConfig | undefined; @@ -45,26 +53,26 @@ function drawFrame(timestamp: number): void { const currentTickData = getCurrentTickData(); const replayData = getStateAt(currentTickData.tick); if (!replayData) { - console.warn('No replay data available for the current tick.'); + console.warn("No replay data available for the current tick."); window.requestAnimationFrame(drawFrame); return; } - const nonPersistentElements = svgCanvas.querySelectorAll(':not(.persistent)'); + const nonPersistentElements = svgCanvas.querySelectorAll(":not(.persistent)"); for (const element of nonPersistentElements) { - element.classList.add('not-touched'); + element.classList.add("not-touched"); } for (const currObj of replayData.objects) { calcAndDrawObject(currObj, svgCanvas, currentTickData); } - if (tooltipElement.style.display === 'block' && lastSVGPoint) { + if (tooltipElement.style.display === "block" && lastSVGPoint) { refreshTooltipFromSVGPoint(lastSVGPoint, lastClientX, lastClientY); } - for (const element of svgCanvas.querySelectorAll('.not-touched')) { + for (const element of svgCanvas.querySelectorAll(".not-touched")) { element.remove(); } @@ -75,18 +83,24 @@ let lastSVGPoint: DOMPoint | null = null; let lastClientX = 0; let lastClientY = 0; -function refreshTooltipFromSVGPoint(svgP: DOMPoint, clientX: number, clientY: number): void { +function refreshTooltipFromSVGPoint( + svgP: DOMPoint, + clientX: number, + clientY: number, +): void { const tx = Math.floor(svgP.x); const ty = Math.floor(svgP.y); const currentObjects = getStateAt(getCurrentTickData().tick)?.objects || []; const obj = currentObjects.find((o: TickObject) => o.x === tx && o.y === ty); const offsetX = 10; - const offsetY = clientY > window.innerHeight / 2 ? -tooltipElement.offsetHeight - 10 : 10; + const offsetY = + clientY > window.innerHeight / 2 ? -tooltipElement.offsetHeight - 10 : 10; tooltipElement.style.left = `${clientX + offsetX}px`; tooltipElement.style.top = `${clientY + offsetY}px`; - tooltipElement.style.borderRadius = clientY > window.innerHeight / 2 ? '15px 15px 15px 0' : '0 15px 15px 15px'; - tooltipElement.style.display = 'block'; + tooltipElement.style.borderRadius = + clientY > window.innerHeight / 2 ? "15px 15px 15px 0" : "0 15px 15px 15px"; + tooltipElement.style.display = "block"; if (obj) { tooltipElement.innerHTML = formatObjectData(obj); } else { @@ -96,51 +110,55 @@ function refreshTooltipFromSVGPoint(svgP: DOMPoint, clientX: number, clientY: nu export async function setupRenderer(): Promise { gameConfig = getGameConfig(); if (!gameConfig) { - throw new Error('Game configuration not found. Cannot set up renderer.'); + throw new Error("Game configuration not found. Cannot set up renderer."); } if (!(svgCanvas as any).dataset.renderLoopStarted) { scheduleNextFrame(); - (svgCanvas as any).dataset.renderLoopStarted = '1'; + (svgCanvas as any).dataset.renderLoopStarted = "1"; } - teamOneElement.textContent = ''; - teamTwoElement.textContent = ''; + teamOneElement.textContent = ""; + teamTwoElement.textContent = ""; if ((getStateAt(0)?.objects ?? []).some((o) => o.type === 0)) { for (const team of getGameMisc()?.team_results ?? []) { for (const obj of getStateAt(0)?.objects ?? []) { if (obj.type === 0 && obj.teamId === team.id) { - if (obj.x === 0) teamOneElement.textContent = `${team.name}(${team.id})`; - else if (obj.x === gameConfig.gridSize - 1) teamTwoElement.textContent = `${team.name}(${team.id})`; + if (obj.x === 0) + teamOneElement.textContent = `${team.name}(${team.id})`; + else if (obj.x === gameConfig.gridSize - 1) + teamTwoElement.textContent = `${team.name}(${team.id})`; } } } } else { const misc = getGameMisc(); - if (misc?.team_results?.[0]) teamOneElement.textContent = `${misc.team_results[0].name}(${misc.team_results[0].id})`; - if (misc?.team_results?.[1]) teamTwoElement.textContent = `${misc.team_results[1].name}(${misc.team_results[1].id})`; + if (misc?.team_results?.[0]) + teamOneElement.textContent = `${misc.team_results[0].name}(${misc.team_results[0].id})`; + if (misc?.team_results?.[1]) + teamTwoElement.textContent = `${misc.team_results[1].name}(${misc.team_results[1].id})`; } - svgCanvas.querySelectorAll('.persistent').forEach((el) => el.remove()); - svgCanvas.querySelectorAll(':not(.persistent)').forEach((el) => el.remove()); + svgCanvas.querySelectorAll(".persistent").forEach((el) => el.remove()); + svgCanvas.querySelectorAll(":not(.persistent)").forEach((el) => el.remove()); const gridSize = gameConfig.gridSize; - svgCanvas.setAttribute('width', gridSize.toString()); - svgCanvas.setAttribute('height', gridSize.toString()); - svgCanvas.setAttribute('viewBox', `0 0 ${gridSize} ${gridSize}`); + svgCanvas.setAttribute("width", gridSize.toString()); + svgCanvas.setAttribute("height", gridSize.toString()); + svgCanvas.setAttribute("viewBox", `0 0 ${gridSize} ${gridSize}`); for (let y = 0; y < gridSize; y++) { for (let x = 0; x < gridSize; x++) { - const rect = document.createElementNS(svgNS, 'rect'); - rect.setAttribute('class', 'persistent'); - rect.setAttribute('x', x.toString()); - rect.setAttribute('y', y.toString()); - rect.setAttribute('width', '1'); - rect.setAttribute('height', '1'); - rect.setAttribute('fill', '#f7f7f7'); - rect.setAttribute('stroke', 'black'); - rect.setAttribute('stroke-width', '0.01'); + const rect = document.createElementNS(svgNS, "rect"); + rect.setAttribute("class", "persistent"); + rect.setAttribute("x", x.toString()); + rect.setAttribute("y", y.toString()); + rect.setAttribute("width", "1"); + rect.setAttribute("height", "1"); + rect.setAttribute("fill", "#f7f7f7"); + rect.setAttribute("stroke", "black"); + rect.setAttribute("stroke-width", "0.01"); svgCanvas.appendChild(rect); } } @@ -148,13 +166,13 @@ export async function setupRenderer(): Promise { initializeTeamMapping(); if (!(svgCanvas as any).dataset.listenersBound) { - svgCanvas.addEventListener('mousemove', (e) => { + svgCanvas.addEventListener("mousemove", (e) => { const pt = svgCanvas.createSVGPoint(); pt.x = e.clientX; pt.y = e.clientY; const ctm = svgCanvas.getScreenCTM(); if (!ctm) { - tooltipElement.style.display = 'none'; + tooltipElement.style.display = "none"; return; } const svgP = pt.matrixTransform(ctm.inverse()); @@ -165,15 +183,20 @@ export async function setupRenderer(): Promise { }); const hideIfOutside = (e: MouseEvent) => { const rect = svgCanvas.getBoundingClientRect(); - if (e.clientX < rect.left || e.clientX > rect.right || e.clientY < rect.top || e.clientY > rect.bottom) { - tooltipElement.style.display = 'none'; + if ( + e.clientX < rect.left || + e.clientX > rect.right || + e.clientY < rect.top || + e.clientY > rect.bottom + ) { + tooltipElement.style.display = "none"; } }; - document.addEventListener('mousemove', hideIfOutside); - window.addEventListener('blur', () => { - tooltipElement.style.display = 'none'; + document.addEventListener("mousemove", hideIfOutside); + window.addEventListener("blur", () => { + tooltipElement.style.display = "none"; }); - (svgCanvas as any).dataset.listenersBound = '1'; + (svgCanvas as any).dataset.listenersBound = "1"; } isInitialRender = true; diff --git a/src/ts/replay_loader/action.ts b/src/ts/replay_loader/action.ts index 4de4d41..7554a54 100644 --- a/src/ts/replay_loader/action.ts +++ b/src/ts/replay_loader/action.ts @@ -2,33 +2,38 @@ export interface BaseAction { type: string; } export interface MoveAction extends BaseAction { - type: 'move'; + type: "move"; unit_id: number; x: number; y: number; } export interface TransferMoneyAction extends BaseAction { - type: 'transfer_money'; + type: "transfer_money"; source_id: number; x: number; y: number; amount: number; } export interface BuildAction extends BaseAction { - type: 'build'; + type: "build"; unit_id: number; x: number; y: number; } export interface CreateAction extends BaseAction { - type: 'create'; + type: "create"; unit_type: number; } export interface AttackAction extends BaseAction { - type: 'attack'; + type: "attack"; unit_id: number; x: number; y: number; dmg: number; } -export type TickAction = MoveAction | TransferMoneyAction | BuildAction | CreateAction | AttackAction; +export type TickAction = + | MoveAction + | TransferMoneyAction + | BuildAction + | CreateAction + | AttackAction; diff --git a/src/ts/replay_loader/object.ts b/src/ts/replay_loader/object.ts index 1987f25..1897f9d 100644 --- a/src/ts/replay_loader/object.ts +++ b/src/ts/replay_loader/object.ts @@ -1,4 +1,4 @@ -import { getGameConfig } from './replayLoader'; +import { getGameConfig } from "./replayLoader"; export interface BaseObject { id: number; @@ -35,41 +35,87 @@ export interface BombObject extends BaseObject { type: 5; // Bomb countdown: number; } -export type TickObject = CoreObject | UnitObject | ResourceObject | WallObject | MoneyObject | BombObject; +export type TickObject = + | CoreObject + | UnitObject + | ResourceObject + | WallObject + | MoneyObject + | BombObject; const objectTypeNames = { - 0: 'Core', - 1: 'Unit', - 2: 'Resource', - 3: 'Wall', - 4: 'Money', - 5: 'Bomb', + 0: "Core", + 1: "Unit", + 2: "Resource", + 3: "Wall", + 4: "Money", + 5: "Bomb", }; export function formatObjectData(obj: TickObject): string { const lines: { line: string; priority: number; color: string }[] = []; - lines.push({ line: `❤️ HP: ${obj.hp}`, priority: 0, color: 'var(--hp-color)' }); - lines.push({ line: `❓ Object Type: ${objectTypeNames[obj.type] || 'Unknown'}`, priority: 4, color: 'black' }); - lines.push({ line: `#️⃣ ID: ${obj.id}`, priority: 5, color: 'black' }); - lines.push({ line: `📍 Position: [${obj.x}, ${obj.y}]`, priority: 6, color: 'black' }); + lines.push({ + line: `❤️ HP: ${obj.hp}`, + priority: 0, + color: "var(--hp-color)", + }); + lines.push({ + line: `❓ Object Type: ${objectTypeNames[obj.type] || "Unknown"}`, + priority: 4, + color: "black", + }); + lines.push({ line: `#️⃣ ID: ${obj.id}`, priority: 5, color: "black" }); + lines.push({ + line: `📍 Position: [${obj.x}, ${obj.y}]`, + priority: 6, + color: "black", + }); switch (obj.type) { case 0: - lines.push({ line: `🏁 Team ID: ${obj.teamId}`, priority: 5, color: 'black' }); - lines.push({ line: `💰 Balance: ${obj.balance}`, priority: 1, color: 'var(--balance-color)' }); + lines.push({ + line: `🏁 Team ID: ${obj.teamId}`, + priority: 5, + color: "black", + }); + lines.push({ + line: `💰 Balance: ${obj.balance}`, + priority: 1, + color: "var(--balance-color)", + }); break; case 1: - lines.push({ line: `🏁 Team ID: ${obj.teamId}`, priority: 5, color: 'black' }); - lines.push({ line: `💰 Balance: ${obj.balance}`, priority: 1, color: 'var(--balance-color)' }); - lines.push({ line: `🔢 Move Cooldown: ${obj.moveCooldown}`, priority: 2, color: 'var(--cooldown-color)' }); + lines.push({ + line: `🏁 Team ID: ${obj.teamId}`, + priority: 5, + color: "black", + }); + lines.push({ + line: `💰 Balance: ${obj.balance}`, + priority: 1, + color: "var(--balance-color)", + }); + lines.push({ + line: `🔢 Move Cooldown: ${obj.moveCooldown}`, + priority: 2, + color: "var(--cooldown-color)", + }); break; case 4: case 2: - lines.push({ line: `💰 Balance: ${obj.balance}`, priority: 1, color: 'var(--balance-color)' }); + lines.push({ + line: `💰 Balance: ${obj.balance}`, + priority: 1, + color: "var(--balance-color)", + }); break; case 5: - lines.push({ line: `💣 Explosion Countdown: ${obj.countdown}`, priority: -1, color: 'black' }); + lines.push({ + line: `💣 Explosion Countdown: ${obj.countdown}`, + priority: -1, + color: "black", + }); break; } @@ -79,16 +125,18 @@ export function formatObjectData(obj: TickObject): string { let prevPriority = -Infinity; for (const { line, priority, color } of lines) { if (prevPriority <= 2 && priority >= 3) { - result.push(''); + result.push(""); } result.push(`${line}`); prevPriority = priority; } - return result.join('
'); + return result.join("
"); } -export function getBarMetrics(obj: TickObject): { key: string; percentage: number }[] { +export function getBarMetrics( + obj: TickObject, +): { key: string; percentage: number }[] { const metrics: { key: string; percentage: number }[] = []; // HP @@ -113,7 +161,7 @@ export function getBarMetrics(obj: TickObject): { key: string; percentage: numbe } if (obj.hp < maxHP && maxHP !== -1) { metrics.push({ - key: 'hp', + key: "hp", percentage: (obj.hp / maxHP) * 100, }); } @@ -126,7 +174,7 @@ export function getBarMetrics(obj: TickObject): { key: string; percentage: numbe maxBalance = obj.balance; } metrics.push({ - key: 'balance', + key: "balance", percentage: (obj.balance / maxBalance) * 100, }); } @@ -138,11 +186,12 @@ export function getBarMetrics(obj: TickObject): { key: string; percentage: numbe const u = cfg.units[obj.unit_type]; const step = Math.max(1, u.balancePerCooldownStep); let calc = u.baseMoveCooldown + Math.floor(obj.balance / step); - if (u.maxMoveCooldown > 0 && calc > u.maxMoveCooldown) calc = u.maxMoveCooldown; + if (u.maxMoveCooldown > 0 && calc > u.maxMoveCooldown) + calc = u.maxMoveCooldown; calc = Math.max(1, calc); const denom = Math.max(calc, obj.moveCooldown); metrics.push({ - key: 'moveCooldown', + key: "moveCooldown", percentage: (obj.moveCooldown / denom) * 100, }); } diff --git a/src/ts/replay_loader/replayLoader.ts b/src/ts/replay_loader/replayLoader.ts index 9c80723..31a08da 100644 --- a/src/ts/replay_loader/replayLoader.ts +++ b/src/ts/replay_loader/replayLoader.ts @@ -1,21 +1,25 @@ -import { setupRenderer } from '../renderer/renderer'; -import { resetTimeManager } from '../time_manager/timeManager'; -import type { TickAction } from './action'; -import type { GameConfig } from './config'; -import type { TickObject } from './object'; - -const expectedReplayVersion = '1.1.1'; -const winnerNameElement = document.getElementById('winnername') as HTMLSpanElement; -const winReasonElement = document.getElementById('winreason') as HTMLSpanElement; +import { setupRenderer } from "../renderer/renderer"; +import { resetTimeManager } from "../time_manager/timeManager"; +import type { TickAction } from "./action"; +import type { GameConfig } from "./config"; +import type { TickObject } from "./object"; + +const expectedReplayVersion = "1.1.1"; +const winnerNameElement = document.getElementById( + "winnername", +) as HTMLSpanElement; +const winReasonElement = document.getElementById( + "winreason", +) as HTMLSpanElement; const deathReasons: Record = { - 0: 'Survived', - 1: 'Core destruction', - 2: 'Unexpectedly Disconnected', - 3: 'Did not connect to gameserver', - 4: 'Timeout while sending data', - 5: 'Game timed out - Decision via Core HP', - 6: 'Game timed out - Decision via Unit HP', - 7: 'Game timed out - Random Decision', + 0: "Survived", + 1: "Core destruction", + 2: "Unexpectedly Disconnected", + 3: "Did not connect to gameserver", + 4: "Timeout while sending data", + 5: "Game timed out - Decision via Core HP", + 6: "Game timed out - Decision via Unit HP", + 7: "Game timed out - Random Decision", }; export interface ReplayTick { @@ -25,7 +29,12 @@ export interface ReplayTick { export interface ReplayData { misc: { - team_results: { id: number; name: string; place: number; death_reason: number }[]; + team_results: { + id: number; + name: string; + place: number; + death_reason: number; + }[]; version: string; worldGeneratorSeed: number; }; @@ -36,7 +45,7 @@ export interface ReplayData { const emptyReplayData: ReplayData = { misc: { team_results: [], - version: '', + version: "", worldGeneratorSeed: 0, }, ticks: {}, @@ -45,7 +54,12 @@ const emptyReplayData: ReplayData = { type State = Record; type ReplayMisc = { - team_results: { id: number; name: string; place: number; death_reason: number }[]; + team_results: { + id: number; + name: string; + place: number; + death_reason: number; + }[]; }; export let totalReplayTicks = 0; @@ -58,8 +72,8 @@ function deepClone(obj: T): T { function forceHttps(url: string): string { const u = new URL(url, location.href); - if (location.protocol === 'https:' && u.protocol !== 'https:') { - u.protocol = 'https:'; + if (location.protocol === "https:" && u.protocol !== "https:") { + u.protocol = "https:"; } return u.toString(); } @@ -76,10 +90,12 @@ class ReplayLoader { public async loadReplay(filePath: string): Promise { let fileData: string | null = replayDataOverride; if (!fileData) { - await fetch(forceHttps(filePath), { cache: 'no-cache' }) + await fetch(forceHttps(filePath), { cache: "no-cache" }) .then((response) => { if (!response.ok) { - throw new Error(`Failed to fetch replay file: ${response.statusText}`); + throw new Error( + `Failed to fetch replay file: ${response.statusText}`, + ); } return response.text(); }) @@ -87,26 +103,37 @@ class ReplayLoader { fileData = data; }) .catch((err) => { - console.error('Error fetching replay file:', err); + console.error("Error fetching replay file:", err); }); } if (!fileData) { - throw new Error('No replay data available to load.'); + throw new Error("No replay data available to load."); } this.replayData = JSON.parse(fileData) as ReplayData; - if (!this.replayData.ticks || typeof this.replayData.full_tick_amount !== 'number') { - throw new Error('Invalid replay data format: missing ticks or full_tick_amount'); + if ( + !this.replayData.ticks || + typeof this.replayData.full_tick_amount !== "number" + ) { + throw new Error( + "Invalid replay data format: missing ticks or full_tick_amount", + ); } if (this.replayData.misc.version !== expectedReplayVersion) { - alert('Unsupported replay version. Things might stop working unexpectedly.'); - console.error(`Expected version: ${expectedReplayVersion}, but got: ${this.replayData.misc.version}`); + alert( + "Unsupported replay version. Things might stop working unexpectedly.", + ); + console.error( + `Expected version: ${expectedReplayVersion}, but got: ${this.replayData.misc.version}`, + ); } totalReplayTicks = this.replayData.full_tick_amount; - winnerNameElement.innerHTML = this.replayData.misc.team_results.find((team) => team.place === 0)?.name || 'Unknown'; - winReasonElement.innerHTML = ''; + winnerNameElement.innerHTML = + this.replayData.misc.team_results.find((team) => team.place === 0) + ?.name || "Unknown"; + winReasonElement.innerHTML = ""; for (const team of this.replayData.misc.team_results) { if (team.place === 0) continue; const teamName = team.name || `Team ${team.id}`; @@ -114,7 +141,7 @@ class ReplayLoader { } const fullState: State = {}; - const tick0 = this.replayData.ticks['0']; + const tick0 = this.replayData.ticks["0"]; if (tick0?.objects) { for (const obj of tick0.objects) { fullState[obj.id] = deepClone(obj); @@ -128,13 +155,15 @@ class ReplayLoader { this.applyDiff(fullState, tickData); } for (const obj of Object.values(fullState)) { - if ('moveCooldown' in obj && obj.moveCooldown > 0) obj.moveCooldown--; + if ("moveCooldown" in obj && obj.moveCooldown > 0) obj.moveCooldown--; } if (t % this.cacheInterval === 0) { this.cache.set(t, deepClone(fullState)); } } - console.log(`💫 Replay loaded successfully! ✨ (${this.replayData.misc.team_results[0].name} 🤜 vs 🤛 ${this.replayData.misc.team_results[1].name} for ${totalReplayTicks} ticks)`); + console.log( + `💫 Replay loaded successfully! ✨ (${this.replayData.misc.team_results[0].name} 🤜 vs 🤛 ${this.replayData.misc.team_results[1].name} for ${totalReplayTicks} ticks)`, + ); } private applyDiff(state: State, tickData: ReplayTick): void { @@ -142,7 +171,7 @@ class ReplayLoader { const id = diffObj.id; if (state[id]) { Object.assign(state[id], diffObj); - if (diffObj.state === 'dead') { + if (diffObj.state === "dead") { delete state[id]; } } else { @@ -153,7 +182,7 @@ class ReplayLoader { public getStateAt(tick: number): ReplayTick { if (tick < 0 || tick > totalReplayTicks) { - throw new Error('Tick out of range'); + throw new Error("Tick out of range"); } if (tick === totalReplayTicks) { return { objects: [], actions: [] }; // empty state for ending animation @@ -166,11 +195,11 @@ class ReplayLoader { } } if (snapshotTick === -1) { - throw new Error('No snapshot found'); + throw new Error("No snapshot found"); } const cachedState = this.cache.get(snapshotTick); if (!cachedState) { - throw new Error('Cached state not found'); + throw new Error("Cached state not found"); } const state: State = deepClone(cachedState); for (let t = snapshotTick + 1; t <= tick; t++) { @@ -179,7 +208,7 @@ class ReplayLoader { this.applyDiff(state, tickData); } for (const obj of Object.values(state)) { - if (!('moveCooldown' in obj)) { + if (!("moveCooldown" in obj)) { continue; } if (obj.moveCooldown > 0) { @@ -189,7 +218,9 @@ class ReplayLoader { } const resultTickData = this.replayData.ticks[tick.toString()]; - const actions: TickAction[] = resultTickData?.actions ? deepClone(resultTickData.actions) : []; + const actions: TickAction[] = resultTickData?.actions + ? deepClone(resultTickData.actions) + : []; return { objects: Object.values(state), actions } as ReplayTick; } @@ -198,14 +229,19 @@ class ReplayLoader { const tickActions = this.replayData.ticks[tick]?.actions ?? []; return tickActions.reduce( (map, action) => { - const exec = 'unit_id' in action ? action.unit_id : 'source_id' in action ? action.source_id : undefined; + const exec = + "unit_id" in action + ? action.unit_id + : "source_id" in action + ? action.source_id + : undefined; if (exec !== undefined) { if (!map[exec]) map[exec] = []; map[exec].push(action); } return map; }, - {} as Record + {} as Record, ); } @@ -229,9 +265,9 @@ let currentFilePath: string | null = null; let currentCacheInterval = 25; let lastEtag: string | null = null; -async function resetReplay(reason: string = 'reset'): Promise { +async function resetReplay(reason: string = "reset"): Promise { if (!currentFilePath) { - throw new Error('No file path set for replay.'); + throw new Error("No file path set for replay."); } const newReplayLoader = new ReplayLoader(currentCacheInterval); await newReplayLoader.loadReplay(currentFilePath); @@ -239,27 +275,40 @@ async function resetReplay(reason: string = 'reset'): Promise { tempStateCache = null; resetTimeManager(); setupRenderer(); - console.debug(`Replay reset (${reason}). override=${Boolean(replayDataOverride)} etag=${lastEtag}`); + console.debug( + `Replay reset (${reason}). override=${Boolean(replayDataOverride)} etag=${lastEtag}`, + ); } -export async function setupReplayLoader(filePath: string, cacheInterval = 25, updateInterval = 3000): Promise { +export async function setupReplayLoader( + filePath: string, + cacheInterval = 25, + updateInterval = 3000, +): Promise { currentFilePath = filePath; currentCacheInterval = cacheInterval; // initial load (via central reset) - await resetReplay('initial'); + await resetReplay("initial"); // grab initial ETag lastEtag = null; try { - const headRes = await fetch(forceHttps(filePath), { method: 'HEAD', cache: 'no-cache' }); + const headRes = await fetch(forceHttps(filePath), { + method: "HEAD", + cache: "no-cache", + }); if (headRes.ok) { - lastEtag = headRes.headers.get('ETag'); + lastEtag = headRes.headers.get("ETag"); } else { - console.warn('Failed to fetch initial ETag:', headRes.status, headRes.statusText); + console.warn( + "Failed to fetch initial ETag:", + headRes.status, + headRes.statusText, + ); } } catch (err) { - console.warn('Failed to fetch initial ETag:', err); + console.warn("Failed to fetch initial ETag:", err); } // schedule updates @@ -269,15 +318,18 @@ export async function setupReplayLoader(filePath: string, cacheInterval = 25, up replayInterval = setInterval(async () => { if (!currentFilePath) return; try { - const head = await fetch(forceHttps(currentFilePath), { method: 'HEAD', cache: 'no-cache' }); + const head = await fetch(forceHttps(currentFilePath), { + method: "HEAD", + cache: "no-cache", + }); if (!head.ok) { - console.error('Couldnt fetch current replay etag.'); + console.error("Couldnt fetch current replay etag."); } - const etag = head.headers.get('ETag'); + const etag = head.headers.get("ETag"); if (!etag) { - console.warn('No ETag header present. This is a web server issue.'); + console.warn("No ETag header present. This is a web server issue."); return; } @@ -288,19 +340,21 @@ export async function setupReplayLoader(filePath: string, cacheInterval = 25, up if (replayDataOverride) { replayDataOverride = null; } - await resetReplay('etag-change'); + await resetReplay("etag-change"); } } catch (err) { - console.error('Error checking for updates:', err); + console.error("Error checking for updates:", err); } }, updateInterval); } -let tempStateCache: { tick: number; state: ReplayTick; lastAccess: number }[] | null = null; +let tempStateCache: + | { tick: number; state: ReplayTick; lastAccess: number }[] + | null = null; const lastAccessThreshold = 10; export function getStateAt(tick: number): ReplayTick | null { if (!replayLoader) { - throw new Error('Replay not loaded. Please call loadReplay first.'); + throw new Error("Replay not loaded. Please call loadReplay first."); } if (tempStateCache) { @@ -343,29 +397,35 @@ export function getStateAt(tick: number): ReplayTick | null { return result; } -export function getActionsByExecutor(tick: number): Record { +export function getActionsByExecutor( + tick: number, +): Record { if (!replayLoader) { - throw new Error('Replay not loaded. Please call loadReplay first.'); + throw new Error("Replay not loaded. Please call loadReplay first."); } return replayLoader.getActionsByExecutor(tick); } export function getTotalReplayTicks(): number { if (!replayLoader) { - throw new Error('Replay not loaded. Please call loadReplay first.'); + throw new Error("Replay not loaded. Please call loadReplay first."); } return totalReplayTicks; } export function getNameOfUnitType(unitType: number): string { if (!replayLoader) { - throw new Error('Replay not loaded. Please call loadReplay first.'); + throw new Error("Replay not loaded. Please call loadReplay first."); } const cfg = replayLoader.getGameConfig(); if (!cfg) { - throw new Error('GameConfig is missing! Did loadReplay parse config?'); + throw new Error("GameConfig is missing! Did loadReplay parse config?"); } - if (!Array.isArray(cfg.units) || unitType < 0 || unitType >= cfg.units.length) { + if ( + !Array.isArray(cfg.units) || + unitType < 0 || + unitType >= cfg.units.length + ) { throw new Error(`Invalid unitType index: ${unitType}`); } return cfg.units[unitType].name; @@ -373,14 +433,14 @@ export function getNameOfUnitType(unitType: number): string { export function getGameConfig(): GameConfig | undefined { if (!replayLoader) { - throw new Error('Replay not loaded. Please call loadReplay first.'); + throw new Error("Replay not loaded. Please call loadReplay first."); } return replayLoader.getGameConfig(); } export function getGameMisc(): ReplayMisc | undefined { if (!replayLoader) { - throw new Error('Replay not loaded. Please call loadReplay first.'); + throw new Error("Replay not loaded. Please call loadReplay first."); } return replayLoader.getGameMisc(); @@ -388,21 +448,27 @@ export function getGameMisc(): ReplayMisc | undefined { export function getWinningTeamFormatted(): string { if (!replayLoader) { - throw new Error('Replay not loaded. Please call loadReplay first.'); + throw new Error("Replay not loaded. Please call loadReplay first."); } - const winningTeam = replayLoader.getGameMisc().team_results.find((team) => team.place === 0); + const winningTeam = replayLoader + .getGameMisc() + .team_results.find((team) => team.place === 0); if (!winningTeam) { - return 'No winning team found'; + return "No winning team found"; } return `${winningTeam.name} (ID: ${winningTeam.id})`; } -window.addEventListener('drop', (e) => { +window.addEventListener("drop", (e) => { e.preventDefault(); - if (!e.dataTransfer || !e.dataTransfer.files || e.dataTransfer.files.length === 0) { - console.error('No file dropped but drop event triggered.'); + if ( + !e.dataTransfer || + !e.dataTransfer.files || + e.dataTransfer.files.length === 0 + ) { + console.error("No file dropped but drop event triggered."); return; } const file = e.dataTransfer.files[0]; @@ -411,13 +477,15 @@ window.addEventListener('drop', (e) => { reader.onload = async () => { const contents = reader.result as string; if (contents) { - console.log('File loaded successfully'); + console.log("File loaded successfully"); replayDataOverride = contents; - await resetReplay('file-drop'); + await resetReplay("file-drop"); } }; - alert('File loaded successfully, please refresh the page to see the changes.'); + alert( + "File loaded successfully, please refresh the page to see the changes.", + ); }); -window.addEventListener('dragover', (e) => { +window.addEventListener("dragover", (e) => { e.preventDefault(); }); diff --git a/src/ts/time_manager/timeManager.ts b/src/ts/time_manager/timeManager.ts index 6c037a4..7f7a341 100644 --- a/src/ts/time_manager/timeManager.ts +++ b/src/ts/time_manager/timeManager.ts @@ -1,25 +1,49 @@ -import { setRenderFireworks } from '../renderer/fireworksRenderer'; -import { getTotalReplayTicks } from '../replay_loader/replayLoader'; - -const playButton = document.getElementById('play-pause-button') as HTMLButtonElement; - -const nextTickButton = document.getElementById('next-tick-button') as HTMLButtonElement; -const prevTickButton = document.getElementById('prev-tick-button') as HTMLButtonElement; - -const skipStartButton = document.getElementById('skip-start-button') as HTMLButtonElement; -const skipEndButton = document.getElementById('skip-end-button') as HTMLButtonElement; - -const tickTimelineSlider = document.getElementById('tick-timeline-slider') as HTMLInputElement; -const tickTimelineNumberInput = document.getElementById('tick-timeline-number-input') as HTMLInputElement; - -const speedSlider = document.getElementById('speed-slider') as HTMLInputElement; -const speedNumberInput = document.getElementById('speed-number-input') as HTMLInputElement; -const speedDownButton = document.getElementById('speed-down-button') as HTMLButtonElement; -const speedUpButton = document.getElementById('speed-up-button') as HTMLButtonElement; - -const winnerDisplay = document.getElementById('win-display-box') as HTMLDivElement; - -const fullscreenToggleButton = document.getElementById('fullscreen-toggle-button') as HTMLButtonElement; +import { setRenderFireworks } from "../renderer/fireworksRenderer"; +import { getTotalReplayTicks } from "../replay_loader/replayLoader"; + +const playButton = document.getElementById( + "play-pause-button", +) as HTMLButtonElement; + +const nextTickButton = document.getElementById( + "next-tick-button", +) as HTMLButtonElement; +const prevTickButton = document.getElementById( + "prev-tick-button", +) as HTMLButtonElement; + +const skipStartButton = document.getElementById( + "skip-start-button", +) as HTMLButtonElement; +const skipEndButton = document.getElementById( + "skip-end-button", +) as HTMLButtonElement; + +const tickTimelineSlider = document.getElementById( + "tick-timeline-slider", +) as HTMLInputElement; +const tickTimelineNumberInput = document.getElementById( + "tick-timeline-number-input", +) as HTMLInputElement; + +const speedSlider = document.getElementById("speed-slider") as HTMLInputElement; +const speedNumberInput = document.getElementById( + "speed-number-input", +) as HTMLInputElement; +const speedDownButton = document.getElementById( + "speed-down-button", +) as HTMLButtonElement; +const speedUpButton = document.getElementById( + "speed-up-button", +) as HTMLButtonElement; + +const winnerDisplay = document.getElementById( + "win-display-box", +) as HTMLDivElement; + +const fullscreenToggleButton = document.getElementById( + "fullscreen-toggle-button", +) as HTMLButtonElement; // consts @@ -57,9 +81,13 @@ function setTick(tickValue: number) { } function setPlaying(isPlaying: boolean) { playing = isPlaying; - const playPauseIcon = document.getElementById('playPauseIcon') as HTMLImageElement; + const playPauseIcon = document.getElementById( + "playPauseIcon", + ) as HTMLImageElement; if (playPauseIcon) { - playPauseIcon.src = playing ? '/assets/ui-svgs/pause.svg' : '/assets/ui-svgs/play.svg'; + playPauseIcon.src = playing + ? "/assets/ui-svgs/pause.svg" + : "/assets/ui-svgs/play.svg"; } } @@ -98,13 +126,21 @@ async function exitFullscreen(): Promise { } } function updateFullscreenUI(): void { - const icon = document.getElementById('fullscreen-icon') as HTMLImageElement | null; + const icon = document.getElementById( + "fullscreen-icon", + ) as HTMLImageElement | null; const active = isFullscreen(); if (icon) { - icon.src = active ? '/assets/ui-svgs/fullscreen-close.svg' : '/assets/ui-svgs/fullscreen-open.svg'; - icon.alt = active ? 'Exit Fullscreen' : 'Enter Fullscreen'; + icon.src = active + ? "/assets/ui-svgs/fullscreen-close.svg" + : "/assets/ui-svgs/fullscreen-open.svg"; + icon.alt = active ? "Exit Fullscreen" : "Enter Fullscreen"; } - if (fullscreenToggleButton) fullscreenToggleButton.setAttribute('aria-pressed', active ? 'true' : 'false'); + if (fullscreenToggleButton) + fullscreenToggleButton.setAttribute( + "aria-pressed", + active ? "true" : "false", + ); } function toggleFullscreen(): void { if (isFullscreen()) exitFullscreen(); @@ -115,7 +151,7 @@ function toggleFullscreen(): void { export async function setupTimeManager() { const total = Math.max(1, getTotalTicks()); - const s = parseFloat(localStorage.getItem('tm.speed') || ''); + const s = parseFloat(localStorage.getItem("tm.speed") || ""); if (!Number.isNaN(s)) { const stepped = Math.round(s / speedIncrement) * speedIncrement; speedApS = Math.min(maxSpeed, Math.max(minSpeed, stepped)); @@ -123,8 +159,8 @@ export async function setupTimeManager() { tick = 0; tickTimelineSlider.max = String(total - 1); tickTimelineNumberInput.max = String(total - 1); - tickTimelineSlider.value = '0'; - tickTimelineNumberInput.value = '0'; + tickTimelineSlider.value = "0"; + tickTimelineNumberInput.value = "0"; speedSlider.value = String(speedApS); speedNumberInput.value = String(speedApS); @@ -133,23 +169,29 @@ export async function setupTimeManager() { speedApS = Math.min(maxSpeed, Math.max(minSpeed, stepped)); speedSlider.value = String(speedApS); speedNumberInput.value = String(speedApS); - localStorage.setItem('tm.speed', String(speedApS)); + localStorage.setItem("tm.speed", String(speedApS)); renderDirty = true; } - playButton.addEventListener('click', () => { + playButton.addEventListener("click", () => { if (Math.floor(Math.random() * 100) === 0) { - window.location.href = 'https://www.youtube.com/embed/dQw4w9WgXcQ?autoplay=1&mute=1&controls=0&loop=1&playlist=dQw4w9WgXcQ&rel=0&modestbranding=1&playsinline=1'; + window.location.href = + "https://www.youtube.com/embed/dQw4w9WgXcQ?autoplay=1&mute=1&controls=0&loop=1&playlist=dQw4w9WgXcQ&rel=0&modestbranding=1&playsinline=1"; return; } playing = !playing; - const playPauseIcon = document.getElementById('playPauseIcon') as HTMLImageElement; - if (playPauseIcon) playPauseIcon.src = playing ? '/assets/ui-svgs/pause.svg' : '/assets/ui-svgs/play.svg'; + const playPauseIcon = document.getElementById( + "playPauseIcon", + ) as HTMLImageElement; + if (playPauseIcon) + playPauseIcon.src = playing + ? "/assets/ui-svgs/pause.svg" + : "/assets/ui-svgs/play.svg"; lastTimestamp = playing ? Date.now() : null; }); - nextTickButton.addEventListener('click', () => { + nextTickButton.addEventListener("click", () => { if (tick < total - 1) { tick += 1; tickProgress = 0; @@ -158,7 +200,7 @@ export async function setupTimeManager() { renderDirty = true; } }); - prevTickButton.addEventListener('click', () => { + prevTickButton.addEventListener("click", () => { if (tick > 0) { tick -= 1; tickProgress = 0; @@ -167,14 +209,14 @@ export async function setupTimeManager() { renderDirty = true; } }); - skipStartButton.addEventListener('click', () => { + skipStartButton.addEventListener("click", () => { tick = 0; tickProgress = 0; - tickTimelineSlider.value = '0'; - tickTimelineNumberInput.value = '0'; + tickTimelineSlider.value = "0"; + tickTimelineNumberInput.value = "0"; renderDirty = true; }); - skipEndButton.addEventListener('click', () => { + skipEndButton.addEventListener("click", () => { tick = total - 1; tickProgress = 1; tickTimelineSlider.value = String(tick); @@ -182,8 +224,11 @@ export async function setupTimeManager() { renderDirty = true; }); - tickTimelineSlider.addEventListener('input', () => { - const v = Math.min(total - 1, Math.max(0, parseInt(tickTimelineSlider.value, 10))); + tickTimelineSlider.addEventListener("input", () => { + const v = Math.min( + total - 1, + Math.max(0, parseInt(tickTimelineSlider.value, 10)), + ); if (!Number.isNaN(v)) { tick = v; tickTimelineSlider.value = String(tick); @@ -192,8 +237,11 @@ export async function setupTimeManager() { renderDirty = true; } }); - tickTimelineNumberInput.addEventListener('input', () => { - const v = Math.min(total - 1, Math.max(0, parseInt(tickTimelineNumberInput.value, 10))); + tickTimelineNumberInput.addEventListener("input", () => { + const v = Math.min( + total - 1, + Math.max(0, parseInt(tickTimelineNumberInput.value, 10)), + ); if (!Number.isNaN(v)) { tick = v; tickTimelineSlider.value = String(tick); @@ -203,45 +251,66 @@ export async function setupTimeManager() { } }); - speedSlider.addEventListener('input', () => { + speedSlider.addEventListener("input", () => { const v = parseFloat(speedSlider.value); if (!Number.isNaN(v)) setSpeedLocal(v); }); - speedNumberInput.addEventListener('input', () => { + speedNumberInput.addEventListener("input", () => { const v = parseFloat(speedNumberInput.value); if (!Number.isNaN(v)) setSpeedLocal(v); }); - speedUpButton.addEventListener('click', () => setSpeedLocal(speedApS + speedIncrement)); - speedDownButton.addEventListener('click', () => setSpeedLocal(speedApS - speedIncrement)); - - const keyBindings: Record void; button?: HTMLButtonElement }> = { - ' ': { action: () => playButton.click(), button: playButton }, + speedUpButton.addEventListener("click", () => + setSpeedLocal(speedApS + speedIncrement), + ); + speedDownButton.addEventListener("click", () => + setSpeedLocal(speedApS - speedIncrement), + ); + + const keyBindings: Record< + string, + { action: () => void; button?: HTMLButtonElement } + > = { + " ": { action: () => playButton.click(), button: playButton }, r: { action: () => skipStartButton.click(), button: skipStartButton }, s: { action: () => skipStartButton.click(), button: skipStartButton }, e: { action: () => skipEndButton.click(), button: skipEndButton }, - ArrowRight: { action: () => nextTickButton.click(), button: nextTickButton }, + ArrowRight: { + action: () => nextTickButton.click(), + button: nextTickButton, + }, ArrowLeft: { action: () => prevTickButton.click(), button: prevTickButton }, - ArrowUp: { action: () => setSpeedLocal(speedApS + speedIncrement), button: speedUpButton }, - ArrowDown: { action: () => setSpeedLocal(speedApS - speedIncrement), button: speedDownButton }, + ArrowUp: { + action: () => setSpeedLocal(speedApS + speedIncrement), + button: speedUpButton, + }, + ArrowDown: { + action: () => setSpeedLocal(speedApS - speedIncrement), + button: speedDownButton, + }, f: { action: () => toggleFullscreen(), button: fullscreenToggleButton }, }; - window.addEventListener('keydown', (event) => { + window.addEventListener("keydown", (event) => { if (event.ctrlKey || event.metaKey || event.altKey) return; - if (['INPUT', 'TEXTAREA', 'SELECT'].includes((event.target as HTMLElement).tagName)) return; + if ( + ["INPUT", "TEXTAREA", "SELECT"].includes( + (event.target as HTMLElement).tagName, + ) + ) + return; const binding = keyBindings[event.key]; if (!binding) return; if (binding.button) { - binding.button.classList.add('active'); + binding.button.classList.add("active"); setTimeout(() => { - if (binding.button) binding.button.classList.remove('active'); + if (binding.button) binding.button.classList.remove("active"); }, 100); } binding.action(); event.preventDefault(); }); - window.addEventListener('pageshow', () => { + window.addEventListener("pageshow", () => { const max = Math.max(1, getTotalTicks()) - 1; if (tick > max) tick = 0; tickTimelineSlider.max = String(max); @@ -253,9 +322,12 @@ export async function setupTimeManager() { }); // setup fullscreen handling - fullscreenToggleButton?.addEventListener('click', () => toggleFullscreen()); - document.addEventListener('fullscreenchange', updateFullscreenUI); - (document as any).addEventListener('webkitfullscreenchange', updateFullscreenUI); + fullscreenToggleButton?.addEventListener("click", () => toggleFullscreen()); + document.addEventListener("fullscreenchange", updateFullscreenUI); + (document as any).addEventListener( + "webkitfullscreenchange", + updateFullscreenUI, + ); updateFullscreenUI(); } @@ -264,8 +336,8 @@ export function getCurrentTickData(): tickData { const total = getTotalReplayTicks(); const atEnd = total === 0 || tick === total - 1; - document.querySelectorAll('.win-display').forEach((elem) => { - elem.style.display = atEnd ? 'block' : 'none'; + document.querySelectorAll(".win-display").forEach((elem) => { + elem.style.display = atEnd ? "block" : "none"; }); setRenderFireworks(atEnd); @@ -288,7 +360,10 @@ export function getCurrentTickData(): tickData { if (tickProgress > 1) { if (tick < getTotalTicks() - 1) { - const newTick = Math.min(tick + Math.floor(tickProgress), getTotalTicks() - 1); + const newTick = Math.min( + tick + Math.floor(tickProgress), + getTotalTicks() - 1, + ); setTick(newTick); tickProgress = tickProgress % 1; } else { @@ -309,7 +384,7 @@ export function resetTimeManager() { lastTimestamp = null; tickProgress = 0; tickTimelineSlider.max = (getTotalTicks() - 1).toString(); - tickTimelineSlider.value = '0'; + tickTimelineSlider.value = "0"; tickTimelineNumberInput.max = (getTotalTicks() - 1).toString(); - tickTimelineNumberInput.value = '0'; + tickTimelineNumberInput.value = "0"; } diff --git a/vite.config.ts b/vite.config.ts index 32fc474..cd75bb5 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,10 +1,10 @@ -import { defineConfig } from 'vite'; +import { defineConfig } from "vite"; export default defineConfig({ - server: { open: '/index.html' }, + server: { open: "/index.html" }, build: { - outDir: 'dist', - assetsDir: 'assets', + outDir: "dist", + assetsDir: "assets", sourcemap: true, }, }); From a27a72d251744d6c28eb525e3cf34feead578f12 Mon Sep 17 00:00:00 2001 From: flomero <49640251+flomero@users.noreply.github.com> Date: Tue, 19 Aug 2025 00:23:51 +0200 Subject: [PATCH 07/14] more linting --- biome.json | 7 +++ src/css/styles.css | 70 +++++++++------------------- src/ts/global.d.ts | 17 +++++++ src/ts/renderer/fireworksRenderer.ts | 2 +- src/ts/renderer/objectRenderer.ts | 10 ++-- src/ts/renderer/renderer.ts | 8 ++-- src/ts/time_manager/timeManager.ts | 14 +++--- 7 files changed, 61 insertions(+), 67 deletions(-) create mode 100644 biome.json create mode 100644 src/ts/global.d.ts diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..b17d69b --- /dev/null +++ b/biome.json @@ -0,0 +1,7 @@ +{ + "vcs": { + "enabled": true, + "clientKind": "git", + "useIgnoreFile": true + } +} \ No newline at end of file diff --git a/src/css/styles.css b/src/css/styles.css index f961b1c..66bbba4 100644 --- a/src/css/styles.css +++ b/src/css/styles.css @@ -1,7 +1,6 @@ @font-face { - font-family: "JetBrains Mono"; - src: url("/assets/fonts/JetBrainsMonoNerdFontMono-Regular.ttf") - format("truetype"); + font-family: 'JetBrains Mono'; + src: url('/assets/fonts/JetBrainsMonoNerdFontMono-Regular.ttf') format('truetype'); } :root { @@ -19,7 +18,7 @@ body { height: 100%; overflow: hidden; overscroll-behavior: none; - font-family: "JetBrains Mono", monospace; + font-family: 'JetBrains Mono', monospace; background-color: color-mix(in srgb, var(--core-purple) 20%, white); } @@ -78,13 +77,6 @@ body { margin: 10px 0 10px 0; } -#svg-canvas image.team-1 { - opacity: 0.5; -} -#svg-canvas image.team-0 { - opacity: 1; -} - /* Time Controls */ #time-controls { display: flex; @@ -108,6 +100,12 @@ body { gap: 0.5rem; margin: 0 20px 0 20px; } + +.main-buttons button { + padding: 0.75rem; + background-color: #555; +} + .slider-group { display: flex; flex-direction: column; @@ -145,21 +143,22 @@ body { height: auto; } -#time-controls input[type="range"] { +#time-controls input[type='range'] { -webkit-appearance: none; + appearance: none; width: 6rem; height: 0.5rem; background: #a4a4a4; border-radius: 0.25rem; } -#time-controls input[type="range"]::-webkit-slider-runnable-track { +#time-controls input[type='range']::-webkit-slider-runnable-track { height: 100%; background: #a4a4a4; border-radius: 0.25rem; } -#time-controls input[type="range"]::-webkit-slider-thumb { +#time-controls input[type='range']::-webkit-slider-thumb { -webkit-appearance: none; width: 1rem; height: 1rem; @@ -169,23 +168,24 @@ body { cursor: pointer; } -#time-controls input[type="range"] { +#time-controls input[type='range'] { -moz-appearance: none; + appearance: none; } -#time-controls input[type="range"]::-moz-range-track { +#time-controls input[type='range']::-moz-range-track { height: 0.5rem; background: #ddd; border-radius: 0.25rem; } -#time-controls input[type="range"]::-moz-range-progress { +#time-controls input[type='range']::-moz-range-progress { background: var(--core-purple); height: 0.5rem; border-radius: 0.25rem; } -#time-controls input[type="range"]::-moz-range-thumb { +#time-controls input[type='range']::-moz-range-thumb { width: 1rem; height: 1rem; background: var(--core-purple); @@ -194,15 +194,10 @@ body { cursor: pointer; } -#time-controls input[type="number"] { +#time-controls input[type='number'] { width: 3rem; } -.main-buttons button { - padding: 0.75rem; - background-color: #555; -} - /* corner buttons */ .corner-button { @@ -222,7 +217,7 @@ body { #corner-bottom-left { bottom: 0; left: 0; - background-image: url("/assets/ui-svgs/github-logo.svg"); + background-image: url('/assets/ui-svgs/github-logo.svg'); clip-path: polygon(0 100%, 0 0, 100% 100%); background-position: 17% 83%; transform-origin: bottom left; @@ -231,35 +226,12 @@ body { #corner-top-right { top: 0; right: 0; - background-image: url("/assets/ui-svgs/core-logo.svg"); + background-image: url('/assets/ui-svgs/core-logo.svg'); clip-path: polygon(0 0, 100% 0, 100% 100%); background-position: 83% 17%; transform-origin: top right; } -#fullscreen-toggle-button.floating-control { - position: fixed; - right: 16px; - bottom: 16px; - z-index: 1000; - background: #fff; - border: 1px solid #d0d0d0; - border-radius: 10px; - padding: 10px 14px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); - cursor: pointer; - line-height: 1; -} -#fullscreen-toggle-button.floating-control:active, -#fullscreen-toggle-button.floating-control.active { - transform: translateY(1px); -} -#fullscreen-toggle-button #fullscreen-icon { - width: 18px; - height: 18px; - display: block; -} - /* Winner Display */ #win-display-box { diff --git a/src/ts/global.d.ts b/src/ts/global.d.ts new file mode 100644 index 0000000..ede55c8 --- /dev/null +++ b/src/ts/global.d.ts @@ -0,0 +1,17 @@ +// TypeScript global window overrides for debug-visualizer + +export { }; + +declare global { + interface Window { + // Add custom properties or methods used in the app here + // All standard properties (like location, addEventListener) are already included + } + interface Document { + webkitFullscreenElement: Element | null; + webkitExitFullscreen: () => Promise; + } + interface HTMLElement { + webkitRequestFullscreen?: () => Promise; + } +} diff --git a/src/ts/renderer/fireworksRenderer.ts b/src/ts/renderer/fireworksRenderer.ts index 852aaa2..b51f5a5 100644 --- a/src/ts/renderer/fireworksRenderer.ts +++ b/src/ts/renderer/fireworksRenderer.ts @@ -15,7 +15,7 @@ function shouldRun(): boolean { function ensureFireworks(): void { if (fireworks) return; - const globalFW = (window as any).Fireworks; + const globalFW = (window).Fireworks; const Ctor = globalFW?.default ?? globalFW; const container = document.querySelector(".fireworks") as HTMLElement | null; if (!Ctor || !container) return; diff --git a/src/ts/renderer/objectRenderer.ts b/src/ts/renderer/objectRenderer.ts index 01408c1..30e38d0 100644 --- a/src/ts/renderer/objectRenderer.ts +++ b/src/ts/renderer/objectRenderer.ts @@ -241,19 +241,19 @@ export function calcAndDrawObject( let x = currObj.x; let y = currObj.y; - let prevObj = null; + let prevObj: TickObject | undefined; try { if (currentTickData.tick - 1 >= 0) prevObj = getStateAt(currentTickData.tick - 1)?.objects.find( (o) => o.id === currObj.id, ); - } catch {} - let nextObj = null; + } catch { } + let nextObj: TickObject | undefined; try { nextObj = getStateAt(currentTickData.tick + 1)?.objects.find( (o) => o.id === currObj.id, ); - } catch {} + } catch { } const easeInOutProgress = new EaseInOutTimingCurve().getValue( currentTickData.tickProgress, @@ -301,7 +301,7 @@ export function calcAndDrawObject( } } - let metricBars: BarDrawingInstructions[] = computeSmoothBarInstructions( + const metricBars: BarDrawingInstructions[] = computeSmoothBarInstructions( currObj, nextObj, x, diff --git a/src/ts/renderer/renderer.ts b/src/ts/renderer/renderer.ts index 64d9065..1a3ad00 100644 --- a/src/ts/renderer/renderer.ts +++ b/src/ts/renderer/renderer.ts @@ -113,9 +113,9 @@ export async function setupRenderer(): Promise { throw new Error("Game configuration not found. Cannot set up renderer."); } - if (!(svgCanvas as any).dataset.renderLoopStarted) { + if (!svgCanvas.dataset.renderLoopStarted) { scheduleNextFrame(); - (svgCanvas as any).dataset.renderLoopStarted = "1"; + svgCanvas.dataset.renderLoopStarted = "1"; } teamOneElement.textContent = ""; @@ -165,7 +165,7 @@ export async function setupRenderer(): Promise { initializeTeamMapping(); - if (!(svgCanvas as any).dataset.listenersBound) { + if (!svgCanvas.dataset.listenersBound) { svgCanvas.addEventListener("mousemove", (e) => { const pt = svgCanvas.createSVGPoint(); pt.x = e.clientX; @@ -196,7 +196,7 @@ export async function setupRenderer(): Promise { window.addEventListener("blur", () => { tooltipElement.style.display = "none"; }); - (svgCanvas as any).dataset.listenersBound = "1"; + svgCanvas.dataset.listenersBound = "1"; } isInitialRender = true; diff --git a/src/ts/time_manager/timeManager.ts b/src/ts/time_manager/timeManager.ts index 7f7a341..8421137 100644 --- a/src/ts/time_manager/timeManager.ts +++ b/src/ts/time_manager/timeManager.ts @@ -104,25 +104,23 @@ export function startPlayback(): void { // Fullscreen handling function isFullscreen(): boolean { - const d = document as any; - return Boolean(document.fullscreenElement || d.webkitFullscreenElement); + return Boolean(document.fullscreenElement || document.webkitFullscreenElement); } async function enterFullscreen(): Promise { - const el: any = document.documentElement as any; + const el = document.documentElement; const req = el.requestFullscreen || el.webkitRequestFullscreen; if (req) { try { await req.call(el); - } catch {} + } catch { } } } async function exitFullscreen(): Promise { - const d: any = document as any; - const exit = document.exitFullscreen || d.webkitExitFullscreen; + const exit = document.exitFullscreen || document.webkitExitFullscreen; if (exit) { try { await exit.call(document); - } catch {} + } catch { } } } function updateFullscreenUI(): void { @@ -324,7 +322,7 @@ export async function setupTimeManager() { // setup fullscreen handling fullscreenToggleButton?.addEventListener("click", () => toggleFullscreen()); document.addEventListener("fullscreenchange", updateFullscreenUI); - (document as any).addEventListener( + document.addEventListener( "webkitfullscreenchange", updateFullscreenUI, ); From 3483e7d4ea7c1f64979fb56cc307e81caae6f383 Mon Sep 17 00:00:00 2001 From: flomero <49640251+flomero@users.noreply.github.com> Date: Tue, 19 Aug 2025 00:24:16 +0200 Subject: [PATCH 08/14] amend --- biome.json | 2 +- src/css/styles.css | 27 ++++++++++++++------------- src/ts/global.d.ts | 2 +- src/ts/renderer/fireworksRenderer.ts | 2 +- src/ts/renderer/objectRenderer.ts | 4 ++-- src/ts/time_manager/timeManager.ts | 13 ++++++------- 6 files changed, 25 insertions(+), 25 deletions(-) diff --git a/biome.json b/biome.json index b17d69b..6ed0afb 100644 --- a/biome.json +++ b/biome.json @@ -4,4 +4,4 @@ "clientKind": "git", "useIgnoreFile": true } -} \ No newline at end of file +} diff --git a/src/css/styles.css b/src/css/styles.css index 66bbba4..e612cfc 100644 --- a/src/css/styles.css +++ b/src/css/styles.css @@ -1,6 +1,7 @@ @font-face { - font-family: 'JetBrains Mono'; - src: url('/assets/fonts/JetBrainsMonoNerdFontMono-Regular.ttf') format('truetype'); + font-family: "JetBrains Mono"; + src: url("/assets/fonts/JetBrainsMonoNerdFontMono-Regular.ttf") + format("truetype"); } :root { @@ -18,7 +19,7 @@ body { height: 100%; overflow: hidden; overscroll-behavior: none; - font-family: 'JetBrains Mono', monospace; + font-family: "JetBrains Mono", monospace; background-color: color-mix(in srgb, var(--core-purple) 20%, white); } @@ -143,7 +144,7 @@ body { height: auto; } -#time-controls input[type='range'] { +#time-controls input[type="range"] { -webkit-appearance: none; appearance: none; width: 6rem; @@ -152,13 +153,13 @@ body { border-radius: 0.25rem; } -#time-controls input[type='range']::-webkit-slider-runnable-track { +#time-controls input[type="range"]::-webkit-slider-runnable-track { height: 100%; background: #a4a4a4; border-radius: 0.25rem; } -#time-controls input[type='range']::-webkit-slider-thumb { +#time-controls input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 1rem; height: 1rem; @@ -168,24 +169,24 @@ body { cursor: pointer; } -#time-controls input[type='range'] { +#time-controls input[type="range"] { -moz-appearance: none; appearance: none; } -#time-controls input[type='range']::-moz-range-track { +#time-controls input[type="range"]::-moz-range-track { height: 0.5rem; background: #ddd; border-radius: 0.25rem; } -#time-controls input[type='range']::-moz-range-progress { +#time-controls input[type="range"]::-moz-range-progress { background: var(--core-purple); height: 0.5rem; border-radius: 0.25rem; } -#time-controls input[type='range']::-moz-range-thumb { +#time-controls input[type="range"]::-moz-range-thumb { width: 1rem; height: 1rem; background: var(--core-purple); @@ -194,7 +195,7 @@ body { cursor: pointer; } -#time-controls input[type='number'] { +#time-controls input[type="number"] { width: 3rem; } @@ -217,7 +218,7 @@ body { #corner-bottom-left { bottom: 0; left: 0; - background-image: url('/assets/ui-svgs/github-logo.svg'); + background-image: url("/assets/ui-svgs/github-logo.svg"); clip-path: polygon(0 100%, 0 0, 100% 100%); background-position: 17% 83%; transform-origin: bottom left; @@ -226,7 +227,7 @@ body { #corner-top-right { top: 0; right: 0; - background-image: url('/assets/ui-svgs/core-logo.svg'); + background-image: url("/assets/ui-svgs/core-logo.svg"); clip-path: polygon(0 0, 100% 0, 100% 100%); background-position: 83% 17%; transform-origin: top right; diff --git a/src/ts/global.d.ts b/src/ts/global.d.ts index ede55c8..1e4c318 100644 --- a/src/ts/global.d.ts +++ b/src/ts/global.d.ts @@ -1,6 +1,6 @@ // TypeScript global window overrides for debug-visualizer -export { }; +export {}; declare global { interface Window { diff --git a/src/ts/renderer/fireworksRenderer.ts b/src/ts/renderer/fireworksRenderer.ts index b51f5a5..de1cf3a 100644 --- a/src/ts/renderer/fireworksRenderer.ts +++ b/src/ts/renderer/fireworksRenderer.ts @@ -15,7 +15,7 @@ function shouldRun(): boolean { function ensureFireworks(): void { if (fireworks) return; - const globalFW = (window).Fireworks; + const globalFW = window.Fireworks; const Ctor = globalFW?.default ?? globalFW; const container = document.querySelector(".fireworks") as HTMLElement | null; if (!Ctor || !container) return; diff --git a/src/ts/renderer/objectRenderer.ts b/src/ts/renderer/objectRenderer.ts index 30e38d0..4dbf276 100644 --- a/src/ts/renderer/objectRenderer.ts +++ b/src/ts/renderer/objectRenderer.ts @@ -247,13 +247,13 @@ export function calcAndDrawObject( prevObj = getStateAt(currentTickData.tick - 1)?.objects.find( (o) => o.id === currObj.id, ); - } catch { } + } catch {} let nextObj: TickObject | undefined; try { nextObj = getStateAt(currentTickData.tick + 1)?.objects.find( (o) => o.id === currObj.id, ); - } catch { } + } catch {} const easeInOutProgress = new EaseInOutTimingCurve().getValue( currentTickData.tickProgress, diff --git a/src/ts/time_manager/timeManager.ts b/src/ts/time_manager/timeManager.ts index 8421137..475701e 100644 --- a/src/ts/time_manager/timeManager.ts +++ b/src/ts/time_manager/timeManager.ts @@ -104,7 +104,9 @@ export function startPlayback(): void { // Fullscreen handling function isFullscreen(): boolean { - return Boolean(document.fullscreenElement || document.webkitFullscreenElement); + return Boolean( + document.fullscreenElement || document.webkitFullscreenElement, + ); } async function enterFullscreen(): Promise { const el = document.documentElement; @@ -112,7 +114,7 @@ async function enterFullscreen(): Promise { if (req) { try { await req.call(el); - } catch { } + } catch {} } } async function exitFullscreen(): Promise { @@ -120,7 +122,7 @@ async function exitFullscreen(): Promise { if (exit) { try { await exit.call(document); - } catch { } + } catch {} } } function updateFullscreenUI(): void { @@ -322,10 +324,7 @@ export async function setupTimeManager() { // setup fullscreen handling fullscreenToggleButton?.addEventListener("click", () => toggleFullscreen()); document.addEventListener("fullscreenchange", updateFullscreenUI); - document.addEventListener( - "webkitfullscreenchange", - updateFullscreenUI, - ); + document.addEventListener("webkitfullscreenchange", updateFullscreenUI); updateFullscreenUI(); } From a9ba768a1d074793ebb72e7f571bda367e83f514 Mon Sep 17 00:00:00 2001 From: flomero <49640251+flomero@users.noreply.github.com> Date: Tue, 19 Aug 2025 00:37:24 +0200 Subject: [PATCH 09/14] install firework js --- index.html | 1 - package-lock.json | 9 +++++++++ package.json | 4 ++++ src/ts/global.d.ts | 3 +-- src/ts/renderer/fireworksRenderer.ts | 13 ++++++++----- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index 42a06b4..92a3aee 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,6 @@ - diff --git a/package-lock.json b/package-lock.json index 239a2ca..de64f4d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,9 @@ "packages": { "": { "name": "core-debug-visualizer", + "dependencies": { + "fireworks-js": "^2.10.8" + }, "devDependencies": { "@biomejs/biome": "2.1.2", "prettier": "^3.6.2", @@ -963,6 +966,12 @@ } } }, + "node_modules/fireworks-js": { + "version": "2.10.8", + "resolved": "https://registry.npmjs.org/fireworks-js/-/fireworks-js-2.10.8.tgz", + "integrity": "sha512-UZNxeJvRmQzLisN4iriWXqKojG9TDJqc0dPmkUw0/+AEQQ3w8z1Jx2YdFSiBGSVb/u4dPTQXU109GMVblzhfpg==", + "license": "MIT" + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", diff --git a/package.json b/package.json index fd50d99..78983a8 100644 --- a/package.json +++ b/package.json @@ -7,11 +7,15 @@ "preview": "vite preview --open", "format": "biome format --write --no-errors-on-unmatched", "lint": "biome lint --write --no-errors-on-unmatched", + "fix": "npm run format && npm run lint", "check": "biome check --write --no-errors-on-unmatched" }, "devDependencies": { "@biomejs/biome": "2.1.2", "prettier": "^3.6.2", "vite": "^7.1.2" + }, + "dependencies": { + "fireworks-js": "^2.10.8" } } diff --git a/src/ts/global.d.ts b/src/ts/global.d.ts index 1e4c318..a009ed3 100644 --- a/src/ts/global.d.ts +++ b/src/ts/global.d.ts @@ -4,8 +4,7 @@ export {}; declare global { interface Window { - // Add custom properties or methods used in the app here - // All standard properties (like location, addEventListener) are already included + Fireworks: typeof import("fireworks-js").default; } interface Document { webkitFullscreenElement: Element | null; diff --git a/src/ts/renderer/fireworksRenderer.ts b/src/ts/renderer/fireworksRenderer.ts index de1cf3a..ccc6280 100644 --- a/src/ts/renderer/fireworksRenderer.ts +++ b/src/ts/renderer/fireworksRenderer.ts @@ -1,4 +1,8 @@ -let fireworks: any | null = null; +import Fireworks from "fireworks-js"; + +window.Fireworks = Fireworks; + +let fireworks: Fireworks | null = null; let renderFireworks = false; let fireworkStrength = 1; let fireworkDelay = 2000; @@ -16,10 +20,9 @@ function shouldRun(): boolean { function ensureFireworks(): void { if (fireworks) return; const globalFW = window.Fireworks; - const Ctor = globalFW?.default ?? globalFW; const container = document.querySelector(".fireworks") as HTMLElement | null; - if (!Ctor || !container) return; - fireworks = new Ctor(container, { + if (!globalFW || !container) return; + fireworks = new globalFW(container, { autoresize: true, opacity: 0.6, acceleration: 1.02, @@ -70,7 +73,7 @@ window.addEventListener("beforeunload", () => { (function loop() { if (isActive) { ensureFireworks(); - fireworks?.launch?.(fireworkStrength); + (fireworks as Fireworks | null)?.launch?.(fireworkStrength); if (fireworkStrength > 1) fireworkStrength--; } setTimeout(loop, isActive ? fireworkDelay : 1500); From a67d3254c40e18268ea3a345f8f1dc6e144b7ab2 Mon Sep 17 00:00:00 2001 From: flomero <49640251+flomero@users.noreply.github.com> Date: Tue, 19 Aug 2025 00:44:22 +0200 Subject: [PATCH 10/14] husky pre commit hook --- .husky/pre-commit | 1 + package-lock.json | 574 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 13 +- 3 files changed, 576 insertions(+), 12 deletions(-) create mode 100644 .husky/pre-commit diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..c27d889 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +lint-staged diff --git a/package-lock.json b/package-lock.json index de64f4d..46510b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,8 @@ }, "devDependencies": { "@biomejs/biome": "2.1.2", - "prettier": "^3.6.2", + "husky": "^9.1.7", + "lint-staged": "^16.1.5", "vite": "^7.1.2" } }, @@ -906,6 +907,162 @@ "dev": true, "license": "MIT" }, + "node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", + "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.0.tgz", + "integrity": "sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.0.tgz", + "integrity": "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/esbuild": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", @@ -948,6 +1105,13 @@ "@esbuild/win32-x64": "0.25.9" } }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, + "license": "MIT" + }, "node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", @@ -966,6 +1130,19 @@ } } }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/fireworks-js": { "version": "2.10.8", "resolved": "https://registry.npmjs.org/fireworks-js/-/fireworks-js-2.10.8.tgz", @@ -987,6 +1164,230 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/husky": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", + "dev": true, + "license": "MIT", + "bin": { + "husky": "bin.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lint-staged": { + "version": "16.1.5", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.1.5.tgz", + "integrity": "sha512-uAeQQwByI6dfV7wpt/gVqg+jAPaSp8WwOA8kKC/dv1qw14oGpnpAisY65ibGHUGDUv0rYaZ8CAJZ/1U8hUvC2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.5.0", + "commander": "^14.0.0", + "debug": "^4.4.1", + "lilconfig": "^3.1.3", + "listr2": "^9.0.1", + "micromatch": "^4.0.8", + "nano-spawn": "^1.0.2", + "pidtree": "^0.6.0", + "string-argv": "^0.3.2", + "yaml": "^2.8.1" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": ">=20.17" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/listr2": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.1.tgz", + "integrity": "sha512-SL0JY3DaxylDuo/MecFeiC+7pedM0zia33zl0vcjgwcq1q1FWWF1To9EIauPbl8GbMCU0R2e0uJ8bZunhYKD2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nano-spawn": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-1.0.2.tgz", + "integrity": "sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/nano-spawn?sponsor=1" + } + }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", @@ -1006,6 +1407,22 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -1026,6 +1443,19 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/postcss": { "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", @@ -1055,22 +1485,30 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/prettier": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", - "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": ">=14" + "node": ">=18" }, "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, "node_modules/rollup": { "version": "4.46.3", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.3.tgz", @@ -1111,6 +1549,36 @@ "fsevents": "~2.3.2" } }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -1121,6 +1589,50 @@ "node": ">=0.10.0" } }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/tinyglobby": { "version": "0.2.14", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", @@ -1138,6 +1650,19 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/vite": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", @@ -1212,6 +1737,37 @@ "optional": true } } + }, + "node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/yaml": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + } } } } diff --git a/package.json b/package.json index 78983a8..3b766a8 100644 --- a/package.json +++ b/package.json @@ -7,15 +7,22 @@ "preview": "vite preview --open", "format": "biome format --write --no-errors-on-unmatched", "lint": "biome lint --write --no-errors-on-unmatched", - "fix": "npm run format && npm run lint", - "check": "biome check --write --no-errors-on-unmatched" + "check": "biome check --write --no-errors-on-unmatched", + "fix": "npm run format && npm run lint && npm run check", + "prepare": "husky" }, "devDependencies": { "@biomejs/biome": "2.1.2", - "prettier": "^3.6.2", + "husky": "^9.1.7", + "lint-staged": "^16.1.5", "vite": "^7.1.2" }, "dependencies": { "fireworks-js": "^2.10.8" + }, + "lint-staged": { + "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}": [ + "npm run fix" + ] } } From f353fc2e2eb8193806b614e7d2d77d67f545d0e9 Mon Sep 17 00:00:00 2001 From: FreddyMSchubert Date: Tue, 19 Aug 2025 08:29:14 +0200 Subject: [PATCH 11/14] remove .prettierrc --- .prettierrc | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 .prettierrc diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 03454c4..0000000 --- a/.prettierrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "useTabs": true, - "tabWidth": 4, - "printWidth": 200, - "bracketSpacing": true, - "semi": true, - "singleQuote": true, - "trailingComma": "es5" -} \ No newline at end of file From b7af41557477de2b295c027cb3dbb9789bab6fec Mon Sep 17 00:00:00 2001 From: FreddyMSchubert Date: Tue, 19 Aug 2025 08:56:45 +0200 Subject: [PATCH 12/14] biome check already does format and lint so we dont really need a fix rule + fixed the lint-staged config --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 3b766a8..fa983b7 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,6 @@ "format": "biome format --write --no-errors-on-unmatched", "lint": "biome lint --write --no-errors-on-unmatched", "check": "biome check --write --no-errors-on-unmatched", - "fix": "npm run format && npm run lint && npm run check", "prepare": "husky" }, "devDependencies": { @@ -22,7 +21,7 @@ }, "lint-staged": { "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}": [ - "npm run fix" + "biome check --write --no-errors-on-unmatched" ] } } From 4496f91724846b22ea2ec07f7b171c9eaa24529a Mon Sep 17 00:00:00 2001 From: FreddyMSchubert Date: Tue, 19 Aug 2025 08:57:57 +0200 Subject: [PATCH 13/14] bump up rickroll likelihood from 100 to a more tasteful 420 --- src/ts/time_manager/timeManager.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ts/time_manager/timeManager.ts b/src/ts/time_manager/timeManager.ts index 475701e..57fe026 100644 --- a/src/ts/time_manager/timeManager.ts +++ b/src/ts/time_manager/timeManager.ts @@ -174,7 +174,7 @@ export async function setupTimeManager() { } playButton.addEventListener("click", () => { - if (Math.floor(Math.random() * 100) === 0) { + if (Math.floor(Math.random() * 420) === 0) { window.location.href = "https://www.youtube.com/embed/dQw4w9WgXcQ?autoplay=1&mute=1&controls=0&loop=1&playlist=dQw4w9WgXcQ&rel=0&modestbranding=1&playsinline=1"; return; @@ -278,7 +278,10 @@ export async function setupTimeManager() { action: () => nextTickButton.click(), button: nextTickButton, }, - ArrowLeft: { action: () => prevTickButton.click(), button: prevTickButton }, + ArrowLeft: { + action: () => prevTickButton.click(), + button: prevTickButton, + }, ArrowUp: { action: () => setSpeedLocal(speedApS + speedIncrement), button: speedUpButton, From 6b979866a96c0d574e62240330537c92aaa2fa16 Mon Sep 17 00:00:00 2001 From: FreddyMSchubert Date: Tue, 19 Aug 2025 09:12:46 +0200 Subject: [PATCH 14/14] nginx config improvements --- nginx.conf | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/nginx.conf b/nginx.conf index dc146c2..cf22c56 100644 --- a/nginx.conf +++ b/nginx.conf @@ -41,17 +41,32 @@ http { try_files $uri $uri/ /index.html; } + # Never cache the HTML entrypoint location = /index.html { add_header Cache-Control "no-store, no-cache, must-revalidate" always; add_header Pragma "no-cache" always; add_header Expires "0" always; } - location ~* -[a-f0-9]{8,}\.(js|css|png|jpg|jpeg|gif|ico|svg|ttf|woff|woff2)$ { + # Never cache the service worker + location = /sw.js { + add_header Cache-Control "no-store, no-cache, must-revalidate" always; + add_header Pragma "no-cache" always; + add_header Expires "0" always; + } + + # Long-cache only hashed JS/CSS (immutable) + location ~* "-[A-Za-z0-9]{8,}\.(?:js|css)(?:\.map)?$" { add_header Cache-Control "public, max-age=31536000, immutable" always; } - location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|ttf|woff|woff2)$ { + # Short TTL for non-hashed JS/CSS + location ~* "\.(?:js|css)$" { + add_header Cache-Control "public, max-age=600, must-revalidate" always; + } + + # Short TTL for images and fonts + location ~* "\.(?:png|jpg|jpeg|gif|ico|svg|ttf|woff|woff2)$" { add_header Cache-Control "public, max-age=600, must-revalidate" always; }