From 003c551e7320912d468b00905da234ad262b5446 Mon Sep 17 00:00:00 2001 From: Ilion Beyst Date: Sat, 25 Dec 2021 20:28:10 +0100 Subject: implement basic MatchBrowser component --- web/pw-frontend/public/assets/images/earth.svg | 114 -------------- web/pw-frontend/public/assets/images/jupiter.svg | 118 -------------- web/pw-frontend/public/assets/images/mars.svg | 114 -------------- web/pw-frontend/public/assets/images/neptune.svg | 186 ----------------------- web/pw-frontend/public/assets/images/rocket.svg | 79 ---------- web/pw-frontend/public/assets/images/uranus.svg | 150 ------------------ web/pw-frontend/public/assets/images/venus.svg | 114 -------------- web/pw-frontend/public/favicon.ico | Bin 1150 -> 3985 bytes web/pw-frontend/public/match.log | 43 ------ web/pw-frontend/src/App.svelte | 37 +---- web/pw-frontend/src/assets/svelte.png | Bin 5185 -> 0 bytes web/pw-frontend/src/lib/MatchBrowser.svelte | 89 +++++++++++ web/pw-frontend/src/lib/Visualizer.svelte | 18 ++- web/pw-frontend/vite.config.js | 7 +- 14 files changed, 111 insertions(+), 958 deletions(-) delete mode 100644 web/pw-frontend/public/assets/images/earth.svg delete mode 100644 web/pw-frontend/public/assets/images/jupiter.svg delete mode 100644 web/pw-frontend/public/assets/images/mars.svg delete mode 100644 web/pw-frontend/public/assets/images/neptune.svg delete mode 100644 web/pw-frontend/public/assets/images/rocket.svg delete mode 100644 web/pw-frontend/public/assets/images/uranus.svg delete mode 100644 web/pw-frontend/public/assets/images/venus.svg delete mode 100644 web/pw-frontend/public/match.log delete mode 100644 web/pw-frontend/src/assets/svelte.png create mode 100644 web/pw-frontend/src/lib/MatchBrowser.svelte (limited to 'web/pw-frontend') diff --git a/web/pw-frontend/public/assets/images/earth.svg b/web/pw-frontend/public/assets/images/earth.svg deleted file mode 100644 index f1be561..0000000 --- a/web/pw-frontend/public/assets/images/earth.svg +++ /dev/null @@ -1,114 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/web/pw-frontend/public/assets/images/jupiter.svg b/web/pw-frontend/public/assets/images/jupiter.svg deleted file mode 100644 index e5fcd0f..0000000 --- a/web/pw-frontend/public/assets/images/jupiter.svg +++ /dev/null @@ -1,118 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/web/pw-frontend/public/assets/images/mars.svg b/web/pw-frontend/public/assets/images/mars.svg deleted file mode 100644 index d92851d..0000000 --- a/web/pw-frontend/public/assets/images/mars.svg +++ /dev/null @@ -1,114 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/web/pw-frontend/public/assets/images/neptune.svg b/web/pw-frontend/public/assets/images/neptune.svg deleted file mode 100644 index 995d440..0000000 --- a/web/pw-frontend/public/assets/images/neptune.svg +++ /dev/null @@ -1,186 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/web/pw-frontend/public/assets/images/rocket.svg b/web/pw-frontend/public/assets/images/rocket.svg deleted file mode 100644 index 162cb46..0000000 --- a/web/pw-frontend/public/assets/images/rocket.svg +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/web/pw-frontend/public/assets/images/uranus.svg b/web/pw-frontend/public/assets/images/uranus.svg deleted file mode 100644 index fb192a4..0000000 --- a/web/pw-frontend/public/assets/images/uranus.svg +++ /dev/null @@ -1,150 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/web/pw-frontend/public/assets/images/venus.svg b/web/pw-frontend/public/assets/images/venus.svg deleted file mode 100644 index 3bebb10..0000000 --- a/web/pw-frontend/public/assets/images/venus.svg +++ /dev/null @@ -1,114 +0,0 @@ - - - -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/web/pw-frontend/public/favicon.ico b/web/pw-frontend/public/favicon.ico index d75d248..628e6ed 100644 Binary files a/web/pw-frontend/public/favicon.ico and b/web/pw-frontend/public/favicon.ico differ diff --git a/web/pw-frontend/public/match.log b/web/pw-frontend/public/match.log deleted file mode 100644 index 968dbe8..0000000 --- a/web/pw-frontend/public/match.log +++ /dev/null @@ -1,43 +0,0 @@ -{"planets":[{"ship_count":2,"x":-6.0,"y":0.0,"owner":1,"name":"protos"},{"ship_count":6,"x":-3.0,"y":5.0,"owner":null,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":0,"ship_count":5,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":5},{"id":1,"ship_count":5,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":11}]} -{"planets":[{"ship_count":2,"x":-6.0,"y":0.0,"owner":1,"name":"protos"},{"ship_count":6,"x":-3.0,"y":5.0,"owner":null,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":0,"ship_count":5,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":4},{"id":1,"ship_count":5,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":10},{"id":2,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":11},{"id":3,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":11}]} -{"planets":[{"ship_count":2,"x":-6.0,"y":0.0,"owner":1,"name":"protos"},{"ship_count":6,"x":-3.0,"y":5.0,"owner":null,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":0,"ship_count":5,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":3},{"id":1,"ship_count":5,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":9},{"id":2,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":10},{"id":3,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":10},{"id":4,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":11},{"id":5,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":11}]} -{"planets":[{"ship_count":2,"x":-6.0,"y":0.0,"owner":1,"name":"protos"},{"ship_count":6,"x":-3.0,"y":5.0,"owner":null,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":0,"ship_count":5,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":2},{"id":1,"ship_count":5,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":8},{"id":2,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":9},{"id":3,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":9},{"id":4,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":10},{"id":5,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":10},{"id":6,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":11},{"id":7,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":11}]} -{"planets":[{"ship_count":2,"x":-6.0,"y":0.0,"owner":1,"name":"protos"},{"ship_count":6,"x":-3.0,"y":5.0,"owner":null,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":0,"ship_count":5,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":1},{"id":1,"ship_count":5,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":7},{"id":2,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":8},{"id":3,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":8},{"id":4,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":9},{"id":5,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":9},{"id":6,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":10},{"id":7,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":10},{"id":8,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":11},{"id":9,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":11}]} -{"planets":[{"ship_count":2,"x":-6.0,"y":0.0,"owner":1,"name":"protos"},{"ship_count":1,"x":-3.0,"y":5.0,"owner":null,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":11,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":11},{"id":1,"ship_count":5,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":6},{"id":2,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":7},{"id":3,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":7},{"id":4,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":8},{"id":5,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":8},{"id":6,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":9},{"id":7,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":9},{"id":8,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":10},{"id":9,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":10},{"id":10,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":11}]} -{"planets":[{"ship_count":2,"x":-6.0,"y":0.0,"owner":1,"name":"protos"},{"ship_count":1,"x":-3.0,"y":5.0,"owner":null,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":11,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":10},{"id":1,"ship_count":5,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":5},{"id":2,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":6},{"id":3,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":6},{"id":4,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":7},{"id":5,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":7},{"id":6,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":8},{"id":7,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":8},{"id":8,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":9},{"id":9,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":9},{"id":10,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":10},{"id":12,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":5},{"id":13,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":10}]} -{"planets":[{"ship_count":2,"x":-6.0,"y":0.0,"owner":1,"name":"protos"},{"ship_count":1,"x":-3.0,"y":5.0,"owner":null,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":11,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":9},{"id":1,"ship_count":5,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":4},{"id":2,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":5},{"id":3,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":5},{"id":4,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":6},{"id":5,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":6},{"id":6,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":7},{"id":7,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":7},{"id":8,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":8},{"id":9,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":8},{"id":10,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":9},{"id":12,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":4},{"id":13,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":9},{"id":14,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":5},{"id":15,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":10}]} -{"planets":[{"ship_count":2,"x":-6.0,"y":0.0,"owner":1,"name":"protos"},{"ship_count":1,"x":-3.0,"y":5.0,"owner":null,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":11,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":8},{"id":1,"ship_count":5,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":3},{"id":2,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":4},{"id":3,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":4},{"id":4,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":5},{"id":5,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":5},{"id":6,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":6},{"id":7,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":6},{"id":8,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":7},{"id":9,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":7},{"id":10,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":8},{"id":12,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":3},{"id":13,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":8},{"id":14,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":4},{"id":15,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":9},{"id":16,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":5},{"id":17,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":10}]} -{"planets":[{"ship_count":2,"x":-6.0,"y":0.0,"owner":1,"name":"protos"},{"ship_count":1,"x":-3.0,"y":5.0,"owner":null,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":11,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":7},{"id":1,"ship_count":5,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":2},{"id":2,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":3},{"id":3,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":3},{"id":4,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":4},{"id":5,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":4},{"id":6,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":5},{"id":7,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":5},{"id":8,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":6},{"id":9,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":6},{"id":10,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":7},{"id":12,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":2},{"id":13,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":7},{"id":14,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":3},{"id":15,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":8},{"id":16,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":4},{"id":17,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":9},{"id":18,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":5},{"id":19,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":10}]} -{"planets":[{"ship_count":2,"x":-6.0,"y":0.0,"owner":1,"name":"protos"},{"ship_count":1,"x":-3.0,"y":5.0,"owner":null,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":11,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":6},{"id":1,"ship_count":5,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":1},{"id":2,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":2},{"id":3,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":2},{"id":4,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":3},{"id":5,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":3},{"id":6,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":4},{"id":7,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":4},{"id":8,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":5},{"id":9,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":5},{"id":10,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":6},{"id":12,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":1},{"id":13,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":6},{"id":14,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":2},{"id":15,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":7},{"id":16,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":3},{"id":17,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":8},{"id":18,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":4},{"id":19,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":9},{"id":20,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":5},{"id":21,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":10}]} -{"planets":[{"ship_count":3,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":0,"x":-3.0,"y":5.0,"owner":null,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":11,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":5},{"id":23,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":10},{"id":2,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":1},{"id":3,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":1},{"id":4,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":2},{"id":5,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":2},{"id":6,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":3},{"id":7,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":3},{"id":8,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":4},{"id":9,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":4},{"id":10,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":5},{"id":22,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":5},{"id":13,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":5},{"id":14,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":1},{"id":15,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":6},{"id":16,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":2},{"id":17,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":7},{"id":18,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":3},{"id":19,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":8},{"id":20,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":4},{"id":21,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":9}]} -{"planets":[{"ship_count":3,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":1,"x":-3.0,"y":5.0,"owner":1,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":11,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":4},{"id":23,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":9},{"id":24,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":5},{"id":21,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":8},{"id":4,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":1},{"id":5,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":1},{"id":6,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":2},{"id":7,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":2},{"id":8,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":3},{"id":9,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":3},{"id":10,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":4},{"id":22,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":4},{"id":13,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":4},{"id":20,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":3},{"id":15,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":5},{"id":16,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":1},{"id":17,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":6},{"id":18,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":2},{"id":19,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":7}]} -{"planets":[{"ship_count":3,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":3,"x":-3.0,"y":5.0,"owner":1,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":11,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":3},{"id":23,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":8},{"id":24,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":4},{"id":21,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":7},{"id":25,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":5},{"id":19,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":6},{"id":6,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":1},{"id":7,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":1},{"id":8,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":2},{"id":9,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":2},{"id":10,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":3},{"id":22,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":3},{"id":13,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":3},{"id":20,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":2},{"id":15,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":4},{"id":18,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":1},{"id":17,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":5}]} -{"planets":[{"ship_count":3,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":3,"x":-3.0,"y":5.0,"owner":1,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":11,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":2},{"id":23,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":7},{"id":24,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":3},{"id":21,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":6},{"id":25,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":4},{"id":19,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":5},{"id":27,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":5},{"id":26,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":10},{"id":8,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":1},{"id":9,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":1},{"id":10,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":2},{"id":22,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":2},{"id":13,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":2},{"id":20,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":1},{"id":15,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":3},{"id":17,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":4}]} -{"planets":[{"ship_count":3,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":3,"x":-3.0,"y":5.0,"owner":1,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":11,"ship_count":1,"origin":"tetratos","destination":"protos","owner":2,"turns_remaining":1},{"id":23,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":6},{"id":24,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":2},{"id":21,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":5},{"id":25,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":3},{"id":19,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":4},{"id":27,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":4},{"id":26,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":9},{"id":29,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":5},{"id":28,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":10},{"id":10,"ship_count":1,"origin":"protos","destination":"tetratos","owner":1,"turns_remaining":1},{"id":22,"ship_count":1,"origin":"protos","destination":"duteros","owner":1,"turns_remaining":1},{"id":13,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":1},{"id":17,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":3},{"id":15,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":2}]} -{"planets":[{"ship_count":3,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":2,"x":-3.0,"y":5.0,"owner":1,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":31,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":5},{"id":23,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":5},{"id":24,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":1},{"id":21,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":4},{"id":25,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":2},{"id":19,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":3},{"id":27,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":3},{"id":26,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":8},{"id":29,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":4},{"id":28,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":9},{"id":30,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":10},{"id":15,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":1},{"id":17,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":2}]} -{"planets":[{"ship_count":2,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":1,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":3,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":31,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":4},{"id":23,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":4},{"id":33,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":5},{"id":21,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":3},{"id":25,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":1},{"id":19,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":2},{"id":27,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":2},{"id":26,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":7},{"id":29,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":3},{"id":28,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":8},{"id":30,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":9},{"id":32,"ship_count":1,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":10},{"id":17,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":1}]} -{"planets":[{"ship_count":3,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":5,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":31,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":3},{"id":23,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":3},{"id":33,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":4},{"id":21,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":2},{"id":34,"ship_count":2,"origin":"tetratos","destination":"tritos","owner":2,"turns_remaining":5},{"id":19,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":1},{"id":27,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":1},{"id":26,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":6},{"id":29,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":2},{"id":28,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":7},{"id":30,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":8},{"id":32,"ship_count":1,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":9}]} -{"planets":[{"ship_count":4,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":5,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":3,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":31,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":2},{"id":23,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":2},{"id":33,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":3},{"id":21,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":1},{"id":34,"ship_count":2,"origin":"tetratos","destination":"tritos","owner":2,"turns_remaining":4},{"id":35,"ship_count":4,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":5},{"id":32,"ship_count":1,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":8},{"id":26,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":5},{"id":29,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":1},{"id":28,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":6},{"id":30,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":7}]} -{"planets":[{"ship_count":5,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":5,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":4,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":31,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":1},{"id":23,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":2,"turns_remaining":1},{"id":33,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":2},{"id":36,"ship_count":4,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":5},{"id":34,"ship_count":2,"origin":"tetratos","destination":"tritos","owner":2,"turns_remaining":3},{"id":35,"ship_count":4,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":4},{"id":32,"ship_count":1,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":7},{"id":26,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":4},{"id":30,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":6},{"id":28,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":5}]} -{"planets":[{"ship_count":2,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":9,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":5,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":37,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":10},{"id":28,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":4},{"id":33,"ship_count":2,"origin":"protos","destination":"duteros","owner":2,"turns_remaining":1},{"id":36,"ship_count":4,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":4},{"id":34,"ship_count":2,"origin":"tetratos","destination":"tritos","owner":2,"turns_remaining":2},{"id":35,"ship_count":4,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":3},{"id":32,"ship_count":1,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":6},{"id":26,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":3},{"id":30,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":5}]} -{"planets":[{"ship_count":3,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":4,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":6,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":37,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":9},{"id":28,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":3},{"id":38,"ship_count":8,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":5},{"id":36,"ship_count":4,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":3},{"id":34,"ship_count":2,"origin":"tetratos","destination":"tritos","owner":2,"turns_remaining":1},{"id":35,"ship_count":4,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":2},{"id":32,"ship_count":1,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":5},{"id":26,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":2},{"id":30,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":4}]} -{"planets":[{"ship_count":4,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":5,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":4,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":37,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":8},{"id":28,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":2},{"id":38,"ship_count":8,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":4},{"id":36,"ship_count":4,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":2},{"id":39,"ship_count":5,"origin":"tetratos","destination":"tritos","owner":2,"turns_remaining":5},{"id":35,"ship_count":4,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":1},{"id":32,"ship_count":1,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":4},{"id":26,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":1},{"id":30,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":3}]} -{"planets":[{"ship_count":5,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":2,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":0,"x":3.0,"y":5.0,"owner":null,"name":"tritos"},{"ship_count":1,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":37,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":7},{"id":28,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":1},{"id":38,"ship_count":8,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":3},{"id":36,"ship_count":4,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":1},{"id":39,"ship_count":5,"origin":"tetratos","destination":"tritos","owner":2,"turns_remaining":4},{"id":40,"ship_count":4,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":5},{"id":32,"ship_count":1,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":3},{"id":30,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":2}]} -{"planets":[{"ship_count":2,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":3,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":4,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":0,"x":6.0,"y":0.0,"owner":null,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":37,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":6},{"id":41,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":10},{"id":38,"ship_count":8,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":2},{"id":30,"ship_count":2,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":1},{"id":39,"ship_count":5,"origin":"tetratos","destination":"tritos","owner":2,"turns_remaining":3},{"id":40,"ship_count":4,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":4},{"id":32,"ship_count":1,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":2}]} -{"planets":[{"ship_count":3,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":4,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":2,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":1,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":37,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":5},{"id":41,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":9},{"id":38,"ship_count":8,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":1},{"id":42,"ship_count":3,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":5},{"id":39,"ship_count":5,"origin":"tetratos","destination":"tritos","owner":2,"turns_remaining":2},{"id":40,"ship_count":4,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":3},{"id":32,"ship_count":1,"origin":"duteros","destination":"tetratos","owner":1,"turns_remaining":1}]} -{"planets":[{"ship_count":4,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":2,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":11,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":3,"x":6.0,"y":0.0,"owner":1,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":37,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":4},{"id":41,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":8},{"id":44,"ship_count":3,"origin":"duteros","destination":"tetratos","owner":2,"turns_remaining":10},{"id":42,"ship_count":3,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":4},{"id":39,"ship_count":5,"origin":"tetratos","destination":"tritos","owner":2,"turns_remaining":1},{"id":40,"ship_count":4,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":2},{"id":43,"ship_count":1,"origin":"tetratos","destination":"tritos","owner":1,"turns_remaining":5}]} -{"planets":[{"ship_count":5,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":3,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":7,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":1,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":37,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":3},{"id":41,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":7},{"id":44,"ship_count":3,"origin":"duteros","destination":"tetratos","owner":2,"turns_remaining":9},{"id":42,"ship_count":3,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":3},{"id":46,"ship_count":10,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":5},{"id":40,"ship_count":4,"origin":"duteros","destination":"tritos","owner":2,"turns_remaining":1},{"id":43,"ship_count":1,"origin":"tetratos","destination":"tritos","owner":1,"turns_remaining":4},{"id":45,"ship_count":2,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":10}]} -{"planets":[{"ship_count":6,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":4,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":1,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":37,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":2},{"id":41,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":6},{"id":44,"ship_count":3,"origin":"duteros","destination":"tetratos","owner":2,"turns_remaining":8},{"id":42,"ship_count":3,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":2},{"id":46,"ship_count":10,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":4},{"id":48,"ship_count":6,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":5},{"id":43,"ship_count":1,"origin":"tetratos","destination":"tritos","owner":1,"turns_remaining":3},{"id":45,"ship_count":2,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":9},{"id":47,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":10}]} -{"planets":[{"ship_count":2,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":5,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":7,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":1,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":37,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":1},{"id":41,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":5},{"id":44,"ship_count":3,"origin":"duteros","destination":"tetratos","owner":2,"turns_remaining":7},{"id":42,"ship_count":3,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":1},{"id":46,"ship_count":10,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":3},{"id":48,"ship_count":6,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":4},{"id":43,"ship_count":1,"origin":"tetratos","destination":"tritos","owner":1,"turns_remaining":2},{"id":45,"ship_count":2,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":8},{"id":47,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":9},{"id":49,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":10},{"id":50,"ship_count":5,"origin":"protos","destination":"tetratos","owner":2,"turns_remaining":11}]} -{"planets":[{"ship_count":3,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":6,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":1,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":52,"ship_count":6,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":5},{"id":41,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":4},{"id":44,"ship_count":3,"origin":"duteros","destination":"tetratos","owner":2,"turns_remaining":6},{"id":51,"ship_count":1,"origin":"tetratos","destination":"protos","owner":1,"turns_remaining":11},{"id":46,"ship_count":10,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":2},{"id":48,"ship_count":6,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":3},{"id":43,"ship_count":1,"origin":"tetratos","destination":"tritos","owner":1,"turns_remaining":1},{"id":45,"ship_count":2,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":7},{"id":47,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":8},{"id":49,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":9},{"id":50,"ship_count":5,"origin":"protos","destination":"tetratos","owner":2,"turns_remaining":10}]} -{"planets":[{"ship_count":4,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":2,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":52,"ship_count":6,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":4},{"id":41,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":3},{"id":44,"ship_count":3,"origin":"duteros","destination":"tetratos","owner":2,"turns_remaining":5},{"id":51,"ship_count":1,"origin":"tetratos","destination":"protos","owner":1,"turns_remaining":10},{"id":46,"ship_count":10,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":1},{"id":48,"ship_count":6,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":2},{"id":53,"ship_count":5,"origin":"duteros","destination":"pemptos","owner":2,"turns_remaining":11},{"id":45,"ship_count":2,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":6},{"id":47,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":7},{"id":49,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":8},{"id":50,"ship_count":5,"origin":"protos","destination":"tetratos","owner":2,"turns_remaining":9}]} -{"planets":[{"ship_count":5,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":3,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":2,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":13,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":52,"ship_count":6,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":3},{"id":41,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":2},{"id":44,"ship_count":3,"origin":"duteros","destination":"tetratos","owner":2,"turns_remaining":4},{"id":51,"ship_count":1,"origin":"tetratos","destination":"protos","owner":1,"turns_remaining":9},{"id":54,"ship_count":5,"origin":"tritos","destination":"pemptos","owner":2,"turns_remaining":9},{"id":48,"ship_count":6,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":1},{"id":53,"ship_count":5,"origin":"duteros","destination":"pemptos","owner":2,"turns_remaining":10},{"id":45,"ship_count":2,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":5},{"id":47,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":6},{"id":49,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":7},{"id":50,"ship_count":5,"origin":"protos","destination":"tetratos","owner":2,"turns_remaining":8}]} -{"planets":[{"ship_count":6,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":4,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":3,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":8,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":52,"ship_count":6,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":2},{"id":41,"ship_count":4,"origin":"protos","destination":"tritos","owner":2,"turns_remaining":1},{"id":44,"ship_count":3,"origin":"duteros","destination":"tetratos","owner":2,"turns_remaining":3},{"id":51,"ship_count":1,"origin":"tetratos","destination":"protos","owner":1,"turns_remaining":8},{"id":54,"ship_count":5,"origin":"tritos","destination":"pemptos","owner":2,"turns_remaining":8},{"id":55,"ship_count":12,"origin":"tetratos","destination":"pemptos","owner":2,"turns_remaining":5},{"id":53,"ship_count":5,"origin":"duteros","destination":"pemptos","owner":2,"turns_remaining":9},{"id":45,"ship_count":2,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":4},{"id":47,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":5},{"id":49,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":6},{"id":50,"ship_count":5,"origin":"protos","destination":"tetratos","owner":2,"turns_remaining":7}]} -{"planets":[{"ship_count":7,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":5,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":8,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":52,"ship_count":6,"origin":"tritos","destination":"tetratos","owner":2,"turns_remaining":1},{"id":56,"ship_count":7,"origin":"tetratos","destination":"pemptos","owner":2,"turns_remaining":5},{"id":44,"ship_count":3,"origin":"duteros","destination":"tetratos","owner":2,"turns_remaining":2},{"id":51,"ship_count":1,"origin":"tetratos","destination":"protos","owner":1,"turns_remaining":7},{"id":54,"ship_count":5,"origin":"tritos","destination":"pemptos","owner":2,"turns_remaining":7},{"id":55,"ship_count":12,"origin":"tetratos","destination":"pemptos","owner":2,"turns_remaining":4},{"id":53,"ship_count":5,"origin":"duteros","destination":"pemptos","owner":2,"turns_remaining":8},{"id":45,"ship_count":2,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":3},{"id":47,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":4},{"id":49,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":5},{"id":50,"ship_count":5,"origin":"protos","destination":"tetratos","owner":2,"turns_remaining":6}]} -{"planets":[{"ship_count":8,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":6,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":2,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":9,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":57,"ship_count":7,"origin":"tritos","destination":"pemptos","owner":2,"turns_remaining":9},{"id":56,"ship_count":7,"origin":"tetratos","destination":"pemptos","owner":2,"turns_remaining":4},{"id":44,"ship_count":3,"origin":"duteros","destination":"tetratos","owner":2,"turns_remaining":1},{"id":51,"ship_count":1,"origin":"tetratos","destination":"protos","owner":1,"turns_remaining":6},{"id":54,"ship_count":5,"origin":"tritos","destination":"pemptos","owner":2,"turns_remaining":6},{"id":55,"ship_count":12,"origin":"tetratos","destination":"pemptos","owner":2,"turns_remaining":3},{"id":53,"ship_count":5,"origin":"duteros","destination":"pemptos","owner":2,"turns_remaining":7},{"id":45,"ship_count":2,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":2},{"id":47,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":3},{"id":49,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":4},{"id":50,"ship_count":5,"origin":"protos","destination":"tetratos","owner":2,"turns_remaining":5}]} -{"planets":[{"ship_count":9,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":7,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":3,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":5,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":57,"ship_count":7,"origin":"tritos","destination":"pemptos","owner":2,"turns_remaining":8},{"id":56,"ship_count":7,"origin":"tetratos","destination":"pemptos","owner":2,"turns_remaining":3},{"id":58,"ship_count":8,"origin":"tetratos","destination":"pemptos","owner":2,"turns_remaining":5},{"id":51,"ship_count":1,"origin":"tetratos","destination":"protos","owner":1,"turns_remaining":5},{"id":54,"ship_count":5,"origin":"tritos","destination":"pemptos","owner":2,"turns_remaining":5},{"id":55,"ship_count":12,"origin":"tetratos","destination":"pemptos","owner":2,"turns_remaining":2},{"id":53,"ship_count":5,"origin":"duteros","destination":"pemptos","owner":2,"turns_remaining":6},{"id":45,"ship_count":2,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":1},{"id":47,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":2},{"id":49,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":3},{"id":50,"ship_count":5,"origin":"protos","destination":"tetratos","owner":2,"turns_remaining":4}]} -{"planets":[{"ship_count":2,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":6,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":4,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":6,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":null,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":57,"ship_count":7,"origin":"tritos","destination":"pemptos","owner":2,"turns_remaining":7},{"id":56,"ship_count":7,"origin":"tetratos","destination":"pemptos","owner":2,"turns_remaining":2},{"id":58,"ship_count":8,"origin":"tetratos","destination":"pemptos","owner":2,"turns_remaining":4},{"id":51,"ship_count":1,"origin":"tetratos","destination":"protos","owner":1,"turns_remaining":4},{"id":54,"ship_count":5,"origin":"tritos","destination":"pemptos","owner":2,"turns_remaining":4},{"id":55,"ship_count":12,"origin":"tetratos","destination":"pemptos","owner":2,"turns_remaining":1},{"id":53,"ship_count":5,"origin":"duteros","destination":"pemptos","owner":2,"turns_remaining":5},{"id":59,"ship_count":8,"origin":"protos","destination":"pemptos","owner":2,"turns_remaining":10},{"id":47,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":1},{"id":49,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":2},{"id":50,"ship_count":5,"origin":"protos","destination":"tetratos","owner":2,"turns_remaining":3}]} -{"planets":[{"ship_count":3,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":1,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":5,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":7,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":6,"x":3.0,"y":-5.0,"owner":2,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":57,"ship_count":7,"origin":"tritos","destination":"pemptos","owner":2,"turns_remaining":6},{"id":56,"ship_count":7,"origin":"tetratos","destination":"pemptos","owner":2,"turns_remaining":1},{"id":58,"ship_count":8,"origin":"tetratos","destination":"pemptos","owner":2,"turns_remaining":3},{"id":51,"ship_count":1,"origin":"tetratos","destination":"protos","owner":1,"turns_remaining":3},{"id":54,"ship_count":5,"origin":"tritos","destination":"pemptos","owner":2,"turns_remaining":3},{"id":60,"ship_count":5,"origin":"duteros","destination":"pemptos","owner":2,"turns_remaining":11},{"id":53,"ship_count":5,"origin":"duteros","destination":"pemptos","owner":2,"turns_remaining":4},{"id":59,"ship_count":8,"origin":"protos","destination":"pemptos","owner":2,"turns_remaining":9},{"id":50,"ship_count":5,"origin":"protos","destination":"tetratos","owner":2,"turns_remaining":2},{"id":49,"ship_count":1,"origin":"tetratos","destination":"duteros","owner":1,"turns_remaining":1}]} -{"planets":[{"ship_count":4,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":1,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":6,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":14,"x":3.0,"y":-5.0,"owner":2,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":57,"ship_count":7,"origin":"tritos","destination":"pemptos","owner":2,"turns_remaining":5},{"id":61,"ship_count":6,"origin":"tetratos","destination":"extos","owner":2,"turns_remaining":10},{"id":58,"ship_count":8,"origin":"tetratos","destination":"pemptos","owner":2,"turns_remaining":2},{"id":51,"ship_count":1,"origin":"tetratos","destination":"protos","owner":1,"turns_remaining":2},{"id":54,"ship_count":5,"origin":"tritos","destination":"pemptos","owner":2,"turns_remaining":2},{"id":60,"ship_count":5,"origin":"duteros","destination":"pemptos","owner":2,"turns_remaining":10},{"id":53,"ship_count":5,"origin":"duteros","destination":"pemptos","owner":2,"turns_remaining":3},{"id":59,"ship_count":8,"origin":"protos","destination":"pemptos","owner":2,"turns_remaining":8},{"id":50,"ship_count":5,"origin":"protos","destination":"tetratos","owner":2,"turns_remaining":1}]} -{"planets":[{"ship_count":5,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":2,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":7,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":8,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":2,"x":3.0,"y":-5.0,"owner":2,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":57,"ship_count":7,"origin":"tritos","destination":"pemptos","owner":2,"turns_remaining":4},{"id":61,"ship_count":6,"origin":"tetratos","destination":"extos","owner":2,"turns_remaining":9},{"id":58,"ship_count":8,"origin":"tetratos","destination":"pemptos","owner":2,"turns_remaining":1},{"id":51,"ship_count":1,"origin":"tetratos","destination":"protos","owner":1,"turns_remaining":1},{"id":54,"ship_count":5,"origin":"tritos","destination":"pemptos","owner":2,"turns_remaining":1},{"id":60,"ship_count":5,"origin":"duteros","destination":"pemptos","owner":2,"turns_remaining":9},{"id":53,"ship_count":5,"origin":"duteros","destination":"pemptos","owner":2,"turns_remaining":2},{"id":59,"ship_count":8,"origin":"protos","destination":"pemptos","owner":2,"turns_remaining":7},{"id":62,"ship_count":13,"origin":"pemptos","destination":"extos","owner":2,"turns_remaining":5}]} -{"planets":[{"ship_count":5,"x":-6.0,"y":0.0,"owner":2,"name":"protos"},{"ship_count":3,"x":-3.0,"y":5.0,"owner":2,"name":"duteros"},{"ship_count":8,"x":3.0,"y":5.0,"owner":2,"name":"tritos"},{"ship_count":2,"x":6.0,"y":0.0,"owner":2,"name":"tetratos"},{"ship_count":16,"x":3.0,"y":-5.0,"owner":2,"name":"pemptos"},{"ship_count":6,"x":-3.0,"y":-5.0,"owner":null,"name":"extos"}],"expeditions":[{"id":57,"ship_count":7,"origin":"tritos","destination":"pemptos","owner":2,"turns_remaining":3},{"id":61,"ship_count":6,"origin":"tetratos","destination":"extos","owner":2,"turns_remaining":8},{"id":63,"ship_count":7,"origin":"tetratos","destination":"extos","owner":2,"turns_remaining":10},{"id":62,"ship_count":13,"origin":"pemptos","destination":"extos","owner":2,"turns_remaining":4},{"id":59,"ship_count":8,"origin":"protos","destination":"pemptos","owner":2,"turns_remaining":6},{"id":60,"ship_count":5,"origin":"duteros","destination":"pemptos","owner":2,"turns_remaining":8},{"id":53,"ship_count":5,"origin":"duteros","destination":"pemptos","owner":2,"turns_remaining":1}]} diff --git a/web/pw-frontend/src/App.svelte b/web/pw-frontend/src/App.svelte index 614cf6f..468b925 100644 --- a/web/pw-frontend/src/App.svelte +++ b/web/pw-frontend/src/App.svelte @@ -1,11 +1,9 @@
- - - +
diff --git a/web/pw-frontend/src/assets/svelte.png b/web/pw-frontend/src/assets/svelte.png deleted file mode 100644 index e673c91..0000000 Binary files a/web/pw-frontend/src/assets/svelte.png and /dev/null differ diff --git a/web/pw-frontend/src/lib/MatchBrowser.svelte b/web/pw-frontend/src/lib/MatchBrowser.svelte new file mode 100644 index 0000000..71fadb2 --- /dev/null +++ b/web/pw-frontend/src/lib/MatchBrowser.svelte @@ -0,0 +1,89 @@ + + +
+ + + diff --git a/web/pw-frontend/src/lib/Visualizer.svelte b/web/pw-frontend/src/lib/Visualizer.svelte index 35b0677..297659c 100644 --- a/web/pw-frontend/src/lib/Visualizer.svelte +++ b/web/pw-frontend/src/lib/Visualizer.svelte @@ -2,12 +2,24 @@ import { onMount } from 'svelte'; import * as visualizer from '../lib/visualizer/index'; + export let matchLog = null; + + let initialized = false; + onMount(() => { visualizer.init(); - fetch("match.log") - .then(response => response.text()) - .then(data => visualizer.set_instance(data)); + initialized = true; + visualizer.set_loading(false); }); + + $: if (initialized) { + if (matchLog === null) { + visualizer.set_loading(true); + } else { + visualizer.set_instance(matchLog); + visualizer.set_loading(false); + } + }
diff --git a/web/pw-frontend/vite.config.js b/web/pw-frontend/vite.config.js index e52edb5..a298f2c 100644 --- a/web/pw-frontend/vite.config.js +++ b/web/pw-frontend/vite.config.js @@ -16,7 +16,10 @@ export default defineConfig({ commonjsOptions: { transformMixedEsModules: true, }, - minify: false, - target: "modules", + }, + server: { + proxy: { + "/api/": "http://localhost:5000", + }, }, }) -- cgit v1.2.3