From cf088a14b3445b55e3f38a215436e012e6e55783 Mon Sep 17 00:00:00 2001 From: Dylan <28832631+DARwins1@users.noreply.github.com> Date: Mon, 23 Jan 2023 21:55:20 -0800 Subject: [PATCH] Fix Issues With Modern WZ Versions - Mod now comes with its own copy of libcampaign, this should reduce the chances of future updates breaking scripts. - Updated nexus.js and victory.js to match their modern base counterparts. - Implemented the improved "Under Attack!" message system from Fractured Kingdom. - Made propulsions use the new single-model system. - Updated Super Cyborgs and Cyborg Mechanics to use their modern models. --- Changelog.txt | 12 + components/weapons/cy_rep.pie | 99 +- components/weapons/scbody.pie | 90 +- .../campaign/libcampaign_includes/artifact.js | 213 ++ script/campaign/libcampaign_includes/base.js | 347 +++ script/campaign/libcampaign_includes/debug.js | 185 ++ .../campaign/libcampaign_includes/events.js | 385 +++ script/campaign/libcampaign_includes/group.js | 117 + script/campaign/libcampaign_includes/hook.js | 61 + script/campaign/libcampaign_includes/misc.js | 616 +++++ script/campaign/libcampaign_includes/nexus.js | 74 +- .../libcampaign_includes/production.js | 447 ++++ .../libcampaign_includes/reinforcements.js | 97 + .../campaign/libcampaign_includes/research.js | 76 + .../campaign/libcampaign_includes/tactics.js | 697 ++++++ script/campaign/libcampaign_includes/time.js | 53 + .../libcampaign_includes/transport.js | 170 ++ script/campaign/libcampaign_includes/truck.js | 166 ++ .../campaign/libcampaign_includes/victory.js | 200 +- script/campaign/libcampaign_includes/video.js | 103 + script/campaign/libcampaign_includes/vtol.js | 259 +++ script/rules.js | 470 ++++ stats/body.json | 443 ++-- stats/propulsion.json | 20 +- wrf/cam1/cam1c.gam | Bin 0 -> 52 bytes wrf/cam1/cam1c/droid.ini | 476 ++++ wrf/cam1/cam1c/feature.ini | 516 +++++ wrf/cam1/cam1c/labels.ini | 0 wrf/cam1/cam1c/labels.json | 244 ++ wrf/cam1/cam1c/struct.ini | 1826 +++++++++++++++ wrf/cam1/sub1-1.gam | Bin 0 -> 52 bytes wrf/cam1/sub1-3.gam | Bin 0 -> 52 bytes wrf/cam1/sub1-3/labels.ini | 0 wrf/cam1/sub1-3/struct.ini | 552 +++++ wrf/cam1/sub1-5.gam | Bin 0 -> 52 bytes wrf/cam1/sub1-5/droid.ini | 280 +++ wrf/cam1/sub1-5/feature.ini | 384 +++ wrf/cam1/sub1-5/labels.ini | 0 wrf/cam1/sub1-d.gam | Bin 0 -> 52 bytes wrf/cam1/sub1-d/droid.ini | 490 ++++ wrf/cam1/sub1-d/feature.ini | 180 ++ wrf/cam1/sub1-d/labels.ini | 0 wrf/cam2/cam2b.gam | Bin 0 -> 52 bytes wrf/cam2/cam2b/droid.ini | 336 +++ wrf/cam2/cam2b/feature.ini | 510 ++++ wrf/cam2/cam2b/game.map | Bin 0 -> 49852 bytes wrf/cam2/cam2b/labels.ini | 0 wrf/cam2/cam2b/struct.ini | 1008 ++++++++ wrf/cam2/cam2b/ttypes.ttp | Bin 0 -> 204 bytes wrf/cam2/cam2c.gam | Bin 0 -> 52 bytes wrf/cam2/cam2c/droid.ini | 462 ++++ wrf/cam2/cam2c/feature.ini | 1110 +++++++++ wrf/cam2/cam2c/game.map | Bin 0 -> 49852 bytes wrf/cam2/cam2c/labels.ini | 0 wrf/cam2/cam2c/struct.ini | 792 +++++++ wrf/cam2/cam2c/ttypes.ttp | Bin 0 -> 204 bytes wrf/cam2/cam2start.gam | Bin 0 -> 52 bytes wrf/cam2/cam2start/droid.ini | 217 ++ wrf/cam2/cam2start/feature.ini | 120 + wrf/cam2/cam2start/labels.ini | 0 wrf/cam2/cam2start/struct.ini | 839 +++++++ wrf/cam2/sub2-1.gam | Bin 0 -> 52 bytes wrf/cam2/sub2-1/droid.ini | 161 ++ wrf/cam2/sub2-1/feature.ini | 414 ++++ wrf/cam2/sub2-1/labels.ini | 0 wrf/cam2/sub2-1/struct.ini | 496 ++++ wrf/cam2/sub2-2.gam | Bin 0 -> 52 bytes wrf/cam2/sub2-2/droid.ini | 91 + wrf/cam2/sub2-2/feature.ini | 510 ++++ wrf/cam2/sub2-2/labels.ini | 0 wrf/cam2/sub2-2/struct.ini | 1176 ++++++++++ wrf/cam2/sub2-5.gam | Bin 0 -> 52 bytes wrf/cam2/sub2-5/droid.ini | 364 +++ wrf/cam2/sub2-5/feature.ini | 672 ++++++ wrf/cam2/sub2-5/labels.ini | 0 wrf/cam2/sub2-5/struct.ini | 1592 +++++++++++++ wrf/cam2/sub2-6.gam | Bin 0 -> 52 bytes wrf/cam2/sub2-6/droid.ini | 385 +++ wrf/cam2/sub2-6/feature.ini | 240 ++ wrf/cam2/sub2-6/labels.ini | 0 wrf/cam2/sub2-6/struct.ini | 1712 ++++++++++++++ wrf/cam2/sub2-7.gam | Bin 0 -> 52 bytes wrf/cam2/sub2-7/droid.ini | 175 ++ wrf/cam2/sub2-7/feature.ini | 354 +++ wrf/cam2/sub2-7/labels.ini | 0 wrf/cam2/sub2-7/struct.ini | 2056 +++++++++++++++++ wrf/cam2/sub2-8.gam | Bin 0 -> 52 bytes wrf/cam2/sub2-8/droid.ini | 238 ++ wrf/cam2/sub2-8/feature.ini | 180 ++ wrf/cam2/sub2-8/labels.ini | 0 wrf/cam2/sub2-8/struct.ini | 1184 ++++++++++ wrf/cam2/sub2-d.gam | Bin 0 -> 52 bytes wrf/cam2/sub2-d/droid.ini | 84 + wrf/cam2/sub2-d/feature.ini | 216 ++ wrf/cam2/sub2-d/labels.ini | 0 wrf/cam2/sub2-d/struct.ini | 1768 ++++++++++++++ wrf/cam3/cam3-4.gam | Bin 0 -> 52 bytes wrf/cam3/cam3-4/labels.ini | 0 wrf/cam3/cam3-4/ttypes.ttp | Bin 0 -> 192 bytes wrf/cam3/cam3a.gam | Bin 0 -> 52 bytes wrf/cam3/cam3a/droid.ini | 189 ++ wrf/cam3/cam3a/feature.ini | 180 ++ wrf/cam3/cam3a/labels.ini | 0 wrf/cam3/cam3a/struct.ini | 792 +++++++ wrf/cam3/cam3b.gam | Bin 0 -> 52 bytes wrf/cam3/cam3b/droid.ini | 322 +++ wrf/cam3/cam3b/feature.ini | 6 + wrf/cam3/cam3b/labels.ini | 0 wrf/cam3/cam3c.gam | Bin 0 -> 52 bytes wrf/cam3/cam3c/droid.ini | 182 ++ wrf/cam3/cam3c/feature.ini | 516 +++++ wrf/cam3/cam3c/game.map | Bin 0 -> 49572 bytes wrf/cam3/cam3c/labels.ini | 0 wrf/cam3/cam3c/ttypes.ttp | Bin 0 -> 192 bytes wrf/cam3/cam3d.gam | Bin 0 -> 52 bytes wrf/cam3/cam3d/game.map | Bin 0 -> 49572 bytes wrf/cam3/cam3d/labels.ini | 0 wrf/cam3/cam3d/ttypes.ttp | Bin 0 -> 192 bytes wrf/cam3/sub3-1.gam | Bin 0 -> 52 bytes wrf/cam3/sub3-1/droid.ini | 133 ++ wrf/cam3/sub3-1/feature.ini | 630 +++++ wrf/cam3/sub3-1/labels.ini | 0 wrf/cam3/sub3-1/struct.ini | 872 +++++++ 123 files changed, 33143 insertions(+), 489 deletions(-) create mode 100644 script/campaign/libcampaign_includes/artifact.js create mode 100644 script/campaign/libcampaign_includes/base.js create mode 100644 script/campaign/libcampaign_includes/debug.js create mode 100644 script/campaign/libcampaign_includes/events.js create mode 100644 script/campaign/libcampaign_includes/group.js create mode 100644 script/campaign/libcampaign_includes/hook.js create mode 100644 script/campaign/libcampaign_includes/misc.js create mode 100644 script/campaign/libcampaign_includes/production.js create mode 100644 script/campaign/libcampaign_includes/reinforcements.js create mode 100644 script/campaign/libcampaign_includes/research.js create mode 100644 script/campaign/libcampaign_includes/tactics.js create mode 100644 script/campaign/libcampaign_includes/time.js create mode 100644 script/campaign/libcampaign_includes/transport.js create mode 100644 script/campaign/libcampaign_includes/truck.js create mode 100644 script/campaign/libcampaign_includes/video.js create mode 100644 script/campaign/libcampaign_includes/vtol.js create mode 100644 script/rules.js create mode 100644 wrf/cam1/cam1c.gam create mode 100644 wrf/cam1/cam1c/droid.ini create mode 100644 wrf/cam1/cam1c/feature.ini create mode 100644 wrf/cam1/cam1c/labels.ini create mode 100644 wrf/cam1/cam1c/labels.json create mode 100644 wrf/cam1/cam1c/struct.ini create mode 100644 wrf/cam1/sub1-1.gam create mode 100644 wrf/cam1/sub1-3.gam create mode 100644 wrf/cam1/sub1-3/labels.ini create mode 100644 wrf/cam1/sub1-3/struct.ini create mode 100644 wrf/cam1/sub1-5.gam create mode 100644 wrf/cam1/sub1-5/droid.ini create mode 100644 wrf/cam1/sub1-5/feature.ini create mode 100644 wrf/cam1/sub1-5/labels.ini create mode 100644 wrf/cam1/sub1-d.gam create mode 100644 wrf/cam1/sub1-d/droid.ini create mode 100644 wrf/cam1/sub1-d/feature.ini create mode 100644 wrf/cam1/sub1-d/labels.ini create mode 100644 wrf/cam2/cam2b.gam create mode 100644 wrf/cam2/cam2b/droid.ini create mode 100644 wrf/cam2/cam2b/feature.ini create mode 100644 wrf/cam2/cam2b/game.map create mode 100644 wrf/cam2/cam2b/labels.ini create mode 100644 wrf/cam2/cam2b/struct.ini create mode 100644 wrf/cam2/cam2b/ttypes.ttp create mode 100644 wrf/cam2/cam2c.gam create mode 100644 wrf/cam2/cam2c/droid.ini create mode 100644 wrf/cam2/cam2c/feature.ini create mode 100644 wrf/cam2/cam2c/game.map create mode 100644 wrf/cam2/cam2c/labels.ini create mode 100644 wrf/cam2/cam2c/struct.ini create mode 100644 wrf/cam2/cam2c/ttypes.ttp create mode 100644 wrf/cam2/cam2start.gam create mode 100644 wrf/cam2/cam2start/droid.ini create mode 100644 wrf/cam2/cam2start/feature.ini create mode 100644 wrf/cam2/cam2start/labels.ini create mode 100644 wrf/cam2/cam2start/struct.ini create mode 100644 wrf/cam2/sub2-1.gam create mode 100644 wrf/cam2/sub2-1/droid.ini create mode 100644 wrf/cam2/sub2-1/feature.ini create mode 100644 wrf/cam2/sub2-1/labels.ini create mode 100644 wrf/cam2/sub2-1/struct.ini create mode 100644 wrf/cam2/sub2-2.gam create mode 100644 wrf/cam2/sub2-2/droid.ini create mode 100644 wrf/cam2/sub2-2/feature.ini create mode 100644 wrf/cam2/sub2-2/labels.ini create mode 100644 wrf/cam2/sub2-2/struct.ini create mode 100644 wrf/cam2/sub2-5.gam create mode 100644 wrf/cam2/sub2-5/droid.ini create mode 100644 wrf/cam2/sub2-5/feature.ini create mode 100644 wrf/cam2/sub2-5/labels.ini create mode 100644 wrf/cam2/sub2-5/struct.ini create mode 100644 wrf/cam2/sub2-6.gam create mode 100644 wrf/cam2/sub2-6/droid.ini create mode 100644 wrf/cam2/sub2-6/feature.ini create mode 100644 wrf/cam2/sub2-6/labels.ini create mode 100644 wrf/cam2/sub2-6/struct.ini create mode 100644 wrf/cam2/sub2-7.gam create mode 100644 wrf/cam2/sub2-7/droid.ini create mode 100644 wrf/cam2/sub2-7/feature.ini create mode 100644 wrf/cam2/sub2-7/labels.ini create mode 100644 wrf/cam2/sub2-7/struct.ini create mode 100644 wrf/cam2/sub2-8.gam create mode 100644 wrf/cam2/sub2-8/droid.ini create mode 100644 wrf/cam2/sub2-8/feature.ini create mode 100644 wrf/cam2/sub2-8/labels.ini create mode 100644 wrf/cam2/sub2-8/struct.ini create mode 100644 wrf/cam2/sub2-d.gam create mode 100644 wrf/cam2/sub2-d/droid.ini create mode 100644 wrf/cam2/sub2-d/feature.ini create mode 100644 wrf/cam2/sub2-d/labels.ini create mode 100644 wrf/cam2/sub2-d/struct.ini create mode 100644 wrf/cam3/cam3-4.gam create mode 100644 wrf/cam3/cam3-4/labels.ini create mode 100644 wrf/cam3/cam3-4/ttypes.ttp create mode 100644 wrf/cam3/cam3a.gam create mode 100644 wrf/cam3/cam3a/droid.ini create mode 100644 wrf/cam3/cam3a/feature.ini create mode 100644 wrf/cam3/cam3a/labels.ini create mode 100644 wrf/cam3/cam3a/struct.ini create mode 100644 wrf/cam3/cam3b.gam create mode 100644 wrf/cam3/cam3b/droid.ini create mode 100644 wrf/cam3/cam3b/feature.ini create mode 100644 wrf/cam3/cam3b/labels.ini create mode 100644 wrf/cam3/cam3c.gam create mode 100644 wrf/cam3/cam3c/droid.ini create mode 100644 wrf/cam3/cam3c/feature.ini create mode 100644 wrf/cam3/cam3c/game.map create mode 100644 wrf/cam3/cam3c/labels.ini create mode 100644 wrf/cam3/cam3c/ttypes.ttp create mode 100644 wrf/cam3/cam3d.gam create mode 100644 wrf/cam3/cam3d/game.map create mode 100644 wrf/cam3/cam3d/labels.ini create mode 100644 wrf/cam3/cam3d/ttypes.ttp create mode 100644 wrf/cam3/sub3-1.gam create mode 100644 wrf/cam3/sub3-1/droid.ini create mode 100644 wrf/cam3/sub3-1/feature.ini create mode 100644 wrf/cam3/sub3-1/labels.ini create mode 100644 wrf/cam3/sub3-1/struct.ini diff --git a/Changelog.txt b/Changelog.txt index bf3f268..e9215b3 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,4 +1,16 @@ Changelog: +Refactored v2.5.4 + +Update with bugfixes to work with recent versions. + +Changes: +- Mod now comes with its own copy of libcampaign, this should reduce the chances of future updates breaking scripts. +- Updated nexus.js and victory.js to match their modern base counterparts. +- Implemented the improved "Under Attack!" message system from Fractured Kingdom. +- Made propulsions use the new single-model system. +- Updated Super Cyborgs and Cyborg Mechanics to use their modern models. + + Refactored v2.5.3 Update with some minor tweaks. diff --git a/components/weapons/cy_rep.pie b/components/weapons/cy_rep.pie index 29e489a..1d68399 100644 --- a/components/weapons/cy_rep.pie +++ b/components/weapons/cy_rep.pie @@ -3,17 +3,15 @@ TYPE 200 TEXTURE 0 page-17-droid-weapons.png 0 0 LEVELS 1 LEVEL 1 -POINTS 29 - 0 7 -4 - -3 0 -9 - -3 8 -19 - 0 12 -15 - 3 0 -9 - 3 8 -19 - 0 1 -32 - 0 12 -24 +POINTS 27 + 0 13 -15 -3 8 -20 + -3 0 -8 + 0 7 -4 3 8 -20 + 3 0 -8 + 0 12 -24 + 0 1 -32 -3 13 -15 -3 18 -19 -3 13 -25 @@ -33,46 +31,47 @@ POINTS 29 4 -7 -4 4 7 -4 4 7 4 -POLYGONS 40 - 200 3 0 1 2 0.140625 0.730469 0.121094 0.730469 0.121094 0.707031 - 200 3 0 2 3 0.140625 0.730469 0.121094 0.707031 0.140625 0.707031 - 200 3 3 2 1 0.140625 0.707031 0.121094 0.707031 0.121094 0.730469 - 200 3 3 1 0 0.140625 0.707031 0.121094 0.730469 0.140625 0.730469 - 200 3 4 0 3 0.121094 0.730469 0.140625 0.730469 0.140625 0.707031 - 200 3 4 3 5 0.121094 0.730469 0.140625 0.707031 0.121094 0.707031 - 200 3 5 3 0 0.121094 0.707031 0.140625 0.707031 0.140625 0.730469 - 200 3 5 0 4 0.121094 0.707031 0.140625 0.730469 0.121094 0.730469 - 200 3 6 7 8 0.132812 0.707031 0.140625 0.730469 0.121094 0.730469 - 200 3 8 7 6 0.121094 0.730469 0.140625 0.730469 0.132812 0.707031 - 200 3 6 9 7 0.132812 0.707031 0.121094 0.730469 0.140625 0.730469 - 200 3 7 9 6 0.140625 0.730469 0.121094 0.730469 0.132812 0.707031 - 200 3 8 10 11 0.789062 0.914062 0.789062 0.875 0.75 0.875 - 200 3 8 11 12 0.789062 0.914062 0.75 0.875 0.75 0.914062 - 200 3 13 14 15 0.75 0.875 0.789062 0.875 0.789062 0.914062 - 200 3 13 15 16 0.75 0.875 0.789062 0.914062 0.75 0.914062 - 200 3 16 15 8 0.0078125 0.691406 0 0.691406 0 0.746094 - 200 3 16 8 12 0.0078125 0.691406 0 0.746094 0.0078125 0.746094 - 200 3 15 14 10 0 0.691406 0.015625 0.691406 0.015625 0.746094 - 200 3 15 10 8 0 0.691406 0.015625 0.746094 0 0.746094 - 200 3 14 13 11 0.015625 0.691406 0.0234375 0.691406 0.0234375 0.746094 - 200 3 14 11 10 0.015625 0.691406 0.0234375 0.746094 0.015625 0.746094 - 200 3 13 16 12 0.0234375 0.691406 0.0078125 0.691406 0.0078125 0.746094 - 200 3 13 12 11 0.0234375 0.691406 0.0078125 0.746094 0.0234375 0.746094 - 200 3 17 18 19 0.789062 0.894531 0.75 0.894531 0.761719 0.914062 - 200 3 17 19 20 0.789062 0.894531 0.761719 0.914062 0.777344 0.914062 - 200 3 17 21 22 0.789062 0.894531 0.777344 0.875 0.761719 0.875 - 200 3 17 22 18 0.789062 0.894531 0.761719 0.875 0.75 0.894531 - 200 3 23 24 25 0.75 0.894531 0.789062 0.894531 0.777344 0.914062 - 200 3 23 25 26 0.75 0.894531 0.777344 0.914062 0.761719 0.914062 - 200 3 24 23 27 0.789062 0.894531 0.75 0.894531 0.761719 0.875 - 200 3 24 27 28 0.789062 0.894531 0.761719 0.875 0.777344 0.875 - 200 3 24 28 21 0.0117188 0.691406 0.0234375 0.691406 0.0234375 0.746094 - 200 3 24 21 17 0.0117188 0.691406 0.0234375 0.746094 0.0117188 0.746094 - 200 3 27 23 18 0.0234375 0.691406 0.0117188 0.691406 0.0117188 0.746094 - 200 3 27 18 22 0.0234375 0.691406 0.0117188 0.746094 0.0234375 0.746094 - 200 3 23 26 19 0.0117188 0.691406 0 0.691406 0 0.746094 - 200 3 23 19 18 0.0117188 0.691406 0 0.746094 0.0117188 0.746094 - 200 3 25 24 17 0 0.691406 0.0117188 0.691406 0.0117188 0.746094 - 200 3 25 17 20 0 0.691406 0.0117188 0.746094 0 0.746094 +POLYGONS 41 + 200 3 0 1 2 0.140625 0.707031 0.121094 0.707031 0.121094 0.730469 + 200 3 0 2 3 0.140625 0.707031 0.121094 0.730469 0.140625 0.730469 + 200 3 4 0 3 0.121094 0.707031 0.140625 0.707031 0.140625 0.730469 + 200 3 4 3 5 0.121094 0.707031 0.140625 0.730469 0.121094 0.730469 + 200 3 1 6 7 0.121094 0.730469 0.140625 0.730469 0.132812 0.707031 + 200 3 6 4 7 0.140625 0.730469 0.121094 0.730469 0.132812 0.707031 + 200 3 1 8 9 0.787207 0.912207 0.787207 0.876855 0.751855 0.876855 + 200 3 1 9 10 0.787207 0.912207 0.751855 0.876855 0.751855 0.912207 + 200 3 11 12 13 0.751855 0.876855 0.787207 0.876855 0.787207 0.912207 + 200 3 11 13 14 0.751855 0.876855 0.787207 0.912207 0.751855 0.912207 + 200 3 14 13 1 0.00843039 0.691406 0.00185143 0.691406 0.00185143 0.746094 + 200 3 14 1 10 0.00843039 0.691406 0.00185143 0.746094 0.00843039 0.746094 + 200 3 13 12 8 0.00185143 0.691406 0.0150094 0.691406 0.0150094 0.746094 + 200 3 13 8 1 0.00185143 0.691406 0.0150094 0.746094 0.00185143 0.746094 + 200 3 12 11 9 0.0150094 0.691406 0.0215883 0.691406 0.0215883 0.746094 + 200 3 12 9 8 0.0150094 0.691406 0.0215883 0.746094 0.0150094 0.746094 + 200 3 11 14 10 0.0215883 0.691406 0.00843039 0.691406 0.00843039 0.746094 + 200 3 11 10 9 0.0215883 0.691406 0.00843039 0.746094 0.0215883 0.746094 + 200 3 15 16 17 0.787207 0.894531 0.751855 0.894531 0.762461 0.912207 + 200 3 15 17 18 0.787207 0.894531 0.762461 0.912207 0.776602 0.912207 + 200 3 15 19 20 0.787207 0.894531 0.776602 0.876855 0.762461 0.876855 + 200 3 15 20 16 0.787207 0.894531 0.762461 0.876855 0.751855 0.894531 + 200 3 21 22 23 0.751855 0.894531 0.787207 0.894531 0.776602 0.912207 + 200 3 21 23 24 0.751855 0.894531 0.776602 0.912207 0.762461 0.912207 + 200 3 22 21 25 0.787207 0.894531 0.751855 0.894531 0.762461 0.876855 + 200 3 22 25 26 0.787207 0.894531 0.762461 0.876855 0.776602 0.876855 + 200 3 22 26 19 0.0117199 0.691406 0.0215883 0.691406 0.0215883 0.746094 + 200 3 22 19 15 0.0117199 0.691406 0.0215883 0.746094 0.0117199 0.746094 + 200 3 25 21 16 0.0215883 0.691406 0.0117199 0.691406 0.0117199 0.746094 + 200 3 25 16 20 0.0215883 0.691406 0.0117199 0.746094 0.0215883 0.746094 + 200 3 21 24 17 0.0117199 0.691406 0.00185143 0.691406 0.00185143 0.746094 + 200 3 21 17 16 0.0117199 0.691406 0.00185143 0.746094 0.0117199 0.746094 + 200 3 23 22 15 0.00185143 0.691406 0.0117199 0.691406 0.0117199 0.746094 + 200 3 23 15 18 0.00185143 0.691406 0.0117199 0.746094 0.00185143 0.746094 + 200 3 26 20 19 0.0136755 0.691409 0.0216003 0.746076 0.0136755 0.746076 + 200 3 20 26 25 0.0216003 0.746076 0.0136755 0.691409 0.0216003 0.691409 + 200 3 24 18 17 0.00185012 0.691381 0.00964297 0.746082 0.00185012 0.746082 + 200 3 18 24 23 0.00964297 0.746082 0.00185012 0.691381 0.00964297 0.691381 + 200 3 4 2 1 0.172925 0.730518 0.153341 0.707211 0.153341 0.730518 + 200 3 2 4 5 0.153341 0.707211 0.172925 0.730518 0.172925 0.707211 + 200 3 1 7 4 0.121094 0.730469 0.132812 0.707031 0.121094 0.730469 CONNECTORS 1 0 -32 1 diff --git a/components/weapons/scbody.pie b/components/weapons/scbody.pie index 14a0561..f6882a1 100644 --- a/components/weapons/scbody.pie +++ b/components/weapons/scbody.pie @@ -1,41 +1,69 @@ -PIE 2 +PIE 3 TYPE 10200 -TEXTURE 0 page-14-droid-hubs.png 256 256 +TEXTURE 0 page-14-droid-hubs.png 0 0 LEVELS 1 LEVEL 1 -POINTS 14 - -16 24 -6 - -16 8 -14 +POINTS 22 + -3.7375 24 -9.6 + 3.7375 16.8 -14 + -3.7375 16.8 -14 + 3.7375 24 -9.6 + 8 -8 -14 + 3.7375 8 -14 16 8 -14 - 16 24 -6 + -3.7375 8 -14 + -16 8 -14 -8 -8 -14 - 8 -8 -14 - -16 24 10 + -16 24 -6 -16 8 10 + -16 24 10 -8 -8 2 - 16 24 10 16 8 10 + 16 24 10 8 -8 2 - -16 24 -14 - 16 24 -14 -POLYGONS 18 - 200 3 3 2 1 66 167 74 167 74 185 - 200 3 3 1 0 66 167 74 185 66 185 - 200 3 5 4 1 82 172 82 180 74 185 - 200 3 5 1 2 82 172 74 185 74 167 - 200 3 0 1 7 66 163 74 167 74 155 - 200 3 0 7 6 66 163 74 155 66 155 - 200 3 4 8 7 82 167 82 159 74 155 - 200 3 4 7 1 82 167 74 155 74 167 - 200 3 6 7 10 29 155 37 155 37 137 - 200 3 6 10 9 29 155 37 137 29 137 - 200 3 11 10 7 45 142 37 137 37 155 - 200 3 11 7 8 45 142 37 155 45 150 - 200 3 9 13 12 169 155 157 155 157 137 - 200 3 9 12 6 169 155 157 137 169 137 - 200 3 9 10 2 66 155 74 155 74 167 - 200 3 9 2 3 66 155 74 167 66 163 - 200 3 11 5 2 82 159 82 167 74 167 - 200 3 11 2 10 82 159 74 167 74 155 + 16 24 -6 + 7.5 24 -6 + -7.5 16.8 -9.6 + -7.5 24 -6 + 7.5 16.8 -9.6 +POLYGONS 38 + 200 3 0 1 2 0.260853 0.697759 0.274036 0.681651 0.274036 0.697759 + 200 3 1 0 3 0.274036 0.681651 0.260853 0.697759 0.260853 0.681651 + 200 3 4 5 6 0.319486 0.672466 0.292999 0.681651 0.292999 0.655001 + 200 3 4 7 5 0.319486 0.672466 0.292999 0.697759 0.292999 0.681651 + 200 3 4 8 7 0.319486 0.672466 0.292999 0.721657 0.292999 0.697759 + 200 3 4 9 8 0.319486 0.672466 0.319486 0.706944 0.292999 0.721657 + 200 3 10 11 12 0.260934 0.641361 0.292999 0.608524 0.260934 0.608524 + 200 3 11 10 8 0.292999 0.608524 0.260934 0.641361 0.292999 0.655001 + 200 3 9 11 8 0.319718 0.657411 0.292999 0.608524 0.292999 0.655001 + 200 3 11 9 13 0.292999 0.608524 0.319718 0.657411 0.319718 0.623655 + 200 3 12 14 15 0.116457 0.540332 0.147754 0.602638 0.116457 0.602638 + 200 3 14 12 11 0.147754 0.602638 0.116457 0.540332 0.147754 0.540332 + 200 3 16 11 13 0.179044 0.588024 0.147754 0.540332 0.179044 0.554407 + 200 3 11 16 14 0.147754 0.540332 0.179044 0.588024 0.147754 0.602638 + 200 3 15 17 18 0.661162 0.604587 0.629854 0.604587 0.629854 0.587237 + 200 3 15 6 17 0.260934 0.608524 0.292999 0.655001 0.260934 0.641361 + 200 3 6 15 14 0.292999 0.655001 0.260934 0.608524 0.292999 0.608524 + 200 3 16 6 14 0.319718 0.623655 0.292999 0.655001 0.292999 0.608524 + 200 3 6 16 4 0.292999 0.655001 0.319718 0.623655 0.319718 0.657411 + 200 3 10 19 8 0.260853 0.721657 0.274036 0.705866 0.292999 0.721657 + 200 3 19 10 20 0.274036 0.705866 0.260853 0.721657 0.260853 0.705866 + 200 3 6 18 17 0.292999 0.655001 0.260853 0.673543 0.260853 0.655001 + 200 3 18 6 21 0.260853 0.673543 0.292999 0.655001 0.274036 0.673543 + 200 3 20 2 19 0.260853 0.705866 0.274036 0.697759 0.274036 0.705866 + 200 3 2 20 0 0.274036 0.697759 0.260853 0.705866 0.260853 0.697759 + 200 3 5 1 21 0.292999 0.681651 0.274036 0.681651 0.274036 0.673543 + 200 3 7 1 5 0.292999 0.697759 0.274036 0.681651 0.292999 0.681651 + 200 3 1 7 2 0.274036 0.681651 0.292999 0.697759 0.274036 0.697759 + 200 3 19 2 7 0.274036 0.705866 0.274036 0.697759 0.292999 0.697759 + 200 3 18 1 3 0.260853 0.673543 0.274036 0.681651 0.260853 0.681651 + 200 3 1 18 21 0.274036 0.681651 0.260853 0.673543 0.274036 0.673543 + 200 3 5 21 6 0.292999 0.681651 0.274036 0.673543 0.292999 0.655001 + 200 3 19 7 8 0.274036 0.705866 0.292999 0.697759 0.292999 0.721657 + 200 3 0 18 3 0.616169 0.563804 0.629854 0.587237 0.616169 0.578775 + 200 3 18 0 20 0.629854 0.587237 0.616169 0.563804 0.629854 0.555622 + 200 3 12 20 10 0.661162 0.538057 0.629854 0.555622 0.629854 0.538057 + 200 3 15 20 12 0.661162 0.604587 0.629854 0.555622 0.661162 0.538057 + 200 3 20 15 18 0.629854 0.555622 0.661162 0.604587 0.629854 0.587237 CONNECTORS 1 - -18 -4 16 + -18 -2 14 diff --git a/script/campaign/libcampaign_includes/artifact.js b/script/campaign/libcampaign_includes/artifact.js new file mode 100644 index 0000000..e8519d7 --- /dev/null +++ b/script/campaign/libcampaign_includes/artifact.js @@ -0,0 +1,213 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Artifacts management. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camSetArtifacts(artifacts) +//;; +//;; Tell `libcampaign.js` to manage a certain set of artifacts. +//;; The argument is a JavaScript map from object labels to artifact description. +//;; If the label points to a game object, artifact will be placed when this object +//;; is destroyed; if the label is a position, the artifact will be placed instantly. +//;; Artifact description is a JavaScript object with the following fields: +//;; * `tech` The technology to grant when the artifact is recovered. +//;; Note that this can be made into an array to make artifacts give out +//;; more than one technology, if desired. +//;; On `let me win` cheat, all technologies stored in the artifacts +//;; managed by this function are automatically granted. +//;; Additionally, this function would call special event callbacks if they are defined +//;; in your script, which should be named as follows, where LABEL is the artifact label: +//;; * `camArtifactPickup_LABEL` Called when the player picks up the artifact. +//;; +//;; @param {Object} artifacts +//;; @returns {void} +//;; +function camSetArtifacts(artifacts) +{ + __camArtifacts = artifacts; + for (const alabel in __camArtifacts) + { + var ai = __camArtifacts[alabel]; + var pos = camMakePos(alabel); + if (camDef(pos.id)) + { + // will place when object with this id is destroyed + ai.id = "" + pos.id; + ai.placed = false; + } + else + { + // received position or area, place immediately + var acrate = addFeature("Crate", pos.x, pos.y); + addLabel(acrate, __camGetArtifactLabel(alabel)); + ai.placed = true; + } + } +} + +//;; ## camAllArtifactsPickedUp() +//;; +//;; Returns `true` if all artifacts managed by `libcampaign.js` were picked up. +//;; +//;; @returns {boolean} +//;; +function camAllArtifactsPickedUp() +{ + // FIXME: O(n) lookup here + return __camNumArtifacts === Object.keys(__camArtifacts).length; +} + +//;; ## camGetArtifacts() +//;; +//;; Returns the labels of all existing artifacts. +//;; +//;; @returns {Object[]} +//;; +function camGetArtifacts() +{ + var camArti = []; + for (const alabel in __camArtifacts) + { + var artifact = __camArtifacts[alabel]; + var libLabel = __camGetArtifactLabel(alabel); + //libcampaign managed artifact that was placed on the map. + if (artifact.placed && getObject(libLabel) !== null) + { + camArti.push(libLabel); + } + //Label for artifacts that will drop after an object gets destroyed. Or is manually managed. + //NOTE: Must check for ID since "alabel" could be a AREA/POSITION label. + var obj = getObject(alabel); + if (obj !== null && camDef(obj.id)) + { + camArti.push(alabel); + } + } + return camArti; +} + +//////////// privates + +function __camGetArtifactLabel(alabel) +{ + return alabel + "_artifact_label"; +} + +function __camGetArtifactKey(objlabel) +{ + return objlabel.replace("_artifact_label", ""); +} + +// called from eventDestroyed +function __camCheckPlaceArtifact(obj) +{ + // FIXME: O(n) lookup here + var alabel = getLabel(obj); + if (!camDef(alabel) || !alabel) + { + return; + } + var ai = __camArtifacts[alabel]; + if (!camDef(ai)) + { + return; + } + if (ai.placed) + { + camDebug("Object to which artifact", alabel, "is bound, has died twice"); + return; + } + if (ai.tech instanceof Array) + { + camTrace("Placing multi-tech granting artifact"); + for (let i = 0; i < ai.tech.length; ++i) + { + var techString = ai.tech[i]; + camTrace(i, ":", techString); + } + } + else + { + camTrace("Placing", ai.tech); + } + var acrate = addFeature("Crate", obj.x, obj.y); + addLabel(acrate, __camGetArtifactLabel(alabel)); + ai.placed = true; +} + +function __camPickupArtifact(artifact) +{ + if (artifact.stattype !== ARTIFACT) + { + camDebug("Not an artifact"); + return; + } + // FIXME: O(n) lookup here + var alabel = __camGetArtifactKey(getLabel(artifact)); + var ai = __camArtifacts[alabel]; + if (!camDef(alabel) || !alabel || !camDef(ai)) + { + camTrace("Artifact", artifact.id, "is not managed"); + return; + } + + camTrace("Picked up", ai.tech); + playSound("pcv352.ogg", artifact.x, artifact.y, artifact.z); + // artifacts are not self-removing... + camSafeRemoveObject(artifact); + if (ai.tech instanceof Array) + { + for (let i = 0; i < ai.tech.length; ++i) + { + var techString = ai.tech[i]; + enableResearch(techString); + } + } + else + { + enableResearch(ai.tech); + } + // bump counter before the callback, so that it was + // actual during the callback + ++__camNumArtifacts; + var callback = __camGlobalContext()["camArtifactPickup_" + alabel]; + if (camDef(callback)) + { + callback(); + } + + __camSetupConsoleForVictoryConditions(); +} + +function __camLetMeWinArtifacts() +{ + for (const alabel in __camArtifacts) + { + var ai = __camArtifacts[alabel]; + if (ai.placed) + { + var label = __camGetArtifactLabel(alabel); + var artifact = getObject(label); + if (!camDef(artifact) || !artifact) + { + continue; + } + __camPickupArtifact(artifact); + } + else + { + if (ai.tech instanceof Array) + { + for (let i = 0; i < ai.tech.length; ++i) + { + var techString = ai.tech[i]; + enableResearch(techString); + } + } + else + { + enableResearch(ai.tech); + } + } + } +} diff --git a/script/campaign/libcampaign_includes/base.js b/script/campaign/libcampaign_includes/base.js new file mode 100644 index 0000000..2a59a51 --- /dev/null +++ b/script/campaign/libcampaign_includes/base.js @@ -0,0 +1,347 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Enemy base management. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camSetEnemyBases([bases]) +//;; +//;; Tell `libcampaign.js` to manage a certain set of enemy bases. +//;; Management assumes auto-cleanup of leftovers on destruction, and also +//;; counting how many bases have been successfully destroyed by the player. +//;; The argument is a JavaScript map from group labels to base descriptions. +//;; Each label points to a group of vital base structures. If no group label +//;; with this name is defined, a group is created automatically +//;; based on `cleanup` area and labeled. Base description +//;; is a JavaScript object with the following optional fields: +//;; * `cleanup` An area label to clean up features in once base is destroyed. +//;; If base id is not a group label, this field is required in order to auto-create +//;; the group of stuff in the area which doesn't qualify as a valid leftover. +//;; * `detectMsg` A `PROX_MSG` message id to play when the base is detected. +//;; * `detectSnd` A sound file to play when the base is detected. +//;; * `eliminateSnd` A sound file to play when the base is eliminated. +//;; The sound is played in the center of the cleanup area, which needs to be defined. +//;; * `player` If base is detected by cleanup area, only objects matching +//;; this player filter would be added to the base group or cleaned up. +//;; Note that this most likely disables feature cleanup. +//;; Additionally, this function would call special event callbacks if they are defined in your script, +//;; which should be named as follows, where LABEL is the label of the base group: +//;; * `camEnemyBaseDetected_LABEL` Called when the player sees an object from the enemy base group for the first time. +//;; * `camEnemyBaseEliminated_LABEL` Called when the base is eliminated, right after leftovers were cleaned up. +//;; +//;; @param {Object} [bases] +//;; @returns {void} +//;; +function camSetEnemyBases(bases) +{ + var reload = !camDef(bases); + if (!reload) + { + __camEnemyBases = bases; + __camNumEnemyBases = 0; + } + // convert label strings to groups and store + for (const baseLabel in __camEnemyBases) + { + var bi = __camEnemyBases[baseLabel]; + var obj = getObject(baseLabel); + if (camDef(obj) && obj) // group already defined + { + if (!camDef(bi.group)) + { + bi.group = obj.id; + } + else + { + var structures = enumGroup(bi.group); + addLabel({ type: GROUP, id: bi.group }, baseLabel); + for (let idx = 0, len = structures.length; idx < len; ++idx) + { + var s = structures[idx]; + if (s.type !== STRUCTURE || __camIsValidLeftover(s)) + { + continue; + } + if (!camDef(bi.player) || camPlayerMatchesFilter(s.player, bi.player)) + { + //camTrace("Auto-adding", s.id, "to base", baseLabel); + groupAdd(bi.group, s); + } + } + } + if (!camDef(bi.cleanup)) // auto-detect cleanup area + { + var objs = enumGroup(bi.group); + if (objs.length > 0) + { + const OFFSET = 2; // increases size of the auto-detected base area a bit + var a = { + type: AREA, + x: mapWidth, y: mapHeight, + x2: 0, y2: 0 + }; + // smallest rectangle to contain all objects + for (let idx = 0, len = objs.length; idx < len; ++idx) + { + var o = objs[idx]; + if (o.x < a.x) a.x = o.x; + if (o.y < a.y) a.y = o.y; + if (o.x > a.x2) a.x2 = o.x; + if (o.y > a.y2) a.y2 = o.y; + } + a.x -= OFFSET; a.y -= OFFSET; a.x2 += OFFSET; a.y2 += OFFSET; + camTrace("Auto-detected cleanup area for", baseLabel, ":", a.x, a.y, a.x2, a.y2); + bi.cleanup = "__cam_enemy_base_cleanup__" + baseLabel; + addLabel(a, bi.cleanup); + } + } + } + else // define a group automatically + { + if (!camDef(bi.cleanup)) + { + camDebug("Neither group nor cleanup area found for", baseLabel); + continue; + } + bi.group = camNewGroup(); + addLabel({ type: GROUP, id: bi.group }, baseLabel); + var structs = enumArea(bi.cleanup, ENEMIES, false); + for (let idx = 0, len = structs.length; idx < len; ++idx) + { + var s = structs[idx]; + if (s.type !== STRUCTURE || __camIsValidLeftover(s)) + { + continue; + } + if (!camDef(bi.player) || camPlayerMatchesFilter(s.player, bi.player)) + { + //camTrace("Auto-adding", s.id, "to base", baseLabel); + groupAdd(bi.group, s); + } + } + } + if (groupSize(bi.group) === 0) + { + //camDebug("Base", baseLabel, "defined as empty group"); + } + if (!reload) + { + bi.detected = false; + bi.eliminated = false; + } + //camTrace("Resetting label", baseLabel); + resetLabel(baseLabel, CAM_HUMAN_PLAYER); // subscribe for eventGroupSeen + } +} + +//;; ## camDetectEnemyBase(baseLabel) +//;; +//;; Plays the "enemy base detected" message and places a beacon for the enemy base +//;; defined by the label, as if the base was actually found by the player. +//;; +//;; @param {string} baseLabel +//;; @returns {void} +//;; +function camDetectEnemyBase(baseLabel) +{ + var bi = __camEnemyBases[baseLabel]; + if (bi.detected || bi.eliminated) + { + return; + } + camTrace("Enemy base", baseLabel, "detected"); + bi.detected = true; + if (camDef(bi.detectSnd)) + { + var pos = camMakePos(bi.cleanup); + if (!camDef(pos)) // auto-detect sound position by group object pos + { + var objs = enumGroup(bi.group); + if (objs.length > 0) + { + var firstObject = objs[0]; + pos = camMakePos(firstObject); + } + } + if (camDef(pos)) + { + playSound(bi.detectSnd, pos.x, pos.y, 0); + } + } + if (camDef(bi.detectMsg)) + { + hackAddMessage(bi.detectMsg, PROX_MSG, CAM_HUMAN_PLAYER, false); + } + var callback = __camGlobalContext()["camEnemyBaseDetected_" + baseLabel]; + if (camDef(callback)) + { + callback(); + } +} + +//;; ## camAllEnemyBasesEliminated() +//;; +//;; Returns `true` if all enemy bases managed by `libcampaign.js` are destroyed. +//;; +//;; @returns {boolean} +//;; +function camAllEnemyBasesEliminated() +{ + // FIXME: O(n) lookup here + return __camNumEnemyBases === Object.keys(__camEnemyBases).length; +} + +//////////// privates + +function __camCheckBaseSeen(seen) +{ + var group = seen; // group? + if (camDef(seen.group)) // object? + { + group = seen.group; + } + if (!camDef(group) || !group) + { + return; + } + // FIXME: O(n) lookup here + for (const baseLabel in __camEnemyBases) + { + var bi = __camEnemyBases[baseLabel]; + if (bi.group !== group) + { + continue; + } + camDetectEnemyBase(baseLabel); + } +} + +function __camIsValidLeftover(obj) +{ + if (camPlayerMatchesFilter(obj.player, ENEMIES)) + { + if (obj.type === STRUCTURE && obj.stattype === WALL) + { + return true; + } + } + if (obj.type === FEATURE) + { + if (obj.stattype === BUILDING) + { + return true; + } + } + return false; +} + +function __camShouldDestroyLeftover(objInfo, basePlayer) +{ + var object = getObject(objInfo.type, objInfo.player, objInfo.id); + if (object === null) + { + return false; + } + return (objInfo.type === STRUCTURE && + object.status === BUILT && + __camIsValidLeftover(object) && + (!camDef(basePlayer) || + (camDef(basePlayer) && camPlayerMatchesFilter(objInfo.player, basePlayer)))); +} + +function __camCheckBaseEliminated(group) +{ + // FIXME: O(n) lookup here + for (const baseLabel in __camEnemyBases) + { + var bi = __camEnemyBases[baseLabel]; + var leftovers = []; + if (bi.eliminated || (bi.group !== group)) + { + continue; + } + if (enumGroup(bi.group).length > 0) + { + return; //still has something in the base group + } + if (camDef(bi.cleanup)) + { + var objects = enumArea(bi.cleanup, ENEMIES, false); + for (let i = 0, len = objects.length; i < len; ++i) + { + var object = objects[i]; + var objInfo = { + type: object.type, + player: object.player, + id: object.id + }; + if (__camShouldDestroyLeftover(objInfo, bi.player)) + { + leftovers.push(object); + } + } + for (let i = 0, len = leftovers.length; i < len; ++i) + { + // remove with special effect + var leftover = leftovers[i]; + camSafeRemoveObject(leftover, true); + } + if (camDef(bi.eliminateSnd)) + { + // play sound + var pos = camMakePos(bi.cleanup); + playSound(bi.eliminateSnd, pos.x, pos.y, 0); + } + } + else + { + camDebug("All bases must have a cleanup area : " + baseLabel); + continue; + } + if (camDef(bi.detectMsg) && bi.detected) // remove the beacon + { + hackRemoveMessage(bi.detectMsg, PROX_MSG, CAM_HUMAN_PLAYER); + } + camTrace("Enemy base", baseLabel, "eliminated"); + bi.eliminated = true; + // bump counter before the callback, so that it was + // actual during the callback + ++__camNumEnemyBases; + var callback = __camGlobalContext()["camEnemyBaseEliminated_" + baseLabel]; + if (camDef(callback)) + { + callback(); + } + + __camSetupConsoleForVictoryConditions(); + } +} + +function __camBasesTick() +{ + for (const baseLabel in __camEnemyBases) + { + var bi = __camEnemyBases[baseLabel]; + if (bi.eliminated || !camDef(bi.reinforce_kind)) + { + continue; + } + if (gameTime - bi.reinforce_last < bi.reinforce_interval) + { + continue; + } + if (!camDef(bi.player)) + { + camDebug("Enemy base player needs to be set for", baseLabel); + return; + } + if (!camDef(bi.cleanup)) + { + camDebug("Enemy base cleanup area needs to be set for", baseLabel); + return; + } + bi.reinforce_last = gameTime; + var list = profile(bi.reinforce_callback); + var pos = camMakePos(bi.cleanup); + camSendReinforcement(bi.player, pos, list, bi.reinforce_kind, bi.reinforce_data); + } +} diff --git a/script/campaign/libcampaign_includes/debug.js b/script/campaign/libcampaign_includes/debug.js new file mode 100644 index 0000000..9ffd4ec --- /dev/null +++ b/script/campaign/libcampaign_includes/debug.js @@ -0,0 +1,185 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Debugging helpers. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camMarkTiles(label|labels) +//;; +//;; Mark area on the map by label(s), but only if debug mode is enabled. +//;; Otherwise, remember what to mark in case it is going to be. +//;; +//;; @param {string|string[]} label +//;; @returns {void} +//;; +function camMarkTiles(label) +{ + if (camIsString(label)) + { + __camMarkedTiles[label] = true; + } + else + { + for (let i = 0, l = label.length; i < l; ++i) + { + __camMarkedTiles[label[i]] = true; + } + } + // apply instantly + __camUpdateMarkedTiles(); +} + +//;; ## camUnmarkTiles(label|labels) +//;; +//;; No longer mark area(s) with given label(s) in debug mode. +//;; +//;; @param {string|string[]} label +//;; @returns {void} +//;; +function camUnmarkTiles(label) +{ + if (camIsString(label)) + { + delete __camMarkedTiles[label]; + } + else + { + for (let i = 0, l = label.length; i < l; ++i) + { + delete __camMarkedTiles[label[i]]; + } + } + // apply instantly + __camUpdateMarkedTiles(); +} + +//;; ## camDebug(...args) +//;; +//;; Pretty debug prints - a wrapper around `debug()`. +//;; Prints a function call stack and the argument message, prefixed with `DEBUG`. +//;; Only use this function to indicate actual bugs in the scenario script, +//;; because game shouldn't print things when nothing is broken. +//;; If you want to keep some prints around to make debugging easier +//;; without distracting the user, use `camTrace()`. +//;; +//;; @param {...string} args +//;; @returns {void} +//;; +function camDebug(...args) +{ + __camGenericDebug("DEBUG", debugGetCallerFuncName(), args, true, __camBacktrace()); +} + +//;; ## camDebugOnce(...args) +//;; +//;; Same as `camDebug()`, but prints each message only once during script lifetime. +//;; +//;; @param {...string} args +//;; @returns {void} +//;; +function camDebugOnce(...args) +{ + var str = debugGetCallerFuncName() + ": " + args.join(" "); + if (camDef(__camDebuggedOnce[str])) + { + return; + } + __camDebuggedOnce[str] = true; + __camGenericDebug("DEBUG", debugGetCallerFuncName(), args, true, __camBacktrace()); +} + +//;; ## camTrace(...args) +//;; +//;; Same as `camDebug()`, but only warns in cheat mode. +//;; Prefixed with `TRACE`. It's safe and natural to keep `camTrace()` calls in your code for easier debugging. +//;; +//;; @param {...string} args +//;; @returns {void} +//;; +function camTrace(...args) +{ + if (!camIsCheating()) + { + return; + } + __camGenericDebug("TRACE", debugGetCallerFuncName(), args); +} + +//;; ## camTraceOnce(...args) +//;; +//;; Same as `camTrace()`, but prints each message only once during script lifetime. +//;; +//;; @param {...string} args +//;; @returns {void} +//;; +function camTraceOnce(...args) +{ + if (!camIsCheating()) + { + return; + } + var str = debugGetCallerFuncName() + ": " + args.join(" "); + if (camDef(__camTracedOnce[str])) + { + return; + } + __camTracedOnce[str] = true; + __camGenericDebug("TRACE", debugGetCallerFuncName(), args); +} + +//;; ## camIsCheating() +//;; +//;; Check if the player is in cheat mode. +//;; +//;; @returns {boolean} +//;; +function camIsCheating() +{ + return __camCheatMode; +} + +//////////// privates + +function __camUpdateMarkedTiles() +{ + hackMarkTiles(); + if (camIsCheating() && camDef(__camMarkedTiles)) + { + for (const label in __camMarkedTiles) + { + hackMarkTiles(label); + } + } +} + +function __camLetMeWin() +{ + __camLetMeWinArtifacts(); + hackMarkTiles(); // clear marked tiles, as they may actually remain + __camGameWon(); +} + +function __camGenericDebug(flag, functionName, args, err, backtrace) +{ + if (camDef(backtrace) && backtrace) + { + for (let i = backtrace.length - 1; i >= 0; --i) + { + debug("STACK: from", [backtrace[i]]); + } + } + if (!functionName) + { + functionName = ""; + } + var str = flag + ": " + functionName + ": " + Array.prototype.join.call(args, " "); + debug(str); + if (camDef(err) && err) + { + dump(str); + } +} + +function __camBacktrace() +{ + return debugGetBacktrace(); +} diff --git a/script/campaign/libcampaign_includes/events.js b/script/campaign/libcampaign_includes/events.js new file mode 100644 index 0000000..8729a5a --- /dev/null +++ b/script/campaign/libcampaign_includes/events.js @@ -0,0 +1,385 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Campaign library events. +//////////////////////////////////////////////////////////////////////////////// + +function cam_eventPickup(feature, droid) +{ + if (feature.stattype === ARTIFACT) + { + __camPickupArtifact(feature); + } +} + +function cam_eventGroupLoss(obj, group, newsize) +{ + if (__camSaveLoading === true) + { + return; + } + if (newsize === 0) + { + __camCheckBaseEliminated(group); + } + if (camDef(__camGroupInfo[group])) + { + profile("__camCheckGroupMorale", group); + } +} + +function cam_eventCheatMode(entered) +{ + if (entered) + { + __camCheatMode = true; + camTrace("Cheats enabled!"); + } + else + { + camTrace("Cheats disabled!"); + __camCheatMode = false; + } + __camUpdateMarkedTiles(); +} + +function cam_eventChat(from, to, message) +{ + if (message === "win info") + { + __camShowVictoryConditions(); + } + if (!camIsCheating()) + { + return; + } + camTrace(from, to, message); + if (message === "let me win" && __camNextLevel !== "SUB_1_1") + { + __camLetMeWin(); + } + if (message === "make cc") + { + setMiniMap(true); + setDesign(true); + } + if (message.lastIndexOf("ascend ", 0) === 0) + { + __camNextLevel = message.substring(7).toUpperCase().replace(/-/g, "_"); + __camLetMeWin(); + } + if (message === "deity") + { + for (const baseLabel in __camEnemyBases) + { + camDetectEnemyBase(baseLabel); + } + } + if (message === "research available") + { + while (true) // eslint-disable-line no-constant-condition + { + var research = enumResearch(); + if (research.length === 0) + { + break; + } + for (let i = 0, len = research.length; i < len; ++i) + { + var researchName = research[i].name; + completeResearch(researchName, CAM_HUMAN_PLAYER); + } + } + } +} + +function cam_eventStartLevel() +{ + receiveAllEvents(true); + // Variables initialized here are the ones that should not be + // re-initialized on save-load. Otherwise, they are initialized + // on the global scope (or wherever necessary). + __camGroupInfo = {}; + __camFactoryInfo = {}; + __camFactoryQueue = {}; + __camTruckInfo = {}; + __camNeedBonusTime = false; + __camDefeatOnTimeout = false; + __camRTLZTicker = 0; + __camLZCompromisedTicker = 0; + __camLastAttackTriggered = false; + __camLevelEnded = false; + __camPlayerTransports = {}; + __camIncomingTransports = {}; + __camTransporterQueue = []; + __camNumArtifacts = 0; + __camArtifacts = {}; + __camNumEnemyBases = 0; + __camEnemyBases = {}; + __camVtolDataSystem = []; + __camLastNexusAttack = 0; + __camNexusActivated = false; + __camNewGroupCounter = 0; + __camVideoSequences = []; + __camSaveLoading = false; + __camNeverGroupDroids = []; + __camNumTransporterExits = 0; + __camAllowVictoryMsgClear = true; + camSetPropulsionTypeLimit(); //disable the propulsion changer by default + __camAiPowerReset(); //grant power to the AI + setTimer("__camSpawnVtols", camSecondsToMilliseconds(0.5)); + setTimer("__camRetreatVtols", camSecondsToMilliseconds(0.9)); + setTimer("__checkVtolSpawnObject", camSecondsToMilliseconds(5)); + setTimer("__checkEnemyFactoryProductionTick", camSecondsToMilliseconds(0.8)); + setTimer("__camTick", camSecondsToMilliseconds(1)); // campaign pollers + setTimer("__camTruckTick", camSecondsToMilliseconds(10) + camSecondsToMilliseconds(0.1)); // some slower campaign pollers + setTimer("__camAiPowerReset", camMinutesToMilliseconds(3)); //reset AI power every so often + setTimer("__camShowVictoryConditions", camMinutesToMilliseconds(5)); + setTimer("__camTacticsTick", camSecondsToMilliseconds(0.1)); + queue("__camShowBetaHintEarly", camSecondsToMilliseconds(4)); + queue("__camGrantSpecialResearch", camSecondsToMilliseconds(6)); +} + +function cam_eventDroidBuilt(droid, structure) +{ + if (!camDef(structure)) // "clone wars" cheat + { + return; + } + if (!camPlayerMatchesFilter(structure.player, ENEMIES)) + { + return; + } + if (!camPlayerMatchesFilter(droid.player, ENEMIES)) + { + return; + } + if (!camDef(__camFactoryInfo)) + { + return; + } + __camAddDroidToFactoryGroup(droid, structure); +} + +function cam_eventDestroyed(obj) +{ + __camCheckPlaceArtifact(obj); + if (obj.type === DROID) + { + if (obj.droidType === DROID_CONSTRUCT) + { + __camCheckDeadTruck(obj); + } + else if (camIsTransporter(obj)) + { + __camRemoveIncomingTransporter(obj.player); + if (obj.player === CAM_HUMAN_PLAYER) + { + // Player will lose if their transporter gets destroyed + __camGameLost(); + return; + } + if (camDef(__camPlayerTransports[obj.player])) + { + delete __camPlayerTransports[obj.player]; + } + } + } +} + +function cam_eventObjectSeen(viewer, seen) +{ + __camCheckBaseSeen(seen); +} + +function cam_eventGroupSeen(viewer, group) +{ + __camCheckBaseSeen(group); +} + +function cam_eventTransporterExit(transport) +{ + camTrace("Transporter for player", transport.player + " has exited"); + + if (transport.player === CAM_HUMAN_PLAYER) + { + __camNumTransporterExits += 1; + + //Audio cue to let the player know they can bring in reinforcements. This + //assumes the player can bring in reinforcements immediately after the first + //transporter leaves the map. Mission scripts can handle special situations. + if (__camNumTransporterExits === 1 && + ((__camWinLossCallback === CAM_VICTORY_OFFWORLD && + __camVictoryData.reinforcements > -1) || + __camWinLossCallback === CAM_VICTORY_STANDARD)) + { + const REINFORCEMENTS_AVAILABLE_SOUND = "pcv440.ogg"; + playSound(REINFORCEMENTS_AVAILABLE_SOUND); + } + } + + if (transport.player !== CAM_HUMAN_PLAYER || + (__camWinLossCallback === CAM_VICTORY_STANDARD && + transport.player === CAM_HUMAN_PLAYER)) + { + __camRemoveIncomingTransporter(transport.player); + } + else if (__camWinLossCallback === CAM_VICTORY_PRE_OFFWORLD) + { + camTrace("Transporter is away."); + __camGameWon(); + } +} + +function cam_eventTransporterLanded(transport) +{ + if (transport.player !== CAM_HUMAN_PLAYER) + { + __camLandTransporter(transport.player, camMakePos(transport)); + } +} + +function cam_eventMissionTimeout() +{ + if (__camDefeatOnTimeout) + { + camTrace("0 minutes remaining."); + __camGameLost(); + } + else + { + var won = camCheckExtraObjective(); + if (!won) + { + __camGameLost(); + return; + } + __camGameWon(); + } +} + +function cam_eventAttacked(victim, attacker) +{ + if (camDef(victim) && victim && victim.type === DROID) + { + if (victim.player !== CAM_HUMAN_PLAYER && !allianceExistsBetween(CAM_HUMAN_PLAYER, victim.player)) + { + //Try dynamically creating a group of nearby droids not part + //of a group. Only supports those who can hit ground units. + if (victim.group === null) + { + const DEFAULT_RADIUS = 6; + var loc = {x: victim.x, y: victim.y}; + var droids = enumRange(loc.x, loc.y, DEFAULT_RADIUS, victim.player, false).filter((obj) => ( + obj.type === DROID && + obj.group === null && + (obj.canHitGround || obj.isSensor) && + obj.droidType !== DROID_CONSTRUCT && + !camIsTransporter(obj) && + !camInNeverGroup(obj) + )); + if (droids.length === 0) + { + return; + } + camManageGroup(camMakeGroup(droids), CAM_ORDER_ATTACK, { + count: -1, + regroup: false, + repair: 70 + }); + } + + if (camDef(__camGroupInfo[victim.group])) + { + __camGroupInfo[victim.group].lastHit = gameTime; + + //Increased Nexus intelligence if struck on cam3-4 + if (__camNextLevel === CAM_GAMMA_OUT) + { + if (__camGroupInfo[victim.group].order === CAM_ORDER_PATROL) + { + __camGroupInfo[victim.group].order = CAM_ORDER_ATTACK; + } + } + } + } + } +} + +//Work around some things that break on save-load. +function cam_eventGameLoaded() +{ + receiveAllEvents(true); + __camSaveLoading = true; + const SCAV_KEVLAR_MISSIONS = [ + "CAM_1CA", "SUB_1_4AS", "SUB_1_4A", "SUB_1_5S", "SUB_1_5", + "CAM_1A-C", "SUB_1_7S", "SUB_1_7", "SUB_1_DS", "CAM_1END", "SUB_2_5S" + ]; + + //Need to set the scavenger kevlar vests when loading a save from later Alpha + //missions or else it reverts to the original texture. + for (let i = 0, l = SCAV_KEVLAR_MISSIONS.length; i < l; ++i) + { + var mission = SCAV_KEVLAR_MISSIONS[i]; + if (__camNextLevel === mission) + { + if (tilesetType === "ARIZONA") + { + replaceTexture("page-7-barbarians-arizona.png", + "page-7-barbarians-kevlar.png"); + } + else if (tilesetType === "URBAN") + { + replaceTexture("page-7-barbarians-arizona.png", + "page-7-barbarians-urban.png"); + } + break; + } + } + + //Subscribe to eventGroupSeen again. + camSetEnemyBases(); + + //Reset any vars + __camCheatMode = false; + + __camSaveLoading = false; +} + +//Plays Nexus sounds if nexusActivated is true. +function cam_eventObjectTransfer(obj, from) +{ + if (from === CAM_HUMAN_PLAYER && obj.player === NEXUS && __camNexusActivated === true) + { + var snd; + if (obj.type === STRUCTURE) + { + if (obj.stattype === DEFENSE) + { + snd = DEFENSE_ABSORBED; + } + else if (obj.stattype === RESEARCH_LAB) + { + snd = RES_ABSORBED; + } + else + { + snd = STRUCTURE_ABSORBED; + } + } + else if (obj.type === DROID) + { + snd = UNIT_ABSORBED; + } + + if (camDef(snd)) + { + playSound(snd); + } + queue("camNexusLaugh", camSecondsToMilliseconds(1.5)); + } +} + +function cam_eventVideoDone() +{ + __camEnqueueVideos(); //Play any remaining videos automatically. +} diff --git a/script/campaign/libcampaign_includes/group.js b/script/campaign/libcampaign_includes/group.js new file mode 100644 index 0000000..b4c9367 --- /dev/null +++ b/script/campaign/libcampaign_includes/group.js @@ -0,0 +1,117 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Group functionality +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camNewGroup() +//;; +//;; A saveload safe version of `newGroup()` so as not to create group ID clashes. +//;; +//;; @returns {number} +//;; +function camNewGroup() +{ + if (!camDef(__camNewGroupCounter)) + { + __camNewGroupCounter = 0; + } + ++__camNewGroupCounter; + return __camNewGroupCounter; +} + +//;; ## camInNeverGroup(droid) +//;; +//;; Check if this droid is forced to never group. +//;; +//;; @param {Object} droid +//;; @returns {boolean} +//;; +function camInNeverGroup(droid) +{ + if (droid.type !== DROID) + { + camDebug("Non-droid in camInNeverGroup."); + return false; + } + for (let i = 0, l = __camNeverGroupDroids.length; i < l; ++i) + { + var neverDroidID = __camNeverGroupDroids[i]; + if (droid.id === neverDroidID) + { + return true; + } + } + + return false; +} + +//;; ## camNeverGroupDroid(what[, playerFilter]) +//;; +//;; A means to not auto group some droids. +//;; +//;; @param {string|Object|Object[]} what +//;; @param {number} [playerFilter] +//;; @returns {void} +//;; +function camNeverGroupDroid(what, playerFilter) +{ + if (!camDef(playerFilter)) + { + playerFilter = ENEMIES; + } + var array; + var obj; + if (camIsString(what)) // label + { + obj = getObject(what); + } + else if (camDef(what.length)) // array + { + array = what; + } + else if (camDef(what.type)) // object + { + obj = what; + } + if (camDef(obj)) + { + switch (obj.type) { + case POSITION: + obj = getObject(obj.x, obj.y); + // fall-through + case DROID: + case STRUCTURE: + case FEATURE: + array = [ obj ]; + break; + case AREA: + array = enumArea(obj.x, obj.y, obj.x2, obj.y2, ALL_PLAYERS, false); + break; + case RADIUS: + array = enumRange(obj.x, obj.y, obj.radius, ALL_PLAYERS, false); + break; + case GROUP: + array = enumGroup(obj.id); + break; + default: + camDebug("Unknown object type", obj.type); + } + } + if (camDef(array)) + { + for (let i = 0, l = array.length; i < l; ++i) + { + var o = array[i]; + if (!camDef(o) || !o) + { + continue; + } + if (o.type === DROID && camPlayerMatchesFilter(o.player, playerFilter)) + { + __camNeverGroupDroids.push(o.id); + } + } + return; + } + camDebug("Cannot parse", what); +} diff --git a/script/campaign/libcampaign_includes/hook.js b/script/campaign/libcampaign_includes/hook.js new file mode 100644 index 0000000..595be36 --- /dev/null +++ b/script/campaign/libcampaign_includes/hook.js @@ -0,0 +1,61 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Event hooks magic. This makes all the library catch all the necessary events +// without distracting the script authors from handling them on their own. +// It assumes that script authors do not implement another similar mechanism, +// or something BAD would happen. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camAreaEvent(label, callback(droid)) +//;; +//;; Implement `eventArea${label}()` in a debugging-friendly way. +//;; The function marks the area until the event is triggered, +//;; and traces entering the area in the TRACE log. +//;; +//;; @param {string} label +//;; @param {Function} callback +//;; @returns {void} +//;; +function camAreaEvent(label, callback) +{ + var eventName = "eventArea" + label; + camMarkTiles(label); + __camPreHookEvent(eventName, function(droid) + { + if (camDef(droid)) + { + camTrace("Player", droid.player, "enters", label); + } + camUnmarkTiles(label); + callback(droid); + }); +} + +//////////// privates + +function __camPreHookEvent(eventname, hookcode) +{ + // store the original event handler + if (camDef(__camGlobalContext()[eventname])) + { + __camOriginalEvents[eventname] = __camGlobalContext()[eventname]; + } + + __camGlobalContext()[eventname] = function() + { + // Don't trigger hooks after level end. + // No, this should't say "if (__camLevelEnded) return;". + // Because we are not hooking all possible events, + // and we are not documenting which exactly events are hooked. + // We should not intervene with level events in unobvious ways. + if (!__camLevelEnded) + { + hookcode.apply(__camGlobalContext(), arguments); + } + // otherwise, call the original event if any + if (camDef(__camOriginalEvents[eventname])) + { + __camOriginalEvents[eventname].apply(__camGlobalContext(), arguments); + } + }; +} diff --git a/script/campaign/libcampaign_includes/misc.js b/script/campaign/libcampaign_includes/misc.js new file mode 100644 index 0000000..6650a2a --- /dev/null +++ b/script/campaign/libcampaign_includes/misc.js @@ -0,0 +1,616 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Misc useful stuff. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camDef(something) +//;; +//;; Returns `false` if something is JavaScript-undefined, `true` otherwise. +//;; +//;; @param {*} something +//;; @returns {boolean} +//;; +function camDef(something) +{ + return typeof something !== "undefined"; +} + +//;; ## camIsString(something) +//;; +//;; Returns `true` if something is a string, `false` otherwise. +//;; +//;; @param {*} something +//;; @returns {boolean} +//;; +function camIsString(something) +{ + return typeof something === "string"; +} + +//;; ## camRand(max) +//;; +//;; A non-synchronous random integer in range [0, max - 1]. +//;; +//;; @param {number} max +//;; @returns {number} +//;; +function camRand(max) +{ + if (max > 0) + { + return Math.floor(Math.random() * max); + } + camDebug("Max should be positive"); +} + +//;; ## camCallOnce(functionName) +//;; +//;; Call a function by name, but only if it has not been called yet. +//;; +//;; @param {string} functionName +//;; @returns {void} +//;; +function camCallOnce(functionName) +{ + if (camDef(__camCalledOnce[functionName]) && __camCalledOnce[functionName]) + { + return; + } + __camCalledOnce[functionName] = true; + __camGlobalContext()[functionName](); +} + +//;; ## camSafeRemoveObject(obj[, specialEffects]) +//;; +//;; Remove a game object (by value or label) if it exists, do nothing otherwise. +//;; +//;; @param {string|Object} obj +//;; @param {boolean} [specialEffects] +//;; @returns {void} +//;; +function camSafeRemoveObject(obj, specialEffects) +{ + if (__camLevelEnded) + { + return; + } + if (camIsString(obj)) + { + obj = getObject(obj); + } + if (camDef(obj) && obj) + { + removeObject(obj, specialEffects); + } +} + +//;; ## camMakePos(label|object|x[, y]) +//;; +//;; Make a `POSITION`-like object, unless already done. +//;; Often useful for making functions that would accept positions in both `x,y` and `{x: x, y: y}` forms. +//;; Also accepts labels. If label of `AREA` is given, returns the center of the area. +//;; If an existing object or label of such is given, returns a safe JavaScript object containing its `x`, `y` and `id`. +//;; +//;; @param {number|string|Object|undefined} x +//;; @param {number} [y] +//;; @returns {Object|undefined} +//;; +function camMakePos(x, y) +{ + if (camDef(y)) + { + return { x: x, y: y }; + } + if (!camDef(x)) + { + return undefined; + } + var obj = x; + if (camIsString(x)) + { + obj = getObject(x); + } + if (!camDef(obj) || !obj) + { + camDebug("Failed at", x); + return undefined; + } + switch (obj.type) + { + case DROID: + case STRUCTURE: + case FEATURE: + // store ID for those as well. + return { x: obj.x, y: obj.y, id: obj.id }; + case POSITION: + case RADIUS: + return obj; + case AREA: + return { + x: Math.floor((obj.x + obj.x2) / 2), + y: Math.floor((obj.y + obj.y2) / 2) + }; + case GROUP: + default: + // already a pos-like object? + if (camDef(obj.x) && camDef(obj.y)) + { + return { x: obj.x, y: obj.y }; + } + camDebug("Not implemented:", obj.type); + return undefined; + } +} + +//;; ## camDist(x1, y1, x2, y2 | pos1, x2, y2 | x1, y1, pos2 | pos1, pos2) +//;; +//;; A wrapper for `distBetweenTwoPoints()`. +//;; +//;; @param {number|Object} x1 +//;; @param {number|Object} y1 +//;; @param {number} [x2] +//;; @param {number} [y2] +//;; @returns {number} +//;; +function camDist(x1, y1, x2, y2) +{ + if (camDef(y2)) // standard + { + return distBetweenTwoPoints(x1, y1, x2, y2); + } + if (!camDef(x2)) // pos1, pos2 + { + return distBetweenTwoPoints(x1.x, x1.y, y1.x, y1.y); + } + var pos2 = camMakePos(x2); + if (camDef(pos2.x)) // x2 is pos2 + { + return distBetweenTwoPoints(x1, y1, pos2.x, pos2.y); + } + else // pos1, x2, y2 + { + return distBetweenTwoPoints(x1.x, x1.y, y1, x2); + } +} + +//;; ## camPlayerMatchesFilter(playerId, playerFilter) +//;; +//;; A function to handle player filters in a way similar to how JS API functions (eg. `enumDroid(filter, ...)`) handle them. +//;; +//;; @param {number} playerId +//;; @param {number} playerFilter +//;; @returns {boolean} +//;; +function camPlayerMatchesFilter(playerId, playerFilter) +{ + switch (playerFilter) { + case ALL_PLAYERS: + return true; + case ALLIES: + return playerId === CAM_HUMAN_PLAYER; + case ENEMIES: + return playerId >= 0 && playerId < CAM_MAX_PLAYERS && playerId !== CAM_HUMAN_PLAYER; + default: + return playerId === playerFilter; + } +} + +//;; ## camRemoveDuplicates(items) +//;; +//;; Remove duplicate items from an array. +//;; +//;; @param {*[]} items +//;; @returns {*[]} +//;; +function camRemoveDuplicates(items) +{ + var prims = {"boolean":{}, "number":{}, "string":{}}; + var objs = []; + + return items.filter((item) => { + var type = typeof item; + if (type in prims) + { + return prims[type].hasOwnProperty(item) ? false : (prims[type][item] = true); + } + else + { + return objs.indexOf(item) >= 0 ? false : objs.push(item); + } + }); +} + +//;; ## camCountStructuresInArea(label[, playerFilter]) +//;; +//;; Mimics wzscript's `numStructsButNotWallsInArea()`. +//;; +//;; @param {string} label +//;; @param {number} [playerFilter] +//;; @returns {number} +//;; +function camCountStructuresInArea(label, playerFilter) +{ + if (!camDef(playerFilter)) + { + playerFilter = CAM_HUMAN_PLAYER; + } + var list = enumArea(label, playerFilter, false); + var ret = 0; + for (let i = 0, l = list.length; i < l; ++i) + { + var object = list[i]; + if (object.type === STRUCTURE && object.stattype !== WALL && object.status === BUILT) + { + ++ret; + } + } + return ret; +} + +//;; ## camChangeOnDiff(numericValue) +//;; +//;; Change a numeric value based on campaign difficulty. +//;; +//;; @param {number} numericValue +//;; @returns {number} +//;; +function camChangeOnDiff(numericValue) +{ + var modifier = 0; + + switch (difficulty) + { + case SUPEREASY: + modifier = 2; + break; + case EASY: + modifier = 1.5; + break; + case MEDIUM: + modifier = 1; + break; + case HARD: + modifier = 0.85; + break; + case INSANE: + modifier = 0.70; + break; + default: + modifier = 1; + break; + } + + return Math.floor(numericValue * modifier); +} + +//;; ## camIsSystemDroid(gameObject) +//;; +//;; Determine if the passed in object is a non-weapon based droid. +//;; +//;; @param {Object} gameObject +//;; @returns {boolean} +//;; +function camIsSystemDroid(gameObject) +{ + if (!camDef(gameObject) || !gameObject) + { + return false; + } + + if (gameObject.type !== DROID) + { + camTrace("Non-droid: " + gameObject.type + " pl: " + gameObject.name); + return false; + } + + return (gameObject.droidType === DROID_SENSOR || gameObject.droidType === DROID_CONSTRUCT || gameObject.droidType === DROID_REPAIR); +} + +//;; ## camMakeGroup(what[, playerFilter]) +//;; +//;; Make a new group out of array of droids, single game object, or label string, +//;; with fuzzy auto-detection of argument type. +//;; Only droids would be added to the group. `playerFilter` can be one of a +//;; player index, `ALL_PLAYERS`, `ALLIES` or `ENEMIES`; defaults to `ENEMIES`. +//;; +//;; @param {string|Object|Object[]} what +//;; @param {number} [playerFilter] +//;; @returns {number|void} +//;; +function camMakeGroup(what, playerFilter) +{ + if (!camDef(playerFilter)) + { + playerFilter = ENEMIES; + } + var array; + var obj; + if (camIsString(what)) // label + { + obj = getObject(what); + } + else if (camDef(what.length)) // array + { + array = what; + } + else if (camDef(what.type)) // object + { + obj = what; + } + if (camDef(obj)) + { + switch (obj.type) { + case POSITION: + obj = getObject(obj.x, obj.y); + // fall-through + case DROID: + case STRUCTURE: + case FEATURE: + array = [ obj ]; + break; + case AREA: + array = enumArea(obj.x, obj.y, obj.x2, obj.y2, ALL_PLAYERS, false); + break; + case RADIUS: + array = enumRange(obj.x, obj.y, obj.radius, ALL_PLAYERS, false); + break; + case GROUP: + array = enumGroup(obj.id); + break; + default: + camDebug("Unknown object type", obj.type); + } + } + if (camDef(array)) + { + var group = camNewGroup(); + for (let i = 0, l = array.length; i < l; ++i) + { + var o = array[i]; + if (!camDef(o) || !o) + { + camDebug("Trying to add", o); + continue; + } + if (o.type === DROID && o.droidType !== DROID_CONSTRUCT && camPlayerMatchesFilter(o.player, playerFilter)) + { + groupAdd(group, o); + } + } + return group; + } + camDebug("Cannot parse", what); +} + +//;; ## camBreakAlliances() +//;; +//;; Break alliances between all players. +//;; +//;; @returns {void} +//;; +function camBreakAlliances() +{ + for (let i = 0; i < CAM_MAX_PLAYERS; ++i) + { + for (let c = 0; c < CAM_MAX_PLAYERS; ++c) + { + if (i !== c && allianceExistsBetween(i, c) === true) + { + setAlliance(i, c, false); + } + } + } +} + +//;; ## camGenerateRandomMapEdgeCoordinate(reachPosition) +//;; +//;; Returns a random coordinate anywhere on the edge of the map that reachs a position. +//;; +//;; @param {Object} reachPosition +//;; @returns {Object} +//;; +function camGenerateRandomMapEdgeCoordinate(reachPosition) +{ + let limits = getScrollLimits(); + let loc; + + do + { + let location = {x: 0, y: 0}; + let xWasRandom = false; + + if (camRand(100) < 50) + { + location.x = camRand(limits.x2 + 1); + if (location.x < (limits.x + 2)) + { + location.x = limits.x + 2; + } + else if (location.x > (limits.x2 - 2)) + { + location.x = limits.x2 - 2; + } + xWasRandom = true; + } + else + { + location.x = (camRand(100) < 50) ? (limits.x2 - 2) : (limits.x + 2); + } + + if (!xWasRandom && (camRand(100) < 50)) + { + location.y = camRand(limits.y2 + 1); + if (location.y < (limits.y + 2)) + { + location.y = limits.y + 2; + } + else if (location.y > (limits.y2 - 2)) + { + location.y = limits.y2 - 2; + } + } + else + { + location.y = (camRand(100) < 50) ? (limits.y2 - 2) : (limits.y + 2); + } + + loc = location; + } while (camDef(reachPosition) && reachPosition && !propulsionCanReach("wheeled01", reachPosition.x, reachPosition.y, loc.x, loc.y)); + + return loc; +} + +//;; ## camGenerateRandomMapCoordinate(reachPosition) +//;; +//;; Returns a random coordinate anywhere on the map +//;; +//;; @param {Object} reachPosition +//;; @returns {Object} +//;; +function camGenerateRandomMapCoordinate(reachPosition, distFromReach, scanObjectRadius) +{ + if (!camDef(distFromReach)) + { + distFromReach = 10; + } + if (!camDef(scanObjectRadius)) + { + scanObjectRadius = 2; + } + + let limits = getScrollLimits(); + let pos; + + do + { + let randomPos = {x: camRand(limits.x2), y: camRand(limits.y2)}; + + if (randomPos.x < (limits.x + 2)) + { + randomPos.x = limits.x + 2; + } + else if (randomPos.x > (limits.x2 - 2)) + { + randomPos.x = limits.x2 - 2; + } + + if (randomPos.y < (limits.y + 2)) + { + randomPos.y = limits.y; + } + else if (randomPos.y > (limits.y2 - 2)) + { + randomPos.y = limits.y2 - 2; + } + + pos = randomPos; + } while (camDef(reachPosition) && + reachPosition && + !propulsionCanReach("wheeled01", reachPosition.x, reachPosition.y, pos.x, pos.y) && + (camDist(pos, reachPosition) < distFromReach) && + (enumRange(pos.x, pos.y, scanObjectRadius, ALL_PLAYERS, false).length > 0)); + + return pos; +} + +//;; ## camDiscoverCampaign() +//;; +//;; Figures out what campaign we are in without reliance on the source at all. +//;; +//;; @returns {number} +//;; +function camDiscoverCampaign() +{ + for (let i = 0, len = ALPHA_LEVELS.length; i < len; ++i) + { + if (__camNextLevel === ALPHA_LEVELS[i] || __camNextLevel === BETA_LEVELS[0]) + { + return ALPHA_CAMPAIGN_NUMBER; + } + } + for (let i = 0, len = BETA_LEVELS.length; i < len; ++i) + { + if (__camNextLevel === BETA_LEVELS[i] || __camNextLevel === GAMMA_LEVELS[0]) + { + return BETA_CAMPAIGN_NUMBER; + } + } + for (let i = 0, len = GAMMA_LEVELS.length; i < len; ++i) + { + if (__camNextLevel === GAMMA_LEVELS[i] || __camNextLevel === CAM_GAMMA_OUT) + { + return GAMMA_CAMPAIGN_NUMBER; + } + } + + return UNKNOWN_CAMPAIGN_NUMBER; +} + +//////////// privates + +function __camGlobalContext() +{ + return Function('return this')(); // eslint-disable-line no-new-func +} + +function __camFindClusters(list, size) +{ + // The good old cluster analysis algorithm taken from NullBot AI. + var ret = { clusters: [], xav: [], yav: [], maxIdx: 0, maxCount: 0 }; + for (let i = list.length - 1; i >= 0; --i) + { + var x = list[i].x; + var y = list[i].y; + var found = false; + var n = 0; + for (let j = 0; j < ret.clusters.length; ++j) + { + if (camDist(ret.xav[j], ret.yav[j], x, y) < size) + { + n = ret.clusters[j].length; + ret.clusters[j][n] = list[i]; + ret.xav[j] = Math.floor((n * ret.xav[j] + x) / (n + 1)); + ret.yav[j] = Math.floor((n * ret.yav[j] + y) / (n + 1)); + if (ret.clusters[j].length > ret.maxCount) + { + ret.maxIdx = j; + ret.maxCount = ret.clusters[j].length; + } + found = true; + break; + } + } + if (!found) + { + n = ret.clusters.length; + ret.clusters[n] = [list[i]]; + ret.xav[n] = x; + ret.yav[n] = y; + if (1 > ret.maxCount) + { + ret.maxIdx = n; + ret.maxCount = 1; + } + } + } + return ret; +} + +/* Called every second after eventStartLevel(). */ +function __camTick() +{ + if (camDef(__camWinLossCallback)) + { + __camGlobalContext()[__camWinLossCallback](); + } + __camBasesTick(); +} + +//Reset AI power back to highest storage possible. +function __camAiPowerReset() +{ + for (let i = 1; i < CAM_MAX_PLAYERS; ++i) + { + setPower(AI_POWER, i); + } +} diff --git a/script/campaign/libcampaign_includes/nexus.js b/script/campaign/libcampaign_includes/nexus.js index 92821ac..b4770e0 100644 --- a/script/campaign/libcampaign_includes/nexus.js +++ b/script/campaign/libcampaign_includes/nexus.js @@ -3,7 +3,12 @@ // Nexus related functionality. //////////////////////////////////////////////////////////////////////////////// -//Play a random laugh. +//;; ## camNexusLaugh() +//;; +//;; Play a random NEXUS laugh. +//;; +//;; @returns {void} +//;; function camNexusLaugh() { const LAUGH_CHANCE = 45; @@ -14,6 +19,15 @@ function camNexusLaugh() } } +//;; ## camAbsorbPlayer([who[, to]]) +//;; +//;; Completely give all of player `who` droids and structures to player `to`. +//;; Will default to `CAM_HUMAN_PLAYER` and `NEXUS` respectively. +//;; +//;; @param {number} [who] +//;; @param {number} [to] +//;; @returns {void} +//;; function camAbsorbPlayer(who, to) { if (!camDef(who)) @@ -27,7 +41,7 @@ function camAbsorbPlayer(who, to) var units = enumDroid(who); - for (var i = 0, len = units.length; i < len; i++) + for (let i = 0, len = units.length; i < len; ++i) { var droid = units[i]; if (!donateObject(droid, to)) @@ -37,7 +51,7 @@ function camAbsorbPlayer(who, to) } var structs = enumStruct(who); - for (var i = 0, len = structs.length; i < len; i++) + for (let i = 0, len = structs.length; i < len; ++i) { var structure = structs[i]; if (!donateObject(structure, to)) @@ -50,7 +64,15 @@ function camAbsorbPlayer(who, to) changePlayerColour(who, to); } -//Steal a droid or structure from a player. +//;; ## camHackIntoPlayer([player[, to]]) +//;; +//;; Steal a droid or structure from a player if the NEXUS hack state is active. +//;; Will default to `CAM_HUMAN_PLAYER` and `NEXUS` respectively. +//;; +//;; @param {number} [player] +//;; @param {number} [to] +//;; @returns {void} +//;; function camHackIntoPlayer(player, to) { if (__camNexusActivated === false) @@ -127,11 +149,24 @@ function camHackIntoPlayer(player, to) } } +//;; ## camSetNexusState(flag) +//;; +//;; Turn on/off the NEXUS hacking state feature. +//;; +//;; @param {boolean} flag +//;; @returns {void} +//;; function camSetNexusState(flag) { __camNexusActivated = flag; } +//;; ## camGetNexusState() +//;; +//;; Returns the activation state of the NEXUS hacking feature. +//;; +//;; @returns {boolean} +//;; function camGetNexusState() { return __camNexusActivated; @@ -158,9 +193,7 @@ function __camChooseNexusTarget(player) if (camRand(100) < TARGET_UNIT_CHANCE) { - objects = enumDroid(player).filter(function(d) { - return !camIsTransporter(d); - }); + objects = enumDroid(player).filter((d) => (!camIsTransporter(d))); const EXP = { rookie: 0, @@ -176,7 +209,7 @@ function __camChooseNexusTarget(player) //As the player researches more resistance upgrades their higher exp units will become more safe //Trucks get a little more safe with each upgrade also. - objects = objects.filter(function(d) { + objects = objects.filter((d) => { if (__camNextLevel === CAM_GAMMA_OUT) //Final mission has a static fail chance to hack everything (except for hero units). { if (d.droidType === DROID_CONSTRUCT) @@ -229,30 +262,23 @@ function __camChooseNexusTarget(player) //Has explicit chances to target factories or research labs. switch (camRand(8)) { - case 0: objects = enumStruct(player, FACTORY).filter(function(s) { return (s.status === BUILT); }); break; - case 1: objects = enumStruct(player, CYBORG_FACTORY).filter(function(s) { return (s.status === BUILT); }); break; - case 2: objects = enumStruct(player, VTOL_FACTORY).filter(function(s) { return (s.status === BUILT); }); break; - case 3: objects = enumStruct(player, RESEARCH_LAB).filter(function(r) { return (r.status === BUILT); }); break; + case 0: objects = enumStruct(player, FACTORY).filter((s) => (s.status === BUILT)); break; + case 1: objects = enumStruct(player, CYBORG_FACTORY).filter((s) => (s.status === BUILT)); break; + case 2: objects = enumStruct(player, VTOL_FACTORY).filter((s) => (s.status === BUILT)); break; + case 3: objects = enumStruct(player, RESEARCH_LAB).filter((r) => (r.status === BUILT)); break; default: //do nothing } if (objects.length === 0) { - objects = enumStruct(player).filter(function(s) { return (s.status === BUILT); }); + objects = enumStruct(player).filter((s) => (s.status === BUILT)); } - objects = objects.filter(function(s) { + objects = objects.filter((s) => ( //cam3-ab is way too annoying if Nexus can still take factories after the second resistance upgrade. - if (getResearch("R-Sys-Resistance-Upgrade02").done && - (s.stattype === FACTORY || - s.stattype === CYBORG_FACTORY || - s.stattype === VTOL_FACTORY)) - { - return false; - } - - return true; - }); + !(getResearch("R-Sys-Resistance-Upgrade02").done && + (s.stattype === FACTORY || s.stattype === CYBORG_FACTORY || s.stattype === VTOL_FACTORY)) + )); } return objects; diff --git a/script/campaign/libcampaign_includes/production.js b/script/campaign/libcampaign_includes/production.js new file mode 100644 index 0000000..4ac53f6 --- /dev/null +++ b/script/campaign/libcampaign_includes/production.js @@ -0,0 +1,447 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Factory production management. +//////////////////////////////////////////////////////////////////////////////// + +// To use this feature, call camSetFactories() with a list of factories. +// This assumes tactical management of groups of units produced from them. +// Factories won't start production immediately; call camEnableFactory() +// to turn them on. + +//;; ## camSetFactories(factories) +//;; +//;; Tell `libcampaign.js` to manage a certain set of enemy factories. +//;; Management assumes producing droids, packing them into groups and +//;; executing orders once the group becomes large-enough. +//;; The argument is a JavaScript map from group labels to factory descriptions. +//;; Each label points to a factory object. +//;; Factory description is a JavaScript object with the following fields: +//;; * `assembly` A rally point position label, where the group would gather. +//;; * `order` An order to execute for every group produced in the factory. Same as the order parameter for `camManageGroup()`. +//;; * `data` Order data. Same as the data parameter for `camManageGroup()`. +//;; * `groupSize` Number of droids to produce before executing the order. +//;; Also, if order is `CAM_ORDER_ATTACK`, data.count defaults to this value. +//;; * `maxSize` Halt production when reaching that many droids in the factory group. +//;; Resume when some droids die. Unlimited if unspecified. +//;; * `throttle` If defined, produce droids only every that many milliseconds, and keep the factory idle between ticks. +//;; * `group` If defined, make the factory manage this group, otherwise create a new empty group to manage. +//;; Droids produced in the factory would automatically be added to the group, +//;; and order and data parameters would be applied to this group. +//;; * `templates` List of droid templates to produce in the factory. +//;; Each template is a JavaScript object with the following fields: +//;; * `body` Body stat name. +//;; * `prop` Propulsion stat name. +//;; * `weap` Weapon stat name. Only single-turret droids are currently supported. +//;; Note that all template components are automatically made available to the factory owner. +//;; Factories won't start production immediately; call `camEnableFactory()` to turn them on when necessary. +//;; +//;; @param {Object} factories +//;; @returns {void} +//;; +function camSetFactories(factories) +{ + for (const factoryLabel in factories) + { + camSetFactoryData(factoryLabel, factories[factoryLabel]); + } +} + +//;; ## camSetFactoryData(factoryLabel, factoryData) +//;; +//;; Similar to `camSetFactories()`, but one factory at a time. +//;; If the factory was already managing a group of droids, it keeps managing it. +//;; If a new group is specified in the description, the old group is merged into it. +//;; NOTE: This function disables the factory. You would need to call `camEnableFactory()` again. +//;; +//;; @param {string} factoryLabel +//;; @param {Object} factoryData +//;; @returns {void} +//;; +function camSetFactoryData(factoryLabel, factoryData) +{ + var structure = getObject(factoryLabel); + if (!camDef(structure) || !structure) + { + // Not an error! It's ok if the factory is already destroyed + // when its data was updated. + camTrace("Factory", factoryLabel, "not found"); + return; + } + // remember the old factory group, if any + var droids = []; + if (camDef(__camFactoryInfo[factoryLabel])) + { + droids = enumGroup(__camFactoryInfo[factoryLabel].group); + } + __camFactoryInfo[factoryLabel] = factoryData; + var fi = __camFactoryInfo[factoryLabel]; + if (!camDef(fi.data)) + { + fi.data = {}; + } + fi.enabled = false; + fi.state = 0; + if (!camDef(fi.group)) + { + fi.group = camNewGroup(); + } + for (let i = 0, l = droids.length; i < l; ++i) + { + var droid = droids[i]; + groupAdd(fi.group, droid); + } + if (!camDef(fi.data.count)) + { + fi.data.count = fi.groupSize; + } +} + +//;; ## camEnableFactory(factoryLabel) +//;; +//;; Enable a managed factory by the given label. +//;; Once the factory is enabled, it starts producing units and executing orders as given. +//;; +//;; @param {string} factoryLabel +//;; @returns {void} +//;; +function camEnableFactory(factoryLabel) +{ + var fi = __camFactoryInfo[factoryLabel]; + if (!camDef(fi) || !fi) + { + camDebug("Factory not managed", factoryLabel); + return; + } + if (fi.enabled) + { + // safe, no error + camTrace("Factory", factoryLabel, "enabled again"); + return; + } + camTrace("Enabling", factoryLabel); + fi.enabled = true; + var obj = getObject(factoryLabel); + if (!camDef(obj) || !obj) + { + camTrace("Factory", factoryLabel, "not found, probably already dead"); + return; + } + __camContinueProduction(factoryLabel); + __camFactoryUpdateTactics(factoryLabel); +} + +//;; ## camQueueDroidProduction(playerId, template) +//;; +//;; Queues up an extra droid template for production. +//;; It would be produced in the first factory that is capable of producing it, +//;; at the end of its production loop, first queued first served. +//;; +//;; @param {number} playerId +//;; @param {Object} template +//;; @returns {void} +//;; +function camQueueDroidProduction(playerId, template) +{ + if (!camDef(__camFactoryQueue[playerId])) + { + __camFactoryQueue[playerId] = []; + } + __camFactoryQueue[playerId][__camFactoryQueue[playerId].length] = template; +} + +//;; ## camSetPropulsionTypeLimit([limit]) +//;; +//;; On hard and insane the propulsion type can be limited with this. +//;; For type II pass in `2`, and for type III pass in `3`. Hard defaults to type II and insane defaults to type III. +//;; If nothing is passed in then the type limit will match what is in templates.json. +//;; +//;; @param {number} [limit] +//;; @returns {void} +//;; +function camSetPropulsionTypeLimit(limit) +{ + if (!camDef(limit)) + { + __camPropulsionTypeLimit = "NO_USE"; + } + else if (limit === 2) + { + __camPropulsionTypeLimit = "02"; + } + else if (limit === 3) + { + __camPropulsionTypeLimit = "03"; + } +} + +//;; ## camUpgradeOnMapTemplates(template1, template2, playerId[, excluded]) +//;; +//;; Search for `template1`, save its coordinates, remove it, and then replace with it with `template2`. +//;; Template objects are expected to follow the component properties as used in `templates.js`. +//;; A fourth parameter can be specified to ignore specific object IDs. +//;; Useful if a droid is assigned to an object label. It can be either an array or a single ID number. +//;; +//;; @param {Object} template1 +//;; @param {Object} template2 +//;; @param {number} playerId +//;; @param {number|number[]} [excluded] +//;; @returns {void} +//;; +function camUpgradeOnMapTemplates(template1, template2, playerId, excluded) +{ + if (!camDef(template1) || !camDef(template2) || !camDef(playerId)) + { + camDebug("Not enough parameters specified for upgrading on map templates"); + return; + } + + var droidsOnMap = enumDroid(playerId); + + for (let i = 0, l = droidsOnMap.length; i < l; ++i) + { + var dr = droidsOnMap[i]; + if (!camDef(dr.weapons[0])) + { + continue; //don't handle systems + } + var body = dr.body; + var prop = dr.propulsion; + var weap = dr.weapons[0].name; + var skip = false; + if (body === template1.body && prop === template1.prop && weap === template1.weap) + { + //Check if this object should be excluded from the upgrades + if (camDef(excluded)) + { + if (excluded instanceof Array) + { + for (let j = 0, c = excluded.length; j < c; ++j) + { + if (dr.id === excluded[j]) + { + skip = true; + break; + } + } + if (skip === true) + { + continue; + } + } + else if (dr.id === excluded) + { + continue; + } + } + + //Replace it + let droidInfo = {x: dr.x, y: dr.y, name: dr.name}; + camSafeRemoveObject(dr, false); + addDroid(playerId, droidInfo.x, droidInfo.y, droidInfo.name, template2.body, + __camChangePropulsionOnDiff(template2.prop), "", "", template2.weap); + } + } +} + +//////////// privates + +function __camFactoryUpdateTactics(flabel) +{ + var fi = __camFactoryInfo[flabel]; + if (!fi.enabled) + { + camDebug("Factory", flabel, "was not enabled"); + return; + } + var droids = enumGroup(fi.group); + if (droids.length >= fi.groupSize) + { + camManageGroup(fi.group, fi.order, fi.data); + fi.group = camNewGroup(); + } + else + { + var pos = camMakePos(fi.assembly); + if (!camDef(pos)) + { + pos = camMakePos(flabel); + } + camManageGroup(fi.group, CAM_ORDER_DEFEND, { pos: pos }); + } +} + +function __camAddDroidToFactoryGroup(droid, structure) +{ + // don't manage trucks in this function + if (droid.droidType === DROID_CONSTRUCT) + { + return; + } + // FIXME: O(n) lookup here + var flabel = getLabel(structure); + if (!camDef(flabel) || !flabel) + { + return; + } + var fi = __camFactoryInfo[flabel]; + groupAdd(fi.group, droid); + if (camDef(fi.assembly)) + { + // this is necessary in case droid is regrouped manually + // in the scenario code, and thus DORDER_DEFEND for assembly + // will not be applied in __camFactoryUpdateTactics() + var pos = camMakePos(fi.assembly); + orderDroidLoc(droid, DORDER_MOVE, pos.x, pos.y); + } + __camFactoryUpdateTactics(flabel); +} + +function __camChangePropulsionOnDiff(propulsion) +{ + if (difficulty <= MEDIUM) + { + return propulsion; + } + if (camDef(__camPropulsionTypeLimit) && __camPropulsionTypeLimit === "NO_USE") + { + return propulsion; //this mission don't want this feature then + } + + var name = propulsion; + var typeModifier = difficulty === HARD ? "02" : "03"; + const VALID_PROPS = [ + "CyborgLegs", "HalfTrack", "V-Tol", "hover", "tracked", "wheeled", + ]; + + var lastTwo = name.substring(name.length - 2); + if (lastTwo === "01" || lastTwo === "02" || lastTwo === "03") + { + name = name.substring(0, name.length - 2); + } + + for (let i = 0, l = VALID_PROPS.length; i < l; ++i) + { + var currentProp = VALID_PROPS[i]; + if (name === currentProp) + { + //if hard difficulty and a future template has a type III then this will + //ensure it stays type III. + if (difficulty === HARD && lastTwo === "02") + { + typeModifier = "03"; + } + //maybe a mission wants to set a limit on the highest propulsion type + if (camDef(__camPropulsionTypeLimit)) + { + typeModifier = __camPropulsionTypeLimit; + } + //return a stronger propulsion based on difficulty + return currentProp.concat(typeModifier); + } + } + + //If all else fails then return the propulsion that came with the template + return propulsion; +} + +function __camBuildDroid(template, structure) +{ + if (!camDef(structure)) + { + return false; + } + //if not a normal factory and the template is a constructor then keep it in the + //queue until a factory can deal with it. + if (template.weap === "Spade1Mk1" && structure.stattype !== FACTORY) + { + return false; + } + var prop = __camChangePropulsionOnDiff(template.prop); + makeComponentAvailable(template.body, structure.player); + makeComponentAvailable(prop, structure.player); + makeComponentAvailable(template.weap, structure.player); + var n = [ structure.name, structure.id, template.body, prop, template.weap ].join(" "); + // multi-turret templates are not supported yet + return buildDroid(structure, n, template.body, prop, "", "", template.weap); +} + +//Check if an enabled factory can begin manufacturing something. Doing this +//by timer has the perk of not breaking production if something went wrong in +//cam_eventDroidBuilt (or the mere act of reloading saves). +function __checkEnemyFactoryProductionTick() +{ + for (const flabel in __camFactoryInfo) + { + if (getObject(flabel) !== null && __camFactoryInfo[flabel].enabled === true) + { + __camContinueProduction(flabel); + } + } +} + +function __camContinueProduction(structure) +{ + var flabel; + var struct; + if (camIsString(structure)) + { + flabel = structure; + struct = getObject(flabel); + if (!camDef(struct) || !struct) + { + camTrace("Factory not found"); + return; + } + } + else + { + // FIXME: O(n) lookup here + flabel = getLabel(structure); + struct = structure; + } + if (!camDef(flabel) || !flabel) + { + return; + } + if (!structureIdle(struct)) + { + return; + } + var fi = __camFactoryInfo[flabel]; + if (camDef(fi.maxSize) && groupSize(fi.group) >= fi.maxSize) + { + // retry later + return; + } + if (camDef(fi.throttle) && camDef(fi.lastprod)) + { + var throttle = gameTime - fi.lastprod; + if (throttle < fi.throttle) + { + // do throttle + return; + } + } + // check factory queue after every loop + if (fi.state === -1) + { + fi.state = 0; + var p = struct.player; + if (camDef(__camFactoryQueue[p]) && __camFactoryQueue[p].length > 0) + { + if (__camBuildDroid(__camFactoryQueue[p][0], struct)) + { + __camFactoryQueue[p].shift(); + return; + } + } + } + __camBuildDroid(fi.templates[fi.state], struct); + // loop through templates + ++fi.state; + if (fi.state >= fi.templates.length) + { + fi.state = -1; + } + fi.lastprod = gameTime; +} diff --git a/script/campaign/libcampaign_includes/reinforcements.js b/script/campaign/libcampaign_includes/reinforcements.js new file mode 100644 index 0000000..1a16ab3 --- /dev/null +++ b/script/campaign/libcampaign_includes/reinforcements.js @@ -0,0 +1,97 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Reinforcement related stuff. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camSendReinforcement(playerId, position, templates, kind[, data]) +//;; +//;; Give a single bunch of droids (template list) for a player at a position label. Kind can be one of: +//;; * `CAM_REINFORCE_GROUND` Reinforcements magically appear on the ground. +//;; * `CAM_REINFORCE_TRANSPORT` Reinforcements are unloaded from a transporter. +//;; **NOTE:** the game engine doesn't seem to support two simultaneous incoming transporters for the same player. +//;; Avoid this at all costs! +//;; The following data fields are required: +//;; * `entry` Transporter entry position. +//;; * `exit` Transporter exit position. +//;; * `message` `PROX_MSG` to display when transport is landing. +//;; * `order` Order to give to newly landed droids +//;; * `data` Order data. +//;; **NOTE:** the game engine doesn't seem to support two simultaneous incoming transporters for the same player. +//;; If a transporter is already on map, it will be correctly queued up and sent later. +//;; +//;; @param {number} playerId +//;; @param {string|Object|undefined} position +//;; @param {Object[]} templates +//;; @param {number} kind +//;; @param {Object} [data] +//;; @returns {void} +//;; +function camSendReinforcement(playerId, position, templates, kind, data) +{ + var pos = camMakePos(position); + var order = CAM_ORDER_ATTACK; + var order_data = { regroup: false, count: -1 }; + if (camDef(data) && camDef(data.order)) + { + order = data.order; + if (camDef(data.data)) + { + order_data = data.data; + } + } + switch (kind) + { + case CAM_REINFORCE_GROUND: + var droids = []; + for (let i = 0, l = templates.length; i < l; ++i) + { + var template = templates[i]; + var prop = __camChangePropulsionOnDiff(template.prop); + droids.push(addDroid(playerId, pos.x, pos.y, "Reinforcement", template.body, prop, "", "", template.weap)); + } + camManageGroup(camMakeGroup(droids), order, order_data); + break; + case CAM_REINFORCE_TRANSPORT: + __camTransporterQueue.push({ + player: playerId, + position: position, + list: templates, + data: data, + order: order, + order_data: order_data + }); + __camDispatchTransporterSafe(); + break; + default: + camTrace("Unknown reinforcement type"); + break; + } +} + +//;; ## camSetBaseReinforcements(baseLabel, interval, callbackName, kind, data) +//;; +//;; Periodically brings reinforcements to an enemy base, until the base is eliminated. +//;; Interval is the pause, in milliseconds, between reinforcements. +//;; Callback is name of a function that returns a list of droid templates to spawn, +//;; which may be different every time. Kind and data work similarly to `camSendReinforcement()`. +//;; Use `CAM_REINFORCE_NONE` as kind to disable previously set reinforcements. +//;; +//;; @param {string} baseLabel +//;; @param {number} interval +//;; @param {string} callbackName +//;; @param {number} kind +//;; @param {Object} data +//;; @returns {void} +//;; +function camSetBaseReinforcements(baseLabel, interval, callbackName, kind, data) +{ + if (!camIsString(callbackName)) + { + camDebug("Callback name must be a string (received", callbackName, ")"); + } + var bi = __camEnemyBases[baseLabel]; + bi.reinforce_kind = kind; + bi.reinforce_interval = interval; + bi.reinforce_callback = callbackName; + bi.reinforce_data = data; +} diff --git a/script/campaign/libcampaign_includes/research.js b/script/campaign/libcampaign_includes/research.js new file mode 100644 index 0000000..205a0c9 --- /dev/null +++ b/script/campaign/libcampaign_includes/research.js @@ -0,0 +1,76 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Research related functions. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camEnableRes(researchIds, playerId) +//;; +//;; Grants research from the given list to player +//;; +//;; @param {string[]} researchIds +//;; @param {number} playerId +//;; @returns {void} +//;; +function camEnableRes(researchIds, playerId) +{ + for (let i = 0, l = researchIds.length; i < l; ++i) + { + var researchId = researchIds[i]; + enableResearch(researchId, playerId); + completeResearch(researchId, playerId); + } +} + +//;; ## camCompleteRequiredResearch(researchIds, playerId) +//;; +//;; Grants research from the given list to player and also researches the required research for that item. +//;; +//;; @param {string[]} researchIds +//;; @param {number} playerId +//;; @returns {void} +//;; +function camCompleteRequiredResearch(researchIds, playerId) +{ + dump("\n*Player " + playerId + " requesting accelerated research."); + + for (let i = 0, l = researchIds.length; i < l; ++i) + { + var researchId = researchIds[i]; + dump("Searching for required research of item: " + researchId); + var reqRes = findResearch(researchId, playerId).reverse(); + + if (reqRes.length === 0) + { + //HACK: autorepair like upgrades don't work after mission transition. + if (researchId === "R-Sys-NEXUSrepair") + { + completeResearch(researchId, playerId, true); + } + continue; + } + + reqRes = camRemoveDuplicates(reqRes); + for (let s = 0, r = reqRes.length; s < r; ++s) + { + var researchReq = reqRes[s].name; + dump(" Found: " + researchReq); + enableResearch(researchReq, playerId); + completeResearch(researchReq, playerId); + } + } +} + +//////////// privates + +//granted shortly after mission start to give enemy players instant droid production. +function __camGrantSpecialResearch() +{ + for (let i = 1; i < CAM_MAX_PLAYERS; ++i) + { + if (!allianceExistsBetween(CAM_HUMAN_PLAYER, i) && (countDroid(DROID_ANY, i) > 0 || enumStruct(i).length > 0)) + { + //Boost AI production to produce all droids within a factory throttle + completeResearch("R-Struc-Factory-Upgrade-AI", i); + } + } +} diff --git a/script/campaign/libcampaign_includes/tactics.js b/script/campaign/libcampaign_includes/tactics.js new file mode 100644 index 0000000..0002b28 --- /dev/null +++ b/script/campaign/libcampaign_includes/tactics.js @@ -0,0 +1,697 @@ + +//////////////////////////////////////////////////////////////////////////////// +// AI droid movement automation. +//////////////////////////////////////////////////////////////////////////////// +//;; ## camManageGroup(group, order, data) +//;; +//;; Tell `libcampaign.js` to manage a certain group. The group would +//;; be permanently managed depending on the high-level orders given. +//;; For each order, data parameter is a JavaScript object that controls +//;; different aspects of behavior. The order parameter is one of: +//;; * `CAM_ORDER_ATTACK` Pursue human player, preferably around the given position. +//;; The following optional data object fields are available, none of which is required: +//;; * `pos` Position or list of positions to attack. If pos is a list, first positions in the list will be attacked first. +//;; * `radius` Circle radius around `pos` to scan for targets. +//;; * `fallback` Position to retreat. +//;; * `morale` An integer from `1` to `100`. If that high percentage of the original group dies, +//;; fall back to the fallback position. If new droids are added to the group, it can recover and attack again. +//;; * `count` Override size of the original group. If unspecified, number of droids in the group at call time. +//;; Retreat on low morale and regroup is calculated against this value. +//;; * `repair` Health percentage to fall back to repair facility, if any. +//;; * `regroup` If set to `true`, the group will not move forward unless it has at least `count` droids in its biggest cluster. +//;; If `count` is set to `-1`, at least â…” of group's droids should be in the biggest cluster. +//;; * `CAM_ORDER_DEFEND` Protect the given position. If too far, retreat back there ignoring fire. +//;; The following data object fields are available: +//;; * `pos` Position to defend. +//;; * `radius` Circle radius around `pos` to scan for targets. +//;; * `count` Override size of the original group. If unspecified, number of droids in the group at call time. +//;; Regroup is calculated against this value. +//;; * `repair` Health percentage to fall back to repair facility, if any. +//;; * `regroup` If set to `true`, the group will not move forward unless it has at least `count` droids in its biggest cluster. +//;; If `count` is set to `-1`, at least â…” of group's droids should be in the biggest cluster. +//;; * `CAM_ORDER_PATROL` Move droids randomly between a given list of positions. The following data object fields are available: +//;; * `pos` An array of positions to patrol between. +//;; * `interval` Change positions every this many milliseconds. +//;; * `count` Override size of the original group. If unspecified, number of droids in the group at call time. +//;; Regroup is calculated against this value. +//;; * `repair` Health percentage to fall back to repair facility, if any. +//;; * `regroup` If set to `true`, the group will not move forward unless it has at least `count` droids in its biggest cluster. +//;; If `count` is set to `-1`, at least â…” of group's droids should be in the biggest cluster. +//;; * `CAM_ORDER_COMPROMISE` Same as `CAM_ORDER_ATTACK`, just stay near the last (or only) +//;; attack position instead of looking for the player around the whole map. Useful for offworld missions, +//;; with player's LZ as the final position. The following data object fields are available: +//;; * `pos` Position or list of positions to compromise. +//;; If pos is a list, first positions in the list will be compromised first. +//;; * `radius` Circle radius around `pos` to scan for targets. +//;; * `count` Override size of the original group. If unspecified, number of droids in the group at call time. +//;; Regroup is calculated against this value. +//;; * `repair` Health percentage to fall back to repair facility, if any. +//;; * `regroup` If set to `true`, the group will not move forward unless it has at least `count` droids in its biggest cluster. +//;; If `count` is set to `-1`, at least â…” of group's droids should be in the biggest cluster. +//;; * `CAM_ORDER_FOLLOW` Assign the group to commander. The sub-order is defined to be given to the commander. +//;; When commander dies, the group continues to execute the sub-order. The following data object fields are available: +//;; * `droid` Commander droid label. +//;; * `order` The order to give to the commander. +//;; * `data` Data of the commander's order. +//;; * `repair` Health percentage to fall back to repair facility, if any. +//;; +//;; @param {string} group +//;; @param {number} order +//;; @param {Object} data +//;; @returns {void} +//;; +function camManageGroup(group, order, data) +{ + var saneData = data; + if (!camDef(saneData)) + { + saneData = {}; + } + if (camDef(saneData.pos)) // sanitize pos now to make ticks faster + { + if (camIsString(saneData.pos)) // single label? + { + saneData.pos = [ saneData.pos ]; + } + else if (!camDef(saneData.pos.length)) // single position object? + { + saneData.pos = [ saneData.pos ]; + } + for (let i = 0, l = saneData.pos.length; i < l; ++i) // array of labels? + { + saneData.pos[i] = camMakePos(saneData.pos[i]); + } + } + if (camDef(__camGroupInfo[group]) && order !== __camGroupInfo[group].order) + { + camTrace("Group", group, "receives a new order:", camOrderToString(order)); + } + __camGroupInfo[group] = { + target: undefined, + order: order, + data: saneData, + count: camDef(saneData.count) ? saneData.count : groupSize(group) + }; + if (order === CAM_ORDER_FOLLOW) + { + var commanderGroup = camMakeGroup([getObject(data.droid)]); + camManageGroup(commanderGroup, data.order, data.data); + } + // apply orders instantly + queue("__camTacticsTickForGroup", CAM_TICKS_PER_FRAME, group); +} + +//;; ## camStopManagingGroup(group) +//;; +//;; Tell `libcampaign.js` to stop managing a certain group. +//;; +//;; @param {string} group +//;; @returns {void} +//;; +function camStopManagingGroup(group) +{ + if (!camDef(__camGroupInfo[group])) + { + camTrace("Not managing", group, "anyway"); + return; + } + camTrace("Cease managing", group); + delete __camGroupInfo[group]; +} + +//;; ## camOrderToString(order) +//;; +//;; Print campaign order as string, useful for debugging. +//;; +//;; @param {number} order +//;; @returns {string} +//;; +function camOrderToString(order) +{ + var orderString; + switch (order) + { + case CAM_ORDER_ATTACK: + orderString = "ATTACK"; + break; + case CAM_ORDER_DEFEND: + orderString = "DEFEND"; + break; + case CAM_ORDER_PATROL: + orderString = "PATROL"; + break; + case CAM_ORDER_COMPROMISE: + orderString = "COMPROMISE"; + break; + case CAM_ORDER_FOLLOW: + orderString = "FOLLOW"; + break; + default: + orderString = "UNKNOWN"; + } + return orderString; +} + +//////////// privates +function __camFindGroupAvgCoordinate(groupID) +{ + var droids = enumGroup(groupID); + var len = droids.length; + var avgCoord = {x: 0, y: 0}; + + if (droids.length === 0) + { + return null; + } + + for (let i = 0; i < len; ++i) + { + var droid = droids[i]; + avgCoord.x += droid.x; + avgCoord.y += droid.y; + } + + // This global is constantly changing for the tactics code per group + __camGroupAvgCoord.x = Math.floor(avgCoord.x / len); + __camGroupAvgCoord.y = Math.floor(avgCoord.y / len); +} + +function __camDistToGroupAverage(obj1, obj2) +{ + var dist1 = distBetweenTwoPoints(__camGroupAvgCoord.x, __camGroupAvgCoord.y, obj1.x, obj1.y); + var dist2 = distBetweenTwoPoints(__camGroupAvgCoord.x, __camGroupAvgCoord.y, obj2.x, obj2.y); + return (dist1 - dist2); +} + +function __camPickTarget(group) +{ + var targets = []; + var gi = __camGroupInfo[group]; + var droids = enumGroup(group); + __camFindGroupAvgCoordinate(group); + switch (gi.order) + { + case CAM_ORDER_ATTACK: + if (camDef(gi.target)) + { + targets = enumRange(gi.target.x, gi.target.y,__CAM_TARGET_TRACKING_RADIUS, CAM_HUMAN_PLAYER, false).filter((obj) => ( + obj.type === STRUCTURE || (obj.type === DROID && !isVTOL(obj)) + )); + } + // fall-through! we just don't track targets on COMPROMISE + case CAM_ORDER_COMPROMISE: + if (camDef(gi.data.pos)) + { + for (let i = 0; i < gi.data.pos.length; ++i) + { + var compromisePos = gi.data.pos[i]; + if (targets.length > 0) + { + break; + } + var radius = gi.data.radius; + if (!camDef(radius)) + { + radius = __CAM_PLAYER_BASE_RADIUS; + } + targets = enumRange(compromisePos.x, compromisePos.y, radius, CAM_HUMAN_PLAYER, false); + } + } + if (gi.order === CAM_ORDER_COMPROMISE && targets.length === 0) + { + if (!camDef(gi.data.pos)) + { + camDebug("'pos' is required for COMPROMISE order"); + return undefined; + } + else + { + targets = [ gi.data.pos[gi.data.pos.length - 1] ]; + } + } + var dr = droids[0]; + targets = targets.filter((obj) => ( + propulsionCanReach(dr.propulsion, dr.x, dr.y, obj.x, obj.y) + )); + if (targets.length === 0) + { + targets = enumStruct(CAM_HUMAN_PLAYER).filter((obj) => ( + propulsionCanReach(dr.propulsion, dr.x, dr.y, obj.x, obj.y) + )); + if (targets.length === 0) + { + targets = enumDroid(CAM_HUMAN_PLAYER).filter((obj) => ( + propulsionCanReach(dr.propulsion, dr.x, dr.y, obj.x, obj.y) && + (obj.type === STRUCTURE || (obj.type === DROID && !isVTOL(obj))) + )); + if (targets.length === 0) + { + targets = enumDroid(CAM_HUMAN_PLAYER).filter((obj) => ( + propulsionCanReach(dr.propulsion, dr.x, dr.y, obj.x, obj.y) + )); + } + } + } + break; + case CAM_ORDER_DEFEND: + if (!camDef(gi.data.pos)) + { + camDebug("'pos' is required for DEFEND order"); + return undefined; + } + var defendPos = gi.data.pos[0]; + var radius = gi.data.radius; + if (!camDef(radius)) + { + radius = __CAM_DEFENSE_RADIUS; + } + if (camDef(gi.target) && camDist(gi.target, defendPos) < radius) + { + targets = enumRange(gi.target.x, gi.target.y, + __CAM_TARGET_TRACKING_RADIUS, + CAM_HUMAN_PLAYER, false); + } + if (targets.length === 0) + { + targets = enumRange(defendPos.x, defendPos.y, radius, CAM_HUMAN_PLAYER, false); + } + if (targets.length === 0) + { + targets = [ defendPos ]; + } + break; + default: + camDebug("Unsupported group order", gi.order, camOrderToString(gi.order)); + break; + } + if (targets.length === 0) + { + return undefined; + } + targets.sort(__camDistToGroupAverage); + var target = targets[0]; + if (camDef(target) && camDef(target.type) && target.type === DROID && camIsTransporter(target)) + { + return undefined; + } + __camGroupInfo[group].target = { x: target.x, y: target.y }; + return __camGroupInfo[group].target; +} + +function __camTacticsTick() +{ + var dt = CAM_TICKS_PER_FRAME; + for (const group in __camGroupInfo) + { + //Remove groups with no droids. + if (groupSize(group) === 0) + { + var remove = true; + var removable = __camGroupInfo[group].data.removable; + //Useful if the group has manual management (seen in cam1-3 script). + if (camDef(removable) && !removable) + { + remove = false; + } + if (remove) + { + camStopManagingGroup(group); + break; + } + } + queue("__camTacticsTickForGroup", dt, group); + dt += CAM_TICKS_PER_FRAME; + } + //Emulate a queue... + removeTimer("__camTacticsTick"); + setTimer("__camTacticsTick", dt); +} + +//Return the range (in tiles) a droid will scout for stuff to attack around it. +function __camScanRange(order, drType) +{ + var rng = __CAM_TARGET_TRACKING_RADIUS; //default + switch (order) + { + case CAM_ORDER_ATTACK: + case CAM_ORDER_DEFEND: + case CAM_ORDER_FOLLOW: + rng = __CAM_TARGET_TRACKING_RADIUS; + break; + case CAM_ORDER_PATROL: + rng = 5; + break; + case CAM_ORDER_COMPROMISE: + rng = 2; //very small so they don't track stuff too far + break; + default: + camDebug("Unsupported group order", order, camOrderToString(order)); + } + + if (drType === DROID_SENSOR) + { + rng = Math.floor(rng * 1.5); + } + + return rng; +} + +function __camTacticsTickForGroup(group) +{ + var gi = __camGroupInfo[group]; + if (!camDef(gi)) + { + return; + } + var rawDroids = enumGroup(group); + if (rawDroids.length === 0) + { + return; + } + + const CLOSE_Z = 1; + var healthyDroids = []; + var repair = { + hasFacility: enumStruct(rawDroids[0].player, REPAIR_FACILITY).length > 0, + pos: camDef(gi.data.repairPos) ? gi.data.repairPos : undefined, + percent: camDef(gi.data.repair) ? gi.data.repair : 66, + }; + + //repair + if (repair.hasFacility || camDef(repair.pos)) + { + for (let i = 0, len = rawDroids.length; i < len; ++i) + { + var droid = rawDroids[i]; + var repairLikeAction = false; + + if (droid.order === DORDER_RTR) + { + continue; + } + + //has a repair facility so use it + if (repair.hasFacility && camDef(gi.data.repair)) + { + if (droid.health < repair.percent) + { + orderDroid(droid, DORDER_RTR); + repairLikeAction = true; + } + } + //Or they have auto-repair and run to some position for a while + else if (!repair.hasFacility && repair.pos) + { + if (droid.health < repair.percent) + { + var loc = camMakePos(repair.pos); + orderDroidLoc(droid, DORDER_MOVE, loc.x, loc.y); + repairLikeAction = true; + } + } + + if (!repairLikeAction) + { + healthyDroids.push(droid); + } + } + } + else + { + healthyDroids = rawDroids; + } + + if (camDef(gi.data.regroup) && gi.data.regroup && healthyDroids.length > 0) + { + var ret = __camFindClusters(healthyDroids, __CAM_CLUSTER_SIZE); + var groupX = ret.xav[ret.maxIdx]; + var groupY = ret.yav[ret.maxIdx]; + var droids = ret.clusters[ret.maxIdx]; + + for (let i = 0, len = ret.clusters.length; i < len; ++i) + { + if (i !== ret.maxIdx) // move other droids towards main cluster + { + for (let j = 0, len2 = ret.clusters[i].length; j < len2; ++j) + { + var droid = ret.clusters[i][j]; + if (droid.order !== DORDER_RTR) + { + orderDroidLoc(droid, DORDER_MOVE, groupX, groupY); + } + } + } + } + + var hitRecently = (gameTime - gi.lastHit < __CAM_FALLBACK_TIME_ON_REGROUP); + // not enough droids grouped? + if (gi.count < 0 ? (ret.maxCount < groupSize(group) * 0.66) : (ret.maxCount < gi.count)) + { + for (let i = 0, len = droids.length; i < len; ++i) + { + var droid = droids[i]; + if (droid.order === DORDER_RTR) + { + continue; + } + + if (hitRecently && enumStruct(droid.player, HQ).length > 0) + { + if (droid.order !== DORDER_RTB) + { + orderDroid(droid, DORDER_RTB); + } + } + else if (droid.order !== DORDER_HOLD) + { + orderDroid(droid, DORDER_HOLD); + } + } + return; + } + } + + //Target choosing + var target; + var patrolPos; + + switch (gi.order) + { + case CAM_ORDER_ATTACK: + case CAM_ORDER_DEFEND: + case CAM_ORDER_COMPROMISE: + target = __camPickTarget(group); + if (!camDef(target)) + { + return; + } + break; + case CAM_ORDER_PATROL: + case CAM_ORDER_FOLLOW: + //do nothing here + break; + default: + camDebug("Unknown group order given: " + gi.order); + return; + } + + var defending = (gi.order === CAM_ORDER_DEFEND); + var track = (gi.order === CAM_ORDER_COMPROMISE); + + for (let i = 0, len = healthyDroids.length; i < len; ++i) + { + var droid = healthyDroids[i]; + var vtolUnit = (droid.type === DROID && isVTOL(droid)); + + if (droid.player === CAM_HUMAN_PLAYER) + { + camDebug("Controlling a human player's droid"); + } + + //Rearm vtols. + if (vtolUnit) + { + var arm = droid.weapons[0].armed; + var isRearming = droid.order === DORDER_REARM; + + if ((arm < 1) || (isRearming && (arm < 100 || droid.health < 100))) + { + var havePads = enumStruct(droid.player, REARM_PAD).length > 0; + if (havePads && !isRearming) + { + orderDroid(droid, DORDER_REARM); + } + continue; //Rearming. Try not to attack stuff. + } + } + + if (gi.order === CAM_ORDER_FOLLOW) + { + var commander = getObject(gi.data.droid); + if (commander === null) + { + // the commander is dead? let the group execute his last will. + camManageGroup(group, gi.data.order, gi.data.data); + return; + } + if (droid.droidType !== DROID_COMMAND && droid.order !== DORDER_COMMANDERSUPPORT) + { + orderDroidObj(droid, DORDER_COMMANDERSUPPORT, commander); + continue; + } + } + + if (gi.order === CAM_ORDER_DEFEND) + { + // fall back to defense position + var dPos = gi.data.pos[0]; + var dist = camDist(droid.x, droid.y, dPos.x, dPos.y); + var radius = gi.data.radius; + if (!camDef(radius)) + { + radius = __CAM_DEFENSE_RADIUS; + } + if (dist > radius) + { + orderDroidLoc(droid, DORDER_MOVE, target.x, target.y); + continue; + } + } + + if (gi.order === CAM_ORDER_PATROL) + { + if (!camDef(gi.data.interval)) + { + gi.data.interval = camSecondsToMilliseconds(60); + } + if (!camDef(gi.lastmove) || !camDef(gi.lastspot)) + { + gi.lastspot = 0; + gi.lastmove = 0; + } + else + { + if (gameTime - gi.lastmove > gi.data.interval) + { + // find random new position to visit + var list = []; + for (let j = 0, len2 = gi.data.pos.length; j < len2; ++j) + { + if (j !== gi.lastspot) + { + list.push(j); + } + } + gi.lastspot = list[camRand(list.length)]; + gi.lastmove = gameTime; + } + } + patrolPos = gi.data.pos[gi.lastspot]; + //I will leave this here for clarity so that it don't look + //like patrol picks a target. + if (camDef(patrolPos)) + { + target = camMakePos(patrolPos); + } + } + + if (camDef(target) && camDist(droid.x, droid.y, target.x, target.y) >= __CAM_CLOSE_RADIUS) + { + var closeByObj; + var artilleryLike = (droid.isCB || droid.hasIndirect || droid.isSensor); + var closeBy = enumRange(droid.x, droid.y, __camScanRange(gi.order, droid.droidType), CAM_HUMAN_PLAYER, track); + + if (closeBy.length > 0) + { + __camFindGroupAvgCoordinate(group); + closeBy.sort(__camDistToGroupAverage); + closeByObj = closeBy[0]; + } + + //We only care about explicit observe/attack if the object is close + //on the z coordinate. We should not chase things up or down hills + //that may be far away, at least path-wise. + if (closeByObj && !vtolUnit && !artilleryLike) + { + if (Math.abs(droid.z - closeByObj.z) > CLOSE_Z) + { + closeByObj = undefined; + } + } + + if (closeByObj && ((closeByObj.type === DROID) && isVTOL(closeByObj) && (isVTOL(droid) || !droid.canHitAir))) + { + closeByObj = undefined; + } + + if (!defending && closeByObj) + { + if (droid.droidType === DROID_SENSOR) + { + orderDroidObj(droid, DORDER_OBSERVE, closeByObj); + } + else + { + orderDroidObj(droid, DORDER_ATTACK, closeByObj); + } + } + else + { + if (defending || !(artilleryLike || vtolUnit)) + { + orderDroidLoc(droid, DORDER_MOVE, target.x, target.y); + } + else + { + orderDroidLoc(droid, DORDER_SCOUT, target.x, target.y); + } + } + } + } +} + +function __camCheckGroupMorale(group) +{ + var gi = __camGroupInfo[group]; + if (!camDef(gi.data.morale)) + { + return; + } + // morale is %. + var msize = Math.floor((100 - gi.data.morale) * gi.count / 100); + var gsize = groupSize(group); + switch (gi.order) + { + case CAM_ORDER_ATTACK: + if (gsize > msize) + { + break; + } + camTrace("Group", group, "falls back"); + gi.order = CAM_ORDER_DEFEND; + // swap pos and fallback + var temp = gi.data.pos; + gi.data.pos = [ camMakePos(gi.data.fallback) ]; + gi.data.fallback = temp; + // apply orders instantly + queue("__camTacticsTickForGroup", CAM_TICKS_PER_FRAME, group); + break; + case CAM_ORDER_DEFEND: + if (gsize <= msize) + { + break; + } + camTrace("Group", group, "restores"); + gi.order = CAM_ORDER_ATTACK; + // swap pos and fallback + var temp = gi.data.pos; + gi.data.pos = gi.data.fallback; + gi.data.fallback = temp[0]; + // apply orders instantly + queue("__camTacticsTickForGroup", CAM_TICKS_PER_FRAME, group); + break; + default: + camDebug("Group order doesn't support morale", camOrderToString(gi.order)); + break; + } +} diff --git a/script/campaign/libcampaign_includes/time.js b/script/campaign/libcampaign_includes/time.js new file mode 100644 index 0000000..ab321a2 --- /dev/null +++ b/script/campaign/libcampaign_includes/time.js @@ -0,0 +1,53 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Time and Timer related functions. +// Useful for setting the time values for queue(), setTimer(), or setMissionTime(). +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camSecondsToMilliseconds(seconds) +//;; +//;; Returns the amount of milliseconds in `seconds`. +//;; +//;; @param {number} seconds +//;; @returns {number} +//;; +function camSecondsToMilliseconds(seconds) +{ + return seconds * MILLISECONDS_IN_SECOND; +} + +//;; ## camMinutesToMilliseconds(minutes) +//;; +//;; Returns the amount of milliseconds in `minutes`. +//;; +//;; @param {number} minutes +//;; @returns {number} +//;; +function camMinutesToMilliseconds(minutes) +{ + return minutes * camSecondsToMilliseconds(SECONDS_IN_MINUTE); +} + +//;; ## camMinutesToSeconds(minutes) +//;; +//;; Returns the amount of seconds in `minutes`. +//;; +//;; @param {number} minutes +//;; @returns {number} +//;; +function camMinutesToSeconds(minutes) +{ + return minutes * SECONDS_IN_MINUTE; +} + +//;; ## camHoursToSeconds(hours) +//;; +//;; Returns the amount of seconds in `hours`. +//;; +//;; @param {number} hours +//;; @returns {number} +//;; +function camHoursToSeconds(hours) +{ + return hours * camMinutesToSeconds(MINUTES_IN_HOUR); +} diff --git a/script/campaign/libcampaign_includes/transport.js b/script/campaign/libcampaign_includes/transport.js new file mode 100644 index 0000000..9ca8b4a --- /dev/null +++ b/script/campaign/libcampaign_includes/transport.js @@ -0,0 +1,170 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Transporter management. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camIsTransporter(gameObject) +//;; +//;; Determine if the object is a transporter. +//;; +//;; @param {Object} gameObject +//;; @returns {boolean} +//;; +function camIsTransporter(gameObject) +{ + if (!camDef(gameObject) || !gameObject) + { + return false; + } + + if (gameObject.type !== DROID) + { + camTrace("Attempted to check if a non-droid object is a transporter."); + return false; + } + + return gameObject.droidType === DROID_SUPERTRANSPORTER; +} + +//;; ## camSetupTransporter(placeX, placeY, exitX, exitY) +//;; +//;; A convenient function for placing the standard campaign transport for loading in pre-away missions. +//;; The exit point for the transport is set up as well. +//;; +//;; @param {number} placeX +//;; @param {number} placeY +//;; @param {number} exitX +//;; @param {number} exitY +//;; @returns {void} +//;; +function camSetupTransporter(placeX, placeY, exitX, exitY) +{ + addDroid(CAM_HUMAN_PLAYER, placeX, placeY, "Transport", "TransporterBody", "V-Tol", "", "", "MG3-VTOL"); + setTransporterExit(exitX, exitY, CAM_HUMAN_PLAYER); +} + +//;; ## camRemoveEnemyTransporterBlip() +//;; +//;; Removes the last blip that an enemy transporter left behind, if any. +//;; +//;; @returns {void} +//;; +function camRemoveEnemyTransporterBlip() +{ + if (camDef(__camTransporterMessage)) + { + hackRemoveMessage(__camTransporterMessage, PROX_MSG, CAM_HUMAN_PLAYER); + __camTransporterMessage = undefined; + } +} + +//////////// privates + +// returns true if transporter was launched, +// false if transporter is already on map, +// throws error if queue is empty. +function __camDispatchTransporterUnsafe() +{ + if (__camTransporterQueue.length === 0) + { + camDebug("Transporter queue empty!"); + return false; + } + const OFFSET = 1; //Increaze LZ "no go" zone area a bit + var args = __camTransporterQueue[0]; + var player = args.player; + var pos = args.position; + var list = args.list; + var data = args.data; + if (camDef(__camIncomingTransports[player])) + { + camTrace("Transporter already on map for player", player + ", delaying."); + return false; + } + __camTransporterQueue.shift(); // what could possibly go wrong? + if (!camDef(__camPlayerTransports[player])) + { + camTrace("Creating a transporter for player", player); + __camPlayerTransports[player] = addDroid(player, -1, -1, + "Transporter", + "TransporterBody", + "V-Tol", "", "", + "MG3-VTOL"); + } + var trans = __camPlayerTransports[player]; + var droids = []; + for (let i = 0, l = list.length; i < l; ++i) + { + var template = list[i]; + var prop = __camChangePropulsionOnDiff(template.prop); + var droid = addDroid(player, -1, -1, "Reinforcement", template.body, prop, "", "", template.weap); + droids.push(droid); + addDroidToTransporter(trans, droid); + } + __camIncomingTransports[player] = { + droids: droids, + message: args.data.message, + order: args.order, + data: args.order_data, + }; + camTrace("Incoming transport with", droids.length, + "droids for player", player + + ", queued transports", __camTransporterQueue.length); + + setNoGoArea(pos.x - OFFSET, pos.y - OFFSET, pos.x + OFFSET, pos.y + OFFSET, player); + + //Delete previous enemy reinforcement transport blip + if (player !== CAM_HUMAN_PLAYER) + { + camRemoveEnemyTransporterBlip(); + } + + if (player !== CAM_HUMAN_PLAYER) + { + playSound("pcv381.ogg"); //Enemy transport detected. + } + + setTransporterExit(data.exit.x, data.exit.y, player); + // will guess which transporter to start, automagically + startTransporterEntry(data.entry.x, data.entry.y, player); + return true; +} + +function __camDispatchTransporterSafe(player, position, list, data) +{ + if (!profile("__camDispatchTransporterUnsafe")) + { + queue("__camDispatchTransporterSafe", camSecondsToMilliseconds(1)); + } +} + +function __camLandTransporter(player, pos) +{ + var ti = __camIncomingTransports[player]; + if (!camDef(ti)) + { + camDebug("Unhandled transporter for player", player); + return; + } + if (camDef(ti.message)) + { + __camTransporterMessage = ti.message; + hackAddMessage(ti.message, PROX_MSG, CAM_HUMAN_PLAYER, false); + } + else + { + __camTransporterMessage = undefined; + } + camTrace("Landing transport for player", player); + playSound("pcv395.ogg", pos.x, pos.y, 0); //Incoming enemy transport. + camManageGroup(camMakeGroup(ti.droids), ti.order, ti.data); +} + +function __camRemoveIncomingTransporter(player) +{ + // allow the next transporter to enter + if (camDef(__camIncomingTransports[player])) + { + delete __camIncomingTransports[player]; + } +} diff --git a/script/campaign/libcampaign_includes/truck.js b/script/campaign/libcampaign_includes/truck.js new file mode 100644 index 0000000..2b63b36 --- /dev/null +++ b/script/campaign/libcampaign_includes/truck.js @@ -0,0 +1,166 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Truck management. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camManageTrucks(playerId) +//;; +//;; Manage trucks for an AI player. This assumes recapturing oils and rebuilding destroyed trucks +//;; in factories, the latter is implemented via `camQueueDroidProduction()` mechanism. +//;; +//;; @param {number} playerId +//;; @returns {void} +//;; +function camManageTrucks(playerId) +{ + __camTruckInfo[playerId] = { enabled: 1, queue: [], player: playerId }; +} + +//;; ## camQueueBuilding(playerId, stat[, position]) +//;; +//;; Assuming truck management is enabled for the player, issue an order to build a specific building +//;; near a certain position. The order would be issued once as soon as a free truck becomes available. +//;; It will not be re-issued in case the truck is destroyed before the building is finished. +//;; If position is unspecified, the building would be built near the first available truck. +//;; Otherwise, position may be a label or a `POSITION`-like object. +//;; +//;; @param {number} playerId +//;; @param {string} stat +//;; @param {string|Object} [position] +//;; @returns {void} +//;; +function camQueueBuilding(playerId, stat, position) +{ + var ti = __camTruckInfo[playerId]; + ti.queue.push({ stat: stat, pos: camMakePos(position) }); +} + +//////////// privates + +function __camEnumFreeTrucks(player) +{ + var rawDroids = enumDroid(player, DROID_CONSTRUCT); + var droids = []; + for (let i = 0, l = rawDroids.length; i < l; ++i) + { + var droid = rawDroids[i]; + if (droid.order !== DORDER_BUILD && droid.order !== DORDER_HELPBUILD && droid.order !== DORDER_LINEBUILD) + { + droids.push(droid); + } + } + return droids; +} + +function __camGetClosestTruck(player, pos) +{ + var droids = __camEnumFreeTrucks(player); + if (droids.length <= 0) + { + return undefined; + } + + // Find out which one is the closest. + var minDroid = droids[0]; + var minDist = camDist(minDroid, pos); + for (let i = 1, l = droids.length; i < l; ++i) + { + var droid = droids[i]; + if (!droidCanReach(droid, pos.x, pos.y)) + { + continue; + } + var dist = camDist(droid, pos); + if (dist < minDist) + { + minDist = dist; + minDroid = droid; + } + } + return minDroid; +} + +function __camTruckTick() +{ + // Issue truck orders for each player. + // See comments inside the loop to understand priority. + for (const playerObj in __camTruckInfo) + { + var ti = __camTruckInfo[playerObj]; + var player = ti.player; + var truck; + + // First, build things that were explicitly ordered. + while (ti.queue.length > 0) + { + var qi = ti.queue[0]; + var pos = qi.pos; + var randx = 0; + var randy = 0; + + if (camDef(pos)) + { + // Find the truck most suitable for the job. + truck = __camGetClosestTruck(player, pos); + if (!camDef(truck)) + { + break; + } + } + else + { + // Build near any truck if pos was not specified. + var droids = __camEnumFreeTrucks(player); + if (droids.length <= 0) + { + break; + } + truck = droids[0]; + pos = truck; + randx = (camRand(100) < 50) ? -camRand(2) : camRand(2); + randy = (camRand(100) < 50) ? -camRand(2) : camRand(2); + } + + enableStructure(qi.stat, player); + var loc = pickStructLocation(truck, qi.stat, pos.x, pos.y); + if (camDef(loc) && camDef(truck)) + { + if (orderDroidBuild(truck, DORDER_BUILD, qi.stat, loc.x + randx, loc.y + randy)) + { + ti.queue.shift(); // consider it handled + } + } + } + + // Then, capture free oils. + var oils = enumFeature(ALL_PLAYERS, "OilResource"); + if (oils.length === 0) + { + continue; + } + var oil = oils[0]; + truck = __camGetClosestTruck(player, oil); + if (camDef(truck) && player !== NEXUS) + { + enableStructure("A0ResourceExtractor", player); + orderDroidBuild(truck, DORDER_BUILD, "A0ResourceExtractor", oil.x, oil.y); + continue; + } + } +} + +// called from eventDestroyed +function __camCheckDeadTruck(obj) +{ + if (camDef(__camTruckInfo[obj.player])) + { + // multi-turret templates are not supported yet + // cyborg engineers are not supported yet + // cannot use obj.weapons[] because spade is not a weapon + camQueueDroidProduction(obj.player, { + body: obj.body, + prop: obj.propulsion, + weap: "Spade1Mk1" + }); + } +} diff --git a/script/campaign/libcampaign_includes/victory.js b/script/campaign/libcampaign_includes/victory.js index b7400ee..13d7cee 100644 --- a/script/campaign/libcampaign_includes/victory.js +++ b/script/campaign/libcampaign_includes/victory.js @@ -3,17 +3,19 @@ // Victory celebration helpers. //////////////////////////////////////////////////////////////////////////////// -//;; ## camNextLevel(next level) +//;; ## camNextLevel(nextLevel) //;; -//;; A wrapper around ```loadLevel()```. Remembers to give bonus power -//;; for completing the mission faster. +//;; A wrapper around `loadLevel()`. Remembers to give bonus power for completing the mission faster. +//;; +//;; @param {string} nextLevel +//;; @returns {void} //;; function camNextLevel(nextLevel) { if (__camNeedBonusTime) { var bonusTime = getMissionTime(); - if (difficulty === EASY || difficulty === MEDIUM) + if (difficulty <= MEDIUM) { bonusTime = Math.floor(bonusTime * 0.75); } @@ -44,50 +46,44 @@ function camNextLevel(nextLevel) //;; ## camSetStandardWinLossConditions(kind, nextLevel, data) //;; -//;; Set victory and defeat conditions to one of the common -//;; options. On victory, load nextLevel. The extra data parameter -//;; contains extra data required to define some of the victory -//;; conditions. The following options are available: -//;; -//;; * ```CAM_VICTORY_STANDARD``` Defeat if all ground factories -//;; and construction droids are lost, or on mission timeout. -//;; Victory when all enemies are destroyed and all artifacts -//;; are recovered. -//;; * ```CAM_VICTORY_PRE_OFFWORLD``` Defeat on timeout. Victory on -//;; transporter launch, then load the sub-level. -//;; * ```CAM_VICTORY_OFFWORLD``` Defeat on timeout or all units lost. -//;; Victory when all artifacts are recovered and either all enemies -//;; are dead (not just bases) or all droids are at the LZ. -//;; Also automatically handles the "LZ compromised" message, -//;; which is why it needs to know reinforcement interval to restore. -//;; The following data parameter fields are available: -//;; * ```area``` The landing zone to return to. -//;; * ```message``` The "Return to LZ" message ID. Optional. -//;; * ```reinforcements``` Reinforcements interval, in seconds. +//;; Set victory and defeat conditions to one of the common options. On victory, load nextLevel. +//;; The extra data parameter contains extra data required to define some of the victory conditions. +//;; The following options are available: +//;; * `CAM_VICTORY_STANDARD` Defeat if all ground factories and construction droids are lost, or on mission timeout. +//;; Victory when all enemies are destroyed and all artifacts are recovered. +//;; * `CAM_VICTORY_PRE_OFFWORLD` Defeat on timeout. Victory on transporter launch, then load the sub-level. +//;; * `CAM_VICTORY_OFFWORLD` Defeat on timeout or all units lost. +//;; Victory when all artifacts are recovered and either all enemies are dead (not just bases) or all droids are at the LZ. +//;; Also automatically handles the "LZ compromised" message, which is why it needs to know reinforcement interval to restore. +//;; The following data parameter fields are available: +//;; * `area` The landing zone to return to. +//;; * `message` The "Return to LZ" message ID. Optional. +//;; * `reinforcements` Reinforcements interval, in seconds. //;; For standard and offworld victory, some extra data parameters can be defined: -//;; * ```callback``` A function callback to check for extra win/loss -//;; conditions. Return values are interpreted as follows: -//;; * __false__ means instant defeat ("objective failed"), -//;; * __true__ means victory as long as other standard victory -//;; conditions are met, -//;; * __undefined__ means suppress -//;; other victory checks ("clearly not won yet"). -//;; * ```victoryVideo``` Pass in the name of a video string here -//;; and it will be played before attempting to load the next level. +//;; * `callback` A function callback to check for extra win/loss conditions. Return values are interpreted as follows: +//;; * `false` means instant defeat ("objective failed"), +//;; * `true` means victory as long as other standard victory conditions are met, +//;; * `undefined` means suppress other victory checks ("clearly not won yet"). +//;; * `victoryVideo` Pass in the name of a video string here and it will be played before attempting to load the next level. //;; For offworld victory, some more extra data parameters can be defined: -//;; * ```retlz``` Force the player to return to the LZ area: -//;; * __false__ mission does not require a LZ return, -//;; * __true__ mission requires all units to be at LZ to win. -//;; * ```annihilate``` Player must destroy every thing on map to win: -//;; * __false__ mission does not require everything destroyed, -//;; * __true__ mission requires total map annihilation. -//;; * ```eliminateBases``` Instant win when all enemy units and bases are destroyed: -//;; * __false__ does not require all bases to be destroyed, -//;; * __true__ requires all bases destroyed. +//;; * `retlz` Force the player to return to the LZ area: +//;; * `false` mission does not require a LZ return, +//;; * `true` mission requires all units to be at LZ to win. +//;; * `annihilate` Player must destroy every thing on map to win: +//;; * `false` mission does not require everything destroyed, +//;; * `true` mission requires total map annihilation. +//;; * `eliminateBases` Instant win when all enemy units and bases are destroyed: +//;; * `false` does not require all bases to be destroyed, +//;; * `true` requires all bases destroyed. +//;; +//;; @param {string} kind +//;; @param {string} nextLevel +//;; @param {Object} data +//;; @returns {void} //;; function camSetStandardWinLossConditions(kind, nextLevel, data) { - switch(kind) + switch (kind) { case CAM_VICTORY_STANDARD: __camWinLossCallback = CAM_VICTORY_STANDARD; @@ -108,7 +104,6 @@ function camSetStandardWinLossConditions(kind, nextLevel, data) __camDefeatOnTimeout = true; __camVictoryData = data; setReinforcementTime(__camVictoryData.reinforcements); - __camSetOffworldLimits(); useSafetyTransport(false); break; case CAM_VICTORY_TIMEOUT: @@ -126,7 +121,12 @@ function camSetStandardWinLossConditions(kind, nextLevel, data) __camNextLevel = nextLevel; } -//Checks for extra win conditions defined in level scripts, if any. +//;; ## camCheckExtraObjective() +//;; +//;; Checks for extra win conditions defined in level scripts being met, if any. +//;; +//;; @returns {boolean|undefined} +//;; function camCheckExtraObjective() { var extraObjMet = true; @@ -150,13 +150,31 @@ function camCheckExtraObjective() return extraObjMet; } -//Message(s) the mission script can set to further explain specific victory conditions. -//Allows a single string or an array of strings. +//;; ## camSetExtraObjectiveMessage(message) +//;; +//;; Message(s) the mission script can set to further explain specific victory conditions. +//;; Allows a single string or an array of strings. +//;; +//;; @param {string|Object[]} message +//;; @returns {void} +//;; function camSetExtraObjectiveMessage(message) { __camExtraObjectiveMessage = message; } +//;; ## camClearConsoleOnVictoryMessage(clear) +//;; +//;; If the script wants to allow `__camSetupConsoleForVictoryConditions()` to clear the console. +//;; +//;; @param {boolean} clear +//;; @returns {void} +//;; +function camClearConsoleOnVictoryMessage(clear) +{ + __camAllowVictoryMsgClear = clear; +} + //////////// privates function __camGameLostCB() @@ -247,7 +265,7 @@ function __camPlayerDead() if (transporter.length > 0) { var cargoDroids = enumCargo(transporter[0]); - for (var i = 0, len = cargoDroids.length; i < len; ++i) + for (let i = 0, len = cargoDroids.length; i < len; ++i) { var virDroid = cargoDroids[i]; if (camDef(virDroid) && virDroid && virDroid.droidType === DROID_CONSTRUCT) @@ -263,7 +281,7 @@ function __camPlayerDead() { //Make the mission fail if no units are alive on map while having no factories. var droidCount = 0; - enumDroid(CAM_HUMAN_PLAYER).forEach(function(obj) { + enumDroid(CAM_HUMAN_PLAYER).forEach((obj) => { if (obj.droidType === DROID_SUPERTRANSPORTER) { //Don't count the transporter itself. This is for the case where @@ -278,8 +296,8 @@ function __camPlayerDead() }); dead = droidCount <= 0 && !haveFactories; - //Finish Beta-end early if they have no units and factories. - if (dead && (__camNextLevel === "CAM_3A")) + //Finish Beta-end early if they have no units and factories on Easy/Normal. + if (dead && (difficulty <= MEDIUM) && (__camNextLevel === "CAM_3A")) { cam_eventMissionTimeout(); //Early victory trigger return false; @@ -295,9 +313,9 @@ function __camTriggerLastAttack() { var enemies = enumArea(0, 0, mapWidth, mapHeight, ENEMIES, false); // Do not order systems (sensor/trucks/repairs) to attack stuff. - enemies = enemies.filter(function(obj) { - return ((obj.type === DROID) && !camIsTransporter(obj) && !camIsSystemDroid(obj)); - }); + enemies = enemies.filter((obj) => ( + obj.type === DROID && !camIsTransporter(obj) && !camIsSystemDroid(obj) + )); camTrace(enemies.length, "enemy droids remaining"); camManageGroup(camMakeGroup(enemies), CAM_ORDER_ATTACK); __camLastAttackTriggered = true; @@ -319,7 +337,6 @@ function __camVictoryStandard() if (enumArea(0, 0, mapWidth, mapHeight, ENEMIES, false).length === 0) { __camGameWon(); - return; } else { @@ -333,7 +350,6 @@ function __camVictoryPreOffworld() if (__camPlayerDead()) { __camGameLost(); - return; } // victory hooked from eventTransporterExit } @@ -343,7 +359,6 @@ function __camVictoryTimeout() if (__camPlayerDead()) { __camGameLost(); - return; } // victory hooked from eventMissionTimeout } @@ -372,10 +387,9 @@ function __camVictoryOffworld() { if (camAllEnemyBasesEliminated()) { - var enemyDroids = enumArea(0, 0, mapWidth, mapHeight, ENEMIES, false).filter(function(obj) { - return obj.type === DROID; - }).length; - + var enemyDroids = enumArea(0, 0, mapWidth, mapHeight, ENEMIES, false).filter((obj) => ( + obj.type === DROID + )).length; if (!enemyDroids) { @@ -408,9 +422,9 @@ function __camVictoryOffworld() } //Make sure to only count droids here. - var atlz = enumArea(lz, CAM_HUMAN_PLAYER, false).filter(function(obj) { - return (obj.type === DROID && !camIsTransporter(obj)); - }).length; + var atlz = enumArea(lz, CAM_HUMAN_PLAYER, false).filter((obj) => ( + obj.type === DROID && !camIsTransporter(obj) + )).length; if (((!forceLZ && !destroyAll) || (forceLZ && destroyAll && !enemyLen) || (forceLZ && !destroyAll)) && (atlz === total)) { __camGameWon(); @@ -480,22 +494,50 @@ function __camVictoryOffworld() } } -function __camShowVictoryConditions(forceMessage) +function __camSetupConsoleForVictoryConditions() { - if (!camDef(forceMessage)) + // Console clears are only done when collecting artifacts or destroying bases. + if (__camAllowVictoryMsgClear) { - if (__camVictoryMessageThrottle + camSecondsToMilliseconds(10) > gameTime) - { - return; - } - if (!camDef(__camNextLevel)) - { - return; // fastplay / tutorial. Should be a better identifier for this. - } - if (__camWinLossCallback === CAM_VICTORY_PRE_OFFWORLD) + clearConsole(); + } + + queue("__camShowVictoryConditions", camSecondsToMilliseconds(0.5)); +} + +function __camShowBetaHint() +{ + return ((camDiscoverCampaign() === BETA_CAMPAIGN_NUMBER) && (difficulty === HARD || difficulty === INSANE)); +} + +function __camShowBetaHintEarly() +{ + if (!camDef(__camWinLossCallback) || (__camWinLossCallback !== CAM_VICTORY_PRE_OFFWORLD)) + { + return; + } + + if (__camShowBetaHint()) + { + __camShowVictoryConditions(); + } +} + +function __camShowVictoryConditions() +{ + if (!camDef(__camNextLevel)) + { + return; // fastplay / tutorial. Should be a better identifier for this. + } + + if (__camWinLossCallback === CAM_VICTORY_PRE_OFFWORLD) + { + if (__camShowBetaHint()) { - return; // do not need this on these missions. + console(_("Hard / Insane difficulty hint:")); + console(_("Fortify a strong base across the map to protect yourself from the Collective")); } + return; // do not need this on these missions. } const ANNIHILATE_MESSAGE = _("Destroy all enemy units and structures"); @@ -503,7 +545,7 @@ function __camShowVictoryConditions(forceMessage) var unitsOnMap = 0; var structuresOnMap = 0; - enumArea(0, 0, mapWidth, mapHeight, ENEMIES, false).forEach(function(obj) { + enumArea(0, 0, mapWidth, mapHeight, ENEMIES, false).forEach((obj) => { if (obj.type === DROID) { ++unitsOnMap; @@ -550,7 +592,7 @@ function __camShowVictoryConditions(forceMessage) { if (__camExtraObjectiveMessage instanceof Array) { - for (var i = 0, len = __camExtraObjectiveMessage.length; i < len; ++i) + for (let i = 0, len = __camExtraObjectiveMessage.length; i < len; ++i) { var mes = __camExtraObjectiveMessage[i]; console(mes); @@ -561,6 +603,4 @@ function __camShowVictoryConditions(forceMessage) console(__camExtraObjectiveMessage); } } - - __camVictoryMessageThrottle = gameTime; } diff --git a/script/campaign/libcampaign_includes/video.js b/script/campaign/libcampaign_includes/video.js new file mode 100644 index 0000000..6fa6d82 --- /dev/null +++ b/script/campaign/libcampaign_includes/video.js @@ -0,0 +1,103 @@ + +//////////////////////////////////////////////////////////////////////////////// +// Video playback related logic +//////////////////////////////////////////////////////////////////////////////// + +// Be aware that eventVideoDone will be triggered for each video +// and will be received by the mission script's eventVideoDone, should it exist. + +//;; ## camPlayVideos(data) +//;; +//;; Formats for parameter `data`: `{video: "video string", type: MISS_MSG/CAMP_MSG, immediate: true/false}` OR +//;; `["sound file", {video: "video string", type: MISS_MSG/CAMP_MSG, immediate: true/false}, ...]` +//;; object property "immediate" is optional since most videos are immediate. +//;; If videos is an array, queue up all of them for immediate playing. +//;; This function will play one video sequence should one be provided. +//;; Also, should a sound file be in a string (`pcvX.ogg`) `__camEnqueueVideos()` will recognize it +//;; as a sound to play before a video. Of which is only supported when parameter `data` is an array. +//;; +//;; @param {Object|Object[]} data +//;; @returns {void} +//;; +function camPlayVideos(data) +{ + if (data instanceof Array) + { + __camVideoSequences = data; + __camEnqueueVideos(); + } + else if (data instanceof Object) + { + if (!camDef(data.video) || !camIsString(data.video)) + { + camDebug("Problem with video property."); + return; + } + if (!camDef(data.type) || (data.type !== MISS_MSG && data.type !== CAMP_MSG)) + { + camDebug("Video message type was NOT specified. Please specify one."); + return; + } + if (!camDef(data.immediate)) + { + data.immediate = true; + } + hackAddMessage(data.video, data.type, CAM_HUMAN_PLAYER, data.immediate); + } + else + { + camDebug("Funky camPlayVideos() parameter!"); + } +} + +//////////// privates + +// Play all stored videos and sounds one after the other. +// cam_eventVideoDone will call this function repeatedly. +function __camEnqueueVideos() +{ + if (__camVideoSequences.length === 0) + { + return; //Nothing to play + } + + const SOUND_IDENTIFER = ".ogg"; + var what = __camVideoSequences[0]; + + // Check if this is a sound to play before some sequence. + if (typeof what === "string" && what.indexOf(SOUND_IDENTIFER) !== -1) + { + playSound(what); + queue("__camEnqueueVideos", camSecondsToMilliseconds(3.2)); //more than enough for most sounds. + } + else if (typeof what === "object") + { + var play = true; + + if (!camDef(what.video) || !camIsString(what.video)) + { + camDebug("Problem with video property."); + play = false; + } + if (!camDef(what.type) || (what.type !== MISS_MSG && what.type !== CAMP_MSG)) + { + camDebug("Video message type was NOT specified. Please specify one.") + play = false; + } + if (!camDef(what.immediate)) + { + what.immediate = true; + } + + if (play) + { + hackAddMessage(what.video, what.type, CAM_HUMAN_PLAYER, what.immediate); + } + } + else + { + camDebug("Funky camPlayVideos() parameter!"); + } + + __camVideoSequences.shift(); +} diff --git a/script/campaign/libcampaign_includes/vtol.js b/script/campaign/libcampaign_includes/vtol.js new file mode 100644 index 0000000..b6eb195 --- /dev/null +++ b/script/campaign/libcampaign_includes/vtol.js @@ -0,0 +1,259 @@ + +//////////////////////////////////////////////////////////////////////////////// +// VTOL management. +// These functions create the hit and run vtols for the given player. +// Vtol rearming is handled in group management. +//////////////////////////////////////////////////////////////////////////////// + +//;; ## camSetVtolData(player, startPos, exitPos, templates, timer, [obj[, extras]]) +//;; +//;; Setup hit and runner VTOLs. NOTE: Will almost immediately spawn VTOLs upon calling this function. +//;; `Player`: What player number the VTOLs will belong to. +//;; `StartPos`: Starting position object where VTOLs will spawn. Can be an array. Use undefined for random map edge location. +//;; `ExitPos`: Exit position object where VTOLs will despawn at. +//;; `Templates`: An array of templates that the spawn uses. +//;; `Timer`: How much time in milliseconds the VTOLs will wait to spawn again. +//;; `Obj`: A game object that will stop the spawn when it no longer exists. May be undefined for no explicit end condition. +//;; `Extras`: An object with possible members: +//;; `limit`: Numeric limit of a VTOL design in regards to the parameter Templates. May be an array paired to Templates. +//;; `alternate`: A boolean to force the spawn to use one of the designs at a time in parameter Templates. +//;; `altIdx`: Which design index the spawn will first cycle through the list of templates from. +//;; `minVTOLs`: Minimum amount of VTOLs that will spawn. +//;; `maxRandomVTOLs`: Random amount of VTOLs that will spawn in addition to minVTOLs. +//;; +//;; @param {number} player +//;; @param {Object|Object[]|undefined} startPos +//;; @param {Object} exitPos +//;; @param {Object[]} templates +//;; @param {number} timer +//;; @param {Object} obj +//;; @param {Object} extras +//;; @returns {void} +//;; +function camSetVtolData(player, startPos, exitPos, templates, timer, obj, extras) +{ + __camVtolDataSystem.push({ + player: player, + startPosition: startPos, + exitPosition: camMakePos(exitPos), + templates: templates, + spawnStopObject: obj, + extras: extras, + timer: timer, + nextSpawnTime: timer + gameTime, + isFirstSpawn: true, + active: true + }); +} + +//;; ## camSetVtolSpawnState(state, identifier) +//;; +//;; Sets the active status of a VTOL spawn point. The identifier can either be the +//;; the index number or the label of the object that stops the spawn naturally. +//;; +//;; @param {boolean} state +//;; @param {number|string} identifier +//;; @returns {void} +//;; +function camSetVtolSpawnState(state, identifier) +{ + if (typeof identifier === "number") + { + __camVtolDataSystem[identifier].active = state; + } + else if (typeof identifier === "string") + { + for (let idx = 0, len = __camVtolDataSystem.length; idx < len; ++idx) + { + if (__camVtolDataSystem[idx].spawnStopObject === identifier) + { + __camVtolDataSystem[idx].active = state; + break; + } + } + } + else + { + camDebug("camSetVtolSpawn() expected a number or game object label string"); + } +} + +//;; ## camSetVtolSpawnStateAll(state) +//;; +//;; Sets the active status of all VTOL spawns to `state`. +//;; +//;; @param {boolean} state +//;; @returns {void} +//;; +function camSetVtolSpawnStateAll(state) +{ + for (let idx = 0, len = __camVtolDataSystem.length; idx < len; ++idx) + { + camSetVtolSpawnState(state, idx); + } +} + +//////////// privates + +function __checkVtolSpawnObject() +{ + for (let idx = 0, len = __camVtolDataSystem.length; idx < len; ++idx) + { + if (__camVtolDataSystem[idx].active && camDef(__camVtolDataSystem[idx].spawnStopObject)) + { + if (getObject(__camVtolDataSystem[idx].spawnStopObject) === null) + { + camSetVtolSpawnState(false, idx); //Deactivate hit and runner VTOLs. + } + } + } +} + +function __camSpawnVtols() +{ + for (let idx = 0; idx < __camVtolDataSystem.length; ++idx) + { + if (!__camVtolDataSystem[idx].active) + { + continue; + } + if (gameTime < __camVtolDataSystem[idx].nextSpawnTime) + { + if (__camVtolDataSystem[idx].isFirstSpawn) + { + __camVtolDataSystem[idx].isFirstSpawn = false; + } + else + { + continue; + } + } + else + { + __camVtolDataSystem[idx].nextSpawnTime = gameTime + __camVtolDataSystem[idx].timer; + } + + // Default VTOL amounts + let minVtolAmount = 5; + let maxRandomAdditions = 2; + + if (camDef(__camVtolDataSystem[idx].extras)) + { + if (camDef(__camVtolDataSystem[idx].extras.minVTOLs)) + { + minVtolAmount = __camVtolDataSystem[idx].extras.minVTOLs; + } + if (camDef(__camVtolDataSystem[idx].extras.maxRandomVTOLs)) + { + maxRandomAdditions = __camVtolDataSystem[idx].extras.maxRandomVTOLs; + } + } + + let amount = minVtolAmount + camRand(maxRandomAdditions + 1); + let droids = []; + let pos; + + //Make sure to catch multiple start positions also. + if (__camVtolDataSystem[idx].startPosition instanceof Array) + { + pos = __camVtolDataSystem[idx].startPosition[camRand(__camVtolDataSystem[idx].startPosition.length)]; + } + else if (camDef(__camVtolDataSystem[idx].startPosition) && __camVtolDataSystem[idx].startPosition) + { + pos = __camVtolDataSystem[idx].startPosition; + } + else + { + pos = camGenerateRandomMapEdgeCoordinate(); + } + + if (!camDef(__camVtolDataSystem[idx].extras)) + { + //Pick some droids randomly. + for (let i = 0; i < amount; ++i) + { + droids.push(__camVtolDataSystem[idx].templates[camRand(__camVtolDataSystem[idx].templates.length)]); + } + } + else + { + var lim = amount; + var alternate = false; + if (camDef(__camVtolDataSystem[idx].extras.alternate)) + { + alternate = __camVtolDataSystem[idx].extras.alternate; //Only use one template type + } + if (!camDef(__camVtolDataSystem[idx].extras.altIdx)) + { + __camVtolDataSystem[idx].extras.altIdx = 0; + } + if (camDef(__camVtolDataSystem[idx].extras.limit)) + { + //support an array of limits for each template + if (__camVtolDataSystem[idx].extras.limit instanceof Array) + { + lim = __camVtolDataSystem[idx].extras.limit[__camVtolDataSystem[idx].extras.altIdx]; //max templates to use + } + else + { + lim = __camVtolDataSystem[idx].extras.limit; + } + } + + for (let i = 0; i < lim; ++i) + { + if (!alternate) + { + droids.push(__camVtolDataSystem[idx].templates[camRand(__camVtolDataSystem[idx].templates.length)]); + } + else + { + droids.push(__camVtolDataSystem[idx].templates[__camVtolDataSystem[idx].extras.altIdx]); + } + } + + if (__camVtolDataSystem[idx].extras.altIdx < (__camVtolDataSystem[idx].templates.length - 1)) + { + ++__camVtolDataSystem[idx].extras.altIdx; + } + else + { + __camVtolDataSystem[idx].extras.altIdx = 0; + } + } + + //...And send them. + camSendReinforcement(__camVtolDataSystem[idx].player, camMakePos(pos), droids, CAM_REINFORCE_GROUND, { + order: CAM_ORDER_ATTACK, + data: { regroup: false, count: -1 } + }); + } +} + +function __camRetreatVtols() +{ + for (let idx = 0; idx < __camVtolDataSystem.length; ++idx) + { + if (camDef(__camVtolDataSystem[idx].exitPosition.x) && + camDef(__camVtolDataSystem[idx].exitPosition.y) && + enumStruct(__camVtolDataSystem[idx].player, REARM_PAD).length === 0) + { + const VTOL_RETURN_HEALTH = 40; // run-away if health is less than... + const VTOL_RETURN_ARMED = 1; // run-away if weapon ammo is less than... + let vtols = enumDroid(__camVtolDataSystem[idx].player).filter((obj) => (isVTOL(obj))); + + for (let i = 0, len = vtols.length; i < len; ++i) + { + let vt = vtols[i]; + for (let c = 0, len2 = vt.weapons.length; c < len2; ++c) + { + if ((vt.order === DORDER_RTB) || (vt.weapons[c].armed < VTOL_RETURN_ARMED) || (vt.health < VTOL_RETURN_HEALTH)) + { + orderDroidLoc(vt, DORDER_MOVE, __camVtolDataSystem[idx].exitPosition.x, __camVtolDataSystem[idx].exitPosition.y); + break; + } + } + } + } + } +} diff --git a/script/rules.js b/script/rules.js new file mode 100644 index 0000000..070f4c3 --- /dev/null +++ b/script/rules.js @@ -0,0 +1,470 @@ +// General rules for the campaign +// +// * Enable unit design and minimap only when an HQ exists +receiveAllEvents(true); //Needed to allow enemy research to apply to them + +include("script/weather.js"); + +var mainReticule = false; +const CREATE_LIKE_EVENT = 0; +const DESTROY_LIKE_EVENT = 1; +const TRANSFER_LIKE_EVENT = 2; + +function reticuleManufactureCheck() +{ + var structureComplete = false; + var facs = [FACTORY, CYBORG_FACTORY, VTOL_FACTORY,]; + + for (let i = 0, len = facs.length; i < len; ++i) + { + var facType = facs[i]; + var offWorldFacs = enumStructOffWorld(selectedPlayer, facType); + var onMapFacs = enumStruct(selectedPlayer, facType); + + if (offWorldFacs !== null) + { + for (let j = 0, len2 = offWorldFacs.length; j < len2; ++j) + { + if (offWorldFacs[j].status === BUILT) + { + structureComplete = true; + break; + } + } + } + if (!structureComplete) + { + for (let j = 0, len2 = onMapFacs.length; j < len2; ++j) + { + if (onMapFacs[j].status === BUILT) + { + structureComplete = true; + break; + } + } + } + + if (structureComplete === true) + { + break; + } + } + + if (structureComplete === true && getMissionType() !== LDS_EXPAND_LIMBO) + { + setReticuleButton(1, _("Manufacture (F1)"), "image_manufacture_up.png", "image_manufacture_down.png"); + } + else + { + setReticuleButton(1, _("Manufacture - build factory first"), "", ""); + } +} + +function reticuleResearchCheck() +{ + var structureComplete = false; + var labs = [RESEARCH_LAB,]; + + for (let i = 0, len = labs.length; i < len; ++i) + { + var resType = labs[i]; + var offWorldLabs = enumStructOffWorld(selectedPlayer, resType); + var onMapLabs = enumStruct(selectedPlayer, resType); + + if (offWorldLabs !== null) + { + for (let j = 0, len2 = offWorldLabs.length; j < len2; ++j) + { + if (offWorldLabs[j].status === BUILT) + { + structureComplete = true; + break; + } + } + } + if (!structureComplete) + { + for (let j = 0, len2 = onMapLabs.length; j < len2; ++j) + { + if (onMapLabs[j].status === BUILT) + { + structureComplete = true; + break; + } + } + } + + if (structureComplete === true) + { + break; + } + } + + if (structureComplete === true && getMissionType() !== LDS_EXPAND_LIMBO) + { + setReticuleButton(2, _("Research (F2)"), "image_research_up.png", "image_research_down.png"); + } + else + { + setReticuleButton(2, _("Research - build research facility first"), "", ""); + } +} + +function reticuleBuildCheck() +{ + if (enumDroid(selectedPlayer, DROID_CONSTRUCT).length > 0) + { + setReticuleButton(3, _("Build (F3)"), "image_build_up.png", "image_build_down.png"); + } + else + { + setReticuleButton(3, _("Build - manufacture constructor droids first"), "", ""); + } +} + +function reticuleDesignCheck() +{ + var structureComplete = false; + var hqs = [HQ,]; + + for (let i = 0, len = hqs.length; i < len; ++i) + { + var hqType = hqs[i]; + var offWorldHq = enumStructOffWorld(selectedPlayer, hqType); + var onMapHq = enumStruct(selectedPlayer, hqType); + + if (offWorldHq !== null) + { + for (let j = 0, len2 = offWorldHq.length; j < len2; ++j) + { + if (offWorldHq[j].status === BUILT) + { + structureComplete = true; + break; + } + } + } + if (!structureComplete) + { + for (let j = 0, len2 = onMapHq.length; j < len2; ++j) + { + if (onMapHq[j].status === BUILT) + { + structureComplete = true; + break; + } + } + } + + if (structureComplete === true) + { + break; + } + } + + if (structureComplete === true) + { + setReticuleButton(4, _("Design (F4)"), "image_design_up.png", "image_design_down.png"); + setMiniMap(true); + } + else + { + setReticuleButton(4, _("Design - construct HQ first"), "", ""); + setMiniMap(false); + } +} + +function reticuleCommandCheck() +{ + if (enumDroid(selectedPlayer, DROID_COMMAND).length > 0) + { + setReticuleButton(6, _("Commanders (F6)"), "image_commanddroid_up.png", "image_commanddroid_down.png"); + } + else + { + setReticuleButton(6, _("Commanders - manufacture commanders first"), "", ""); + } +} + +function setMainReticule() +{ + setReticuleButton(0, _("Close"), "image_cancel_up.png", "image_cancel_down.png"); + reticuleManufactureCheck(); + reticuleResearchCheck(); + reticuleBuildCheck(); + reticuleDesignCheck(); + setReticuleButton(5, _("Intelligence Display (F5)"), "image_intelmap_up.png", "image_intelmap_down.png"); + reticuleCommandCheck(); +} + +function reticuleUpdate(obj, eventType) +{ + var update_reticule = false; + + if (eventType === TRANSFER_LIKE_EVENT) + { + update_reticule = true; + } + else if (obj.player === selectedPlayer && obj.type === STRUCTURE) + { + if (obj.stattype === HQ || obj.stattype === RESEARCH_LAB || obj.stattype === CYBORG_FACTORY || + obj.stattype === VTOL_FACTORY || obj.stattype === FACTORY || obj.stattype === COMMAND_CONTROL) + { + update_reticule = true; + } + } + else if (obj.player === selectedPlayer && obj.type === DROID) + { + if (obj.droidType === DROID_CONSTRUCT || obj.droidType === DROID_COMMAND || + obj.droidType === DROID_TRANSPORTER || obj.droidType === DROID_SUPERTRANSPORTER) + { + update_reticule = true; + } + } + + if (mainReticule && update_reticule) + { + //Wait a tick for the counts to update + const TICK_TIME = 100; + queue("setMainReticule", TICK_TIME); + } +} + +function setupGame() +{ + //Use dark fog for campaign + setRevealStatus(false); + + if (tilesetType === "ARIZONA") + { + setCampaignNumber(1); + } + else if (tilesetType === "URBAN") + { + setCampaignNumber(2); + replaceTexture("page-7-barbarians-arizona.png", "page-7-barbarians-urban.png"); + replaceTexture("page-8-player-buildings-bases.png", "page-8-player-buildings-bases-urban.png"); + replaceTexture("page-9-player-buildings-bases.png", "page-9-player-buildings-bases-urban.png"); + } + else if (tilesetType === "ROCKIES") + { + setCampaignNumber(3); + replaceTexture("page-8-player-buildings-bases.png", "page-8-player-buildings-bases-rockies.png"); + replaceTexture("page-9-player-buildings-bases.png", "page-9-player-buildings-bases-rockies.png"); + replaceTexture("page-7-barbarians-arizona.png", "page-7-barbarians-kevlar.png"); + } + + if (tilesetType !== "ARIZONA") + { + setSky("texpages/page-25-sky-urban.png", 0.5, 10000.0); + } + + // Disable by default + setMiniMap(false); + // Enable all templates + setDesign(true); + + showInterface(); // init buttons. This MUST come before setting the reticule button data + setMainReticule(); + mainReticule = true; + queue("resetPower", 1000); +} + +function eventGameLoaded() +{ + setupGame(); +} + +function eventGameInit() +{ + setupGame(); + setTimer("autoSave", 10*60*1000); +} + +function setLimits() +{ + setDroidLimit(selectedPlayer, 101, DROID_ANY); //note: the transporter is a unit you own + setDroidLimit(selectedPlayer, 10, DROID_COMMAND); + setDroidLimit(selectedPlayer, 15, DROID_CONSTRUCT); + + for (let i = 0; i < maxPlayers; ++i) + { + setStructureLimits("A0PowerGenerator", 5, i); + setStructureLimits("A0ResourceExtractor", 200, i); + setStructureLimits("A0ResearchFacility", 5, i); + setStructureLimits("A0LightFactory", 5, i); + setStructureLimits("A0CyborgFactory", 5, i); + setStructureLimits("A0VTolFactory1", 5, i); + //non human players get five of these + setStructureLimits("A0CommandCentre", i === selectedPlayer ? 1 : 5, i); + setStructureLimits("A0ComDroidControl", i === selectedPlayer ? 1 : 5, i); + setStructureLimits("A0CommandCentreNP", 5, i); + setStructureLimits("A0CommandCentreCO", 5, i); + setStructureLimits("A0CommandCentreNE", 5, i); + } +} + +function resetPower() +{ + var powerLimit = 999999; + var powerProductionRate = 100; + + // set income modifier/power storage for player 0 (human) + if (difficulty <= EASY) + { + powerProductionRate = 115; + } + else if (difficulty === HARD) + { + powerProductionRate = 85; + powerLimit = 20000; //base value for Alpha + + if (tilesetType === "URBAN") + { + powerLimit += 5000; + } + else if (tilesetType === "ROCKIES") + { + powerLimit += 10000; + } + } + else if (difficulty === INSANE) + { + powerProductionRate = 70; + powerLimit = 12000; //base value for Alpha + + if (tilesetType === "URBAN") + { + powerLimit += 2000; + } + else if (tilesetType === "ROCKIES") + { + powerLimit += 4000; + } + } + + setPowerModifier(powerProductionRate); + setPowerStorageMaximum(powerLimit); + if (playerPower(selectedPlayer) >= powerLimit) + { + setPower(powerLimit - 1, selectedPlayer); + } +} + +function eventStartLevel() +{ + setLimits(); + if (tilesetType === "URBAN" || tilesetType === "ROCKIES") + { + weatherCycle(); + setTimer("weatherCycle", 45000); + } +} + +function eventDroidBuilt(droid, structure) +{ + if (droid.player === selectedPlayer) + { + reticuleUpdate(droid, CREATE_LIKE_EVENT); + } +} + +function eventStructureBuilt(struct, droid) +{ + if (struct.player === selectedPlayer) + { + reticuleUpdate(struct, CREATE_LIKE_EVENT); + } +} + +function eventStructureDemolish(struct, droid) +{ + if (struct.player === selectedPlayer) + { + reticuleUpdate(struct, DESTROY_LIKE_EVENT); + } +} + +function eventStructureUpgradeStarted(struct) +{ + if (struct.player === selectedPlayer) + { + reticuleUpdate(struct, TRANSFER_LIKE_EVENT); + } +} + +function eventDestroyed(victim) +{ + if (victim.player === selectedPlayer) + { + reticuleUpdate(victim, DESTROY_LIKE_EVENT); + } +} + +function eventObjectTransfer(obj, from) +{ + if (obj.player === selectedPlayer || from === selectedPlayer) + { + reticuleUpdate(obj, TRANSFER_LIKE_EVENT); + } +} + +//Could be the last remaining trucks are on it. +function eventTransporterLanded(transport) +{ + if (transport.player === selectedPlayer) + { + reticuleUpdate(transport, TRANSFER_LIKE_EVENT); + } +} + +function eventResearched(research, structure, player) +{ + // NOTE: Research upgrades are handled by the C++ core game engine since 4.1.0 +} + +var lastHitTime = 0; +var attackRecord = []; +function eventAttacked(victim, attacker) +{ + if ((victim.player === selectedPlayer && attacker.player !== selectedPlayer) && gameTime > lastHitTime + 2000) + { + lastHitTime = gameTime; + var newRecord = []; + var soundWorthy = true; // Whether an attack alert sound should be played + for (var i in attackRecord) + { + if (attackRecord[i].time < gameTime - 20000) + { + // This attack happened over 20 seconds ago, forget about it + continue; + } + var oldAttack = attackRecord[i]; + newRecord.push(oldAttack); + if (oldAttack.type === victim.type + && distBetweenTwoPoints(victim.x, victim.y, oldAttack.x, oldAttack.y) <= 12) + { + // The new attack has occured near a recent attack + // of the same type, don't bother playing a sound alert + soundWorthy = false; + } + } + if (!soundWorthy) + { + return; + } + + // Add this attack to the record + newRecord.push({time: gameTime, type: victim.type, x: victim.x, y: victim.y}); + attackRecord = newRecord; + + if (victim.type === STRUCTURE) + { + playSound("pcv337.ogg", victim.x, victim.y, victim.z); // "Structure under attack!" + } + else + { + playSound("pcv399.ogg", victim.x, victim.y, victim.z); // "Unit under attack!" + } + } +} diff --git a/stats/body.json b/stats/body.json index 3efdcad..d7222ba 100644 --- a/stats/body.json +++ b/stats/body.json @@ -103,30 +103,24 @@ "powerOutput": 23000, "propulsionExtraModels": { "HalfTrack": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "HalfTrack02": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "HalfTrack03": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "V-Tol": { - "left": "prhlvtl2.pie", - "right": "prhrvtl2.pie", + "left": "prhvtl2.pie", "moving": "fxvtl10.pie" }, "V-Tol02": { - "left": "prhlvtl2.pie", - "right": "prhrvtl2.pie", + "left": "prhvtl2.pie", "moving": "fxvtl10.pie" }, "V-Tol03": { - "left": "prhlvtl2.pie", - "right": "prhrvtl2.pie", + "left": "prhvtl2.pie", "moving": "fxvtl10.pie" }, "hover01": { @@ -139,28 +133,22 @@ "left": "prhhov1.pie" }, "tracked01": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "tracked02": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "tracked03": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "wheeled01": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" }, "wheeled02": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" }, "wheeled03": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" } }, "size": "HEAVY", @@ -181,30 +169,24 @@ "powerOutput": 20000, "propulsionExtraModels": { "HalfTrack": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "HalfTrack02": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "HalfTrack03": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "V-Tol": { - "left": "prhlvtl3.pie", - "right": "prhrvtl3.pie", + "left": "prhvtl3.pie", "moving": "fxvtl11.pie" }, "V-Tol02": { - "left": "prhlvtl3.pie", - "right": "prhrvtl3.pie", + "left": "prhvtl3.pie", "moving": "fxvtl11.pie" }, "V-Tol03": { - "left": "prhlvtl3.pie", - "right": "prhrvtl3.pie", + "left": "prhvtl3.pie", "moving": "fxvtl11.pie" }, "hover01": { @@ -217,28 +199,22 @@ "left": "prhhov1.pie" }, "tracked01": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "tracked02": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "tracked03": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "wheeled01": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" }, "wheeled02": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" }, "wheeled03": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" } }, "size": "HEAVY", @@ -259,30 +235,24 @@ "powerOutput": 20000, "propulsionExtraModels": { "HalfTrack": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "HalfTrack02": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "HalfTrack03": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "V-Tol": { - "left": "prhlvtl4.pie", - "right": "prhrvtl4.pie", + "left": "prhvtl4.pie", "moving": "fxvtl12.pie" }, "V-Tol02": { - "left": "prhlvtl4.pie", - "right": "prhrvtl4.pie", + "left": "prhvtl4.pie", "moving": "fxvtl12.pie" }, "V-Tol03": { - "left": "prhlvtl4.pie", - "right": "prhrvtl4.pie", + "left": "prhvtl4.pie", "moving": "fxvtl12.pie" }, "hover01": { @@ -295,28 +265,22 @@ "left": "prhhov1.pie" }, "tracked01": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "tracked02": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "tracked03": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "wheeled01": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" }, "wheeled02": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" }, "wheeled03": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" } }, "size": "HEAVY", @@ -337,30 +301,24 @@ "powerOutput": 5000, "propulsionExtraModels": { "HalfTrack": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "HalfTrack02": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "HalfTrack03": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "V-Tol": { - "left": "prllvtl1.pie", - "right": "prlrvtl1.pie", + "left": "prlvtl1.pie", "moving": "fxvtl01.pie" }, "V-Tol02": { - "left": "prllvtl1.pie", - "right": "prlrvtl1.pie", + "left": "prlvtl1.pie", "moving": "fxvtl01.pie" }, "V-Tol03": { - "left": "prllvtl1.pie", - "right": "prlrvtl1.pie", + "left": "prlvtl1.pie", "moving": "fxvtl01.pie" }, "hover01": { @@ -373,28 +331,22 @@ "left": "prlhov1.pie" }, "tracked01": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "tracked02": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "tracked03": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "wheeled01": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" }, "wheeled02": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" }, "wheeled03": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" } }, "size": "LIGHT", @@ -415,30 +367,24 @@ "powerOutput": 6500, "propulsionExtraModels": { "HalfTrack": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "HalfTrack02": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "HalfTrack03": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "V-Tol": { - "left": "prllvtl2.pie", - "right": "prlrvtl2.pie", + "left": "prlvtl2.pie", "moving": "fxvtl2and3.pie" }, "V-Tol02": { - "left": "prllvtl2.pie", - "right": "prlrvtl2.pie", + "left": "prlvtl2.pie", "moving": "fxvtl2and3.pie" }, "V-Tol03": { - "left": "prllvtl2.pie", - "right": "prlrvtl2.pie", + "left": "prlvtl2.pie", "moving": "fxvtl2and3.pie" }, "hover01": { @@ -451,28 +397,22 @@ "left": "prlhov1.pie" }, "tracked01": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "tracked02": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "tracked03": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "wheeled01": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" }, "wheeled02": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" }, "wheeled03": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" } }, "size": "LIGHT", @@ -493,30 +433,24 @@ "powerOutput": 5000, "propulsionExtraModels": { "HalfTrack": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "HalfTrack02": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "HalfTrack03": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "V-Tol": { - "left": "prllvtl2.pie", - "right": "prlrvtl2.pie", + "left": "prlvtl2.pie", "moving": "fxvtl2and3.pie" }, "V-Tol02": { - "left": "prllvtl2.pie", - "right": "prlrvtl2.pie", + "left": "prlvtl2.pie", "moving": "fxvtl2and3.pie" }, "V-Tol03": { - "left": "prllvtl2.pie", - "right": "prlrvtl2.pie", + "left": "prlvtl2.pie", "moving": "fxvtl2and3.pie" }, "hover01": { @@ -529,28 +463,22 @@ "left": "prlhov1.pie" }, "tracked01": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "tracked02": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "tracked03": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "wheeled01": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" }, "wheeled02": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" }, "wheeled03": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" } }, "size": "LIGHT", @@ -571,30 +499,24 @@ "powerOutput": 5000, "propulsionExtraModels": { "HalfTrack": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "HalfTrack02": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "HalfTrack03": { - "left": "prllhtr1.pie", - "right": "prlrhtr1.pie" + "left": "prlhtr1.pie" }, "V-Tol": { - "left": "prllvtl3.pie", - "right": "prlrvtl3.pie", + "left": "prlvtl3.pie", "moving": "fxvtl04.pie" }, "V-Tol02": { - "left": "prllvtl3.pie", - "right": "prlrvtl3.pie", + "left": "prlvtl3.pie", "moving": "fxvtl04.pie" }, "V-Tol03": { - "left": "prllvtl3.pie", - "right": "prlrvtl3.pie", + "left": "prlvtl3.pie", "moving": "fxvtl04.pie" }, "hover01": { @@ -607,28 +529,22 @@ "left": "prlhov1.pie" }, "tracked01": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "tracked02": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "tracked03": { - "left": "prlltrk1.pie", - "right": "prlrtrk1.pie" + "left": "prltrk1.pie" }, "wheeled01": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" }, "wheeled02": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" }, "wheeled03": { - "left": "prllwhl1.pie", - "right": "prlrwhl1.pie" + "left": "prlwhl1.pie" } }, "size": "LIGHT", @@ -649,30 +565,24 @@ "powerOutput": 15000, "propulsionExtraModels": { "HalfTrack": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "HalfTrack02": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "HalfTrack03": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "V-Tol": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "V-Tol02": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "V-Tol03": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "hover01": { @@ -685,28 +595,22 @@ "left": "prmhov1.pie" }, "tracked01": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "tracked02": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "tracked03": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "wheeled01": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" }, "wheeled02": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" }, "wheeled03": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" } }, "size": "MEDIUM", @@ -727,30 +631,24 @@ "powerOutput": 18000, "propulsionExtraModels": { "HalfTrack": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "HalfTrack02": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "HalfTrack03": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "V-Tol": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "V-Tol02": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "V-Tol03": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "hover01": { @@ -763,28 +661,22 @@ "left": "prmhov1.pie" }, "tracked01": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "tracked02": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "tracked03": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "wheeled01": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" }, "wheeled02": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" }, "wheeled03": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" } }, "size": "MEDIUM", @@ -805,64 +697,52 @@ "powerOutput": 15000, "propulsionExtraModels": { "HalfTrack": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "HalfTrack02": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "HalfTrack03": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "V-Tol": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "V-Tol02": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "V-Tol03": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "hover01": { - "left": "prmhov1.pie" + "left": "prmhov2.pie" }, "hover02": { - "left": "prmhov1.pie" + "left": "prmhov2.pie" }, "hover03": { - "left": "prmhov1.pie" + "left": "prmhov2.pie" }, "tracked01": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "tracked02": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "tracked03": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "wheeled01": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" }, "wheeled02": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" }, "wheeled03": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" } }, "size": "MEDIUM", @@ -883,30 +763,24 @@ "powerOutput": 15000, "propulsionExtraModels": { "HalfTrack": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "HalfTrack02": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "HalfTrack03": { - "left": "prmlhtr2.pie", - "right": "prmrhtr2.pie" + "left": "prmhtr2.pie" }, "V-Tol": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "V-Tol02": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "V-Tol03": { - "left": "prmlvtl1.pie", - "right": "prmrvtl1.pie", + "left": "prmvtl1.pie", "moving": "fxvtl5to8.pie" }, "hover01": { @@ -919,28 +793,22 @@ "left": "prmhov1.pie" }, "tracked01": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "tracked02": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "tracked03": { - "left": "prmltrk2.pie", - "right": "prmrtrk2.pie" + "left": "prmtrk2.pie" }, "wheeled01": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" }, "wheeled02": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" }, "wheeled03": { - "left": "prmlwhl1.pie", - "right": "prmrwhl1.pie" + "left": "prmwhl1.pie" } }, "size": "MEDIUM", @@ -961,30 +829,24 @@ "powerOutput": 18000, "propulsionExtraModels": { "HalfTrack": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "HalfTrack02": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "HalfTrack03": { - "left": "prhlhtr3.pie", - "right": "prhrhtr3.pie" + "left": "prhhtr3.pie" }, "V-Tol": { - "left": "prhlvtl1.pie", - "right": "prhrvtl1.pie", + "left": "prhvtl1.pie", "moving": "fxvtl09.pie" }, "V-Tol02": { - "left": "prhlvtl1.pie", - "right": "prhrvtl1.pie", + "left": "prhvtl1.pie", "moving": "fxvtl09.pie" }, "V-Tol03": { - "left": "prhlvtl1.pie", - "right": "prhrvtl1.pie", + "left": "prhvtl1.pie", "moving": "fxvtl09.pie" }, "hover01": { @@ -997,28 +859,22 @@ "left": "prhhov1.pie" }, "tracked01": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "tracked02": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "tracked03": { - "left": "prhltrk3.pie", - "right": "prhrtrk3.pie" + "left": "prhtrk3.pie" }, "wheeled01": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" }, "wheeled02": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" }, "wheeled03": { - "left": "prhlwhl1.pie", - "right": "prhrwhl1.pie" + "left": "prhwhl1.pie" } }, "size": "HEAVY", @@ -1311,12 +1167,11 @@ }, "ZNULLBODY": { "id": "ZNULLBODY", - "model": "mibnkbod.pie", + "model": "znullbody.pie", "name": "*Z NULL BODY*", "propulsionExtraModels": { "ZNULLPROP": { - "left": "mibnkdrl.pie", - "right": "mibnkdrr.pie" + "left": "znullfull.pie" } }, "size": "LIGHT", diff --git a/stats/propulsion.json b/stats/propulsion.json index 9c873a9..32a6a4e 100644 --- a/stats/propulsion.json +++ b/stats/propulsion.json @@ -67,7 +67,7 @@ "designable": 1, "hitpointPctOfBody": 200, "id": "HalfTrack", - "model": "PRLRHTR1.PIE", + "model": "prlhtr1.PIE", "name": "Half-tracks", "skidDeceleration": 500, "speed": 150, @@ -80,7 +80,7 @@ "designable": 1, "hitpointPctOfBody": 350, "id": "HalfTrack02", - "model": "PRLRHTR1.PIE", + "model": "prlhtr1.PIE", "name": "Half-tracks II", "skidDeceleration": 500, "speed": 150, @@ -93,7 +93,7 @@ "designable": 1, "hitpointPctOfBody": 500, "id": "HalfTrack03", - "model": "PRLRHTR1.PIE", + "model": "prlhtr1.PIE", "name": "Half-tracks III", "skidDeceleration": 500, "speed": 150, @@ -150,7 +150,7 @@ }, "ZNULLPROP": { "id": "ZNULLPROP", - "model": "MIBNKDRL.PIE", + "model": "znullfull.PIE", "name": "Z NULL PROP", "type": "Wheeled" }, @@ -199,7 +199,7 @@ "designable": 1, "hitpointPctOfBody": 300, "id": "tracked01", - "model": "PRLRTRK1.PIE", + "model": "prltrk1.PIE", "name": "Tracks", "speed": 125, "spinAngle": 45, @@ -212,7 +212,7 @@ "designable": 1, "hitpointPctOfBody": 450, "id": "tracked02", - "model": "PRLRTRK1.PIE", + "model": "prltrk1.PIE", "name": "Tracks II", "speed": 125, "spinAngle": 45, @@ -225,7 +225,7 @@ "designable": 1, "hitpointPctOfBody": 600, "id": "tracked03", - "model": "PRLRTRK1.PIE", + "model": "prltrk1.PIE", "name": "Tracks III", "speed": 125, "spinAngle": 45, @@ -238,7 +238,7 @@ "designable": 1, "hitpointPctOfBody": 100, "id": "wheeled01", - "model": "PRLRWHL1.PIE", + "model": "prlwhl1.PIE", "name": "Wheels", "skidDeceleration": 350, "speed": 175, @@ -251,7 +251,7 @@ "designable": 1, "hitpointPctOfBody": 200, "id": "wheeled02", - "model": "PRLRWHL1.PIE", + "model": "prlwhl1.PIE", "name": "Wheels II", "skidDeceleration": 350, "speed": 175, @@ -264,7 +264,7 @@ "designable": 1, "hitpointPctOfBody": 300, "id": "wheeled03", - "model": "PRLRWHL1.PIE", + "model": "prlwhl1.PIE", "name": "Wheels III", "skidDeceleration": 350, "speed": 175, diff --git a/wrf/cam1/cam1c.gam b/wrf/cam1/cam1c.gam new file mode 100644 index 0000000000000000000000000000000000000000..4b19c6402ce1d83cedf0a6c17dc7b284e40c4bc1 GIT binary patch literal 52 YcmYdK%uVHBfB;4)4Wb&L7{o>g0BpJfqyPW_ literal 0 HcmV?d00001 diff --git a/wrf/cam1/cam1c/droid.ini b/wrf/cam1/cam1c/droid.ini new file mode 100644 index 0000000..78c0c0b --- /dev/null +++ b/wrf/cam1/cam1c/droid.ini @@ -0,0 +1,476 @@ +[droid_2008] +id = 2008 +startpos = 7 +template = BaBaPeople +position = 8659, 2985, 0 +rotation = 0, 0, 0 + +[droid_2007] +id = 2007 +startpos = 7 +template = BaBaPeople +position = 8759, 3015, 0 +rotation = 0, 0, 0 + +[droid_2119] +id = 2119 +startpos = 1 +template = NP-M-CON-HalfTrack +position = 8512, 5568, 0 +rotation = 0, 0, 0 + +[droid_2138] +id = 2138 +startpos = 1 +template = NP-M-CON-HalfTrack +position = 13366, 4674, 0 +rotation = 0, 0, 0 + +[droid_2139] +id = 2139 +startpos = 1 +template = NP-M-CON-HalfTrack +position = 8896, 14912, 0 +rotation = 0, 0, 0 + +[droid_2213] +id = 2213 +startpos = 7 +template = BaBaPeople +position = 9034, 13882, 0 +rotation = 42598, 0, 0 + +[droid_2214] +id = 2214 +startpos = 7 +template = BaBaPeople +position = 9152, 13888, 0 +rotation = 56798, 0, 0 + +[droid_2215] +id = 2215 +startpos = 7 +template = BaBaPeople +position = 9024, 14016, 0 +rotation = 48788, 0, 0 + +[droid_2216] +id = 2216 +startpos = 7 +template = BaBaPeople +position = 9152, 14016, 0 +rotation = 7282, 0, 0 + +[droid_2217] +id = 2217 +startpos = 7 +template = BaBaPeople +position = 9024, 14144, 0 +rotation = 30219, 0, 0 + +[droid_2218] +id = 2218 +startpos = 7 +template = BaBaPeople +position = 9152, 14144, 0 +rotation = 42780, 0, 0 + +[droid_2219] +id = 2219 +startpos = 7 +template = BaBaPeople +position = 9024, 14272, 0 +rotation = 50244, 0, 0 + +[droid_2220] +id = 2220 +startpos = 7 +template = BaBaPeople +position = 9152, 14272, 0 +rotation = 44419, 0, 0 + +[droid_2224] +id = 2224 +startpos = 7 +template = BaBaPeople +position = 10046, 14274, 0 +rotation = 49880, 0, 0 + +[droid_2231] +id = 2231 +startpos = 7 +template = BaBaPeople +position = 10048, 14528, 0 +rotation = 9284, 0, 0 + +[droid_2233] +id = 2233 +startpos = 7 +template = BaBaPeople +position = 10432, 14656, 0 +rotation = 46785, 0, 0 + +[droid_2325] +id = 2325 +startpos = 1 +template = NP-M-CON-HalfTrack +position = 8768, 9408, 0 +rotation = 0, 0, 0 + +[droid_3254] +id = 3254 +startpos = 1 +template = NP-L-Sensor-Wheels +position = 8376, 13876, 0 +rotation = 48606, 0, 0 + +[droid_3255] +id = 3255 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 8496, 13886, 0 +rotation = 49516, 0, 0 + +[droid_3256] +id = 3256 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 8382, 14010, 0 +rotation = 50062, 0, 0 + +[droid_3268] +id = 3268 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 11324, 11330, 0 +rotation = 0, 0, 0 + +[droid_3269] +id = 3269 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 11322, 11200, 0 +rotation = 0, 0, 0 + +[droid_3270] +id = 3270 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 11322, 11070, 0 +rotation = 0, 0, 0 + +[droid_3272] +id = 3272 +startpos = 1 +template = NP-L-HMG-Halftrack +position = 11450, 11628, 0 +rotation = 0, 0, 0 + +[droid_3274] +id = 3274 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 11456, 11076, 0 +rotation = 0, 0, 0 + +[droid_3275] +id = 3275 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 11194, 11068, 0 +rotation = 0, 0, 0 + +[droid_3276] +id = 3276 +startpos = 1 +template = NP-M-Command-Halftrack +position = 11186, 10950, 0 +rotation = 0, 0, 0 + +[droid_3279] +id = 3279 +startpos = 1 +template = NP-L-Sensor-Wheels +position = 11322, 11630, 0 +rotation = 0, 0, 0 + +[droid_3280] +id = 3280 +startpos = 1 +template = NP-L-HMG-Halftrack +position = 11200, 11610, 0 +rotation = 0, 0, 0 + +[droid_3281] +id = 3281 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 11322, 11466, 0 +rotation = 0, 0, 0 + +[droid_3295] +id = 3295 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 13510, 3898, 0 +rotation = 43327, 0, 0 + +[droid_3296] +id = 3296 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 13368, 3784, 0 +rotation = 44055, 0, 0 + +[droid_3297] +id = 3297 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 14150, 4034, 0 +rotation = 10377, 0, 0 + +[droid_3298] +id = 3298 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 14276, 3904, 0 +rotation = 14746, 0, 0 + +[droid_3299] +id = 3299 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 12342, 2242, 0 +rotation = 11651, 0, 0 + +[droid_3300] +id = 3300 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 12348, 2502, 0 +rotation = 9466, 0, 0 + +[droid_3301] +id = 3301 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 12592, 2372, 0 +rotation = 0, 0, 0 + +[droid_3302] +id = 3302 +startpos = 1 +template = NP-L-HMG-Halftrack +position = 13120, 2624, 0 +rotation = 0, 0, 0 + +[droid_3303] +id = 3303 +startpos = 1 +template = NP-L-HMG-Halftrack +position = 11950, 2620, 0 +rotation = 0, 0, 0 + +[droid_3304] +id = 3304 +startpos = 1 +template = NP-L-HMG-Halftrack +position = 9296, 7096, 0 +rotation = 0, 0, 0 + +[droid_3305] +id = 3305 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 8380, 6850, 0 +rotation = 0, 0, 0 + +[droid_3306] +id = 3306 +startpos = 1 +template = NP-M-LtMortar-Halftrack +position = 8394, 15312, 0 +rotation = 39868, 0, 0 + +[droid_3307] +id = 3307 +startpos = 1 +template = NP-M-LtMortar-Halftrack +position = 8668, 15432, 0 +rotation = 37137, 0, 0 + +[droid_3308] +id = 3308 +startpos = 1 +template = NP-M-LtMortar-Halftrack +position = 8768, 15300, 0 +rotation = 50790, 0, 0 + +[droid_3309] +id = 3309 +startpos = 1 +template = NP-M-LtMortar-Halftrack +position = 8916, 15442, 0 +rotation = 44237, 0, 0 + +[droid_3310] +id = 3310 +startpos = 1 +template = NP-M-LtMortar-Halftrack +position = 9024, 15528, 0 +rotation = 51701, 0, 0 + +[droid_3311] +id = 3311 +startpos = 1 +template = NP-M-LtMortar-Halftrack +position = 8782, 15554, 0 +rotation = 41870, 0, 0 + +[droid_3312] +id = 3312 +startpos = 1 +template = NP-M-LtMortar-Halftrack +position = 8896, 15166, 0 +rotation = 0, 0, 0 + +[droid_3374] +id = 3374 +startpos = 1 +template = NP-L-HMG-Halftrack +position = 9402, 13998, 0 +rotation = 50790, 0, 0 + +[droid_3375] +id = 3375 +startpos = 1 +template = NP-L-HMG-Halftrack +position = 9530, 13878, 0 +rotation = 47514, 0, 0 + +[droid_3376] +id = 3376 +startpos = 1 +template = NP-L-HMG-Halftrack +position = 9534, 14012, 0 +rotation = 51701, 0, 0 + +[droid_3381] +id = 3381 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 9538, 14410, 0 +rotation = 40050, 0, 0 + +[droid_3383] +id = 3383 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 9662, 14404, 0 +rotation = 30766, 0, 0 + +[droid_3384] +id = 3384 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 9784, 14394, 0 +rotation = 45147, 0, 0 + +[droid_3386] +id = 3386 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 9658, 14528, 0 +rotation = 39140, 0, 0 + +[droid_3387] +id = 3387 +startpos = 1 +template = NP-M-Command-Halftrack +position = 9406, 14142, 0 +rotation = 46603, 0, 0 + +[droid_3388] +id = 3388 +startpos = 1 +template = NP-M-Command-Halftrack +position = 9790, 14528, 0 +rotation = 47150, 0, 0 + +[droid_3389] +id = 3389 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 8636, 13882, 0 +rotation = 48242, 0, 0 + +[droid_3390] +id = 3390 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 8760, 13886, 0 +rotation = 45875, 0, 0 + +[droid_3392] +id = 3392 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 8620, 14004, 0 +rotation = 49334, 0, 0 + +[droid_3393] +id = 3393 +startpos = 1 +template = NP-L-RocketPod-Wheels +position = 8772, 14012, 0 +rotation = 50608, 0, 0 + +[droid_3491] +id = 3491 +startpos = 7 +template = BarbarianTrike +position = 10304, 14388, 0 +rotation = 24758, 0, 0 + +[droid_3492] +id = 3492 +startpos = 7 +template = BarbarianTrike +position = 10166, 14398, 0 +rotation = 47878, 0, 0 + +[droid_3493] +id = 3493 +startpos = 7 +template = BabaJeep +position = 10304, 14528, 0 +rotation = 51519, 0, 0 + +[droid_3523] +id = 3523 +startpos = 1 +template = NP-M-LitCannon-Halftrack +position = 9664, 13886, 0 +rotation = 45875, 0, 0 + +[droid_3524] +id = 3524 +startpos = 1 +template = NP-M-LitCannon-Halftrack +position = 9660, 14018, 0 +rotation = 51519, 0, 0 + +[droid_3525] +id = 3525 +startpos = 1 +template = NP-M-LitCannon-Halftrack +position = 9786, 13880, 0 +rotation = 55524, 0, 0 + +[droid_3581] +id = 3581 +startpos = 7 +template = BaBaPeople +position = 8896, 2880, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam1/cam1c/feature.ini b/wrf/cam1/cam1c/feature.ini new file mode 100644 index 0000000..c261528 --- /dev/null +++ b/wrf/cam1/cam1c/feature.ini @@ -0,0 +1,516 @@ +[feature_1371] +id = 1371 +position = 10176, 9792, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_1380] +id = 1380 +position = 10304, 9664, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_1381] +id = 1381 +position = 10176, 9664, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_1382] +id = 1382 +position = 10688, 9664, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_1384] +id = 1384 +position = 13056, 9792, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_1752] +id = 1752 +position = 12096, 5312, 0 +rotation = 49152, 0, 0 +name = WreckedSuzukiJeep + +[feature_1753] +id = 1753 +position = 11328, 5952, 0 +rotation = 0, 0, 0 +name = WreckedVertCampVan + +[feature_1754] +id = 1754 +position = 12352, 6336, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_1755] +id = 1755 +position = 11648, 5312, 0 +rotation = 0, 0, 0 +name = BarbTechRuin + +[feature_1757] +id = 1757 +position = 12480, 5056, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1758] +id = 1758 +position = 12480, 4800, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_1759] +id = 1759 +position = 12992, 5824, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_1762] +id = 1762 +position = 12480, 8512, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_1763] +id = 1763 +position = 12480, 8640, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1765] +id = 1765 +position = 11456, 5824, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_1766] +id = 1766 +position = 12096, 6208, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_1767] +id = 1767 +position = 12480, 5440, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_1769] +id = 1769 +position = 12992, 5568, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1771] +id = 1771 +position = 9920, 14528, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_1772] +id = 1772 +position = 10560, 14400, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1774] +id = 1774 +position = 10176, 14784, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_1776] +id = 1776 +position = 12352, 11712, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1777] +id = 1777 +position = 12096, 11968, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_1778] +id = 1778 +position = 12480, 11584, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_1779] +id = 1779 +position = 12480, 11328, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_1789] +id = 1789 +position = 10816, 4416, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_1790] +id = 1790 +position = 12608, 2880, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_1791] +id = 1791 +position = 12864, 2496, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1792] +id = 1792 +position = 12992, 1728, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1793] +id = 1793 +position = 12224, 1728, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_1795] +id = 1795 +position = 12608, 2624, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_1796] +id = 1796 +position = 12608, 3904, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_1797] +id = 1797 +position = 12864, 3904, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_1798] +id = 1798 +position = 12608, 3520, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1803] +id = 1803 +position = 12864, 7360, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_1804] +id = 1804 +position = 12864, 7232, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1811] +id = 1811 +position = 12096, 6848, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_1957] +id = 1957 +position = 12096, 12224, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_2069] +id = 2069 +position = 8640, 7488, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_2123] +id = 2123 +position = 10688, 15296, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_2237] +id = 2237 +position = 10048, 16064, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2238] +id = 2238 +position = 10176, 16064, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2239] +id = 2239 +position = 10304, 15808, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2240] +id = 2240 +position = 10048, 15936, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2241] +id = 2241 +position = 10304, 15936, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2251] +id = 2251 +position = 12864, 13376, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2252] +id = 2252 +position = 12992, 13248, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2328] +id = 2328 +position = 9792, 1600, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_2329] +id = 2329 +position = 9408, 1728, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_2330] +id = 2330 +position = 8256, 2112, 0 +rotation = 0, 0, 0 +name = Boulder3 + +[feature_2331] +id = 2331 +position = 7360, 3392, 0 +rotation = 0, 0, 0 +name = Boulder3 + +[feature_2332] +id = 2332 +position = 8128, 3648, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_2333] +id = 2333 +position = 7872, 3648, 0 +rotation = 0, 0, 0 +name = miruin2 + +[feature_2334] +id = 2334 +position = 9408, 4288, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2335] +id = 2335 +position = 9280, 4288, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_2337] +id = 2337 +position = 8128, 3776, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_2338] +id = 2338 +position = 9024, 7936, 0 +rotation = 0, 0, 0 +name = WreckedTankerV + +[feature_2340] +id = 2340 +position = 8384, 4416, 0 +rotation = 0, 0, 0 +name = Boulder2 + +[feature_2341] +id = 2341 +position = 7872, 5184, 0 +rotation = 0, 0, 0 +name = Boulder3 + +[feature_2342] +id = 2342 +position = 7104, 4416, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_2344] +id = 2344 +position = 6848, 4672, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_2345] +id = 2345 +position = 6976, 3008, 0 +rotation = 0, 0, 0 +name = Boulder2 + +[feature_2348] +id = 2348 +position = 10304, 7744, 0 +rotation = 0, 0, 0 +name = Boulder3 + +[feature_2350] +id = 2350 +position = 7104, 8640, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_2353] +id = 2353 +position = 8512, 11584, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_2354] +id = 2354 +position = 7616, 12224, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_2355] +id = 2355 +position = 8256, 12480, 0 +rotation = 0, 0, 0 +name = Boulder2 + +[feature_2356] +id = 2356 +position = 9536, 10048, 0 +rotation = 0, 0, 0 +name = Boulder2 + +[feature_2358] +id = 2358 +position = 8384, 10816, 0 +rotation = 0, 0, 0 +name = Boulder3 + +[feature_2359] +id = 2359 +position = 8256, 12096, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_2360] +id = 2360 +position = 8128, 12224, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_2363] +id = 2363 +position = 7104, 11200, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_2364] +id = 2364 +position = 10048, 5952, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2365] +id = 2365 +position = 10176, 5696, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2369] +id = 2369 +position = 10176, 5952, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2370] +id = 2370 +position = 10048, 5696, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_2406] +id = 2406 +position = 9536, 6208, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_2407] +id = 2407 +position = 9664, 6208, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_3399] +id = 3399 +position = 14272, 13888, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_3401] +id = 3401 +position = 14656, 13760, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_3562] +id = 3562 +position = 13952, 13632, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_3563] +id = 3563 +position = 13952, 13760, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_3564] +id = 3564 +position = 14144, 13888, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_3569] +id = 3569 +position = 15424, 9152, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_3571] +id = 3571 +position = 14528, 11584, 0 +rotation = 0, 0, 0 +name = Boulder2 + +[feature_3576] +id = 3576 +position = 14144, 1472, 0 +rotation = 0, 0, 0 +name = OilResource + diff --git a/wrf/cam1/cam1c/labels.ini b/wrf/cam1/cam1c/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam1/cam1c/labels.json b/wrf/cam1/cam1c/labels.json new file mode 100644 index 0000000..f0d0da0 --- /dev/null +++ b/wrf/cam1/cam1c/labels.json @@ -0,0 +1,244 @@ +{ + "position_0": { + "label": "startPosition", + "pos": [1920, 6656] + }, + "position_1": { + "label": "ScavSouthFactoryAssembly", + "pos": [12736, 14016] + }, + "position_2": { + "label": "ScavCentralFactoryAssembly", + "pos": [8512, 6592] + }, + "position_3": { + "label": "ScavNorthFactoryAssembly", + "pos": [8384, 704] + }, + "position_4": { + "label": "NPCentralFactoryAssembly", + "pos": [12736, 11456] + }, + "position_5": { + "label": "NPNorthFactoryAssembly", + "pos": [9920, 3136] + }, + "position_6": { + "label": "AmbushTarget", + "pos": [8352, 13880] + }, + + "area_0": { + "label": "landingZone", + "pos1": [1280, 6528], + "pos2": [1536, 6784] + }, + "area_1": { + "label": "EastNPLZ", + "pos1": [13504, 4672], + "pos2": [13760, 4928] + }, + "area_2": { + "label": "WestNPLZ", + "pos1": [8896, 10048], + "pos2": [9152, 10304] + }, + "area_3": { + "label": "PhantomLZ1", + "pos1": [7104, 6208], + "pos2": [7360, 6464] + }, + "area_4": { + "label": "PhantomLZ2", + "pos1": [6080, 6720], + "pos2": [6336, 6976] + }, + "area_5": { + "label": "PhantomLZ3", + "pos1": [7744, 4544], + "pos2": [8000, 4800] + }, + "area_6": { + "label": "PhantomLZ4", + "pos1": [6720, 3392], + "pos2": [6976, 3648] + }, + "area_7": { + "label": "PhantomLZ5", + "pos1": [10432, 8256], + "pos2": [10678, 8512] + }, + "area_8": { + "label": "RocketScoutForce", + "pos1": [8384, 13760], + "pos2": [8640, 14144] + }, + "area_9": { + "label": "RocketForce", + "pos1": [8640, 13760], + "pos2": [8896, 14144] + }, + "area_10": { + "label": "TankScoutForce", + "pos1": [9280, 13760], + "pos2": [9920, 14272] + }, + "area_11": { + "label": "TankForce", + "pos1": [9280, 14272], + "pos2": [9920, 14656] + }, + "area_12": { + "label": "AmbushForce", + "pos1": [10944, 10816], + "pos2": [11712, 11712] + }, + "area_13": { + "label": "ScavSouthDerrick", + "pos1": [9920, 14848], + "pos2": [11072, 16192] + }, + "area_14": { + "label": "ScavSouthEastHighground", + "pos1": [10624, 11968], + "pos2": [14912, 14784] + }, + "area_15": { + "label": "ScavNorthBase", + "pos1": [8000, 192], + "pos2": [9664, 1600] + }, + "area_16": { + "label": "ScavSouthPodPits", + "pos1": [8384, 2624], + "pos2": [10048, 4672] + }, + "area_17": { + "label": "MixedCentralBase", + "pos1": [8256, 4928], + "pos2": [10048, 8640] + }, + "area_18": { + "label": "NPEastBase", + "pos1": [9408, 8640], + "pos2": [13760, 11328] + }, + "area_19": { + "label": "NPNorthEastGenerator", + "pos1": [12992, 1088], + "pos2": [15040, 3776] + }, + "area_20": { + "label": "NPNorthEastBase", + "pos1": [10176, 1216], + "pos2": [12352, 4544] + }, + "area_21": { + "label": "NPLZ2", + "pos1": [8512, 9792], + "pos2": [9664, 10944] + }, + "area_22": { + "label": "NPLZ1", + "pos1": [12892, 3704], + "pos2": [14472, 5668] + }, + "area_23": { + "label": "AmbushTrigger", + "subscriber": 0, + "pos1": [8896, 13760], + "pos2": [10048, 14656] + }, + "area_24": { + "label": "NPLZ1Trigger", + "subscriber": 0, + "pos1": [10560, 6400], + "pos2": [16448, 8256] + }, + "area_25": { + "label": "NPLZ2Trigger", + "subscriber": 0, + "pos1": [7616, 4800], + "pos2": [9408, 5696] + }, + + "object_0": { + "label": "NPResearchFacility", + "id": 3580, + "player": 1, + "type": 1 + }, + "object_1": { + "label": "ScavSouthFactory", + "id": 1888, + "player": 7, + "type": 1 + }, + "object_2": { + "label": "ScavCentralFactory", + "id": 2265, + "player": 7, + "type": 1 + }, + "object_3": { + "label": "ScavNorthFactory", + "id": 2168, + "player": 7, + "type": 1 + }, + "object_4": { + "label": "NPCentralFactory", + "id": 2135, + "player": 1, + "type": 1 + }, + "object_5": { + "label": "NPNorthFactory", + "id": 2136, + "player": 1, + "type": 1 + }, + "object_6": { + "label": "TankScoutForceCommander", + "id": 3387, + "player": 1, + "type": 0 + }, + "object_7": { + "label": "TankForceCommander", + "id": 3388, + "player": 1, + "type": 0 + }, + "object_8": { + "label": "AmbushForceCommander", + "id": 3276, + "player": 1, + "type": 0 + }, + + "radius_0": { + "label": "ScavCentralFactoryTrigger", + "subscriber": 0, + "pos": [8448, 7040], + "radius": 1920 + }, + "radius_1": { + "label": "ScavNorthFactoryTrigger", + "subscriber": 0, + "pos": [8576, 384], + "radius": 1920 + }, + "radius_2": { + "label": "NPNorthFactoryTrigger", + "subscriber": 0, + "pos": [11520, 3712], + "radius": 1920 + }, + "radius_3": { + "label": "RemoveBeacon", + "subscriber": 0, + "pos": [7168, 13888], + "radius": 540 + } +} diff --git a/wrf/cam1/cam1c/struct.ini b/wrf/cam1/cam1c/struct.ini new file mode 100644 index 0000000..66a90ef --- /dev/null +++ b/wrf/cam1/cam1c/struct.ini @@ -0,0 +1,1826 @@ +[structure_1114] +id = 1114 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11968, 10048, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_1115] +id = 1115 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 10048, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_1119] +id = 1119 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 13248, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1124] +id = 1124 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12352, 10048, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_1228] +id = 1228 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 13120, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1355] +id = 1355 +startpos = 1 +name = WallTower02 +position = 13376, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1359] +id = 1359 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11712, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1369] +id = 1369 +startpos = 1 +name = A0RepairCentre3 +position = 12096, 9664, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1383] +id = 1383 +startpos = 1 +name = Sys-SensoTower01 +position = 11840, 10688, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1476] +id = 1476 +startpos = 1 +name = A0LightFactory +position = 11584, 3776, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_1477] +id = 1477 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11456, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1478] +id = 1478 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11584, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1479] +id = 1479 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11712, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1480] +id = 1480 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11840, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1481] +id = 1481 +startpos = 1 +name = WallTower02 +position = 11456, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1482] +id = 1482 +startpos = 1 +name = WallTower02 +position = 11328, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1483] +id = 1483 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11456, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1484] +id = 1484 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11328, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1485] +id = 1485 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11328, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1486] +id = 1486 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11200, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1487] +id = 1487 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11328, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1488] +id = 1488 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11072, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1489] +id = 1489 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11200, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1490] +id = 1490 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11328, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1491] +id = 1491 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11328, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1492] +id = 1492 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11328, 3136, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1493] +id = 1493 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11456, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1494] +id = 1494 +startpos = 1 +name = WallTower02 +position = 11712, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1495] +id = 1495 +startpos = 1 +name = WallTower02 +position = 11968, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1496] +id = 1496 +startpos = 1 +name = A0HardcreteMk1CWall +position = 12096, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1497] +id = 1497 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11584, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1498] +id = 1498 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 4160, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_1499] +id = 1499 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 4032, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_1500] +id = 1500 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1501] +id = 1501 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 3776, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1502] +id = 1502 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 3648, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1503] +id = 1503 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 3520, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1504] +id = 1504 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 3392, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1505] +id = 1505 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 3264, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1506] +id = 1506 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 3136, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1508] +id = 1508 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12096, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1509] +id = 1509 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11968, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1512] +id = 1512 +startpos = 1 +name = WallTower02 +position = 12096, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1514] +id = 1514 +startpos = 1 +name = A0PowerGenerator +position = 14464, 2944, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_1529] +id = 1529 +startpos = 1 +name = A0CommandCentreNP +position = 9216, 6144, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1530] +id = 1530 +startpos = 1 +name = A0LightFactory +position = 10176, 9152, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_1538] +id = 1538 +startpos = 1 +name = WallTower02 +position = 13376, 9536, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1539] +id = 1539 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11840, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1608] +id = 1608 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11072, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1613] +id = 1613 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11584, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1641] +id = 1641 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12224, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1807] +id = 1807 +startpos = 1 +name = A0HardcreteMk1CWall +position = 10944, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1808] +id = 1808 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11712, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1816] +id = 1816 +startpos = 1 +name = A0HardcreteMk1CWall +position = 12992, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1817] +id = 1817 +startpos = 1 +name = A0HardcreteMk1CWall +position = 12480, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1841] +id = 1841 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12224, 14400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1842] +id = 1842 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12352, 14400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1843] +id = 1843 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12480, 14272, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1859] +id = 1859 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12352, 13632, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1860] +id = 1860 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12224, 13632, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1868] +id = 1868 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12480, 13760, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1888] +id = 1888 +startpos = 7 +name = A0BaBaFactory +position = 12928, 13760, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1889] +id = 1889 +startpos = 7 +name = LookOutTower +position = 12992, 13376, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1904] +id = 1904 +startpos = 7 +name = A0CannonTower +position = 12480, 13120, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1933] +id = 1933 +startpos = 7 +name = Sys-SensoTower01 +position = 13120, 12608, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1942] +id = 1942 +startpos = 7 +name = A0BaBaRocketPit +position = 14528, 13632, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1943] +id = 1943 +startpos = 7 +name = A0BaBaRocketPit +position = 14528, 14016, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1944] +id = 1944 +startpos = 7 +name = A0BaBaRocketPit +position = 12224, 12608, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_1945] +id = 1945 +startpos = 7 +name = A0BaBaRocketPit +position = 11968, 13632, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_1946] +id = 1946 +startpos = 7 +name = A0BaBaRocketPit +position = 11840, 14400, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_1947] +id = 1947 +startpos = 7 +name = A0BaBaBunker +position = 11712, 13760, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1948] +id = 1948 +startpos = 7 +name = A0BaBaBunker +position = 11712, 14144, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1949] +id = 1949 +startpos = 7 +name = LookOutTower +position = 14272, 13760, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1954] +id = 1954 +startpos = 7 +name = A0BaBaBunker +position = 11328, 13504, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1955] +id = 1955 +startpos = 7 +name = A0BaBaBunker +position = 12864, 12096, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1956] +id = 1956 +startpos = 7 +name = A0BaBaBunker +position = 12480, 12096, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1976] +id = 1976 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11072, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1977] +id = 1977 +startpos = 1 +name = A0HardcreteMk1CWall +position = 11072, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1980] +id = 1980 +startpos = 7 +name = A0BaBaHorizontalWall +position = 8256, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1981] +id = 1981 +startpos = 7 +name = A0BaBaHorizontalWall +position = 8256, 448, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1982] +id = 1982 +startpos = 7 +name = A0BaBaPowerGenerator +position = 8768, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2006] +id = 2006 +startpos = 7 +name = A0BaBaRocketPit +position = 8768, 2752, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_2010] +id = 2010 +startpos = 7 +name = A0BaBaRocketPit +position = 9408, 3904, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_2011] +id = 2011 +startpos = 7 +name = A0BaBaRocketPit +position = 9792, 4160, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2012] +id = 2012 +startpos = 7 +name = A0BaBaRocketPit +position = 9664, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2034] +id = 2034 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 8640, 8512, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2035] +id = 2035 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 9152, 8512, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2036] +id = 2036 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 9280, 8512, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2039] +id = 2039 +startpos = 1 +name = A0ComDroidControl +position = 9344, 6784, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2051] +id = 2051 +startpos = 1 +name = A0ResearchFacility +position = 9344, 7424, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_2120] +id = 2120 +startpos = 1 +name = WallTower02 +position = 8768, 8512, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2121] +id = 2121 +startpos = 1 +name = WallTower02 +position = 9024, 8512, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2124] +id = 2124 +startpos = 7 +name = A0BaBaGunTower +position = 10560, 15168, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2125] +id = 2125 +startpos = 7 +name = A0BaBaHorizontalWall +position = 10688, 15168, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2126] +id = 2126 +startpos = 7 +name = A0BaBaHorizontalWall +position = 10816, 15168, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2127] +id = 2127 +startpos = 7 +name = A0BaBaHorizontalWall +position = 10560, 15296, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2128] +id = 2128 +startpos = 7 +name = A0BaBaHorizontalWall +position = 10560, 15424, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2129] +id = 2129 +startpos = 7 +name = A0BaBaHorizontalWall +position = 10560, 15552, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2130] +id = 2130 +startpos = 7 +name = A0BaBaRocketPit +position = 10688, 15040, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_2131] +id = 2131 +startpos = 7 +name = A0BaBaRocketPit +position = 10432, 15296, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_2132] +id = 2132 +startpos = 7 +name = A0BaBaPowerGenerator +position = 12864, 13248, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2133] +id = 2133 +startpos = 7 +name = A0ResourceExtractor +position = 10688, 15296, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2163] +id = 2163 +startpos = 7 +name = A0BaBaBunker +position = 8896, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2164] +id = 2164 +startpos = 7 +name = A0BaBaBunker +position = 9536, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2165] +id = 2165 +startpos = 7 +name = A0BaBaRocketPit +position = 8512, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2166] +id = 2166 +startpos = 7 +name = A0BaBaRocketPit +position = 8768, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2167] +id = 2167 +startpos = 7 +name = A0BaBaRocketPit +position = 9024, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2168] +id = 2168 +startpos = 7 +name = A0BaBaFactory +position = 8704, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2242] +id = 2242 +startpos = 7 +name = LookOutTower +position = 10176, 15808, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2265] +id = 2265 +startpos = 7 +name = A0BaBaFactory +position = 8576, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2267] +id = 2267 +startpos = 7 +name = A0BaBaPowerGenerator +position = 8384, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2394] +id = 2394 +startpos = 1 +name = PillBox1 +position = 9280, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2395] +id = 2395 +startpos = 1 +name = PillBox1 +position = 9792, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2400] +id = 2400 +startpos = 1 +name = PillBox1 +position = 9536, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2402] +id = 2402 +startpos = 1 +name = GuardTower1 +position = 8896, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2403] +id = 2403 +startpos = 1 +name = GuardTower1 +position = 8896, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2404] +id = 2404 +startpos = 1 +name = GuardTower1 +position = 8896, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2405] +id = 2405 +startpos = 1 +name = Sys-SensoTower01 +position = 9920, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2408] +id = 2408 +startpos = 1 +name = GuardTower1 +position = 9664, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2425] +id = 2425 +startpos = 1 +name = PillBox1 +position = 8384, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2426] +id = 2426 +startpos = 1 +name = PillBox1 +position = 8640, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2427] +id = 2427 +startpos = 1 +name = PillBox1 +position = 8384, 6336, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2428] +id = 2428 +startpos = 1 +name = PillBox1 +position = 8640, 6336, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3259] +id = 3259 +startpos = 1 +name = PillBox3 +position = 8512, 13760, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3260] +id = 3260 +startpos = 1 +name = PillBox3 +position = 8512, 14144, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3261] +id = 3261 +startpos = 1 +name = PillBox5 +position = 8768, 13760, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3262] +id = 3262 +startpos = 1 +name = PillBox5 +position = 8768, 14144, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3264] +id = 3264 +startpos = 1 +name = GuardTower6 +position = 8896, 14528, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3277] +id = 3277 +startpos = 1 +name = WallTower02 +position = 9408, 8512, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3278] +id = 3278 +startpos = 1 +name = WallTower02 +position = 10688, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3282] +id = 3282 +startpos = 1 +name = WallTower02 +position = 11968, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3283] +id = 3283 +startpos = 1 +name = GuardTower6 +position = 12224, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3286] +id = 3286 +startpos = 1 +name = PillBox5 +position = 12480, 10304, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3287] +id = 3287 +startpos = 1 +name = PillBox5 +position = 12992, 10304, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3314] +id = 3314 +startpos = 7 +name = A0BaBaRocketPit +position = 12096, 13888, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_3315] +id = 3315 +startpos = 7 +name = A0BaBaGunTowerEND +position = 12480, 14144, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3316] +id = 3316 +startpos = 7 +name = A0BaBaGunTowerEND +position = 12480, 13888, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_3319] +id = 3319 +startpos = 7 +name = A0BabaCornerWall +position = 12096, 13632, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_3320] +id = 3320 +startpos = 7 +name = A0BabaCornerWall +position = 11968, 14400, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3321] +id = 3321 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12096, 14400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3322] +id = 3322 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12096, 13504, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3323] +id = 3323 +startpos = 7 +name = A0BaBaHorizontalWall +position = 11968, 14528, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3324] +id = 3324 +startpos = 7 +name = A0BabaCornerWall +position = 12480, 13632, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3325] +id = 3325 +startpos = 7 +name = A0BabaCornerWall +position = 12480, 14400, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_3328] +id = 3328 +startpos = 7 +name = A0BaBaBunker +position = 11712, 13248, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3329] +id = 3329 +startpos = 7 +name = A0BaBaBunker +position = 11584, 14656, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3330] +id = 3330 +startpos = 7 +name = A0BaBaBunker +position = 10688, 14400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3336] +id = 3336 +startpos = 7 +name = A0BabaCornerWall +position = 11968, 14656, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_3337] +id = 3337 +startpos = 7 +name = A0BabaCornerWall +position = 12096, 13376, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3339] +id = 3339 +startpos = 7 +name = A0BaBaRocketPit +position = 13376, 12352, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3367] +id = 3367 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12096, 14656, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3368] +id = 3368 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12224, 14656, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3369] +id = 3369 +startpos = 7 +name = A0BaBaGunTowerEND +position = 12352, 14656, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3370] +id = 3370 +startpos = 7 +name = A0BaBaHorizontalWall +position = 12224, 13376, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3372] +id = 3372 +startpos = 7 +name = A0BaBaGunTowerEND +position = 12352, 13376, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3395] +id = 3395 +startpos = 1 +name = GuardTower6 +position = 10304, 13120, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3404] +id = 3404 +startpos = 7 +name = A0BaBaRocketPit +position = 9024, 3008, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3405] +id = 3405 +startpos = 7 +name = A0BaBaRocketPit +position = 8896, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3488] +id = 3488 +startpos = 7 +name = A0CannonTower +position = 12608, 12608, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3489] +id = 3489 +startpos = 7 +name = A0CannonTower +position = 12864, 12608, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3490] +id = 3490 +startpos = 7 +name = A0CannonTower +position = 12864, 12992, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3495] +id = 3495 +startpos = 1 +name = A0TankTrap +position = 12608, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3496] +id = 3496 +startpos = 1 +name = A0TankTrap +position = 12864, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3497] +id = 3497 +startpos = 1 +name = A0TankTrap +position = 12992, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3498] +id = 3498 +startpos = 1 +name = A0TankTrap +position = 13120, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3499] +id = 3499 +startpos = 1 +name = A0TankTrap +position = 13248, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3500] +id = 3500 +startpos = 1 +name = A0TankTrap +position = 13376, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3501] +id = 3501 +startpos = 1 +name = A0TankTrap +position = 13504, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3502] +id = 3502 +startpos = 1 +name = A0TankTrap +position = 13632, 10944, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3503] +id = 3503 +startpos = 1 +name = PillBox4 +position = 13376, 10560, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3512] +id = 3512 +startpos = 1 +name = GuardTower6 +position = 10688, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3513] +id = 3513 +startpos = 1 +name = GuardTower6 +position = 10304, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3514] +id = 3514 +startpos = 1 +name = GuardTower6 +position = 10304, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3515] +id = 3515 +startpos = 1 +name = GuardTower6 +position = 10560, 8768, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3516] +id = 3516 +startpos = 1 +name = GuardTower6 +position = 11200, 9664, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3518] +id = 3518 +startpos = 1 +name = GuardTower6 +position = 9536, 9280, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3521] +id = 3521 +startpos = 7 +name = A0BaBaFlameTower +position = 8256, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3522] +id = 3522 +startpos = 7 +name = A0BaBaFlameTower +position = 9152, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3526] +id = 3526 +startpos = 1 +name = A0CyborgFactory +position = 8512, 7424, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3527] +id = 3527 +startpos = 7 +name = A0BaBaRocketPit +position = 14400, 14272, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3528] +id = 3528 +startpos = 7 +name = A0BaBaRocketPit +position = 14400, 13504, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_3529] +id = 3529 +startpos = 7 +name = A0CannonTower +position = 14016, 13376, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3530] +id = 3530 +startpos = 7 +name = A0CannonTower +position = 13760, 13504, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3531] +id = 3531 +startpos = 7 +name = A0CannonTower +position = 13376, 14272, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3532] +id = 3532 +startpos = 7 +name = A0CannonTower +position = 13376, 13760, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3533] +id = 3533 +startpos = 7 +name = A0CannonTower +position = 13376, 13120, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3535] +id = 3535 +startpos = 7 +name = A0BaBaGunTowerEND +position = 13760, 13120, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_3536] +id = 3536 +startpos = 7 +name = A0BaBaGunTowerEND +position = 14144, 13120, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3537] +id = 3537 +startpos = 7 +name = A0BaBaHorizontalWall +position = 13888, 13120, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3538] +id = 3538 +startpos = 7 +name = A0BaBaHorizontalWall +position = 14016, 13120, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3539] +id = 3539 +startpos = 7 +name = A0BaBaFlameTower +position = 12480, 13504, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3540] +id = 3540 +startpos = 1 +name = WallTower02 +position = 8640, 9792, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3541] +id = 3541 +startpos = 1 +name = WallTower02 +position = 8512, 10560, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3542] +id = 3542 +startpos = 1 +name = WallTower02 +position = 9280, 9792, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3543] +id = 3543 +startpos = 1 +name = WallTower02 +position = 9280, 10560, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3544] +id = 3544 +startpos = 1 +name = WallTower02 +position = 13120, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3545] +id = 3545 +startpos = 1 +name = A0HardcreteMk1CWall +position = 13120, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3546] +id = 3546 +startpos = 1 +name = A0HardcreteMk1CWall +position = 13248, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3547] +id = 3547 +startpos = 1 +name = WallTower02 +position = 13248, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3548] +id = 3548 +startpos = 1 +name = A0HardcreteMk1CWall +position = 13376, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3549] +id = 3549 +startpos = 1 +name = A0HardcreteMk1CWall +position = 13248, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3550] +id = 3550 +startpos = 1 +name = A0HardcreteMk1CWall +position = 14016, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3551] +id = 3551 +startpos = 1 +name = WallTower02 +position = 14144, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3552] +id = 3552 +startpos = 1 +name = A0HardcreteMk1CWall +position = 14144, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3553] +id = 3553 +startpos = 1 +name = WallTower02 +position = 14144, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3555] +id = 3555 +startpos = 1 +name = A0HardcreteMk1CWall +position = 14144, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3557] +id = 3557 +startpos = 1 +name = Sys-SensoTower01 +position = 12224, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3558] +id = 3558 +startpos = 1 +name = Emplacement-MortarPit01 +position = 11968, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3559] +id = 3559 +startpos = 1 +name = Emplacement-MortarPit01 +position = 11584, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3560] +id = 3560 +startpos = 1 +name = Emplacement-MortarPit01 +position = 11968, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3561] +id = 3561 +startpos = 1 +name = Emplacement-MortarPit01 +position = 11584, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3565] +id = 3565 +startpos = 1 +name = WallTower01 +position = 11200, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3566] +id = 3566 +startpos = 1 +name = WallTower01 +position = 11456, 11200, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3567] +id = 3567 +startpos = 1 +name = WallTower01 +position = 12608, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3568] +id = 3568 +startpos = 1 +name = WallTower01 +position = 12864, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3572] +id = 3572 +startpos = 1 +name = Sys-SensoTower01 +position = 12096, 7232, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3577] +id = 3577 +startpos = 1 +name = A0ResourceExtractor +position = 14144, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3578] +id = 3578 +startpos = 1 +name = WallTower02 +position = 14400, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3579] +id = 3579 +startpos = 1 +name = WallTower02 +position = 13888, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3582] +id = 3582 +startpos = 1 +name = A0HardcreteMk1Gate +position = 11840, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3583] +id = 3583 +startpos = 1 +name = A0HardcreteMk1Gate +position = 11072, 3392, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3584] +id = 3584 +startpos = 1 +name = A0HardcreteMk1Gate +position = 11072, 3520, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3585] +id = 3585 +startpos = 1 +name = A0HardcreteMk1Gate +position = 12736, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3586] +id = 3586 +startpos = 1 +name = A0HardcreteMk1Gate +position = 8896, 8512, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam1/sub1-1.gam b/wrf/cam1/sub1-1.gam new file mode 100644 index 0000000000000000000000000000000000000000..7f4d6abf21f65578c3a427c5e55f151becaca7aa GIT binary patch literal 52 acmYdK%uVHBfB+^a4We{_I2MVI%me^nY630* literal 0 HcmV?d00001 diff --git a/wrf/cam1/sub1-3.gam b/wrf/cam1/sub1-3.gam new file mode 100644 index 0000000000000000000000000000000000000000..dd1feb18e99a0aca3c9af84a8a2fd01d01bdb488 GIT binary patch literal 52 YcmYdK%uVHBfB+^a4Wb;N7{o>g0AJz)B>(^b literal 0 HcmV?d00001 diff --git a/wrf/cam1/sub1-3/labels.ini b/wrf/cam1/sub1-3/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam1/sub1-3/struct.ini b/wrf/cam1/sub1-3/struct.ini new file mode 100644 index 0000000..be58671 --- /dev/null +++ b/wrf/cam1/sub1-3/struct.ini @@ -0,0 +1,552 @@ +[structure_109] +id = 109 +startpos = 1 +name = A0LightFactory +position = 7360, 832, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_111] +id = 111 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6336, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_114] +id = 114 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6208, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_115] +id = 115 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6080, 2368, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_228] +id = 228 +startpos = 1 +name = A0HardcreteMk1CWall +position = 6464, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_229] +id = 229 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6080, 2240, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_231] +id = 231 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 7360, 2752, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_232] +id = 232 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6464, 2880, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_233] +id = 233 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6464, 2752, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_238] +id = 238 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5184, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_239] +id = 239 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5056, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_240] +id = 240 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5056, 4672, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_241] +id = 241 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5568, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_242] +id = 242 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5184, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_243] +id = 243 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5312, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_244] +id = 244 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5440, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_245] +id = 245 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5568, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_247] +id = 247 +startpos = 7 +name = A0BaBaGunTower +position = 5056, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_248] +id = 248 +startpos = 7 +name = A0BaBaGunTower +position = 5696, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_249] +id = 249 +startpos = 7 +name = A0BaBaGunTower +position = 6080, 5056, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_250] +id = 250 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5696, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_251] +id = 251 +startpos = 7 +name = A0BaBaHorizontalWall +position = 6080, 4928, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_261] +id = 261 +startpos = 7 +name = A0BaBaRocketPit +position = 5568, 4288, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_262] +id = 262 +startpos = 7 +name = A0BaBaRocketPit +position = 5184, 4288, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_270] +id = 270 +startpos = 7 +name = A0BaBaFactory +position = 5248, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_403] +id = 403 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6080, 2880, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_404] +id = 404 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6080, 2752, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_405] +id = 405 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6080, 2624, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_406] +id = 406 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6080, 2496, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_407] +id = 407 +startpos = 1 +name = A0HardcreteMk1CWall +position = 7360, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_408] +id = 408 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 7232, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_418] +id = 418 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5056, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_419] +id = 419 +startpos = 7 +name = A0BaBaGunTower +position = 5056, 5056, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_420] +id = 420 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5056, 4928, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_421] +id = 421 +startpos = 7 +name = A0CannonTower +position = 4544, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_426] +id = 426 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5696, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_427] +id = 427 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5824, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_428] +id = 428 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5952, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_429] +id = 429 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5824, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_430] +id = 430 +startpos = 7 +name = A0BaBaHorizontalWall +position = 5952, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_431] +id = 431 +startpos = 7 +name = A0BaBaHorizontalWall +position = 6080, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_432] +id = 432 +startpos = 7 +name = A0BaBaGunTower +position = 6080, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_433] +id = 433 +startpos = 7 +name = A0BabaCornerWall +position = 5696, 4672, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_440] +id = 440 +startpos = 7 +name = A0CannonTower +position = 5568, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_442] +id = 442 +startpos = 7 +name = A0BaBaPowerGenerator +position = 5440, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_507] +id = 507 +startpos = 1 +name = A0ResearchFacility +position = 6400, 1536, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_542] +id = 542 +startpos = 1 +name = A0CommandCentreNP +position = 6912, 768, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_543] +id = 543 +startpos = 1 +name = A0ComDroidControl +position = 6272, 2304, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_555] +id = 555 +startpos = 1 +name = WallTower01 +position = 6464, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_568] +id = 568 +startpos = 1 +name = PillBox5 +position = 6592, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_576] +id = 576 +startpos = 1 +name = Sys-SensoTower01 +position = 5952, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_582] +id = 582 +startpos = 1 +name = PillBox2 +position = 7232, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_585] +id = 585 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 7104, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_619] +id = 619 +startpos = 1 +name = WallTower01 +position = 6976, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_624] +id = 624 +startpos = 1 +name = WallTower02 +position = 6720, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_625] +id = 625 +startpos = 1 +name = WallTower02 +position = 6080, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_627] +id = 627 +startpos = 1 +name = WallTower02 +position = 7616, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_628] +id = 628 +startpos = 1 +name = WallTower02 +position = 6720, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_631] +id = 631 +startpos = 1 +name = A0RepairCentre3 +position = 7360, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_635] +id = 635 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 7360, 2880, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_643] +id = 643 +startpos = 1 +name = A0HardcreteMk1CWall +position = 6720, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_644] +id = 644 +startpos = 1 +name = A0HardcreteMk1CWall +position = 6976, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_645] +id = 645 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 6592, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_646] +id = 646 +startpos = 1 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 7104, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_647] +id = 647 +startpos = 1 +name = A0HardcreteMk1CWall +position = 6080, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_648] +id = 648 +startpos = 1 +name = A0HardcreteMk1CWall +position = 7360, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_649] +id = 649 +startpos = 1 +name = A0HardcreteMk1Gate +position = 6848, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam1/sub1-5.gam b/wrf/cam1/sub1-5.gam new file mode 100644 index 0000000000000000000000000000000000000000..dd1feb18e99a0aca3c9af84a8a2fd01d01bdb488 GIT binary patch literal 52 YcmYdK%uVHBfB+^a4Wb;N7{o>g0AJz)B>(^b literal 0 HcmV?d00001 diff --git a/wrf/cam1/sub1-5/droid.ini b/wrf/cam1/sub1-5/droid.ini new file mode 100644 index 0000000..74b6e27 --- /dev/null +++ b/wrf/cam1/sub1-5/droid.ini @@ -0,0 +1,280 @@ +[droid_462] +id = 462 +startpos = 7 +template = BaBaPeople +position = 2624, 6720, 0 +rotation = 13289, 0, 0 + +[droid_240] +id = 240 +startpos = 7 +template = BarbarianRKBuggy +position = 2880, 1600, 0 +rotation = 0, 0, 0 + +[droid_463] +id = 463 +startpos = 7 +template = BaBaPeople +position = 2624, 6848, 0 +rotation = 58072, 0, 0 + +[droid_67] +id = 67 +startpos = 7 +template = BabaRKJeep +position = 568, 3890, 0 +rotation = 33860, 0, 0 + +[droid_68] +id = 68 +startpos = 7 +template = BabaRKJeep +position = 463, 4134, 0 +rotation = 59893, 0, 0 + +[droid_69] +id = 69 +startpos = 7 +template = BabaRKJeep +position = 432, 4025, 0 +rotation = 45329, 0, 0 + +[droid_70] +id = 70 +startpos = 7 +template = BabaRKJeep +position = 471, 2751, 0 +rotation = 59529, 0, 0 + +[droid_71] +id = 71 +startpos = 7 +template = BabaRKJeep +position = 448, 2624, 0 +rotation = 49152, 0, 0 + +[droid_72] +id = 72 +startpos = 7 +template = BabaRKJeep +position = 453, 2507, 0 +rotation = 41688, 0, 0 + +[droid_73] +id = 73 +startpos = 7 +template = BabaRKJeep +position = 454, 2377, 0 +rotation = 26943, 0, 0 + +[droid_79] +id = 79 +startpos = 7 +template = BabaRKJeep +position = 1462, 3784, 0 +rotation = 5279, 0, 0 + +[droid_80] +id = 80 +startpos = 7 +template = BabaRKJeep +position = 1872, 3764, 0 +rotation = 4005, 0, 0 + +[droid_81] +id = 81 +startpos = 7 +template = BabaRKJeep +position = 1618, 3914, 0 +rotation = 16020, 0, 0 + +[droid_195] +id = 195 +startpos = 7 +template = BarbarianRKBuggy +position = 2840, 4320, 0 +rotation = 49152, 0, 0 + +[droid_196] +id = 196 +startpos = 7 +template = BarbarianRKBuggy +position = 2986, 4322, 0 +rotation = 3641, 0, 0 + +[droid_197] +id = 197 +startpos = 7 +template = BarbarianRKBuggy +position = 2992, 4450, 0 +rotation = 58254, 0, 0 + +[droid_198] +id = 198 +startpos = 7 +template = BarbarianRKBuggy +position = 2840, 4454, 0 +rotation = 57526, 0, 0 + +[droid_233] +id = 233 +startpos = 7 +template = BabaJeep +position = 3264, 1216, 0 +rotation = 0, 0, 0 + +[droid_234] +id = 234 +startpos = 7 +template = BabaJeep +position = 3136, 1216, 0 +rotation = 0, 0, 0 + +[droid_235] +id = 235 +startpos = 7 +template = BabaJeep +position = 2752, 1472, 0 +rotation = 0, 0, 0 + +[droid_236] +id = 236 +startpos = 7 +template = BarbarianRKBuggy +position = 2645, 1510, 0 +rotation = 0, 0, 0 + +[droid_237] +id = 237 +startpos = 7 +template = BarbarianRKBuggy +position = 2747, 1554, 0 +rotation = 0, 0, 0 + +[droid_238] +id = 238 +startpos = 7 +template = BarbarianRKBuggy +position = 3008, 832, 0 +rotation = 0, 0, 0 + +[droid_239] +id = 239 +startpos = 7 +template = BarbarianRKBuggy +position = 2837, 1528, 0 +rotation = 0, 0, 0 + +[droid_464] +id = 464 +startpos = 7 +template = BaBaPeople +position = 2624, 6464, 0 +rotation = 47150, 0, 0 + +[droid_241] +id = 241 +startpos = 7 +template = BarbarianRKBuggy +position = 2637, 1385, 0 +rotation = 0, 0, 0 + +[droid_242] +id = 242 +startpos = 7 +template = BarbarianRKBuggy +position = 2874, 1340, 0 +rotation = 0, 0, 0 + +[droid_417] +id = 417 +startpos = 1 +template = CyborgChain01Ground +position = 4290, 4552, 0 +rotation = 22938, 0, 0 + +[droid_418] +id = 418 +startpos = 1 +template = CyborgChain01Ground +position = 4290, 4684, 0 +rotation = 10377, 0, 0 + +[droid_419] +id = 419 +startpos = 1 +template = CyborgChain01Ground +position = 4156, 4678, 0 +rotation = 57344, 0, 0 + +[droid_420] +id = 420 +startpos = 1 +template = CyborgChain01Ground +position = 3768, 4404, 0 +rotation = 17840, 0, 0 + +[droid_421] +id = 421 +startpos = 1 +template = CyborgChain01Ground +position = 3898, 4534, 0 +rotation = 30766, 0, 0 + +[droid_422] +id = 422 +startpos = 1 +template = CyborgChain01Ground +position = 3776, 4672, 0 +rotation = 54613, 0, 0 + +[droid_423] +id = 423 +startpos = 1 +template = CyborgChain01Ground +position = 3906, 4692, 0 +rotation = 55888, 0, 0 + +[droid_456] +id = 456 +startpos = 7 +template = BabaJeep +position = 2368, 6720, 0 +rotation = 64626, 0, 0 + +[droid_457] +id = 457 +startpos = 7 +template = BabaJeep +position = 2368, 6848, 0 +rotation = 51883, 0, 0 + +[droid_458] +id = 458 +startpos = 7 +template = BaBaPeople +position = 2496, 6592, 0 +rotation = 38958, 0, 0 + +[droid_459] +id = 459 +startpos = 7 +template = BaBaPeople +position = 2496, 6848, 0 +rotation = 59346, 0, 0 + +[droid_460] +id = 460 +startpos = 7 +template = BaBaPeople +position = 2496, 6720, 0 +rotation = 55159, 0, 0 + +[droid_461] +id = 461 +startpos = 7 +template = BaBaPeople +position = 2624, 6592, 0 +rotation = 61167, 0, 0 + diff --git a/wrf/cam1/sub1-5/feature.ini b/wrf/cam1/sub1-5/feature.ini new file mode 100644 index 0000000..0233075 --- /dev/null +++ b/wrf/cam1/sub1-5/feature.ini @@ -0,0 +1,384 @@ +[feature_74] +id = 74 +position = 1856, 3520, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_75] +id = 75 +position = 1728, 3648, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_76] +id = 76 +position = 2240, 3648, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_82] +id = 82 +position = 1600, 3776, 0 +rotation = 0, 0, 0 +name = miruin2 + +[feature_84] +id = 84 +position = 1984, 3136, 0 +rotation = 0, 0, 0 +name = miruin2 + +[feature_224] +id = 224 +position = 3392, 1600, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_225] +id = 225 +position = 3520, 1728, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_226] +id = 226 +position = 2880, 1856, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_227] +id = 227 +position = 2880, 1728, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_228] +id = 228 +position = 2880, 1984, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_230] +id = 230 +position = 2880, 960, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_231] +id = 231 +position = 3008, 960, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_232] +id = 232 +position = 3392, 960, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_246] +id = 246 +position = 2624, 4416, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_247] +id = 247 +position = 2880, 4032, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_248] +id = 248 +position = 3136, 4032, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_249] +id = 249 +position = 2880, 4160, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_250] +id = 250 +position = 3136, 4160, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_283] +id = 283 +position = 4288, 7744, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_285] +id = 285 +position = 5440, 7744, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_301] +id = 301 +position = 2752, 2112, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_302] +id = 302 +position = 3264, 2752, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_303] +id = 303 +position = 2752, 2240, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_304] +id = 304 +position = 3264, 2624, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_305] +id = 305 +position = 3392, 1728, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_306] +id = 306 +position = 3264, 2368, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_307] +id = 307 +position = 2624, 3392, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_313] +id = 313 +position = 2624, 4160, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_314] +id = 314 +position = 7744, 4416, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_315] +id = 315 +position = 7744, 4544, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_316] +id = 316 +position = 6336, 4672, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_317] +id = 317 +position = 6208, 4672, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_318] +id = 318 +position = 3904, 448, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_319] +id = 319 +position = 3904, 320, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_320] +id = 320 +position = 4416, 448, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_321] +id = 321 +position = 2624, 448, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_322] +id = 322 +position = 3520, 1984, 0 +rotation = 0, 0, 0 +name = Ruin5 + +[feature_325] +id = 325 +position = 2624, 5056, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_326] +id = 326 +position = 2624, 5312, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_327] +id = 327 +position = 2624, 5440, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_328] +id = 328 +position = 2240, 6592, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_329] +id = 329 +position = 2752, 6592, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_345] +id = 345 +position = 5184, 3008, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_349] +id = 349 +position = 5184, 3264, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_350] +id = 350 +position = 5312, 3264, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_353] +id = 353 +position = 6208, 2112, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_354] +id = 354 +position = 6080, 2112, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_355] +id = 355 +position = 5568, 2112, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_362] +id = 362 +position = 1344, 2112, 0 +rotation = 0, 0, 0 +name = Ruin1 + +[feature_364] +id = 364 +position = 1600, 448, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_365] +id = 365 +position = 832, 1216, 0 +rotation = 0, 0, 0 +name = Ruin3 + +[feature_366] +id = 366 +position = 1344, 2368, 0 +rotation = 0, 0, 0 +name = Ruin4 + +[feature_381] +id = 381 +position = 3008, 704, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_382] +id = 382 +position = 3136, 704, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_383] +id = 383 +position = 3392, 704, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_430] +id = 430 +position = 5824, 7744, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_431] +id = 431 +position = 5696, 7744, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_432] +id = 432 +position = 4416, 7488, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_435] +id = 435 +position = 3904, 7488, 0 +rotation = 0, 0, 0 +name = BarbHUT + +[feature_443] +id = 443 +position = 4032, 7488, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_448] +id = 448 +position = 5952, 3264, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_451] +id = 451 +position = 6080, 3264, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_452] +id = 452 +position = 6080, 3136, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_466] +id = 466 +position = 3008, 576, 0 +rotation = 0, 0, 0 +name = OilDrum + diff --git a/wrf/cam1/sub1-5/labels.ini b/wrf/cam1/sub1-5/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam1/sub1-d.gam b/wrf/cam1/sub1-d.gam new file mode 100644 index 0000000000000000000000000000000000000000..5cae58bbe020bef8eb8e64a9fbdd7313f03d4f47 GIT binary patch literal 52 ZcmYdK%uVHBfB+^a4Wa^oxBC0(AfY literal 0 HcmV?d00001 diff --git a/wrf/cam1/sub1-d/droid.ini b/wrf/cam1/sub1-d/droid.ini new file mode 100644 index 0000000..0fe4320 --- /dev/null +++ b/wrf/cam1/sub1-d/droid.ini @@ -0,0 +1,490 @@ +[droid_726] +id = 726 +startpos = 1 +template = NP-H-HvyCannon-Hover +position = 960, 1472, 0 +rotation = 0, 0, 0 + +[droid_725] +id = 725 +startpos = 1 +template = NP-M-LtAT-Hover +position = 1216, 1600, 0 +rotation = 0, 0, 0 + +[droid_727] +id = 727 +startpos = 1 +template = NP-M-MG3-Hover +position = 960, 1344, 0 +rotation = 0, 0, 0 + +[droid_466] +id = 466 +startpos = 1 +template = CyborgRkt01Ground +position = 5312, 7616, 0 +rotation = 0, 0, 0 + +[droid_467] +id = 467 +startpos = 1 +template = CyborgRkt01Ground +position = 5440, 7616, 0 +rotation = 0, 0, 0 + +[droid_468] +id = 468 +startpos = 1 +template = CyborgRkt01Ground +position = 5568, 7616, 0 +rotation = 0, 0, 0 + +[droid_469] +id = 469 +startpos = 1 +template = CyborgRkt01Ground +position = 5312, 7488, 0 +rotation = 0, 0, 0 + +[droid_470] +id = 470 +startpos = 1 +template = CyborgRkt01Ground +position = 5440, 7488, 0 +rotation = 0, 0, 0 + +[droid_471] +id = 471 +startpos = 1 +template = CyborgRkt01Ground +position = 5568, 7360, 0 +rotation = 0, 0, 0 + +[droid_472] +id = 472 +startpos = 1 +template = CyborgRkt01Ground +position = 5312, 7360, 0 +rotation = 0, 0, 0 + +[droid_473] +id = 473 +startpos = 1 +template = CyborgRkt01Ground +position = 5568, 7488, 0 +rotation = 0, 0, 0 + +[droid_474] +id = 474 +startpos = 1 +template = CyborgRkt01Ground +position = 5440, 7360, 0 +rotation = 0, 0, 0 + +[droid_475] +id = 475 +startpos = 1 +template = CyborgRkt01Ground +position = 5184, 6720, 0 +rotation = 0, 0, 0 + +[droid_476] +id = 476 +startpos = 1 +template = CyborgRkt01Ground +position = 5312, 6720, 0 +rotation = 0, 0, 0 + +[droid_477] +id = 477 +startpos = 1 +template = CyborgRkt01Ground +position = 5056, 6720, 0 +rotation = 0, 0, 0 + +[droid_478] +id = 478 +startpos = 1 +template = CyborgRkt01Ground +position = 5056, 6848, 0 +rotation = 0, 0, 0 + +[droid_479] +id = 479 +startpos = 1 +template = CyborgRkt01Ground +position = 5184, 6848, 0 +rotation = 0, 0, 0 + +[droid_480] +id = 480 +startpos = 1 +template = CyborgRkt01Ground +position = 5312, 6848, 0 +rotation = 0, 0, 0 + +[droid_481] +id = 481 +startpos = 1 +template = CyborgRkt01Ground +position = 5056, 6976, 0 +rotation = 0, 0, 0 + +[droid_482] +id = 482 +startpos = 1 +template = CyborgRkt01Ground +position = 5184, 6976, 0 +rotation = 0, 0, 0 + +[droid_483] +id = 483 +startpos = 1 +template = CyborgRkt01Ground +position = 5312, 6976, 0 +rotation = 0, 0, 0 + +[droid_676] +id = 676 +startpos = 1 +template = NP-M-CON-HalfTrack +position = 4927, 3905, 0 +rotation = 0, 0, 0 + +[droid_677] +id = 677 +startpos = 1 +template = NP-M-HvyMortar-Halftrack +position = 4288, 15296, 0 +rotation = 49516, 0, 0 + +[droid_678] +id = 678 +startpos = 1 +template = NP-M-HvyMortar-Halftrack +position = 4288, 15424, 0 +rotation = 48242, 0, 0 + +[droid_679] +id = 679 +startpos = 1 +template = NP-M-HvyMortar-Halftrack +position = 4175, 15300, 0 +rotation = 48970, 0, 0 + +[droid_680] +id = 680 +startpos = 1 +template = NP-M-HvyMortar-Halftrack +position = 4160, 15424, 0 +rotation = 48788, 0, 0 + +[droid_681] +id = 681 +startpos = 1 +template = NP-M-Sensor-Wheels +position = 3264, 15296, 0 +rotation = 48970, 0, 0 + +[droid_682] +id = 682 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 3264, 15424, 0 +rotation = 48424, 0, 0 + +[droid_683] +id = 683 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 3392, 15296, 0 +rotation = 47696, 0, 0 + +[droid_684] +id = 684 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 3392, 15424, 0 +rotation = 48424, 0, 0 + +[droid_685] +id = 685 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 3264, 13760, 0 +rotation = 0, 0, 0 + +[droid_686] +id = 686 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 3392, 13760, 0 +rotation = 0, 0, 0 + +[droid_687] +id = 687 +startpos = 1 +template = NP-M-MdCannon-Tracks +position = 3392, 13888, 0 +rotation = 0, 0, 0 + +[droid_688] +id = 688 +startpos = 1 +template = NP-M-Sensor-Wheels +position = 3264, 13888, 0 +rotation = 0, 0, 0 + +[droid_689] +id = 689 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 4800, 12992, 0 +rotation = 46603, 0, 0 + +[droid_690] +id = 690 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 4800, 13120, 0 +rotation = 50790, 0, 0 + +[droid_691] +id = 691 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 4800, 13248, 0 +rotation = 46967, 0, 0 + +[droid_692] +id = 692 +startpos = 1 +template = NP-M-HvyMortar-Halftrack +position = 5312, 12992, 0 +rotation = 48424, 0, 0 + +[droid_693] +id = 693 +startpos = 1 +template = NP-M-HvyMortar-Halftrack +position = 5312, 13120, 0 +rotation = 48606, 0, 0 + +[droid_694] +id = 694 +startpos = 1 +template = NP-M-HvyMortar-Halftrack +position = 5181, 13134, 0 +rotation = 49880, 0, 0 + +[droid_695] +id = 695 +startpos = 1 +template = NP-M-HvyMortar-Halftrack +position = 5184, 12992, 0 +rotation = 49152, 0, 0 + +[droid_696] +id = 696 +startpos = 1 +template = NP-L-MRLS-Halftrack +position = 4544, 8256, 0 +rotation = 16020, 0, 0 + +[droid_697] +id = 697 +startpos = 1 +template = NP-L-MRLS-Halftrack +position = 4544, 8384, 0 +rotation = 19115, 0, 0 + +[droid_698] +id = 698 +startpos = 1 +template = NP-L-MRLS-Halftrack +position = 4672, 8256, 0 +rotation = 15292, 0, 0 + +[droid_699] +id = 699 +startpos = 1 +template = NP-L-MRLS-Halftrack +position = 4672, 8384, 0 +rotation = 17112, 0, 0 + +[droid_700] +id = 700 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 4928, 8256, 0 +rotation = 20571, 0, 0 + +[droid_701] +id = 701 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 4928, 8384, 0 +rotation = 12379, 0, 0 + +[droid_702] +id = 702 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 4800, 8256, 0 +rotation = 15656, 0, 0 + +[droid_703] +id = 703 +startpos = 1 +template = NP-M-MdCannon-Halftrack +position = 4800, 8384, 0 +rotation = 12561, 0, 0 + +[droid_704] +id = 704 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 6336, 7232, 0 +rotation = 49334, 0, 0 + +[droid_705] +id = 705 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 6336, 7360, 0 +rotation = 49698, 0, 0 + +[droid_706] +id = 706 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 6336, 7488, 0 +rotation = 48242, 0, 0 + +[droid_707] +id = 707 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 6464, 7232, 0 +rotation = 48788, 0, 0 + +[droid_708] +id = 708 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 6464, 7360, 0 +rotation = 49334, 0, 0 + +[droid_709] +id = 709 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 6464, 7488, 0 +rotation = 50608, 0, 0 + +[droid_710] +id = 710 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 6592, 7360, 0 +rotation = 49334, 0, 0 + +[droid_711] +id = 711 +startpos = 1 +template = NP-H-MdCannon-Tracks +position = 6592, 7488, 0 +rotation = 48060, 0, 0 + +[droid_712] +id = 712 +startpos = 1 +template = NP-M-LtAT-Hover +position = 2752, 12352, 0 +rotation = 0, 0, 0 + +[droid_713] +id = 713 +startpos = 1 +template = NP-M-LtAT-Hover +position = 2624, 12352, 0 +rotation = 0, 0, 0 + +[droid_714] +id = 714 +startpos = 1 +template = NP-M-MG3-Hover +position = 2752, 12096, 0 +rotation = 29855, 0, 0 + +[droid_715] +id = 715 +startpos = 1 +template = NP-M-MG3-Hover +position = 2624, 12096, 0 +rotation = 25850, 0, 0 + +[droid_716] +id = 716 +startpos = 1 +template = NP-H-HvyCannon-Hover +position = 3904, 2368, 0 +rotation = 0, 0, 0 + +[droid_717] +id = 717 +startpos = 1 +template = NP-H-HvyCannon-Hover +position = 4032, 2368, 0 +rotation = 0, 0, 0 + +[droid_718] +id = 718 +startpos = 1 +template = NP-H-HvyCannon-Hover +position = 3904, 2496, 0 +rotation = 0, 0, 0 + +[droid_719] +id = 719 +startpos = 1 +template = NP-H-HvyCannon-Hover +position = 4032, 2496, 0 +rotation = 0, 0, 0 + +[droid_720] +id = 720 +startpos = 1 +template = NP-M-MG3-Hover +position = 3904, 2240, 0 +rotation = 0, 0, 0 + +[droid_721] +id = 721 +startpos = 1 +template = NP-M-MG3-Hover +position = 4032, 2240, 0 +rotation = 0, 0, 0 + +[droid_722] +id = 722 +startpos = 1 +template = NP-M-LtAT-Hover +position = 1088, 1472, 0 +rotation = 0, 0, 0 + +[droid_723] +id = 723 +startpos = 1 +template = NP-M-LtAT-Hover +position = 1216, 1472, 0 +rotation = 0, 0, 0 + +[droid_724] +id = 724 +startpos = 1 +template = NP-M-LtAT-Hover +position = 1088, 1600, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam1/sub1-d/feature.ini b/wrf/cam1/sub1-d/feature.ini new file mode 100644 index 0000000..70b0aa6 --- /dev/null +++ b/wrf/cam1/sub1-d/feature.ini @@ -0,0 +1,180 @@ +[feature_525] +id = 525 +position = 7488, 5056, 0 +rotation = 63716, 0, 0 +name = Crane + +[feature_526] +id = 526 +position = 6976, 4544, 0 +rotation = 24576, 0, 0 +name = Crane + +[feature_527] +id = 527 +position = 7552, 5312, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_528] +id = 528 +position = 7232, 5312, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_529] +id = 529 +position = 6720, 4544, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_530] +id = 530 +position = 4736, 3136, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_531] +id = 531 +position = 4736, 3264, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_555] +id = 555 +position = 6080, 15424, 0 +rotation = 0, 0, 0 +name = Crate + +[feature_574] +id = 574 +position = 6144, 15680, 0 +rotation = 0, 0, 0 +name = BarbTechRuin + +[feature_576] +id = 576 +position = 5504, 15808, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_577] +id = 577 +position = 6144, 15808, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_578] +id = 578 +position = 6336, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_579] +id = 579 +position = 6336, 15680, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_580] +id = 580 +position = 5312, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_581] +id = 581 +position = 6464, 15680, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_582] +id = 582 +position = 6464, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_589] +id = 589 +position = 2368, 3584, 0 +rotation = 0, 0, 0 +name = WreckedTankerV + +[feature_594] +id = 594 +position = 2368, 3136, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_595] +id = 595 +position = 2624, 4416, 0 +rotation = 0, 0, 0 +name = Boulder1 + +[feature_596] +id = 596 +position = 2496, 4416, 0 +rotation = 0, 0, 0 +name = Boulder2 + +[feature_744] +id = 744 +position = 960, 6336, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_745] +id = 745 +position = 1088, 6208, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_746] +id = 746 +position = 960, 6464, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_747] +id = 747 +position = 1088, 6464, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_748] +id = 748 +position = 1216, 6464, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_749] +id = 749 +position = 960, 6592, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_750] +id = 750 +position = 1088, 6592, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_751] +id = 751 +position = 1216, 6592, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_752] +id = 752 +position = 832, 6720, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_754] +id = 754 +position = 1088, 6336, 0 +rotation = 0, 0, 0 +name = OilDrum + diff --git a/wrf/cam1/sub1-d/labels.ini b/wrf/cam1/sub1-d/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/cam2b.gam b/wrf/cam2/cam2b.gam new file mode 100644 index 0000000000000000000000000000000000000000..720b2d1487fcb41ee97d7c02f4b9d60855698822 GIT binary patch literal 52 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 Zc literal 0 HcmV?d00001 diff --git a/wrf/cam2/cam2c.gam b/wrf/cam2/cam2c.gam new file mode 100644 index 0000000000000000000000000000000000000000..4b19c6402ce1d83cedf0a6c17dc7b284e40c4bc1 GIT binary patch literal 52 YcmYdK%uVHBfB;4)4Wb&L7{o>g0BpJfqyPW_ literal 0 HcmV?d00001 diff --git a/wrf/cam2/cam2c/droid.ini b/wrf/cam2/cam2c/droid.ini new file mode 100644 index 0000000..5b28e38 --- /dev/null +++ b/wrf/cam2/cam2c/droid.ini @@ -0,0 +1,462 @@ +[droid_2283] +id = 2283 +startpos = 2 +template = CO-M-Sensor-T +position = 3904, 960, 0 +rotation = 0, 0, 0 + +[droid_2316] +id = 2316 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 1598, 3516, 0 +rotation = 0, 0, 0 + +[droid_2318] +id = 2318 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 2114, 3520, 0 +rotation = 0, 0, 0 + +[droid_2691] +id = 2691 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 6976, 10688, 0 +rotation = 0, 0, 0 + +[droid_2692] +id = 2692 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 6464, 11328, 0 +rotation = 0, 0, 0 + +[droid_2693] +id = 2693 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 4928, 11328, 0 +rotation = 32768, 0, 0 + +[droid_2695] +id = 2695 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 5444, 10950, 0 +rotation = 0, 0, 0 + +[droid_2703] +id = 2703 +startpos = 2 +template = CO-M-Sensor-T +position = 1216, 12352, 0 +rotation = 0, 0, 0 + +[droid_3458] +id = 3458 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 5440, 6080, 0 +rotation = 0, 0, 0 + +[droid_3467] +id = 3467 +startpos = 2 +template = CO-M-Con-T +position = 5184, 6080, 0 +rotation = 0, 0, 0 + +[droid_3468] +id = 3468 +startpos = 2 +template = CO-M-Con-T +position = 5184, 6336, 0 +rotation = 0, 0, 0 + +[droid_3470] +id = 3470 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 5312, 5696, 0 +rotation = 0, 0, 0 + +[droid_3476] +id = 3476 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4288, 5312, 0 +rotation = 0, 0, 0 + +[droid_3481] +id = 3481 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 5184, 7104, 0 +rotation = 0, 0, 0 + +[droid_3482] +id = 3482 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 5183, 7001, 0 +rotation = 0, 0, 0 + +[droid_3487] +id = 3487 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4800, 8384, 0 +rotation = 0, 0, 0 + +[droid_3488] +id = 3488 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4928, 8384, 0 +rotation = 0, 0, 0 + +[droid_3662] +id = 3662 +startpos = 2 +template = Cyb-Chain-GROUND +position = 4415, 703, 0 +rotation = 0, 0, 0 + +[droid_3663] +id = 3663 +startpos = 2 +template = Cyb-Chain-GROUND +position = 4416, 832, 0 +rotation = 0, 0, 0 + +[droid_3664] +id = 3664 +startpos = 2 +template = Cyb-Chain-GROUND +position = 4288, 704, 0 +rotation = 0, 0, 0 + +[droid_3665] +id = 3665 +startpos = 2 +template = Cyb-Chain-GROUND +position = 4288, 832, 0 +rotation = 0, 0, 0 + +[droid_3969] +id = 3969 +startpos = 2 +template = Cyb-Chain-GROUND +position = 960, 10816, 0 +rotation = 0, 0, 0 + +[droid_3970] +id = 3970 +startpos = 2 +template = Cyb-Chain-GROUND +position = 960, 10944, 0 +rotation = 0, 0, 0 + +[droid_3971] +id = 3971 +startpos = 2 +template = Cyb-Chain-GROUND +position = 960, 11072, 0 +rotation = 0, 0, 0 + +[droid_3972] +id = 3972 +startpos = 2 +template = Cyb-Chain-GROUND +position = 1060, 11087, 0 +rotation = 0, 0, 0 + +[droid_3973] +id = 3973 +startpos = 2 +template = CO-M-Sensor-T +position = 1088, 10944, 0 +rotation = 0, 0, 0 + +[droid_3974] +id = 3974 +startpos = 2 +template = Cyb-Chain-GROUND +position = 1088, 12224, 0 +rotation = 0, 0, 0 + +[droid_3975] +id = 3975 +startpos = 2 +template = Cyb-Chain-GROUND +position = 1089, 12474, 0 +rotation = 0, 0, 0 + +[droid_3976] +id = 3976 +startpos = 2 +template = Cyb-Chain-GROUND +position = 1088, 12352, 0 +rotation = 0, 0, 0 + +[droid_3977] +id = 3977 +startpos = 2 +template = Cyb-Chain-GROUND +position = 1216, 12608, 0 +rotation = 0, 0, 0 + +[droid_4321] +id = 4321 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 1600, 3392, 0 +rotation = 0, 0, 0 + +[droid_4322] +id = 4322 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 2112, 3392, 0 +rotation = 0, 0, 0 + +[droid_4323] +id = 4323 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 3008, 2752, 0 +rotation = 0, 0, 0 + +[droid_4324] +id = 4324 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 3264, 2752, 0 +rotation = 0, 0, 0 + +[droid_4326] +id = 4326 +startpos = 2 +template = CO-M-HMG-T +position = 3904, 1088, 0 +rotation = 0, 0, 0 + +[droid_4329] +id = 4329 +startpos = 2 +template = CO-M-Bomb2-VTOL +position = 2240, 1734, 0 +rotation = 17294, 0, 0 + +[droid_4330] +id = 4330 +startpos = 2 +template = CO-M-Bomb2-VTOL +position = 2238, 1470, 0 +rotation = 15110, 0, 0 + +[droid_4331] +id = 4331 +startpos = 2 +template = CO-M-Bomb2-VTOL +position = 2240, 1984, 0 +rotation = 16020, 0, 0 + +[droid_4352] +id = 4352 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 7488, 8128, 0 +rotation = 0, 0, 0 + +[droid_4353] +id = 4353 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 7488, 8000, 0 +rotation = 0, 0, 0 + +[droid_4354] +id = 4354 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 7360, 8000, 0 +rotation = 0, 0, 0 + +[droid_4357] +id = 4357 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 7744, 7616, 0 +rotation = 0, 0, 0 + +[droid_4358] +id = 4358 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 7872, 7616, 0 +rotation = 0, 0, 0 + +[droid_4371] +id = 4371 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6976, 5824, 0 +rotation = 0, 0, 0 + +[droid_4372] +id = 4372 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6976, 5952, 0 +rotation = 0, 0, 0 + +[droid_4373] +id = 4373 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6848, 5952, 0 +rotation = 0, 0, 0 + +[droid_4374] +id = 4374 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6848, 5824, 0 +rotation = 0, 0, 0 + +[droid_4375] +id = 4375 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6848, 4160, 0 +rotation = 0, 0, 0 + +[droid_4376] +id = 4376 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6976, 4160, 0 +rotation = 0, 0, 0 + +[droid_4377] +id = 4377 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6848, 4288, 0 +rotation = 0, 0, 0 + +[droid_4378] +id = 4378 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6976, 4288, 0 +rotation = 0, 0, 0 + +[droid_4379] +id = 4379 +startpos = 2 +template = CO-M-HPVCannon-Tracks +position = 832, 4544, 0 +rotation = 0, 0, 0 + +[droid_4380] +id = 4380 +startpos = 2 +template = CO-M-HPVCannon-Tracks +position = 960, 4544, 0 +rotation = 0, 0, 0 + +[droid_4381] +id = 4381 +startpos = 2 +template = CO-M-HPVCannon-Tracks +position = 832, 4672, 0 +rotation = 0, 0, 0 + +[droid_4382] +id = 4382 +startpos = 2 +template = CO-M-HPVCannon-Tracks +position = 960, 4672, 0 +rotation = 0, 0, 0 + +[droid_4386] +id = 4386 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 3136, 10176, 0 +rotation = 0, 0, 0 + +[droid_4387] +id = 4387 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 3904, 10176, 0 +rotation = 0, 0, 0 + +[droid_4433] +id = 4433 +startpos = 2 +template = CO-M-Repair-T +position = 4672, 5824, 0 +rotation = 0, 0, 0 + +[droid_4434] +id = 4434 +startpos = 2 +template = CO-M-Repair-T +position = 3776, 5184, 0 +rotation = 0, 0, 0 + +[droid_4440] +id = 4440 +startpos = 2 +template = CO-H-Command-Track +position = 1216, 11072, 0 +rotation = 0, 0, 0 + +[droid_4441] +id = 4441 +startpos = 2 +template = CO-H-Command-Track +position = 1216, 12480, 0 +rotation = 0, 0, 0 + +[droid_4643] +id = 4643 +startpos = 2 +template = CO-L-RotMG-VTOL +position = 2244, 2230, 0 +rotation = 17294, 0, 0 + +[droid_4644] +id = 4644 +startpos = 2 +template = CO-L-RotMG-VTOL +position = 2236, 2496, 0 +rotation = 15292, 0, 0 + +[droid_4693] +id = 4693 +startpos = 7 +template = BaBaCivilian +position = 1332, 11060, 0 +rotation = 0, 0, 0 + +[droid_4694] +id = 4694 +startpos = 7 +template = BaBaCivilian +position = 1332, 11202, 0 +rotation = 0, 0, 0 + +[droid_4695] +id = 4695 +startpos = 7 +template = BaBaCivilian +position = 1480, 11204, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam2/cam2c/feature.ini b/wrf/cam2/cam2c/feature.ini new file mode 100644 index 0000000..70d114f --- /dev/null +++ b/wrf/cam2/cam2c/feature.ini @@ -0,0 +1,1110 @@ +[feature_636] +id = 636 +position = 4160, 9536, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_639] +id = 639 +position = 5824, 9536, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_644] +id = 644 +position = 5504, 9408, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_646] +id = 646 +position = 3520, 11200, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_649] +id = 649 +position = 4288, 10304, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_651] +id = 651 +position = 3840, 9024, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_653] +id = 653 +position = 4352, 10560, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_938] +id = 938 +position = 8000, 4928, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_943] +id = 943 +position = 1472, 5568, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_945] +id = 945 +position = 1600, 13504, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_946] +id = 946 +position = 1600, 12608, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_949] +id = 949 +position = 7872, 13760, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_951] +id = 951 +position = 7872, 9536, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_955] +id = 955 +position = 4928, 3520, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_958] +id = 958 +position = 5440, 4928, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_964] +id = 964 +position = 7232, 6080, 0 +rotation = 16384, 0, 0 +name = building3 + +[feature_966] +id = 966 +position = 8064, 5312, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_970] +id = 970 +position = 7936, 2496, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_975] +id = 975 +position = 4864, 1344, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_978] +id = 978 +position = 5440, 9024, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_982] +id = 982 +position = 4928, 8768, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_984] +id = 984 +position = 7424, 9408, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_988] +id = 988 +position = 4928, 12608, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_989] +id = 989 +position = 3904, 12224, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_990] +id = 990 +position = 2496, 11200, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_993] +id = 993 +position = 1600, 10944, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_994] +id = 994 +position = 1600, 10304, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_996] +id = 996 +position = 2496, 10432, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1006] +id = 1006 +position = 1344, 2880, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1035] +id = 1035 +position = 7360, 12224, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1037] +id = 1037 +position = 5888, 12480, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_1038] +id = 1038 +position = 3200, 12224, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_1039] +id = 1039 +position = 2304, 14016, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_1041] +id = 1041 +position = 4224, 5696, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_1042] +id = 1042 +position = 3904, 6208, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1043] +id = 1043 +position = 3776, 4928, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1044] +id = 1044 +position = 4352, 4032, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1046] +id = 1046 +position = 3840, 8640, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1076] +id = 1076 +position = 8000, 6336, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1078] +id = 1078 +position = 5568, 6976, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1079] +id = 1079 +position = 4288, 4928, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1089] +id = 1089 +position = 1536, 12096, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_1092] +id = 1092 +position = 3072, 14144, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1095] +id = 1095 +position = 3776, 13888, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_1097] +id = 1097 +position = 4928, 14016, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1100] +id = 1100 +position = 7360, 13504, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1101] +id = 1101 +position = 3776, 7104, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1103] +id = 1103 +position = 4352, 7104, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_1104] +id = 1104 +position = 4160, 7360, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1106] +id = 1106 +position = 2880, 7872, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1107] +id = 1107 +position = 4224, 7872, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1108] +id = 1108 +position = 3520, 9536, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1109] +id = 1109 +position = 4928, 13376, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1110] +id = 1110 +position = 3648, 13248, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1111] +id = 1111 +position = 4160, 13504, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1120] +id = 1120 +position = 7936, 3520, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1121] +id = 1121 +position = 7232, 5056, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1122] +id = 1122 +position = 7168, 5696, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1124] +id = 1124 +position = 7616, 5568, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1126] +id = 1126 +position = 6272, 5824, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_1131] +id = 1131 +position = 2112, 7104, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1275] +id = 1275 +position = 1600, 13248, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_1992] +id = 1992 +position = 7488, 4416, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_1993] +id = 1993 +position = 6720, 4416, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_1995] +id = 1995 +position = 5184, 4416, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_2021] +id = 2021 +position = 6720, 1088, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2023] +id = 2023 +position = 6720, 1728, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2025] +id = 2025 +position = 6720, 3392, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2026] +id = 2026 +position = 6720, 3904, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2029] +id = 2029 +position = 6336, 6464, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2032] +id = 2032 +position = 6720, 9408, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2036] +id = 2036 +position = 6720, 12224, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2037] +id = 2037 +position = 6720, 12608, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2039] +id = 2039 +position = 6720, 14784, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2040] +id = 2040 +position = 6720, 15168, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2041] +id = 2041 +position = 6720, 15808, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2043] +id = 2043 +position = 1088, 4416, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_2044] +id = 2044 +position = 1088, 1088, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2045] +id = 2045 +position = 1088, 448, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2046] +id = 2046 +position = 1088, 1728, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2047] +id = 2047 +position = 1088, 2496, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2048] +id = 2048 +position = 1088, 3392, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2052] +id = 2052 +position = 1088, 6848, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2053] +id = 2053 +position = 1088, 7488, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2058] +id = 2058 +position = 1088, 11328, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2059] +id = 2059 +position = 1088, 12096, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2060] +id = 2060 +position = 1088, 12608, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2061] +id = 2061 +position = 1088, 14016, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2063] +id = 2063 +position = 1088, 15040, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2064] +id = 2064 +position = 1088, 15808, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2066] +id = 2066 +position = 1088, 5824, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2067] +id = 2067 +position = 1088, 5184, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_2068] +id = 2068 +position = 1088, 10688, 0 +rotation = 60075, 0, 0 +name = Pylon + +[feature_2069] +id = 2069 +position = 2496, 15808, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_2070] +id = 2070 +position = 3392, 15936, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_2073] +id = 2073 +position = 3520, 16064, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_2074] +id = 2074 +position = 4224, 12992, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_2075] +id = 2075 +position = 3904, 12608, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_2076] +id = 2076 +position = 4160, 12864, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_2077] +id = 2077 +position = 7488, 14272, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_2079] +id = 2079 +position = 5312, 13760, 0 +rotation = 0, 0, 0 +name = WreckedBuilding16 + +[feature_2080] +id = 2080 +position = 5184, 12480, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_2087] +id = 2087 +position = 4352, 13824, 0 +rotation = 0, 0, 0 +name = WreckedBuilding17 + +[feature_2088] +id = 2088 +position = 4928, 14912, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_2089] +id = 2089 +position = 6976, 12608, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_2090] +id = 2090 +position = 6848, 15936, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_2095] +id = 2095 +position = 7296, 13120, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_2098] +id = 2098 +position = 7168, 12672, 0 +rotation = 0, 0, 0 +name = WreckedBuilding9 + +[feature_2099] +id = 2099 +position = 2496, 11968, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_2126] +id = 2126 +position = 3392, 8128, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_2128] +id = 2128 +position = 3520, 8000, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_2129] +id = 2129 +position = 3264, 8000, 0 +rotation = 0, 0, 0 +name = Pickup + +[feature_2130] +id = 2130 +position = 5056, 5824, 0 +rotation = 0, 0, 0 +name = Pickup + +[feature_2132] +id = 2132 +position = 3328, 7808, 0 +rotation = 0, 0, 0 +name = WreckedBuilding17 + +[feature_2133] +id = 2133 +position = 5376, 7808, 0 +rotation = 0, 0, 0 +name = WreckedBuilding9 + +[feature_2136] +id = 2136 +position = 3840, 5760, 0 +rotation = 0, 0, 0 +name = WreckedBuilding17 + +[feature_2139] +id = 2139 +position = 3776, 6464, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_2142] +id = 2142 +position = 4416, 6464, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_2143] +id = 2143 +position = 5312, 4288, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_2145] +id = 2145 +position = 1216, 6208, 0 +rotation = 5461, 0, 0 +name = Pickup + +[feature_2147] +id = 2147 +position = 704, 5696, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_2151] +id = 2151 +position = 4928, 5440, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_2153] +id = 2153 +position = 6080, 4928, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_2156] +id = 2156 +position = 6080, 5440, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_2157] +id = 2157 +position = 5824, 5056, 0 +rotation = 0, 0, 0 +name = Pickup + +[feature_2158] +id = 2158 +position = 6336, 5312, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_2161] +id = 2161 +position = 4544, 4544, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_2164] +id = 2164 +position = 5056, 2880, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_2165] +id = 2165 +position = 4800, 3264, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_2169] +id = 2169 +position = 6208, 4032, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_2171] +id = 2171 +position = 7232, 3904, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_2172] +id = 2172 +position = 7360, 3904, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_2173] +id = 2173 +position = 7360, 2880, 0 +rotation = 32768, 0, 0 +name = Chevy + +[feature_2178] +id = 2178 +position = 8000, 960, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_2183] +id = 2183 +position = 7232, 1216, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_2200] +id = 2200 +position = 2112, 1088, 0 +rotation = 0, 0, 0 +name = Crane + +[feature_2201] +id = 2201 +position = 2624, 1600, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_2203] +id = 2203 +position = 2112, 1600, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_2544] +id = 2544 +position = 1920, 2496, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_2545] +id = 2545 +position = 2048, 2240, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_2546] +id = 2546 +position = 2048, 1984, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_2679] +id = 2679 +position = 4928, 11584, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_3280] +id = 3280 +position = 5184, 2368, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_3281] +id = 3281 +position = 5184, 2240, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_4074] +id = 4074 +position = 7296, 3520, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_4076] +id = 4076 +position = 8064, 15936, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_4645] +id = 4645 +position = 2752, 4544, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4646] +id = 4646 +position = 2880, 4544, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4647] +id = 4647 +position = 3008, 4416, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4648] +id = 4648 +position = 2880, 4672, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4649] +id = 4649 +position = 3008, 4800, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4650] +id = 4650 +position = 1984, 2624, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4651] +id = 4651 +position = 2112, 2752, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4652] +id = 4652 +position = 1984, 2880, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4653] +id = 4653 +position = 2112, 3008, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4654] +id = 4654 +position = 1984, 3136, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4656] +id = 4656 +position = 7104, 7488, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4657] +id = 4657 +position = 7232, 7488, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4658] +id = 4658 +position = 7104, 7616, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4685] +id = 4685 +position = 4928, 8000, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_4715] +id = 4715 +position = 1856, 448, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4716] +id = 4716 +position = 1728, 448, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4717] +id = 4717 +position = 1600, 448, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4718] +id = 4718 +position = 1472, 448, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4719] +id = 4719 +position = 1472, 576, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4720] +id = 4720 +position = 1600, 576, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4721] +id = 4721 +position = 1728, 576, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4722] +id = 4722 +position = 1856, 576, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4723] +id = 4723 +position = 1472, 704, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4724] +id = 4724 +position = 1600, 704, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4725] +id = 4725 +position = 832, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4726] +id = 4726 +position = 960, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4727] +id = 4727 +position = 832, 15936, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4728] +id = 4728 +position = 960, 15936, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4729] +id = 4729 +position = 704, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4730] +id = 4730 +position = 704, 15936, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4731] +id = 4731 +position = 7104, 8000, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4733] +id = 4733 +position = 7104, 8128, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4734] +id = 4734 +position = 7232, 8128, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4735] +id = 4735 +position = 7104, 8256, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4736] +id = 4736 +position = 7232, 8256, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4737] +id = 4737 +position = 6976, 7488, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4738] +id = 4738 +position = 6976, 7616, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4739] +id = 4739 +position = 7104, 7744, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4740] +id = 4740 +position = 7104, 7872, 0 +rotation = 0, 0, 0 +name = OilDrum + diff --git a/wrf/cam2/cam2c/game.map b/wrf/cam2/cam2c/game.map new file mode 100644 index 0000000000000000000000000000000000000000..dcd15a99fbfefd10d89da14c53674339786dbc14 GIT binary patch literal 49852 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 Zc literal 0 HcmV?d00001 diff --git a/wrf/cam2/cam2start.gam b/wrf/cam2/cam2start.gam new file mode 100644 index 0000000000000000000000000000000000000000..83d2362dac7a33b515ee0af4785279cbbf9a779b GIT binary patch literal 52 YcmYdK%uVHBKmZ3I6NDR}7)W6N0DY1JBLDyZ literal 0 HcmV?d00001 diff --git a/wrf/cam2/cam2start/droid.ini b/wrf/cam2/cam2start/droid.ini new file mode 100644 index 0000000..7e10eb1 --- /dev/null +++ b/wrf/cam2/cam2start/droid.ini @@ -0,0 +1,217 @@ +[droid_4704] +id = 4704 +startpos = 0 +template = P0cam3PyHPVcanTrk +position = 12096, 11968, 0 +rotation = 31312, 0, 0 + +[droid_4112] +id = 4112 +startpos = 2 +template = Cyb-Chain-GROUND +position = 12096, 9024, 0 +rotation = 0, 0, 0 + +[droid_4113] +id = 4113 +startpos = 2 +template = Cyb-Chain-GROUND +position = 12224, 9024, 0 +rotation = 0, 0, 0 + +[droid_4121] +id = 4121 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 12096, 9536, 0 +rotation = 0, 0, 0 + +[droid_4122] +id = 4122 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 12224, 9536, 0 +rotation = 0, 0, 0 + +[droid_4129] +id = 4129 +startpos = 2 +template = CO-M-Sensor-T +position = 10432, 11200, 0 +rotation = 0, 0, 0 + +[droid_4132] +id = 4132 +startpos = 2 +template = CO-M-Con-T +position = 14273, 9408, 0 +rotation = 0, 0, 0 + +[droid_4136] +id = 4136 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 9792, 10176, 0 +rotation = 0, 0, 0 + +[droid_4137] +id = 4137 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 9920, 10176, 0 +rotation = 0, 0, 0 + +[droid_4151] +id = 4151 +startpos = 2 +template = CO-M-HvMortar-T +position = 9792, 9920, 0 +rotation = 0, 0, 0 + +[droid_4152] +id = 4152 +startpos = 2 +template = CO-M-HvMortar-T +position = 9920, 9920, 0 +rotation = 0, 0, 0 + +[droid_4153] +id = 4153 +startpos = 2 +template = CO-M-HvMortar-T +position = 9920, 9792, 0 +rotation = 0, 0, 0 + +[droid_4167] +id = 4167 +startpos = 2 +template = CO-M-HMG-T +position = 14544, 9402, 0 +rotation = 4733, 0, 0 + +[droid_4168] +id = 4168 +startpos = 2 +template = CO-M-HMG-T +position = 14656, 9408, 0 +rotation = 6372, 0, 0 + +[droid_4169] +id = 4169 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 12096, 10048, 0 +rotation = 0, 0, 0 + +[droid_4172] +id = 4172 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 12222, 10046, 0 +rotation = 0, 0, 0 + +[droid_4173] +id = 4173 +startpos = 2 +template = CO-M-HMG-T +position = 10304, 11200, 0 +rotation = 0, 0, 0 + +[droid_4174] +id = 4174 +startpos = 2 +template = CO-M-HMG-T +position = 10432, 11072, 0 +rotation = 0, 0, 0 + +[droid_4175] +id = 4175 +startpos = 2 +template = CO-H-Command-Track +position = 12096, 9792, 0 +rotation = 0, 0, 0 + +[droid_4428] +id = 4428 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 13888, 11456, 0 +rotation = 52975, 0, 0 + +[droid_4429] +id = 4429 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 13888, 11584, 0 +rotation = 54613, 0, 0 + +[droid_4430] +id = 4430 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 13888, 11712, 0 +rotation = 56252, 0, 0 + +[droid_4431] +id = 4431 +startpos = 2 +template = CO-M-Vstrike-T +position = 14016, 11584, 0 +rotation = 58436, 0, 0 + +[droid_4500] +id = 4500 +startpos = 0 +template = P0CobraSpadeTracks +position = 12208, 12908, 0 +rotation = 0, 0, 0 + +[droid_4501] +id = 4501 +startpos = 0 +template = P0CobraSpadeTracks +position = 11324, 13530, 0 +rotation = 43691, 0, 0 + +[droid_4502] +id = 4502 +startpos = 0 +template = P0CobraMedCnTrks +position = 12080, 12312, 0 +rotation = 26032, 0, 0 + +[droid_4503] +id = 4503 +startpos = 0 +template = P0CobraFlameTracks +position = 12184, 12500, 0 +rotation = 16748, 0, 0 + +[droid_4504] +id = 4504 +startpos = 0 +template = P0CobraMedCnTrks +position = 12526, 12618, 0 +rotation = 60803, 0, 0 + +[droid_4703] +id = 4703 +startpos = 0 +template = P0cam3PyHPVcanTrk +position = 12224, 11840, 0 +rotation = 34042, 0, 0 + +[droid_4696] +id = 4696 +startpos = 0 +template = P0CobraSpadeTracks +position = 11324, 12378, 0 +rotation = 43691, 0, 0 + +[droid_4581] +id = 4581 +startpos = 0 +template = P0CobraRepairTrks +position = 12208, 12078, 0 +rotation = 34406, 0, 0 + diff --git a/wrf/cam2/cam2start/feature.ini b/wrf/cam2/cam2start/feature.ini new file mode 100644 index 0000000..36a0004 --- /dev/null +++ b/wrf/cam2/cam2start/feature.ini @@ -0,0 +1,120 @@ +[feature_1143] +id = 1143 +position = 11840, 8896, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_1145] +id = 1145 +position = 12480, 8512, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1147] +id = 1147 +position = 11840, 9920, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1193] +id = 1193 +position = 11840, 9536, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1196] +id = 1196 +position = 11456, 8896, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1251] +id = 1251 +position = 15552, 12352, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_1286] +id = 1286 +position = 8640, 14912, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_1294] +id = 1294 +position = 12608, 12224, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_1765] +id = 1765 +position = 14656, 9536, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_4138] +id = 4138 +position = 11840, 13376, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_4145] +id = 4145 +position = 10816, 12608, 0 +rotation = 0, 0, 0 +name = OilResource + +[feature_4606] +id = 4606 +position = 12864, 9408, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4607] +id = 4607 +position = 12608, 9792, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4608] +id = 4608 +position = 14784, 9152, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4697] +id = 4697 +position = 15552, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4698] +id = 4698 +position = 15680, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4699] +id = 4699 +position = 15552, 15424, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4700] +id = 4700 +position = 15808, 15808, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4701] +id = 4701 +position = 15680, 15936, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4702] +id = 4702 +position = 15936, 15680, 0 +rotation = 0, 0, 0 +name = OilDrum + diff --git a/wrf/cam2/cam2start/labels.ini b/wrf/cam2/cam2start/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/cam2start/struct.ini b/wrf/cam2/cam2start/struct.ini new file mode 100644 index 0000000..9fff1b2 --- /dev/null +++ b/wrf/cam2/cam2start/struct.ini @@ -0,0 +1,839 @@ +[structure_1157] +id = 1157 +startpos = 0 +name = A0PowerGenerator +position = 11520, 13312, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_1159] +id = 1159 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12736, 13632, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1161] +id = 1161 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12608, 13632, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1171] +id = 1171 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 12608, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4710] +id = 4710 +startpos = 0 +name = A0HardcreteMk1Gate +position = 12224, 11712, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1173] +id = 1173 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 13248, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1174] +id = 1174 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 13376, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1175] +id = 1175 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 13504, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1178] +id = 1178 +startpos = 0 +name = A0LightFactory +position = 11200, 12096, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_1179] +id = 1179 +startpos = 0 +name = A0CommandCentre +position = 12160, 13184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1186] +id = 1186 +startpos = 0 +name = A0ResearchFacility +position = 11136, 13312, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_1202] +id = 1202 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12608, 11712, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1221] +id = 1221 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 11968, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1222] +id = 1222 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 12096, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1223] +id = 1223 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 12224, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1224] +id = 1224 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12736, 11712, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_1225] +id = 1225 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 11840, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1226] +id = 1226 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 12352, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_1229] +id = 1229 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11712, 11712, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_1230] +id = 1230 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11456, 11712, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_1295] +id = 1295 +startpos = 0 +name = A0ResourceExtractor +position = 12608, 12224, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1322] +id = 1322 +startpos = 0 +name = A0CyborgFactory +position = 12096, 13568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1347] +id = 1347 +startpos = 0 +name = A0ComDroidControl +position = 12544, 12928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_1529] +id = 1529 +startpos = 2 +name = A0CommandCentreCO +position = 12928, 9600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4118] +id = 4118 +startpos = 0 +name = A0ResourceExtractor +position = 14656, 9536, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4139] +id = 4139 +startpos = 0 +name = A0ResourceExtractor +position = 11840, 13376, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4146] +id = 4146 +startpos = 0 +name = A0ResourceExtractor +position = 10816, 12608, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4445] +id = 4445 +startpos = 0 +name = WallTower03 +position = 11968, 11712, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4446] +id = 4446 +startpos = 0 +name = WallTower03 +position = 12352, 11712, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4449] +id = 4449 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12352, 11968, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4450] +id = 4450 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12352, 11840, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4451] +id = 4451 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11968, 11968, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4452] +id = 4452 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11968, 11840, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4455] +id = 4455 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11840, 11712, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_4456] +id = 4456 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12480, 11712, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_4457] +id = 4457 +startpos = 0 +name = WallTower06 +position = 12864, 11712, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4458] +id = 4458 +startpos = 0 +name = WallTower06 +position = 12864, 13120, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4459] +id = 4459 +startpos = 0 +name = WallTower06 +position = 11328, 11712, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4462] +id = 4462 +startpos = 0 +name = WallTower03 +position = 12864, 13632, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4468] +id = 4468 +startpos = 2 +name = Emplacement-MortarPit02 +position = 12864, 9792, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4469] +id = 4469 +startpos = 2 +name = Emplacement-MortarPit02 +position = 13120, 9664, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4470] +id = 4470 +startpos = 2 +name = Emplacement-MortarPit02 +position = 12992, 9408, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4471] +id = 4471 +startpos = 2 +name = Emplacement-MortarPit02 +position = 12736, 9536, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4487] +id = 4487 +startpos = 2 +name = Sys-CB-Tower01 +position = 13120, 9920, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4493] +id = 4493 +startpos = 0 +name = AASite-QuadMg1 +position = 12608, 12352, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4494] +id = 4494 +startpos = 0 +name = AASite-QuadMg1 +position = 11584, 12992, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4496] +id = 4496 +startpos = 0 +name = PillBox5 +position = 12352, 11456, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4497] +id = 4497 +startpos = 0 +name = PillBox5 +position = 11712, 11456, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4498] +id = 4498 +startpos = 0 +name = PillBox5 +position = 12608, 13376, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4499] +id = 4499 +startpos = 0 +name = PillBox5 +position = 14912, 9792, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4508] +id = 4508 +startpos = 2 +name = CO-Tower-MdCan +position = 15296, 15296, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4524] +id = 4524 +startpos = 2 +name = CollectiveWall +position = 12864, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4525] +id = 4525 +startpos = 2 +name = CollectiveWall +position = 12992, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4526] +id = 4526 +startpos = 2 +name = CollectiveWall +position = 13120, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4527] +id = 4527 +startpos = 2 +name = CollectiveWall +position = 13248, 9408, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4528] +id = 4528 +startpos = 2 +name = CollectiveWall +position = 13248, 9536, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4529] +id = 4529 +startpos = 2 +name = CollectiveWall +position = 13248, 9664, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4530] +id = 4530 +startpos = 2 +name = CollectiveWall +position = 13248, 9792, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4531] +id = 4531 +startpos = 2 +name = CollectiveWall +position = 13248, 9920, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4541] +id = 4541 +startpos = 0 +name = PillBox5 +position = 11968, 12096, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4542] +id = 4542 +startpos = 0 +name = PillBox5 +position = 12352, 12096, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4543] +id = 4543 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 11584, 11712, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_4544] +id = 4544 +startpos = 0 +name = A0HardcreteMk1Wall +wall/type = 0 +position = 12864, 12480, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4548] +id = 4548 +startpos = 2 +name = CO-Tower-MdCan +position = 14656, 14784, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4549] +id = 4549 +startpos = 2 +name = CO-Tower-MdCan +position = 15296, 14656, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4550] +id = 4550 +startpos = 2 +name = PillBox1 +position = 14656, 15296, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4551] +id = 4551 +startpos = 2 +name = PillBox1 +position = 14912, 14528, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4553] +id = 4553 +startpos = 2 +name = CO-Tower-MdCan +position = 13248, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4557] +id = 4557 +startpos = 2 +name = CO-Tower-LtATRkt +position = 13248, 9280, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4558] +id = 4558 +startpos = 2 +name = CO-Tower-LtATRkt +position = 12736, 9280, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4559] +id = 4559 +startpos = 0 +name = AASite-QuadMg1 +position = 10816, 12224, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4560] +id = 4560 +startpos = 0 +name = WallTower03 +position = 10944, 11840, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4561] +id = 4561 +startpos = 0 +name = PillBox1 +position = 12352, 12608, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4562] +id = 4562 +startpos = 0 +name = PillBox1 +position = 11584, 12224, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4563] +id = 4563 +startpos = 0 +name = Sys-SensoTower02 +position = 11456, 12736, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4564] +id = 4564 +startpos = 2 +name = CollectiveWall +position = 12480, 9408, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4565] +id = 4565 +startpos = 2 +name = CollectiveWall +position = 12480, 9536, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4566] +id = 4566 +startpos = 2 +name = CollectiveWall +position = 12480, 9664, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4567] +id = 4567 +startpos = 2 +name = CollectiveWall +position = 12480, 9792, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4568] +id = 4568 +startpos = 2 +name = CollectiveWall +position = 12480, 9920, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4569] +id = 4569 +startpos = 2 +name = CO-Tower-MdCan +position = 12480, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4571] +id = 4571 +startpos = 2 +name = CollectiveWall +position = 12608, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4573] +id = 4573 +startpos = 2 +name = CollectiveWall +position = 12608, 9280, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4575] +id = 4575 +startpos = 2 +name = CO-Tower-MdCan +position = 12480, 9280, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4576] +id = 4576 +startpos = 2 +name = Sys-CB-Tower01 +position = 12608, 9408, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4577] +id = 4577 +startpos = 2 +name = Emplacement-MortarPit02 +position = 12608, 9920, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4578] +id = 4578 +startpos = 2 +name = CollectiveWall +position = 12736, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4579] +id = 4579 +startpos = 2 +name = CO-Tower-LtATRkt +position = 12736, 9920, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4580] +id = 4580 +startpos = 2 +name = CO-Tower-LtATRkt +position = 12608, 9664, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4597] +id = 4597 +startpos = 2 +name = Emplacement-MortarPit01 +position = 10304, 9536, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4598] +id = 4598 +startpos = 2 +name = Emplacement-MortarPit01 +position = 10560, 9536, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4599] +id = 4599 +startpos = 2 +name = Emplacement-MortarPit01 +position = 10304, 9792, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4600] +id = 4600 +startpos = 2 +name = Emplacement-MortarPit01 +position = 10560, 9792, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4601] +id = 4601 +startpos = 2 +name = Sys-SensoTower02 +position = 11328, 10176, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4602] +id = 4602 +startpos = 2 +name = PillBox1 +position = 11200, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4603] +id = 4603 +startpos = 2 +name = PillBox4 +position = 11584, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4604] +id = 4604 +startpos = 2 +name = PillBox1 +position = 10176, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4605] +id = 4605 +startpos = 2 +name = PillBox4 +position = 10688, 10048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4709] +id = 4709 +startpos = 0 +name = A0HardcreteMk1Gate +position = 12096, 11712, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4711] +id = 4711 +startpos = 0 +name = WallTower06 +position = 12864, 12736, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4712] +id = 4712 +startpos = 0 +name = A0HardcreteMk1Gate +position = 12864, 12864, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4713] +id = 4713 +startpos = 0 +name = A0HardcreteMk1Gate +position = 12864, 12992, 0 +rotation = 16384, 0, 0 +modules = 0 + diff --git a/wrf/cam2/sub2-1.gam b/wrf/cam2/sub2-1.gam new file mode 100644 index 0000000000000000000000000000000000000000..dd1feb18e99a0aca3c9af84a8a2fd01d01bdb488 GIT binary patch literal 52 YcmYdK%uVHBfB+^a4Wb;N7{o>g0AJz)B>(^b literal 0 HcmV?d00001 diff --git a/wrf/cam2/sub2-1/droid.ini b/wrf/cam2/sub2-1/droid.ini new file mode 100644 index 0000000..e4d6ad0 --- /dev/null +++ b/wrf/cam2/sub2-1/droid.ini @@ -0,0 +1,161 @@ +[droid_372] +id = 372 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 1482, 1216, 0 +rotation = 11105, 0, 0 + +[droid_373] +id = 373 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 1344, 1344, 0 +rotation = 7646, 0, 0 + +[droid_377] +id = 377 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 3008, 1088, 0 +rotation = 0, 0, 0 + +[droid_381] +id = 381 +startpos = 2 +template = CO-M-Rocket-LtA-T-T +position = 1856, 2624, 0 +rotation = 0, 0, 0 + +[droid_837] +id = 837 +startpos = 1 +template = P0cam3PyHPVcanTrk +position = 6592, 1600, 0 +rotation = 12561, 0, 0 + +[droid_513] +id = 513 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 4168, 3920, 0 +rotation = 0, 0, 0 + +[droid_518] +id = 518 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 5804, 4634, 0 +rotation = 0, 0, 0 + +[droid_520] +id = 520 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4278, 4926, 0 +rotation = 7282, 0, 0 + +[droid_524] +id = 524 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 2894, 4272, 0 +rotation = 54977, 0, 0 + +[droid_555] +id = 555 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 3754, 3362, 0 +rotation = 0, 0, 0 + +[droid_556] +id = 556 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 3858, 3092, 0 +rotation = 0, 0, 0 + +[droid_569] +id = 569 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 6720, 3904, 0 +rotation = 0, 0, 0 + +[droid_571] +id = 571 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1844, 5366, 0 +rotation = 0, 0, 0 + +[droid_573] +id = 573 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1938, 5314, 0 +rotation = 0, 0, 0 + +[droid_829] +id = 829 +startpos = 1 +template = CobraSpadeTracks +position = 6336, 1344, 0 +rotation = 26396, 0, 0 + +[droid_830] +id = 830 +startpos = 1 +template = CobraFlameTracks +position = 6464, 1344, 0 +rotation = 56616, 0, 0 + +[droid_831] +id = 831 +startpos = 1 +template = CobraFlameTracks +position = 6336, 1216, 0 +rotation = 8738, 0, 0 + +[droid_832] +id = 832 +startpos = 1 +template = P0cam3PyHPVcanTrk +position = 6336, 1472, 0 +rotation = 38593, 0, 0 + +[droid_833] +id = 833 +startpos = 1 +template = P0cam3PyHPVcanTrk +position = 6464, 1472, 0 +rotation = 41142, 0, 0 + +[droid_834] +id = 834 +startpos = 1 +template = P0cam3PyHPVcanTrk +position = 6592, 1472, 0 +rotation = 47514, 0, 0 + +[droid_835] +id = 835 +startpos = 1 +template = P0cam3PyHPVcanTrk +position = 6720, 1472, 0 +rotation = 31676, 0, 0 + +[droid_836] +id = 836 +startpos = 1 +template = P0cam3PyHPVcanTrk +position = 6848, 1472, 0 +rotation = 728, 0, 0 + +[droid_838] +id = 838 +startpos = 1 +template = P0cam3PyHPVcanTrk +position = 6464, 1216, 0 +rotation = 51154, 0, 0 + diff --git a/wrf/cam2/sub2-1/feature.ini b/wrf/cam2/sub2-1/feature.ini new file mode 100644 index 0000000..703aebc --- /dev/null +++ b/wrf/cam2/sub2-1/feature.ini @@ -0,0 +1,414 @@ +[feature_135] +id = 135 +position = 3520, 5312, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_145] +id = 145 +position = 3520, 6464, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_149] +id = 149 +position = 3520, 6976, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_151] +id = 151 +position = 3520, 7616, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_152] +id = 152 +position = 4160, 6720, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_154] +id = 154 +position = 4160, 6336, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_156] +id = 156 +position = 4672, 6336, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_179] +id = 179 +position = 6144, 6208, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_181] +id = 181 +position = 6848, 7488, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_184] +id = 184 +position = 7680, 7360, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_185] +id = 185 +position = 6848, 6336, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_188] +id = 188 +position = 7296, 6208, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_191] +id = 191 +position = 6336, 7488, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_196] +id = 196 +position = 7040, 5056, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_208] +id = 208 +position = 6592, 4928, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_209] +id = 209 +position = 6208, 5696, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_210] +id = 210 +position = 6208, 5056, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_223] +id = 223 +position = 6208, 4160, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_238] +id = 238 +position = 2560, 2496, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_239] +id = 239 +position = 448, 2880, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_241] +id = 241 +position = 1600, 3520, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_246] +id = 246 +position = 2240, 3520, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_247] +id = 247 +position = 1600, 4160, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_248] +id = 248 +position = 3136, 2496, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_249] +id = 249 +position = 3520, 2880, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_252] +id = 252 +position = 3008, 3520, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_256] +id = 256 +position = 5568, 3520, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_257] +id = 257 +position = 3520, 1984, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_259] +id = 259 +position = 1280, 4032, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_268] +id = 268 +position = 2304, 832, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_273] +id = 273 +position = 1600, 4672, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_274] +id = 274 +position = 4288, 4288, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_277] +id = 277 +position = 7104, 4672, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_279] +id = 279 +position = 7040, 5824, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_282] +id = 282 +position = 2304, 448, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_285] +id = 285 +position = 5568, 1088, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_286] +id = 286 +position = 5184, 1344, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_287] +id = 287 +position = 4160, 1856, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_293] +id = 293 +position = 4160, 1088, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_294] +id = 294 +position = 4160, 2496, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_296] +id = 296 +position = 4160, 576, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_297] +id = 297 +position = 4480, 1600, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_307] +id = 307 +position = 1216, 5440, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_309] +id = 309 +position = 2752, 5696, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_310] +id = 310 +position = 2176, 5440, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_313] +id = 313 +position = 3200, 5824, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_458] +id = 458 +position = 5056, 7744, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_459] +id = 459 +position = 4736, 7744, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_469] +id = 469 +position = 5568, 6336, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_470] +id = 470 +position = 5568, 6720, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_479] +id = 479 +position = 5440, 704, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_480] +id = 480 +position = 7488, 1856, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_485] +id = 485 +position = 7296, 3648, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_486] +id = 486 +position = 448, 2496, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_493] +id = 493 +position = 4224, 4544, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_497] +id = 497 +position = 4224, 4672, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_530] +id = 530 +position = 2176, 4800, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_564] +id = 564 +position = 3008, 5952, 0 +rotation = 0, 0, 0 +name = Pickup + +[feature_565] +id = 565 +position = 3008, 6080, 0 +rotation = 16384, 0, 0 +name = BlueCar + +[feature_566] +id = 566 +position = 2880, 5952, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_577] +id = 577 +position = 1216, 1344, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_578] +id = 578 +position = 1472, 1344, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_579] +id = 579 +position = 1344, 1472, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_748] +id = 748 +position = 2880, 4160, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_749] +id = 749 +position = 4416, 4928, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_788] +id = 788 +position = 576, 3136, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_826] +id = 826 +position = 4160, 3008, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_827] +id = 827 +position = 7360, 7488, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_828] +id = 828 +position = 832, 4672, 0 +rotation = 0, 0, 0 +name = building11 + diff --git a/wrf/cam2/sub2-1/labels.ini b/wrf/cam2/sub2-1/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/sub2-1/struct.ini b/wrf/cam2/sub2-1/struct.ini new file mode 100644 index 0000000..01aa6b6 --- /dev/null +++ b/wrf/cam2/sub2-1/struct.ini @@ -0,0 +1,496 @@ +[structure_65] +id = 65 +startpos = 2 +name = CollectiveWall +position = 3392, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_66] +id = 66 +startpos = 2 +name = CollectiveWall +position = 3392, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_67] +id = 67 +startpos = 2 +name = CollectiveWall +position = 3392, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_76] +id = 76 +startpos = 2 +name = CollectiveWall +position = 2880, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_77] +id = 77 +startpos = 2 +name = CollectiveWall +position = 2752, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_104] +id = 104 +startpos = 2 +name = CollectiveWall +position = 3136, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_105] +id = 105 +startpos = 2 +name = CollectiveWall +position = 3264, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_115] +id = 115 +startpos = 2 +name = CollectiveWall +position = 3392, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_594] +id = 594 +startpos = 2 +name = CO-Tower-MdCan +position = 2624, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_596] +id = 596 +startpos = 2 +name = CO-Tower-MdCan +position = 3392, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_607] +id = 607 +startpos = 2 +name = Sys-SensoTower02 +position = 3008, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_699] +id = 699 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6464, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_700] +id = 700 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6592, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_703] +id = 703 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6720, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_704] +id = 704 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6464, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_706] +id = 706 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6464, 6976, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_707] +id = 707 +startpos = 2 +name = Sys-SensoTower02 +position = 5824, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_732] +id = 732 +startpos = 2 +name = Sys-SensoTower02 +position = 1088, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_736] +id = 736 +startpos = 2 +name = Sys-CB-Tower01 +position = 6336, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_739] +id = 739 +startpos = 2 +name = CO-Tower-LtATRkt +position = 5952, 6976, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_751] +id = 751 +startpos = 1 +name = WreckedTransporter +position = 6720, 1216, 0 +rotation = 21845, 0, 0 +modules = 0 + +[structure_756] +id = 756 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4416, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_771] +id = 771 +startpos = 2 +name = CO-Tower-LtATRkt +position = 5184, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_774] +id = 774 +startpos = 2 +name = PillBox4 +position = 4032, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_775] +id = 775 +startpos = 2 +name = PillBox3 +position = 1088, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_776] +id = 776 +startpos = 2 +name = PillBox3 +position = 1728, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_777] +id = 777 +startpos = 2 +name = PillBox3 +position = 1600, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_778] +id = 778 +startpos = 2 +name = PillBox3 +position = 704, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_779] +id = 779 +startpos = 2 +name = PillBox3 +position = 2112, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_780] +id = 780 +startpos = 2 +name = CO-Tower-MG3 +position = 960, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_782] +id = 782 +startpos = 2 +name = PillBox3 +position = 576, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_783] +id = 783 +startpos = 2 +name = PillBox3 +position = 2240, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_785] +id = 785 +startpos = 2 +name = CO-Tower-MdCan +position = 3392, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_789] +id = 789 +startpos = 2 +name = PillBox5 +position = 960, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_790] +id = 790 +startpos = 2 +name = PillBox5 +position = 960, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_791] +id = 791 +startpos = 2 +name = PillBox5 +position = 1728, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_792] +id = 792 +startpos = 2 +name = PillBox5 +position = 1728, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_795] +id = 795 +startpos = 2 +name = PillBox5 +position = 5312, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_796] +id = 796 +startpos = 2 +name = CO-Tower-MdCan +position = 3008, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_797] +id = 797 +startpos = 2 +name = CO-Tower-MdCan +position = 3392, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_798] +id = 798 +startpos = 2 +name = CO-Tower-MG3 +position = 5824, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_799] +id = 799 +startpos = 2 +name = CO-Tower-MG3 +position = 6336, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_800] +id = 800 +startpos = 2 +name = CO-Tower-LtATRkt +position = 6464, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_804] +id = 804 +startpos = 2 +name = CO-Tower-LtATRkt +position = 5696, 7488, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_805] +id = 805 +startpos = 2 +name = CO-Tower-LtATRkt +position = 7488, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_807] +id = 807 +startpos = 2 +name = A0TankTrap +position = 3648, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_808] +id = 808 +startpos = 2 +name = A0TankTrap +position = 3648, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_809] +id = 809 +startpos = 2 +name = A0TankTrap +position = 3648, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_810] +id = 810 +startpos = 2 +name = A0TankTrap +position = 3648, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_811] +id = 811 +startpos = 2 +name = A0TankTrap +position = 3904, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_812] +id = 812 +startpos = 2 +name = A0TankTrap +position = 4032, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_813] +id = 813 +startpos = 2 +name = A0TankTrap +position = 4160, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_814] +id = 814 +startpos = 2 +name = A0TankTrap +position = 4800, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_815] +id = 815 +startpos = 2 +name = A0TankTrap +position = 4800, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_816] +id = 816 +startpos = 2 +name = A0TankTrap +position = 4800, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_817] +id = 817 +startpos = 2 +name = A0TankTrap +position = 4800, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_818] +id = 818 +startpos = 2 +name = A0TankTrap +position = 4800, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_819] +id = 819 +startpos = 2 +name = A0TankTrap +position = 4928, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_820] +id = 820 +startpos = 2 +name = A0TankTrap +position = 5056, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_821] +id = 821 +startpos = 2 +name = A0TankTrap +position = 5184, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_822] +id = 822 +startpos = 2 +name = A0TankTrap +position = 5312, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_823] +id = 823 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4032, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam2/sub2-2.gam b/wrf/cam2/sub2-2.gam new file mode 100644 index 0000000000000000000000000000000000000000..dd1feb18e99a0aca3c9af84a8a2fd01d01bdb488 GIT binary patch literal 52 YcmYdK%uVHBfB+^a4Wb;N7{o>g0AJz)B>(^b literal 0 HcmV?d00001 diff --git a/wrf/cam2/sub2-2/droid.ini b/wrf/cam2/sub2-2/droid.ini new file mode 100644 index 0000000..bda8970 --- /dev/null +++ b/wrf/cam2/sub2-2/droid.ini @@ -0,0 +1,91 @@ +[droid_473] +id = 473 +startpos = 2 +template = CO-M-Rocket-HvyA-T-Track +position = 5184, 1472, 0 +rotation = 0, 0, 0 + +[droid_441] +id = 441 +startpos = 2 +template = Cyb-Chain-GROUND +position = 5440, 1472, 0 +rotation = 0, 0, 0 + +[droid_431] +id = 431 +startpos = 2 +template = CO-M-Sensor-T +position = 5312, 1600, 0 +rotation = 0, 0, 0 + +[droid_439] +id = 439 +startpos = 2 +template = Cyb-Chain-GROUND +position = 5568, 1472, 0 +rotation = 0, 0, 0 + +[droid_566] +id = 566 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 5696, 1344, 0 +rotation = 0, 0, 0 + +[droid_435] +id = 435 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 5440, 1344, 0 +rotation = 0, 0, 0 + +[droid_502] +id = 502 +startpos = 2 +template = CO-M-Con-T +position = 1110, 959, 0 +rotation = 0, 0, 0 + +[droid_565] +id = 565 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 5184, 1344, 0 +rotation = 0, 0, 0 + +[droid_582] +id = 582 +startpos = 2 +template = CO-M-Rocket-HvyA-T-Track +position = 5696, 1472, 0 +rotation = 0, 0, 0 + +[droid_567] +id = 567 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 5568, 1344, 0 +rotation = 0, 0, 0 + +[droid_569] +id = 569 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 5312, 1344, 0 +rotation = 0, 0, 0 + +[droid_438] +id = 438 +startpos = 2 +template = Cyb-Chain-GROUND +position = 5312, 1472, 0 +rotation = 0, 0, 0 + +[droid_581] +id = 581 +startpos = 2 +template = CO-H-Command-Track +position = 5568, 1600, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam2/sub2-2/feature.ini b/wrf/cam2/sub2-2/feature.ini new file mode 100644 index 0000000..ce1a150 --- /dev/null +++ b/wrf/cam2/sub2-2/feature.ini @@ -0,0 +1,510 @@ +[feature_2] +id = 2 +position = 4544, 3008, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_6] +id = 6 +position = 4160, 2624, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_10] +id = 10 +position = 4608, 3392, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_14] +id = 14 +position = 6400, 7744, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_23] +id = 23 +position = 5120, 6336, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_26] +id = 26 +position = 6144, 3904, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_30] +id = 30 +position = 5504, 4416, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_39] +id = 39 +position = 5696, 3904, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_90] +id = 90 +position = 5184, 7232, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_93] +id = 93 +position = 5440, 6208, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_94] +id = 94 +position = 5760, 6720, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_96] +id = 96 +position = 5184, 7616, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_100] +id = 100 +position = 3904, 7232, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_103] +id = 103 +position = 3840, 6720, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_104] +id = 104 +position = 2112, 6592, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_106] +id = 106 +position = 4480, 6848, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_111] +id = 111 +position = 2688, 7616, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_114] +id = 114 +position = 2688, 6336, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_115] +id = 115 +position = 2112, 7360, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_116] +id = 116 +position = 1728, 5824, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_119] +id = 119 +position = 704, 7616, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_120] +id = 120 +position = 1344, 7488, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_122] +id = 122 +position = 1280, 7104, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_123] +id = 123 +position = 448, 6592, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_125] +id = 125 +position = 3264, 832, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_126] +id = 126 +position = 4544, 1344, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_127] +id = 127 +position = 4032, 832, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_128] +id = 128 +position = 2752, 1728, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_129] +id = 129 +position = 2752, 1344, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_130] +id = 130 +position = 3648, 832, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_131] +id = 131 +position = 4416, 832, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_132] +id = 132 +position = 4544, 1728, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_136] +id = 136 +position = 4672, 6464, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_137] +id = 137 +position = 4480, 7232, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_145] +id = 145 +position = 2112, 3264, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_146] +id = 146 +position = 2944, 4416, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_148] +id = 148 +position = 3520, 4288, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_149] +id = 149 +position = 3264, 4288, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_150] +id = 150 +position = 3712, 4672, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_151] +id = 151 +position = 2944, 4672, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_154] +id = 154 +position = 768, 3904, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_156] +id = 156 +position = 448, 3904, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_162] +id = 162 +position = 2112, 3904, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_163] +id = 163 +position = 3136, 3904, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_165] +id = 165 +position = 2752, 3904, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_167] +id = 167 +position = 4544, 4032, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_169] +id = 169 +position = 3840, 3392, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_170] +id = 170 +position = 2112, 2752, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_172] +id = 172 +position = 3968, 4288, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_178] +id = 178 +position = 5184, 3264, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_179] +id = 179 +position = 6208, 2496, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_186] +id = 186 +position = 7104, 1984, 0 +rotation = 60075, 0, 0 +name = Crane + +[feature_187] +id = 187 +position = 6464, 1856, 0 +rotation = 43691, 0, 0 +name = Crane + +[feature_188] +id = 188 +position = 6336, 1088, 0 +rotation = 27307, 0, 0 +name = Crane + +[feature_189] +id = 189 +position = 5248, 960, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_190] +id = 190 +position = 5248, 1216, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_192] +id = 192 +position = 5248, 1088, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_194] +id = 194 +position = 5632, 960, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_195] +id = 195 +position = 5632, 1088, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_196] +id = 196 +position = 5632, 1216, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_239] +id = 239 +position = 4544, 2368, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_240] +id = 240 +position = 6336, 3264, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_247] +id = 247 +position = 3392, 4928, 0 +rotation = 49152, 0, 0 +name = Crane + +[feature_252] +id = 252 +position = 7104, 960, 0 +rotation = 5461, 0, 0 +name = Crane + +[feature_254] +id = 254 +position = 5952, 448, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_255] +id = 255 +position = 6208, 448, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_264] +id = 264 +position = 5632, 3392, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_265] +id = 265 +position = 3008, 1600, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_278] +id = 278 +position = 2368, 4672, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_280] +id = 280 +position = 3904, 576, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_287] +id = 287 +position = 4160, 1728, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_292] +id = 292 +position = 2368, 6976, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_293] +id = 293 +position = 3904, 6848, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_294] +id = 294 +position = 3776, 6848, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_295] +id = 295 +position = 3520, 7744, 0 +rotation = 0, 0, 0 +name = WreckedVertCampVan + +[feature_506] +id = 506 +position = 4992, 4416, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_515] +id = 515 +position = 6016, 6848, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_590] +id = 590 +position = 1728, 960, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_591] +id = 591 +position = 1600, 832, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_592] +id = 592 +position = 1600, 704, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_593] +id = 593 +position = 1856, 960, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_594] +id = 594 +position = 1600, 960, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_603] +id = 603 +position = 3904, 6464, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_604] +id = 604 +position = 3136, 7360, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_605] +id = 605 +position = 2752, 7232, 0 +rotation = 0, 0, 0 +name = building2 + diff --git a/wrf/cam2/sub2-2/labels.ini b/wrf/cam2/sub2-2/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/sub2-2/struct.ini b/wrf/cam2/sub2-2/struct.ini new file mode 100644 index 0000000..c90021c --- /dev/null +++ b/wrf/cam2/sub2-2/struct.ini @@ -0,0 +1,1176 @@ +[structure_197] +id = 197 +startpos = 2 +name = CollectiveWall +position = 6208, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_198] +id = 198 +startpos = 2 +name = CollectiveWall +position = 6080, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_199] +id = 199 +startpos = 2 +name = CollectiveWall +position = 5824, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_200] +id = 200 +startpos = 2 +name = CollectiveWall +position = 5952, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_202] +id = 202 +startpos = 2 +name = CollectiveWall +position = 5568, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_203] +id = 203 +startpos = 2 +name = CollectiveWall +position = 5312, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_204] +id = 204 +startpos = 2 +name = CollectiveWall +position = 5440, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_205] +id = 205 +startpos = 2 +name = CollectiveWall +position = 5184, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_206] +id = 206 +startpos = 2 +name = CollectiveWall +position = 5056, 2112, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_207] +id = 207 +startpos = 2 +name = CollectiveWall +position = 5056, 1984, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_209] +id = 209 +startpos = 2 +name = CollectiveWall +position = 5056, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_213] +id = 213 +startpos = 2 +name = CollectiveWall +position = 5056, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_214] +id = 214 +startpos = 2 +name = CollectiveWall +position = 5056, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_215] +id = 215 +startpos = 2 +name = CollectiveWall +position = 5056, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_216] +id = 216 +startpos = 2 +name = CollectiveWall +position = 5184, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_217] +id = 217 +startpos = 2 +name = CollectiveWall +position = 5440, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_218] +id = 218 +startpos = 2 +name = CollectiveWall +position = 5568, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_219] +id = 219 +startpos = 2 +name = CollectiveWall +position = 5696, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_220] +id = 220 +startpos = 2 +name = CollectiveWall +position = 5824, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_221] +id = 221 +startpos = 2 +name = CollectiveWall +position = 5952, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_222] +id = 222 +startpos = 2 +name = CollectiveWall +position = 6080, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_231] +id = 231 +startpos = 2 +name = CollectiveWall +position = 5312, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_235] +id = 235 +startpos = 2 +name = CollectiveWall +position = 6592, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_237] +id = 237 +startpos = 2 +name = A0LightFactory +position = 5824, 1728, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_258] +id = 258 +startpos = 2 +name = CollectiveWall +position = 6464, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_298] +id = 298 +startpos = 2 +name = A0CommandCentreCO +position = 5376, 1792, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_300] +id = 300 +startpos = 2 +name = CollectiveWall +position = 2112, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_302] +id = 302 +startpos = 2 +name = CollectiveWall +position = 1984, 448, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_303] +id = 303 +startpos = 2 +name = CollectiveWall +position = 2112, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_304] +id = 304 +startpos = 2 +name = CollectiveWall +position = 2112, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_305] +id = 305 +startpos = 2 +name = CollectiveWall +position = 2112, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_314] +id = 314 +startpos = 2 +name = CollectiveWall +position = 1600, 2112, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_325] +id = 325 +startpos = 2 +name = CollectiveCWall +position = 1856, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_334] +id = 334 +startpos = 2 +name = CollectiveWall +position = 1728, 2112, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_335] +id = 335 +startpos = 2 +name = CollectiveWall +position = 1472, 2112, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_336] +id = 336 +startpos = 2 +name = CollectiveWall +position = 1344, 1984, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_341] +id = 341 +startpos = 2 +name = CollectiveWall +position = 576, 2112, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_345] +id = 345 +startpos = 2 +name = A0CommandCentreCO +position = 512, 768, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_350] +id = 350 +startpos = 2 +name = CollectiveWall +position = 1472, 1856, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_351] +id = 351 +startpos = 2 +name = CollectiveWall +position = 576, 1856, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_352] +id = 352 +startpos = 2 +name = CollectiveWall +position = 448, 1984, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_356] +id = 356 +startpos = 2 +name = CollectiveWall +position = 704, 1984, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_360] +id = 360 +startpos = 2 +name = A0ComDroidControl +position = 1792, 1152, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_367] +id = 367 +startpos = 2 +name = A0ResearchFacility +position = 1792, 768, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_378] +id = 378 +startpos = 2 +name = A0PowerGenerator +position = 512, 1408, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_382] +id = 382 +startpos = 2 +name = A0LightFactory +position = 1216, 576, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_387] +id = 387 +startpos = 2 +name = CollectiveCWall +position = 2112, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_444] +id = 444 +startpos = 2 +name = A0TankTrap +position = 704, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_445] +id = 445 +startpos = 2 +name = A0TankTrap +position = 832, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_446] +id = 446 +startpos = 2 +name = A0TankTrap +position = 1216, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_447] +id = 447 +startpos = 2 +name = A0TankTrap +position = 1344, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_448] +id = 448 +startpos = 2 +name = A0TankTrap +position = 1472, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_450] +id = 450 +startpos = 2 +name = A0TankTrap +position = 1600, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_451] +id = 451 +startpos = 2 +name = A0TankTrap +position = 1728, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_452] +id = 452 +startpos = 2 +name = A0TankTrap +position = 1728, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_453] +id = 453 +startpos = 2 +name = A0TankTrap +position = 1728, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_454] +id = 454 +startpos = 2 +name = A0TankTrap +position = 1728, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_455] +id = 455 +startpos = 2 +name = A0TankTrap +position = 1728, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_456] +id = 456 +startpos = 2 +name = A0TankTrap +position = 576, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_457] +id = 457 +startpos = 2 +name = A0TankTrap +position = 448, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_458] +id = 458 +startpos = 2 +name = A0TankTrap +position = 448, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_459] +id = 459 +startpos = 2 +name = A0TankTrap +position = 448, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_460] +id = 460 +startpos = 2 +name = A0TankTrap +position = 448, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_461] +id = 461 +startpos = 2 +name = A0TankTrap +position = 448, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_470] +id = 470 +startpos = 2 +name = CollectiveCWall +position = 6720, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_471] +id = 471 +startpos = 2 +name = CollectiveCWall +position = 6208, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_476] +id = 476 +startpos = 2 +name = CollectiveCWall +position = 448, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_479] +id = 479 +startpos = 2 +name = CollectiveWall +position = 1600, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_480] +id = 480 +startpos = 2 +name = CollectiveWall +position = 1728, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_481] +id = 481 +startpos = 2 +name = CollectiveWall +position = 1856, 1984, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_484] +id = 484 +startpos = 2 +name = CollectiveWall +position = 2112, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_485] +id = 485 +startpos = 2 +name = CollectiveWall +position = 1984, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_486] +id = 486 +startpos = 2 +name = CO-Tower-MG3 +position = 1472, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_487] +id = 487 +startpos = 2 +name = CO-Tower-MG3 +position = 704, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_488] +id = 488 +startpos = 2 +name = CO-Tower-MdCan +position = 448, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_489] +id = 489 +startpos = 2 +name = CO-Tower-MdCan +position = 1600, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_492] +id = 492 +startpos = 2 +name = CollectiveWall +position = 2112, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_493] +id = 493 +startpos = 2 +name = CollectiveCWall +position = 1856, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_497] +id = 497 +startpos = 2 +name = PillBox5 +position = 832, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_498] +id = 498 +startpos = 2 +name = PillBox5 +position = 1216, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_499] +id = 499 +startpos = 2 +name = PillBox5 +position = 2112, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_500] +id = 500 +startpos = 2 +name = PillBox5 +position = 2624, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_501] +id = 501 +startpos = 2 +name = PillBox5 +position = 2624, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_503] +id = 503 +startpos = 2 +name = CO-Tower-HvATRkt +position = 3136, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_504] +id = 504 +startpos = 2 +name = Sys-SensoTower02 +position = 1984, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_519] +id = 519 +startpos = 2 +name = CO-WallTower-HvCan +position = 5056, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_520] +id = 520 +startpos = 2 +name = CO-WallTower-HvCan +position = 5696, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_523] +id = 523 +startpos = 2 +name = CO-WallTower-HvCan +position = 5056, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_524] +id = 524 +startpos = 2 +name = CO-WallTower-HvCan +position = 5056, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_525] +id = 525 +startpos = 2 +name = CO-WallTower-HvCan +position = 448, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_526] +id = 526 +startpos = 2 +name = CO-WallTower-HvCan +position = 704, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_527] +id = 527 +startpos = 2 +name = CO-WallTower-HvCan +position = 704, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_528] +id = 528 +startpos = 2 +name = CO-WallTower-HvCan +position = 1344, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_529] +id = 529 +startpos = 2 +name = CO-WallTower-HvCan +position = 1344, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_530] +id = 530 +startpos = 2 +name = CO-WallTower-HvCan +position = 1856, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_531] +id = 531 +startpos = 2 +name = CO-WallTower-HvCan +position = 2112, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_532] +id = 532 +startpos = 2 +name = CO-WallTower-HvCan +position = 2112, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_534] +id = 534 +startpos = 2 +name = Emplacement-MortarPit02 +position = 1344, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_539] +id = 539 +startpos = 2 +name = Emplacement-MortarPit02 +position = 5184, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_540] +id = 540 +startpos = 2 +name = Emplacement-MortarPit02 +position = 5440, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_541] +id = 541 +startpos = 2 +name = Emplacement-MortarPit02 +position = 5184, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_542] +id = 542 +startpos = 2 +name = Emplacement-MortarPit02 +position = 5440, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_543] +id = 543 +startpos = 2 +name = Emplacement-MortarPit02 +position = 5696, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_544] +id = 544 +startpos = 2 +name = Emplacement-MortarPit02 +position = 5696, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_545] +id = 545 +startpos = 2 +name = Emplacement-MortarPit02 +position = 4928, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_546] +id = 546 +startpos = 2 +name = Emplacement-MortarPit02 +position = 4928, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_547] +id = 547 +startpos = 2 +name = Emplacement-MortarPit02 +position = 5440, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_548] +id = 548 +startpos = 2 +name = Emplacement-MortarPit02 +position = 5440, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_549] +id = 549 +startpos = 2 +name = Sys-CB-Tower01 +position = 6336, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_550] +id = 550 +startpos = 2 +name = Sys-CB-Tower01 +position = 6336, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_551] +id = 551 +startpos = 2 +name = Sys-SensoTower01 +position = 5952, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_552] +id = 552 +startpos = 2 +name = Sys-SensoTower01 +position = 5184, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_553] +id = 553 +startpos = 2 +name = Sys-CB-Tower01 +position = 1856, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_556] +id = 556 +startpos = 2 +name = CO-Tower-HvATRkt +position = 5440, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_557] +id = 557 +startpos = 2 +name = CO-Tower-HvATRkt +position = 5184, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_560] +id = 560 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4032, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_561] +id = 561 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4416, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_564] +id = 564 +startpos = 2 +name = CO-WallTower-HvCan +position = 2112, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_570] +id = 570 +startpos = 2 +name = Emplacement-MortarPit02 +position = 1472, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_571] +id = 571 +startpos = 2 +name = Emplacement-MortarPit02 +position = 1728, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_572] +id = 572 +startpos = 2 +name = Emplacement-MortarPit02 +position = 1600, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_575] +id = 575 +startpos = 2 +name = CO-Tower-MG3 +position = 832, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_576] +id = 576 +startpos = 2 +name = CO-Tower-MG3 +position = 1216, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_583] +id = 583 +startpos = 2 +name = Sys-CB-Tower01 +position = 5568, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_584] +id = 584 +startpos = 2 +name = CO-Tower-MG3 +position = 4032, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_586] +id = 586 +startpos = 2 +name = CO-Tower-HvATRkt +position = 4032, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_587] +id = 587 +startpos = 2 +name = PillBox5 +position = 3136, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_588] +id = 588 +startpos = 2 +name = PillBox5 +position = 2624, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_589] +id = 589 +startpos = 2 +name = CO-Tower-MG3 +position = 2624, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_595] +id = 595 +startpos = 2 +name = CO-Tower-HvATRkt +position = 704, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_596] +id = 596 +startpos = 2 +name = CO-Tower-HvATRkt +position = 1344, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_597] +id = 597 +startpos = 2 +name = A0RepairCentre3 +position = 1216, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_598] +id = 598 +startpos = 2 +name = CollectiveCWall +position = 6336, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_600] +id = 600 +startpos = 2 +name = CollectiveWall +position = 5056, 1856, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_602] +id = 602 +startpos = 2 +name = CollectiveCWall +position = 5056, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_606] +id = 606 +startpos = 2 +name = Sys-SensoTower02 +position = 1728, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_607] +id = 607 +startpos = 2 +name = PillBox1 +position = 1472, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_608] +id = 608 +startpos = 2 +name = Emplacement-MortarPit02 +position = 1472, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_609] +id = 609 +startpos = 2 +name = Emplacement-MortarPit02 +position = 576, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_610] +id = 610 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5056, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_611] +id = 611 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5056, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_612] +id = 612 +startpos = 2 +name = A0HardcreteMk1Gate +position = 2112, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_613] +id = 613 +startpos = 2 +name = A0HardcreteMk1Gate +position = 2112, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_614] +id = 614 +startpos = 2 +name = A0HardcreteMk1Gate +position = 960, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_615] +id = 615 +startpos = 2 +name = A0HardcreteMk1Gate +position = 1088, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_616] +id = 616 +startpos = 2 +name = CollectiveWall +position = 832, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_617] +id = 617 +startpos = 2 +name = CollectiveWall +position = 1216, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam2/sub2-5.gam b/wrf/cam2/sub2-5.gam new file mode 100644 index 0000000000000000000000000000000000000000..dd1feb18e99a0aca3c9af84a8a2fd01d01bdb488 GIT binary patch literal 52 YcmYdK%uVHBfB+^a4Wb;N7{o>g0AJz)B>(^b literal 0 HcmV?d00001 diff --git a/wrf/cam2/sub2-5/droid.ini b/wrf/cam2/sub2-5/droid.ini new file mode 100644 index 0000000..efdf4b4 --- /dev/null +++ b/wrf/cam2/sub2-5/droid.ini @@ -0,0 +1,364 @@ +[droid_459] +id = 459 +startpos = 2 +template = CO-M-Sensor-T +position = 1472, 3776, 0 +rotation = 0, 0, 0 + +[droid_460] +id = 460 +startpos = 2 +template = CO-M-ROTMG-T +position = 1472, 3904, 0 +rotation = 0, 0, 0 + +[droid_461] +id = 461 +startpos = 2 +template = CO-M-ROTMG-T +position = 1600, 3904, 0 +rotation = 0, 0, 0 + +[droid_462] +id = 462 +startpos = 2 +template = CO-M-ROTMG-T +position = 1600, 3776, 0 +rotation = 0, 0, 0 + +[droid_463] +id = 463 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1472, 3264, 0 +rotation = 0, 0, 0 + +[droid_464] +id = 464 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1600, 3264, 0 +rotation = 0, 0, 0 + +[droid_465] +id = 465 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1472, 3392, 0 +rotation = 0, 0, 0 + +[droid_466] +id = 466 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1600, 3392, 0 +rotation = 0, 0, 0 + +[droid_469] +id = 469 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1472, 2752, 0 +rotation = 0, 0, 0 + +[droid_470] +id = 470 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1600, 2752, 0 +rotation = 0, 0, 0 + +[droid_471] +id = 471 +startpos = 2 +template = CO-M-LTAT-Hover +position = 6848, 2752, 0 +rotation = 0, 0, 0 + +[droid_472] +id = 472 +startpos = 2 +template = CO-M-LTAT-Hover +position = 6976, 2752, 0 +rotation = 0, 0, 0 + +[droid_473] +id = 473 +startpos = 2 +template = CO-M-LTAT-Hover +position = 6720, 2880, 0 +rotation = 0, 0, 0 + +[droid_474] +id = 474 +startpos = 2 +template = CO-M-LTAT-Hover +position = 6592, 2880, 0 +rotation = 0, 0, 0 + +[droid_475] +id = 475 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3264, 6336, 0 +rotation = 0, 0, 0 + +[droid_476] +id = 476 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3264, 6464, 0 +rotation = 0, 0, 0 + +[droid_477] +id = 477 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3392, 6464, 0 +rotation = 0, 0, 0 + +[droid_478] +id = 478 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3392, 6336, 0 +rotation = 0, 0, 0 + +[droid_480] +id = 480 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3134, 4798, 0 +rotation = 0, 0, 0 + +[droid_481] +id = 481 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 3264, 3520, 0 +rotation = 0, 0, 0 + +[droid_482] +id = 482 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 3392, 3520, 0 +rotation = 0, 0, 0 + +[droid_486] +id = 486 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4416, 1600, 0 +rotation = 49152, 0, 0 + +[droid_487] +id = 487 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4416, 1728, 0 +rotation = 49152, 0, 0 + +[droid_488] +id = 488 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4288, 1600, 0 +rotation = 49152, 0, 0 + +[droid_489] +id = 489 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4288, 1728, 0 +rotation = 49152, 0, 0 + +[droid_493] +id = 493 +startpos = 2 +template = CO-M-ROTMG-T +position = 1472, 1088, 0 +rotation = 0, 0, 0 + +[droid_494] +id = 494 +startpos = 2 +template = CO-M-ROTMG-T +position = 1600, 1088, 0 +rotation = 0, 0, 0 + +[droid_502] +id = 502 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 7360, 3264, 0 +rotation = 0, 0, 0 + +[droid_600] +id = 600 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3006, 4792, 0 +rotation = 0, 0, 0 + +[droid_603] +id = 603 +startpos = 2 +template = Cyb-Chain-GROUND +position = 2624, 3776, 0 +rotation = 0, 0, 0 + +[droid_604] +id = 604 +startpos = 2 +template = Cyb-Chain-GROUND +position = 2752, 3776, 0 +rotation = 0, 0, 0 + +[droid_606] +id = 606 +startpos = 2 +template = Cyb-Chain-GROUND +position = 2624, 3648, 0 +rotation = 0, 0, 0 + +[droid_607] +id = 607 +startpos = 2 +template = Cyb-Chain-GROUND +position = 2752, 3648, 0 +rotation = 0, 0, 0 + +[droid_608] +id = 608 +startpos = 2 +template = Cyb-Chain-GROUND +position = 4672, 3648, 0 +rotation = 0, 0, 0 + +[droid_609] +id = 609 +startpos = 2 +template = Cyb-Chain-GROUND +position = 4800, 3776, 0 +rotation = 0, 0, 0 + +[droid_610] +id = 610 +startpos = 2 +template = Cyb-Chain-GROUND +position = 4927, 3649, 0 +rotation = 0, 0, 0 + +[droid_612] +id = 612 +startpos = 2 +template = Cyb-Chain-GROUND +position = 4800, 3648, 0 +rotation = 0, 0, 0 + +[droid_617] +id = 617 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 4800, 6848, 0 +rotation = 0, 0, 0 + +[droid_618] +id = 618 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 4928, 6976, 0 +rotation = 0, 0, 0 + +[droid_619] +id = 619 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 5952, 5824, 0 +rotation = 0, 0, 0 + +[droid_620] +id = 620 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 6336, 6720, 0 +rotation = 0, 0, 0 + +[droid_621] +id = 621 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3520, 7616, 0 +rotation = 0, 0, 0 + +[droid_627] +id = 627 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3524, 7740, 0 +rotation = 0, 0, 0 + +[droid_628] +id = 628 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3392, 7616, 0 +rotation = 0, 0, 0 + +[droid_629] +id = 629 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3392, 7744, 0 +rotation = 0, 0, 0 + +[droid_630] +id = 630 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3264, 7616, 0 +rotation = 0, 0, 0 + +[droid_631] +id = 631 +startpos = 2 +template = Cyb-Chain-GROUND +position = 3264, 7744, 0 +rotation = 0, 0, 0 + +[droid_647] +id = 647 +startpos = 2 +template = CO-H-HPVCannon-Tracks +position = 5952, 654, 0 +rotation = 0, 0, 0 + +[droid_652] +id = 652 +startpos = 2 +template = CO-H-HPVCannon-Tracks +position = 6252, 1868, 0 +rotation = 0, 0, 0 + +[droid_655] +id = 655 +startpos = 2 +template = CO-M-ROTMG-T +position = 6104, 1028, 0 +rotation = 0, 0, 0 + +[droid_656] +id = 656 +startpos = 2 +template = CO-M-ROTMG-T +position = 6552, 1098, 0 +rotation = 0, 0, 0 + +[droid_657] +id = 657 +startpos = 2 +template = CO-H-HPVCannon-Tracks +position = 1532, 2998, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam2/sub2-5/feature.ini b/wrf/cam2/sub2-5/feature.ini new file mode 100644 index 0000000..07f1c47 --- /dev/null +++ b/wrf/cam2/sub2-5/feature.ini @@ -0,0 +1,672 @@ +[feature_105] +id = 105 +position = 4864, 5312, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_106] +id = 106 +position = 4224, 5312, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_108] +id = 108 +position = 4864, 5568, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_109] +id = 109 +position = 4224, 5568, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_110] +id = 110 +position = 4224, 5824, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_121] +id = 121 +position = 3712, 5312, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_123] +id = 123 +position = 3712, 5824, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_127] +id = 127 +position = 3648, 7360, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_131] +id = 131 +position = 3584, 6976, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_132] +id = 132 +position = 3008, 6720, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_133] +id = 133 +position = 2496, 6720, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_137] +id = 137 +position = 1984, 6080, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_141] +id = 141 +position = 3008, 5184, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_143] +id = 143 +position = 2752, 5184, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_144] +id = 144 +position = 3008, 5440, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_146] +id = 146 +position = 2752, 5440, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_147] +id = 147 +position = 2944, 5824, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_148] +id = 148 +position = 2944, 6080, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_149] +id = 149 +position = 1856, 6720, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_150] +id = 150 +position = 576, 6720, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_151] +id = 151 +position = 576, 7488, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_152] +id = 152 +position = 1216, 5568, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_156] +id = 156 +position = 704, 5568, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_162] +id = 162 +position = 1344, 5184, 0 +rotation = 0, 0, 0 +name = WreckedVertCampVan + +[feature_163] +id = 163 +position = 4352, 3008, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_165] +id = 165 +position = 4352, 2752, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_166] +id = 166 +position = 4416, 3392, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_168] +id = 168 +position = 4032, 3392, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_171] +id = 171 +position = 3648, 3392, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_177] +id = 177 +position = 4096, 2880, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_180] +id = 180 +position = 3584, 2752, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_181] +id = 181 +position = 3584, 3008, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_186] +id = 186 +position = 4160, 2752, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_187] +id = 187 +position = 3904, 2752, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_192] +id = 192 +position = 3008, 2496, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_203] +id = 203 +position = 1792, 3008, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_205] +id = 205 +position = 1792, 2496, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_206] +id = 206 +position = 3072, 3264, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_207] +id = 207 +position = 3072, 3520, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_209] +id = 209 +position = 704, 1984, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_210] +id = 210 +position = 1216, 1984, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_211] +id = 211 +position = 1216, 2368, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_212] +id = 212 +position = 1280, 2752, 0 +rotation = 0, 0, 0 +name = BarbTechRuin + +[feature_213] +id = 213 +position = 1280, 3008, 0 +rotation = 0, 0, 0 +name = BarbTechRuin + +[feature_222] +id = 222 +position = 4032, 5184, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_223] +id = 223 +position = 3904, 1600, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_224] +id = 224 +position = 3648, 576, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_227] +id = 227 +position = 2112, 704, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_228] +id = 228 +position = 2112, 1216, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_230] +id = 230 +position = 3072, 1472, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_231] +id = 231 +position = 1216, 1216, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_233] +id = 233 +position = 2880, 704, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_239] +id = 239 +position = 704, 1344, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_247] +id = 247 +position = 6720, 7232, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_248] +id = 248 +position = 7872, 7616, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_249] +id = 249 +position = 7104, 7616, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_254] +id = 254 +position = 3904, 3264, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_258] +id = 258 +position = 2752, 1344, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_260] +id = 260 +position = 4544, 5312, 0 +rotation = 60075, 0, 0 +name = Crane + +[feature_265] +id = 265 +position = 1216, 7616, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_266] +id = 266 +position = 576, 3264, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_271] +id = 271 +position = 2368, 2880, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_283] +id = 283 +position = 7424, 6912, 0 +rotation = 0, 0, 0 +name = WreckedBuilding17 + +[feature_284] +id = 284 +position = 7104, 6848, 0 +rotation = 0, 0, 0 +name = WreckedBuilding16 + +[feature_287] +id = 287 +position = 7744, 7104, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_288] +id = 288 +position = 3712, 6080, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_290] +id = 290 +position = 7104, 6336, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_292] +id = 292 +position = 7360, 6592, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_293] +id = 293 +position = 7616, 6592, 0 +rotation = 0, 0, 0 +name = WreckedVertCampVan + +[feature_295] +id = 295 +position = 3264, 4928, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_299] +id = 299 +position = 1344, 1600, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_302] +id = 302 +position = 4928, 3392, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_303] +id = 303 +position = 4928, 3136, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_344] +id = 344 +position = 6208, 2112, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_345] +id = 345 +position = 6336, 2112, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_352] +id = 352 +position = 7040, 960, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_353] +id = 353 +position = 7040, 1088, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_354] +id = 354 +position = 7040, 1216, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_355] +id = 355 +position = 7040, 1344, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_484] +id = 484 +position = 3904, 1472, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_485] +id = 485 +position = 4032, 1472, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_532] +id = 532 +position = 7744, 1600, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_534] +id = 534 +position = 7360, 1088, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_535] +id = 535 +position = 7360, 704, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_537] +id = 537 +position = 6336, 1728, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_538] +id = 538 +position = 6080, 1728, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_541] +id = 541 +position = 4544, 1472, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_542] +id = 542 +position = 3648, 1472, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_544] +id = 544 +position = 3136, 1856, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_545] +id = 545 +position = 2496, 1856, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_546] +id = 546 +position = 3648, 1856, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_547] +id = 547 +position = 4544, 1856, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_548] +id = 548 +position = 1728, 1856, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_551] +id = 551 +position = 1728, 2624, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_552] +id = 552 +position = 1728, 3392, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_553] +id = 553 +position = 2752, 5696, 0 +rotation = 42780, 0, 0 +name = Crane + +[feature_554] +id = 554 +position = 1728, 5440, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_555] +id = 555 +position = 1728, 6208, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_557] +id = 557 +position = 3520, 6208, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_558] +id = 558 +position = 3520, 5184, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_559] +id = 559 +position = 3520, 5696, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_560] +id = 560 +position = 6848, 6080, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_561] +id = 561 +position = 3520, 3776, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_562] +id = 562 +position = 3520, 3264, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_563] +id = 563 +position = 3520, 2624, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_564] +id = 564 +position = 1728, 832, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_566] +id = 566 +position = 4480, 5504, 0 +rotation = 0, 0, 0 +name = OldFactory + +[feature_567] +id = 567 +position = 2432, 5632, 0 +rotation = 0, 0, 0 +name = OldFactory + +[feature_568] +id = 568 +position = 2432, 6016, 0 +rotation = 0, 0, 0 +name = OldFactory + +[feature_571] +id = 571 +position = 4544, 5824, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_580] +id = 580 +position = 6720, 1728, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_670] +id = 670 +position = 2752, 3264, 0 +rotation = 0, 0, 0 +name = building1 + diff --git a/wrf/cam2/sub2-5/labels.ini b/wrf/cam2/sub2-5/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/sub2-5/struct.ini b/wrf/cam2/sub2-5/struct.ini new file mode 100644 index 0000000..f190dca --- /dev/null +++ b/wrf/cam2/sub2-5/struct.ini @@ -0,0 +1,1592 @@ +[structure_2] +id = 2 +startpos = 2 +name = CollectiveWall +position = 5440, 2112, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3] +id = 3 +startpos = 2 +name = CollectiveWall +position = 5440, 1984, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_9] +id = 9 +startpos = 2 +name = CollectiveWall +position = 5440, 1216, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_10] +id = 10 +startpos = 2 +name = CollectiveWall +position = 5568, 1472, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_11] +id = 11 +startpos = 2 +name = CollectiveWall +position = 5696, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_12] +id = 12 +startpos = 2 +name = CollectiveWall +position = 5696, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_14] +id = 14 +startpos = 2 +name = CollectiveWall +position = 5696, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_19] +id = 19 +startpos = 2 +name = CollectiveWall +position = 6336, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_20] +id = 20 +startpos = 2 +name = CollectiveWall +position = 6464, 2112, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_21] +id = 21 +startpos = 2 +name = CollectiveWall +position = 6592, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_22] +id = 22 +startpos = 2 +name = CollectiveWall +position = 6720, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_23] +id = 23 +startpos = 2 +name = CollectiveWall +position = 6848, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_24] +id = 24 +startpos = 2 +name = CollectiveWall +position = 6976, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_25] +id = 25 +startpos = 2 +name = CollectiveWall +position = 7104, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_39] +id = 39 +startpos = 2 +name = CollectiveWall +position = 5568, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_41] +id = 41 +startpos = 2 +name = CollectiveWall +position = 5696, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_42] +id = 42 +startpos = 2 +name = CollectiveWall +position = 5568, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_45] +id = 45 +startpos = 2 +name = CollectiveWall +position = 5568, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_46] +id = 46 +startpos = 2 +name = CollectiveWall +position = 5696, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_47] +id = 47 +startpos = 2 +name = CollectiveWall +position = 6208, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_52] +id = 52 +startpos = 2 +name = CollectiveCWall +position = 6464, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_56] +id = 56 +startpos = 2 +name = CollectiveWall +position = 6464, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_58] +id = 58 +startpos = 2 +name = CollectiveCWall +position = 6464, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_59] +id = 59 +startpos = 2 +name = CollectiveWall +position = 6592, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_60] +id = 60 +startpos = 2 +name = CollectiveWall +position = 6720, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_61] +id = 61 +startpos = 2 +name = CollectiveWall +position = 6848, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_62] +id = 62 +startpos = 2 +name = CollectiveWall +position = 6976, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_63] +id = 63 +startpos = 2 +name = CollectiveWall +position = 7104, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_67] +id = 67 +startpos = 2 +name = CollectiveCWall +position = 7232, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_69] +id = 69 +startpos = 2 +name = CollectiveWall +position = 7232, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_72] +id = 72 +startpos = 2 +name = CollectiveWall +position = 7232, 2112, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_79] +id = 79 +startpos = 2 +name = CollectiveCWall +position = 6080, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_81] +id = 81 +startpos = 2 +name = CollectiveWall +position = 5696, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_82] +id = 82 +startpos = 2 +name = CollectiveWall +position = 5568, 3136, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_83] +id = 83 +startpos = 2 +name = CollectiveWall +position = 5568, 3264, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_84] +id = 84 +startpos = 2 +name = CollectiveWall +position = 6208, 3136, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_85] +id = 85 +startpos = 2 +name = CollectiveWall +position = 6208, 3264, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_86] +id = 86 +startpos = 2 +name = CollectiveWall +position = 5696, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_88] +id = 88 +startpos = 2 +name = CollectiveCWall +position = 6080, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_89] +id = 89 +startpos = 2 +name = CollectiveCWall +position = 5824, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_91] +id = 91 +startpos = 2 +name = CollectiveWall +position = 5568, 5184, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_92] +id = 92 +startpos = 2 +name = CollectiveWall +position = 5568, 5312, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_93] +id = 93 +startpos = 2 +name = CollectiveWall +position = 5696, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_94] +id = 94 +startpos = 2 +name = CollectiveWall +position = 5696, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_95] +id = 95 +startpos = 2 +name = CollectiveWall +position = 6208, 5184, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_96] +id = 96 +startpos = 2 +name = CollectiveWall +position = 6208, 5312, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_219] +id = 219 +startpos = 2 +name = CollectiveWall +position = 7360, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_305] +id = 305 +startpos = 2 +name = CO-WallTower-HvCan +position = 5824, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_306] +id = 306 +startpos = 2 +name = CO-WallTower-HvCan +position = 6080, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_309] +id = 309 +startpos = 2 +name = CollectiveWall +position = 5440, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_310] +id = 310 +startpos = 2 +name = CO-WallTower-HvCan +position = 5440, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_311] +id = 311 +startpos = 2 +name = CO-WallTower-HvCan +position = 5696, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_312] +id = 312 +startpos = 2 +name = CO-WallTower-HvCan +position = 5440, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_313] +id = 313 +startpos = 2 +name = CO-WallTower-HvCan +position = 5440, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_314] +id = 314 +startpos = 2 +name = CO-WallTower-HvCan +position = 7488, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_315] +id = 315 +startpos = 2 +name = CO-WallTower-HvCan +position = 7744, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_319] +id = 319 +startpos = 2 +name = CO-WallTower-HvCan +position = 6208, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_320] +id = 320 +startpos = 2 +name = CollectiveCWall +position = 6080, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_322] +id = 322 +startpos = 2 +name = CO-WallTower-HvCan +position = 6208, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_323] +id = 323 +startpos = 2 +name = CO-WallTower-HvCan +position = 5568, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_324] +id = 324 +startpos = 2 +name = CO-WallTower-HvCan +position = 5568, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_325] +id = 325 +startpos = 2 +name = CO-WallTower-HvCan +position = 5568, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_326] +id = 326 +startpos = 2 +name = CO-WallTower-HvCan +position = 5568, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_327] +id = 327 +startpos = 2 +name = CO-WallTower-HvCan +position = 6208, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_328] +id = 328 +startpos = 2 +name = CO-WallTower-HvCan +position = 6208, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_331] +id = 331 +startpos = 2 +name = CollectiveWall +position = 5824, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_332] +id = 332 +startpos = 2 +name = CollectiveWall +position = 5952, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_333] +id = 333 +startpos = 2 +name = CollectiveWall +position = 6080, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_334] +id = 334 +startpos = 2 +name = Sys-SensoTower02 +position = 5696, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_335] +id = 335 +startpos = 2 +name = Sys-SensoTower02 +position = 5696, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_336] +id = 336 +startpos = 2 +name = CO-WallTower-HvCan +position = 5440, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_346] +id = 346 +startpos = 2 +name = CO-Tower-HvFlame +position = 5568, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_347] +id = 347 +startpos = 2 +name = CO-Tower-HvFlame +position = 5568, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_356] +id = 356 +startpos = 2 +name = PillBox1 +position = 1344, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_357] +id = 357 +startpos = 2 +name = PillBox1 +position = 1728, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_358] +id = 358 +startpos = 2 +name = CO-Tower-HvFlame +position = 960, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_359] +id = 359 +startpos = 2 +name = CO-Tower-HvFlame +position = 2112, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_372] +id = 372 +startpos = 2 +name = CollectiveWall +position = 3648, 2240, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_373] +id = 373 +startpos = 2 +name = CollectiveWall +position = 3520, 1984, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_375] +id = 375 +startpos = 2 +name = CO-WallTower-HvCan +position = 3520, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_376] +id = 376 +startpos = 2 +name = CO-WallTower-HvCan +position = 3520, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_377] +id = 377 +startpos = 2 +name = CO-WallTower-HvCan +position = 3520, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_378] +id = 378 +startpos = 2 +name = CO-WallTower-HvCan +position = 3520, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_379] +id = 379 +startpos = 2 +name = CollectiveWall +position = 3776, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_380] +id = 380 +startpos = 2 +name = CollectiveWall +position = 3904, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_381] +id = 381 +startpos = 2 +name = CollectiveWall +position = 4032, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_383] +id = 383 +startpos = 2 +name = CollectiveWall +position = 4288, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_384] +id = 384 +startpos = 2 +name = CollectiveWall +position = 4416, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_385] +id = 385 +startpos = 2 +name = CO-WallTower-HvCan +position = 4672, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_386] +id = 386 +startpos = 2 +name = CollectiveWall +position = 4544, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_387] +id = 387 +startpos = 2 +name = CollectiveWall +position = 3520, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_388] +id = 388 +startpos = 2 +name = CollectiveWall +position = 3648, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_389] +id = 389 +startpos = 2 +name = CollectiveWall +position = 3776, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_390] +id = 390 +startpos = 2 +name = CollectiveWall +position = 3904, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_391] +id = 391 +startpos = 2 +name = CollectiveWall +position = 4032, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_392] +id = 392 +startpos = 2 +name = CollectiveWall +position = 4160, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_393] +id = 393 +startpos = 2 +name = CollectiveWall +position = 4288, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_395] +id = 395 +startpos = 2 +name = CO-WallTower-HvCan +position = 4416, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_399] +id = 399 +startpos = 2 +name = CO-WallTower-HvCan +position = 4416, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_402] +id = 402 +startpos = 2 +name = CO-Tower-HvATRkt +position = 4672, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_403] +id = 403 +startpos = 2 +name = CollectiveWall +position = 4800, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_404] +id = 404 +startpos = 2 +name = CO-WallTower-HvCan +position = 4160, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_406] +id = 406 +startpos = 2 +name = A0LightFactory +position = 6208, 576, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_408] +id = 408 +startpos = 2 +name = A0CyborgFactory +position = 6592, 640, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_409] +id = 409 +startpos = 2 +name = A0CyborgFactory +position = 6848, 640, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_410] +id = 410 +startpos = 2 +name = A0ComDroidControl +position = 7424, 2048, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_411] +id = 411 +startpos = 2 +name = CO-Tower-HvATRkt +position = 5696, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_414] +id = 414 +startpos = 2 +name = CO-WallTower-HvCan +position = 6464, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_415] +id = 415 +startpos = 2 +name = CO-WallTower-HvCan +position = 6464, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_417] +id = 417 +startpos = 2 +name = CO-WallTower-HvCan +position = 7232, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_418] +id = 418 +startpos = 2 +name = CollectiveWall +position = 6336, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_419] +id = 419 +startpos = 2 +name = CollectiveWall +position = 6208, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_421] +id = 421 +startpos = 2 +name = A0RepairCentre3 +position = 3904, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_426] +id = 426 +startpos = 2 +name = A0CommandCentreCO +position = 7296, 3456, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_428] +id = 428 +startpos = 2 +name = CollectiveWall +position = 3520, 2112, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_433] +id = 433 +startpos = 2 +name = CO-WallTower-HvCan +position = 7744, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_434] +id = 434 +startpos = 2 +name = CollectiveWall +position = 7232, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_435] +id = 435 +startpos = 2 +name = CO-WallTower-HvCan +position = 7104, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_436] +id = 436 +startpos = 2 +name = CollectiveWall +position = 7360, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_437] +id = 437 +startpos = 2 +name = CollectiveWall +position = 7104, 3520, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_438] +id = 438 +startpos = 2 +name = CollectiveWall +position = 7104, 3392, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_439] +id = 439 +startpos = 2 +name = CollectiveWall +position = 7104, 3264, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_440] +id = 440 +startpos = 2 +name = CollectiveWall +position = 7232, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_441] +id = 441 +startpos = 2 +name = CollectiveWall +position = 7360, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_443] +id = 443 +startpos = 2 +name = CO-WallTower-HvCan +position = 7104, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_445] +id = 445 +startpos = 2 +name = CollectiveWall +position = 7744, 3520, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_446] +id = 446 +startpos = 2 +name = CollectiveWall +position = 7744, 3392, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_447] +id = 447 +startpos = 2 +name = CollectiveWall +position = 7744, 3264, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_448] +id = 448 +startpos = 2 +name = CO-WallTower-HvCan +position = 7744, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_507] +id = 507 +startpos = 2 +name = CO-WallTower-HvCan +position = 7232, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_511] +id = 511 +startpos = 2 +name = NuclearReactor +position = 7040, 1664, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_515] +id = 515 +startpos = 2 +name = A0BaBaPowerGenerator +position = 6336, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_527] +id = 527 +startpos = 2 +name = A0PowerGenerator +position = 7040, 2048, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_529] +id = 529 +startpos = 2 +name = A0BaBaPowerGenerator +position = 6208, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_539] +id = 539 +startpos = 2 +name = A0BaBaPowerGenerator +position = 6080, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_576] +id = 576 +startpos = 2 +name = CoolingTower +position = 6592, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_577] +id = 577 +startpos = 2 +name = CoolingTower +position = 6720, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_578] +id = 578 +startpos = 2 +name = CoolingTower +position = 6592, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_579] +id = 579 +startpos = 2 +name = CoolingTower +position = 6720, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_682] +id = 682 +startpos = 2 +name = A0HardcreteMk1Gate +position = 7616, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_582] +id = 582 +startpos = 2 +name = AASite-QuadMg1 +position = 7488, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_583] +id = 583 +startpos = 2 +name = AASite-QuadMg1 +position = 7488, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_584] +id = 584 +startpos = 2 +name = AASite-QuadMg1 +position = 5568, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_585] +id = 585 +startpos = 2 +name = AASite-QuadMg1 +position = 5696, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_586] +id = 586 +startpos = 2 +name = AASite-QuadMg1 +position = 5696, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_587] +id = 587 +startpos = 2 +name = AASite-QuadMg1 +position = 5568, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_588] +id = 588 +startpos = 2 +name = AASite-QuadMg1 +position = 3648, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_589] +id = 589 +startpos = 2 +name = AASite-QuadMg1 +position = 3648, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_590] +id = 590 +startpos = 2 +name = AASite-QuadMg1 +position = 3648, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_591] +id = 591 +startpos = 2 +name = AASite-QuadMg1 +position = 4672, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_592] +id = 592 +startpos = 2 +name = AASite-QuadMg1 +position = 7488, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_593] +id = 593 +startpos = 2 +name = AASite-QuadMg1 +position = 7488, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_594] +id = 594 +startpos = 2 +name = AASite-QuadMg1 +position = 5696, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_595] +id = 595 +startpos = 2 +name = AASite-QuadMg1 +position = 6080, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_596] +id = 596 +startpos = 2 +name = AASite-QuadMg1 +position = 6080, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_597] +id = 597 +startpos = 2 +name = AASite-QuadMg1 +position = 6080, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_598] +id = 598 +startpos = 2 +name = AASite-QuadMg1 +position = 6080, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_599] +id = 599 +startpos = 2 +name = AASite-QuadMg1 +position = 5696, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_614] +id = 614 +startpos = 2 +name = AASite-QuadMg1 +position = 4416, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_615] +id = 615 +startpos = 2 +name = AASite-QuadMg1 +position = 4160, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_616] +id = 616 +startpos = 2 +name = AASite-QuadMg1 +position = 4288, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_633] +id = 633 +startpos = 2 +name = AASite-QuadMg1 +position = 4800, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_634] +id = 634 +startpos = 2 +name = AASite-QuadMg1 +position = 3904, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_635] +id = 635 +startpos = 2 +name = Sys-SensoTower02 +position = 3904, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_636] +id = 636 +startpos = 2 +name = AASite-QuadMg1 +position = 3776, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_637] +id = 637 +startpos = 2 +name = AASite-QuadMg1 +position = 3904, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_638] +id = 638 +startpos = 2 +name = PillBox6 +position = 3648, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_639] +id = 639 +startpos = 2 +name = PillBox6 +position = 3136, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_640] +id = 640 +startpos = 2 +name = PillBox6 +position = 2496, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_641] +id = 641 +startpos = 2 +name = PillBox6 +position = 3904, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_642] +id = 642 +startpos = 2 +name = PillBox6 +position = 3904, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_643] +id = 643 +startpos = 2 +name = PillBox6 +position = 2496, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_644] +id = 644 +startpos = 2 +name = AASite-QuadMg1 +position = 3136, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_645] +id = 645 +startpos = 2 +name = AASite-QuadMg1 +position = 2752, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_646] +id = 646 +startpos = 2 +name = CollectiveWall +position = 4928, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_658] +id = 658 +startpos = 2 +name = A0VtolPad +position = 7104, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_659] +id = 659 +startpos = 2 +name = A0VtolPad +position = 7232, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_660] +id = 660 +startpos = 2 +name = A0VtolPad +position = 6720, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_661] +id = 661 +startpos = 2 +name = A0VtolPad +position = 6720, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_662] +id = 662 +startpos = 2 +name = CollectiveCWall +position = 6080, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_663] +id = 663 +startpos = 2 +name = CollectiveCWall +position = 5696, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_664] +id = 664 +startpos = 2 +name = CollectiveCWall +position = 5696, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_665] +id = 665 +startpos = 2 +name = CollectiveCWall +position = 7232, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_666] +id = 666 +startpos = 2 +name = CollectiveCWall +position = 7488, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_667] +id = 667 +startpos = 2 +name = CollectiveCWall +position = 7488, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_668] +id = 668 +startpos = 2 +name = CollectiveCWall +position = 5824, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_669] +id = 669 +startpos = 2 +name = CollectiveCWall +position = 5824, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_671] +id = 671 +startpos = 2 +name = A0HardcreteMk1Gate +position = 3520, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_672] +id = 672 +startpos = 2 +name = A0HardcreteMk1Gate +position = 3520, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_673] +id = 673 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5696, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_674] +id = 674 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5696, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_675] +id = 675 +startpos = 2 +name = A0HardcreteMk1Gate +position = 6464, 1856, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_676] +id = 676 +startpos = 2 +name = A0HardcreteMk1Gate +position = 7232, 1856, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_677] +id = 677 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5952, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_678] +id = 678 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5952, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_679] +id = 679 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5952, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_680] +id = 680 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5952, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_681] +id = 681 +startpos = 2 +name = A0HardcreteMk1Gate +position = 7616, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_683] +id = 683 +startpos = 2 +name = A0HardcreteMk1Gate +position = 7616, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam2/sub2-6.gam b/wrf/cam2/sub2-6.gam new file mode 100644 index 0000000000000000000000000000000000000000..dd1feb18e99a0aca3c9af84a8a2fd01d01bdb488 GIT binary patch literal 52 YcmYdK%uVHBfB+^a4Wb;N7{o>g0AJz)B>(^b literal 0 HcmV?d00001 diff --git a/wrf/cam2/sub2-6/droid.ini b/wrf/cam2/sub2-6/droid.ini new file mode 100644 index 0000000..3ab94a4 --- /dev/null +++ b/wrf/cam2/sub2-6/droid.ini @@ -0,0 +1,385 @@ +[droid_529] +id = 529 +startpos = 2 +template = CO-M-ROTMG-T +position = 5696, 2880, 0 +rotation = 0, 0, 0 + +[droid_397] +id = 397 +startpos = 2 +template = CO-H-RotCan-Track +position = 2624, 3648, 0 +rotation = 0, 0, 0 + +[droid_398] +id = 398 +startpos = 2 +template = CO-H-RotCan-Track +position = 2752, 3648, 0 +rotation = 0, 0, 0 + +[droid_399] +id = 399 +startpos = 2 +template = CO-H-RotCan-Track +position = 7360, 1857, 0 +rotation = 0, 0, 0 + +[droid_400] +id = 400 +startpos = 2 +template = CO-H-RotCan-Track +position = 7359, 1729, 0 +rotation = 0, 0, 0 + +[droid_401] +id = 401 +startpos = 2 +template = CO-H-RotCan-Track +position = 7488, 1728, 0 +rotation = 0, 0, 0 + +[droid_402] +id = 402 +startpos = 2 +template = CO-M-ROTMG-T +position = 1600, 4672, 0 +rotation = 0, 0, 0 + +[droid_403] +id = 403 +startpos = 2 +template = CO-M-ROTMG-T +position = 1727, 4673, 0 +rotation = 0, 0, 0 + +[droid_407] +id = 407 +startpos = 2 +template = CO-M-ROTMG-T +position = 6336, 4288, 0 +rotation = 0, 0, 0 + +[droid_408] +id = 408 +startpos = 2 +template = CO-M-ROTMG-T +position = 6464, 4160, 0 +rotation = 0, 0, 0 + +[droid_410] +id = 410 +startpos = 2 +template = CO-M-ROTMG-T +position = 5184, 1984, 0 +rotation = 0, 0, 0 + +[droid_411] +id = 411 +startpos = 2 +template = CO-M-Sensor-T +position = 2368, 3008, 0 +rotation = 0, 0, 0 + +[droid_412] +id = 412 +startpos = 2 +template = CO-M-HPVCannon-Tracks +position = 2624, 2880, 0 +rotation = 0, 0, 0 + +[droid_413] +id = 413 +startpos = 2 +template = CO-M-HPVCannon-Tracks +position = 2496, 2880, 0 +rotation = 0, 0, 0 + +[droid_414] +id = 414 +startpos = 2 +template = CO-M-HPVCannon-Tracks +position = 2240, 2880, 0 +rotation = 0, 0, 0 + +[droid_415] +id = 415 +startpos = 2 +template = CO-M-HPVCannon-Tracks +position = 2368, 2880, 0 +rotation = 0, 0, 0 + +[droid_416] +id = 416 +startpos = 2 +template = CO-H-QuadBofAA-T +position = 2368, 2752, 0 +rotation = 0, 0, 0 + +[droid_417] +id = 417 +startpos = 2 +template = CO-H-QuadBofAA-T +position = 2369, 2624, 0 +rotation = 0, 0, 0 + +[droid_418] +id = 418 +startpos = 2 +template = CO-H-RotCan-Track +position = 2660, 3130, 0 +rotation = 0, 0, 0 + +[droid_419] +id = 419 +startpos = 2 +template = CO-H-RotCan-Track +position = 2368, 3136, 0 +rotation = 0, 0, 0 + +[droid_420] +id = 420 +startpos = 2 +template = CO-H-RotCan-Track +position = 2112, 3136, 0 +rotation = 0, 0, 0 + +[droid_421] +id = 421 +startpos = 2 +template = CO-H-RotCan-Track +position = 1225, 1238, 0 +rotation = 0, 0, 0 + +[droid_430] +id = 430 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 1728, 1088, 0 +rotation = 0, 0, 0 + +[droid_431] +id = 431 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 1600, 1088, 0 +rotation = 0, 0, 0 + +[droid_433] +id = 433 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 1600, 1344, 0 +rotation = 0, 0, 0 + +[droid_434] +id = 434 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 1728, 1344, 0 +rotation = 0, 0, 0 + +[droid_437] +id = 437 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 6977, 2752, 0 +rotation = 0, 0, 0 + +[droid_438] +id = 438 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 7232, 2752, 0 +rotation = 0, 0, 0 + +[droid_439] +id = 439 +startpos = 2 +template = CO-L-RotMG-VTOL +position = 7104, 3008, 0 +rotation = 0, 0, 0 + +[droid_440] +id = 440 +startpos = 2 +template = CO-L-RotMG-VTOL +position = 6592, 1984, 0 +rotation = 0, 0, 0 + +[droid_441] +id = 441 +startpos = 2 +template = CO-L-RotMG-VTOL +position = 6592, 1088, 0 +rotation = 0, 0, 0 + +[droid_442] +id = 442 +startpos = 2 +template = CO-L-RotMG-VTOL +position = 7232, 1216, 0 +rotation = 0, 0, 0 + +[droid_443] +id = 443 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6848, 3136, 0 +rotation = 0, 0, 0 + +[droid_444] +id = 444 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6976, 3136, 0 +rotation = 0, 0, 0 + +[droid_445] +id = 445 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 6720, 3136, 0 +rotation = 0, 0, 0 + +[droid_456] +id = 456 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 6976, 7488, 0 +rotation = 0, 0, 0 + +[droid_457] +id = 457 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 7104, 7488, 0 +rotation = 0, 0, 0 + +[droid_458] +id = 458 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 7104, 7360, 0 +rotation = 0, 0, 0 + +[droid_459] +id = 459 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 6976, 7360, 0 +rotation = 0, 0, 0 + +[droid_460] +id = 460 +startpos = 2 +template = Cyb-Cannon-GROUND +position = 7232, 7360, 0 +rotation = 0, 0, 0 + +[droid_496] +id = 496 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 1216, 1728, 0 +rotation = 0, 0, 0 + +[droid_497] +id = 497 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 1216, 1856, 0 +rotation = 0, 0, 0 + +[droid_498] +id = 498 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 1344, 1856, 0 +rotation = 0, 0, 0 + +[droid_499] +id = 499 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 1344, 1728, 0 +rotation = 0, 0, 0 + +[droid_500] +id = 500 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 960, 2240, 0 +rotation = 0, 0, 0 + +[droid_501] +id = 501 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 1728, 1856, 0 +rotation = 0, 0, 0 + +[droid_514] +id = 514 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 6976, 7228, 0 +rotation = 0, 0, 0 + +[droid_515] +id = 515 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 7106, 7238, 0 +rotation = 0, 0, 0 + +[droid_516] +id = 516 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 7226, 7232, 0 +rotation = 0, 0, 0 + +[droid_517] +id = 517 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 6972, 7604, 0 +rotation = 0, 0, 0 + +[droid_518] +id = 518 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 7226, 7486, 0 +rotation = 0, 0, 0 + +[droid_519] +id = 519 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 1594, 1474, 0 +rotation = 0, 0, 0 + +[droid_520] +id = 520 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 1732, 1472, 0 +rotation = 0, 0, 0 + +[droid_521] +id = 521 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 1342, 1092, 0 +rotation = 0, 0, 0 + +[droid_522] +id = 522 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 1336, 954, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam2/sub2-6/feature.ini b/wrf/cam2/sub2-6/feature.ini new file mode 100644 index 0000000..e0f7ae2 --- /dev/null +++ b/wrf/cam2/sub2-6/feature.ini @@ -0,0 +1,240 @@ +[feature_1] +id = 1 +position = 1984, 1472, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_6] +id = 6 +position = 4544, 1600, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_8] +id = 8 +position = 2112, 3392, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_13] +id = 13 +position = 4224, 6464, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_14] +id = 14 +position = 4672, 6592, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_16] +id = 16 +position = 5120, 7488, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_23] +id = 23 +position = 5184, 5696, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_24] +id = 24 +position = 4160, 4800, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_25] +id = 25 +position = 5440, 2752, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_26] +id = 26 +position = 6464, 1472, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_32] +id = 32 +position = 6208, 3392, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_33] +id = 33 +position = 7424, 3264, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_34] +id = 34 +position = 7488, 3520, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_77] +id = 77 +position = 960, 6336, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_85] +id = 85 +position = 4416, 4288, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_86] +id = 86 +position = 4480, 3520, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_93] +id = 93 +position = 1984, 4800, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_95] +id = 95 +position = 2880, 6464, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_106] +id = 106 +position = 5440, 4160, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_107] +id = 107 +position = 5760, 4288, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_108] +id = 108 +position = 5760, 4672, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_109] +id = 109 +position = 5952, 5312, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_110] +id = 110 +position = 960, 4544, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_111] +id = 111 +position = 832, 4544, 0 +rotation = 0, 0, 0 +name = Pickup + +[feature_112] +id = 112 +position = 1088, 4672, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_113] +id = 113 +position = 1472, 3904, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_114] +id = 114 +position = 576, 3392, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_119] +id = 119 +position = 2624, 960, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_120] +id = 120 +position = 3136, 960, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_121] +id = 121 +position = 4800, 960, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_124] +id = 124 +position = 7872, 960, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_131] +id = 131 +position = 6976, 5440, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_132] +id = 132 +position = 5056, 7104, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_133] +id = 133 +position = 4032, 7104, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_134] +id = 134 +position = 1472, 7104, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_135] +id = 135 +position = 2112, 7104, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_136] +id = 136 +position = 2880, 5696, 0 +rotation = 0, 0, 0 +name = WreckedBuilding16 + +[feature_137] +id = 137 +position = 5184, 3904, 0 +rotation = 0, 0, 0 +name = Pickup + +[feature_142] +id = 142 +position = 896, 4096, 0 +rotation = 0, 0, 0 +name = WreckedBuilding17 + +[feature_508] +id = 508 +position = 2688, 3520, 0 +rotation = 0, 0, 0 +name = building10 + diff --git a/wrf/cam2/sub2-6/labels.ini b/wrf/cam2/sub2-6/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/sub2-6/struct.ini b/wrf/cam2/sub2-6/struct.ini new file mode 100644 index 0000000..e1caa5d --- /dev/null +++ b/wrf/cam2/sub2-6/struct.ini @@ -0,0 +1,1712 @@ +[structure_523] +id = 523 +startpos = 2 +name = A0VtolPad +position = 7360, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_143] +id = 143 +startpos = 2 +name = CollectiveWall +position = 6336, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_146] +id = 146 +startpos = 2 +name = CO-WallTower-RotCan +position = 6336, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_147] +id = 147 +startpos = 2 +name = CO-WallTower-RotCan +position = 6336, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_148] +id = 148 +startpos = 2 +name = CO-WallTower-RotCan +position = 6080, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_149] +id = 149 +startpos = 2 +name = CO-WallTower-RotCan +position = 6080, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_150] +id = 150 +startpos = 2 +name = CollectiveWall +position = 6080, 1984, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_152] +id = 152 +startpos = 2 +name = CO-WallTower-RotCan +position = 7488, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_153] +id = 153 +startpos = 2 +name = CO-WallTower-RotCan +position = 6720, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_154] +id = 154 +startpos = 2 +name = CollectiveWall +position = 6848, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_155] +id = 155 +startpos = 2 +name = CollectiveWall +position = 7360, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_156] +id = 156 +startpos = 2 +name = CO-WallTower-HvCan +position = 6976, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_157] +id = 157 +startpos = 2 +name = CO-WallTower-HvCan +position = 7232, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_161] +id = 161 +startpos = 2 +name = CollectiveCWall +position = 576, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_162] +id = 162 +startpos = 2 +name = CollectiveWall +position = 576, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_163] +id = 163 +startpos = 2 +name = CollectiveWall +position = 576, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_164] +id = 164 +startpos = 2 +name = CollectiveWall +position = 576, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_165] +id = 165 +startpos = 2 +name = CollectiveWall +position = 832, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_166] +id = 166 +startpos = 2 +name = CollectiveWall +position = 960, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_167] +id = 167 +startpos = 2 +name = CollectiveWall +position = 1088, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_168] +id = 168 +startpos = 2 +name = CollectiveWall +position = 1216, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_169] +id = 169 +startpos = 2 +name = CollectiveWall +position = 1344, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_170] +id = 170 +startpos = 2 +name = CollectiveWall +position = 1472, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_171] +id = 171 +startpos = 2 +name = CollectiveWall +position = 1600, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_172] +id = 172 +startpos = 2 +name = CollectiveWall +position = 1728, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_173] +id = 173 +startpos = 2 +name = CollectiveWall +position = 1856, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_174] +id = 174 +startpos = 2 +name = CollectiveWall +position = 1984, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_175] +id = 175 +startpos = 2 +name = CollectiveWall +position = 576, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_177] +id = 177 +startpos = 2 +name = CollectiveWall +position = 576, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_178] +id = 178 +startpos = 2 +name = CollectiveWall +position = 576, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_181] +id = 181 +startpos = 2 +name = CollectiveWall +position = 1600, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_182] +id = 182 +startpos = 2 +name = CollectiveWall +position = 1728, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_183] +id = 183 +startpos = 2 +name = CollectiveWall +position = 1856, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_184] +id = 184 +startpos = 2 +name = CollectiveWall +position = 1984, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_185] +id = 185 +startpos = 2 +name = CollectiveWall +position = 2112, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_186] +id = 186 +startpos = 2 +name = CO-WallTower-HvCan +position = 2112, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_187] +id = 187 +startpos = 2 +name = CO-WallTower-HvCan +position = 2240, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_188] +id = 188 +startpos = 2 +name = CO-WallTower-HvCan +position = 1472, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_190] +id = 190 +startpos = 2 +name = CollectiveWall +position = 1472, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_191] +id = 191 +startpos = 2 +name = CollectiveWall +position = 1472, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_192] +id = 192 +startpos = 2 +name = CollectiveWall +position = 960, 1600, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_193] +id = 193 +startpos = 2 +name = CollectiveWall +position = 576, 1216, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_195] +id = 195 +startpos = 2 +name = CO-WallTower-HvCan +position = 1472, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_196] +id = 196 +startpos = 2 +name = CO-WallTower-HvCan +position = 1088, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_197] +id = 197 +startpos = 2 +name = A0CommandCentreCO +position = 896, 896, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_198] +id = 198 +startpos = 2 +name = A0TankTrap +position = 2112, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_199] +id = 199 +startpos = 2 +name = A0TankTrap +position = 2112, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_200] +id = 200 +startpos = 2 +name = A0TankTrap +position = 2112, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_201] +id = 201 +startpos = 2 +name = A0TankTrap +position = 2112, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_202] +id = 202 +startpos = 2 +name = GuardTower6 +position = 1856, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_203] +id = 203 +startpos = 2 +name = GuardTower6 +position = 1856, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_204] +id = 204 +startpos = 2 +name = GuardTower5 +position = 1856, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_205] +id = 205 +startpos = 2 +name = GuardTower5 +position = 1856, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_207] +id = 207 +startpos = 2 +name = A0TankTrap +position = 2752, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_208] +id = 208 +startpos = 2 +name = A0TankTrap +position = 2880, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_209] +id = 209 +startpos = 2 +name = A0TankTrap +position = 3008, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_210] +id = 210 +startpos = 2 +name = A0TankTrap +position = 3136, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_211] +id = 211 +startpos = 2 +name = A0TankTrap +position = 3136, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_212] +id = 212 +startpos = 2 +name = PillBox6 +position = 3008, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_213] +id = 213 +startpos = 2 +name = PillBox6 +position = 3008, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_214] +id = 214 +startpos = 2 +name = A0CyborgFactory +position = 1728, 768, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_215] +id = 215 +startpos = 2 +name = A0CyborgFactory +position = 1472, 768, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_217] +id = 217 +startpos = 2 +name = CollectiveWall +position = 7360, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_221] +id = 221 +startpos = 2 +name = CollectiveWall +position = 6848, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_222] +id = 222 +startpos = 2 +name = CollectiveWall +position = 6848, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_223] +id = 223 +startpos = 2 +name = CollectiveWall +position = 6848, 1472, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_227] +id = 227 +startpos = 2 +name = CollectiveWall +position = 6848, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_228] +id = 228 +startpos = 2 +name = CollectiveWall +position = 6976, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_229] +id = 229 +startpos = 2 +name = CollectiveWall +position = 7104, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_230] +id = 230 +startpos = 2 +name = CollectiveWall +position = 7232, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_231] +id = 231 +startpos = 2 +name = CollectiveWall +position = 7360, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_232] +id = 232 +startpos = 2 +name = CollectiveWall +position = 7488, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_233] +id = 233 +startpos = 2 +name = CollectiveWall +position = 7616, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_235] +id = 235 +startpos = 2 +name = CollectiveWall +position = 7744, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_236] +id = 236 +startpos = 2 +name = CollectiveWall +position = 7744, 1216, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_237] +id = 237 +startpos = 2 +name = CollectiveWall +position = 7744, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_238] +id = 238 +startpos = 2 +name = CollectiveWall +position = 7744, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_239] +id = 239 +startpos = 2 +name = CollectiveWall +position = 7744, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_240] +id = 240 +startpos = 2 +name = CollectiveWall +position = 7744, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_243] +id = 243 +startpos = 2 +name = CO-WallTower-RotCan +position = 6848, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_244] +id = 244 +startpos = 2 +name = CO-WallTower-RotCan +position = 6848, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_245] +id = 245 +startpos = 2 +name = CollectiveWall +position = 6848, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_246] +id = 246 +startpos = 2 +name = CO-WallTower-RotCan +position = 6848, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_247] +id = 247 +startpos = 2 +name = CO-WallTower-RotCan +position = 7744, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_248] +id = 248 +startpos = 2 +name = CollectiveWall +position = 7744, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_249] +id = 249 +startpos = 2 +name = CollectiveWall +position = 7744, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_252] +id = 252 +startpos = 2 +name = CO-WallTower-RotCan +position = 7744, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_253] +id = 253 +startpos = 2 +name = CO-WallTower-RotCan +position = 7488, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_254] +id = 254 +startpos = 2 +name = CO-WallTower-RotCan +position = 6848, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_256] +id = 256 +startpos = 2 +name = CO-WallTower-RotCan +position = 7232, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_257] +id = 257 +startpos = 2 +name = CO-WallTower-RotCan +position = 6976, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_258] +id = 258 +startpos = 2 +name = CollectiveWall +position = 6848, 1856, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_259] +id = 259 +startpos = 2 +name = CollectiveWall +position = 6848, 1984, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_260] +id = 260 +startpos = 2 +name = A0ComDroidControl +position = 6528, 1792, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_261] +id = 261 +startpos = 2 +name = A0LightFactory +position = 7488, 960, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_263] +id = 263 +startpos = 2 +name = A0PowerGenerator +position = 7552, 1408, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_267] +id = 267 +startpos = 2 +name = A0TankTrap +position = 6720, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_268] +id = 268 +startpos = 2 +name = A0TankTrap +position = 6720, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_269] +id = 269 +startpos = 2 +name = A0TankTrap +position = 6720, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_270] +id = 270 +startpos = 2 +name = A0TankTrap +position = 6848, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_271] +id = 271 +startpos = 2 +name = A0TankTrap +position = 6976, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_273] +id = 273 +startpos = 2 +name = A0TankTrap +position = 7232, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_274] +id = 274 +startpos = 2 +name = A0TankTrap +position = 7360, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_275] +id = 275 +startpos = 2 +name = A0TankTrap +position = 7488, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_276] +id = 276 +startpos = 2 +name = A0TankTrap +position = 7488, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_277] +id = 277 +startpos = 2 +name = A0TankTrap +position = 7488, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_282] +id = 282 +startpos = 2 +name = CO-Tower-HvFlame +position = 6848, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_283] +id = 283 +startpos = 2 +name = CO-Tower-HvFlame +position = 7360, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_284] +id = 284 +startpos = 2 +name = CollectiveWall +position = 2240, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_285] +id = 285 +startpos = 2 +name = CollectiveWall +position = 2240, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_286] +id = 286 +startpos = 2 +name = CollectiveWall +position = 2240, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_288] +id = 288 +startpos = 2 +name = CollectiveWall +position = 2368, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_290] +id = 290 +startpos = 2 +name = CollectiveWall +position = 2624, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_291] +id = 291 +startpos = 2 +name = CollectiveWall +position = 2752, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_296] +id = 296 +startpos = 2 +name = CollectiveWall +position = 2240, 4160, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_297] +id = 297 +startpos = 2 +name = CollectiveWall +position = 2368, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_299] +id = 299 +startpos = 2 +name = CollectiveWall +position = 2624, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_300] +id = 300 +startpos = 2 +name = CollectiveWall +position = 2752, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_302] +id = 302 +startpos = 2 +name = CO-WallTower-HvCan +position = 2240, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_303] +id = 303 +startpos = 2 +name = CO-WallTower-HvCan +position = 2240, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_304] +id = 304 +startpos = 2 +name = CO-WallTower-HvCan +position = 3904, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_305] +id = 305 +startpos = 2 +name = CollectiveWall +position = 3264, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_306] +id = 306 +startpos = 2 +name = CollectiveWall +position = 3392, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_308] +id = 308 +startpos = 2 +name = CollectiveWall +position = 3776, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_309] +id = 309 +startpos = 2 +name = CollectiveWall +position = 3904, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_311] +id = 311 +startpos = 2 +name = CollectiveWall +position = 3904, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_312] +id = 312 +startpos = 2 +name = CollectiveWall +position = 3904, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_316] +id = 316 +startpos = 2 +name = CollectiveWall +position = 3264, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_317] +id = 317 +startpos = 2 +name = CollectiveWall +position = 3392, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_319] +id = 319 +startpos = 2 +name = CollectiveWall +position = 3776, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_320] +id = 320 +startpos = 2 +name = CollectiveWall +position = 3904, 4160, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_321] +id = 321 +startpos = 2 +name = CO-WallTower-HvCan +position = 3904, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_322] +id = 322 +startpos = 2 +name = CO-WallTower-RotCan +position = 2240, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_323] +id = 323 +startpos = 2 +name = CO-WallTower-RotCan +position = 2496, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_324] +id = 324 +startpos = 2 +name = CO-WallTower-RotCan +position = 2240, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_325] +id = 325 +startpos = 2 +name = CO-WallTower-RotCan +position = 2496, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_326] +id = 326 +startpos = 2 +name = CollectiveWall +position = 2368, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_327] +id = 327 +startpos = 2 +name = CollectiveWall +position = 2368, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_328] +id = 328 +startpos = 2 +name = CO-WallTower-HvCan +position = 2496, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_329] +id = 329 +startpos = 2 +name = CO-WallTower-HvCan +position = 2496, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_330] +id = 330 +startpos = 2 +name = CollectiveWall +position = 2496, 4160, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_331] +id = 331 +startpos = 2 +name = CollectiveWall +position = 2496, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_332] +id = 332 +startpos = 2 +name = CO-WallTower-RotCan +position = 3648, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_333] +id = 333 +startpos = 2 +name = CO-WallTower-RotCan +position = 3904, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_334] +id = 334 +startpos = 2 +name = CO-WallTower-RotCan +position = 3648, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_335] +id = 335 +startpos = 2 +name = CO-WallTower-RotCan +position = 3648, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_336] +id = 336 +startpos = 2 +name = CO-WallTower-RotCan +position = 3904, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_337] +id = 337 +startpos = 2 +name = CO-WallTower-RotCan +position = 3648, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_338] +id = 338 +startpos = 2 +name = CollectiveWall +position = 3648, 4160, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_339] +id = 339 +startpos = 2 +name = CollectiveWall +position = 3776, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_340] +id = 340 +startpos = 2 +name = CollectiveWall +position = 3776, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_341] +id = 341 +startpos = 2 +name = CollectiveWall +position = 3648, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_342] +id = 342 +startpos = 2 +name = CollectiveWall +position = 2880, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_343] +id = 343 +startpos = 2 +name = CollectiveWall +position = 3008, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_344] +id = 344 +startpos = 2 +name = CollectiveWall +position = 3136, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_345] +id = 345 +startpos = 2 +name = CO-WallTower-HvCan +position = 2880, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_346] +id = 346 +startpos = 2 +name = CO-WallTower-HvCan +position = 3136, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_351] +id = 351 +startpos = 2 +name = CO-WallTower-RotCan +position = 2880, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_352] +id = 352 +startpos = 2 +name = CollectiveWall +position = 3008, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_353] +id = 353 +startpos = 2 +name = CO-WallTower-RotCan +position = 3136, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_355] +id = 355 +startpos = 2 +name = A0CyborgFactory +position = 2624, 4224, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_365] +id = 365 +startpos = 2 +name = Emplacement-Howitzer105 +position = 2368, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_366] +id = 366 +startpos = 2 +name = Emplacement-Howitzer105 +position = 2368, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_367] +id = 367 +startpos = 2 +name = Emplacement-Howitzer105 +position = 3776, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_368] +id = 368 +startpos = 2 +name = Emplacement-Howitzer105 +position = 3776, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_369] +id = 369 +startpos = 2 +name = CO-Tower-HvFlame +position = 3776, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_371] +id = 371 +startpos = 2 +name = CO-Tower-HvFlame +position = 2368, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_380] +id = 380 +startpos = 2 +name = PillBox4 +position = 2240, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_381] +id = 381 +startpos = 2 +name = PillBox4 +position = 3776, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_446] +id = 446 +startpos = 2 +name = CollectiveWall +position = 832, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_447] +id = 447 +startpos = 2 +name = CO-WallTower-HvCan +position = 576, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_449] +id = 449 +startpos = 2 +name = UplinkCentre +position = 896, 1280, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_450] +id = 450 +startpos = 2 +name = CollectiveWall +position = 704, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_451] +id = 451 +startpos = 2 +name = CollectiveWall +position = 704, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_452] +id = 452 +startpos = 2 +name = Sys-SensoTower02 +position = 704, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_453] +id = 453 +startpos = 2 +name = Sys-SensoTower02 +position = 704, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_454] +id = 454 +startpos = 2 +name = Sys-SensoTower02 +position = 1088, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_455] +id = 455 +startpos = 2 +name = Sys-SensoTower02 +position = 1088, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_468] +id = 468 +startpos = 2 +name = CO-WallTower-HvCan +position = 3648, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_469] +id = 469 +startpos = 2 +name = CollectiveWall +position = 3648, 5056, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_471] +id = 471 +startpos = 2 +name = CO-WallTower-HvCan +position = 2496, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_472] +id = 472 +startpos = 2 +name = CollectiveWall +position = 2496, 5056, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_473] +id = 473 +startpos = 2 +name = A0LightFactory +position = 2752, 4800, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_474] +id = 474 +startpos = 2 +name = A0LightFactory +position = 3392, 4800, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_479] +id = 479 +startpos = 2 +name = AASite-QuadMg1 +position = 3648, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_480] +id = 480 +startpos = 2 +name = AASite-QuadMg1 +position = 3648, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_481] +id = 481 +startpos = 2 +name = AASite-QuadMg1 +position = 2496, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_482] +id = 482 +startpos = 2 +name = AASite-QuadMg1 +position = 2496, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_483] +id = 483 +startpos = 2 +name = AASite-QuadMg1 +position = 3264, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_484] +id = 484 +startpos = 2 +name = AASite-QuadMg1 +position = 2368, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_485] +id = 485 +startpos = 2 +name = AASite-QuadMg1 +position = 3776, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_486] +id = 486 +startpos = 2 +name = AASite-QuadMg1 +position = 1216, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_487] +id = 487 +startpos = 2 +name = AASite-QuadMg1 +position = 1088, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_488] +id = 488 +startpos = 2 +name = AASite-QuadMg1 +position = 704, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_489] +id = 489 +startpos = 2 +name = AASite-QuadMg1 +position = 960, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_490] +id = 490 +startpos = 2 +name = AASite-QuadMg1 +position = 1600, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_492] +id = 492 +startpos = 2 +name = CollectiveWall +position = 2496, 5184, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_493] +id = 493 +startpos = 2 +name = CollectiveWall +position = 3648, 5184, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_494] +id = 494 +startpos = 2 +name = CollectiveWall +position = 3520, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_495] +id = 495 +startpos = 2 +name = CollectiveWall +position = 3520, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_502] +id = 502 +startpos = 2 +name = A0RepairCentre3 +position = 6080, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_509] +id = 509 +startpos = 2 +name = PillBox4 +position = 2752, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_510] +id = 510 +startpos = 2 +name = PillBox4 +position = 2880, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_511] +id = 511 +startpos = 2 +name = CO-Tower-LtATRkt +position = 2752, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_512] +id = 512 +startpos = 2 +name = CO-Tower-LtATRkt +position = 3136, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_513] +id = 513 +startpos = 2 +name = CO-Tower-LtATRkt +position = 3392, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_524] +id = 524 +startpos = 2 +name = A0VtolPad +position = 7488, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_530] +id = 530 +startpos = 2 +name = A0HardcreteMk1Gate +position = 2880, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_531] +id = 531 +startpos = 2 +name = A0HardcreteMk1Gate +position = 3136, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_532] +id = 532 +startpos = 2 +name = A0HardcreteMk1Gate +position = 1216, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_533] +id = 533 +startpos = 2 +name = A0HardcreteMk1Gate +position = 1344, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_534] +id = 534 +startpos = 2 +name = A0HardcreteMk1Gate +position = 7104, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_535] +id = 535 +startpos = 2 +name = A0HardcreteMk1Gate +position = 7104, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_536] +id = 536 +startpos = 2 +name = A0HardcreteMk1Gate +position = 6848, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + diff --git a/wrf/cam2/sub2-7.gam b/wrf/cam2/sub2-7.gam new file mode 100644 index 0000000000000000000000000000000000000000..dd1feb18e99a0aca3c9af84a8a2fd01d01bdb488 GIT binary patch literal 52 YcmYdK%uVHBfB+^a4Wb;N7{o>g0AJz)B>(^b literal 0 HcmV?d00001 diff --git a/wrf/cam2/sub2-7/droid.ini b/wrf/cam2/sub2-7/droid.ini new file mode 100644 index 0000000..8f0da82 --- /dev/null +++ b/wrf/cam2/sub2-7/droid.ini @@ -0,0 +1,175 @@ +[droid_567] +id = 567 +startpos = 2 +template = CO-M-HVAT-Hover +position = 2112, 2986, 0 +rotation = 0, 0, 0 + +[droid_472] +id = 472 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 3264, 5952, 0 +rotation = 0, 0, 0 + +[droid_587] +id = 587 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 2112, 1216, 0 +rotation = 0, 0, 0 + +[droid_568] +id = 568 +startpos = 2 +template = CO-M-HVAT-Hover +position = 2242, 2990, 0 +rotation = 0, 0, 0 + +[droid_433] +id = 433 +startpos = 2 +template = CO-M-HVAT-Hover +position = 2106, 2806, 0 +rotation = 0, 0, 0 + +[droid_434] +id = 434 +startpos = 2 +template = CO-M-HVAT-Hover +position = 2238, 2808, 0 +rotation = 0, 0, 0 + +[droid_435] +id = 435 +startpos = 2 +template = CO-M-HVAT-Hover +position = 2356, 2806, 0 +rotation = 0, 0, 0 + +[droid_445] +id = 445 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 1216, 2368, 0 +rotation = 0, 0, 0 + +[droid_446] +id = 446 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 1344, 2368, 0 +rotation = 0, 0, 0 + +[droid_447] +id = 447 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 1600, 2368, 0 +rotation = 0, 0, 0 + +[droid_448] +id = 448 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 1796, 2368, 0 +rotation = 0, 0, 0 + +[droid_449] +id = 449 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 1728, 704, 0 +rotation = 0, 0, 0 + +[droid_450] +id = 450 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 2112, 960, 0 +rotation = 0, 0, 0 + +[droid_569] +id = 569 +startpos = 2 +template = CO-M-HVAT-Hover +position = 2368, 2988, 0 +rotation = 0, 0, 0 + +[droid_452] +id = 452 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1984, 1216, 0 +rotation = 0, 0, 0 + +[droid_456] +id = 456 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 5083, 862, 0 +rotation = 0, 0, 0 + +[droid_457] +id = 457 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 5056, 1216, 0 +rotation = 0, 0, 0 + +[droid_458] +id = 458 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 5186, 1214, 0 +rotation = 0, 0, 0 + +[droid_459] +id = 459 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 5312, 1216, 0 +rotation = 0, 0, 0 + +[droid_460] +id = 460 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 4800, 832, 0 +rotation = 0, 0, 0 + +[droid_461] +id = 461 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 4682, 1474, 0 +rotation = 0, 0, 0 + +[droid_463] +id = 463 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 6336, 6848, 0 +rotation = 0, 0, 0 + +[droid_464] +id = 464 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 6464, 6848, 0 +rotation = 0, 0, 0 + +[droid_465] +id = 465 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 6208, 6848, 0 +rotation = 0, 0, 0 + +[droid_471] +id = 471 +startpos = 2 +template = CO-H-QuadRotAA-T +position = 3264, 6720, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam2/sub2-7/feature.ini b/wrf/cam2/sub2-7/feature.ini new file mode 100644 index 0000000..0591a14 --- /dev/null +++ b/wrf/cam2/sub2-7/feature.ini @@ -0,0 +1,354 @@ +[feature_234] +id = 234 +position = 448, 7232, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_235] +id = 235 +position = 960, 7616, 0 +rotation = 49152, 0, 0 +name = Pylon + +[feature_236] +id = 236 +position = 576, 7744, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_240] +id = 240 +position = 1344, 7488, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_242] +id = 242 +position = 2880, 7616, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_243] +id = 243 +position = 3904, 7232, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_246] +id = 246 +position = 5824, 7616, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_247] +id = 247 +position = 6208, 7360, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_249] +id = 249 +position = 7488, 6848, 0 +rotation = 16384, 0, 0 +name = Pylon + +[feature_250] +id = 250 +position = 6912, 7552, 0 +rotation = 0, 0, 0 +name = WreckedBuilding17 + +[feature_251] +id = 251 +position = 7616, 7360, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_252] +id = 252 +position = 5312, 6848, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_253] +id = 253 +position = 4288, 6592, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_256] +id = 256 +position = 5312, 6464, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_257] +id = 257 +position = 7616, 6080, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_261] +id = 261 +position = 6976, 3520, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_263] +id = 263 +position = 7488, 1728, 0 +rotation = 0, 0, 0 +name = Pickup + +[feature_264] +id = 264 +position = 7744, 1344, 0 +rotation = 0, 0, 0 +name = Crane + +[feature_265] +id = 265 +position = 4160, 3520, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_266] +id = 266 +position = 4288, 3392, 0 +rotation = 0, 0, 0 +name = BlueCar + +[feature_269] +id = 269 +position = 4288, 4160, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_270] +id = 270 +position = 3520, 4032, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_271] +id = 271 +position = 3136, 4160, 0 +rotation = 16384, 0, 0 +name = Pickup + +[feature_272] +id = 272 +position = 3648, 3520, 0 +rotation = 62805, 0, 0 +name = Crane + +[feature_274] +id = 274 +position = 3584, 3776, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_276] +id = 276 +position = 3776, 5312, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_283] +id = 283 +position = 4544, 5312, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_284] +id = 284 +position = 3136, 4800, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_287] +id = 287 +position = 4992, 4800, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_291] +id = 291 +position = 4800, 4800, 0 +rotation = 27307, 0, 0 +name = Crane + +[feature_292] +id = 292 +position = 4928, 5184, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_296] +id = 296 +position = 4672, 4800, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_297] +id = 297 +position = 1344, 4544, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_298] +id = 298 +position = 2880, 3520, 0 +rotation = 36409, 0, 0 +name = Crane + +[feature_300] +id = 300 +position = 2752, 3648, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_301] +id = 301 +position = 3008, 3648, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_302] +id = 302 +position = 3008, 3904, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_309] +id = 309 +position = 960, 3776, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_317] +id = 317 +position = 1536, 3392, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_318] +id = 318 +position = 1408, 3008, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_319] +id = 319 +position = 1664, 3008, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_321] +id = 321 +position = 1536, 2624, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_328] +id = 328 +position = 1472, 2240, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_333] +id = 333 +position = 1984, 1984, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_337] +id = 337 +position = 3136, 1600, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_339] +id = 339 +position = 3648, 1856, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_343] +id = 343 +position = 3136, 1088, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_345] +id = 345 +position = 3264, 704, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_356] +id = 356 +position = 7232, 3008, 0 +rotation = 0, 0, 0 +name = WreckedVertCampVan + +[feature_357] +id = 357 +position = 7360, 2112, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_367] +id = 367 +position = 4288, 5056, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_498] +id = 498 +position = 7424, 1600, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_564] +id = 564 +position = 1344, 6720, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_565] +id = 565 +position = 1600, 5952, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_566] +id = 566 +position = 3776, 4672, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_577] +id = 577 +position = 4928, 3648, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_584] +id = 584 +position = 1472, 4032, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_289] +id = 289 +position = 4992, 5056, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_290] +id = 290 +position = 4992, 4544, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + diff --git a/wrf/cam2/sub2-7/labels.ini b/wrf/cam2/sub2-7/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/sub2-7/struct.ini b/wrf/cam2/sub2-7/struct.ini new file mode 100644 index 0000000..f5daed9 --- /dev/null +++ b/wrf/cam2/sub2-7/struct.ini @@ -0,0 +1,2056 @@ +[structure_4] +id = 4 +startpos = 2 +name = CollectiveWall +position = 704, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_5] +id = 5 +startpos = 2 +name = CollectiveWall +position = 960, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_6] +id = 6 +startpos = 2 +name = CollectiveWall +position = 1088, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_7] +id = 7 +startpos = 2 +name = CollectiveWall +position = 1216, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_8] +id = 8 +startpos = 2 +name = CollectiveWall +position = 1344, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_9] +id = 9 +startpos = 2 +name = CollectiveWall +position = 1344, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_10] +id = 10 +startpos = 2 +name = CollectiveWall +position = 1344, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_11] +id = 11 +startpos = 2 +name = CollectiveWall +position = 1344, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_18] +id = 18 +startpos = 2 +name = CollectiveWall +position = 1216, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_19] +id = 19 +startpos = 2 +name = CollectiveWall +position = 1088, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_25] +id = 25 +startpos = 2 +name = CollectiveWall +position = 832, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_26] +id = 26 +startpos = 2 +name = CollectiveWall +position = 832, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_27] +id = 27 +startpos = 2 +name = CollectiveWall +position = 832, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_28] +id = 28 +startpos = 2 +name = CollectiveWall +position = 832, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_32] +id = 32 +startpos = 2 +name = A0CommandCentreCO +position = 1024, 1664, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_33] +id = 33 +startpos = 2 +name = CollectiveWall +position = 832, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_34] +id = 34 +startpos = 2 +name = CollectiveWall +position = 832, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_35] +id = 35 +startpos = 2 +name = CollectiveWall +position = 832, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_36] +id = 36 +startpos = 2 +name = CollectiveWall +position = 832, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_37] +id = 37 +startpos = 2 +name = CollectiveWall +position = 832, 1216, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_39] +id = 39 +startpos = 2 +name = CollectiveWall +position = 960, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_42] +id = 42 +startpos = 2 +name = CollectiveWall +position = 4032, 1216, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_43] +id = 43 +startpos = 2 +name = CollectiveWall +position = 4160, 1728, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_44] +id = 44 +startpos = 2 +name = CollectiveWall +position = 4032, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_45] +id = 45 +startpos = 2 +name = CollectiveWall +position = 4032, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_46] +id = 46 +startpos = 2 +name = CollectiveWall +position = 4032, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_49] +id = 49 +startpos = 2 +name = CollectiveWall +position = 4544, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_50] +id = 50 +startpos = 2 +name = CollectiveWall +position = 4672, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_51] +id = 51 +startpos = 2 +name = CollectiveWall +position = 4800, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_53] +id = 53 +startpos = 2 +name = CollectiveCWall +position = 4928, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_54] +id = 54 +startpos = 2 +name = CollectiveWall +position = 5056, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_55] +id = 55 +startpos = 2 +name = CollectiveWall +position = 5184, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_56] +id = 56 +startpos = 2 +name = CollectiveWall +position = 5312, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_58] +id = 58 +startpos = 2 +name = CollectiveWall +position = 5440, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_61] +id = 61 +startpos = 2 +name = CollectiveWall +position = 4416, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_64] +id = 64 +startpos = 2 +name = CollectiveWall +position = 5568, 1472, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_65] +id = 65 +startpos = 2 +name = CollectiveWall +position = 5568, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_70] +id = 70 +startpos = 2 +name = CollectiveWall +position = 5568, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_71] +id = 71 +startpos = 2 +name = CollectiveWall +position = 4800, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_72] +id = 72 +startpos = 2 +name = CollectiveWall +position = 4928, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_73] +id = 73 +startpos = 2 +name = CollectiveWall +position = 5056, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_74] +id = 74 +startpos = 2 +name = CollectiveWall +position = 5184, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_75] +id = 75 +startpos = 2 +name = CollectiveWall +position = 5312, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_76] +id = 76 +startpos = 2 +name = CollectiveWall +position = 5440, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_77] +id = 77 +startpos = 2 +name = CollectiveWall +position = 4672, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_78] +id = 78 +startpos = 2 +name = CollectiveWall +position = 4544, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_79] +id = 79 +startpos = 2 +name = CollectiveWall +position = 4416, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_80] +id = 80 +startpos = 2 +name = CollectiveWall +position = 5568, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_84] +id = 84 +startpos = 2 +name = CollectiveWall +position = 5696, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_85] +id = 85 +startpos = 2 +name = CollectiveWall +position = 5824, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_86] +id = 86 +startpos = 2 +name = CollectiveWall +position = 5952, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_88] +id = 88 +startpos = 2 +name = CollectiveWall +position = 5696, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_89] +id = 89 +startpos = 2 +name = CollectiveWall +position = 5824, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_90] +id = 90 +startpos = 2 +name = CollectiveWall +position = 5952, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_91] +id = 91 +startpos = 2 +name = CollectiveWall +position = 6080, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_99] +id = 99 +startpos = 2 +name = CollectiveWall +position = 4288, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_101] +id = 101 +startpos = 2 +name = CollectiveWall +position = 4288, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_102] +id = 102 +startpos = 2 +name = CollectiveWall +position = 4160, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_106] +id = 106 +startpos = 2 +name = CollectiveWall +position = 6208, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_107] +id = 107 +startpos = 2 +name = CO-Tower-HvATRkt +position = 4416, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_108] +id = 108 +startpos = 2 +name = CO-Tower-MG3 +position = 4416, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_109] +id = 109 +startpos = 2 +name = CO-Tower-MG3 +position = 4416, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_110] +id = 110 +startpos = 2 +name = Sys-SensoTower02 +position = 4416, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_111] +id = 111 +startpos = 2 +name = CollectiveWall +position = 4416, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_112] +id = 112 +startpos = 2 +name = A0CyborgFactory +position = 4672, 768, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_114] +id = 114 +startpos = 2 +name = CO-Tower-RotMG +position = 5440, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_116] +id = 116 +startpos = 2 +name = CO-Tower-RotMG +position = 4160, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_122] +id = 122 +startpos = 2 +name = CollectiveWall +position = 6336, 4160, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_127] +id = 127 +startpos = 2 +name = CollectiveWall +position = 6208, 4160, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_130] +id = 130 +startpos = 2 +name = CollectiveWall +position = 6080, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_131] +id = 131 +startpos = 2 +name = CollectiveWall +position = 6080, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_157] +id = 157 +startpos = 2 +name = CollectiveWall +position = 6848, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_158] +id = 158 +startpos = 2 +name = CollectiveWall +position = 6976, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_160] +id = 160 +startpos = 2 +name = CollectiveWall +position = 7488, 4928, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_161] +id = 161 +startpos = 2 +name = CollectiveWall +position = 7488, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_162] +id = 162 +startpos = 2 +name = CollectiveWall +position = 7488, 4672, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_163] +id = 163 +startpos = 2 +name = CollectiveWall +position = 7488, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_164] +id = 164 +startpos = 2 +name = CollectiveWall +position = 7488, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_165] +id = 165 +startpos = 2 +name = CollectiveWall +position = 7488, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_166] +id = 166 +startpos = 2 +name = CollectiveWall +position = 7104, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_174] +id = 174 +startpos = 2 +name = CollectiveWall +position = 6464, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_175] +id = 175 +startpos = 2 +name = CollectiveWall +position = 6720, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_176] +id = 176 +startpos = 2 +name = CollectiveWall +position = 7232, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_177] +id = 177 +startpos = 2 +name = CollectiveWall +position = 7360, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_178] +id = 178 +startpos = 2 +name = CollectiveWall +position = 7488, 5184, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_179] +id = 179 +startpos = 2 +name = CollectiveWall +position = 7488, 5312, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_180] +id = 180 +startpos = 2 +name = CollectiveWall +position = 7488, 5440, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_181] +id = 181 +startpos = 2 +name = CollectiveWall +position = 7488, 5568, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_184] +id = 184 +startpos = 2 +name = CO-Tower-HvATRkt +position = 6336, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_185] +id = 185 +startpos = 2 +name = CO-Tower-HvATRkt +position = 6208, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_186] +id = 186 +startpos = 2 +name = CO-Tower-HvATRkt +position = 6848, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_188] +id = 188 +startpos = 2 +name = CollectiveWall +position = 6080, 6592, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_189] +id = 189 +startpos = 2 +name = CollectiveWall +position = 6080, 6720, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_190] +id = 190 +startpos = 2 +name = CollectiveWall +position = 6080, 6848, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_192] +id = 192 +startpos = 2 +name = CollectiveWall +position = 6080, 6976, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_193] +id = 193 +startpos = 2 +name = CollectiveWall +position = 6208, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_194] +id = 194 +startpos = 2 +name = CollectiveWall +position = 6336, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_195] +id = 195 +startpos = 2 +name = CollectiveWall +position = 6464, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_196] +id = 196 +startpos = 2 +name = CollectiveWall +position = 6592, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_198] +id = 198 +startpos = 2 +name = CollectiveWall +position = 6976, 6464, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_199] +id = 199 +startpos = 2 +name = CollectiveWall +position = 6976, 6592, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_200] +id = 200 +startpos = 2 +name = CollectiveWall +position = 6976, 6720, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_201] +id = 201 +startpos = 2 +name = CollectiveWall +position = 6976, 6848, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_202] +id = 202 +startpos = 2 +name = CollectiveWall +position = 6976, 6976, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_205] +id = 205 +startpos = 2 +name = CollectiveWall +position = 6848, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_206] +id = 206 +startpos = 2 +name = CollectiveWall +position = 6720, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_209] +id = 209 +startpos = 2 +name = A0LightFactory +position = 7104, 4544, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_210] +id = 210 +startpos = 2 +name = A0CyborgFactory +position = 6720, 6656, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_212] +id = 212 +startpos = 2 +name = CollectiveWall +position = 2880, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_213] +id = 213 +startpos = 2 +name = CollectiveWall +position = 3008, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_214] +id = 214 +startpos = 2 +name = CollectiveWall +position = 3136, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_215] +id = 215 +startpos = 2 +name = CollectiveWall +position = 3264, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_217] +id = 217 +startpos = 2 +name = CollectiveWall +position = 3136, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_218] +id = 218 +startpos = 2 +name = CollectiveWall +position = 3264, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_221] +id = 221 +startpos = 2 +name = CollectiveWall +position = 3392, 6720, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_222] +id = 222 +startpos = 2 +name = CollectiveWall +position = 3392, 6592, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_223] +id = 223 +startpos = 2 +name = CollectiveWall +position = 3392, 6464, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_225] +id = 225 +startpos = 2 +name = CollectiveWall +position = 3392, 5952, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_230] +id = 230 +startpos = 2 +name = CO-Tower-MG3 +position = 2880, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_231] +id = 231 +startpos = 2 +name = CO-Tower-MG3 +position = 3008, 6336, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_232] +id = 232 +startpos = 2 +name = A0PowerGenerator +position = 768, 2432, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_258] +id = 258 +startpos = 2 +name = CollectiveWall +position = 7488, 5056, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_369] +id = 369 +startpos = 2 +name = CollectiveWall +position = 832, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_370] +id = 370 +startpos = 2 +name = CollectiveWall +position = 704, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_371] +id = 371 +startpos = 2 +name = CollectiveWall +position = 576, 2368, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_372] +id = 372 +startpos = 2 +name = CollectiveWall +position = 576, 2240, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_373] +id = 373 +startpos = 2 +name = CollectiveWall +position = 576, 2112, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_374] +id = 374 +startpos = 2 +name = CollectiveWall +position = 576, 1984, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_382] +id = 382 +startpos = 2 +name = CollectiveCWall +position = 576, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_383] +id = 383 +startpos = 2 +name = CO-WallTower-HvCan +position = 576, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_384] +id = 384 +startpos = 2 +name = CollectiveWall +position = 1088, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_385] +id = 385 +startpos = 2 +name = CollectiveWall +position = 1216, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_386] +id = 386 +startpos = 2 +name = CollectiveWall +position = 1344, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_387] +id = 387 +startpos = 2 +name = CollectiveWall +position = 1600, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_389] +id = 389 +startpos = 2 +name = CollectiveWall +position = 1728, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_391] +id = 391 +startpos = 2 +name = CollectiveWall +position = 2240, 2368, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_393] +id = 393 +startpos = 2 +name = CollectiveWall +position = 2240, 2112, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_395] +id = 395 +startpos = 2 +name = CollectiveWall +position = 2240, 1856, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_396] +id = 396 +startpos = 2 +name = CollectiveWall +position = 2240, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_397] +id = 397 +startpos = 2 +name = CollectiveWall +position = 2240, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_399] +id = 399 +startpos = 2 +name = CollectiveWall +position = 2240, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_400] +id = 400 +startpos = 2 +name = CollectiveWall +position = 2240, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_401] +id = 401 +startpos = 2 +name = CollectiveWall +position = 2240, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_402] +id = 402 +startpos = 2 +name = CollectiveWall +position = 2240, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_404] +id = 404 +startpos = 2 +name = CollectiveWall +position = 1472, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_405] +id = 405 +startpos = 2 +name = CollectiveWall +position = 1600, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_406] +id = 406 +startpos = 2 +name = CollectiveWall +position = 1728, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_407] +id = 407 +startpos = 2 +name = CollectiveWall +position = 1856, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_408] +id = 408 +startpos = 2 +name = CollectiveWall +position = 1984, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_409] +id = 409 +startpos = 2 +name = CollectiveWall +position = 2112, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_410] +id = 410 +startpos = 2 +name = CO-WallTower-HvCan +position = 2240, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_411] +id = 411 +startpos = 2 +name = CO-WallTower-HvCan +position = 2240, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_412] +id = 412 +startpos = 2 +name = CO-WallTower-HvCan +position = 1856, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_413] +id = 413 +startpos = 2 +name = CollectiveWall +position = 576, 2496, 0 +rotation = 49152, 0, 0 +modules = 0 + +[structure_414] +id = 414 +startpos = 2 +name = CollectiveWall +position = 576, 2624, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_415] +id = 415 +startpos = 2 +name = A0CyborgFactory +position = 2112, 1536, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_416] +id = 416 +startpos = 2 +name = CO-WallTower-HvCan +position = 2240, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_417] +id = 417 +startpos = 2 +name = CO-WallTower-HvCan +position = 2240, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_418] +id = 418 +startpos = 2 +name = A0LightFactory +position = 1088, 704, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_426] +id = 426 +startpos = 2 +name = CO-Tower-RotMG +position = 2880, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_428] +id = 428 +startpos = 2 +name = CO-Tower-RotMG +position = 2880, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_429] +id = 429 +startpos = 2 +name = PillBox3 +position = 2496, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_436] +id = 436 +startpos = 2 +name = A0VTolFactory1 +position = 1984, 704, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_443] +id = 443 +startpos = 2 +name = A0VtolPad +position = 1344, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_444] +id = 444 +startpos = 2 +name = A0VtolPad +position = 1600, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_462] +id = 462 +startpos = 2 +name = A0VtolPad +position = 6208, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_466] +id = 466 +startpos = 2 +name = Emplacement-RotMor +position = 6848, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_467] +id = 467 +startpos = 2 +name = Emplacement-RotMor +position = 6848, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_469] +id = 469 +startpos = 2 +name = Emplacement-RotMor +position = 6848, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_470] +id = 470 +startpos = 2 +name = Emplacement-RotMor +position = 6848, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_473] +id = 473 +startpos = 2 +name = P0-AASite-SAM1 +position = 2112, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_474] +id = 474 +startpos = 2 +name = AASite-QuadMg1 +position = 1984, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_475] +id = 475 +startpos = 2 +name = AASite-QuadMg1 +position = 960, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_476] +id = 476 +startpos = 2 +name = AASite-QuadMg1 +position = 2112, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_477] +id = 477 +startpos = 2 +name = P0-AASite-SAM1 +position = 704, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_478] +id = 478 +startpos = 2 +name = P0-AASite-SAM1 +position = 5056, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_479] +id = 479 +startpos = 2 +name = P0-AASite-SAM1 +position = 5184, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_480] +id = 480 +startpos = 2 +name = AASite-QuadMg1 +position = 4800, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_481] +id = 481 +startpos = 2 +name = P0-AASite-SAM1 +position = 4288, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_482] +id = 482 +startpos = 2 +name = P0-AASite-SAM1 +position = 6464, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_483] +id = 483 +startpos = 2 +name = P0-AASite-SAM1 +position = 6464, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_484] +id = 484 +startpos = 2 +name = P0-AASite-SAM1 +position = 5824, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_485] +id = 485 +startpos = 2 +name = P0-AASite-SAM1 +position = 5952, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_486] +id = 486 +startpos = 2 +name = AASite-QuadMg1 +position = 5952, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_487] +id = 487 +startpos = 2 +name = AASite-QuadMg1 +position = 6592, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_488] +id = 488 +startpos = 2 +name = AASite-QuadMg1 +position = 6592, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_489] +id = 489 +startpos = 2 +name = AASite-QuadMg1 +position = 6720, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_490] +id = 490 +startpos = 2 +name = AASite-QuadMg1 +position = 6848, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_491] +id = 491 +startpos = 2 +name = P0-AASite-SAM1 +position = 6848, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_492] +id = 492 +startpos = 2 +name = P0-AASite-SAM1 +position = 6848, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_493] +id = 493 +startpos = 2 +name = P0-AASite-SAM1 +position = 3264, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_494] +id = 494 +startpos = 2 +name = P0-AASite-SAM1 +position = 3264, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_495] +id = 495 +startpos = 2 +name = AASite-QuadMg1 +position = 3136, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_496] +id = 496 +startpos = 2 +name = AASite-QuadMg1 +position = 3264, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_501] +id = 501 +startpos = 2 +name = CollectiveCWall +position = 1344, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_502] +id = 502 +startpos = 2 +name = CollectiveCWall +position = 832, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_503] +id = 503 +startpos = 2 +name = CO-WallTower-RotCan +position = 1344, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_504] +id = 504 +startpos = 2 +name = CO-WallTower-RotCan +position = 832, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_505] +id = 505 +startpos = 2 +name = CO-WallTower-RotCan +position = 1344, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_506] +id = 506 +startpos = 2 +name = CO-WallTower-RotCan +position = 1344, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_507] +id = 507 +startpos = 2 +name = CO-WallTower-RotCan +position = 2240, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_508] +id = 508 +startpos = 2 +name = CO-WallTower-RotCan +position = 2240, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_509] +id = 509 +startpos = 2 +name = CollectiveWall +position = 2240, 2240, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_510] +id = 510 +startpos = 2 +name = CollectiveWall +position = 960, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_511] +id = 511 +startpos = 2 +name = CollectiveWall +position = 1472, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_512] +id = 512 +startpos = 2 +name = CollectiveWall +position = 832, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_513] +id = 513 +startpos = 2 +name = CollectiveCWall +position = 4416, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_516] +id = 516 +startpos = 2 +name = CollectiveCWall +position = 4416, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_518] +id = 518 +startpos = 2 +name = CollectiveCWall +position = 4928, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_519] +id = 519 +startpos = 2 +name = CollectiveCWall +position = 5568, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_520] +id = 520 +startpos = 2 +name = CollectiveCWall +position = 5568, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_521] +id = 521 +startpos = 2 +name = CollectiveCWall +position = 5568, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_522] +id = 522 +startpos = 2 +name = CollectiveCWall +position = 5568, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_525] +id = 525 +startpos = 2 +name = CO-WallTower-HvCan +position = 4032, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_526] +id = 526 +startpos = 2 +name = CO-WallTower-RotCan +position = 4032, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_527] +id = 527 +startpos = 2 +name = CO-WallTower-RotCan +position = 4032, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_528] +id = 528 +startpos = 2 +name = CO-WallTower-RotCan +position = 6080, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_529] +id = 529 +startpos = 2 +name = CO-WallTower-RotCan +position = 6336, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_530] +id = 530 +startpos = 2 +name = CollectiveCWall +position = 7488, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_531] +id = 531 +startpos = 2 +name = CO-WallTower-RotCan +position = 7360, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_532] +id = 532 +startpos = 2 +name = CO-WallTower-RotCan +position = 6080, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_533] +id = 533 +startpos = 2 +name = CO-WallTower-RotCan +position = 6080, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_534] +id = 534 +startpos = 2 +name = CO-WallTower-RotCan +position = 6976, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_535] +id = 535 +startpos = 2 +name = CO-WallTower-RotCan +position = 6976, 6336, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_536] +id = 536 +startpos = 2 +name = CO-WallTower-RotCan +position = 6080, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_537] +id = 537 +startpos = 2 +name = CO-WallTower-RotCan +position = 6080, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_538] +id = 538 +startpos = 2 +name = CO-WallTower-RotCan +position = 6464, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_539] +id = 539 +startpos = 2 +name = CO-WallTower-RotCan +position = 6720, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_540] +id = 540 +startpos = 2 +name = CO-WallTower-HvCan +position = 6464, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_541] +id = 541 +startpos = 2 +name = CO-WallTower-HvCan +position = 6720, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_542] +id = 542 +startpos = 2 +name = CO-WallTower-HvCan +position = 7488, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_543] +id = 543 +startpos = 2 +name = CollectiveWall +position = 6080, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_544] +id = 544 +startpos = 2 +name = CO-WallTower-HvCan +position = 2752, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_545] +id = 545 +startpos = 2 +name = CO-WallTower-HvCan +position = 3008, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_546] +id = 546 +startpos = 2 +name = CO-WallTower-HvCan +position = 3392, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_547] +id = 547 +startpos = 2 +name = CO-WallTower-HvCan +position = 3392, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_548] +id = 548 +startpos = 2 +name = CO-WallTower-RotCan +position = 3392, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_549] +id = 549 +startpos = 2 +name = CO-WallTower-RotCan +position = 3392, 6336, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_570] +id = 570 +startpos = 2 +name = A0VtolPad +position = 1600, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_571] +id = 571 +startpos = 2 +name = A0VtolPad +position = 1344, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_572] +id = 572 +startpos = 2 +name = A0VtolPad +position = 1856, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_573] +id = 573 +startpos = 2 +name = A0VtolPad +position = 6464, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_574] +id = 574 +startpos = 2 +name = A0VtolPad +position = 4672, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_575] +id = 575 +startpos = 2 +name = A0VtolPad +position = 4928, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_576] +id = 576 +startpos = 2 +name = A0VtolPad +position = 5184, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_578] +id = 578 +startpos = 2 +name = Emplacement-Howitzer150 +position = 960, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_579] +id = 579 +startpos = 2 +name = Emplacement-Howitzer150 +position = 960, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_580] +id = 580 +startpos = 2 +name = Emplacement-Howitzer150 +position = 960, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_581] +id = 581 +startpos = 2 +name = Sys-SensoTower02 +position = 832, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_582] +id = 582 +startpos = 2 +name = Sys-CB-Tower01 +position = 1088, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_586] +id = 586 +startpos = 2 +name = Emplacement-Howitzer150 +position = 1984, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_588] +id = 588 +startpos = 2 +name = A0HardcreteMk1Gate +position = 3392, 6208, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_589] +id = 589 +startpos = 2 +name = A0HardcreteMk1Gate +position = 6592, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_590] +id = 590 +startpos = 2 +name = A0HardcreteMk1Gate +position = 4032, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_591] +id = 591 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5568, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_592] +id = 592 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5568, 1088, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_593] +id = 593 +startpos = 2 +name = A0HardcreteMk1Gate +position = 2240, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + diff --git a/wrf/cam2/sub2-8.gam b/wrf/cam2/sub2-8.gam new file mode 100644 index 0000000000000000000000000000000000000000..dd1feb18e99a0aca3c9af84a8a2fd01d01bdb488 GIT binary patch literal 52 YcmYdK%uVHBfB+^a4Wb;N7{o>g0AJz)B>(^b literal 0 HcmV?d00001 diff --git a/wrf/cam2/sub2-8/droid.ini b/wrf/cam2/sub2-8/droid.ini new file mode 100644 index 0000000..a2b4965 --- /dev/null +++ b/wrf/cam2/sub2-8/droid.ini @@ -0,0 +1,238 @@ +[droid_204] +id = 204 +startpos = 2 +template = CO-H-QuadBofAA-T +position = 6080, 3776, 0 +rotation = 0, 0, 0 + +[droid_205] +id = 205 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 5952, 3776, 0 +rotation = 0, 0, 0 + +[droid_206] +id = 206 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 6208, 3776, 0 +rotation = 0, 0, 0 + +[droid_207] +id = 207 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 6208, 3648, 0 +rotation = 0, 0, 0 + +[droid_208] +id = 208 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 6080, 3648, 0 +rotation = 0, 0, 0 + +[droid_209] +id = 209 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1088, 2496, 0 +rotation = 0, 0, 0 + +[droid_210] +id = 210 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1344, 2624, 0 +rotation = 0, 0, 0 + +[droid_211] +id = 211 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 1216, 2752, 0 +rotation = 0, 0, 0 + +[droid_212] +id = 212 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 2752, 2752, 0 +rotation = 0, 0, 0 + +[droid_213] +id = 213 +startpos = 2 +template = CO-M-MedCan-Tracks +position = 3008, 2880, 0 +rotation = 0, 0, 0 + +[droid_229] +id = 229 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 7360, 960, 0 +rotation = 0, 0, 0 + +[droid_230] +id = 230 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 7360, 1088, 0 +rotation = 0, 0, 0 + +[droid_231] +id = 231 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 7475, 1109, 0 +rotation = 0, 0, 0 + +[droid_232] +id = 232 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 7360, 832, 0 +rotation = 0, 0, 0 + +[droid_233] +id = 233 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 7488, 832, 0 +rotation = 0, 0, 0 + +[droid_234] +id = 234 +startpos = 2 +template = CO-L-Rocket-LtA-T-VTOL +position = 7616, 832, 0 +rotation = 0, 0, 0 + +[droid_242] +id = 242 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 1088, 6720, 0 +rotation = 0, 0, 0 + +[droid_246] +id = 246 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 1088, 6848, 0 +rotation = 0, 0, 0 + +[droid_247] +id = 247 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 1216, 6848, 0 +rotation = 0, 0, 0 + +[droid_248] +id = 248 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 1342, 6699, 0 +rotation = 0, 0, 0 + +[droid_249] +id = 249 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 6974, 4288, 0 +rotation = 0, 0, 0 + +[droid_250] +id = 250 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 7114, 4302, 0 +rotation = 0, 0, 0 + +[droid_266] +id = 266 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 7362, 4150, 0 +rotation = 0, 0, 0 + +[droid_255] +id = 255 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 7360, 4288, 0 +rotation = 0, 0, 0 + +[droid_256] +id = 256 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 6976, 4672, 0 +rotation = 0, 0, 0 + +[droid_258] +id = 258 +startpos = 2 +template = CO-M-LTAT-Hover +position = 704, 2368, 0 +rotation = 0, 0, 0 + +[droid_259] +id = 259 +startpos = 2 +template = CO-M-LTAT-Hover +position = 832, 2112, 0 +rotation = 0, 0, 0 + +[droid_260] +id = 260 +startpos = 2 +template = CO-M-LTAT-Hover +position = 576, 2496, 0 +rotation = 0, 0, 0 + +[droid_261] +id = 261 +startpos = 2 +template = CO-M-Con-T +position = 832, 2240, 0 +rotation = 0, 0, 0 + +[droid_262] +id = 262 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 1346, 6590, 0 +rotation = 0, 0, 0 + +[droid_263] +id = 263 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 1086, 6596, 0 +rotation = 0, 0, 0 + +[droid_264] +id = 264 +startpos = 2 +template = Cyb-Flamer-GROUND +position = 1214, 6720, 0 +rotation = 0, 0, 0 + +[droid_265] +id = 265 +startpos = 2 +template = Cyb-Rocket-GROUND +position = 7494, 4288, 0 +rotation = 0, 0, 0 + +[droid_278] +id = 278 +startpos = 2 +template = Cyb-RotMG-GROUND +position = 7232, 4416, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam2/sub2-8/feature.ini b/wrf/cam2/sub2-8/feature.ini new file mode 100644 index 0000000..d6054bc --- /dev/null +++ b/wrf/cam2/sub2-8/feature.ini @@ -0,0 +1,180 @@ +[feature_30] +id = 30 +position = 7488, 1984, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_37] +id = 37 +position = 4224, 1088, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_38] +id = 38 +position = 3968, 1088, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_42] +id = 42 +position = 6976, 1856, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_43] +id = 43 +position = 7104, 1856, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_44] +id = 44 +position = 6976, 1600, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_45] +id = 45 +position = 7104, 1600, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_48] +id = 48 +position = 2048, 1088, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_52] +id = 52 +position = 2048, 1472, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_53] +id = 53 +position = 2496, 1600, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_54] +id = 54 +position = 2368, 1600, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_55] +id = 55 +position = 2368, 1856, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_56] +id = 56 +position = 2496, 1856, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_57] +id = 57 +position = 2048, 1600, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_58] +id = 58 +position = 2048, 1728, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_61] +id = 61 +position = 3712, 1088, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_62] +id = 62 +position = 3456, 1088, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_63] +id = 63 +position = 7296, 448, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_64] +id = 64 +position = 7040, 448, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_71] +id = 71 +position = 1600, 6464, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_82] +id = 82 +position = 1984, 6592, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_84] +id = 84 +position = 960, 7104, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_85] +id = 85 +position = 2368, 7104, 0 +rotation = 0, 0, 0 +name = building7 + +[feature_86] +id = 86 +position = 6336, 4544, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_87] +id = 87 +position = 6848, 3776, 0 +rotation = 0, 0, 0 +name = building1 + +[feature_88] +id = 88 +position = 6848, 3264, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_89] +id = 89 +position = 6720, 4416, 0 +rotation = 0, 0, 0 +name = building8 + +[feature_90] +id = 90 +position = 7040, 4160, 0 +rotation = 0, 0, 0 +name = building12 + +[feature_92] +id = 92 +position = 7040, 4544, 0 +rotation = 0, 0, 0 +name = building10 + +[feature_183] +id = 183 +position = 7488, 704, 0 +rotation = 32768, 0, 0 +name = Crane + diff --git a/wrf/cam2/sub2-8/labels.ini b/wrf/cam2/sub2-8/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/sub2-8/struct.ini b/wrf/cam2/sub2-8/struct.ini new file mode 100644 index 0000000..cade76f --- /dev/null +++ b/wrf/cam2/sub2-8/struct.ini @@ -0,0 +1,1184 @@ +[structure_1] +id = 1 +startpos = 2 +name = CollectiveWall +position = 3520, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2] +id = 2 +startpos = 2 +name = CollectiveWall +position = 3648, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3] +id = 3 +startpos = 2 +name = CollectiveWall +position = 4288, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4] +id = 4 +startpos = 2 +name = CollectiveWall +position = 4416, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_11] +id = 11 +startpos = 2 +name = CollectiveWall +position = 7488, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_12] +id = 12 +startpos = 2 +name = CollectiveWall +position = 6976, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_13] +id = 13 +startpos = 2 +name = CollectiveWall +position = 6848, 1600, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_14] +id = 14 +startpos = 2 +name = CollectiveWall +position = 6848, 1728, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_15] +id = 15 +startpos = 2 +name = CollectiveWall +position = 6848, 1856, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_16] +id = 16 +startpos = 2 +name = CollectiveWall +position = 6848, 1984, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_17] +id = 17 +startpos = 2 +name = CollectiveWall +position = 6848, 2112, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_21] +id = 21 +startpos = 2 +name = CollectiveWall +position = 6848, 832, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_22] +id = 22 +startpos = 2 +name = CollectiveWall +position = 6848, 960, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_25] +id = 25 +startpos = 2 +name = CollectiveWall +position = 6848, 704, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_27] +id = 27 +startpos = 2 +name = CollectiveWall +position = 6848, 448, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_28] +id = 28 +startpos = 2 +name = CollectiveWall +position = 6848, 576, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_97] +id = 97 +startpos = 2 +name = CO-WallTower-HvCan +position = 704, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_98] +id = 98 +startpos = 2 +name = CO-WallTower-HvCan +position = 1216, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_99] +id = 99 +startpos = 2 +name = CollectiveWall +position = 832, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_100] +id = 100 +startpos = 2 +name = CollectiveWall +position = 960, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_101] +id = 101 +startpos = 2 +name = CollectiveWall +position = 1088, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_102] +id = 102 +startpos = 2 +name = CO-Tower-HvFlame +position = 960, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_103] +id = 103 +startpos = 2 +name = CO-Tower-HvATRkt +position = 1472, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_104] +id = 104 +startpos = 2 +name = CO-Tower-HvATRkt +position = 1728, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_105] +id = 105 +startpos = 2 +name = Sys-SensoTower02 +position = 1856, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_106] +id = 106 +startpos = 2 +name = CO-WallTower-RotCan +position = 4544, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_107] +id = 107 +startpos = 2 +name = CO-WallTower-RotCan +position = 4160, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_108] +id = 108 +startpos = 2 +name = CO-WallTower-RotCan +position = 3392, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_109] +id = 109 +startpos = 2 +name = CO-WallTower-RotCan +position = 3776, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_110] +id = 110 +startpos = 2 +name = A0TankTrap +position = 3392, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_111] +id = 111 +startpos = 2 +name = A0TankTrap +position = 3520, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_112] +id = 112 +startpos = 2 +name = A0TankTrap +position = 3648, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_113] +id = 113 +startpos = 2 +name = A0TankTrap +position = 3776, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_115] +id = 115 +startpos = 2 +name = A0TankTrap +position = 3776, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_116] +id = 116 +startpos = 2 +name = A0TankTrap +position = 3776, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_117] +id = 117 +startpos = 2 +name = A0TankTrap +position = 3776, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_118] +id = 118 +startpos = 2 +name = A0TankTrap +position = 4160, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_119] +id = 119 +startpos = 2 +name = A0TankTrap +position = 4160, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_120] +id = 120 +startpos = 2 +name = A0TankTrap +position = 4160, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_121] +id = 121 +startpos = 2 +name = A0TankTrap +position = 4160, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_122] +id = 122 +startpos = 2 +name = A0TankTrap +position = 4288, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_123] +id = 123 +startpos = 2 +name = A0TankTrap +position = 4416, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_124] +id = 124 +startpos = 2 +name = A0TankTrap +position = 4544, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_125] +id = 125 +startpos = 2 +name = A0TankTrap +position = 4672, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_126] +id = 126 +startpos = 2 +name = A0TankTrap +position = 4800, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_127] +id = 127 +startpos = 2 +name = A0TankTrap +position = 4928, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_128] +id = 128 +startpos = 2 +name = A0TankTrap +position = 4800, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_131] +id = 131 +startpos = 2 +name = CO-Tower-HvFlame +position = 3648, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_132] +id = 132 +startpos = 2 +name = CO-Tower-HvFlame +position = 3648, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_133] +id = 133 +startpos = 2 +name = CO-Tower-HvFlame +position = 4288, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_134] +id = 134 +startpos = 2 +name = CO-Tower-HvFlame +position = 4288, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_135] +id = 135 +startpos = 2 +name = CO-WallTower-RotCan +position = 3904, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_136] +id = 136 +startpos = 2 +name = CO-WallTower-RotCan +position = 4416, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_137] +id = 137 +startpos = 2 +name = CO-WallTower-HvCan +position = 3904, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_138] +id = 138 +startpos = 2 +name = CO-WallTower-HvCan +position = 4416, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_139] +id = 139 +startpos = 2 +name = CollectiveWall +position = 3904, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_140] +id = 140 +startpos = 2 +name = CollectiveWall +position = 3904, 4160, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_141] +id = 141 +startpos = 2 +name = CollectiveWall +position = 3904, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_142] +id = 142 +startpos = 2 +name = CollectiveWall +position = 3904, 3776, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_143] +id = 143 +startpos = 2 +name = CollectiveWall +position = 3904, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_144] +id = 144 +startpos = 2 +name = CollectiveWall +position = 4416, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_145] +id = 145 +startpos = 2 +name = CollectiveWall +position = 4416, 4160, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_146] +id = 146 +startpos = 2 +name = CollectiveWall +position = 4416, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_147] +id = 147 +startpos = 2 +name = CollectiveWall +position = 4416, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_148] +id = 148 +startpos = 2 +name = CollectiveWall +position = 4416, 3776, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_149] +id = 149 +startpos = 2 +name = CollectiveWall +position = 4032, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_150] +id = 150 +startpos = 2 +name = CollectiveWall +position = 4288, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_151] +id = 151 +startpos = 2 +name = CollectiveWall +position = 4032, 4416, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_152] +id = 152 +startpos = 2 +name = CollectiveWall +position = 4288, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_153] +id = 153 +startpos = 2 +name = Sys-SensoTower02 +position = 4032, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_154] +id = 154 +startpos = 2 +name = Sys-SensoTower02 +position = 4288, 4288, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_155] +id = 155 +startpos = 2 +name = A0CyborgFactory +position = 4288, 3840, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_156] +id = 156 +startpos = 2 +name = P0-AASite-SAM1 +position = 4032, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_157] +id = 157 +startpos = 2 +name = P0-AASite-SAM1 +position = 4032, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_158] +id = 158 +startpos = 2 +name = AASite-QuadMg1 +position = 4032, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_159] +id = 159 +startpos = 2 +name = AASite-QuadMg1 +position = 4288, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_160] +id = 160 +startpos = 2 +name = A0TankTrap +position = 3648, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_161] +id = 161 +startpos = 2 +name = A0TankTrap +position = 3648, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_162] +id = 162 +startpos = 2 +name = A0TankTrap +position = 3776, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_163] +id = 163 +startpos = 2 +name = A0TankTrap +position = 3904, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_164] +id = 164 +startpos = 2 +name = A0TankTrap +position = 4032, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_165] +id = 165 +startpos = 2 +name = A0TankTrap +position = 4288, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_166] +id = 166 +startpos = 2 +name = A0TankTrap +position = 4416, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_167] +id = 167 +startpos = 2 +name = A0TankTrap +position = 4544, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_168] +id = 168 +startpos = 2 +name = A0TankTrap +position = 4672, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_169] +id = 169 +startpos = 2 +name = A0TankTrap +position = 4672, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_170] +id = 170 +startpos = 2 +name = A0TankTrap +position = 4672, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_171] +id = 171 +startpos = 2 +name = A0TankTrap +position = 4672, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_172] +id = 172 +startpos = 2 +name = CO-Tower-HvFlame +position = 3904, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_173] +id = 173 +startpos = 2 +name = CO-Tower-HvFlame +position = 4416, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_176] +id = 176 +startpos = 2 +name = PillBox6 +position = 4032, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_177] +id = 177 +startpos = 2 +name = PillBox6 +position = 4288, 4544, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_178] +id = 178 +startpos = 2 +name = CO-WallTower-HvCan +position = 6848, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_179] +id = 179 +startpos = 2 +name = CO-WallTower-HvCan +position = 7104, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_180] +id = 180 +startpos = 2 +name = CO-WallTower-HvCan +position = 7360, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_181] +id = 181 +startpos = 2 +name = CO-WallTower-HvCan +position = 7616, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_184] +id = 184 +startpos = 2 +name = CO-WallTower-HvCan +position = 6848, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_185] +id = 185 +startpos = 2 +name = CO-WallTower-HvCan +position = 6848, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_186] +id = 186 +startpos = 2 +name = A0TankTrap +position = 6592, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_187] +id = 187 +startpos = 2 +name = A0TankTrap +position = 6592, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_188] +id = 188 +startpos = 2 +name = A0TankTrap +position = 6592, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_189] +id = 189 +startpos = 2 +name = A0TankTrap +position = 6592, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_190] +id = 190 +startpos = 2 +name = A0TankTrap +position = 6720, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_191] +id = 191 +startpos = 2 +name = A0TankTrap +position = 6848, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_192] +id = 192 +startpos = 2 +name = A0TankTrap +position = 6976, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_193] +id = 193 +startpos = 2 +name = A0TankTrap +position = 7488, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_194] +id = 194 +startpos = 2 +name = A0TankTrap +position = 7616, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_195] +id = 195 +startpos = 2 +name = A0TankTrap +position = 7744, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_196] +id = 196 +startpos = 2 +name = A0TankTrap +position = 7872, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_197] +id = 197 +startpos = 2 +name = A0TankTrap +position = 7872, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_198] +id = 198 +startpos = 2 +name = A0TankTrap +position = 7872, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_199] +id = 199 +startpos = 2 +name = PillBox4 +position = 7104, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_200] +id = 200 +startpos = 2 +name = PillBox4 +position = 7360, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_201] +id = 201 +startpos = 2 +name = CO-WallTower-RotCan +position = 6976, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_202] +id = 202 +startpos = 2 +name = CO-WallTower-RotCan +position = 7488, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_203] +id = 203 +startpos = 2 +name = CO-WallTower-RotCan +position = 6720, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_214] +id = 214 +startpos = 2 +name = Emplacement-RotMor +position = 2880, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_215] +id = 215 +startpos = 2 +name = Emplacement-RotMor +position = 3008, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_216] +id = 216 +startpos = 2 +name = Emplacement-RotMor +position = 2880, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_217] +id = 217 +startpos = 2 +name = Emplacement-RotMor +position = 3008, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_218] +id = 218 +startpos = 2 +name = AASite-QuadMg1 +position = 2752, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_219] +id = 219 +startpos = 2 +name = AASite-QuadMg1 +position = 3136, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_220] +id = 220 +startpos = 2 +name = A0LightFactory +position = 3648, 1600, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_221] +id = 221 +startpos = 2 +name = A0LightFactory +position = 4288, 1600, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_226] +id = 226 +startpos = 2 +name = A0VTolFactory1 +position = 7488, 1472, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_228] +id = 228 +startpos = 2 +name = A0VtolPad +position = 7488, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_235] +id = 235 +startpos = 2 +name = A0CommandCentreCO +position = 1792, 1408, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_236] +id = 236 +startpos = 2 +name = A0PowerGenerator +position = 5248, 1920, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_237] +id = 237 +startpos = 2 +name = P0-AASite-SAM1 +position = 5184, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_238] +id = 238 +startpos = 2 +name = P0-AASite-SAM1 +position = 5568, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_239] +id = 239 +startpos = 2 +name = AASite-QuadMg1 +position = 5440, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_240] +id = 240 +startpos = 2 +name = CO-WallTower-RotCan +position = 5696, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_241] +id = 241 +startpos = 2 +name = CO-WallTower-RotCan +position = 5696, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_267] +id = 267 +startpos = 2 +name = A0VtolPad +position = 7232, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_268] +id = 268 +startpos = 2 +name = A0VtolPad +position = 7488, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_269] +id = 269 +startpos = 2 +name = A0VtolPad +position = 7232, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_273] +id = 273 +startpos = 2 +name = Sys-CB-Tower01 +position = 7744, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_274] +id = 274 +startpos = 2 +name = Sys-SensoTower02 +position = 7744, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_275] +id = 275 +startpos = 2 +name = Emplacement-RotHow +position = 6976, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_276] +id = 276 +startpos = 2 +name = Emplacement-RotHow +position = 7104, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_277] +id = 277 +startpos = 2 +name = Emplacement-RotHow +position = 7232, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_279] +id = 279 +startpos = 2 +name = A0HardcreteMk1Gate +position = 6848, 1216, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_280] +id = 280 +startpos = 2 +name = A0HardcreteMk1Gate +position = 6848, 1344, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_281] +id = 281 +startpos = 2 +name = A0HardcreteMk1Gate +position = 4160, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_282] +id = 282 +startpos = 2 +name = A0HardcreteMk1Gate +position = 4160, 4416, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_283] +id = 283 +startpos = 2 +name = A0HardcreteMk1Gate +position = 4032, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_284] +id = 284 +startpos = 2 +name = A0HardcreteMk1Gate +position = 3904, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_285] +id = 285 +startpos = 2 +name = A0HardcreteMk1Gate +position = 7232, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam2/sub2-d.gam b/wrf/cam2/sub2-d.gam new file mode 100644 index 0000000000000000000000000000000000000000..dd1feb18e99a0aca3c9af84a8a2fd01d01bdb488 GIT binary patch literal 52 YcmYdK%uVHBfB+^a4Wb;N7{o>g0AJz)B>(^b literal 0 HcmV?d00001 diff --git a/wrf/cam2/sub2-d/droid.ini b/wrf/cam2/sub2-d/droid.ini new file mode 100644 index 0000000..fa11eab --- /dev/null +++ b/wrf/cam2/sub2-d/droid.ini @@ -0,0 +1,84 @@ +[droid_4178] +id = 4178 +startpos = 2 +template = CO-M-Con-T +position = 4266, 4416, 0 +rotation = 50426, 0, 0 + +[droid_4177] +id = 4177 +startpos = 2 +template = CO-M-Con-T +position = 5296, 4018, 0 +rotation = 11287, 0, 0 + +[droid_4176] +id = 4176 +startpos = 2 +template = CO-M-Con-T +position = 4276, 5816, 0 +rotation = 0, 0, 0 + +[droid_2464] +id = 2464 +startpos = 2 +template = CO-H-QuadBofAA-T +position = 5184, 4160, 0 +rotation = 0, 0, 0 + +[droid_2465] +id = 2465 +startpos = 2 +template = CO-H-QuadBofAA-T +position = 5374, 4865, 0 +rotation = 0, 0, 0 + +[droid_2466] +id = 2466 +startpos = 2 +template = CO-H-QuadBofAA-T +position = 4160, 4800, 0 +rotation = 0, 0, 0 + +[droid_2467] +id = 2467 +startpos = 2 +template = CO-H-QuadBofAA-T +position = 4001, 5431, 0 +rotation = 0, 0, 0 + +[droid_2468] +id = 2468 +startpos = 2 +template = CO-H-QuadBofAA-T +position = 3264, 4032, 0 +rotation = 0, 0, 0 + +[droid_2470] +id = 2470 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4032, 3392, 0 +rotation = 0, 0, 0 + +[droid_2471] +id = 2471 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4160, 3392, 0 +rotation = 0, 0, 0 + +[droid_2473] +id = 2473 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4672, 6592, 0 +rotation = 0, 0, 0 + +[droid_2474] +id = 2474 +startpos = 2 +template = CO-H-HvyCan-Tracks +position = 4800, 6592, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam2/sub2-d/feature.ini b/wrf/cam2/sub2-d/feature.ini new file mode 100644 index 0000000..2ca0a95 --- /dev/null +++ b/wrf/cam2/sub2-d/feature.ini @@ -0,0 +1,216 @@ +[feature_1030] +id = 1030 +position = 1984, 320, 0 +rotation = 0, 0, 0 +name = building3 + +[feature_1141] +id = 1141 +position = 832, 7488, 0 +rotation = 0, 0, 0 +name = building11 + +[feature_1142] +id = 1142 +position = 1216, 4800, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1775] +id = 1775 +position = 6592, 6848, 0 +rotation = 60075, 0, 0 +name = Crane + +[feature_1776] +id = 1776 +position = 7872, 6720, 0 +rotation = 5461, 0, 0 +name = Crane + +[feature_1777] +id = 1777 +position = 7680, 6208, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_1779] +id = 1779 +position = 7360, 6208, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_1780] +id = 1780 +position = 5568, 7488, 0 +rotation = 0, 0, 0 +name = building2 + +[feature_1789] +id = 1789 +position = 7104, 6208, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_1793] +id = 1793 +position = 3264, 7104, 0 +rotation = 0, 0, 0 +name = Chevy + +[feature_1803] +id = 1803 +position = 1728, 7616, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1804] +id = 1804 +position = 1728, 6976, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1805] +id = 1805 +position = 1728, 6208, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1806] +id = 1806 +position = 1728, 4800, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1808] +id = 1808 +position = 1728, 3520, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1809] +id = 1809 +position = 1728, 2880, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1810] +id = 1810 +position = 1728, 2240, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1811] +id = 1811 +position = 1728, 1472, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1817] +id = 1817 +position = 1728, 4160, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1834] +id = 1834 +position = 7616, 3520, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1835] +id = 1835 +position = 7616, 2880, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1836] +id = 1836 +position = 7616, 2240, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1837] +id = 1837 +position = 7616, 1472, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1838] +id = 1838 +position = 7616, 832, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_1859] +id = 1859 +position = 7296, 2944, 0 +rotation = 0, 0, 0 +name = WreckedBuilding17 + +[feature_1944] +id = 1944 +position = 1792, 2112, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_1956] +id = 1956 +position = 7232, 2496, 0 +rotation = 0, 0, 0 +name = WreckedDroidHub + +[feature_1957] +id = 1957 +position = 7104, 3648, 0 +rotation = 0, 0, 0 +name = WreckedSuzukiJeep + +[feature_1963] +id = 1963 +position = 6592, 7104, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_1965] +id = 1965 +position = 6848, 4928, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_1966] +id = 1966 +position = 2624, 1600, 0 +rotation = 0, 0, 0 +name = WreckedBuilding16 + +[feature_2457] +id = 2457 +position = 4672, 5824, 0 +rotation = 8192, 0, 0 +name = Crane + +[feature_2458] +id = 2458 +position = 4416, 5568, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_2459] +id = 2459 +position = 4544, 5568, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_2460] +id = 2460 +position = 4544, 5696, 0 +rotation = 0, 0, 0 +name = OilDrum + +[feature_4209] +id = 4209 +position = 960, 6592, 0 +rotation = 0, 0, 0 +name = building1 + diff --git a/wrf/cam2/sub2-d/labels.ini b/wrf/cam2/sub2-d/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam2/sub2-d/struct.ini b/wrf/cam2/sub2-d/struct.ini new file mode 100644 index 0000000..f9ead4d --- /dev/null +++ b/wrf/cam2/sub2-d/struct.ini @@ -0,0 +1,1768 @@ +[structure_2356] +id = 2356 +startpos = 2 +name = CO-WallTower-HvCan +position = 3776, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2359] +id = 2359 +startpos = 2 +name = CO-WallTower-HvCan +position = 4416, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2375] +id = 2375 +startpos = 2 +name = CO-WallTower-HvCan +position = 4544, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2376] +id = 2376 +startpos = 2 +name = CO-WallTower-HvCan +position = 4928, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2377] +id = 2377 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4544, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2378] +id = 2378 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4928, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2407] +id = 2407 +startpos = 2 +name = CO-WallTower-HvCan +position = 4288, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2411] +id = 2411 +startpos = 2 +name = CO-WallTower-HvCan +position = 4672, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2412] +id = 2412 +startpos = 2 +name = CO-WallTower-HvCan +position = 3776, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2413] +id = 2413 +startpos = 2 +name = CO-WallTower-HvCan +position = 5056, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2414] +id = 2414 +startpos = 2 +name = A0CommandCentreCO +position = 3968, 4864, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2415] +id = 2415 +startpos = 2 +name = A0ComDroidControl +position = 3584, 4352, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2416] +id = 2416 +startpos = 2 +name = A0PowerGenerator +position = 4480, 4352, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2419] +id = 2419 +startpos = 2 +name = A0CyborgFactory +position = 3520, 3712, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2432] +id = 2432 +startpos = 2 +name = Sys-SensoTower02 +position = 2880, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2433] +id = 2433 +startpos = 2 +name = Sys-SensoTower02 +position = 6464, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2438] +id = 2438 +startpos = 2 +name = CO-Tower-LtATRkt +position = 6592, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2439] +id = 2439 +startpos = 2 +name = CO-Tower-LtATRkt +position = 6848, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4333] +id = 4333 +startpos = 2 +name = CollectiveWall +position = 2752, 5696, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2447] +id = 2447 +startpos = 2 +name = CO-Tower-LtATRkt +position = 2752, 3264, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4332] +id = 4332 +startpos = 2 +name = CollectiveWall +position = 2752, 5568, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2449] +id = 2449 +startpos = 2 +name = CO-Tower-LtATRkt +position = 2880, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2450] +id = 2450 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4032, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2452] +id = 2452 +startpos = 2 +name = CO-Tower-HvATRkt +position = 5952, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2453] +id = 2453 +startpos = 2 +name = CO-Tower-HvATRkt +position = 6464, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2455] +id = 2455 +startpos = 2 +name = CO-Tower-HvATRkt +position = 6464, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2456] +id = 2456 +startpos = 2 +name = CO-WallTower-HvCan +position = 6464, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2953] +id = 2953 +startpos = 2 +name = Emplacement-MortarPit02 +position = 2880, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2954] +id = 2954 +startpos = 2 +name = Emplacement-MortarPit02 +position = 2880, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2955] +id = 2955 +startpos = 2 +name = Emplacement-MortarPit02 +position = 3136, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2956] +id = 2956 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6464, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2957] +id = 2957 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6464, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2958] +id = 2958 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6464, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2959] +id = 2959 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6464, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2960] +id = 2960 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6592, 3392, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2961] +id = 2961 +startpos = 2 +name = Emplacement-MortarPit02 +position = 6464, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_2980] +id = 2980 +startpos = 2 +name = CO-WallTower-HvCan +position = 3904, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4226] +id = 4226 +startpos = 2 +name = CollectiveWall +position = 3904, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3034] +id = 3034 +startpos = 2 +name = CO-WallTower-HvCan +position = 3776, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3047] +id = 3047 +startpos = 2 +name = CO-WallTower-HvCan +position = 6464, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3054] +id = 3054 +startpos = 2 +name = CO-WallTower-HvCan +position = 6208, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3055] +id = 3055 +startpos = 2 +name = CO-WallTower-HvCan +position = 6208, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4348] +id = 4348 +startpos = 2 +name = CollectiveWall +position = 5824, 5312, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3063] +id = 3063 +startpos = 2 +name = CO-WallTower-HvCan +position = 5056, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3075] +id = 3075 +startpos = 2 +name = CO-WallTower-HvCan +position = 4288, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3089] +id = 3089 +startpos = 2 +name = CO-WallTower-HvCan +position = 5824, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3099] +id = 3099 +startpos = 2 +name = CO-WallTower-HvCan +position = 5184, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3120] +id = 3120 +startpos = 2 +name = CO-WallTower-HvCan +position = 6592, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4347] +id = 4347 +startpos = 2 +name = CollectiveWall +position = 5824, 5184, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4283] +id = 4283 +startpos = 2 +name = CO-Tower-HvATRkt +position = 5440, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4282] +id = 4282 +startpos = 2 +name = CO-Tower-HvATRkt +position = 5056, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_3223] +id = 3223 +startpos = 1 +name = UplinkCentre +position = 4480, 4864, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4261] +id = 4261 +startpos = 2 +name = CollectiveCWall +position = 3776, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4158] +id = 4158 +startpos = 2 +name = CO-Tower-LtATRkt +position = 2880, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4172] +id = 4172 +startpos = 2 +name = Sys-SensoTower02 +position = 6336, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4173] +id = 4173 +startpos = 2 +name = Sys-SensoTower02 +position = 3008, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4174] +id = 4174 +startpos = 2 +name = A0ResearchFacility +position = 4096, 5632, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_4179] +id = 4179 +startpos = 2 +name = CO-Tower-RotMG +position = 3904, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4180] +id = 4180 +startpos = 2 +name = CO-Tower-RotMG +position = 4288, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4181] +id = 4181 +startpos = 2 +name = CO-Tower-HvFlame +position = 3776, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4182] +id = 4182 +startpos = 2 +name = CO-Tower-HvFlame +position = 4416, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4183] +id = 4183 +startpos = 2 +name = Sys-CB-Tower01 +position = 2752, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4184] +id = 4184 +startpos = 2 +name = Sys-CB-Tower01 +position = 6336, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4185] +id = 4185 +startpos = 2 +name = AASite-QuadBof +position = 6336, 4800, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4186] +id = 4186 +startpos = 2 +name = AASite-QuadBof +position = 6336, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4187] +id = 4187 +startpos = 2 +name = AASite-QuadBof +position = 3136, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4188] +id = 4188 +startpos = 2 +name = AASite-QuadBof +position = 3520, 5184, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4189] +id = 4189 +startpos = 2 +name = AASite-QuadBof +position = 3520, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4227] +id = 4227 +startpos = 2 +name = CollectiveWall +position = 4288, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4191] +id = 4191 +startpos = 2 +name = AASite-QuadBof +position = 4288, 4672, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4192] +id = 4192 +startpos = 2 +name = AASite-QuadBof +position = 2752, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4193] +id = 4193 +startpos = 2 +name = AASite-QuadBof +position = 3008, 2880, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4194] +id = 4194 +startpos = 2 +name = AASite-QuadBof +position = 5568, 2752, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4262] +id = 4262 +startpos = 2 +name = CollectiveCWall +position = 4416, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4196] +id = 4196 +startpos = 2 +name = Emplacement-Rocket06-IDF +position = 3392, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4197] +id = 4197 +startpos = 2 +name = Emplacement-Rocket06-IDF +position = 3392, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4198] +id = 4198 +startpos = 2 +name = Emplacement-Rocket06-IDF +position = 3520, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4199] +id = 4199 +startpos = 2 +name = Emplacement-Rocket06-IDF +position = 3520, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4343] +id = 4343 +startpos = 2 +name = Emplacement-Howitzer105 +position = 4032, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4342] +id = 4342 +startpos = 2 +name = Emplacement-Howitzer105 +position = 4160, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4341] +id = 4341 +startpos = 2 +name = Emplacement-Howitzer105 +position = 4160, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4340] +id = 4340 +startpos = 2 +name = Emplacement-Howitzer105 +position = 4032, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4210] +id = 4210 +startpos = 2 +name = A0LightFactory +position = 5568, 4416, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_4211] +id = 4211 +startpos = 2 +name = A0LightFactory +position = 4928, 4416, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_4212] +id = 4212 +startpos = 2 +name = A0LightFactory +position = 4928, 3776, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_4213] +id = 4213 +startpos = 2 +name = A0LightFactory +position = 5568, 3776, 0 +rotation = 0, 0, 0 +modules = 2 + +[structure_4222] +id = 4222 +startpos = 2 +name = CollectiveWall +position = 4544, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4223] +id = 4223 +startpos = 2 +name = CollectiveWall +position = 4416, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4224] +id = 4224 +startpos = 2 +name = CollectiveWall +position = 4160, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4225] +id = 4225 +startpos = 2 +name = CollectiveWall +position = 4032, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4228] +id = 4228 +startpos = 2 +name = CollectiveWall +position = 4672, 4928, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4229] +id = 4229 +startpos = 2 +name = CollectiveWall +position = 4672, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4230] +id = 4230 +startpos = 2 +name = CollectiveWall +position = 4672, 4672, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4231] +id = 4231 +startpos = 2 +name = CollectiveWall +position = 4672, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4232] +id = 4232 +startpos = 2 +name = CollectiveWall +position = 4672, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4233] +id = 4233 +startpos = 2 +name = CollectiveWall +position = 4672, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4234] +id = 4234 +startpos = 2 +name = CollectiveCWall +position = 4416, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4235] +id = 4235 +startpos = 2 +name = CollectiveCWall +position = 4416, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4236] +id = 4236 +startpos = 2 +name = CollectiveCWall +position = 3776, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4237] +id = 4237 +startpos = 2 +name = CollectiveCWall +position = 3776, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4238] +id = 4238 +startpos = 2 +name = CO-WallTower-HvCan +position = 4288, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4239] +id = 4239 +startpos = 2 +name = CO-WallTower-HvCan +position = 3904, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4240] +id = 4240 +startpos = 2 +name = CO-WallTower-HvCan +position = 3904, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4241] +id = 4241 +startpos = 2 +name = CollectiveWall +position = 3776, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4242] +id = 4242 +startpos = 2 +name = CollectiveWall +position = 3776, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4243] +id = 4243 +startpos = 2 +name = CollectiveWall +position = 3776, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4244] +id = 4244 +startpos = 2 +name = CollectiveWall +position = 3776, 4672, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4245] +id = 4245 +startpos = 2 +name = CollectiveWall +position = 3776, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4246] +id = 4246 +startpos = 2 +name = CollectiveWall +position = 3776, 4928, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4247] +id = 4247 +startpos = 2 +name = CollectiveWall +position = 3776, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4248] +id = 4248 +startpos = 2 +name = CollectiveWall +position = 4416, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4249] +id = 4249 +startpos = 2 +name = CollectiveWall +position = 4544, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4250] +id = 4250 +startpos = 2 +name = CO-WallTower-HvCan +position = 4672, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4251] +id = 4251 +startpos = 2 +name = CollectiveWall +position = 3776, 3776, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4252] +id = 4252 +startpos = 2 +name = CollectiveWall +position = 3776, 3648, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4253] +id = 4253 +startpos = 2 +name = CollectiveWall +position = 3776, 3520, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4254] +id = 4254 +startpos = 2 +name = CollectiveWall +position = 3776, 3392, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4255] +id = 4255 +startpos = 2 +name = CollectiveWall +position = 3776, 3264, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4256] +id = 4256 +startpos = 2 +name = CollectiveWall +position = 3776, 3136, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4257] +id = 4257 +startpos = 2 +name = CollectiveWall +position = 4416, 3776, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4258] +id = 4258 +startpos = 2 +name = CollectiveWall +position = 4416, 3648, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4259] +id = 4259 +startpos = 2 +name = CollectiveCWall +position = 4416, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4260] +id = 4260 +startpos = 2 +name = CollectiveCWall +position = 4416, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4263] +id = 4263 +startpos = 2 +name = CollectiveWall +position = 4544, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4264] +id = 4264 +startpos = 2 +name = CollectiveWall +position = 4672, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4265] +id = 4265 +startpos = 2 +name = CollectiveWall +position = 4800, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4266] +id = 4266 +startpos = 2 +name = CollectiveWall +position = 4928, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4267] +id = 4267 +startpos = 2 +name = CollectiveWall +position = 5568, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4268] +id = 4268 +startpos = 2 +name = CollectiveWall +position = 5696, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4269] +id = 4269 +startpos = 2 +name = CollectiveWall +position = 4672, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4270] +id = 4270 +startpos = 2 +name = CollectiveWall +position = 4544, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4271] +id = 4271 +startpos = 2 +name = CollectiveWall +position = 4928, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4272] +id = 4272 +startpos = 2 +name = CollectiveWall +position = 4800, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4273] +id = 4273 +startpos = 2 +name = CollectiveWall +position = 5056, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4274] +id = 4274 +startpos = 2 +name = CollectiveWall +position = 5184, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4275] +id = 4275 +startpos = 2 +name = CollectiveWall +position = 5440, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4276] +id = 4276 +startpos = 2 +name = CollectiveWall +position = 5312, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4277] +id = 4277 +startpos = 2 +name = CollectiveWall +position = 5568, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4278] +id = 4278 +startpos = 2 +name = CollectiveWall +position = 5696, 3136, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4279] +id = 4279 +startpos = 2 +name = CO-WallTower-HvCan +position = 5824, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4280] +id = 4280 +startpos = 2 +name = CO-Tower-HvATRkt +position = 5056, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4281] +id = 4281 +startpos = 2 +name = CO-Tower-HvATRkt +position = 5440, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4284] +id = 4284 +startpos = 2 +name = CollectiveWall +position = 4800, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4285] +id = 4285 +startpos = 2 +name = CollectiveWall +position = 4928, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4286] +id = 4286 +startpos = 2 +name = CollectiveWall +position = 5568, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4287] +id = 4287 +startpos = 2 +name = CollectiveWall +position = 5696, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4288] +id = 4288 +startpos = 2 +name = CO-WallTower-HvCan +position = 5824, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4289] +id = 4289 +startpos = 2 +name = CollectiveWall +position = 5824, 3648, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4290] +id = 4290 +startpos = 2 +name = CollectiveWall +position = 5824, 3776, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4291] +id = 4291 +startpos = 2 +name = CollectiveWall +position = 5824, 3904, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4292] +id = 4292 +startpos = 2 +name = CollectiveWall +position = 5824, 4032, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4293] +id = 4293 +startpos = 2 +name = CollectiveWall +position = 5824, 4160, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4294] +id = 4294 +startpos = 2 +name = CollectiveWall +position = 5824, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4295] +id = 4295 +startpos = 2 +name = CollectiveWall +position = 5824, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4296] +id = 4296 +startpos = 2 +name = CollectiveWall +position = 5824, 4672, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4297] +id = 4297 +startpos = 2 +name = CollectiveWall +position = 5824, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4298] +id = 4298 +startpos = 2 +name = CollectiveWall +position = 5824, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4299] +id = 4299 +startpos = 2 +name = CollectiveWall +position = 5824, 4928, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4300] +id = 4300 +startpos = 2 +name = CollectiveWall +position = 5824, 3392, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4301] +id = 4301 +startpos = 2 +name = CollectiveWall +position = 5824, 3264, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4302] +id = 4302 +startpos = 2 +name = CO-WallTower-HvCan +position = 3392, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4303] +id = 4303 +startpos = 2 +name = CO-WallTower-HvCan +position = 3136, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4304] +id = 4304 +startpos = 2 +name = CO-WallTower-HvCan +position = 3392, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4305] +id = 4305 +startpos = 2 +name = CO-WallTower-HvCan +position = 3136, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4306] +id = 4306 +startpos = 2 +name = CollectiveWall +position = 3648, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4307] +id = 4307 +startpos = 2 +name = CollectiveWall +position = 3520, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4308] +id = 4308 +startpos = 2 +name = CollectiveWall +position = 3520, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4309] +id = 4309 +startpos = 2 +name = CollectiveWall +position = 3648, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4310] +id = 4310 +startpos = 2 +name = CO-Tower-HvATRkt +position = 2752, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4311] +id = 4311 +startpos = 2 +name = CollectiveCWall +position = 2752, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4312] +id = 4312 +startpos = 2 +name = CollectiveWall +position = 3008, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4313] +id = 4313 +startpos = 2 +name = CollectiveWall +position = 2880, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4314] +id = 4314 +startpos = 2 +name = CollectiveWall +position = 3008, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4315] +id = 4315 +startpos = 2 +name = CollectiveWall +position = 2880, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4316] +id = 4316 +startpos = 2 +name = CO-WallTower-HvCan +position = 3776, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4317] +id = 4317 +startpos = 2 +name = CollectiveWall +position = 3648, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4318] +id = 4318 +startpos = 2 +name = CollectiveWall +position = 3520, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4319] +id = 4319 +startpos = 2 +name = CollectiveWall +position = 3008, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4320] +id = 4320 +startpos = 2 +name = CollectiveWall +position = 2880, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4321] +id = 4321 +startpos = 2 +name = CO-Tower-HvATRkt +position = 2752, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4322] +id = 4322 +startpos = 2 +name = CO-WallTower-HvCan +position = 3392, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4323] +id = 4323 +startpos = 2 +name = CO-WallTower-HvCan +position = 3136, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4324] +id = 4324 +startpos = 2 +name = CollectiveWall +position = 3776, 5184, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4325] +id = 4325 +startpos = 2 +name = CollectiveWall +position = 3776, 5312, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4326] +id = 4326 +startpos = 2 +name = CollectiveWall +position = 3776, 5440, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4327] +id = 4327 +startpos = 2 +name = CollectiveWall +position = 3776, 5568, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4328] +id = 4328 +startpos = 2 +name = CollectiveWall +position = 3776, 5696, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4329] +id = 4329 +startpos = 2 +name = CollectiveWall +position = 2752, 5184, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4330] +id = 4330 +startpos = 2 +name = CollectiveWall +position = 2752, 5312, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4331] +id = 4331 +startpos = 2 +name = CollectiveWall +position = 2752, 5440, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4334] +id = 4334 +startpos = 2 +name = CollectiveWall +position = 2752, 4928, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4335] +id = 4335 +startpos = 2 +name = CollectiveWall +position = 2752, 4800, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4336] +id = 4336 +startpos = 2 +name = CollectiveWall +position = 2752, 4672, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4337] +id = 4337 +startpos = 2 +name = CollectiveWall +position = 2752, 4544, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4338] +id = 4338 +startpos = 2 +name = CollectiveWall +position = 2752, 4288, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4339] +id = 4339 +startpos = 2 +name = CollectiveWall +position = 2752, 4416, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4344] +id = 4344 +startpos = 2 +name = CO-WallTower-HvCan +position = 3776, 6208, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4345] +id = 4345 +startpos = 2 +name = CollectiveWall +position = 3776, 5952, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4346] +id = 4346 +startpos = 2 +name = CollectiveWall +position = 3776, 6080, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_4349] +id = 4349 +startpos = 2 +name = CollectiveCWall +position = 5824, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4350] +id = 4350 +startpos = 2 +name = CollectiveCWall +position = 5696, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4351] +id = 4351 +startpos = 2 +name = CO-WallTower-HvCan +position = 5824, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4353] +id = 4353 +startpos = 2 +name = CO-WallTower-HvCan +position = 5824, 5440, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4354] +id = 4354 +startpos = 2 +name = CollectiveWall +position = 5568, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4355] +id = 4355 +startpos = 2 +name = CollectiveWall +position = 5440, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4356] +id = 4356 +startpos = 2 +name = CollectiveWall +position = 5312, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4357] +id = 4357 +startpos = 2 +name = CollectiveWall +position = 5184, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4358] +id = 4358 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5312, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4359] +id = 4359 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5184, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4360] +id = 4360 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5312, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4361] +id = 4361 +startpos = 2 +name = A0HardcreteMk1Gate +position = 5184, 3520, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4362] +id = 4362 +startpos = 2 +name = A0HardcreteMk1Gate +position = 4160, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4363] +id = 4363 +startpos = 2 +name = A0HardcreteMk1Gate +position = 4032, 3904, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4364] +id = 4364 +startpos = 2 +name = A0HardcreteMk1Gate +position = 3264, 4160, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4365] +id = 4365 +startpos = 2 +name = A0HardcreteMk1Gate +position = 3264, 5056, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4366] +id = 4366 +startpos = 2 +name = A0HardcreteMk1Gate +position = 3264, 5824, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4367] +id = 4367 +startpos = 2 +name = CO-Tower-RotMG +position = 4544, 3648, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4368] +id = 4368 +startpos = 2 +name = CO-Tower-LtATRkt +position = 4544, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4369] +id = 4369 +startpos = 2 +name = CO-Tower-LtATRkt +position = 3648, 4032, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4370] +id = 4370 +startpos = 2 +name = CO-Tower-RotMG +position = 4800, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_4371] +id = 4371 +startpos = 2 +name = CO-Tower-RotMG +position = 5696, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + diff --git a/wrf/cam3/cam3-4.gam b/wrf/cam3/cam3-4.gam new file mode 100644 index 0000000000000000000000000000000000000000..c79504f99e47580b15fabaa743bc4c268325ebe1 GIT binary patch literal 52 YcmYdK%uVHBfB+^a4WbgD7{o>g0A^wWWdHyG literal 0 HcmV?d00001 diff --git a/wrf/cam3/cam3-4/labels.ini b/wrf/cam3/cam3-4/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam3/cam3-4/ttypes.ttp b/wrf/cam3/cam3-4/ttypes.ttp new file mode 100644 index 0000000000000000000000000000000000000000..b35b0480df515a8abfa493d51d1db37b71567f6d GIT binary patch literal 192 zcmYjLK@Na02rI@Rjvx9854-q#Tb#+(Kq&1R#(3@kaIy5Z1%^P9CmhE_a5nCo+oV6q s9r~8r5Kzs-({=zkZxVt0XTL=!9Hycb2iECT)DV?7tFt0Y_>C6aWAK literal 0 HcmV?d00001 diff --git a/wrf/cam3/cam3a.gam b/wrf/cam3/cam3a.gam new file mode 100644 index 0000000000000000000000000000000000000000..ec5e3d1b3be634f32effc6e177594df43e6b4ffc GIT binary patch literal 52 YcmYdK%uVHBKn32pq7P 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 literal 0 HcmV?d00001 diff --git a/wrf/cam3/cam3c/labels.ini b/wrf/cam3/cam3c/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam3/cam3c/ttypes.ttp b/wrf/cam3/cam3c/ttypes.ttp new file mode 100644 index 0000000000000000000000000000000000000000..b35b0480df515a8abfa493d51d1db37b71567f6d GIT binary patch literal 192 zcmYjLK@Na02rI@Rjvx9854-q#Tb#+(Kq&1R#(3@kaIy5Z1%^P9CmhE_a5nCo+oV6q s9r~8r5Kzs-({=zkZxVt0XTL=!9Hycb2iECT)DV?7tFt0Y_>C6aWAK literal 0 HcmV?d00001 diff --git a/wrf/cam3/cam3d.gam b/wrf/cam3/cam3d.gam new file mode 100644 index 0000000000000000000000000000000000000000..30b1ef87ec7cfbe74cdc259fef3a4134ab7c53f7 GIT binary patch literal 52 acmYdK%uVHBfB;4)4Wb-C1hN2#4+Q{O(E;TE literal 0 HcmV?d00001 diff --git a/wrf/cam3/cam3d/game.map b/wrf/cam3/cam3d/game.map new file mode 100644 index 0000000000000000000000000000000000000000..bac54c661cf81e71dd027323081bbc54705fad44 GIT binary patch literal 49572 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 literal 0 HcmV?d00001 diff --git a/wrf/cam3/cam3d/labels.ini b/wrf/cam3/cam3d/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam3/cam3d/ttypes.ttp b/wrf/cam3/cam3d/ttypes.ttp new file mode 100644 index 0000000000000000000000000000000000000000..b35b0480df515a8abfa493d51d1db37b71567f6d GIT binary patch literal 192 zcmYjLK@Na02rI@Rjvx9854-q#Tb#+(Kq&1R#(3@kaIy5Z1%^P9CmhE_a5nCo+oV6q s9r~8r5Kzs-({=zkZxVt0XTL=!9Hycb2iECT)DV?7tFt0Y_>C6aWAK literal 0 HcmV?d00001 diff --git a/wrf/cam3/sub3-1.gam b/wrf/cam3/sub3-1.gam new file mode 100644 index 0000000000000000000000000000000000000000..dd1feb18e99a0aca3c9af84a8a2fd01d01bdb488 GIT binary patch literal 52 YcmYdK%uVHBfB+^a4Wb;N7{o>g0AJz)B>(^b literal 0 HcmV?d00001 diff --git a/wrf/cam3/sub3-1/droid.ini b/wrf/cam3/sub3-1/droid.ini new file mode 100644 index 0000000..6814414 --- /dev/null +++ b/wrf/cam3/sub3-1/droid.ini @@ -0,0 +1,133 @@ +[droid_510] +id = 510 +startpos = 3 +template = NX-M-Rail2-Hover +position = 3264, 5440, 0 +rotation = 0, 0, 0 + +[droid_511] +id = 511 +startpos = 3 +template = NX-M-Rail2-Hover +position = 7516, 4996, 0 +rotation = 0, 0, 0 + +[droid_518] +id = 518 +startpos = 3 +template = NX-M-Rail2-Hover +position = 4800, 4160, 0 +rotation = 0, 0, 0 + +[droid_739] +id = 739 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 5948, 2104, 0 +rotation = 52247, 0, 0 + +[droid_758] +id = 758 +startpos = 3 +template = NX-M-Missile-A-T-Hover +position = 1216, 3008, 0 +rotation = 0, 0, 0 + +[droid_759] +id = 759 +startpos = 3 +template = NX-M-Missile-A-T-Hover +position = 1472, 3008, 0 +rotation = 0, 0, 0 + +[droid_765] +id = 765 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 6722, 1816, 0 +rotation = 51701, 0, 0 + +[droid_766] +id = 766 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 6710, 1954, 0 +rotation = 50608, 0, 0 + +[droid_816] +id = 816 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 3026, 6714, 0 +rotation = 12197, 0, 0 + +[droid_817] +id = 817 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 3154, 6714, 0 +rotation = 5461, 0, 0 + +[droid_818] +id = 818 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 3154, 6842, 0 +rotation = 2367, 0, 0 + +[droid_819] +id = 819 +startpos = 3 +template = NX-Cyb-PulseLas-JUMP +position = 3026, 6842, 0 +rotation = 9284, 0, 0 + +[droid_820] +id = 820 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 1992, 6729, 0 +rotation = 52429, 0, 0 + +[droid_821] +id = 821 +startpos = 3 +template = NX-Cyb-Miss-JUMP +position = 1992, 6985, 0 +rotation = 52429, 0, 0 + +[droid_836] +id = 836 +startpos = 3 +template = NX-M-Rail2-Hover +position = 3392, 5312, 0 +rotation = 0, 0, 0 + +[droid_837] +id = 837 +startpos = 3 +template = NX-M-Rail2-Hover +position = 3392, 5440, 0 +rotation = 0, 0, 0 + +[droid_866] +id = 866 +startpos = 3 +template = NX-M-Rail2-Hover +position = 6080, 1984, 0 +rotation = 0, 0, 0 + +[droid_867] +id = 867 +startpos = 3 +template = NX-M-Missile-A-T-Hover +position = 6080, 1856, 0 +rotation = 0, 0, 0 + +[droid_883] +id = 883 +startpos = 3 +template = NX-M-Rail2-Hover +position = 4928, 4160, 0 +rotation = 0, 0, 0 + diff --git a/wrf/cam3/sub3-1/feature.ini b/wrf/cam3/sub3-1/feature.ini new file mode 100644 index 0000000..b48dfe7 --- /dev/null +++ b/wrf/cam3/sub3-1/feature.ini @@ -0,0 +1,630 @@ +[feature_303] +id = 303 +position = 1664, 4800, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_304] +id = 304 +position = 1664, 4544, 0 +rotation = 0, 0, 0 +name = BarbWarehouse1 + +[feature_347] +id = 347 +position = 1600, 5312, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_348] +id = 348 +position = 1984, 5312, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_349] +id = 349 +position = 1856, 5312, 0 +rotation = 0, 0, 0 +name = BarbWarehouse3 + +[feature_351] +id = 351 +position = 1984, 4544, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_352] +id = 352 +position = 1984, 4800, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_353] +id = 353 +position = 1856, 4544, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_354] +id = 354 +position = 1856, 4800, 0 +rotation = 0, 0, 0 +name = OilTower + +[feature_355] +id = 355 +position = 1088, 4800, 0 +rotation = 32768, 0, 0 +name = Crane + +[feature_358] +id = 358 +position = 960, 5312, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_359] +id = 359 +position = 1088, 5312, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_576] +id = 576 +position = 640, 1408, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_577] +id = 577 +position = 896, 1408, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_578] +id = 578 +position = 2048, 1920, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_579] +id = 579 +position = 1856, 2112, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_580] +id = 580 +position = 1984, 1472, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_581] +id = 581 +position = 1792, 1920, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_582] +id = 582 +position = 2176, 2176, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_583] +id = 583 +position = 2368, 2112, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_584] +id = 584 +position = 2240, 2368, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_585] +id = 585 +position = 1792, 2560, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_586] +id = 586 +position = 1728, 2752, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_587] +id = 587 +position = 1792, 2304, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_588] +id = 588 +position = 1984, 2496, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_589] +id = 589 +position = 832, 3136, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_591] +id = 591 +position = 1088, 3392, 0 +rotation = 0, 0, 0 +name = LogCabin1 + +[feature_594] +id = 594 +position = 704, 3648, 0 +rotation = 0, 0, 0 +name = LogCabin2 + +[feature_598] +id = 598 +position = 1088, 3648, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_600] +id = 600 +position = 2560, 3712, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_601] +id = 601 +position = 2816, 3712, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_602] +id = 602 +position = 2624, 3904, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_603] +id = 603 +position = 2496, 3904, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_604] +id = 604 +position = 1856, 5952, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_606] +id = 606 +position = 3264, 5696, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_607] +id = 607 +position = 3200, 4736, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_608] +id = 608 +position = 2944, 4736, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_609] +id = 609 +position = 3200, 4480, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_610] +id = 610 +position = 3264, 4928, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_611] +id = 611 +position = 2880, 4544, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_614] +id = 614 +position = 5504, 6528, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_615] +id = 615 +position = 5504, 6272, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_616] +id = 616 +position = 5696, 6464, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_617] +id = 617 +position = 5312, 6080, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_618] +id = 618 +position = 6208, 7488, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_619] +id = 619 +position = 6528, 6784, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_620] +id = 620 +position = 6336, 6976, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_621] +id = 621 +position = 7040, 6784, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_622] +id = 622 +position = 7616, 6464, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_623] +id = 623 +position = 5696, 6080, 0 +rotation = 0, 0, 0 +name = LogCabin1 + +[feature_625] +id = 625 +position = 5952, 6848, 0 +rotation = 0, 0, 0 +name = LogCabin4 + +[feature_626] +id = 626 +position = 5824, 7488, 0 +rotation = 0, 0, 0 +name = LogCabin1 + +[feature_628] +id = 628 +position = 7104, 3392, 0 +rotation = 0, 0, 0 +name = LogCabin5 + +[feature_629] +id = 629 +position = 7104, 3136, 0 +rotation = 0, 0, 0 +name = LogCabin3 + +[feature_630] +id = 630 +position = 7360, 3392, 0 +rotation = 0, 0, 0 +name = LogCabin2 + +[feature_631] +id = 631 +position = 7616, 3264, 0 +rotation = 0, 0, 0 +name = WaterTower + +[feature_635] +id = 635 +position = 7360, 3136, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_636] +id = 636 +position = 6784, 3200, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_637] +id = 637 +position = 7168, 2304, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_638] +id = 638 +position = 7552, 2432, 0 +rotation = 0, 0, 0 +name = TreeSnow1 + +[feature_639] +id = 639 +position = 7616, 2880, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_640] +id = 640 +position = 7232, 2752, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_641] +id = 641 +position = 5632, 3072, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_642] +id = 642 +position = 5952, 3264, 0 +rotation = 0, 0, 0 +name = LogCabin1 + +[feature_643] +id = 643 +position = 5248, 3456, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_644] +id = 644 +position = 5440, 3392, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_645] +id = 645 +position = 4992, 2944, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_646] +id = 646 +position = 5056, 3136, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_647] +id = 647 +position = 4288, 2240, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_649] +id = 649 +position = 7680, 2048, 0 +rotation = 0, 0, 0 +name = TreeSnow1 + +[feature_650] +id = 650 +position = 7616, 1600, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_654] +id = 654 +position = 7744, 1472, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_655] +id = 655 +position = 7360, 1856, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_657] +id = 657 +position = 3072, 2048, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_658] +id = 658 +position = 2816, 2048, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_659] +id = 659 +position = 3264, 2368, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_660] +id = 660 +position = 3008, 2240, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_661] +id = 661 +position = 3648, 576, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_662] +id = 662 +position = 2752, 448, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_663] +id = 663 +position = 3968, 1408, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_664] +id = 664 +position = 704, 1856, 0 +rotation = 0, 0, 0 +name = LogCabin4 + +[feature_666] +id = 666 +position = 704, 2112, 0 +rotation = 0, 0, 0 +name = LogCabin1 + +[feature_667] +id = 667 +position = 1088, 2880, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_669] +id = 669 +position = 1088, 1344, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_670] +id = 670 +position = 1088, 576, 0 +rotation = 0, 0, 0 +name = Pylon + +[feature_671] +id = 671 +position = 896, 5056, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_672] +id = 672 +position = 896, 4544, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_673] +id = 673 +position = 896, 4928, 0 +rotation = 0, 0, 0 +name = BarbWarehouse2 + +[feature_674] +id = 674 +position = 2432, 7552, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_675] +id = 675 +position = 2496, 7232, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_676] +id = 676 +position = 2944, 7680, 0 +rotation = 0, 0, 0 +name = TreeSnow2 + +[feature_677] +id = 677 +position = 2752, 7744, 0 +rotation = 0, 0, 0 +name = TreeSnow3 + +[feature_712] +id = 712 +position = 5888, 3072, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_824] +id = 824 +position = 4864, 7552, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_825] +id = 825 +position = 4608, 7168, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_826] +id = 826 +position = 4096, 5376, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_827] +id = 827 +position = 4160, 5696, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_828] +id = 828 +position = 4416, 5312, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_829] +id = 829 +position = 3840, 7424, 0 +rotation = 0, 0, 0 +name = Tree1 + +[feature_830] +id = 830 +position = 3328, 6016, 0 +rotation = 0, 0, 0 +name = Tree2 + +[feature_831] +id = 831 +position = 3136, 6208, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_832] +id = 832 +position = 4416, 6208, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_833] +id = 833 +position = 4544, 6080, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_834] +id = 834 +position = 4416, 7360, 0 +rotation = 0, 0, 0 +name = Tree3 + +[feature_835] +id = 835 +position = 4800, 6976, 0 +rotation = 0, 0, 0 +name = Tree3 + diff --git a/wrf/cam3/sub3-1/labels.ini b/wrf/cam3/sub3-1/labels.ini new file mode 100644 index 0000000..e69de29 diff --git a/wrf/cam3/sub3-1/struct.ini b/wrf/cam3/sub3-1/struct.ini new file mode 100644 index 0000000..89a03b4 --- /dev/null +++ b/wrf/cam3/sub3-1/struct.ini @@ -0,0 +1,872 @@ +[structure_1] +id = 1 +startpos = 3 +name = NEXUSWall +position = 2240, 7360, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_2] +id = 2 +startpos = 3 +name = NEXUSWall +position = 2240, 7488, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_3] +id = 3 +startpos = 3 +name = NEXUSWall +position = 2240, 7616, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_5] +id = 5 +startpos = 3 +name = NEXUSWall +position = 2240, 7232, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_8] +id = 8 +startpos = 3 +name = NEXUSWall +position = 2240, 7104, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_9] +id = 9 +startpos = 3 +name = NEXUSWall +position = 2240, 6592, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_17] +id = 17 +startpos = 3 +name = NEXUSWall +position = 960, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_18] +id = 18 +startpos = 3 +name = NEXUSWall +position = 832, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_19] +id = 19 +startpos = 3 +name = NEXUSWall +position = 704, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_23] +id = 23 +startpos = 3 +name = NEXUSWall +position = 1600, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_24] +id = 24 +startpos = 3 +name = NEXUSWall +position = 1728, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_25] +id = 25 +startpos = 3 +name = NEXUSWall +position = 1984, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_26] +id = 26 +startpos = 3 +name = NEXUSWall +position = 2112, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_27] +id = 27 +startpos = 3 +name = NEXUSWall +position = 1856, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_30] +id = 30 +startpos = 3 +name = NEXUSWall +position = 1088, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_34] +id = 34 +startpos = 3 +name = NEXUSWall +position = 2240, 6464, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_35] +id = 35 +startpos = 3 +name = NEXUSWall +position = 2240, 6208, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_36] +id = 36 +startpos = 3 +name = NEXUSWall +position = 576, 6080, 0 +rotation = 32768, 0, 0 +modules = 0 + +[structure_37] +id = 37 +startpos = 3 +name = NEXUSWall +position = 2240, 6336, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_225] +id = 225 +startpos = 3 +name = NEXUSCWall +position = 2240, 7744, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_229] +id = 229 +startpos = 3 +name = A0CyborgFactory +position = 1600, 6400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_248] +id = 248 +startpos = 3 +name = A0LightFactory +position = 1600, 7104, 0 +rotation = 0, 0, 0 +modules = 1 + +[structure_251] +id = 251 +startpos = 3 +name = A0CyborgFactory +position = 1856, 6400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_278] +id = 278 +startpos = 3 +name = NX-CruiseSite +position = 576, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_293] +id = 293 +startpos = 3 +name = UplinkCentre +position = 768, 7040, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_420] +id = 420 +startpos = 3 +name = NX-WallTower-Rail2 +position = 2240, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_680] +id = 680 +startpos = 3 +name = A0CommandCentreNE +position = 640, 6400, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_686] +id = 686 +startpos = 3 +name = NX-CruiseSite +position = 960, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_733] +id = 733 +startpos = 3 +name = NX-CruiseSite +position = 576, 6976, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_735] +id = 735 +startpos = 3 +name = NX-CruiseSite +position = 960, 6976, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_776] +id = 776 +startpos = 3 +name = NX-WallTower-Rail2 +position = 2240, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_779] +id = 779 +startpos = 3 +name = NX-WallTower-Rail2 +position = 2240, 6976, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_782] +id = 782 +startpos = 3 +name = NX-WallTower-Rail2 +position = 1216, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_785] +id = 785 +startpos = 3 +name = NX-WallTower-Rail2 +position = 1472, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_802] +id = 802 +startpos = 3 +name = P0-AASite-SAM1 +position = 2752, 7232, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_803] +id = 803 +startpos = 3 +name = P0-AASite-SAM1 +position = 2752, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_804] +id = 804 +startpos = 3 +name = P0-AASite-SAM1 +position = 2752, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_805] +id = 805 +startpos = 3 +name = P0-AASite-SAM1 +position = 2240, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_806] +id = 806 +startpos = 3 +name = P0-AASite-SAM1 +position = 1600, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_807] +id = 807 +startpos = 3 +name = P0-AASite-SAM1 +position = 960, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_808] +id = 808 +startpos = 3 +name = P0-AASite-SAM1 +position = 1216, 7232, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_809] +id = 809 +startpos = 3 +name = P0-AASite-SAM1 +position = 1216, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_811] +id = 811 +startpos = 3 +name = P0-AASite-SAM1 +position = 6336, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_812] +id = 812 +startpos = 3 +name = P0-AASite-SAM1 +position = 6080, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_813] +id = 813 +startpos = 3 +name = P0-AASite-SAM1 +position = 5824, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_814] +id = 814 +startpos = 3 +name = P0-AASite-SAM1 +position = 5056, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_815] +id = 815 +startpos = 3 +name = P0-AASite-SAM1 +position = 4416, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_822] +id = 822 +startpos = 3 +name = Emplacement-PulseLaser +position = 832, 7488, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_823] +id = 823 +startpos = 3 +name = Emplacement-PulseLaser +position = 960, 6464, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_838] +id = 838 +startpos = 3 +name = P0-AASite-SAM1 +position = 7872, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_839] +id = 839 +startpos = 3 +name = P0-AASite-SAM1 +position = 7360, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_840] +id = 840 +startpos = 3 +name = P0-AASite-SAM1 +position = 7488, 1728, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_841] +id = 841 +startpos = 3 +name = P0-AASite-SAM1 +position = 6848, 2368, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_842] +id = 842 +startpos = 3 +name = P0-AASite-SAM1 +position = 6592, 1088, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_843] +id = 843 +startpos = 3 +name = P0-AASite-SAM1 +position = 6336, 1984, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_844] +id = 844 +startpos = 3 +name = P0-AASite-SAM1 +position = 5696, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_845] +id = 845 +startpos = 3 +name = P0-AASite-SAM1 +position = 4928, 1856, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_846] +id = 846 +startpos = 3 +name = P0-AASite-SAM1 +position = 5440, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_848] +id = 848 +startpos = 3 +name = P0-AASite-SAM1 +position = 4288, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_851] +id = 851 +startpos = 3 +name = P0-AASite-SAM1 +position = 7232, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_852] +id = 852 +startpos = 3 +name = P0-AASite-SAM1 +position = 7360, 576, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_853] +id = 853 +startpos = 3 +name = P0-AASite-SAM1 +position = 7872, 3008, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_854] +id = 854 +startpos = 3 +name = P0-AASite-SAM1 +position = 4416, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_855] +id = 855 +startpos = 3 +name = Emplacement-PulseLaser +position = 4544, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_856] +id = 856 +startpos = 3 +name = Emplacement-PulseLaser +position = 3136, 960, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_857] +id = 857 +startpos = 3 +name = NX-Tower-ATMiss +position = 4928, 2112, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_858] +id = 858 +startpos = 3 +name = NX-Tower-ATMiss +position = 3008, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_859] +id = 859 +startpos = 3 +name = NX-Tower-ATMiss +position = 4544, 1600, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_860] +id = 860 +startpos = 3 +name = Emplacement-PulseLaser +position = 2112, 6592, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_861] +id = 861 +startpos = 3 +name = Emplacement-PulseLaser +position = 2112, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_862] +id = 862 +startpos = 3 +name = Emplacement-PulseLaser +position = 5312, 2240, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_863] +id = 863 +startpos = 3 +name = Emplacement-PulseLaser +position = 3904, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_864] +id = 864 +startpos = 3 +name = NX-Tower-ATMiss +position = 1216, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_865] +id = 865 +startpos = 3 +name = NX-Tower-ATMiss +position = 1472, 6720, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_868] +id = 868 +startpos = 3 +name = NX-Tower-ATMiss +position = 3520, 7616, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_869] +id = 869 +startpos = 3 +name = NX-Tower-ATMiss +position = 4288, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_870] +id = 870 +startpos = 3 +name = Emplacement-PulseLaser +position = 4032, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_871] +id = 871 +startpos = 3 +name = Emplacement-PulseLaser +position = 3392, 6336, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_872] +id = 872 +startpos = 3 +name = Emplacement-PulseLaser +position = 1472, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_873] +id = 873 +startpos = 3 +name = NX-Tower-ATMiss +position = 2240, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_874] +id = 874 +startpos = 3 +name = Emplacement-PulseLaser +position = 1216, 832, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_875] +id = 875 +startpos = 3 +name = Emplacement-PulseLaser +position = 2240, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_876] +id = 876 +startpos = 3 +name = Emplacement-PulseLaser +position = 1600, 448, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_878] +id = 878 +startpos = 3 +name = Sys-SensoTower02 +position = 4032, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_879] +id = 879 +startpos = 3 +name = Sys-SensoTower02 +position = 1984, 6336, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_880] +id = 880 +startpos = 3 +name = Sys-SensoTower02 +position = 3648, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_918] +id = 918 +startpos = 3 +name = NX-Emp-MedArtMiss-Pit +position = 3520, 5696, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_917] +id = 917 +startpos = 3 +name = NX-Emp-MedArtMiss-Pit +position = 4800, 5568, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_884] +id = 884 +startpos = 3 +name = NX-Tower-ATMiss +position = 5056, 2624, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_885] +id = 885 +startpos = 3 +name = Emplacement-PulseLaser +position = 4032, 2496, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_887] +id = 887 +startpos = 3 +name = NX-Tower-ATMiss +position = 2880, 1216, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_892] +id = 892 +startpos = 3 +name = Sys-NX-CBTower +position = 4416, 1472, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_919] +id = 919 +startpos = 3 +name = NX-Emp-MedArtMiss-Pit +position = 1216, 6848, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_899] +id = 899 +startpos = 3 +name = NX-WallTower-Rail2 +position = 4288, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_900] +id = 900 +startpos = 3 +name = NX-WallTower-Rail2 +position = 4416, 5952, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_901] +id = 901 +startpos = 3 +name = NX-WallTower-Rail2 +position = 4288, 7616, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_902] +id = 902 +startpos = 3 +name = NX-WallTower-Rail2 +position = 4160, 7488, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_903] +id = 903 +startpos = 3 +name = Emplacement-PulseLaser +position = 4544, 5312, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_904] +id = 904 +startpos = 3 +name = Sys-NX-CBTower +position = 3520, 7360, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_910] +id = 910 +startpos = 3 +name = PillBox1 +position = 3776, 4928, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_911] +id = 911 +startpos = 3 +name = PillBox1 +position = 1600, 3776, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_913] +id = 913 +startpos = 3 +name = PillBox1 +position = 3264, 7104, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_914] +id = 914 +startpos = 3 +name = A0HardcreteMk1Gate +position = 1344, 6080, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_915] +id = 915 +startpos = 3 +name = A0HardcreteMk1Gate +position = 2240, 6848, 0 +rotation = 16384, 0, 0 +modules = 0 + +[structure_916] +id = 916 +startpos = 3 +name = NX-Emp-MedArtMiss-Pit +position = 2880, 7488, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_920] +id = 920 +startpos = 3 +name = NX-Emp-MultiArtMiss-Pit +position = 7232, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_921] +id = 921 +startpos = 3 +name = NX-Emp-MultiArtMiss-Pit +position = 7360, 704, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_922] +id = 922 +startpos = 3 +name = NX-Emp-MedArtMiss-Pit +position = 4288, 1344, 0 +rotation = 0, 0, 0 +modules = 0 + +[structure_923] +id = 923 +startpos = 3 +name = NX-Emp-MedArtMiss-Pit +position = 4544, 2112, 0 +rotation = 0, 0, 0 +modules = 0 +