From 469f352d675c611f7a0aa93d5ee98a6ba330fc7b Mon Sep 17 00:00:00 2001 From: Natalie Rose Date: Tue, 8 Sep 2026 11:29:25 +1000 Subject: [PATCH] Drop legacy docs --- .gitignore | 1 - CLAUDE.md | 12 +- bin/generate_docs.pl | 43 -- bin/start_lacuna.sh | 2 - bin/startdev.sh | 2 - docs/Algae.pod | 7 - docs/AlgaePond.pod | 7 - docs/Alliance.pod | 85 --- docs/AmalgusMeadow.pod | 8 - docs/Announcement.pod | 25 - docs/ApiKeys.pod | 59 -- docs/Apple.pod | 7 - docs/Archaeology.pod | 206 ------ docs/ArtMuseum.pod | 7 - docs/AtmosphericEvaporator.pod | 7 - docs/Beach.pod | 7 - docs/Bean.pod | 7 - docs/Beeldeban.pod | 7 - docs/BeeldebanNest.pod | 7 - docs/BlackHoleGenerator.pod | 255 ------- docs/Body.pod | 552 --------------- docs/Bread.pod | 7 - docs/Buildings.pod | 539 -------------- docs/Burger.pod | 7 - docs/Capitol.pod | 40 -- docs/Captcha.pod | 41 -- docs/Cheese.pod | 7 - docs/Chip.pod | 7 - docs/Cider.pod | 7 - docs/CitadelOfKnope.pod | 7 - docs/CloakingLab.pod | 7 - docs/Corn.pod | 7 - docs/CornMeal.pod | 7 - docs/CrashedShipSite.pod | 7 - docs/Crater.pod | 7 - docs/CulinaryInstitute.pod | 7 - docs/Dairy.pod | 7 - docs/Denton.pod | 7 - docs/DentonBrambles.pod | 9 - docs/DeployedBleeder.pod | 7 - docs/Development.pod | 143 ---- docs/DistributionCenter.pod | 100 --- docs/Embassy.graffle | Bin 32981 -> 0 bytes docs/Embassy.png | Bin 68838 -> 0 bytes docs/Embassy.pod | 537 -------------- docs/Empire.pod | 1069 ---------------------------- docs/EnergyReserve.pod | 29 - docs/Entertainment.pod | 68 -- docs/ErrorCodes.pod | 96 --- docs/Espionage.pod | 7 - docs/EssentiaVein.pod | 27 - docs/Fission.pod | 7 - docs/Fissure.pod | 7 - docs/FoodReserve.pod | 51 -- docs/Fusion.pod | 7 - docs/GasGiantLab.pod | 7 - docs/GasGiantPlatform.pod | 7 - docs/GeneticsLab.pod | 102 --- docs/Geo.pod | 7 - docs/GeoThermalVent.pod | 7 - docs/GratchsGauntlet.pod | 7 - docs/GreatBallOfJunk.pod | 7 - docs/Grove.pod | 7 - docs/HallsOfVrbansk.pod | 8 - docs/Hydrocarbon.pod | 7 - docs/IBS.pod | 7 - docs/Inbox.pod | 646 ----------------- docs/IntelTraining.pod | 29 - docs/Intelligence.pod | 442 ------------ docs/InterDimensionalRift.pod | 7 - docs/Intro.pod | 207 ------ docs/JunkHengeSculpture.pod | 7 - docs/KalavianRuins.pod | 7 - docs/KasternsKeep.pod | 7 - docs/Lagoon.pod | 7 - docs/Lake.pod | 7 - docs/Lapis.pod | 7 - docs/LapisForest.pod | 7 - docs/LibraryOfJith.pod | 45 -- docs/LostCityOfTyleon.pod | 7 - docs/LuxuryHousing.pod | 7 - docs/Malcud.pod | 7 - docs/MalcudField.pod | 7 - docs/Map.pod | 434 ------------ docs/MassadsHenge.pod | 7 - docs/MayhemTraining.pod | 29 - docs/MercenariesGuild.pod | 248 ------- docs/MetalJunkArches.pod | 7 - docs/Mine.pod | 7 - docs/MiningMinistry.pod | 179 ----- docs/MissionCommand.pod | 88 --- docs/Modules.pod | 33 - docs/MunitionsLab.pod | 7 - docs/NaturalSpring.pod | 7 - docs/Network19.pod | 69 -- docs/Observatory.pod | 93 --- docs/OperaHouse.pod | 7 - docs/OracleOfAnid.pod | 94 --- docs/OreRefinery.pod | 7 - docs/OreStorage.pod | 49 -- docs/Oversight.pod | 7 - docs/Pancake.pod | 7 - docs/PantheonOfHagness.pod | 7 - docs/Park.pod | 68 -- docs/Parliament.pod | 974 -------------------------- docs/Payments.pod | 15 - docs/Pie.pod | 7 - docs/PilotTraining.pod | 7 - docs/PlanetaryCommand.pod | 150 ---- docs/PoliceStation.pod | 277 -------- docs/PoliticsTraining.pod | 29 - docs/Potato.pod | 7 - docs/Propulsion.pod | 7 - docs/PyramidJunkSculpture.pod | 7 - docs/Ravine.pod | 7 - docs/RockyOutcrop.pod | 7 - docs/SAW.pod | 7 - docs/Sand.pod | 7 - docs/Security.pod | 122 ---- docs/Shake.pod | 7 - docs/Shipyard.pod | 266 ------- docs/Singularity.pod | 7 - docs/Soup.pod | 7 - docs/SpaceJunkPark.pod | 7 - docs/SpacePort.pod | 1205 -------------------------------- docs/SpaceStationLab.pod | 95 --- docs/StationCommand.pod | 118 ---- docs/Stats.pod | 258 ------- docs/Stockpile.pod | 7 - docs/SubspaceSupplyDepot.pod | 136 ---- docs/SupplyPod.pod | 7 - docs/Syrup.pod | 7 - docs/TempleOfTheDrajilites.pod | 69 -- docs/TerraformingLab.pod | 7 - docs/TerraformingPlatform.pod | 7 - docs/TheDillonForge.pod | 118 ---- docs/TheftTraining.pod | 29 - docs/ThemePark.pod | 53 -- docs/Trade.graffle | Bin 35436 -> 0 bytes docs/Trade.png | Bin 92148 -> 0 bytes docs/Trade.pod | 1029 --------------------------- docs/Transporter.graffle | Bin 38339 -> 0 bytes docs/Transporter.png | Bin 116057 -> 0 bytes docs/Transporter.pod | 664 ------------------ docs/University.pod | 7 - docs/Volcano.pod | 7 - docs/Warehouse.pod | 7 - docs/WasteDigester.pod | 7 - docs/WasteEnergy.pod | 7 - docs/WasteExchanger.pod | 73 -- docs/WasteRecycling.pod | 73 -- docs/WasteSequestration.pod | 7 - docs/WasteTreatment.pod | 7 - docs/WaterProduction.pod | 7 - docs/WaterPurification.pod | 7 - docs/WaterReclamation.pod | 7 - docs/WaterStorage.pod | 29 - docs/Wheat.pod | 7 - info/add-a-building.md | 1 - var/www/public/api/api.css | 429 ------------ var/www/public/resources.json | 410 +++++------ 161 files changed, 210 insertions(+), 13890 deletions(-) delete mode 100644 bin/generate_docs.pl delete mode 100644 docs/Algae.pod delete mode 100644 docs/AlgaePond.pod delete mode 100644 docs/Alliance.pod delete mode 100644 docs/AmalgusMeadow.pod delete mode 100644 docs/Announcement.pod delete mode 100644 docs/ApiKeys.pod delete mode 100644 docs/Apple.pod delete mode 100644 docs/Archaeology.pod delete mode 100644 docs/ArtMuseum.pod delete mode 100644 docs/AtmosphericEvaporator.pod delete mode 100644 docs/Beach.pod delete mode 100644 docs/Bean.pod delete mode 100644 docs/Beeldeban.pod delete mode 100644 docs/BeeldebanNest.pod delete mode 100644 docs/BlackHoleGenerator.pod delete mode 100644 docs/Body.pod delete mode 100644 docs/Bread.pod delete mode 100644 docs/Buildings.pod delete mode 100644 docs/Burger.pod delete mode 100644 docs/Capitol.pod delete mode 100644 docs/Captcha.pod delete mode 100644 docs/Cheese.pod delete mode 100644 docs/Chip.pod delete mode 100644 docs/Cider.pod delete mode 100644 docs/CitadelOfKnope.pod delete mode 100644 docs/CloakingLab.pod delete mode 100644 docs/Corn.pod delete mode 100644 docs/CornMeal.pod delete mode 100644 docs/CrashedShipSite.pod delete mode 100644 docs/Crater.pod delete mode 100644 docs/CulinaryInstitute.pod delete mode 100644 docs/Dairy.pod delete mode 100644 docs/Denton.pod delete mode 100644 docs/DentonBrambles.pod delete mode 100644 docs/DeployedBleeder.pod delete mode 100644 docs/Development.pod delete mode 100644 docs/DistributionCenter.pod delete mode 100644 docs/Embassy.graffle delete mode 100644 docs/Embassy.png delete mode 100644 docs/Embassy.pod delete mode 100644 docs/Empire.pod delete mode 100644 docs/EnergyReserve.pod delete mode 100644 docs/Entertainment.pod delete mode 100644 docs/ErrorCodes.pod delete mode 100644 docs/Espionage.pod delete mode 100644 docs/EssentiaVein.pod delete mode 100644 docs/Fission.pod delete mode 100644 docs/Fissure.pod delete mode 100644 docs/FoodReserve.pod delete mode 100644 docs/Fusion.pod delete mode 100644 docs/GasGiantLab.pod delete mode 100644 docs/GasGiantPlatform.pod delete mode 100644 docs/GeneticsLab.pod delete mode 100644 docs/Geo.pod delete mode 100644 docs/GeoThermalVent.pod delete mode 100644 docs/GratchsGauntlet.pod delete mode 100644 docs/GreatBallOfJunk.pod delete mode 100644 docs/Grove.pod delete mode 100644 docs/HallsOfVrbansk.pod delete mode 100644 docs/Hydrocarbon.pod delete mode 100644 docs/IBS.pod delete mode 100644 docs/Inbox.pod delete mode 100644 docs/IntelTraining.pod delete mode 100644 docs/Intelligence.pod delete mode 100644 docs/InterDimensionalRift.pod delete mode 100644 docs/Intro.pod delete mode 100644 docs/JunkHengeSculpture.pod delete mode 100644 docs/KalavianRuins.pod delete mode 100644 docs/KasternsKeep.pod delete mode 100644 docs/Lagoon.pod delete mode 100644 docs/Lake.pod delete mode 100644 docs/Lapis.pod delete mode 100644 docs/LapisForest.pod delete mode 100644 docs/LibraryOfJith.pod delete mode 100644 docs/LostCityOfTyleon.pod delete mode 100644 docs/LuxuryHousing.pod delete mode 100644 docs/Malcud.pod delete mode 100644 docs/MalcudField.pod delete mode 100644 docs/Map.pod delete mode 100644 docs/MassadsHenge.pod delete mode 100644 docs/MayhemTraining.pod delete mode 100644 docs/MercenariesGuild.pod delete mode 100644 docs/MetalJunkArches.pod delete mode 100644 docs/Mine.pod delete mode 100644 docs/MiningMinistry.pod delete mode 100644 docs/MissionCommand.pod delete mode 100644 docs/Modules.pod delete mode 100644 docs/MunitionsLab.pod delete mode 100644 docs/NaturalSpring.pod delete mode 100644 docs/Network19.pod delete mode 100644 docs/Observatory.pod delete mode 100644 docs/OperaHouse.pod delete mode 100644 docs/OracleOfAnid.pod delete mode 100644 docs/OreRefinery.pod delete mode 100644 docs/OreStorage.pod delete mode 100644 docs/Oversight.pod delete mode 100644 docs/Pancake.pod delete mode 100644 docs/PantheonOfHagness.pod delete mode 100644 docs/Park.pod delete mode 100644 docs/Parliament.pod delete mode 100644 docs/Payments.pod delete mode 100644 docs/Pie.pod delete mode 100644 docs/PilotTraining.pod delete mode 100644 docs/PlanetaryCommand.pod delete mode 100644 docs/PoliceStation.pod delete mode 100644 docs/PoliticsTraining.pod delete mode 100644 docs/Potato.pod delete mode 100644 docs/Propulsion.pod delete mode 100644 docs/PyramidJunkSculpture.pod delete mode 100644 docs/Ravine.pod delete mode 100644 docs/RockyOutcrop.pod delete mode 100644 docs/SAW.pod delete mode 100644 docs/Sand.pod delete mode 100644 docs/Security.pod delete mode 100644 docs/Shake.pod delete mode 100644 docs/Shipyard.pod delete mode 100644 docs/Singularity.pod delete mode 100644 docs/Soup.pod delete mode 100644 docs/SpaceJunkPark.pod delete mode 100644 docs/SpacePort.pod delete mode 100644 docs/SpaceStationLab.pod delete mode 100644 docs/StationCommand.pod delete mode 100644 docs/Stats.pod delete mode 100644 docs/Stockpile.pod delete mode 100644 docs/SubspaceSupplyDepot.pod delete mode 100644 docs/SupplyPod.pod delete mode 100644 docs/Syrup.pod delete mode 100644 docs/TempleOfTheDrajilites.pod delete mode 100644 docs/TerraformingLab.pod delete mode 100644 docs/TerraformingPlatform.pod delete mode 100644 docs/TheDillonForge.pod delete mode 100644 docs/TheftTraining.pod delete mode 100644 docs/ThemePark.pod delete mode 100644 docs/Trade.graffle delete mode 100644 docs/Trade.png delete mode 100644 docs/Trade.pod delete mode 100644 docs/Transporter.graffle delete mode 100644 docs/Transporter.png delete mode 100644 docs/Transporter.pod delete mode 100644 docs/University.pod delete mode 100644 docs/Volcano.pod delete mode 100644 docs/Warehouse.pod delete mode 100644 docs/WasteDigester.pod delete mode 100644 docs/WasteEnergy.pod delete mode 100644 docs/WasteExchanger.pod delete mode 100644 docs/WasteRecycling.pod delete mode 100644 docs/WasteSequestration.pod delete mode 100644 docs/WasteTreatment.pod delete mode 100644 docs/WaterProduction.pod delete mode 100644 docs/WaterPurification.pod delete mode 100644 docs/WaterReclamation.pod delete mode 100644 docs/WaterStorage.pod delete mode 100644 docs/Wheat.pod delete mode 100644 var/www/public/api/api.css diff --git a/.gitignore b/.gitignore index 752ba61f..29fb4c22 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ var/www/public/local.html var/www/public/server_overview.json var/www/public/starmap.json var/www/public/network19/ -var/www/public/api var/www/public/captcha data/ data.*.bak/ diff --git a/CLAUDE.md b/CLAUDE.md index 84ded6e4..e0e7e4c9 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -37,8 +37,8 @@ Services defined in `docker-compose.yml` (dev; `docker-compose.deployed.yml` is - `server-{building,ship,captcha}-scheduler` — Perl scheduler processes - `server-script-scheduler` — ofelia-based cron, driven by `docker/server/schedule.ini` -Inside `server`, `bin/startdev.sh` runs `perl generate_docs.pl` then `plackup --env development --app lacuna.psgi`. -Production instead uses `start_server -- starman --workers 7 ... lacuna.psgi` (see `bin/start_lacuna.sh`). +Inside `server`, `bin/startdev.sh` `plackup --env development --app lacuna.psgi`. Production instead uses +`start_server -- starman --workers 7 ... lacuna.psgi` (see `bin/start_lacuna.sh`). `bin/setup/server/*.sh` and `bin/setup/install-pm.sh` are legacy CentOS-era bare-metal setup scripts predating Docker — historical/reference only, not the recommended path. @@ -88,9 +88,9 @@ via Moose `before`/`around` — a template-method pattern. `controller_class` po class. To add a new building, follow the checklist in `info/add_a_building.txt` (DB::Result class, entry in -`Lacuna::DB::Result::Building` class types, RPC class, pod file linked in `docs/Buildings.pod`, entry in -`bin/lacuna.psgi`, `Lacuna::DB::Result::Medals`, `var/www/public/resources.json`, images, and — if buildable — -`Lacuna::Constants::BUILDABLE_CLASSES`; plus `SPACE_STATION_MODULES` if it's a station module). +`Lacuna::DB::Result::Building` class types, RPC class, entry in `bin/lacuna.psgi`, `Lacuna::DB::Result::Medals`, +`var/www/public/resources.json`, images, and — if buildable — `Lacuna::Constants::BUILDABLE_CLASSES`; plus +`SPACE_STATION_MODULES` if it's a station module). ### RPC/API layer @@ -125,7 +125,5 @@ building, attacks via `start_attack`/`attack_with_ships`, repairs). Concrete fac ### Docs and test data -- `docs/*.pod` — one file per game building/resource entity (148 files), mirroring `lib/Lacuna/RPC/Building/*.pm` - naming. Keep in sync when adding/renaming a building. - `bin/puppet/*.js` — plain JSON data files (not Puppeteer) consumed by companion Perl scripts (`ships_insert.pl`, `station_setup.pl`, `setup_colony.pl`) to bulk-seed ships/buildings/stations for testing. diff --git a/bin/generate_docs.pl b/bin/generate_docs.pl deleted file mode 100644 index e04f03fc..00000000 --- a/bin/generate_docs.pl +++ /dev/null @@ -1,43 +0,0 @@ -use strict; -use 5.010; -use Pod::Simple::HTML; -use File::Copy; - -my $poddir = '/home/lacuna/server/docs/'; -my $htmldir = '/home/lacuna/server/var/www/public/api/'; - -opendir(my $dir, $poddir); -my @docs = readdir($dir); -closedir($dir); - - -foreach my $doc (@docs) { - if ($doc !~ m/\.pod$/) { - say "Copying $doc"; - copy($poddir.$doc, $htmldir.$doc); - next; - } - - say "Processing $doc"; - - my $parser = Pod::Simple::HTML->new(); - $parser->{index} = 1; - $parser->{html_css} = '/api/api.css'; - $parser->{perldoc_url_prefix} = '/api/'; - $parser->{perldoc_url_postfix} = '.html'; - $parser->{title_prefix} = 'The Lacuna Expanse API - '; - $parser->{html_footer} = sprintf '© 2010,%d Lacuna Expanse Corp', 1900+(gmtime)[5]; - - open my $in, '<', $poddir.$doc; - my $name = $doc; - $name =~ s/^(.*)\.pod/$1.html/; - open my $out, '>', $htmldir.$name; - - $parser->output_fh(*$out); - $parser->parse_file(*$in); - - close $in; - close $out; -} - - diff --git a/bin/start_lacuna.sh b/bin/start_lacuna.sh index abe2b8cc..bcf6d588 100755 --- a/bin/start_lacuna.sh +++ b/bin/start_lacuna.sh @@ -9,6 +9,4 @@ set -e cd /home/lacuna/server/bin -mkdir -p /home/lacuna/server/var/www/public/api -perl generate_docs.pl > /dev/null exec start_server --port 5000 -- starman --workers 7 --preload-app lacuna.psgi diff --git a/bin/startdev.sh b/bin/startdev.sh index 36b3bdfa..b0dfcbe1 100755 --- a/bin/startdev.sh +++ b/bin/startdev.sh @@ -1,8 +1,6 @@ LOG_DIR="${LACUNA_LOG_DIR:-/home/lacuna/server/log}/server" mkdir -p "$LOG_DIR" || { echo "startdev.sh: cannot create $LOG_DIR" >&2; exit 1; } -perl generate_docs.pl > /dev/null - # The app's own logging goes to log/server/lacuna.log via Log4perl (see # etc-*/log4perl.conf). This tee only captures plackup's framework noise -- # warnings, "Server Started", stack traces -- which never passes through diff --git a/docs/Algae.pod b/docs/Algae.pod deleted file mode 100644 index aea9dc6c..00000000 --- a/docs/Algae.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Algae Methods - -Algae is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/AlgaePond.pod b/docs/AlgaePond.pod deleted file mode 100644 index 5c601b73..00000000 --- a/docs/AlgaePond.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Algae Pond Methods - -Algae Pond is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Alliance.pod b/docs/Alliance.pod deleted file mode 100644 index a36cfa05..00000000 --- a/docs/Alliance.pod +++ /dev/null @@ -1,85 +0,0 @@ -=head1 Alliance Management - -If you are looking for the methods to manage an alliance, they can be found in the L. - -=head1 Alliance Methods - -The following methods are available from C. - - - - -=head2 view_profile (session_id, alliance_id) - -Provides a list of the data that's publicly known about this alliance. - - { - "profile" : { - "id" : "id-goes-here", - "name" : "Lacuna Expanse Allies", - "description" : "Blah blah blah blah...", - "leader_id" : "id-goes-here", - "date_created" : "01 31 2010 13:09:05 +0600", - "members" : [ - { - "id" : "id-goes-here", - "name" : "Lacuna Expanse Corp" - }, - ... - ], - "space_stations" : [ - { - "id" : "id-goes-here", - "name" : "The Life Star", - "x" : -342, - "y" : 128 - }, - ... - ], - "influence" : 0 - }, - "status" : { ... } - } - -Throws 1002. - -=head3 session_id - -A session id. - -=head3 alliance_id - -The id of the alliance for which you'd like to retrieve the public profile. - - - - -=head2 find ( session_id, name ) - -Find an alliance by name. Returns a hash reference containing alliance ids and alliance names. So if you searched for "Lacuna" you might get back a result set that looks like this: - - { - "alliances" : [ - { - "id" : "id-goes-here", - "name" : "Lacuna Expanse Allies" - }, - { - "id" : "id-goes-here2", - "name" : "Lacuna Pirates" - } - ], - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 name - -The name your searching for. It's case insensitive, and partial names work fine. Must be at least 3 characters. - - - -=cut diff --git a/docs/AmalgusMeadow.pod b/docs/AmalgusMeadow.pod deleted file mode 100644 index 4337444c..00000000 --- a/docs/AmalgusMeadow.pod +++ /dev/null @@ -1,8 +0,0 @@ -=head1 Amalgus Meadow Methods - -Amalgus Meadow is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut - diff --git a/docs/Announcement.pod b/docs/Announcement.pod deleted file mode 100644 index 2f878307..00000000 --- a/docs/Announcement.pod +++ /dev/null @@ -1,25 +0,0 @@ -=head1 Announcement - -The announcement system is used to announced scheduled server maintenance, contests, etc. - -B This API is B JSON-RPC based. It just returns an HTML document. - -The client should call this URI to fetch the announcement whenever the C status block contains C like this: - - { - "status" : { - "server" : { - "announcement" : 1, - ... - } - ... - } - } - - http://servername.lacunaexpanse.com/announcement?session_id=xxxxxxxxxxxxxxxx - -By calling this method to fetch the announcement, it will automatically remove the announcement from the C block so that you know you don't have to fetch it again. - -The target dialog window size should be 200x200px, but scrollable. - -=cut diff --git a/docs/ApiKeys.pod b/docs/ApiKeys.pod deleted file mode 100644 index 0d259796..00000000 --- a/docs/ApiKeys.pod +++ /dev/null @@ -1,59 +0,0 @@ - -=head1 API Keys - -An API key is a string that uniquely identifies a client (like the web client vs the iPhone client) to the server. - -=head1 API Key FAQ - -=head2 Why are API keys needed? - -Client keys allow us to track which clients are being used for what purpose. For example, if we find that people are using their own bots for a certain type of function, we may decide that just needs to become a game feature. Or if we find that the iPhone client is being used more than the web client, then maybe there's something wrong with the web client, or maybe it's time to build an Android client. - - -=head2 Where in the API are API keys used? - -They are only used on methods that create a session, such as C and C in L. - - -=head2 How do I get an API key? - -You can register for an API key by going to https://servername.lacunaexpanse.com/apikey. That's the API Key Console. - - -=head2 Are API keys specific to a server? - -Yes. - -=head2 Since API keys are specific to a specific server how am I supposed to write a client for multiple servers? - -Register a key on each server, and then depending on which server a user selects in your app, use the right key for that server. - - -=head2 Are API keys a security feature? - -No they are not. The API keys are only used to track which client is using which features of the API. They are used solely to help us determine strengths and weaknesses in our own client offerings, and since we're opening this up to you, it can help you in the same way. - - -=head2 If I distribute my software, how do I make sure nobody can look at my usage stats except me? - -It's true that your API key is public. That's why when we generate your public API key, we also generate a private one that you should keep secret and secure. Then you'll be the only one who can see your usage stats. - - -=head2 What's the difference between a public key and a private key? - -The public key is used in your application when making calls to the server. - -The private key is used when you want to check the stats of your public key on the API Key Console. - - -=head2 There aren't many stats displayed, is there a way I can see more? - -We weren't sure how many people would actually want to use this feature so we haven't put a lot of time into it. We're tracking a lot of things, we're just not displaying much. If there's something you want to see, talk about that in the Developers Forum (L). Don't bother asking for specific user information. That would be a privacy violation, and we're not about to violate our user's privacy. - - -=head2 I don't care to see any stats, I just want to write a simple script and I don't want to use a key. - -There is an anonymous public key just for this purpose. Just pass the word C where you would normally put an API key. Be warned though, this is truely anonymous, so if you change your mind later all that trend data will be lost. - - -=cut diff --git a/docs/Apple.pod b/docs/Apple.pod deleted file mode 100644 index 954f2da1..00000000 --- a/docs/Apple.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Apple Methods - -Apple is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Archaeology.pod b/docs/Archaeology.pod deleted file mode 100644 index ad3c21fc..00000000 --- a/docs/Archaeology.pod +++ /dev/null @@ -1,206 +0,0 @@ -=head1 Archaeology Ministry Methods - -Archaeology Ministry is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - - -=head2 view ( session_id, building_id ) - - { - "status" : { ... }, - "building" : { ... }, - } - -If a search is active, the work block will be included. In the work block, there is an additional item not included in other work blocks: searching. c will contain the name of the ore being searched. - - -=head2 search_for_glyph ( session_id, building_id, ore_type ) - -Searches through ore looking for glyphs left behind by the ancient race. Takes 10,000 of one type of ore to search. Returns C. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Archaeology Ministry. - -=head3 ore_type - -One of the 20 types of ore. Choose from: rutile, chromite, chalcopyrite, galena, gold, uraninite, bauxite, goethite, halite, gypsum, trona, kerogen, methane, anthracite, sulfur, zircon, monazite, fluorite, beryl, magnetite - - -=head2 subsidize_search ( session_id, building_id ) - -Will spend 2 essentia to complete the current glyph search immediately. Returns C. - -Throws 1011. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Archaeology Ministry. - - - -=head2 get_glyphs ( session_id, building_id ) - -This API call is now deprecated, please use get_glyph_summary instead. - -=head2 get_glyph_summary ( session_id, building_id ) - -Returns a summary of all glyphs that may be assembled in this archaeology ministry. Used with the C method. - - { - "glyphs" : [ - { - "id" : "id-goes-here", - "name: : "bauxite", - "type" : "bauxite", - "quantity" : 2 - }, - ... - ], - "status" : { ... } - } - - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Archaeology Ministry. - - - -=head2 assemble_glyphs ( session_id, building_id, glyphs, [ quantity ] ) - -Turns glyphs into rare ancient items. Returns: - - { - "status" : { ... }, - "item_name" : "Volcano" - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Archaeology Ministry. - -=head3 glyphs - -An array reference containing an ordered list of up to four glyph types. - -=head3 quantity - -An optional quantity; if left blank it defaults to 1, otherwise specify the number of times to assemble the indicated glyphs. - - -=head2 get_ores_available_for_processing (session_id, building_id) - -Returns a list of ore names that the user has enough of to process for glyphs. - - { - "status" : { ... }, - "ore" : { - "bauxite" : 39949, - "rutile" : 19393 - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Archaeology Ministry. - - -=head2 view_excavators ( session_id, building_id ) - -Returns a list of the excavator sites currently controlled by this ministry. - - { - "status" : { ... }, - "max_excavators" : 2, - "travelling" : 1, - "excavators" : [ - { - "id" : "id-goes-here", - "body" : { - "id" : "id-goes-here", - "name" : "Kuiper", - "x" : 0, - "y" : -444, - "image" : "a1-5", - ... - }, - "artifact" : 5, - "glyph" : 30, - "plan" : 7, - "resource" : 53 - "date_landed" : Date excav started at location - }, - ... - ] - } - -The C numbers give the chances out of 100 that a certain result is found by your excavator each hour. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the archaeology ministry. - - -=head2 abandon_excavator ( session_id, building_id, site_id ) - -Close down an existing excavator site. - - { - "status" : { ... } - } - -Throws 1002. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the archaeology ministry. - -=head3 site_id - -The unique id of the excavator site you wish to abandon. - - -=head2 mass_abandon_excavator ( session_id, building_id ) - -Destroy all excavators. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id for the archaeology ministry. - - -=cut diff --git a/docs/ArtMuseum.pod b/docs/ArtMuseum.pod deleted file mode 100644 index 181abb1a..00000000 --- a/docs/ArtMuseum.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Art Museum Methods - -Art Museum is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/AtmosphericEvaporator.pod b/docs/AtmosphericEvaporator.pod deleted file mode 100644 index 682911ec..00000000 --- a/docs/AtmosphericEvaporator.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Atmospheric Evaporator Methods - -Atmospheric Evaporator is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Beach.pod b/docs/Beach.pod deleted file mode 100644 index 628528bf..00000000 --- a/docs/Beach.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Beach Methods - -Beach is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Bean.pod b/docs/Bean.pod deleted file mode 100644 index 2a447b9e..00000000 --- a/docs/Bean.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Bean Methods - -Bean is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Beeldeban.pod b/docs/Beeldeban.pod deleted file mode 100644 index 866ec504..00000000 --- a/docs/Beeldeban.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Beeldeban Herder Methods - -Beeldeban Herder is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/BeeldebanNest.pod b/docs/BeeldebanNest.pod deleted file mode 100644 index a024ea7a..00000000 --- a/docs/BeeldebanNest.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Beeldeban Nest Methods - -Beeldeban Nest is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/BlackHoleGenerator.pod b/docs/BlackHoleGenerator.pod deleted file mode 100644 index 45a77afc..00000000 --- a/docs/BlackHoleGenerator.pod +++ /dev/null @@ -1,255 +0,0 @@ -=head1 Black Hole Generator Methods - -Black Hole Generator is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - -This method is extended to include the list of tasks. - - { - "status" : { ... }, - "building" : { ... }, - "tasks" : [ - { - "base_fail" : 15, #Note, range is not factored in. - "min_level" : 10, - "name" : "Make Asteroid", - "occupied" : 0, - "recovery" : 129600, - "side_chance" : 10, - "types" : [ - "habitable planet", - "gas giant" - ], - "waste_cost" : 50000000 - "reason" : "You can only make an asteroid from a planet." - },... - ], - "task_options" : { - "asteroid_types" : [ - 1, - 2, - ... - 26 - ], - "planet_types" : [ - 1, - 2, - ... - 40 - ], - "zones" : [ - "-5|-5", - "-5|-4", - ... - "5|5" - ] - } - } - - - -=head2 generate_singularity - -Note: this method call now supports both the fixed argument list and the new -named argument call method (to be introduced into V4.000). For backwards compatibility -the original fixed argument list will continue to be supported but will not support -any new arguments (in this case the subsidize option). You will need to use the named -argument calling convention if you want to subsidize the BHG and achieve 'perfection'. - -=head3 fixed argument list (original calling method) - - session_id, building_id, target, task_name, [ params ] - -=head3 named arguments - - { - "session_id" : "329da49c-7e88-4897-9d8c-3e5f6309d9b7", - "building_id" : 124333, - "target" : { "body_name" : "mars" }, - "task_name" : "Change Type", - "params" : { "newtype" : 33 }, - "subsidize" : 1 - } - -Note that named arguments can be in any order. If optional then they can be omitted -the C argument will cost E to achieve 'perfection' of 100% reliability, if -omitted then you accept the risk of failure. - - -Returns success, failure, and side effect results. - - { - "status" : { ... }, - "fail" : { ... }, - "side" : { ... }, - "target" : { - "class" : "Lacuna::DB::Result::Map::Body::Asteroid::A2", - "id" : "body id", - "name" : "name of planet effected", - "old_class" : "Lacuna::DB::Result::Map::Body::Planet::P9", - "old_size" : Size before change, - "message" : "Made Asteroid", - "size" : Size of body after effect - "type" : "asteroid", "gas giant", "habitable planet", or "space station" - "variance" : -1, 0, or 1 - "waste" : "Zero", "Random", or "Filled" - } - } - -Not all fields are used for every result or task. - -Throws 1002, 1009, 1010, 1013 - -Failure rates for the Blackhole Generator increases with range. - -Side Effects happen fairly random, but occur more often the more difficult the task. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of your Black Hole Generator. - -=head3 target - -A hash reference that can contain one of three items to identify a body. - - { "body_name" : "Earth" } - { "body_id" : "id-goes-here" } - { "x" : 4, "y" : -3 } - -=head4 body_name - -A string with the body's name. Case insensitive, but will throw an exception for misspelling. - -=head4 body_id - -The unique id of the body. - -=head4 x | y - -A set of x,y coordinates to locate the star or body. - -=head4 star_name - -A string with the star's name. Case insensitive, but will throw an exception for misspelling. - -=head4 star_id - -The unique id of the star. - -=head4 orbit - -If star_name or star_id are given, an extra "orbit" parameter is allowed. -This allows easier specifying of unoccupied orbits. If not given, then -the target remains the star, otherwise the target is the given position, -whether occupied or not, about the given star. - -=head4 zone - -Zone name as a target. ie: '-1|4' ; Only useful for Jump Zone. - -=head3 task_name - -=over - -=item Make Asteroid - -Can convert any non-inhabited planet to a random asteroid. Initial size is determined by level of BHG. Usable at Black Hole Generator level 10. - -=item Make Planet - -Can convert any non-inhabited asteroid (no platforms) to a size 30 planet of random type. Usable at Black Hole Generator level 15. - -=item Increase Size - -Can increase the size of a habitable planet up to size 65 or an asteroid up to size 10. Usable at Black Hole Generator level 20. - -=item Change Type - -Can change the type of a habitable planet to any of the basic 40 types. Usable at Black Hole Generator level 25. - -Only allowed to change occupied planets that share your alliance. - -=item Swap Places - -Can swap places with another body within range. Usable at Black Hole Generator level 30. - -=item Jump Zone - -Target is a zone, BHG planet swaps with a random unoccupied habitable in target zone. Usable at level 15. - -=item Move System - -Moves entire system of bodies to target star. Moves bodies at target star to origin. Target star needs to not be occupied by another alliance and not seized by another alliance. - -=back - -=head3 params - -Optional hash reference only used for Change Type that looks like this: - - { "newtype" : 20 } - -=head2 get_actions_for ( session_id, building_id, target ) - -Returns status and task list with success percentage for defined target. - - { - "status" : { ... }, - "building" : { ... }, - "tasks" : [ - { - "base_fail" : 15, - "body_id" : 973213, - "dist" : 134.40, - "min_level" : 10, - "name" : "Make Asteroid", - "occupied" : 0, - "range" : 150, - "reason" : "You can only make an asteroid from a planet." - "recovery" : 129600, - "side_chance" : 25, - "success" : 50, - "essentia_cost" : 0, - "throw" : 1009, - "types" : [ - "habitable planet", - "gas giant" - ], - "waste_cost" : 50000000 - },... - ] - } - -Options are as described for generate_singularity - -B is the amount in Essentia which will make the task 'perfect' (i.e. 100% success) the lower -the probability of success, the higher the cost. The minimum is 2E. - -If B is B, a B parameter is provided which will be either -B or B. - -If the chance of success is zero, then no amount of Essentia will make it succeed. - - -=head2 subsidize_cooldown ( session_id, building_id ) - -Will spend 2 essentia to cool down the BHG immediately. Returns C. - -Throws 1011. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Black Hole Generator. - -=cut diff --git a/docs/Body.pod b/docs/Body.pod deleted file mode 100644 index 362e4283..00000000 --- a/docs/Body.pod +++ /dev/null @@ -1,552 +0,0 @@ -=head1 Body Methods - -These methods are accessible via the C URL. - - -=head2 get_status ( session_id, body_id ) - -Returns detailed statistics about a planet. - -B You should probably B call this method directly, as it is a wasted call since the data it returns comes back in the status block of every relevant request. See L for details. - - { - "server" : { ... }, - "empire" : { ... }, - "body" : { - "id" : "id-goes-here", - "x" : -4, - "y" : 10, - "star_id" : "id-goes-here", - "star_name" : "Sol", - "orbit" : 3, - "type" : "habitable planet", - "name" : "Earth", - "image" : "p13", - "size" : 67, - "water" : 900, - "ore" : { - "gold" : 3399, - "bauxite" : 4000, - ... - }, - "empire" : { # this section only exists if an empire occupies it - "id" : "id-goes-here", - "name" : "Earthlings", - "alignment" : "ally", # can be 'ally','self', or 'hostile' - "is_isolationist" : 1 - }, - "station" : { # only shows up if this planet is under the influence of a space station - "id" : "id-goes-here", - "x" : 143, - "y" : -27, - "name" : "The Death Star" - }, - - --------- if you own the planet the data below will be included --------- - - "needs_surface_refresh" : 1, # indicates that the client needs to call get_buildings() because something has changed - "building_count" : 7, - "build_queue_size" : 15, # can build 15 at once - "build_queue_len" : 10, # have 10 building now - "plots_available" :60, - "happiness" : 3939, - "happiness_hour" : 25, - "unhappy_date" : "01 13 2014 16:11:21 +0600", # Only given if happiness is below zero - "neutral_entry" : "01 13 2014 16:11:21 +0600", # Earliest time body can enter neutral area - "propaganda_boost" : 20, - "food_stored" : 33329, - "food_capacity" : 40000, - "food_hour" : 229, - "energy_stored" : 39931, - "energy_capacity" : 43000, - "energy_hour" : 391, - "ore_hour" 284, - "ore_capacity" 35000, - "ore_stored" 1901, - "waste_hour" : 933, - "waste_stored" : 9933, - "waste_capacity" : 13000, - "water_stored" : 9929, - "water_hour" : 295, - "water_capacity" : 51050, - "skip_incoming_ships" : 0, # if set, then the following incoming data is missing. - "num_incoming_enemy" : 10, # total number of incoming foreign ships - "num_incoming_ally" : 1, # total number of incoming allied ships - "num_incoming_own : 0, # total number of incoming own ships from other colonies - "incoming_enemy_ships" : [ # will only be included when enemy ships are coming to your planet (only the first 20 will be shown) - { - "id" : "id-goes-here", - "date_arrives" : "01 31 2010 13:09:05 +0600", - "is_own" : 1, # is this from one of our own planets - "is_ally" : 1 # is this from a planet within our alliance - }, - ... - ], - "incoming_ally_ships" : [ # will only be included when allied ships are coming to your planet (only the first 10 will be shown) - ... - ], - "incoming_own_ships" : [ # will only be included when ships from your other colonies are coming to your planet (only the first 10 will be shown) - ... - ], - - ----- if the body is a station the follwing information will be included - "alliance" : { - "id" : "id-goes-here", - "name" : "Imperial Empire" - }, - "influence" : { - "total" : 0, - "spent" : 0 - } - } - } - -=head3 session_id - -A session id. - -=head3 body_id - -The id of the body you wish to retrieve. - - -=head2 get_buildings ( session_id, body_id ) - -Retrieves a list of the buildings on a planet. The surface of all planet's is made up of an 11x11 tile grid stretching from -5 to 5 in both an x and y axis. The planetary command building is always built at 0,0. - -The C method (among others) will give you C and C. A planet's size is the number of buildings that can be built on it. The building count is the number of buildings you have built so far. The maximum size of any planet is 121 (11x11=121), however just because there are spots remaining doesn't mean you can fill them. Also, sometimes permanent structures such as lakes will occupy a tile space, and can artificially lower the number of buildings you can place on a planet. - -The list of building's retreived by this method should be placed on the 11x11 grid, and the extra space should be filled in by blank ground tiles. - - { - "buildings" : { - "id-goes-here" : { - "name" : "Apple Orchard", - "x" : 1, - "y" : -1, - "url" : "/apple", - "level" : 3, - "image" : "apples3", - "efficiency" : 95, - "pending_build" : { # only included when building is building/upgrading - "seconds_remaining" : 430, - "start" : "01 31 2010 13:09:05 +0600", - "end" : "01 31 2010 18:09:05 +0600" - }, - "work" : { # only included when building is working (Parks, Waste Recycling, etc) - "seconds_remaining" : 49, - "start" : "01 31 2010 13:09:05 +0600", - "end" : "01 31 2010 18:09:05 +0600" - } - }, - "id-goes-here2" : { - "name" : "Planetary Command", - "x" : 0, - "y" : 0, - "url" : "/command", - "level" : 1, - "efficiency" : 100, - "image" : "command1" - } - }, - "body" : { - "surface_image" : "surface-e" - }, - "status" : { ... } - } - -Throws 1002 and 1010. - -=head3 session_id - -A session id. - -=head3 body_id - -The id of the body you wish to retrieve the buildings on. - -=head2 get_buildings_resources ( session_id, body_id ) - -Identical to C, but every building entry additionally carries a C object describing that building's contribution to the planet's economy: its hourly production/consumption and storage capacity for each resource, plus per-food-type and per-ore-type production breakdowns. - -The C object contains the nine always-present aggregate keys shown below (C, C, C, C, C, C, C, C, C), plus C and C. It also contains a C map when the building produces one or more food items, and an C map when the building produces ore; both are omitted entirely when they would be empty. - -The Mining Ministry is a special case: its ore output is driven by its deployed mining platforms and the ships servicing them rather than by the building itself, so C, C and the C map are all omitted for it (computing them would require walking the platforms, their asteroids and the mining fleet). - - { - "buildings" : { - "id-goes-here" : { - "name" : "Wheat Farm", - "x" : 1, - "y" : -1, - "url" : "/wheatfarm", - "level" : 3, - "image" : "wheatfarm3", - "efficiency" : 100, - "resources" : { - "food_hour" : 350, - "food_capacity" : 0, - "ore_hour" : 0, - "ore_capacity" : 0, - "water_hour" : 0, - "water_capacity" : 0, - "waste_hour" : 35, - "waste_capacity" : 0, - "energy_hour" : 0, - "energy_capacity" : 0, - "happiness_hour" : 0, - "food" : { # only included when the building produces food - "wheat" : 350 - }, - "ore" : { # only included when the building produces ore - "rutile" : 0, - "chromite" : 0 - # ...one key per ore type - } - } - } - }, - "body" : { - "surface_image" : "surface-e" - }, - "status" : { ... } - } - -Throws 1002 and 1010. - -=head3 session_id - -A session id. - -=head3 body_id - -The id of the body you wish to retrieve the buildings on. - -=head2 repair_list ( session_id, body_id, building_ids) - -Repairs buildings in order of ids gived in array. - -Returns similar output to get_buildings, but only ones identified in building_ids - -=head3 session_id - -A session id. - -=head3 body_id - -The id of the body you wish to retrieve the buildings on. - -=head3 building_ids - -An array reference to a list of building ids to be repaired. - -=head2 rearrange_buildings ( session_id, body_id, arrangement) - -Rearranges all buildings to the coordinates supplied via the arrangment array of hashes. - - { - "moved" : [ - { - "id" : building_id, - "name" : "Building Name", - "x" : X coord, - "y" : Y coord - } - ], - "body" : { - "surface_image" : "surface-e" - }, - "status" : { ... } - } - -Throws 1002 and 1010. - -=head3 session_id - -A session id. - -=head3 body_id - -The id of the body you wish to arrange buildings on. - -=head3 arrangement - -A array of hashes. - [ - { - "id" : building_id, - "x" : new X coord, - "y" : new Y coord, - }, - ... - ] - -All buildings being moved need to be supplied. -PCC or Station Command need to be in position 0,0. - -=head2 get_buildable ( session_id, body_id, x, y, tag ) - -Provides a list of all the building types that are available to be built on a given space on a planet that are within a specific tag. - - { - "max_items_in_build_queue" : 6, - "build_queue" : { - "max" : 4, - "current" : 3 - }, - "buildable" : { - "Wheat Farm" : { - "url" :"/wheat", - "build" : { - "can" : 1, - "no_plot_use" : 0, - "cost" : { - "food" : 500, - "water" : 500, - "energy" : 500, - "waste" : 500, # is added to your storage, not spent like the other resources - "ore" : 1000, - "time" : 1200, - }, - "extra_level" : 7, # only shows up for some plan types, skips level 1 and goes straight to this level - "tags" : ["Now","Resources","Food"], - "reason" : "" - }, - "image" : "wheat1", - "production" : { - "food_hour" : 1500, - "energy_hour" : -144, - "ore_hour" : -1310, - "water_hour" : -1100, - "waste_hour" : 133, - "happiness_hour" : 0, - } - }, - ... - }, - "status" : { ... } - } - -If there are multiple plans for a building, this will return the plan with the highest extra_build_level. The build time cost for 1+X plans will show the time for the +X level. - -The C section provides a little detail about why a building can or cannot be built. It is formatted the same way an exception would be formatted (an array ref of error code, error message, and error data). - -The C section can be used to display the buildable buildings in a way that makes sense to the end user. The tags available are as follows: - -=over - -=item Now - -Can be built right now. - -=item Soon - -Could be built right now if only there were enough resources in storage. - -=item Later - -Will eventually become available once you've completed the necessary prerequisites. - -=item Plan - -This building will be built using a Plan, which means it will cost no resources to build. - -=item Infrastructure - -Everything that is not a resource building. - -=over - -=item Intelligence - -This building helps you gain information. - -=item Happiness - -This building helps you gain favor with your citizens. - -=item Ships - -This building helps you build ships. - -=item Colonization - -This building helps you colonize other worlds. - -=item Construction - -This building helps in some way building buildings on your planet surface. - -=item Trade - -This building allows you to trade good or resources with other players, or assists in trade in some way. - -=back - -=item Resources - -Everything that is not infrastructure. - -=over - -=item Food - -This building either produces or stores food. - -=item Ore - -This building either produces or stores ore. - -=item Water - -This building either produces or stores water. - -=item Energy - -This building either produces or stores energy. - -=item Waste - -This building either consumes or stores waste. - -=item Storage - -This building provides storage for one or more of the five resources. - -=back - -=back - -Throws 1002, 1010, 1011, and 1012, and 1013. - -=head3 session_id - -A session id. - -=head3 body_id - -The id of the body you wish to retrieve the buildings on. - -=head3 x - -The x axis of the area on the planet you wish to place the building. Valid values are between -5 and 5 inclusive. - -=head3 y - -The y axis of the area on the planet you wish to place the building. Valid values are between -5 and 5 inclusive. - -=head3 tag - -A tag that will limit the list of buildings to return. Required. Cannot be C, C, or C, but all other tags are fair game. - - -=head2 get_buildable_locations ( options ) - -Tells you where you can build buildings. The order of the returned list is not guaranteed. - - { - "unoccupied": [ [ "2", "-5" ], [ "2", "-4" ], ... ], - "status": ... - } - -=head3 options - -A hash whose keys are: - -=over 4 - -=item session_id - -A session id. - -=item body_id - -The id of the body you wish to get the free locations of. - -=item size - -Optional: the size of the building you want to put. If this is 9, then the unoccupied locations will be for the LCOTa (center tile). -If this is 4, then the unoccupied locations will be for the SSLa (northwest tile). Otherwise, it returns locations for single-tile buildings. - -=back - -=head2 rename ( session_id, body_id, name ) - -Renames a body, provided the empire attached to the session owns the body. Returns a 1 on success. - -Throws 1000, 1002 and 1010. - -=head3 session_id - -A session id. - -=head3 body_id - -The id of the body you wish to rename. - -=head3 name - -The new name of the body. - - - -=head2 abandon ( session_id, body_id ) - -Abandons a colony, and destroys everything on the planet. Returns a status block. - -=head3 session_id - -A session id. - -=head3 body_id - -The unique id of the body you wish to abandon. You cannot abandon your home planet. - -=head2 view_laws (session_id, body_id ) - -B Pass in a the id of the station, not the id of the parliament building. This is because anyone that wants to should be able to view the laws in this jurisdiction. - -Returns a list of the laws. - - { - "status" : { ... }, - "laws" : [ - { - "id" : "id-goes-here", - "name" : "Censure of Jamie Vrbsky", - "description" : "Jamie Vrbsky is bad at playing Lacuna!", - "date_enacted" : "01 31 2010 13:09:05 +0600" - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 body_id - -The unique id of the space station. - - -=head2 set_colony_notes - -Sets the per-colony notes for an owned body (colony or station). Returns -a status block. - -=head3 session_id - -A session id. - -=head3 body_id - -The unique id of the body whose notes you want to update. - -=head3 options - -A hash of options. Currently, the only valid key is C, and its -value is the notes to assign. - -=cut - diff --git a/docs/Bread.pod b/docs/Bread.pod deleted file mode 100644 index a6a20718..00000000 --- a/docs/Bread.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Bread Methods - -Bread is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Buildings.pod b/docs/Buildings.pod deleted file mode 100644 index 7c37025e..00000000 --- a/docs/Buildings.pod +++ /dev/null @@ -1,539 +0,0 @@ -=head1 Building Descriptions - -Your app can download a copy of the building descriptions from C. Your app should cache this file, and only download a new copy if it has changed. We do not include this information in L because it's the same on every request for every empire and would add a lot of bandwidth for nothing. - -=head1 Building Methods - -All buildings have some methods in common. This is a description of the methods available from each building. - -B To use these methods, you must use the URL of the individual building types. You can find the list of building types at the bottom of this page. - -=head2 build ( session_id, body_id, x, y ) - -Adds this building to the planet's build queue. Returns: - - { - "building" : { - "id" : "id-goes-here", - "pending_build" : { - "seconds_remaining" : 430, - "start" : "01 31 2010 13:09:05 +0600", - "end" : "01 31 2010 18:09:05 +0600" - }, - "level" : 0, - "status" : { ... } - } - -Throws 1002, 1010, 1011, and 1012, and 1013. - -=head3 session_id - -A session id. - -=head3 planet_id - -The id of the planet you wish to build on. - -=head3 x - -The x axis of the area on the planet you wish to place the building. Valid values are between -5 and 5 inclusive. - -=head3 y - -The y axis of the area on the planet you wish to place the building. Valid values are between -5 and 5 inclusive. - - - - -=head2 view ( session_id, building_id ) - -Retrieves the properties of the building. - - { - "building" : { - "id" : "id-goes-here", - "name" : "Planetary Command", - "image" : "command6", - "level" : 6, - "x" : 0, - "y", 0, - "food_hour" : 500, - "food_capacity" : 500, - "energy_hour" : -44, - "energy_capacity" : 500, - "ore_hour" : -310, - "ore_capacity" : 500, - "water_hour" : -100, - "water_capacity" : 500, - "waste_hour" : 33, - "waste_capacity" : 500, - "happiness_hour" : 0, - "efficiency" : 100, - "repair_costs" : { - "food" : 0, - "water" : 0, - "energy" : 0, - "ore" : 0 - }, - "pending_build" : { # only included when building is building/upgrading - "seconds_remaining" : 430, - "start" : "01 31 2010 13:09:05 +0600", - "end" : "01 31 2010 18:09:05 +0600" - }, - "work" : { # only included when building is working (Parks, Waste Recycling, etc) - "seconds_remaining" : 49, - "start" : "01 31 2010 13:09:05 +0600", - "end" : "01 31 2010 18:09:05 +0600" - }, - "downgrade" : { - "can" : 1, - "reason" : "", - "image" : "command5", - }, - "upgrade" : { - "can" : 0, - "reason" : [1011, "Not enough resources.", "food"], - "cost" : { - "food" : 500, - "water" : 500, - "energy" : 500, - "waste" : 500, - "ore" : 1000, - "time" : 1200, - }, - "production" : { - "food_hour" : 1500, - "food_capacity" : 500, - "energy_hour" : -144, - "energy_capacity" : 500, - "ore_hour" : -1310, - "ore_capacity" : 500, - "water_hour" : -1100, - "water_capacity" : 500, - "waste_hour" : 133, - "waste_capacity" : 500, - "happiness_hour" : 0, - }, - "image" : "command7" - }, - "status" : { ... } - } - -Throws 1002 and 1010. - -=head3 session_id - -A session id. - -=head3 building_id - -The id of the building you wish to retrieve. - - - -=head2 upgrade ( session_id, building_id ) - -Adds the requested upgrade to the build queue. Returns: - - { - "building" : { - "id" : "id-goes-here", - "pending_build" : { - "seconds_remaining" : 430, - "start" : "01 31 2010 13:09:05 +0600", - "end" : "01 31 2010 18:09:05 +0600" - }, - "level" : 1, - "status" : { ... } - } - -Throws 1002, 1010, 1011, and 1012, and 1013. - -=head3 session_id - -A session id. - -=head3 building_id - -The id of the building you wish to retrieve. - - - -=head2 demolish ( session_id, building_id ) - -Allows you to instantly destroy a building. - - { - "status" : { ... } - } - -B If the user downgrades a level 1 building, then the Client needs to eliminate that object from the user's view. This method will return the view of the level 1 building, because that's it's intended course of action, but the client needs to handle this gracefully for the user. - -Throws 1012. - -=head3 session_id - -A session id. - -=head3 - -The unique id of the building. - - - -=head2 downgrade ( session_id, building_id ) - -Downgrades a building by one level and then returns C. - -Throws 1012. - -=head3 session_id - -A session id. - -=head3 - -The unique id of the building. - - - - -=head2 get_stats_for_level ( session_id, building_id, level ) - -This method is for power users and script writers. It will return the projected stats of a building at a certain level. The building must already exist on the planet, because where it exists and who it is owned by affects the stats of the building. It returns - - { - "building" : { - "id" : "id-goes-here", - "name" : "Planetary Command", - "image" : "command6", - "level" : 6, - "food_hour" : 500, - "food_capacity" : 500, - "energy_hour" : -44, - "energy_capacity" : 500, - "ore_hour" : -310, - "ore_capacity" : 500, - "water_hour" : -100, - "water_capacity" : 500, - "waste_hour" : 33, - "waste_capacity" : 500, - "happiness_hour" : 0, - "upgrade" : { - "cost" : { - "food" : 500, - "water" : 500, - "energy" : 500, - "waste" : 500, - "ore" : 1000, - "time" : 1200, - }, - "production" : { - "food_hour" : 1500, - "food_capacity" : 500, - "energy_hour" : -144, - "energy_capacity" : 500, - "ore_hour" : -1310, - "ore_capacity" : 500, - "water_hour" : -1100, - "water_capacity" : 500, - "waste_hour" : 133, - "waste_capacity" : 500, - "happiness_hour" : 0, - }, - "image" : "command7" - }, - "status" : { ... } - } - -Throws 1009. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the building you want to get the stats for. - -=head3 level - -An integer between 1 and 100. This represents the stats that you want to see for the building. - - - -=head2 repair ( session_id, building_id ) - -Restores a building's efficiency to 100%. See the C section of the C method to see how many resources will be spent in this process. Returns C. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the building. - -=head1 Space Station Modules - -Space stations have buildings too (called Modules), but they don't behave exactly the same as ground based buildings. See the L documentation for more information. - -=head1 Building Types - -Below is a list of the different types of structures that can be built on planets in Lacuna. They all share the above methods, but many have additional methods available. - -=over - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=back - -=cut diff --git a/docs/Burger.pod b/docs/Burger.pod deleted file mode 100644 index 7dd9e9e4..00000000 --- a/docs/Burger.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Burger Methods - -Burger is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Capitol.pod b/docs/Capitol.pod deleted file mode 100644 index 11de6644..00000000 --- a/docs/Capitol.pod +++ /dev/null @@ -1,40 +0,0 @@ -=head1 Capitol Methods - -Capitol is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - - -=head2 view ( session_id, building_id ) - -Same as view in L except: - - { - "status" : { ... }, - "rename_empire_cost" : 29, - } - - -=head2 rename_empire ( session_id, building_id, name ) - -Spend some essentia to rename your empire. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the building. - -=head3 name - -The new name of your empire. - - - -=cut diff --git a/docs/Captcha.pod b/docs/Captcha.pod deleted file mode 100644 index d1bdad41..00000000 --- a/docs/Captcha.pod +++ /dev/null @@ -1,41 +0,0 @@ -=head1 Captcha Methods - -The following methods are available from C. - - -=head2 fetch ( session_id ) - -Retrieves a captcha that is required in order to call the C method. Display the resulting captcha in your creation form and then call C with the user's response. - - { - "guid" : "id-goes-here", - "url" : "'https://extras.lacunaexpanse.com.s3.amazonaws.com/captcha/id/id-goes-here.png" - } - -=head3 session_id - -A session id. - - -=head2 solve ( session_id, captcha_guid, captcha_solution ) - -Validates the user's solution against the known solution for the given guid. If the solution validates, the captcha will be valid for thirty minutes (an expiration timestamp is set in the session) and it returns a value of 1. - -Throws 1014. - -B If either C or C don't match what the server is expecting it will throw a 1014 error, and the data portion of the error message will contain new captcha information. You must use this. A captcha cannot be used more than once. - -=head3 session_id - -A session id. - -=head3 captcha_guid - -This must match the C field returned by the C method. - -=head3 captcha_solution - -This is the text typed in by the user as the solution of the captcha. - -=cut - diff --git a/docs/Cheese.pod b/docs/Cheese.pod deleted file mode 100644 index 3e594f88..00000000 --- a/docs/Cheese.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Cheese Methods - -Cheese is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Chip.pod b/docs/Chip.pod deleted file mode 100644 index 74147b73..00000000 --- a/docs/Chip.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Chip Methods - -Chip is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Cider.pod b/docs/Cider.pod deleted file mode 100644 index 9a6c7f7d..00000000 --- a/docs/Cider.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Cider Methods - -Cider is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/CitadelOfKnope.pod b/docs/CitadelOfKnope.pod deleted file mode 100644 index 54a2507d..00000000 --- a/docs/CitadelOfKnope.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Citadel Of Knope Methods - -Citadel Of Knope is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/CloakingLab.pod b/docs/CloakingLab.pod deleted file mode 100644 index 87452071..00000000 --- a/docs/CloakingLab.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Cloaking Lab Methods - -Cloaking Lab is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Corn.pod b/docs/Corn.pod deleted file mode 100644 index 1c5af288..00000000 --- a/docs/Corn.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Corn Methods - -Corn is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/CornMeal.pod b/docs/CornMeal.pod deleted file mode 100644 index 8a630370..00000000 --- a/docs/CornMeal.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Corn Meal Methods - -Corn Meal is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/CrashedShipSite.pod b/docs/CrashedShipSite.pod deleted file mode 100644 index 75d1d3da..00000000 --- a/docs/CrashedShipSite.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Crashed Ship Site Methods - -Crashed Ship Site is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Crater.pod b/docs/Crater.pod deleted file mode 100644 index debddfda..00000000 --- a/docs/Crater.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Crater Methods - -Crater is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/CulinaryInstitute.pod b/docs/CulinaryInstitute.pod deleted file mode 100644 index 915aa820..00000000 --- a/docs/CulinaryInstitute.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Culinary Institute Methods - -Culinary Institute is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Dairy.pod b/docs/Dairy.pod deleted file mode 100644 index 99f92930..00000000 --- a/docs/Dairy.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Dairy Methods - -Dairy is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Denton.pod b/docs/Denton.pod deleted file mode 100644 index 1105162e..00000000 --- a/docs/Denton.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Denton Methods - -Denton is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/DentonBrambles.pod b/docs/DentonBrambles.pod deleted file mode 100644 index 30d88992..00000000 --- a/docs/DentonBrambles.pod +++ /dev/null @@ -1,9 +0,0 @@ -=head1 Denton Brambles Methods - -Denton Brambles is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut - - diff --git a/docs/DeployedBleeder.pod b/docs/DeployedBleeder.pod deleted file mode 100644 index fdb076cc..00000000 --- a/docs/DeployedBleeder.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Deployed Bleeder Methods - -Deployed Bleeder is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Development.pod b/docs/Development.pod deleted file mode 100644 index b93f68fa..00000000 --- a/docs/Development.pod +++ /dev/null @@ -1,143 +0,0 @@ -=head1 Development Methods - -Development is accessible via the URL C. - -The higher the development ministry, the more builds you can put in your build queue. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - -This method is extended to include details about what's in your build queue. - -=head3 session_id (required) - -A session id. - -=head3 building_id (required) - -The ID of the development ministry - -=head3 RESPONSE - - { - "building" : { ... }, - "status" : { ... }, - "build_queue" : [ - { - "building_id" : "building-id-goes-here", - "name" : "Planetary Commmand", - "to_level" : 8, - "seconds_remaining" : 537, - "x" : 0, - "y" : 0, - "subsidy_cost" : 3 # the essentia cost to subsidize just this building - }, - { - "building_id" : "building-id-goes-here", - "name" : "Wheat Farm", - "to_level" : 4, - "seconds_remaining" : 9748, - "x" : -1, - "y" : 5, - "subsidy_cost" : 2 - } - ], - "subsidy_cost" : 4 # the essentia cost to subsidize the whele build queue - } - -=head2 subsidize_build_queue ( session_id, building_id ) - -Allows a player to instantly finish all buildings in their build queue. The cost is returned by the C method. - -=head3 session_id (required) - -A session id. - -=head3 building_id (required) - -The id of the development ministry. - -=head3 RESPONSE - - { - "status" : { ... }, - "essentia_spent" : 8 - } - - -=head2 subsidize_one_build ( parameter_hash ) - -Subsidize the immediate build of one job on the build queue. All later jobs (if any) -will be brought forward by the (remaining) time of the subsidized build. - -The cost is returned with the building details in the C method. - -Note that subsidizing all builds in the queue can often be cheaper than subsidizing each -build separately. - -This accepts a hash of named arguments. - - { - "session_id" : 1234-123-123, - "building_id" : 4566, - "scheduled_id" : 56767, - } - -=head3 session_id (required) - -A session ID, - -=head3 building_id (required) - -The ID of the development ministry. - -=head3 scheduled_id (required) - -The ID of the building scheduled to be build/upgraded that you wish to subsidize. - -=head3 RESPONSE - - { - "status" : { ... }, - "essentia_spent" : 8 - } - - -=head2 cancel_build ( parameter hash ) - -Cancel a build. All following builds in the build queue will be brought forward. -Any resources or plan used when the build/upgrade was requested will B be -returned. - -This accepts a hash of named arguments. - - { - "session_id" : 1234-123-123, - "building_id" : 4566, - "scheduled_id" : 56767, - } - -=head3 session_id (required) - -A session ID, - -=head3 building_id (required) - -The ID of the development ministry. - -=head3 scheduled_id (optional) - -The ID, or array of IDs, of the building(s) scheduled to be build/upgraded that you wish to cancel. - -=head3 cancel_all (optional) - -If set to a true value, cancels all builds currently scheduled. - -One of C and C is required. - -=head3 RESPONSE - -Returns the same as the C method. - -=cut diff --git a/docs/DistributionCenter.pod b/docs/DistributionCenter.pod deleted file mode 100644 index 34ae2faa..00000000 --- a/docs/DistributionCenter.pod +++ /dev/null @@ -1,100 +0,0 @@ -=head1 DistributionCenter Methods - -The Distribution Center is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - - -=head2 view ( session_id, building_id ) - -Same as view in L except: - - { - "status" : { ... }, - "building" : { ... }, - "reserve" : { - "seconds_remaining" : 0, # time until reserved resources will automatically be released - "can" : 1, - "max_reserve_duration" : "7200", # max length resources can be kept in reserve - "max_reserve_size" : 100000, # max amount of resources that can be reserved - "resources" : [ # resources currently in reserve - { - "type" : "water", - "quanity" : 2000 - } - { - "type" : "apples", - "quanity" : 2000 - } - ] - } - } - -=head2 reserve ( session_id, building_id, resources ) - -Reserves resources so they don't get automatically spent. Resources will be held until the timer expires or manually released. Returns C. - -Throws 1009, 1010, and 1011. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the distribution center. - -=head3 resources - -An array of objects of resources you wish to reserve. - - [ - { - "type" : "apples", - "quanity" : 2000 - }, - { - "type" : "chromite", - "quantity" : 5000 - } - ] - -=head2 release_reserve ( session_id, building_id ) - -Returns the resources held in reserve back to the planet. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the distribution center. - - -=head2 get_stored_resources ( session_id, building_id ) - -Returns a list of the resources you have stored to make it easier to identify what you want to store. - - { - "status" : { ... }, - "cargo_space_used_each" : 1, - "resources" : { - "water" : 14000, - "waste" : 393, - "bauxite" : 47, - "cheese" : 1193, - ... - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - - -=cut diff --git a/docs/Embassy.graffle b/docs/Embassy.graffle deleted file mode 100644 index 8b70989c8ee1d9e6a4607b48dfa69500e119f952..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32981 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 J3c0H@y(_$hKw6IYikW13Jd4dba z)JY2iG*lHQIi30;_tob7`|ovi?|+&)v&j%gk_F$x=y) z#gW}1Lqhe`F^}ojPu^@5|IL=bAe_Lm#bMqXS=oijsi|!Lu768rai~6%xY9QE|LPn6 z&n)=GV@sN`NmetiUgpgaSQ^9=t42?iB)iR>!& z3AGFfr`uCioShGU|DY_p?cb$o%!+EA-R}5^Ao8NknZyVlxg8f^L z8}sFS_oFv%9F7n;#=kf@mp6f@TI7qN;(>D?^=F34$N$~`f}&M^p0k z+-^MkbMWD^>gXQevD52iyDv8Lobg z_Tw#wXMESU-1~ol#6P*`{QbY*OI0?S>qvh-Kc_zJaqIIx(dh~w8b97IF|s)>m!DsH zQLgdi|5=~&J8f(Chbu=bTkG%s`h8ZwA&tr@N?zhi8!x%6WQr3p?vnLb_-$cGfR%>s z6st4AtZfgJ*WCR7-t^r|{=IL-XUog2e-S?Ge2BLCF#rDljZ6YJ_TSj@ z<2x6_f*;2YzGq~pdMNlYu<;+GNSy4CvtOq^G3ER`ZQ7Hm)2B|poBV%&W_9(o`A65? z_;asY;hFgVMXk#i7R+M)edS>N#XZXzGJdf!{JXqA!|CD%Yjvgzn;*yui~e?(&wAg+ z#!{i4!jjV<&A|}(!}2t<>H@wkjf@ryI*qagZ0|PwXE|Ue!OGX@GJ)li1DgeZ(LvP! z9xq4L6|CDGg)>-X7qEY6Wc5WjpMSXde+tV%*rq;-RHtJc(bk zHN^3iqV7aJ5Bn66PZ~zDGuw3>uPH`P*n1-JiAa&)PwrO7i2-{wG;jF#27c4X4^erg zp(R|(8QPiUV(Y}a_}=1afz}yHvxIdU!<=U?n0w*h3+ERmC33rDYQ^vN*0s)a{C^<9 z;EaS|kI^xS$32{fWR9gI=_S819C+2k9SX zvs5*4I5sD^b110@e&Q@`$vec7*xJ?AHQ#IMsaaYRURi|NUG-gcJmme#xyf zyMvAg%wM{0L7m6nSyinbDqO-_JM~<+KI&}jy5U;m{m0XJ(Zpqj3qLNjbPM*l>|yM( z*`<5A=%T9&OPBjDIJ=c4bP?@$=s89DYM=3UV)Ou zQOjHl{^Dsxc8_BoKYC{LsOy2&gIABDo}@jy_Kfe*xrcd==RH^anDL3_(~}QdKG!@; zeRTC9@58gtYme+cbNpob8S%sAz3b=aPmXW7KhJ*V{(1F54GIgC9;i=HzM#25=Y(>G z-VBWh$u1)(S2_x-*~?J{i%J1u9Ft+eB^o5?`W=S>QarRR!b{W9aH_EDm@JpbraQ|>NEBD zs*KRstI4a@uG)WP$`y^Q?N|4$@?OclI(+r{x8gV7@7|yDe+%1ww#dh`j!jWpzij!l z(6gGlcDkFwIb0ak1N(%!gEfboPAHvObW$i{Rz%!}Ia`D_c5T^}-@9?!CcQ2HQk2st zXI#$q-t=|D+HHRmmuHus%exbI#qQX?%Z=9#UR`)9@owOK!`p?YJdeHX2%c}eyLdtI zX6|c84=%lv`gXy=gLj&Z*LAJST&J9;lvkMNf9K|1=R5Kh7pf-MzN=VdD{H&jcKeBG zPlP_rn%)^c@%pCi^S-;jXO+*LFEhU~p7(yv{YZP>{W<$B>v{ik|NG1s#aPMM-B{H) zooPR-B)cg4TJ~tRaF+LN7HwDBA351Nzi%~cVQshNdd}C+E#EVt!=rmfS4j7n-k3h4 zUakJNMRym?*6b-L_@U!w^33JT?})QE4&9jFF2i@Xb8$a+ceR+lT)kDD*+GMczY?z` zzCS#-v!>It^L_sdnVn@KRnCepw*LH5a;Ndn z^s@86=DxLGUh?i#<(Z!wJ}XB?MNYl>D_?Ydo4PA$-J_mIy{j9;kFS%A z&DIgrJE?ti%CTv6TE!Z#_pU42yK2r}o5eM|mDVJ!y0q+5;MAhfP}B6UJEdHFea`;j zy)MnX_1D(3r9q|FU(I}NoYyql(A@t1r#+@cx4)D( z-?YD)?+d8AXtTiTg3*rp4Y?lKE0QDXcRXKu^7OuNvGr{3Z`_Z$#kwy)R&(rGT>GAX z-_*XHefHxc=NFe>DtA-vMW5TQ`u@nhtNxn4wiWCD|GUY4oB#3UdzZQ87u)BZT~eo1 zcWU<2nQLcFo}WF}e2)B&nh&4PI2}3kEa{f`FMU_VmqpF{DfTt@d-XG} z+g?Xs?Ynx;boJKl_D=OV>z4md`5pPw`)T<5w#UcbJX@&yChXs~8)c{aUY})om&)^8BPOGU>Z) z;1Z3W+R>{!Rxb*qHq`7OLH>)kfFtaPysew1XC%*}tdBfDGPYlgpz%tO0X zg=ZdDcm+M~1M-|1YfT^qCR@3pVBm7%F?Gv@w& z-rV~__pI!;yRkR^WmtsW;a74rc4_#sF!+Lo6Vt?|8I8%S{Vd+)yU$*jZm@i#*A4$2 zrz^slK4oC8DvS(`Dro(UshnP8un0GAsK1#Pic;uJQzbgP=vhRcm7w2`yT+gzd__ z73uHGuL@lIvFhfcQm@;-?yl1Vzpsvyf5W@7Eza%Mv6y4gYLD5Ye7Mg%Iuon2MW=Ob zM_Bf?_c`-!ncbXvE8SAX(#>+>+}zkN{93!Xb{g(}e0RHTn2q=e`Mt~bsMj8=J^oki zk2>=`)_vTwc;xsig@38#*whH!TbaH{Y*DyI^u`&^JcTkJYdDqKmkLkq%aAp-Osl_R z-8pH_w4fPPzg^;Q{n4Ctnd{{_Np~afb6@8Ct(m9it$F*cQ&8s)7`Yd%z?fmfX`;Me-T*10A$pwd(n=M_pX5aH?e{vtm{$!iIyRp}O z)}~pf-cZuN)Nb3aVj?7S;@q4x{HmC_~p-+I24*{rLa^x0(N`R_B27Ei6a zC|<)nr#Z(t=kOc-o$;JK9et;IH1~y7FSgCINHl!;$?Qk$sSwUL{I}&p)B9>(%}t)m z|L@L5jZaT+h3|aIfB*fOus<1pcWzm^XYS|Q|1>P3C$Q>0V4BgeLxFt-!>^7T?H=xD zlyxWQYD9*}MhV{SEIhO(skq?P4$D8KPBK%~w@L=Kx^+xz?epkQZSe4LGZAi^Ijyxh zbcXN5yA6jMjVEZg-0nW!d3{R0{r(jUx-x-ZIb%ingaZYCs#b;T_{4bBggly|vi^y) z<|Y%BShZxG%^I_Hmur2GvvYQge0X?Yao4OaZZGkvrBnB>5LqF$LT|O`D(RK$-{@a6 zxcp;fCP2Qf&PY(_R2Im?lT+5u7m6+qX zr6w~p)-Tx8k=dzhJ4H}jGJpPp zq8Yk^UUw|GWDm=ydnEabc}(;OwOBZ9S?#3{Q(k7SF4^9*;!JRQ*ZF&v*Nf{+vekaS zZv8rE?VY)M=GHhhzEORC=*ps9rxzc6ui( zFaKCO^}O2eoAEpNLwNJ}Ztr;`^-&_ZcCVr0ziog2KHy2+m-+J0saNZdSAY8-9DU1L z*uaZn$~1-t9M|1)&M<0BW^wS4v$Ma&xIu|2VL6vT4lBbe8+L`oyXw#JODXWBPg8s# zGskovlk^A8Mf|MJ;tQ-VXlKYC?7QIfxXT zs6S%q6+df}tMZmDR?AkmR zuU0)+_B8KZ;RWN4IS)#YRUerCRAws(@}Ij>ZUz=EI`A<4Vyj@^*ts`2Vg3x6*1{I322%`$=i+zimAC9IGj*dHhF|NyO1sQEj2+L$irC7c&gC3o|(v9T7iSx3cP`j%3%G&2yIR znZVS0XnpN`(feAw+V+7j19Ag*udXZp&)chYmTPU%+oHK#cdPdP{?*Ux#+%+-H%ox8 zVAiP_FK672`Vo07GBqN8+sZAu8(wdcFZ=Oi$3vg@N@W4(ub$PtXUl)iyzRvOJ(aaK zwd;TRvVLHzVi9HSZ@ttm*)HF^L)23CtcziXXIHJ*hZvy&t-sIQ{eJyz3#}Gf&q|^$)dM zpSS;FKzRA)UuCJzmC0$vF5SMXour+A7rEDm=YF4g?}Pfc+F9q1#u@PC@b0a?X*9_) z?R#6|o@%26UckKo>UAB-P{ zpK*J!?D@2_+phIJ(Yu`g+n6bI$G&nlljeQ_+axLioI zv)JV57Qd3766Y_LJbo&6m&%XDEz3T0JYr8I{|3#C+{Fb2lPtFHv@7KQRPw>>!_^Pd zxu=1$NL+p$02i*vco`bP_^!q)oMMmjrO z4%80b9sGRxydC>?JI;I9V0iJ!BZqA-vx^zK3r?41S4o@SF4`^1UVFS|dA?p4yY!uk zJLfAGo%D?Jw$s|DS;x$1(>T%buAY?7TNjX|3y7bp+-v75=R((4Aef!>bXYTN3#^n2DF5Dmg%VFo*|A`6e>sBwj zy(|55;nU#d=`GLi>Q7?Z+O{puthc52uzFnL0@b|^c`TgGW-=v>@CT90p ze}*nw9cR?1pR4wt+5G3>?XT~{?$@u4iJKZ*yCrSE*|)<_k3ZRU_}Aw7yX@o?iL=K;F%He;5B1d0@gkZb$%Gj5}LPh<8w*VO72?)qPU-1~d~c0HqQ zR(l5Ld86|T3=EtF9+AZi4BWyX%*ZfnjsydP0)wZEV@L(#o4x!IbFR+({=c`i?TAxc zkBVNV_~wgo8D|3yXD7!_F58fO_Lte=ZGpS3UP|q54O!b*X3D*P)~=N6dyeEWuk`i& z6}G7@W%UuW$+6S7L@y9py+be4IOL(x5+~irR<^JkY>x`Q{=9qs{?Ee<#s`dz4emeR zmGwiW)%k}1e(ymlCeTPVWEL1LJTDDJhv3t?gkd22@Jen zS#(6yI+2_N(!7~(0s|)kIWP$=SU9ht^^nR$WMKy0(rYL#5%O?gGPxqWAz+3Iif0xq zJZA-R0K$!&9t~|(Ok!M{lVSx`>thWW_mF@CKP0Pe_`4CzV`iL(eRkYsoLR>&RM^|Vt0DFzWs_x8!8yOP4PTTOah11qJt!_5;ap0{i(ZvQ!y`W+=1V ztA1~5^W#DDk8j)e`zqH?JN2en{*S`E+Ha9H518d0+}zmeKF_{?W>QKQDD^b{bZuz+ z^+(J9SsRN-!ZgmB&$I6zaku*Xw{o^Fc|h ziSt4L|FeV2pa8qTu|n8mZ=Akd-H$|}PR2&(cD{!SP z!qz@Lu1fRUo14w+Yo2OLNK1D&x~&4`k;WtH4$ih8Pj_glFbZ`TGWsd>8WuR;jsJ5r z{(=9$C;lIvO!hyf&UnQOl-fAm8tSeHuW^_mBc#yyLnuIfLR|gdueVr&`h5FqBj?!F zMt$D!`E~q%sm#pGjs6U#lNdNBI6M+qApiAjAqLsfA4WM_J_s)M;? zl?tPfhYgdz%}17XyWd%@bC{*z`uVATz2yDB@5+T$OnulO$%vtS-;s9ft&l|jyc)DoWt8>=xk8D0~H+u(X$|+D5J&?vE z^DD_Xp-Y`n$Rmd770adU^?Spj6P|Coo#%b0MJ@A`UfiCJ)B5{m^7sEWyE4@qoD3Z% z2|lEMB6Mg}f5}{`#7cnaOE;HW?f#TudfcCNG*X(^E*H zF#wd9yi^SP?LT(XC+pJpProT)cb4$3gk1J#Q!m1;fV;uoIj5EmyWZs+xcDe0C+151wb0lCuK7lI5pCpat;e86(aMSJ3j zOT|}1!xyezt-a|0k1NQ|&m9caSDptZ8fmLIFbNAAge&}gUjOfTC-X-yCs2t#;pick zi42@a8W^gtBs0v^@@Qar?D&71m)@26 zS9ICe{OmN3Q{V_}Q9mH}wMAb^Z32r&f*OlOV~N@qA@y~cE7bkEW(a{IZNq#9-qPQa z!OWZ!9OiJ$5cZI-`|;3XX+u_e_kpY7@xA8vYl^oW3FHHX)frAElPk|%3=Jo$I51rV z1#d>DYFR~T>!trc=l}P7<6=|_iZ+AOEEy}#8wGSJGYWa|Fm0UcVAZwwXl2BP1jifx zafzCJ^R2{r(zeJR&H8cZuLR#dBW?G&?p|BBh{(U3BU<@U>{BCuO+#DN9`43po((KX zehqC^XC?+Ka!zQt%W{TuNoZ(j*=nOFzYG4!zHiyJXP(xMPvHxGBpm2kv5(tg@v(}} zO2^cCEdO%vTX;Wn;{A8~4QdrRMLu8h)<62b{{L?lFTu%9plJIhykKFTeR7rps4Q!& z@KK1(c(QTVR{pL>&F7cbxBc1`5dZMnI=LH@`acP~ov*60oA>ga)Af)0U8;J1o^dUG z6F9$n=`oYZ44h}CFz|kzDU?zpq|n%+RPg8s=a%i;mGgu>f-kqYa|H!`@vpk3l~eUa z;8s>ia_#kR@12dW9{=^B={d)|?7Z*aSM<+2{BiG74V@Ftar1s@9y!;n{?|GASXDtm zy5%=H+s<#3-2-AGIu4y})zHv6c5vCsnx6iJn_qIA>Q=3BZ2WdJCZ`%rSrFd+SvmWy+3mK%>FlZpX9r^X#nA(AjpU`NHr zMM~U{HF$Y>4bNSi5cIl9X*B<^1_Ir z{ZWafY2_-P9a&!ugpMyg$-$9+wDHlp%*`d$`(Iysl)vWE`IF5}s^=e;Xq{`QP@R{j zd(Y!~qH>RSrt~Hk%~KuW6OZ$}jjH|baiI0a+kJn(-9EJ`^>otm39~?MQuxQR@1We* z${!z&>P&RlB-HVi<&uVGdR+VNBSGx5K6ab4H-;p%R?XNL@aul#!*BHm%SvbL-Yivn zD$_(ZyJ`J;QP(Vq^J0G%#n-9!ZQYsuwP3ku#cS^^mrJAnv-xK2D7>vuw`;whb@b(1 z-IslRGbUBU@`~QtxoY{Wt#QA%gh~gjU3#(kdHh#yDVw_ty4zN>%|91-U*bqza(~sE znZe4O6CD0mqq#PFt!9>_ zq#W_GE(ZsjB*%pS|F)nsIZp*oj+(dG@rRxHZKo{QDSJR#&Nh=f_^REP2fBZ6MJImg zKKyitPxr{m9gm}$S2w3ESeB4FFKY#}@A`d`IuX`h$9L_1 ze`MA7IG2r9%VLl1U%gHxe9ir|R@0^HcRk&F!Rjjim4mDK+~vP6+UNE5Rr$lu=VY{N z)|7|z>vxOkc5RJ%1!`k7?hsnAP%ivWh#!-R!EBa)&+`AVff{QmJ->3g=E_Ds_j_FF zJ4xD{CHm&BKU-qn1pc~Eu|p_tdR~e7_0YuEvadJlY;|bc;vv3!XXQQKnQt`3d-#5S zY3)86@bCUbzbSeZRrC3&;=t4iYRD^1aA$&%EhtFvx@Xyw)BZDeeky*=rA;eP957dJl&D|Fv1_U_ZsMq|IPD^{+o zn!fY$PtP^yOxSnwoIZRwxQb!s1t|&b&yS_Idak**YVD0p-czHS&Oc3mmH7C}TE5!A z<1357F`c56u{v{vmg~gP&i{vC!Fnzu(T=!}D+A{euhc zny%eZzSXeK<;^>X{wLvOTS$8HGcO9#}9k|@yy5rXJ zjo&Nm_U$U%dM|t4B<}K7VRoL!_alE+uIc)Gx5@TZ*u~;@77v9^P}>mP!e~rU{IHO} zmg7~$*WBA`Ml;iAyJ$_*yMBCX|MWKvt5@*M+ZHFI7594ooLOB@|0yqdBC=@hJ}2wP zH@EVx zGuB>Yo4436CI99ssh56NPDK3kn!ak0*eyT z@zn={wLpym6`984kNy}LKWs2?RB>SX+|ppV@yqG>e@1cje@k^@b`<12(b47JneD^> zQdsq;lG~G@X*{oIYNae_*|J8a@UujP+g*R>ux&q873pOmj3T(`7-TFQNn_B9n-iduzJr>1UF%1X+Kjg1YE-?IbM zpK~x0d?4{PMJxB&RF+9o4m|F+@B9Cw|NnuF$;T&6IdJFvw_fvm9r?Adqj$VqHv3s! z+6-n;ORJ;jK(fp)AxVukB}SnchgpQGj$X1nV>->#zWSR^*xD#j@2OY74a!1LH|w42 z0hS32oHu+O=0^N_GTHx;cKlDTrnM1S<>#Ka|0%y;E53N~;)s1V7ZyJKb3(e<5!9ra z3~D(_%El=(3e7NQvHSbd|M0_t2c7EkW|&ucP3u|l`11N)uU4g;)cfoSQZB|Q^-7HE z-2?{CGv!RLj$E>>{t8T43A*>ZWge|Em}vw%r6LqNWqACVlvx)=LNw0=?l9RVSnVB!-kp?op-0S~y`~Q}oK7Ys=BOy;9Kz&->*VXZ^ zo}MS~coa-p_Ni4o?tr@8$4-^AwwryKR3^Lu^+j%GGko@E^7MJI_xruWTd&8h)@>`f zox5Gtu=B{7Uq`#e3x7VH{`l?o`^T0}kDE24Gi4R1c0ORoB(peAKH5u-QOKi&=~dU# z`#;Z>e|XT$Uv%^mi_V(*-`ndCAGiBvDD{#v!pujAbAm$-N5Kp49E)IX&It}pLJy8y zV$qfGytetgUAOi7J;sH?C#HbXA#xvJ!VebEFvWvkuh$=68N7VLA zSzAk|pPO^=(o*lq3dheVfpTq+@_~i=k0*R!;hf-bN$|muOGmUnDZBSQcs4tK*~EDj zu7^cHU6u);-l%|C=tKri6}`rG`8tWWZ{J!JK5}`aX4DxJ798BXHhQ~SVBgG8P}EEK zH?;k#P_uDnQkl@gVzJSrkn8XC{eM({{rctLZ_^p9=EKQ3!J&rZLO?%%IcV_3!+~i| z#4L%{PdAeLA7;n@meSkVvVFx74Z&qiEFKDREEY3OprxN8XF*bCP509;FE8KNkjPy3 z_jSCouCDIBPRMXThd!g9TCaY67N|dL!ZasB>b}s=U)T5dxyx0yxK-73H{SAWU=eCz zxUa3|;bOY-S|9Bs3LiNOj4~fh z7Yz1bQW4N+niG*_|5JTl1=IaM&&&(|{3w)q`R(yCHX(&ZOScBwSH)`%%!m3{G4y?g(G|NjSmi~4^ymo8sU54TtfN;3!UfVzY`8gqAs+0nI%kqrXKit0mFYNKp_5XjZfAR9=!ijdpOQtw5sTlZk78t#> z(Tzy!X7Nb)#<9ZoC0{%9?(+BZY!`Z}cm|5>`FbrnBPZub{NJnb4}ZO0?;aL5%}niY z|GyXglR8*7gGYoef(8>_R2Z6YPH>ncRPp_8`NX+%d%4B+R5Tl3rvI*eUoF3G$0M#a zF*}9I?^Q1U7P+tH=NDEZHBfR@VQ)PCVvU(4*Q}i?j6yRM8&$ohIeh(k7Cb=a(ZG`A z+Ta|Y1&?S#-2 zu0Q9LD;f6KzdI0~f7&tOAZ-!s8a@I&l@*O#8nTpRb-oBz?prZ*oVC9J!hqgQSD=Kq(QM|7XG-JG-O zwc_UvFE)GR{h#~awJT{$Mdn{&5xV>Bleg7Gs<*iU&a(U1H@c)^2E_4+Glwx3N2RMBFY9 z-JWp5ys3V7eQ#;6HK)gd|EeLs=C5wp<@Kj$?kmoS0H2^EEKA-iZBV@(_t1ixe zxN1Rtv%T!$iE1o|E56QTp0$Vfob-fwliIc@%w+U@nCB#rQNJ(jwQq??=%Pb!Czws zHtGC+ou=aZ@WzUZ*ZNoIFAlzMY$TR6an_=Z9EYMb`;BUg^n>0<-|o@F9iGd+)$rC+cmIb|m7jW?-NAEu+RTUCg&(FCD?YW; zdRVq7!BNY|Wasq6z*kHn@9p{~_%)D{IvU*RvwBXzjn%rHeOwQ8@GbaIvrT*PooNy9J{TEAkh)r`WYv)h8}Dov(E1msq8g z&xz#cah(6wr|BGOYD$vHpZ`ie)$76gJ8BOaPOr49FMjXZHzqGZ%-fIVY}lr+ePP%{TP_+kcHKxv8GLe9!t8#zVoLz6wph zmVJ~wymImG)N_}aPWzpj@ZV|G4d$ore!a#we&6n2yd!~8Y~|OW9Qn`lK4s>5%o5V|Kw$J059rPk9>fhV|Zbag{dvy(aWzVZ+7U+v#*LePYS)i;7WP#iIXp0MK8$=*xFn2^YX%FmOu8hKP||()uZw$ zT~0tEGx$!FbjXqlsU9o28}B3|->lNV_`3dN;?kwtJZ^u#&#sg|`SA9yjc=FL+i#J( zR=&F4=BIkg&Ul3vb&N+NFRpm8@T!F1GXIDZ$|rtoyBWBa<=^4Z&O4L39Za_QANlGl zP?cRe`_!KBmTNyxg`NHo$QI@NX2}Gr^(PCiNtA`Ql*aiUcKPO!9dz|qe!{+xmnXEd z=Lcmcx(F3r9%@t&B|38oy_S^(Ey+qSlC zUa`;nu*HQeDW3o>DXX4i6)qpEN}QwDu9@0)r*lVnb^ z^=eL=qWwwT@awB%)$!g-uP)fFB|XLN@wyAwFDBgip>lWHpM?s}u^)Ril$~R}S`V&R zv@yD`eTv}!xv7hme6ES%_#yvJCbid%%WcXprN_(So^Tp){YhOb^}H6CirL$$OTAqF(#5N*CDI}`O)2{%`AYd-RDJSG z)2O7?JKU!nZYyL8U;FLL^ZbhLDSZOTTaOwn_1s zSg-DH7c%~F&T%`x_dbVq_J!Y9qE~;lZ_Zos^D^W2#Fy(i@3~q1`MLh%s@^^Jd-i`f z{UDRia*##%jmCoV-y8B0vpHop$=#ddW*g-H`}Ecq1?~lIZBe|74=>#!<@(P20Q2j8 z`@{DgSuCYqH}m4P?JF-CBz^VUHFaB|=*>5|rqy4YHy>VH>2ScvFZR}KrThTv<@@RV|U+ug2sQ%%a-I;A6^}pA! z`=>Ac^-QblOQg<`ilVC#b1fP#?VLY{#pm{+|6-X+e1TWY4XK=ieVnn;_ginlGuQ9x1*sfs|4-cMe3 z`Rm8?lygVQJ}xU{IDY$|e$n+broZcx=9{g**?ab!%tXVCtG_c|-ww&#@Ne}BXV;tU z3jZ~<&wlEkwE0)ryV$Kt?f<5)U2tb6J4?+ap0$N19cJV{@+u40y;Uyakh|~pyvx~* zi<7voNXgkW-Mug7c1dmaj5(rtPujM8t*U-|V7?Cjz6}+fb*hJZa{gJpZ#TBK(3!yc zJa$rh+RyXzDrB4cW77YYFY~+4?t5~D&hB89LgmH`PM44M9ydGO`{y28Y?S;y=DDWH z-jCUTyz1g@Kia(Vkw4H@H9z0uesP`P_9rdZewNgn(*4%8{1k_*s}$4b=PQmq+j=tk zwew20MKh=W-aGf$k@>4Pe~tXPaHo&y9MLMjh2hU)))}nZofjv2OoYQ=d;5Kt=ClJV z1Z{3Cjl90_(9<11T}%4Kvdw22gg?E)wMM_#qh@BnE8FII`@(c*tp1R;x-jnJ{<#Gm zKc9%2_t{!cdw4X>v_p9Qp18Fqo?l46k+J??7|(3eq!`v*&4`RUp?;-Z!Y54A_?nqM zCin@wI9@z;SGk<&&fD*IsOGHV50N{5zkA`k{AV!*YdQ{W@QrLedsQ!_vvA8_cJ+@Z zZuMIHet-VOz0_0N5_-e_x-W~ozs&FOjPvg;t^}K2l;_I$^zG3?(^WH%<=zttn18e= zuaT$qkeOjg|K2aUYxE=z@o#(GoA*-Iyytw?l-y5K+gf^3r}s@?I(H)H*NJw*^Xkj* zq*#X@xjH}K|KieyEeACNm!3Z}pL_m~f{fYgRQuvp3@jU0yoxpqs^27ieaAL`z2J4< z%B0wivzT4&dj08-(ITH_$%|i)Zaw(=*bMPWPt0HPe0{q5N?gIsb8}|bIC5Q=V!3G) ztovi~J|XFpZT;@=q*K4H{qd-@yU;QBO0RBcmCn_E|8uP+r)D_z+!wL9<~@Ix#H)M9 z*edj{^M2($w|Z@X=FR`ovs2g>T)(~M<>g;rmLC6Wwf1jZi>mk61?Dvd4;&A5y{!-b zF!7EkWBN|(>l{60cKvUUam$uRvf8cr+5Gu=Qpy9~H>-peAJ{E>zPwKIyWinyv72Ao zSzL)bv#M&#`>6J9>0jBKFYPzsWw(Ak`{%dSOlyC?JCOACd~)um`Y0XwuQ6<|H@2q6 zy-zt58l==#C0b_lnQ7mL{pViqyDTfZ!_?d-+WfBB%^FiH;c42_S#%@PyI$qxUMX+a zOVU~OWp8$uL&)o!ksEhR{=%|oMZR}+U&749CDwODZ$y?@+kHA7p5W?dcJ9r6p5tLV z*Gt?EF}rG=zbBDxYOCO)&6Df0kDA>79Hl-fEB&A3tABnwHn7gzbc5r>T4!!P+z+I){gK!U+ud$YL%A;taupAzVT=NyknnsmnGJ}TeTp2 zA^Xj~ua}bdao^kZHh}#hL*AW|(g(d7((~`A#Cj*K$iKa)bot@X476r;ff_a4k!M z-P`=}%gfpy%g?_#_~icz598AXoqh_(e^#EbmaE{q)2Q7$-Sgcg>j|=E4=-*#c`4qm zdiHb4KYR8|Z2uXb-1#PPi`gr-zQ@P-z4;SGUjAPF#4IFjeZsSiOEh!jE8B%P_I~PJ z%_|()#_|8n1!u>-H~-dtQnO2l7D))6D>6GPd4jKL*Zk|N%N2^dZFpDBO<8iNXU>-W zpU?IG3b*4nE$21-(s;vcg5Jhna$lASKIe>{-Jfc(GMm*-EhBg-=pU#lP0{qP<3Xl!8_g^ zRw+xI-l^wr)?01OYF>ZC!teOn=+j^RYKhBPy!g&-U-eE!Zr>+9u zfAq`QS-U9Qb@L51_uf^K((i6{esh$JS)cpr@6-GQo$?0#yeRGT$20AeBmc}aXIZwX z_Sm8o`TPF=%%AK1IlE%<{rL9V{nH*#ldXEbfKxB`Yr4+tQ(Ft!{l3nAy~Shh{r$Y( zUz}g&R&cFya&*Z4&#BXL9=u6lT;TI%Wu9~p+pVVBI;%N)r_;BHosZ4_xy&^E<80$O z%#|~({$6MMV?5`oiN&0*(@)D!vi`8mVmZaR{l3J5Q>RP*ONi(lxZVC`hxVkk4Y>!3 z)-EqD(AbpVAuw6$^!{!2VPy-hix)53_CKbf;@z>i4%?TX(eMxVxXG^W`&B9BpSag6 zf9Z7=hmUNuiEdfBcpu;C(CKGdIU>vtToH|}z5Mr^`?R(T|5sgpx~b;K>Yqhn+h=t? zcweJz;5e73Q{n?Z9yjQ+mXCoK=T`0J&^Pz3dsy?EVaU+gHK+zD-=Ebo=S0g>!cli@4Rja@t#NV|%zpcV_3K1p^J;`D)Z$p&3U~di^xe5QM_a}*ResL0DRW83?(U{b(Q1D^e>Jnvxm7x_nvux|9C#62FdL_ESH5o$2dO zmCPb(wZ)5#e9|f^T(XWRElE#P(pB|Y@N$lnwCjEy%eRwH=B<1=T~XWC@BMRC+2%=o zf-{S^d+2;RQ?WGJibqo2k>g8p`9Y%`aqdX5seIfK@vffo$BxIHkuSES5*G(crS3Cpeh z|0@d*KP?x0Vi)71Z2K~c(bxwxF`^>i&-6LHr^-e%$ei4qsIqK$dxWH#o;n+V)~*A!zCbw44<*8SJ9w;A}h5yFC-M zd;v7C4wCeU0t{@hx%N0SFgLAFa1&LPBVrKY+&Korc=ev1_M%9uO4il2LH+ejbFFL6jAfkHd0gw4{ z4xNY%4D~+_%Rh@)wb)WvY&w_eVRvy1Nh4Xcd$(Cnv5!Zh13{Ug<_(y4iLEEmZ zC6@!{$4}KZFwaV!&m;Z%;~%}JVAV?Kst+vG|Ge5}rZgxI!7^B-Q$yP?8%>Y2W~9hW zr~@rj*nevBPS7G%Shky?&LWi7^ULPp$sBk=q9V!Yw`$&fR=M+@S52-wFTb1g4xS)# z)DC!FHDm7E{G-Be)w2uJEyV4vP6ii0Q0)#DOeR+j2R^h!auB0XhcTnnt3o}7Rq8N{ zL2hjS+ zb&QxZm1&$(pkC?6(Zl;F=lJX&cUcue`NZQtDn5CZA_ysL59kOTxKh$!!%iCip|MSz%XQxsl0s^{( z)7cLn={UO5u!oO7xkN{7*9vgz$Wb%6*1y==T-h|4b=|~mX7=|PkDG=kM!IQnb$x#n z^1noScgF2ghBEqR4>z%LZ%|k-WBYKE?XAwFufLj-w)A^76dr&3>nmtUvG{y&+$79m z$ymYOD1EeZE^EP#ZHHISE4K&?3TxaXv|Vo1PA=(nyLfi{e`7z|b@Jc_@%iUZ99R@x zsocStucgQ+w4wh%fwkA?=@0v4OK0)5U+$eWNodDhzPCGm9x!{Nf4gP!Wy5QWbG6yy z-9o2cd&GP%_QM>m%aV_GHR|y*h7WfOOYl z)fTXJgXbJPj~}G5m)yS5+tz0{C(o+Iw))$HfXkUYCEFMIWM|n%{J)wUV7+1StwlN7 z=gqD-=6@~Kz0EgQCO_x&5BIfyrz*S(@c63z!opVmd`bDj*FWN;o|k6+0WBzNoGG|q zVcy5r2fx2xajCEC)$R{3mYI5NUU$+jitk-rlKhr^rSHrB{EpmN+cWp@!B0t3-rIK; zr_T=T3bBBz( z-@L7PV$b6&n=U=NTcy80oqJ!%E@AcaGq29kCIq7HeP4-ak&V$AEM#a}2eY{l_TYA@S4xf~_QDwDxWwfN8`STAk zPZ@VUa7fKvy2NAKs^u5NmKewEnNXZuTXC?M<-FwK;Ed4xM{+ zHp+V5^zeqDo$F_;-LvxT9c}mC-#+v1WIu@u+$F7E-6Sl1v-bFu6Y-$s-RcWmc6zog z>Jf}A*!{$9S!|%2RhFnJuS4ghhqEoNow(3&$=qN;hGW|;k?CUYz3Fvxyk1XO#It4Q zrz@ZNT;pCuC2C3S(q+vx&3nD)@XL@VXV;g;Ji2(eGCSs)Ww3wgY>hy+DYumBD=cLG z74&f}t)5g9!P#-KPxh&`@J!=QYe}QsPyCimzMkZMpzqUG=QIsL>rxl(+d1cDQhOJk zIdJ)XVcBSmxon?9NeQsvWI@5nIY?e_|{o1noftqVyP6&E?PqYidx@Bs+m*j>Yy65~SvwVu_i|;vA zy&LXT_cwkLJ?OXPsrA$oH>a6T+!yiE@ayrY`75XI->4|i|H-tZPC0A!?R7_PshVF> zlKCXnwsm#btk)dot2c&8hiwnKe@oGA&yjDXnySZo7cJR#bb|S!E!U<=@UD&i*tf!p zZHm`ngY}tjw@xWD4SDg9>Cz+VjH~iobEbA(RMU?A+GgY4dFj&H<+rY1Uo}O-=#Lhc)v@rs?;rGd7}|;ozf<>G1$FiQ~Q*|d3OcY=Dg(gdgc+o z{nFK|OY3*-o|^aAc)`}GUPs=>?$~DJ5qQ8cdFH*HiQA^eE;D?yW+P9Y?vAV1{1aBp zz8-7pRxO`+JMUQVd+~K%M{h4r-?n(4&wln9ZT0bsQ)f)SD*blXdVkB9Ma%C;-jq68 ztIpuSvisuH_g9$Gqwl#$B`-aGMP9pBS+k9@;}0pgT!VgUzzUkJ;tnO{~$q3+s+AUo%yXLub_; zMMfbH7N$pgylzj6kuupKu>N}9k{|cUnU-ZJp0QQB~|Wn`Qa_%ma4)LzdpWQvEq;Hv=!S{u~faCnQL)D=W_Fvo3qWfl-r(dU$A|OoXyuG zet%rNuS*}ZeCaolZ;CJf+N{!f*Qz5Q+n`_D$_ufcX5v!8Y@^b=a)8@G4G@&g|q zYBx`wR4d)5nU%gu;`49*7uT2VdH>?z58LCM7OO8_{~};?{0#dk!7p3>O7!2YXfI)v zJJ375R$%X`#V4laSnd14bFQX}Lo)o=|9r!)2hM!)0xwsT2}9RWAx~U)31%jA>4Ow z+{vqCG^t^nt}piGQTO(ei>6iYcgK`l#1>4?IdpcX@{L`k(<>?rlUsj^);gZQy67<1 zyoYWRQ=T1apXN2+)*RHN@epBpSs>EEs%0zIE`96ciCs+EiI%V59b5eR%wa>B%0Qmd z&jr_R?{=(M^~HSBsxD^hvKh11#Gl_L|KQEv?2TDgy%}3_f1gr)_V)0F`HSpU_uLL! zKS^#T=eCab*1|`gzqE97usN_&&E2aj((&@fthZ`1Qdy$6AG#S{D}V6YH~z?C)|(O) zi&@?K{z;kV*K)AduW7e0e`PW6&S#N%)A^iAqbnb))x4c3v?ltg`7>os=1BgBKla(K z`1S9z#d@x&T|%?>eGu5Ti+e(05mzVtU$5Q3@^Y`DA{-aRy>O|g~`iJ{J zr1QT!u*L@c_rd>lKIHK9^pXe$3K)()!vDr{p_}1Xtf)+^^4L9+|aZv2SK(X7I0+ zcjp75x84#}5}u$X^4{UVne%b|h4*CMYc%=B8nFdQr>Z@EaC(bjJm1p7I~z7LE?v9S zHS;x>9J7>Ju%T6^`_FSO&wL*FwVl!1Ir-(2tv3WWEUtMwLDK7ppX|j`+n!xJam1(e zQSA-iV=38_jhFVW4m*C;?ee|WZBr9Pe(ZYn)hz6p*w$}+Czga33SGFq+>%S;MXu?w z%U$on78jbP`kBnUvL~-6uzyD`f9G@mR}+*DtEl$=+PidZRJq23Re7J;C)&p6FAh=> z_V&(-n(Fc1+L1}gqGMalav{sxpVTgiYuhgS7x7a1)3u)M{AXMw_Ulgd)9u;3$<_LD z*w#SnbwM#E35%b~9z41qM!U5v|PLV*7qwRN>-`eba*WTADp9zWyZn z@2{FYcg)ouKl*A{u>AAnh`E`kq>p`6pMOc!_knTk#41x&cJr*0Uz74D+`n&V^7fz1 zr|aw8|4q)_B~u6Lz&JDsL~LEjq8b%tv*Y8lqCJ=7-?S9$c&_4QU+O&}|MSaj#wnYHjtqbY{k+TPD3PS$;k+M)f#&~aO?J;&qV*xg1yub15Z*14qa z#jn|0yyxY%7o4h^YSlL1?&o(Sn-!AzNrgwg&+RPv@aKFuHE-}Wtf$Fjw&_XTV%KyJ7FFUgRM>--NYX3w&!mCmtVx8Je&>VwOxFBN>t zVBNN2{S_Hifpp0LzxiS}*Y3)B&sVc|-Q^yu|Mkpkzk7UZ^?+uF7ebeoUy+dGyz=FQ z&{D5R*Vdpgksnhcmh65W#2USBt5bEGo5;qWUzf)fo{b1Bj##-?Z*$t)*?QZV((`wp zUN!aBEU%-o59S5_;nAKdxBem5r4PT9KE=Eywo?Vi(HT#jKvP(?`6w zZhGuR!wu?N;Ek_^8BeOR|E{yVT5(W*@0{1srQ&lZzmzHWt+HHlQdD1vF+b%P>#TpA z^YdLKrHpoasZCD)#^q#r$1w2v%ao7m`_1l6ZuFOwlnQcViu3c;Q~b61;*|U)m)=g0 zTy@(|_VPs8H*Nvd2F+VXtw znRvInDZ-_|VD6{6K5ueP&-Msk^JT`bEtvc~pZf1zo(dxPW_ioSrntRCLlYLS4|KR64w*Q)TJJ`7Q*=*&S0f%XRtb}-!*1) zy7;|)%CxBcfoq$L?AL9IT57!^cK(&80rP|6#WEheE{aM0%9yvm#w**mAwOpErRydp z8dKd=r(XQv_QP(e*#pHzmnv*cAFSnneEROvE7iw)+a>2;m6*42@uc&RVoX*KQRb~5faw$0|} z6_$F%`0kC{uBo$>_7|=z3h(`Pm~maLsOqHOeKU`rs9PSrPuO#QZso^o$*=lD_pSM5 z?P-1eZo-c5COtP3oMQv6e6F8+R(o9W@N%uJDbx7=7u?i5-0@L&v+okVX&SK$=PFMV zj9<3?xlqyy?OI;9<4Xhg>qh1+_1(I0%?G9UOV5I?&$wu(_dm+`m~+R;`|s{YOwCWQ z=_dQ6Kx&CEhjbYj&ynRp{2$e!Q_67AME_ zrFJe`xUNq*xtBTJ@V?%afbh#U7cQ;{nYLrC`Cl#lugQJc^No5keY)4z z|6jbt@$eosZv8C&!_PKeT&%Z##hO0%QpZh=Vzp=Xn65wnrX=w45~){4-|qe|)OO9= z{%D%t`NAsRuVsIZ?6O-~X;5-0VEbYR&0-ryYptI?Dd$w){kZeU6lPk{Z9g&yV zqIx(>FP#>+pmb8gVd=6pCtf9LXsr&BVy<#ZX`2}ouj|a2vT?0LbLpvywnz7_RV_WD zsx5!YYdc@2%3al|znY?yz8AQ5J}Q&q7x3F2q-dpPB(~+)jSAxwzW5ipD?_`wPO0pT z^-9ideKd{jhUTX^dY0*X)&(7&A|l$E6L~~6CEGei^P~3`bGP?fu4>mWf3`Q>ItHLtdYY`1xqTeNQkTyNj8 zWy{R>lT#LW&%Y%nz4wFB!Ckp3O$L9{`gdLA&TE=*|G+~1Tffg0w(Z*U+fZ$bRq7I_ z-j4}^*?bdw(mqu*#95aohwf_x2QPoiq1xXZHv&(lD;291sxKDljX51K|G?=B0kbW4 z-?wj3t;ks~amlTD&8xK+j(zidwZz;>`d8ArERE$#UFr|jVwe4SqkoKl^Q)z0H1Vz^W3X$>E05~v0o(?_ZOPKV>J>vYyZLR z*c$22e`2mS&ULg~dhtUBv*dlb)4HJ2Roz*g_p5`(o$dV%vQul+jM9b5jl3?NFy$>3 zxteu&+Ly$zT(9Wp)t3}(k1wmX+Pd(P*~?Uce95TfC?(sQRqDSxE=5HrnQpkXM|yLh zNp*};ulPx$r#bqETchH!W9ehv@P?BOf-FHU)X z<g3r?x+9KE6@i;PzAN+n>~wgdlCc%{*T>%$04sxO$f??~G+)cfx)# z&57MH<<()iqs2R-?$k)-dv(8BI<;S==S$aiiQG*~jz$Kpt&n;(l`Fe$u1|~E-`S(e)glA-YbAYj2U}~@tQNmbF1H1GrO{OV@F#9Uvkn~ zOP&*6-Ct(CsO0_1rLgz^ecmrA3QbO*)_!|&e%tegj8o-BX8%@~o%rH?{rj6MiOb(y zsQF;=jU{b&4QS}VB?&Tg&?wg$GPhB_{ng5KZZgY@gLC>hsl0dBgY%FnD!87D7(+GMZaR<5eM;lK8#laK#> zD0_EwRSom!gcpC>UhawR104@?q_tr)OZ)r%j1}jv{F6JkuZqWd)fLurwm*Iy^pn|T zE`C>k?+W&gqRtN;k6kzT?40TJ_xgS}hYvqj_M7EK$ckkA>3#lA*!{ZxH6k(W z`B(cdY-v3@E6+gu|lc_q%Twn=996%f9m4-}qiJe3nD@QeoX_NlD4D zZ+G%O&angaZ{_|^?=!oXa(YTMSNe|4Z-PocX8)fyNorF<)wTJHLf8!QR$4bayS~4Z z|KGpL%9M#)^-pa}@GS`0KjFgO$oMk55XOFxj}zVroj7&U^_s|Exrr@~QDQ~m={H%F zWG#2@G&?y@I_dcRtIyqb&GZtQVb7x145`(0uCY?IcQ zEqeK}X@NxZ+~pru*C~8oRT9Z${vzne$9umz|0#U9q<@d;+E3}&QrEleck26(mcKnT z@6pzShn82C7@ACc{A9`FZ@QwB{>oaEeX-P$v0T-v@we&LXS=V<6eG5(3vH=KtT*X>h4xqE2w$sgQc{Wqw;6suNbce4lZJMFoquX>Aj)=4aJowQpN?cfRw#UtdquZ_53}nR13j&7iHW za_#+l_w?rb&9QwRzsjaj`0NtU%*p}KRFA1jvPImic2;h&1jjhbs$+>vR{c}5u6OsB zWQ8A>7tg+)?f0=wfKA@tx4q%!#dj|ov+9>W`6GWNyDeSz+WHg6&;4~TD9E?`6n>{E zZQ^^4>;v=D`|CZ$GWV=0jc?MC){PeZWX!d(`hVS&{By_KVpo+UyiQ+tv94D9>%8x^ zx9$2r{cU91P*(YE-=(l*@78GwzG)Y~^?vyNxjpc)G273IZx27uKE1VlX0-gu>r7SK zIs^Ars`trQc6>Tib7xbma$8%wy{Maj|JhWg=DEiM=S=TP4Uc1vbUR*fsz>a0@oxP#E_FuU0xbXB$cDHByl3>05usIh`nA*dm_-sm@nBb zjye+C_F74_>zn4smL2;)?{1oXB0zrsoXQ-n^D!5b+*Rjyo|$=MZqLrxBIi=ST`oIz zPH1`QZmaNV$w#I`zB_$(u8A=>Fj&&_qe<44t)t_1-jAh^m7~k*R=L~`+*fvj=WP32 zt2a|*XZ4@#cb{_jSo5san+`_3aqU*-U$FI5g}OHm zw#Ce^kp>My&HJZVCu-nUk+VVAy=?m84GS1pUo9^%KJ{JB_4$JTu`hQ{W)F;s>05Sg zbB5Ip;o02WsyXvorWV^ijz2lC`l*H&H}{0;)79rQ<>=k*oosusQ}(re>))qGcb#i; z5}E#9?5EM?3AgtsPS6Yf8ooZR_fDwgiBn&8J4#B+y4HW6{UWqj>))C`roQKYxqNgw zn3DE9Vd{x`woF-9_083QLPJ}>^JiSDs-ir0m7Zr@eYCn^mb(4M z8EU{LDQTz(pPXL}d^$tjqfGta*8+WlqotxIFtrin`BR?2a8ySjPUgxZ)3DKx663%uRj@u17h z%jMzQN!C+8P3()>D;_&-z3c?L8Cl7#M}+!!p6St3ELq|GqVPe{v#6fNZ4FNgWxFoF zjBn)D2;9}v=kfXK>RJCk%GY|98uL%qdw*{=cTdU6ir}<0b#FE9&pa{5^Ulc`H&x4x z<~ClxwTk)G%**>*N)jaA`Oj~VeVW~V=7P+vm52RqF8n#;PlVVGqg(myyMr=czL33s z`K`2Mpxcwjo2LcxXO#EO`(~E>QP(t{FLV3cV_Mr@ZLEy{aBau2t=C^MC8Sl$S=AVQ zsmV`n6^*|vc;Vl53FmEU=d<6eJ6HDe+_pWP9!I?TSK43u<+JxsFK=VTl=TZI+rHAb z-RmB4!boeWwBp}_9e>wvy;-$lm6amj9i{t0;=gL6R&Qjx|6}F8n(p0fd-q+=$jX}J z%D5{a)92dn%=UYaC+)iM{;1QmkoG-Jtwv8;byn&{8}G@Nwl)6iTX28zw?E9OUu6Sa z?q$Zy^PP@*F`;hm-O@*UliuiPecGOpn9^Cvqq)2=O0rSMaQ)od8y~*T_+I`Zv{Aj}fy0y5%`dw87cbi- zmU~~T?Y`h~B^|>zKfCuO++3Ca#@&3~wfK|E*B=vqSCoA!uIj1p+wFgUM!hv%{p#l9 zkG^f6|4-4m^S5B>w0okP);ujZ?te7CJ!f5%P2qd1!yev;Z&lBCSX<`4^00S$Q~b%S zLqARPIo90z!Oz>6Y zE7-+D`jZm-&ab$B|I774U5ovX{1jF_Q+>B`?o*a8Ci0iUtV6^nR=(<-`=e9sKkwr? zYql!&eqGkSZ2JN4sB>0#Dy<7L{0+6@?3>MPFIn4p{#qUtbhl*X+aDjM9t_%)KY5M89Bes+)EnH2H2|&ylkJX2)^4j6`X-mG+5Ow^!3#yn?6^kbd*&D4 z@aFAIue*Hai2A$f+vl7OU2*%}q<)pt4_!_!+x_9DwOx199nZNF&h7`9S5TQQr zQp`E2q^*6&^pk@99CCeIzqW;zHC}l9rN-v+UDfjwB*S*x^i^5vJKaI(`wIR;!Arl| zXTRZlbE8rA*79>nFK>Qho@07D|8-7^^;~!F!keM5H|AbvG@NukdFk!mO|PUvUdTRu z+~Tuy$u7aR>AG*X|LnTCT5gi3BwxU;2S#i5Crk5PsVt~_ z>9xaKD~jm5w&N@3x_fCMZ*OQFE}gb8 z;rq!42W*rYH95X)zvBFMS+PjyqFpZavqRLKGZ)`F20QeOzhbfR*CSaya}PTf#s%)% z&zWvLd&B06&1Rg@rDcIyuXB2&bG3zc_P^6}ZG0x+ER!yhbL^e+`WBw;lCHlCXU@>= zGrq!kw{>>6s*mum<(d7iM->H`-K}}zKMCYc={R&-wOr}xzI9c}M*Y#5Z)F9-iOVn&$9NE*;cojN36O?EFz!jnH+)qxf$}*EGh|BWn&b`e|?3kXGC3 zeR0}G4%=y^j7N@yKUgDnT z()P7oS|EJYzaN{DW~y@caV@oekpD70;eVXXsp}VJ?wRa)d){qzo+Yb7L=tn$mhG5z z+9fP(+Kye5|GwE;Ag!&G_q*}sCU0)Jhtt0-ld#o)ZNKkUk+Aul$`G}cul#pj)Y~t2 z^3%JCdZO})Y7#x5^-0fo8o#X0H>x^Q{$Ta)*-lk28vcDt|M1(_%H`z`UuUq&!pzP;F@!n{zva@tzT(xVQ&7A_iMgd+4V-* zEcc}?!uno2-DJ;46{~A$#}rku*4h8L|08p*oyyK-dE(cezGw{EbnQ`RdX}ka>G3Gt z!|~T=v)sS9&p<%sqFblNp4g(pn%mUd<(Vv{PZwbw1CG8Q>c-(YrGV#|^$meaf4_k{fU!E?LnSl_3) z;I0MFl-MHm%O|rpDkr%AyrpP7r32by@aVIaTJ<&j2jlwtS4~!}zvaD3x~c8xm#x<# z-Wtlh(ypI>DJuAh{qm#5TBf|bUQ18c$gW?vb75ZXwF%6jbxY0W1U|YxjpcaxRL!fR z$GBG9n!)V)@#|L2q}eR(!KFL3ruHrLD3aW5usL?$X5D-xp^cZ4U-fUbi(P+1GfH;q zuE!cdTH0Duy1KlUp7`|leNfcdUm{jlQWrg5Ai9=)%CuiuOHaI=^p%CFZNUnwv!Zpr zmP!7sd_RJo#0M?DTKGRe+VJ?&bK;u9dMr7of(~2G>GF;}?(loXud6$D#T94towO6% z59!Btf}9NKr>{OBEHUr?F*^M=dY_SRX}#)=c#=7jEi%(5i)Tn=Y(Y328o zvx;+9{@C!prSK%Q{!eFF^7d>juc804dq=E&mi^myk8Ad{sm&kbgf35*Dk~I_wB+=j zWfy#V_iHtMGuKuZ7n&l?>C=2bLu&q|-jZ@(?Qi$~Cie8c$_os-6!hU)aea4<z^j2P9T#kNyv7_*{ODiy9g%l$eXsHUXyV}t-(GvZqcHnh#_5gE zLNX>L>jo_mUd{X@_E;SD$y+%(O;0!Zkr+?fI;` zFIU|7(d(}z8YG+v$(or9k=J{y~0KtqpVll z-pU)jEzf=KbO`y=NT3yJ@;g{XHL8nmV2mSdz{-P=6kzjcRZh`dt<5Yy(dn4zo+lewf^arQ*4x(Q2S_K zF3X!49fpuai7J?j62apE#OTRz0)YSg$L3(^rkF8NU2`Nw9-Og19;I&*D+jEG1t;xJzyu+dxHUM~nx31|1QSqbaEM`I zc~w|AQG$_0z<~iwG+yBlSh4)r%pjNmBa1+XcY}kio}Q30+$@C&QjAPruUG_gK@A64 zQ^+Z>;`mY5B)D0OEJ4Z+3+73sdx4w;HBdpX@y?DQb;CkGzrHo{aW^$L#Qd7}*~0q# zeTUW4PFKogC^aACTLV=xbrV?J^StT?{dH451=Dh>WI=vMf z7VKkrA<_x+xI)7LCnlCx+?*Tb!J5ECqpE;HKs-}PmkY>?&`?lhWcu3La-$zfrx3>z zJ;#}w#VRlRnxB0C{rs-}-kJInCQn}6Z}&^%v-BnhZi{|#hEpHzo_=c6w|ut6^T!uY z?b$Nt^XBi8&;P#BySd49?z!JvIIpZ#nCoC0?e}r!+YNrdo_=^_bM9SSoZj<7o4qG2 z<@>{)Eqyv?{@(Kz@6*dqPFwr3t)#!6tw;JJ2nGnjv@+$J`ToX31`$2?4Gz-U- z%}doY*_mLW=@7;#up&LQ{E`Gb;2LuT6#~vro3}(3rig(lQq^I>ywJOz$g8SgD}0SRSl4}@d*vK&<*u*mszaip zwEB-P-u-SzXr<*-tD0T$mkXauSR_PEe*Ab=j6(Crf61p#p4?b(_U1L0jLqY}haR3v z*tKonN6Fte8yx;HJ$`lP<(%r{zbuzO`u>=MMZm+Hk?Cv6Yr$8|2b5TTS-&pLekuIw zL*&egkkH`eyJl%^PT9L_>+(a3-?E>-on81}>ibLY*4C(>8MB}9H`?)}y|uou?%&A= zSvL-e?%i};I_7_YV7z?O%nc05~g=^&h zo03>%`aR9##C8F3Pe>7MB)?m~x=YRrc&b4uuAXDo%kF%fssfq*?L;9_+gH zJ>>TBX{PfppFW=#82F>%%blyYzD!k{yP|N@|I63w!~)NK`D(ZI?ds6V%AG$~hP>U^ z{A!m7*M@ezl2!Y@EqKHI^YRcF)!P*^2L<=|36m?K8@CX{8!yqa_g<@ zWp=NA{o0}@b9?=*TUB%Snf%}SM{?#S#>Pq(F{}5??SB1nLC+7?uG(TR|I9dOXYg;n z`B#<(K410s!q4PyJ9q!T(Rx7f;P-v!n!oL=-c*0(uGz|emvdLG-C~#hbk&{6)y;Eb zcb$`GXiC#jXmFU(V1I79rO7$vB=31^YLd0*hMW}haQm;PcK)c0_59FHpXRRjslM;B ze*d8wv$F-_|7Sj|4D#>!+1~E{Cs}x*iSpjJ&n#X?Jg+eJQQL8^B<+IVi|n-=dE85E zuULznQpw3Yb3JSM+N`{<*DKfT(fVWi&~rK4pJ%_D;^%4oU${)m`t8Ddg8z>^eVivL z`mbY+dd)wr?SATPhqdIw(pHI0zPSJ73FBMJGgDQJ-@ho+*<<%Ce|^EZ_}6o0y%#-Q znJ;gDN!sTBn)Bh2ku$63MLoUpQ{VsR-{igLEcLJcU_Vp!LDb^<*`L*qHkH2X`*Aya z&acS4XKa%K;^wLSPx!I%pwF~2#fyJuzxea)l4qIa$#eDV$~M}XGQGU8KTmewNzqc} zgWQci;xlBvoRs_c_U6J%i#}ZQdG%_l_O3_&V*Wnuu=|nVqpbYy>fV>ySz4v*j$Ge5 z|MHCgi}Ze}U%4EYo_=Y^SLtsOpTBNhZen^#`E#m+R`#{6n)}Q0x3C{-5f|H8^E&_4 z$MiMId#aZH&MLT{@jg@5G<)7#>n{&>g&utS^Yyk@0W-J0x|*GMIMq#mUSRvyor^;E z$Ii*u{pgfX$YeP0dzj+l_j?}BsSjQIY|s7`>(=Sb%%7UI?fg}-y@m$sntJ!IR{QNX zVX@WS*LB<0B;PH*Ygc~#>FZM`)k1Hp*Uvr2+jp}5^uFc4%b&zjw)T$K!VzJie2ABX#cX z$5o3D?=)V#^>KroR@uH6&%|;seO|xq_VKbguOc6~(nwdFg z;>;)SKJnV`)FT!pbBAvar+m6@tMgjy8uPvPFW+^QiFWI?~ z$#!{Va?cKb+qe60O`YT_Io8u!Os8WS9BOCIXE3q1X5o6byx7`*G#hbMY;y-3iz|Ge6pc30c~aAaxiZkwe0FP7T< zz2fsHsOb6`4$FC~>*nRERT(z^x;Q;*%d!KN441BJz3I(>7gv{l(%-k< ze_hSpdsqKd^MC9Q<>*{GgXP)3CduEG_N&bMEgY+wuPt0t zLmeIEh6ahn=R6x6%s8H`3!c0ETwZ7S`M;~)zv=!Z{A*XZrYV)CqXPw;CzS-){zynl9;)i3w1zkAFN?yJ68 z{du{w%P@S--7xd zPd{jSEWcX%fm`eDp2(&5-)n)IE6%*{TiceU^W>Ru zKcD3k{9vkS`=$2fkzG$yzT_Ky>e=R*CVBFV^)6ZN_5DAi@4l2=TXptVaN6J5;;$?1 zAKJ_P@QJ+Kxo!LJ*{_|RZ<<;k>AQJfSH1Au`!R7R_0m87?EkU%tm(ne2T$pL2)<4<8h)m6>^M`rvyvh2s=jX(bNZhp8~rTq1W zvpW{QO9{1GSL1%pl|_#G>~w4I-_uKi-z%p3y}H(Ma#4Di=7)t7fAXLHW6X5krtF}u z+KWxi=I0kC+}n69`{15*Pl53N=ZgO1%odycJgIN)TD`{Hlc&rl{6F+Q`Cswdg$}n@ z`9C-weD#gI!T$$yR~p~ey44(i;m^Os|DA0!KQ9S4nZq$p+HdD!!FZNg&HpF3UCTQ2 z{LJaNi&9)y{vJ-hdw$LFx&F5-k3DDmaB+U?g*mU%{=GDr6=Nm&cXp4Ba`ln?`OFt@ z3vHd(_3L=t^^E}uvSshs?U=t+f4I~CcF%k%yXP@iI8Lu$v+ipBwc9d(a!kLs{A-;j z!C}k)ASR=D1E=yn;dkQqE~H&C0u zf4fo^d^pg4?AHOcf7P$2)K`4i^#9X?f(v@rs#sr%pRYFZ`vp$m&$G)xjj=P4-+g<3 zva_@Ov73MXz4VSZ`^}90?@W7YXl9eKTz-em3;B8Ke{XbDCQSO-9blwiz|uT7rN(ov zsLrTjOY5Y*}I#nJZ~?UG7hJni12( zoqN{26@GX4)ik4k`BMLv{=eH;{&zo5oKv}cMf$!3{Xg*=e@2Pl-*@y&evRtcxwqCH zHh;eF_OT@%=dVwwyO3jV=ydk2^_Qxzai!b$EV;Mr_!iBo8?T>C@RO^HbMGsES$lbg zX|~O+PrvII{Qof3ccFAyl4r8op4aw&(|^75UjHiAINI&u+w#|qYyDUK>VA6g_?Gy$ zR?D`TAKUWvH2$85W zlro+1b9M47j^aNXkJ(?bKI;E!=6SEV`de22zMEZj-(=mN?D`eVTlqEXf35PoylA^x z-o^KCvo9?B@ccyox6JzB*=~71_ee?0U6_5(@2~U2^ewwrx!j+>JnmZZw)mQbzU#m3 z$(9OSvHN|!gTGzq+E0@XTv19hUjIetgl<5gr)Ny5mWI}~UlO~vB$R$S*6r`#H#_j? z+Ap(zQ{nD^&0hIy$*R90>(}-E zz4Ir%diK7;6@gD5^7qW%ll5q^Sm~a;xB3_6K277gbH8BzaX}s9ZLJZfwqCNi|8ZL0 z&oA#^?p&^{ZvEo5&5CX2|EJsiXYajbQ|dQY{l6psyIX4~{r_5P`~Q;U^J%%ptslZ) z-w!@}egC@lYf+aqbl(U@zcp64dS~OGH`P9q)9!CPv3BD#Yr_Y2@9tdA`KM$5%-r8- z%lcKff2X;qB^o*OKQmKW2E!-?zJ0wO3Phn!6o)TW`eM4Rtnx{WI5nx?L}6 z`uNaUdr58wf&&J;DrrS>aE9}?tj*<^9;T6l;mU;XB%g(%Z2~xVJ zc|%M0HOu1^ARPxG&oayIll5!9PmpGx@w>@y&gb~qh398UPPY~O7k*m0+j)&uTivNY z=}d@<;{_&ob~yq zlgoCA8E?6C-KyB*nPT;cf*iTxxzZbR;(h)fn^dopdB-Z{-i7I#dHoK=UVV3GiLeZt z@K^Ou#lCq7d3k2McitP^slM}fa?s5E$Ny~AoMtlJ|B9vh^yTOB<$mVep5<=$`>gW( zw{IJ(Sn|3yCq!4@otXNp+u_0C2bor{znz}4|G4bpdo_9g3{u<{*j;>WZp>xzb!Eo4 z-)(d4S$OAU6l{xh+^+fb*3D%drOO{Yd@x<=w+sIh(LFOurd9dI@?E=c6L(Lx&iJ8u z|Mc=t;Zy4yFIwl#o^0$^W+=bpsEl;Z6&>!Ar^=@-+EjEowOB7YzDWB_Z<(!kq4`y& zRnQWu2U%czU(&jb{$F zYrge<+3~$<$HtEL{c~q;UF&eS%C~pNWQi%J?D-pduO2@4fURD4Rek=3GcOL`u}X

oyh4%3gd>l4a5H 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 -
-OmniGraffle Version - -=end html - -=head1 Embassy Methods - -Embassy is accessible via the URL C. The embassy is used to form alliances with other players. - -The list of methods below represents changes and additions to the methods that all L share. - - - -=head2 view ( session_id, building_id ) - -Same as view in L except: - - { - "status" : { ... }, - "building" : { ... }, - "alliance_status" : { get_alliance_status() } - } - -We add an C block if this empire is in an alliance. It contains the same information as C - - -=head2 create_alliance ( session_id, building_id, name ) - -Create a new alliance. Returns the same output as C. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - -=head3 name - -A unique name for this alliance. Must be between 3 and 30 characters, cannot contain profanity or restricted characters. - - - - -=head2 dissolve_alliance ( session_id, building_id ) - -Can only be called by alliance leader. Disbands an existing alliance. - -NOTE: All space stations associated with the alliance will be abandoned and converted to asteroids. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - - - -=head2 get_alliance_status ( session_id, building_id ) - -Returns everything about an alliance that members should know. - - { - "status" : { ... }, - "alliance" : { - "id" : "id-goes-here", - "name" : "United Federation of Planets", - "members" : [ - { - "empire_id" : "id goes here", - "name" : "Klingons", - } - ... - ], - "leader_id" : "id goes here", - "forum_uri" : "http://forum.example.com/", - "description" : "This is public information.", - "announcements" : "This is private information.", - "date_created" : "01 31 2010 13:09:05 +0600" - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - - - - - -=head2 send_invite ( session_id, building_id, invitee_id, [ message ] ) - -Can only be called by alliance leader. Invite an empire to an alliance. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - -=head3 invitee_id - -The unique id of an empire you'd like to invite to an alliance. See L to look up empire ids. - -=head3 message - -Optional. A personalized welcome message that will be included in the invitation. - - - - - - -=head2 withdraw_invite ( session_id, building_id, invite_id, [ message ] ) - -Can only be called by alliance leader. Delete an invitation. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - -=head3 invite_id - -The unique id of an invitation. See C for details. - -=head3 message - -Optional. A personalized message that will be sent to the user about why their invitation has been withdrawn. - - - - - -=head2 accept_invite ( session_id, building_id, invite_id, [ message ] ) - -Accept an invitation. Returns the same output as C. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - -=head3 invite_id - -The unique id of an invitation. See C for details. - -=head3 message - -Optional. A personalized message that will be sent to the alliance leader with your acceptance. - - - - - -=head2 reject_invite ( session_id, building_id, invite_id, [ message ] ) - -Delete an invitation. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - -=head3 invite_id - -The unique id of an invitation. See C for details. - -=head3 message - -Optional. A personalized message that will be sent to the alliance leader along with your rejection. - - - - -=head2 get_pending_invites ( session_id, building_id ) - -Can only be called by the alliance leader. Returns a list of invitations that have been sent out, but that have not been accepted, rejected, or withdrawn. - - { - "status" : { ... }, - "invites" : [ - { - "id" : "id-goes-here", - "name" : "The Borg", - "empire_id" : "id-goes-here" - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - - - - -=head2 get_my_invites ( session_id, building_id ) - -Returns a list of invitations that have been offered to this empire. - - { - "status" : { ... }, - "invites" : [ - { - "id" : "id-goes-here", - "name" : "United Federation of Planets", - "alliance_id" : "id-goes-here" - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - - - -=head2 assign_alliance_leader ( session_id, building_id, new_leader_id ) - -Sets a new empire to lead the alliance. Can only be called by the current alliance leader. Returns the same thing as C. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - -=head3 new_leader_id - -The unique id of an empire that will lead the alliance going forward. The empire must already be a member of the alliance. - - - -=head2 update_alliance ( session_id, building_id, params ) - -Updates the properties of an alliance. Returns the same thing as C. Can only be called by the alliance leader. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - -=head3 params - -A hash reference of alliance properties. None of which can contain profanity or restricted characters. You can update any or all of these properties at the same time. - -=over - -=item forum_uri - -The URI to a forum where alliance discussion occurs. - -=item description - -Information that is publcily available about an alliance. - -=item announcements - -Information that is only available to alliance members. - -=back - - -=head2 leave_alliance ( session_id, building_id, [ message ] ) - -A member of an alliance revokes their own membership. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - -=head3 message - -An optional message about why you're leaving the alliance. Cannot contain restricted characters or profanity. - - - -=head2 expel_member ( session_id, building_id, empire_id, [ message ] ) - -Forcibly removes a member from an alliance. Returns the same thing as C. Can only be called by the alliance leader. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - -=head3 empire_id - -The unique id of the empire to remove from the alliance. - -=head3 message - -An optional message about why you're removing them from the alliance. Cannot contain restricted characters or profanity. - - - -=head2 view_stash ( session_id, building_id ) - -Returns a list of what is in the current stash: - - { - "status" : { ... }, - "stash" : { # what is stored in the stash - "gold" : 4500, - "water" : 1000, - "apple" : 8 - }, - "stored" : { # what is stored in planetary storage - "energy" : 40000, - "algae" : 43000, - "water" : 19000, - "bauxite" : 1110, - "galena" : 33120 - }, - "max_exchange_size" : 30000, - "exchanges_remaining_today" : 1 - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - - - - - -=head2 donate_to_stash ( session_id, building_id, donation ) - -Returns C - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - -=head3 donation - -A hash reference containing name value pairs of the resources you want to put into the stash from your planet. - -B Cannot donate waste. - - { - "water" : 4500, - "bread" : 5000 - } - - - - - -=head2 exchange_with_stash ( session_id, building_id, donation, request ) - -Returns C - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - -=head3 donation - -A hash reference containing name value pairs of the resources you want to put into the stash from your planet. - -B Cannot donate waste. - - { - "water" : 4500, - "bread" : 5000 - } - -=head3 request - -A hash reference containing name value pairs of the resources you want to pull from the stash stash onto your planet. - -B The total sum, must add up to the sum of the donation, but can be in different concentrations. - - { - "energy" : 2000, - "meal" : 7500 - } - -=head2 view_propositions (session_id, building_id ) - -Returns a list of the pending propositions. - - { - "status" : { ... }, - "propositions" : [ - { - "id" : "id-goes-here", - "name" : "Rename Station", - "description" : "Rename the station from 'Bri Prui 7' to 'Deep Space 1'.", - "votes_needed" : 7, - "votes_yes" : 1, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - }, - "my_vote" : 0 # not present if they haven't voted - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the embassy. - - -=head2 cast_vote ( session_id, building_id, proposition_id, vote ) - -Casts a vote for or against a proposition. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Rename Station", - "description" : "Rename the station from 'Bri Prui 7' to 'Deep Space 1'.", - "votes_needed" : 7, - "votes_yes" : 2, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - }, - "my_vote" : 0 # not present if they haven't voted - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 proposition_id - -The id of the propostion you're casting this vote for or against. See C for a list. - -=head3 vote - -A boolean indicating which way you wish to vote. 1 for yes. 0 for no. Default is 0. - - - - -=cut diff --git a/docs/Empire.pod b/docs/Empire.pod deleted file mode 100644 index 5fcd675e..00000000 --- a/docs/Empire.pod +++ /dev/null @@ -1,1069 +0,0 @@ - -=head1 Founding an empire. - -When founding an empire the order of operations is first to C. Then C the empire. Then optionally C (default is human). Then finally call the C method to set up the empire on it's new home planet. - - -=head1 Empire Methods - -The following methods are available from C. - - - - -=head2 is_name_available ( name ) - -Returns a 1 if the name is available, or a throws an exception if it is not. - -Throws 1000. - -=head3 name - -The name of the empire to search for. - - - -=head2 logout ( session_id ) - -Ends a session. Returns 1. - -Throws 1006. - -=head3 session_id - -A session id. - - - -=head2 login ( name, password, api_key ) - -Returns a hash like the following after confirming the password matches the empire. - -B Once established, this session will stick around for up to 2 hours of inactivity. Therefore, you need not login again if you still have a valid session. - - { - "session_id" : "id-goes-here", - "status" : { ... } - } - -Throws 1004 and 1005. - -=head3 name - -The name of the empire. - -=head3 password - -The password to authenticate to the empire. - -=head3 api_key - -Your client's unique API key, identifiying it from all other clients. See L for details. - - -=head2 fetch_captcha ( ) - -Retrieves a captcha that is required in order to call the C method. Display the resulting captcha in your creation form and then call C with the user's response. - - { - "guid" : "id-goes-here", - "url" : "'https://extras.lacunaexpanse.com.s3.amazonaws.com/captcha/id/id-goes-here.png" - } - - -=head2 create ( params ) - -Creates a new empire and then returns an empire_id. - -This is not the end of the story though. Now you must either create a C for this empire and then C it, or just skip the species part and C the empire. - -Throws 1000, 1001, 1002, and 1014. - -B If either C or C don't match what the server is expecting it will throw a 1014 error, and the data portion of the error message will contain new captcha information. You must use this. A captcha cannot be used more than once. - -=head3 params - -A hash of parameters. - -=head4 name - -The name of the empire to create. Required. - -=head4 password - -The password to log in to the empire. Must be between 6 and 30 characters. Required. - -=head4 password1 - -Retyping the password again. This must match C to succeed. - -=head4 captcha_guid - -This must match the C field returned by the C method. Required. - -=head4 captcha_solution - -This is the text typed in by the user as the solution of the captcha. Required. - -=head4 email - -The user's email address. It is not required, but is used for system vital functions like password recovery. - -=head4 invite_code - -A 36 character code that was sent to the user by a friend. It is usable only once, and will ensure that their friend gets a home planet that is in relatively close proximity to their home planet. - - - - -=head2 found ( empire_id, api_key, [ invite_code ] ) - -Set up an empire on it's new home world. Once this method is called, the species can no longer be modified. Returns: - - { - "session_id" : "id-goes-here", - "welcome_message_id" : "id-goes-here", - "status" : { ... } - } - -The C is a message id for a message in the inbox, that starts the tutorial. This is provided so the user can be prompted to read that message right away. - -=head3 empire_id - -The empire to found. - -=head3 api_key - -Your client's unique API key, identifiying it from all other clients. See L for details. - -=head3 invite_code - -Use of the invite code here is deprecated. Please pass in the invite_code in C instead. - - - -=head2 get_invite_friend_url ( session_id ) - -Returns a URL that can be pasted into a blog, forum, or whatever to invite friends. - - { - "status" : { ... }, - "referral_url" : "http://servername.lacunaexpanse.com/#referral=XXXX" - } - -=head3 session_id - -A session id. - - - - -=head2 invite_friend ( session_id, email, [ custom_message ] ) - -Send an invitation code to a friend so that they can start in the same zone as your empire. - - { - "status" : { ... }, - "sent" : [ - "you@there.com", - ... - ], - "not_sent" : [ - { - "address" : "joe@blow.com", - "reason" : [ 1009, "Someone has already invited that user." ] - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 email - -The email address of your friend, or a comma separated string of email addresses. - -=head3 custom_message - -An optional text message that the user can type to invite their friend. This is the default message that will get sent if none is specified: - - I'm having a great time with this new game called Lacuna Expanse. Come play with me. - -After the message, the user's empire name in the game, the friend code, and URI to the server will be attached. - - - -=head2 get_status ( session_id ) - -Returns information about the current state of the empire. - -B You should probably B call this method directly, as it is a wasted call since the data it returns comes back in the status block of every relevant request. See L for details. - - - { - "server" : { ... }, - "empire" : { - "id" : "xxxx", - "bodies" : { - "colonies" : [ - # bodies are provided sorted by name already. - { "id" : "xxxx", "name" : "...", "x": "#", "y": "#", "type": "xxx", "orbit": #, "empire_name": "your name", "empire_id": 12345 }, - ... - ], - "mystations" : [ - { "id" : "xxxx", "name" : "...", "x": "#", "y": "#", "type": "xxx", "orbit": #, "empire_name": "your name", "empire_id": 12345 }, - ... - ], - "ourstations" : [ - { "id" : "xxxx", "name" : "...", "x": "#", "y": "#", "type": "xxx", "orbit": #, "empire_name": "their name", "empire_id": 12346 }, - ... - ], - "babies" : { - "baby name" : { - "alliance_id" : 3, # key doesn't exist if not in alliance - "id" : 12355, # empire ID - "has_new_messages" : 30, - "bodies" : [ - { "id" : "xxxx", "name" : "...", "x": "#", "y": "#", "type": "xxx", "orbit": #, "empire_name": "their name", "empire_id": 12346 }, - ... - ], - }, - "another baby name" : { - "has_new_messages" : 30, - "id" : 12884, - "bodies" : [ - { "id" : "xxxx", "name" : "...", "x": "#", "y": "#", "type": "xxx", "orbit": #, "empire_name": "their name too", "empire_id": 12347 }, - ... - ], - } - } - }, - "colonies" : { - "id-goes-here" : "Earth", - "id-goes-here" : "Mars" - }, - "rpc_count" : 321, # the number of calls made to the server - "insurrect_value" : 100000, - "is_isolationist" : 1, # hasn't sent out probes or colony ships - "name" : "The Syndicate", - "status_message" : "A spy's work is never done.", - "home_planet_id" : "id-goes-here", - "has_new_messages" : 4, - "latest_message_id" : 1234, - "essentia" : 0, - "next_colony_cost" : 100000, - "next_station_cost" : 1000000, - "planets" : { - "id-goes-here" : "Earth", - "id-goes-here" : "Mars", - "id-goes-here" : "Death Star" - }, - "tech_level" : 20, # Highests level university has gotten to. - "self_destruct_active" : 0, - "self_destruct_date" : "", - "stations" : { - "id-goes-here" : "Death Star" - }, - "primary_embassy_id" : 234567 - } - } - -Throws 1002. - -=head3 session_id - -A session id. - - - - -=head2 view_profile ( session_id ) - -Provides a list of the editable properties of the current empire's profile. See also the C and C methods. - - { - "profile" : { - "description" : "description goes here", - "status_message" : "status message goes here", - "medals" : { - "id-goes-here" : { - "name" : "Built Level 1 Building", - "image" : "building1", - "date" : "01 31 2010 13:09:05 +0600", - "public" : 1, - "times_earned" : 4 - }, - ... - }, - "city" : "Madison", - "country" : "USA", - "notes" : "notes go here", - "skype" : "joeuser47", - "player_name" : "Joe User", - "skip_happiness_warnings" : 0, - "skip_resource_warnings" : 0, - "skip_pollution_warnings" : 0, - "skip_medal_messages" : 0, - "skip_found_nothing - "skip_excavator_resources" : 0, - "skip_excavator_glyph" : 0, - "skip_excavator_plan" : 0, - "skip_spy_recovery" : 0, - "skip_probe_detected" : 0, - "skip_attack_messages" : 0, - "skip_incoming_ships" : 0, - "email" : "joe@example.com", - "sitter_password" : "abcdefgh" # never give out your real password, use the sitter password - }, - "status" : { ... } - } - -=head3 session_id - -A session id. - - - - -=head2 edit_profile ( session_id, profile ) - -Edits properties of an empire. Returns the C method. See also the C and C methods. - -Throws 1005, 1009. - -=head3 session_id - -A session id. - -=head3 profile - -A hash reference of properties to be edited. You may set one or all of the profile properties in this hash reference. Only those set will be updated. - -=head4 description - -A description of the empire. Limited to 1024 characters and cannot contain < or >. - -=head4 email - -An email address that can be used for system functions like password recovery. Must either resemble an email address or be empty. - -=head4 sitter_password - -A password that can be safely given to account sitters and alliance members. Must be between 6 and 30 characters. - -=head4 status_message - -A message to indicate what you're doing, how you're feeling, or other status indicator. Limited to 100 characters, cannot be blank, and cannot contain @, &, <, >, or ;. - -=head4 city - -An optional text string of the city in which the player resides. Limited to 100 characters and cannot contain @, &, <, >, or ; - -=head4 country - -An optional text string of the country in which the player resides. Limited to 100 characters and cannot contain @, &, <, >, or ; - -=head4 notes - -A text blob where the user can write down whatever they want to store in their account. Limited to 1024 characters and cannot contain @, &, <, >, or ; - -=head4 skype - -An optional text string of the username this player uses on skype. Limited to 100 characters and cannot contain @, &, <, >, or ; - -=head4 player_name - -An optional text string of the real name or online identity of this player. Limited to 100 characters and cannot contain @, &, <, >, or ; - -=head4 public_medals - -An array reference of medal ids that the user wishes to display in the public profile. - -=head4 skip_happiness_warnings - -Defaults to 0. Set to 1 if the user no longer wants to receive messages about unhappy citizens. - -B: These messages are there for your own protection. Turn off at your own risk. - -=head4 skip_resource_warnings - -Defaults to 0. Set to 1 if the user no longer wants to receive messages about a lack of resources to keep their buildings running. - -B: These messages are there for your own protection. Turn off at your own risk. - -=head4 skip_pollution_warnings - -Defaults to 0. Set to 1 if the user no longer wants to receive messages about excess waste causing pollution. - -B: These messages are there for your own protection. Turn off at your own risk. - -=head4 skip_medal_messages - -Defaults to 0. Set to 1 if the user no longer wants to receive messages about the medals they've earned. - -=head4 skip_found_nothing - -Defaults to 0. Set to 1 if the user no longer wants to receive messages when excavators find nothing. - -=head4 skip_excavator_resources - -Defaults to 0. Set to 1 if the user no longer wants to receive messages when excavators find resources. - -=head4 skip_excavator_glyph - -Defaults to 0. Set to 1 if the user no longer wants to receive messages when excavators find glyphs. - -=head4 skip_excavator_plan - -Defaults to 0. Set to 1 if the user no longer wants to receive messages when excavators find plans. - -=head4 skip_spy_recovery - -Defaults to 0. Set to 1 if the user no longer wants to receive spy recovery messages. ("I'm ready to work. What do you need from me?") - -=head4 skip_probe_detected - -Defaults to 0. Set to 1 if the user no longers wants to receive messages when a probe is detected. - -=head4 skip_attack_messages - -Defaults to 0. Set to 1 if the user no longers wants to receive messages about attacks. - -=head4 skip_incoming_ships - -Controls the display of incoming ships (Own, Allied, Foreign) on your map display. Defaults to 0 (shows ships). Set to 1 if you want to hide incoming ships (can improve response of browser). - -=head2 view_public_profile (session_id, empire_id) - -Provides a list of the data that's publicly known about this empire. - - { - "profile" : { - "id" : "empire-id-goes-here", - "name" : "Lacuna Expanse Corp", - "colony_count" : 1, - "status_message" : "Looking for Essentia." - "description" : "We are the original inhabitants of the Lacuna Expanse.", - "city" : "Madison", - "country" : "USA", - "skype" : "joeuser47", - "player_name" : "Joe User", - "medals" : { - "id-goes-here" : { - "name" : "Built Level 1 Building", - "image" : "building1", - "date" : "01 31 2010 13:09:05 +0600", - "times_earned" : 4 - }, - ... - }, - "last_login" : "01 31 2010 13:09:05 +0600", - "date_founded" : "01 31 2010 13:09:05 +0600", - "species" : "Lacunan", - "alliance" : { - "id" : "id-goes-here", - "name" : "The Confederacy" - }, - "known_colonies" : [ - { - "id" : "id-goes-here", - "x" : "1", - "y" : "-543", - "name" : "Earth", - "image" : "p12-3" - }, - ... - ] - }, - "status" : { ... } - } - -Throws 1002. - -=head3 session_id - -A session id. - -=head3 empire_id - -The id of the empire for which you'd like to retrieve the public profile. - - - -=head2 send_password_reset_message ( params ) - -Starts a password recovery process by sending an email with a recovery key. - -=head3 params - -A hash of options to recover a password. Choose one. - -=head4 empire_id - -The unique id of the empire to recover. - -=head4 empire_name - -The full name of the empire. - -=head4 email - -The email address associated with an empire. - - - - -=head2 reset_password ( reset_key, password1, password2, api_key ) - -Change the empire password that has been forgotten. - - { - "session_id" : "id-goes-here", - "status" : { ... } - } - - -=head3 reset_key - -A key that was emailed to the user via the C method. - -=head3 password1 - -The password to log in to the empire. Required. Must be between 6 and 30 characters. - -=head3 password2 - -Retyping the password again. This must match C to succeed. - -=head3 api_key - -Your client's unique API key, identifiying it from all other clients. See L for details. - - - - - - - -=head2 change_password ( session_id, password1, password2 ) - -Change the empire password. - -=head3 session_id - -A session id. - -=head3 password1 - -The password to log in to the empire. Required. Must be between 6 and 30 characters. - -=head3 password2 - -Retyping the password again. This must match C to succeed. - - - - -=head2 find ( session_id, name ) - -Find an empire by name. Returns a hash reference containing empire ids and empire names. So if you searched for "Lacuna" you might get back a result set that looks like this: - - { - "empires" : [ - { - "id" : "id-goes-here", - "name" : "Lacuna Expanse Corp" - }, - { - "id" : "id-goes-here2", - "name" : "Lacuna Pirates" - } - ], - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 name - -The name your searching for. It's case insensitive, and partial names work fine. Must be at least 3 characters. - - - -=head2 set_status_message ( session_id, message ) - -Sets the empire status message. Similar to what you might put in a tweet, but about your empire. - -=head3 session_id - -A session id. - -=head3 message - -A message to indicate what you're doing, how you're feeling, or other status indicator. Limited to 100 characters, cannot be blank, and cannot contain @, &, <, >, or ;. - - - -=head2 view_boosts ( session_id ) - -Shows the dates at which boosts have expired or will expire. Boosts are subsidies applied to various resources using essentia. - - { - "status" : { ... }, - "boosts" : { - "food" : "01 31 2010 13:09:05 +0600", - "ore" : "01 31 2010 13:09:05 +0600", - "energy" : "01 31 2010 13:09:05 +0600", - "water" : "01 31 2010 13:09:05 +0600", - "happiness" : "01 31 2010 13:09:05 +0600", - "storage" : "01 31 2010 13:09:05 +0600", - "building" : ""01 31 2010 13:09:05 +0600" - "spy_training_boost" : ""01 31 2010 13:09:05 +0600" - } - } - -=head3 session_id - -A session id. - - - -=head2 boost_storage ( session_id [, weeks] ) - -Spends 5 essentia, and boosts storage (all 5 types) on all planets for 7 days. If a boost is already underway, calling again will add 7 more days. - - { - "status" : { ... }, - "storage_boost" : "01 31 2010 13:09:05 +0600" - } - -Throws 1011. - -=head3 session_id - -A session id. - - - -=head2 boost_food ( session_id [, weeks] ) - -Spends 5 essentia, and boosts food production on all planets for 7 days. If a boost is already underway, calling again will add 7 more days. - - { - "status" : { ... }, - "food_boost" : "01 31 2010 13:09:05 +0600" - } - -Throws 1011. - -=head3 session_id - -A session id. - - -=head2 boost_water ( session_id [, weeks] ) - -Spends 5 essentia, and boosts water production on all planets for 7 days. If a boost is already underway, calling again will add 7 more days. - - { - "status" : { ... }, - "water_boost" : "01 31 2010 13:09:05 +0600" - } - -Throws 1011. - -=head3 session_id - -A session id. - - -=head2 boost_energy ( session_id [, weeks] ) - -Spends 5 essentia, and boosts energy production on all planets for 7 days. If a boost is already underway, calling again will add 7 more days. - - { - "status" : { ... }, - "energy_boost" : "01 31 2010 13:09:05 +0600" - } - -Throws 1011. - -=head3 session_id - -A session id. - - -=head2 boost_ore ( session_id [, weeks] ) - -Spends 5 essentia, and boosts ore production on all planets for 7 days. If a boost is already underway, calling again will add 7 more days. - - { - "status" : { ... }, - "ore_boost" : "01 31 2010 13:09:05 +0600" - } - -Throws 1011. - -=head3 session_id - -A session id. - - -=head2 boost_happiness ( session_id [, weeks] ) - -Spends 5 essentia, and boosts happiness production on all planets for 7 days. If a boost is already underway, calling again will add 7 more days. - - { - "status" : { ... }, - "happiness_boost" : "01 31 2010 13:09:05 +0600" - } - -Throws 1011. - -=head3 session_id - -A session id. - - -=head2 boost_building ( session_id [, weeks] ) - -Spends 5 essentia, and boosts build queues on all planets for 7 days. If a boost is already underway, calling again will add 7 more days. It will not boost builds currently under way, only new builds added to a build queue. - - { - "status" : { ... }, - "building_boost" : "01 31 2010 13:09:05 +0600" - } - -Throws 1011. - -=head3 session_id - -A session id. - - -=head2 boost_spy_training ( session_id [, weeks] ) - -Spends 5 essentia, and boosts spy training speed on all planets 50% for 7 days. If a boost is already underway, calling again will add 7 more days. Unlike other boosts, this one will boost spies currently in specialist training. - - { - "status" : { ... }, - "spy_training_boost" : "01 31 2010 13:09:05 +0600" - } - -Throws 1011. - -=head3 session_id - -A session id. - - -=head2 enable_self_destruct ( session_id ) - -Enables a destruction countdown of 24 hours. Sometime after the timer runs out, the empire will vaporize. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - - - -=head2 disable_self_destruct ( session_id ) - -Disables the self distruction countdown. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - - -=head2 redeem_essentia_code ( session_id, code ) - -Redeems an essentia code and applies the essentia to the empire's balance. - - { - "amount" : ..., - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 code - -A 36 character string that was sent to the user via email. - - - - -=head2 update_species ( empire_id, params ) - -Updates the empire's species and returns 1. Can only be called after C has been called and before C has been called. Before or after that will throw an exception. If you have already founded your empire then use C. - -See also: C - -Throws 1000, 1002, 1005, 1007, 1008, 1009, and 1010. The C parameter will contain the field name that needs to be adjusted, if it can be attributed to a single field. - -=head3 empire_id - -The id of the empire you wish to update a species for. - -=head3 params - -A hash reference of parameters. With the exception of name and description, the parameters are all integers. When added together they must equal 45. - -=head4 name - -The name of the species. Limited to 30 characters, cannot be blank, and cannot contain @, &, <, >, or ;. Required. - -=head4 description - -The species description. Limited to 1024 characters and cannot contain < or >. - -=head4 min_orbit - -An integer between between 1 and 7, inclusive, where 1 is closest to the star. Each value between C and C, inclusive, count as a point toward the max of 45. C must be less than or equal to C. - -=head4 max_orbit - -An integer between between 1 and 7, inclusive, where 1 is closest to the star. Each value between C and C, inclusive, count as a point toward the max of 45. C must be greater than or equal to C. - -=head4 manufacturing_affinity - -An integer between 1 and 7 inclusive, where 7 is best. Determines species advantages manufactured goods, such as ships. - -=head4 deception_affinity - -An integer between 1 and 7 inclusive, where 7 is best. Determines species advantages in spying. - -=head4 research_affinity - -An integer between 1 and 7 inclusive, where 7 is best. Determines species advantages in upgrading buildings. - -=head4 management_affinity - -An integer between 1 and 7 inclusive, where 7 is best. Determines species advantages in the speed of building. - -=head4 farming_affinity - -An integer between 1 and 7 inclusive, where 7 is best. Determines species advantages in food production. - -=head4 mining_affinity - -An integer between 1 and 7 inclusive, where 7 is best. Determines species advantages in mineral production. - -=head4 science_affinity - -An integer between 1 and 7 inclusive, where 7 is best. Determines species advantages in energy, propultion, and other technologies. - -=head4 environmental_affinity - -An integer between 1 and 7 inclusive, where 7 is best. Determines species advantages in waste and water management. - -=head4 political_affinity - -An integer between 1 and 7 inclusive, where 7 is best. Determines species advantages in managing population happiness. - -=head4 trade_affinity - -An integer between 1 and 7 inclusive, where 7 is best. Determines species advantages in freight handling. - -=head4 growth_affinity - -An integer between 1 and 7 inclusive, where 7 is best. Determines species advantages in colonization. - - - -=head2 redefine_species_limits ( session_id ) - -Defines the extra limits placed upon a user that want's to redefine their species. - - { - "status" : { ... }, - "essentia_cost" : 100, # cost to redefine the species - "max_orbit" : 2, # maximum settable orbit - "min_orbit" : 5, # minimum settable orbit - "min_growth" : 4, # minimum for growth affinity - "can" : 0, # whether or not they can redefine their species - "reason" : "You have already redefined your species in the past 30 days." - } - - -=head3 session_id - -A session id. - - - - -=head2 redefine_species ( session_id, params ) - -Allows a user to spend essentia and redefine their species affinities, name, and description. This can only be used after the empire has been founded. If you want to redefine the species during empire creation then see C. - -See also C. - - { - "status" : { ... } - } - -B Once this is done it cannot be redone for 1 month, so make sure the user is aware of this and prompt them appropriately before submitting the request. - -=head3 session_id - -A session id. - -=head3 params - -See the C list in the C method. - - - - - -=head2 view_species_stats ( session_id ) - -Returns a list of the stats associated with an empire's species as it was originally created. An empire can only view it's own species stats through this method. - - { - "species" : { - "name" : "Human", - "description" : "The descendants of Earth.", - "min_orbit" : 3, - "max_orbit" : 3, - "manufacturing_affinity" : 4, - "deception_affinity" : 4, - "research_affinity" : 4, - "management_affinity" : 4, - "farming_affinity" : 4, - "mining_affinity" : 4, - "science_affinity" : 4, - "environmental_affinity" : 4, - "political_affinity" : 4, - "trade_affinity" : 4, - "growth_affinity" : 4 - }, - "status" : { ... } - } - - -=head2 get_species_templates ( ) - -Returns an array ref of species templates that can be used to help the user populate the form for C. - - [ - { - "name" : "Average", - "description" : "A race of average intellect, and weak constitution.', - "min_orbit" : 3, - "max_orbit" : 3, - "manufacturing_affinity" : 4, - "deception_affinity" : 4, - "research_affinity" : 4, - "management_affinity" : 4, - "farming_affinity" : 4, - "mining_affinity" : 4, - "science_affinity" : 4, - "environmental_affinity" : 4, - "political_affinity" : 4, - "trade_affinity" : 4, - "growth_affinity" : 4 - }, - ... - ] - -=head2 view_authorized_sitters - -Returns the currently authorized sitters for this baby. - - { - "status" : { ... }, - "sitters" : [ - { - "id" : 12345, - "name" : "Some Empire", - "expiry" : "2015-10-10 17:20:03" - }, - ... - ] - } - -=head2 authorize_sitters ( session_id, options ) - -Authorizes other empires to babysit your account. Each authorisation will -be created if needed, and authorized for the full server-defined amount of -time. - -Returns view of authorized sitters (see view_authorized_sitters) plus any -rejected IDs. - - { - "status" : { ... }, - "auths" : [ - { - id => ..., - name => ... - }, - ... - ], - "rejected_ids" : [ 57, "No Such Empire", ... ], - } - - -=head3 session_id - -A session id. - -=head3 options - -One or more of the following options: - -=head4 allied - -If true, all allies are automatically selected. - -=head4 alliance - -The name of another alliance all of whom are automatically selected. - -=head4 alliance_id - -The ID of another alliance all of whom are automatically selected. - -=head4 empires - -An array of IDs and/or names of specific empires being authorized. - -=head4 revalidate_all - -A quick method for selecting all currently-authorized empires to -extend their authorization period. - -=head2 deauthorize_sitters ( session_id, options ) - -Remove sitters from being permitted to sit this account. - -=head3 session_id - -A session id. - -=head3 options - -One or more of the following options: - -=head4 empires - -An array of IDs (not names) of specific empires being removed. - -=cut diff --git a/docs/EnergyReserve.pod b/docs/EnergyReserve.pod deleted file mode 100644 index 807c5773..00000000 --- a/docs/EnergyReserve.pod +++ /dev/null @@ -1,29 +0,0 @@ -=head1 Energy Reserve Methods - -Energy Reserve is accessible via the URL C. - -Energy Reserves increase the amount of energy you can store on your planet. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 dump ( session_id, building_id, amount ) - -Converts energy into waste. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the building. - -=head3 amount - -An integer representing the amount to dump. - -=cut diff --git a/docs/Entertainment.pod b/docs/Entertainment.pod deleted file mode 100644 index a9600ccf..00000000 --- a/docs/Entertainment.pod +++ /dev/null @@ -1,68 +0,0 @@ -=head1 Entertainment District Methods - -The Entertainment District is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - - -=head2 view ( session_id, building_id ) - -Same as view in L except: - - { - "status" : { ... }, - "ducks_quacked" : 493 - } - - - -=head2 get_lottery_voting_options ( session_id, building_id ) - -This is the starting point to a voting lottery system. The user can vote on a site once and only once per day and each vote enters him/her into a lottery. At the end of the day a lottery ticket will be drawn, and a winner will be chosen to receive 10 essentia. Every vote is equal, but the more votes you have the greater your odds of winning. - -Returns a list of sites that the user can vote on. - - { - "options" : [ - { - "name" : "Some Site", - "url" : "http://www.somesite.com/vote?id=44" - }, - ... - ], - "status" : { ... } - } - -B The URLs returned in the C parameter need to be opened into a new browser window so that the user can go vote on a remote site. - -Each C is usable only once every 24 hours. The server keeps track of this, but the client must remove the URL from the list after the user has clicked on it so they know not to click again. - - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the entertainment district. - - -=head2 duck_quack ( session_id, building_id ) - -Returns a string that must retain its formatting (whitespace and carriage returns) when displayed to the user. - - { - "quack" : "quack text", - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - - -=cut \ No newline at end of file diff --git a/docs/ErrorCodes.pod b/docs/ErrorCodes.pod deleted file mode 100644 index aacb0cbb..00000000 --- a/docs/ErrorCodes.pod +++ /dev/null @@ -1,96 +0,0 @@ -=head1 Error Codes - -The following game error codes may be thrown by the Lacuna game server. - -=head2 1000 Name not available. - -Perhaps it already exists, or it's blank, or it contains unusable characters. - -=head2 1001 Invalid password. - -Passwords cannot be empty and they must be at least 6 characters long. - -=head2 1002 Object does not exist. - -The object you've requested by id doesn't exist. - -=head2 1003 Too much information. - -You've requested too much information from the server at once. - -=head2 1004 Password incorrect. - -The user mistyped the password, or doesn't know it. - -=head2 1005 Contains invalid characters. - -Thrown when a text field contains invalid characters. - -=head2 1006 Session expired. - -A basic authorization denied error, because the session you're trying to connect with doesn't exist or has expired. - -=head2 1007 Overspend. - -You have tried to spend more resources than you have. - -=head2 1008 Underspend. - -You need to spend more resources than you have spent. - -=head2 1009 Invalid range. - -The items in the range don't fit the rules for the range. For example, habitable stellar orbits must be consecutive, so a range of 1,3,5 would trigger this error. - -=head2 1010 Insufficient privileges. - -The authenticated empire doesn't have the privileges to complete the requested action. - -=head2 1011 Not enough resources in storage. - -The empire/planet/station doesn't have enough resources in storage to complete the requested action. Build more wealth to fix the problem. - -=head2 1012 Not enough resources in production. - -The empire/planet/station isn't producing enough resources to keep up with the demands of this action. If the action were allowed to complete it would bankrupt the empire. - -=head2 1013 Missing prerequisites. - -The empire/planet/station hasn't completed building the prerequisite buildings in order to build something new. - -=head2 1014 Captcha not valid. - -A captcha was required for this request and it was not valid. The data portion will contain new captcha information to try again. - -=head2 1015 Restricted for sitter logins. - -The function you were attempting to access is not valid for sitter accounts. - -=head2 1016 Needs to solve a captcha. - -The old captcha has expired. A new captcha is needed. - -=head2 1017 Pending Parliamentary Vote - -The action you tried to perform has been put on hold pending a parliamentary vote. - -=head2 1018 Already Voted - -You've already voted on this proposition. - -=head2 1100 Empire not founded. - -You're trying to log in to an empire that is part way through the creation process. The data portion will tell you the empire id so that they can update the species and found the empire. - -=head2 1101 Empire not founded, and you tried to create it, but had the wrong password. - -This message will only occur if a user tries to create an empire with a name that already exists, but has not yet been founded, and the user doesn't enter the same password as they did when they first created the empire. - - -=head2 1200 Game Over. - -This game has come to an end. The data section of this exception will contain a URI to a web page that shows the final stats. - - -=cut - diff --git a/docs/Espionage.pod b/docs/Espionage.pod deleted file mode 100644 index d46b59ba..00000000 --- a/docs/Espionage.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Espionage Methods - -Espionage is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/EssentiaVein.pod b/docs/EssentiaVein.pod deleted file mode 100644 index d81fb3c7..00000000 --- a/docs/EssentiaVein.pod +++ /dev/null @@ -1,27 +0,0 @@ -=head1 EssentiaVein Methods - -Essentia Vein is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - - { - "status" : { ... }, - "building" : { - "drain_capable" : 3, - ... - }, - } - -Addition of a drain_capable flag indicating how many groups of 30 days -can be drained. Above example shows 90-119 days remaining. - -=head2 drain ( session_id, building_id[, times] ) - -Allows draining of an evein quickly. Instead of 4e per day over 30 days, -this will use up 30 days and provide 30e instantly. The optional C -parameter allows draining of multiple months' worth in a single RPC. Periods -less than 30 days cannot be drained quickly. - -=cut \ No newline at end of file diff --git a/docs/Fission.pod b/docs/Fission.pod deleted file mode 100644 index 6beaf479..00000000 --- a/docs/Fission.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Fission Methods - -Fission is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Fissure.pod b/docs/Fissure.pod deleted file mode 100644 index 7e775eb8..00000000 --- a/docs/Fissure.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Fissure Methods - -Fissure is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/FoodReserve.pod b/docs/FoodReserve.pod deleted file mode 100644 index 88e5d255..00000000 --- a/docs/FoodReserve.pod +++ /dev/null @@ -1,51 +0,0 @@ -=head1 Food Reserve Methods - -Food Reserve is accessible via the URL C. - -The food reserve stores the excess food you produce. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - -This method is extended to include details about what kind of food is stored. - - { - "building" : { ... }, - "status" : { ... }, - "food_stored" : { - "apple" : 0, - "bread" : 47, - "algae" : 301, - ... - } - } - - -=head2 dump ( session_id, building_id, type, amount ) - -Converts food into waste. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the building. - -=head3 type - -Choose a type of food convert into waste. (apple, corn, burger, etc) - -=head3 amount - -An integer representing the amount to dump. - - - -=cut \ No newline at end of file diff --git a/docs/Fusion.pod b/docs/Fusion.pod deleted file mode 100644 index 45fa024e..00000000 --- a/docs/Fusion.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Fusion Methods - -Fusion is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/GasGiantLab.pod b/docs/GasGiantLab.pod deleted file mode 100644 index 4f5aa9d1..00000000 --- a/docs/GasGiantLab.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Gas Giant Lab Methods - -Gas Giant Lab is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/GasGiantPlatform.pod b/docs/GasGiantPlatform.pod deleted file mode 100644 index 304eab3f..00000000 --- a/docs/GasGiantPlatform.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Gas GiantPlatform Methods - -Gas GiantPlatform is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/GeneticsLab.pod b/docs/GeneticsLab.pod deleted file mode 100644 index f09b0098..00000000 --- a/docs/GeneticsLab.pod +++ /dev/null @@ -1,102 +0,0 @@ -=head1 Genetics Lab Methods - -Genetics Lab is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - - -=head2 prepare_experiment (session_id, building_id ) - -Returns everything you need to set up an experiment. - - { - "status" : { ... }, - "grafts" : [ - { - "spy" : { - "id" : "id-goes-here", - "name" : "James Bond", - ... - }, - "species" : { - "min_orbit" : 3, - "max_orbit" : 4, - "science_affinity" : 4, - ... - }, - graftable_affinities : [ - "min_orbit", - "management_affinity" - ] - }, - ... - ], - "survival_odds" : 31, - "graft_odds" : 11, - "essentia_cost" : 2, - "can_experiment" : 1 - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the genetics lab. - - - - -=head2 run_experiment ( session_id, building_id, spy_id, affinity ) - -Allows you to experiment on prisoners attempting to graft their genetic traits onto your own species. - - { - "experiment" : { - "graft" : 1, # did the graft succeed - "survive" : 0, # did the prisoner survive - "message" : "The graft was a success, and the prisoner did not survive the experiment." - }, - # the rest is the same as prepare_experiment - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the genetics lab. - - - -=head2 rename_species ( session_id, building_id, params ) - -Updates the empire's species name and description. - -{ - "success" : "1" -} - -Throws 1000, 1005. The C parameter will contain the field name that needs to be adjusted, if it can be attributed to a single field. - -=head3 session_id - -A session id. - -=head3 params - -A hash reference of parameters. - -=head4 name - -The name of the species. Limited to 30 characters, cannot be blank, and cannot contain @, &, <, >, or ;. Required. - -=head4 description - -The species description. Limited to 1024 characters and cannot contain < or >. - - - -=cut diff --git a/docs/Geo.pod b/docs/Geo.pod deleted file mode 100644 index 8ca2aec4..00000000 --- a/docs/Geo.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Geo Methods - -Geo is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/GeoThermalVent.pod b/docs/GeoThermalVent.pod deleted file mode 100644 index 3a3bfeb0..00000000 --- a/docs/GeoThermalVent.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 GeoThermalVent Methods - -Geo Thermal Vent is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/GratchsGauntlet.pod b/docs/GratchsGauntlet.pod deleted file mode 100644 index 4295313a..00000000 --- a/docs/GratchsGauntlet.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Gratch's Gauntlet Methods - -Gratch's Gauntlet is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/GreatBallOfJunk.pod b/docs/GreatBallOfJunk.pod deleted file mode 100644 index d53b2011..00000000 --- a/docs/GreatBallOfJunk.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Great Ball Of Junk Methods - -Great Ball Of Junk is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Grove.pod b/docs/Grove.pod deleted file mode 100644 index d2cb7931..00000000 --- a/docs/Grove.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Grove of Trees Methods - -Grove of Trees is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/HallsOfVrbansk.pod b/docs/HallsOfVrbansk.pod deleted file mode 100644 index d5423072..00000000 --- a/docs/HallsOfVrbansk.pod +++ /dev/null @@ -1,8 +0,0 @@ -=head1 Halls Of Vrbansk Methods - -Halls Of Vrbansk is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut - diff --git a/docs/Hydrocarbon.pod b/docs/Hydrocarbon.pod deleted file mode 100644 index a218e102..00000000 --- a/docs/Hydrocarbon.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Hydrocarbon Methods - -Hydrocarbon is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/IBS.pod b/docs/IBS.pod deleted file mode 100644 index 664f33e6..00000000 --- a/docs/IBS.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Interstellar Broadcast System Methods - -Interstellar Broadcast System is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Inbox.pod b/docs/Inbox.pod deleted file mode 100644 index dc2997f1..00000000 --- a/docs/Inbox.pod +++ /dev/null @@ -1,646 +0,0 @@ -=head1 Inbox Methods - -These methods are accessible via the C URL. - - -=head2 view_inbox ( session_id, [ options ] ) - -Displays a list of the messages in the empire's inbox. Displays 25 messages per page, sorted newest to oldest. - - { - "messages" : [ - { - "id" : "id-goes-here", - "subject" : "Vaxaslim", - "date" : "01 31 2010 13:09:05 +0600", - "from" : "Dr. Stephen T. Colbert DFA", - "from_id" : "id-goes-here", - "to" : "Jon Stewart", - "to_id" : "id-goes-here", - "has_read" : 1, - "has_replied" : 0, - "body_preview" : "Just a reminder that Vaxaslim ", - "tags" : "Correspondence" - } - ], - "message_count" : 14, - "status" : { ... } - } - -The C section allows the user to filter the messages. You can do this either client side or server side. Available tags are: - -=over - -=item Tutorial - -Messages that come from the tutorial system. - -=item Correspondence - -Messages that are generated by other players, including the tutorial system. - -=item Medal - -Messages that let you know you've earned a medal. - -=item Intelligence - -Reports gathered from spies. - -=item Alert - -Messages letting you know something dire about your empire, usually sabotage by spies. - -=item Attack - -Messages informing you about attacks (offensive and defensive). - -=item Colonization - -Messages concerning staking and colonizing planets (including space station conversions). - -=item Complaint - -Messages regarding planetary complaints (happiness, resource, and pollution warnings). - -=item Excavator - -Messages about excavator findings (nothing, resources, glyph, plan). - -=item Mission - -Messages from the Mission Curators. - -=item Parliament - -Messages that tell you about Parliamentary proceedings (votes needed, votes passed, votes failed, etc). - -=item Probe - -Messages concerning detected probes. - -=item Spies - -Non-intelligence related spy reports. - -=item Trade - -Messages related to trades. - -=back - -Throws 1002, 1006. - -=head3 session_id - -A session id. - -=head3 options - -A hash reference of extra options. - -=head4 page_number - -An integer representing which page of the inbox you'd like to view. Defaults to C<1>. - -=head4 tags - -An array reference of tags. Only messages containing these tags will be displayed in the results. - -=head4 empire - -A name or ID of the baby empire to check the inbox of. - -=head2 view_archived ( session_id, [ options ]) - -Exactly the same as C except that it shows archived messages instead. - - -=head2 view_trashed ( session_id, [ options ]) - -Exactly the same as C except that it shows trashed messages instead. - - -=head2 view_sent ( session_id, [ options ] ) - -Exactly the same as C except that it shows sent messages instead. - -=head2 view_unread ( session_id, [ options ] ) - -Exactly the same as C except that it shows only the unread messages in the inbox. - - - -=head2 read_message ( session_id, message_id ) - -Retrieves a message. Marks it read if it hasn't been already. - - { - "message" : { - "id" : "id-goes-here", - "from" : "Dr. Stephen T. Colbert DFA", - "from_id" : "id-goes-here", - "to" : "Jon Stewart", - "to_id" : "id-goes-here", - "subject" : "Vaxaslim", - "body" : "Just a reminder that Vaxaslim may cause involuntary narnia adventures.", - "date" : "01 31 2010 13:09:05 +0600", - "has_read" : 1, - "has_replied" : 0, - "has_archived" : 0, - "has_trashed" : 0, - "in_reply_to" : "", - "recipients" : ["John Stewart"], - "tags" : ["Correspondence"], - "attachments" : { # no more than one of each type per email - "image" : { - "url" : "http://www.example.com/path/image.jpg", - "title" : "Some Title", - "link" : "http://www.lacunaexpanse.com/", # optional link to somewhere - "link" : { - "url" : "http://www.lacunaexpanse.com/", - "label" : "The Lacuna Expanse Website" - } - "table" : [ - [ "Hostname", "IP Address" ], # first row is always a header - [ "example.lacunaexpanse.com", "192.168.1.24" ], - ... - ], - "map" : { - "surface" : "surface-6", - "buildings" : [ - { - "x" : -3, - "y" : 4, - "image" : "apples4" - } - ... - ] - } - } - }, - status => { ... } - } - -C is the complete list of users who received the message, whereas C is the user that owns this particular copy of the message. - -Throws 1002, 1006, 1010. - -=head3 session_id - -A session id. - -=head3 message_id - -A message_id that was returned using C or one of the other view_ methods. - - - - -=head2 archive_messages ( session_id, message_ids ) - -Archives a list of messages. Returns: - - { - "success" : ["id-goes-here","id-goes-here"], - "failure" : ["id-goes-here","id-goes-here"], - "status" : { ... } - } - -Archived messages are marked as read. - -B You cannot archive sent messages. You'll get a failure if the message is either already archived, or it's a message that cannot be archived, like a message in your sent folder. - -=head3 session_id - -A session id. - -=head3 message_ids - -An array reference of message ids. - - - - - -=head2 trash_messages ( session_id, message_ids ) - -Trashed messages are marked as read. - -Trashes a list of messages. Returns: - - { - "success" : ["id-goes-here","id-goes-here"], - "status" : { ... } - } - -B You cannot trash messages sent to others. Only messages sent to you. - -=head3 session_id - -A session id. - -=head3 message_ids - -An array reference of message ids. - - - - - -=head2 trash_messages_where ( session_id, { spec => [ options, options, ... ] } ) - -Trashed messages are marked as read. - -Trashes all messages matching the options. Returns: - - { - "deleted" : ["id-goes-here","id-goes-here"], - "deleted_count" : 17340, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 named parameters - -The named parameter list takes the following keys: - -=head4 spec - -A list of specifications for deletion. Each specification is another -object (hash). A message must match all keys provided to be deleted ("AND"). -It is an error to specify no options. To delete all non-archived messages, -simply use C of C<%>. - -Compounding multiple delete requests can be done by passing in additional -hash references. - -Example: - - { tags => [ 'Attack', 'Alert' ], subject => 'BFG%' } - -This will delete any message with either the C or C tags, -if the subject starts with I. Attack and alert messages that do not -start with "BFG" will not be deleted. - -Keys are: - -=head4 tags - -An array reference of tags. Messages with any of these tags will be -eligible for deletion. Default is any and all tags (no tag evaluation). -Tags are given as a set, so are automatically "or"ed together. - -=head4 subject - -A subject line to match. Use C<%> to represent zero or more characters -in that position, such as "Pass:%" to select all messages whose subject -starts with "Pass:". Default is essentially any subject (no subject -evaluation). - -The subject may also be passed in as an array object, in which case it -is treated as tags above: a set to exactly match as a set of "or"ed values. - -=head4 from - -An array reference of from empire names. Full names are required. - -=head4 return_ids - -If this is present and set to a true value, all deleted message IDs will -be saved and returned. Gathering the IDs can, for large deletions, result -in extra server work, and also increase the size of the returned JSON -dramatically. This should only be set if you need the IDs for deleting from -an off-site message store, such as a local database, or an active message -view (UI). - -If this is not set, the C key will not be returned at all. - -The C key will still be present either way. - - -=head2 send_message ( session_id, recipients, subject, body, [ options ] ) - -Sends a message to other players. - -Throws 1002, 1005, 1006. - -=head3 session_id - -A session id. - -=head3 recipients - -A comma separated string of empire names. In addition to an empire name, C<@ally> is available as a shortcut to send to all members of an alliance. - -B You may want to expose a search option here using L. - -=head3 subject - -A subject for the message. It cannot contain any special characters, and must be less than 100 characters in length, and cannot contain &, @, ;, <, or >. - -=head3 body - -The body of the message. It cannot contain any special characters, and must be less than 200,000 characters in length, and cannot contain < or >. - -=head3 options - -A hash reference of extra options. - -=head4 in_reply_to - -A message id. If this message is in reply to another message, then set this option to the message id of the original message. - -=head4 forward - -A message id. If this is set, then the attachments of the message id specified will be sent along with the new message.The text of the message will not automatically be forwarded, if that is desired, it is the client's responsibility to include it in the body of the new message. - - - -=head1 Message Formatting - -The messages generated by the system have built in formatting commands to aid the user in figuring things out. These are items like displaying icons for UI consistency. Bolding important items, etc. - -=head2 Commands - -These commands should be supported by all inbox clients. The commands are as follows. - -=head3 Bold - -Bolds a segment of text by wrapping the text in asterisks. - - *bold* - -Example Perl based regular expression for formatting it as HTML. - - s/\*(\w.*?\w)\*/$1<\/b>/xsg - - -=head3 Food Icon - -Represents an in game food resource icon. - - {food} - -Example Perl based regular expression for formatting it as HTML. - - s/\{food\}//xsg - - -=head3 Water Icon - -Represents an in game water resource icon. - - {water} - -Example Perl based regular expression for formatting it as HTML. - - s/\{water\}//xsg - - -=head3 Ore Icon - -Represents an in game ore resource icon. - - {ore} - -Example Perl based regular expression for formatting it as HTML. - - s/\{ore\}//xsg - - - -=head3 Energy Icon - -Represents an in game energy resource icon. - - {energy} - -Example Perl based regular expression for formatting it as HTML. - - s/\{energy\}//xsg - - - -=head3 Waste Icon - -Represents an in game waste resource icon. - - {waste} - -Example Perl based regular expression for formatting it as HTML. - - s/\{waste\}//xsg - - -=head3 Happiness Icon - -Represents an in game food resource icon. - - {happiness} - -Example Perl based regular expression for formatting it as HTML. - - s/\{happiness\}//xsg - - -=head3 Time Icon - -Represents an in game time icon that shows how long something will take. - - {time} - -Example Perl based regular expression for formatting it as HTML. - - s/\{time\}//xsg - - - -=head3 Build Icon - -Represents an the in game build (tractor) icon. - - {build} - -Example Perl based regular expression for formatting it as HTML. - - s/\{build\}//xsg - - -=head3 Essentia Icon - -Represents an in game Essentia icon. - - {essentia} - -Example Perl based regular expression for formatting it as HTML. - - s/\{essentia\}//xsg - - -=head3 Plots Icon - -Represents an in game plots icon. - - {plots} - -Example Perl based regular expression for formatting it as HTML. - - s/\{plots\}//xsg - - -=head3 URLs and Links - -URLs are formatted using brackets rather than braces to make them stand out from all the other macros for icons and whatnot. - - [http://www.lacunaexpanse.com] - -Example Perl based regular expression for formatting it as HTML. - - s/\[((?:http|https):[a-z0-9\.\/\-\_]+)\]/$1<\/a>/xisg - -B It's very important that you exclude as many characters as possible from the URL so that there is less of a chance of a malicious attack from the formatted version. Therefore the link should only allow for C. It should not accept C<% ? & :> or other funky formatting that could be used against the user. If it encounters that, it should ignore it rather than formatting it. In addition it should start with http:// or https://. All other protocols should be ignored. - - -=head3 Empire Profile Link - -The empire profile link is used by automated messages in the system to link users to the profile of an empire wherever that empire is mentioned in the text. - - {Empire 999 United Federation} - - {Empire id name} - -Example Perl based regular expression for formatting it as HTML. - - s/\{Empire\s(-*\d+)\s(.*?)\}/$2<\/a>/xisg - -B The link generated by this is of course bogus. It is only used as an example, your application would have to create whatever it needs to display the empire's profile which displayed the data from L. - - -=head3 Star Map Link - -Allows direct linking from emails to a location on the star map. - - {Starmap 432 -46 Earth} - - {Starmap x y name} - -Example Perl based regular expression for formatting it as HTML. - - s/\{Starmap\s(-*\d+)\s(\d+)\s(.*?)\}/$3<\/a>/xisg - -B The link generated by this is of course bogus. It is only used as an example, your application would have to create whatever it needs to display the location on the map. - - -=head3 Planet Link - -Allows direct linking to the surface view of a planet under the player's control. - - {Planet 99999 Earth} - - {Planet id name} - -Example Perl based regular expression for formatting it as HTML. - - s/\{Planet\s(-*\d+)\s(.*?)\}/$2<\/a>/xisg - -B The link generated by this is of course bogus. It is only used as an example, your application would have to create whatever it needs to display planet's surface. - - -=head3 Alliance Link - -Allows direct linking to an alliance profile. - - {Alliance 3393 Federation of Planets} - - {Alliance id name} - -Example Perl based regular expression for formatting it as HTML. - - s/\{Alliance\s(-*\d+)\s(.*?)\}/$2<\/a>/xisg - -B The link generated by this is of course bogus. It is only used as an example, your application would have to create whatever it needs to display the alliance's profile which displayed the data from L. - - -=head3 Parliament Vote - -Allows a direct link to a vote in parliament, so that the alliance member need not actually go to the space station and then the parliament building, and then find the proper item to vote on. - - {VoteYes 393744 4948 9411} - - {VoteYes space_station_body_id parliament_id proposition_id} - -Example Perl based regular expression for formatting it as HTML. - - s/\{VoteYes\s(-*\d+)\s(-*\d+)\s(-*\d+)\}/Yes!<\/a>/xisg - - {VoteNo 393744 4948 9411} - - {VoteNo space_station_body_id parliament_id proposition_id} - -Example Perl based regular expression for formatting it as HTML. - - s/\{VoteNo\s(-*\d+)\s(-*\d+)\s(-*\d+)\}/No!<\/a>/xisg - -B The links generated by this are of course bogus. It is only used as an example, your application would have to create whatever it needs to display the voting links that get posted to L. - -=head2 FAQ - -=over - -=item Why a domain specific language (DSL)? - -There's no way to build a rich text editor that would work across all the different platforms we support, but we need these formatting tools for our in-game messages, like the tutorial system. Users need an icon to go with the word, so we need to be able to inject that into the text message. In addition, our support people need to be able to send links to users to point them to wiki pages, forums, etc. And though they could just copy the link out of the message, some platforms require opening a separate browser app, so by using a DSL we can alert that client to the fact that this is a link that should open in a browser app. - -=item Why not just use HTML? - -To some extent the previous question should answer that. Beyond that though, let's enumerate all the reasons HTML sucks for this application. - -=over - -=item * - -Injection attacks are rampant on the internet. If we allow HTML to find its way into the mail system, no one is safe. - -=item * - -Not all platforms we intend to support will be able to render HTML. - -=item * - -How would do the C<{Empire id name}> command in HTML? You need to be able to open a window in the app, which means you need to be able to call an API. - -=item * - -Which is easier to type: - - bold - -Or - - *bold* - -Which do you think a user is more likely to get right and therefore be useful to them? - -=item * - -How would you do C<{food}> in HTML? Sure you can use an image tag, but what does it point to? Do you really want to download the icon from a public source in your iPhone app, when the iPhone app already has the icon locally? And if a user wanted to include the icon in their message, which is easier to type: - - {food} - -Or - - food - -=item * - -In short, HTML is long, tedious, ugly, vulnerable, and a terrible language for the types of applications we have in Lacuna. - -=back - -=back - -=cut diff --git a/docs/IntelTraining.pod b/docs/IntelTraining.pod deleted file mode 100644 index f054fb5d..00000000 --- a/docs/IntelTraining.pod +++ /dev/null @@ -1,29 +0,0 @@ -=head1 IntelTraining Methods - -Intel Training Facility is accessible via the URL C. - -The Intel Training Facility is where you train your spies in the ways of intelligence gathering. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - - { - "status" : { ... }, - "building" : { ... }, - "spies" : { - "max_points" : 2600, - "points_per" : 45, - "in_training" : 4, - }, - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of your Intel Training Facility. - -=cut diff --git a/docs/Intelligence.pod b/docs/Intelligence.pod deleted file mode 100644 index 5cd0622e..00000000 --- a/docs/Intelligence.pod +++ /dev/null @@ -1,442 +0,0 @@ -=head1 Intelligence Methods - -Intelligence Ministry is accessible via the URL C. - -The Intelligence Ministry is where you build and control your spies. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - - { - "status" : { ... }, - "building" : { ... }, - "spies" : { - "maximum" : 5, - "current" : 1, - "in_training" : 1, - "training_costs" : { - "food" : 100, - "water" : 120, - "energy" : 20, - "ore" : 5, - "waste" : 10, - "time" : 60, - } - }, - } - - -=head2 train_spy ( session_id, building_id, [ quantity ]) - -Allows you to train more spies. - - { - "status" : { ... }, - "trained" : 3, - "not_trained" : 2, - "reason_not_trained" : { - "code" : 1011, - "message" : "Not enough food to train a spy.", - }, - } - -The only reason C might be over 0 is if you specify training more spies than you have resources to spend in which case the reason_not_trained block will be included. - -Throws 1013, 1009. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of your Intelligence Ministry. - -=head3 quantity - -An integer between 1 and 5. Defaults to 1. - - - - - -=head2 view_spies ( session_id, building_id, [ page_number ] ) - -Returns the list of spies you have on your roster. - - { - "status" : { ... }, - "spies" : [ - { - "id" : "id-goes-here", - "name" : "Jason Bourne", - "assignment" : "Idle", - "possible_assignments" : [ - { - "task" : "Idle", - "recovery" : 0, - "skill" : "none" - }, - { - "task" : "Counter Espionage", - "recovery" : 0, - "skill" : "*" - }, - { - "task" : "Security Sweep", - "recovery" : 14400, # in seconds - "skill" : "intel" - }, - ... - ], - "level" : 9, - "politics" : 0, # experience in handling happiness - "mayhem" : 20, # experience in handling missions involving murder and destruction - "theft" : 40, # experience in handling missions involving stealing items - "intel" : 33, # experience in handling missions involving information and spies - "offense_rating" : 570, - "defense_rating" : 150, - "assigned_to" : { - "body_id" : "id-goes-here", - "name" : "Earth", - "x" : 40, - "y" : -71 - }, - "based_from" : { - "body_id" : "id-goes-here", - "name" : "Earth", - "x" : 40, - "y" : -71 - }, - "is_available" : 1, # can be reassigned - "available_on" : "01 31 2010 13:09:05 +0600", # if can't be reassigned, this is when will be available - "started_assignment" : "01 31 2010 13:09:05 +0600", - "seconds_remaining" : 45, - "mission_count" : { - "offensive" : 149, - "defensive" : 149 - } - }, - ... - ], - "spy_count" : 12 - } - -Take a look at the C method below for assignment descriptions. - -B If a spy is already recovering from a particular assignment, then C will return only that one assignment and the recovery time will be however much recovery time is remaining. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of your Intelligence Ministry. - -=head3 page_number - -Defaults to 1. An integer representing which page to view. Shows 30 spies per page. - -=head2 view_all_spies ( session_id, building_id ) - -Returns the list of spies you have on your roster from that Intelligence Ministy. Otherwise identical to view_spies. - -=head2 subsidize_training ( session_id, building_id ) - -Will spend 1 essentia per spy to complete the training of all spies immediately. Returns C. - -Throws 1011. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Intelligence Ministry. - - - -=head2 burn_spy ( session_id, building_id, spy_id ) - -Allows you to eliminate one of your spies from your payroll. - - { - "status" : { ... } - } - -Throws 1002, 1010 - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of your Intelligence Ministry. - -=head3 spy_id - -The unique id of the spy you wish to burn. - - -=head2 name_spy ( session_id, building_id, spy_id, name ) - -Set the name of the spy. Returns: - - { - "status" : { ... } - } - -Throws 1002, 1005, 1013. - -=head2 name_spies ( { session_id: session_id, building_id: building_id, prefix: "p", suffix: "s", rename_null_only: bool } ) - -Sets the name of (almost) all spies. The new name of the spy will be of the form "p ## s" if both prefix and suffix are given, "p ##" if only prefix is given, and "## s" if only suffix is given. - -If rename_null_only is given, only spies currently named "Agent Null" will be renamed. If you want some spies set to specific values, and the rest can be given generic names, you can use this flag. - -Note that spies that already have valid names according to the prefix and/or suffix given will not be renamed (unless they are duplicates). If you've already got spy "p 08 s", that spy will not get renamed as long as "p" and "s" are given as prefix and suffix, respectively, and no new spy will get that name until the current "p 08 s" is retired and replaced. - -Returns C plus a C key with the count of spies renamed. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the intelligence building. - -=head3 spy_id - -The unique id of the spy you wish to train. - -=head3 name - -The name you'd like to set for the spy. The name cannot contain @, <, #, &, ; or profanity, and must be at least 1 character long. - - - -=head2 assign_spy ( session_id, building_id, spy_id, assignment ) - -Set a spy on a new task. - - { - "status" : { ... }, - "mission" : { - "result" : "Failure", - "message_id" : "id-goes-here", - "reason" : "I'm under heavy fire over here!" - }, - "spy" : { - "id" : "id-goes-here", - "name" : "Jason Bourne", - "assignment" : "Idle", - "possible_assignments" : [ - { - "task" : "Idle", - "recovery" : 0, - "skill" : "none" - }, - { - "task" : "Counter Espionage", - "recovery" : 0, - "skill" : "*" - }, - { - "task" : "Security Sweep", - "recovery" : 14400, # in seconds - "skill" : "intel" - }, - ... - ], - "level" : 9, - "politics" : 0, # experience in handling happiness - "mayhem" : 20, # experience in handling missions involving murder and destruction - "theft" : 40, # experience in handling missions involving stealing items - "intel" : 33, # experience in handling missions involving information and spies - "offense_rating" : 570, - "defense_rating" : 150, - "assigned_to" : { - "body_id" : "id-goes-here", - "name" : "Earth", - }, - "is_available" : 1, # can be reassigned - "available_on" : "01 31 2010 13:09:05 +0600", # if can't be reassigned, this is when will be available - "started_assignment" : "01 31 2010 13:09:05 +0600", - "seconds_remaining" : 45 - } - } - -The mission block allows you to give immediate feedback to the player. The C types that can be sent back are: - -=over - -=item Accepted - -This is provided when no immediate mission occurs. For example, if you set a spy to "Idle" or "Counter Espionage". - -=item Success - -This means a mission has occurred and came out in favor of the spy. - -=item Bounce - -This means a mission started, but was foiled and neither side won. - -=item Failure - -This means a mission occurred, but went so poorly that the defense got the upper hand and bested you. - -=back - -The C provides a message in sentence form about why a spy won or lost a mission. This message is related to the success or failure, not any outcome that results from that success or failure. - -The C refers to a message in the L. Providing this ID allows you to pop open the inbox to a specific message to display to the user. The message will tell you what the outcome of the mission is if any. Not all missions will provide a message_id. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of your Intelligence Ministry. - -=head3 spy_id - -The unique id of the spy you wish to assign. - -=head3 assignment - -This can be either a hash (object) or a string. If it's a string, it is -treated as a hash whose sole key is C and the value is the string -given. If it's a hash, it accepts the following keys: - -=over 4 - -=item assignment - -A string containing the new assignment name. These are the possible assignments: - -=over - -=item Idle - -Don't do anything. - -=item Bugout - -Only visible on non-home planets. Immediately has agent go to their home base via spypod. - -=item Counter Espionage. - -Passively defend against all attackers. - -=item Security Sweep - -Round up attackers. - -=item Intel Training - -Train in Intelligence skill - -=item Mayhem Training - -Train in Mayhem skill - -=item Politics Training - -Train in Politics skill - -=item Theft Training - -Train in Theft skill - -=item Political Propaganda - -Give happiness generation a boost. Especially effective on unhappy colonies, but hastens an agent toward retirement. Only usuable on owned planets. - -=item Gather Resource Intelligence - -Find out what's up for trade, what ships are available, what ships are being built, where ships are travelling to, etc. - -=item Gather Empire Intelligence - -Find out what is built on this planet, the resources of the planet, what other colonies this Empire has, etc. - -=item Gather Operative Intelligence - -Find out what spies are on this planet, where they are from, what they are doing, etc. - -=item Hack Network 19 - -Attempts to besmirch the good name of the empire controlling this planet, and deprive them of a small amount of happiness. - -=item Sabotage Probes - -Destroy probes controlled by this empire. - -=item Rescue Comrades - -Break spies out of prison. - -=item Sabotage Resources - -Destroy ships being built, docked, en route to mining platforms, etc. - -=item Appropriate Resources - -Steal empty ships, ships full of resources, ships full of trade goods, etc. - -=item Assassinate Operatives - -Kill spies. - -=item Sabotage Infrastructure - -Destroy buildings. - -=item Sabotage Defenses - -Destroy buildings that are used in defense. - -=item Sabotage BHG - -Prevent enemy planet from using Black Hole Generator. - -=item Incite Mutiny - -Turn spies. If successful they come work for you. - -=item Abduct Operatives - -Kidnap a spy and bring him back home. - -=item Appropriate Technology - -Steal plans for buildings that this empire has built, or has in inventory. - -=item Incite Rebellion - -Obliterate the happiness of a planet. If done long enough, it can shut down a planet. - -=item Incite Insurrection - -Steal a planet. - -=back - -B You can do bad things to allies using these assignments. - -=item noempty - -For Cs, a true value here indicates that you do not want -an email when there are no spies found. Emails when spies are found, or -when the mission fails will still be posted. - -=back - -=cut diff --git a/docs/InterDimensionalRift.pod b/docs/InterDimensionalRift.pod deleted file mode 100644 index 1710ffba..00000000 --- a/docs/InterDimensionalRift.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 InterDimensionalRift Methods - -Interdimensional Rift is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Intro.pod b/docs/Intro.pod deleted file mode 100644 index 040dfa3d..00000000 --- a/docs/Intro.pod +++ /dev/null @@ -1,207 +0,0 @@ -=head1 Introduction - -This document can introduce you to interacting with the Lacuna Expanse game server. - -=head1 SERVERS - -The list of playable servers can be read from L. - - [ - { - "name" : "NA1", - "uri" : "https://na1.lacunaexpanse.com/", - "status" : "Open", - "location" : "United States" - } - ... - ] - -Each server in this list is an instance of the game, an individual universe separated from the others. Your app will need to allow users to select which server they want to interact with form this list. - -=head1 JSON-RPC - -The Lacuna Expanse uses a JSON-RPC 2.0 based API. You can read more about JSON-RPC 2.0 at L. - -You can access these methods either as HTTP POSTs or GETs. - -=head2 HTTP GET - -You can simply access any method using HTTP GET. Here's an example URL: - - https://game.lacunaexpanse.com/empire?jsonrpc=2.0&id=1&method=is_name_available¶ms=["Lacuna Expanse Corp"] - -The C part gets you to the server. - -Then C lets you interact with the L module. See below for a complete list. - -To make it JSON-RPC 2.0 compatible, you must include the C part. - -Then specify the method you wish to call with C. - -And finally pass in whatever parameters you need like C. Parameters need to be encoded in JSON. By default all methods require an array of parameters. However, some will specifically request a hash reference of parameters; that would look like C - -B You must URL encode the params. If you don't, you'll get a parse error from the server. - -=head2 HTTP POST - -Most programming languages will have a JSON-RPC 2.0 client you can either use directly, or download from the internet. These will use HTTP POST. If you need to manually create a POST, it would look like: - - POST,https://game.lacunaexpanse.com/species - { - "jsonrpc":"2.0", - "id":1, - "method":"is_name_available", - "params":["Human"] - } - -B It's important to make the distinction here that when you're sending a POST, you're not sending URL parameters. You're sending a full POST body. If you format it with parameters like a GET request you'll get a parse error in response. - -=head3 Use Post When Possible - -HTTP POST is the preferred method of execution. The reasons for this are: - -=over - -=item * - -You can make multiple method calls in the same request, per the JSON-RPC 2.0 specification. - -=item * - -Depending upon the HTTP Client, you'll have somewhere between 512 and 2048 bytes to send the request on a GET, but it can be unlimited on a POST. - -=item * - -If you use an HTTP GET, you'll need to URL Encode the params, but with POST you don't need to do that. - -=back - -=head2 Response - -Either way you'll get a response back with either a result or an error message. - -=head3 Result - -If you make a successful request you'll get a response like: - - { - "jsonrpc" : "2.0", - "id" : 1, - "result" : 0 - } - -=head3 Error - -If an exception is thrown you'll get an error response. It's a hash containing a code, message, and data section. - - { - "jsonrpc" : "2.0", - "id" : 1, - "error" : { - "code" : 1000, - "message" : "Name not available.", - "data" : null - } - } - -B If you get a JSON-RPC error, then the web server will also give you a 500 HTTP error code. - - -=head2 RPC Limit - -You may only make a number of calls up to the RPC Limit in a given 24 hour period. The current limit is 10,000 on us1. They are also rate limited to 60 calls per minute on us1. The counter resets roughly (give or take 60 minutes) at midnight GMT. Your RPC calls are counted across all clients you use and your own programs. - -If you find yourself needing more RPC calls than the limit allows then you are likely making a lot of redundant requests. For example body.get_buildings() returns the entire list of buildings, and a time as to when their stats will change. So instead of calling every building on every planet every time your program looks something up, cache it until it changes. - - - -=head1 Status - -Most methods will provide a status block as part of the response. This is used to update the user interface and alert the user to things. The status block looks like this: - - { - ... - "status" : { - "server" : { - "time" : "01 31 2010 13:09:05 +0600", - "version" : 2.0604, - "announcement" : 1, # see the Announcement API - "rpc_limit" : 2500, # max calls per day, compare to empire rpc_count - "star_map_size" : { - "x" : [ -15, 15 ], - "y" : [ -15, 15 ], - "z" : [ -15, 15 ] - }, - "promotions" : [ - { - "description" : "With any purchase of essentia, receive a 50% bonus!", - "end_date" : "31 10 2015 00:00:00 +0000", - "start_date : "01 10 2015 00:00:00 +0000", - "type" : "Bonus50", - } - ] - }, - "empire" : { # this block is not always included - See get_status() in Empire - }, - "body" : { # this block is not always included - See get_status() in Body - } - } - } - -=head1 Modules - -=over - -=item L - -A list of the error codes that might be returned by various modules. - -=item L - -You'll need a key to use the API. - -=item L - -Methods for account and empire management. - -=item L - -Methods for public alliance data. - -=item L - -Methods for message management. - -=item L - -Methods for game server statistics. - -=item L - -Methods for interacting with the star and systems maps. - -=item L - -Methods for interacting with planets and other stellar bodies. - -=item L - -Methods for interacting with the buildings on a body. - -=item L - -How to allow users to purchase Essentia from your app. - -=item L - -Display a serverwide announcement. - -=item L - -Request and solve CAPTCHAs - -=back - -=cut diff --git a/docs/JunkHengeSculpture.pod b/docs/JunkHengeSculpture.pod deleted file mode 100644 index de6a04ef..00000000 --- a/docs/JunkHengeSculpture.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Junk Henge Sculpture Methods - -Junk Henge Sculpture is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/KalavianRuins.pod b/docs/KalavianRuins.pod deleted file mode 100644 index fa33b4d3..00000000 --- a/docs/KalavianRuins.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 KalavianRuins Methods - -Kalavian Ruins is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/KasternsKeep.pod b/docs/KasternsKeep.pod deleted file mode 100644 index 24608a55..00000000 --- a/docs/KasternsKeep.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Kastern's Keep Methods - -Kastern's Keep is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Lagoon.pod b/docs/Lagoon.pod deleted file mode 100644 index 1b795080..00000000 --- a/docs/Lagoon.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Lagoon Methods - -Lagoon is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Lake.pod b/docs/Lake.pod deleted file mode 100644 index bbd30ab0..00000000 --- a/docs/Lake.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Lake Methods - -Lake is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Lapis.pod b/docs/Lapis.pod deleted file mode 100644 index 8bce6b0c..00000000 --- a/docs/Lapis.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Lapis Orchard Methods - -Lapis Orchard is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/LapisForest.pod b/docs/LapisForest.pod deleted file mode 100644 index 0e642921..00000000 --- a/docs/LapisForest.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Lapis Forest Methods - -Lapis Forest is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/LibraryOfJith.pod b/docs/LibraryOfJith.pod deleted file mode 100644 index 7a867de5..00000000 --- a/docs/LibraryOfJith.pod +++ /dev/null @@ -1,45 +0,0 @@ -=head1 Library of Jith Methods - -Library of Jith is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - - -=head2 research_species (session_id, building_id, empire_id ) - -Returns a list of species stats for any species in the game. - - { - "species" : { - "name" : "Human", - "description" : "The descendants of Earth.", - "min_orbit" : 3, - "max_orbit" : 3, - "manufacturing_affinity" : 4, - "deception_affinity" : 4, - "research_affinity" : 4, - "management_affinity" : 4, - "farming_affinity" : 4, - "mining_affinity" : 4, - "science_affinity" : 4, - "environmental_affinity" : 4, - "political_affinity" : 4, - "trade_affinity" : 4, - "growth_affinity" : 4 - }, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 empire_id - -The unique id of an empire you'd like to know more about. See L to turn a name into an id. - -=cut \ No newline at end of file diff --git a/docs/LostCityOfTyleon.pod b/docs/LostCityOfTyleon.pod deleted file mode 100644 index 02f060dc..00000000 --- a/docs/LostCityOfTyleon.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Lost City of Tyleon Methods - -Space Station Lab is accessible via the URLs C, C, C, C, C, C, C, C, and C. The C URL controls all the actual functions of the city, but you must build all nine components to get the benefits. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/LuxuryHousing.pod b/docs/LuxuryHousing.pod deleted file mode 100644 index 87c2798f..00000000 --- a/docs/LuxuryHousing.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Luxury Housing Methods - -Luxury Housing is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Malcud.pod b/docs/Malcud.pod deleted file mode 100644 index 143619b5..00000000 --- a/docs/Malcud.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Malcud Fungus Farm Methods - -Malcud Fungus Farm is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/MalcudField.pod b/docs/MalcudField.pod deleted file mode 100644 index 0910fd3f..00000000 --- a/docs/MalcudField.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Malcud Field Methods - -Malcud Field is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Map.pod b/docs/Map.pod deleted file mode 100644 index 96ea18ea..00000000 --- a/docs/Map.pod +++ /dev/null @@ -1,434 +0,0 @@ -=head1 Map Data - -An export of the public map data (ie the Stars), is available to download in an easy to use CSV format. The URL is - - http://gameservername.lacunaexpanse.com.s3.amazonaws.com/stars.csv - -So if the server name is "us-east-1", then the the URL would be - - http://us-east-1.lacunaexpanse.com.s3.amazonaws.com/stars.csv - -=head1 Map Methods - -These methods are accessible via the C URL. - -=head2 get_star_map - -This takes a hashref of named arguments. - - { - "session_id" : "session-id-here", - "left" : -900, - "top" : 50, - "right" : -850, - "bottom" : 30 - } - -This is the preferred call to obtain star data. It is a 'lite' version of B which just returns -enough data to draw the starmap. - -Where B, B, B, B represent the sides of the bounding rectangle. - -The maximum area that can be returned is 1001 units (e.g 50 x 20 or 1001 x 1) - -Returns a chunk of the map as an array of hashes. - - { - "stars" : [ - { - "name" : "Sol", - "color" : "yellow", - "x" : -41, - "y" : 27, - "id" : 99, - "station" : { - "id" : 2001, - "x" : 143, - "y" : -27, - "name" : "The Death Star", - "alliance" : { - "name" : "The Borg Collective", - "id" : 23, - "image" : 'my_logo_v001', - } - } - "bodies" : [ - { - "name" : "Mercury", - "id" : 345, - "orbit" : 1, - "x" : -40, - "y" : 29, - "type" : "habitable planet", - "image" : "p13", - "size" : 58, - "empire" { - "id" : 945, - "name" : "Earthlings", - "alignment" : "ally", - "is_isolationist" : 1 - } - }, - { - "name" : "Vesta", - "id" : 346, - "orbit" : 2, - "x" : -39, - "y" : 28, - "type" : "asteroid", - "image" : "p33", - "size" : 3, - "body_has_fissure" : 1, - }, - ... - ] - }, - { - ... - } - ... - ] - } - -Note. This data is a cut-down version of that returned by get_stars, in particular it does not -return most of the data for planets you occupy (ore, water etc.), does not return the 'station' -data if the planet in under the influence of a space-station and does not return the water or -ore for the planet. You can make separate calls to the /body get_status for that information. - -The B section is only returned if the star is under the influence of a Space station. - -The B section is only returned if the body is occupied by an empire. - -=head2 get_stars ( session_id, x1, y1, x2, y2 ) - -Retrieves a chunk of the map and returns it as an array of hashes. B Coordinates without a star will not be returned in the results. - - { - "stars" : [ - { - "name" : "Sol", - "color" : "yellow", - "x" : -41, - "y" : 27, - "zone" : "0|0", - "id" : "99", - "station" : { # only shows up if this star is under the influence of a space station - "id" : "id-goes-here", - "x" : 143, - "y" : -27, - "name" : "The Death Star" - }, - "bodies" : [ # only added if a probe is present - { - same data as get_status() on /body - }, - ... - ] - }, - { - "name" : "X143S", - "color" : "green", - "x" : -42, - "y" : 27 - "zone" : "0|0", - "id" : "99", - "station" : { ... } - } - ], - "status" : { ... } - } - -The data you retrieve will allow you to draw a standard cartesian plane like the following. - - y - - | - | - (-3,3) | (3,3) - | - -x ----------+---------- x - | - (-3,-3) | (3,-3) - | - | - - -y - - -The requested area can be no larger than 900 spaces (30x30). Throws 1003 when the area is too large. - - -=head3 session_id - -A session id. - -=head3 x1 - -The top left x coord. - -=head3 y1 - -The top left y coord. - -=head3 x2 - -The bottom right x coord. - -=head3 y2 - -The bottom right y coord. - - -=head2 check_star_for_incoming_probe ( session_id, star_id ) - -If the star has a status of "unprobed", call this method to find out if there is an incoming probe from this empire. - - { - "status" : { ... }, - "incoming_probe" : "01 31 2010 13:09:05 +0600" # date of arrival will be present if there is an incoming probe - } - -=head3 session_id - -A session id. - -=head3 star_id - -The unique id for a star. - - - -=head2 get_star (session_id, star_id) - -Retrieves info on a single star. - - { - "star" : { - "name" : "Sol", - "color" : "yellow", - "x" : -41, - "y" : 27, - "zone" : "0|0", - "id" : "99", - "station" : { # only shows up if this star is under the influence of a space station - "id" : "id-goes-here", - "x" : 143, - "y" : -27, - "name" : "The Death Star" - }, - "bodies" : [ # only added if a probe is present - { - same data as get_status() on /body - }, - ... - ] - } - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 star_id - -The unique id of the star. - - - -=head2 get_star_by_name (session_id, name) - -Retrieves info on a single star. - - { - "star" : { - "name" : "Sol", - "color" : "yellow", - "x" : -41, - "y" : 27, - "zone" : "0|0", - "id" : "99", - "station" : { # only shows up if this star is under the influence of a space station - "id" : "id-goes-here", - "x" : 143, - "y" : -27, - "name" : "The Death Star" - }, - "bodies" : [ # only added if a probe is present - { - same data as get_status() on /body - }, - ... - ] - } - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 name - -The exact name of a star. Case insensitive. - - - -=head2 get_star_by_xy (session_id, x, y) - -Retrieves info on a single star. - - { - "star" : { - "name" : "Sol", - "color" : "yellow", - "x" : -41, - "y" : 27, - "zone" : "0|0", - "id" : "99", - "station" : { # only shows up if this star is under the influence of a space station - "id" : "id-goes-here", - "x" : 143, - "y" : -27, - "name" : "The Death Star" - }, - "bodies" : [ # only added if a probe is present - { - same data as get_status() on /body - }, - ... - ] - } - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 x - -The x coordinate of a star. - -=head3 y - -The y coordinate of a star. - - - -=head2 search_stars (session_id, name) - -If you know a partial name of a star you can search for it. Returns up to 25 results. No body data is returned with this search. - - { - "stars" : [ - { - "name" : "Sol", - "color" : "yellow", - "x" : -41, - "y" : 27 - }, - { - "name" : "Minsol", - "color" : "green", - "x" : -42, - "y" : 27 - } - ], - "status" : { ... } - } - - -=head3 session_id - -A session id. - -=head3 name - -A partial name of a star. Case insensitive. Must be at least 3 characters. - - -=head2 probe_summary_fissures - -Obtain a summary of all bodies with fissures, known to yours, or your alliances probes within a specified zone. - -This takes named arguments only - - { - "session_id" : "1234-0A34-333F-21", - "zone" : "0|0", - } - -=head3 session_id (required) - -A session id. - -=head3 zone (optional) - -A string defining the zone, e.g "-1|0", "5|-5" or "0|0" - -If not specified, all zones are searched. - -=head3 RESPONSE - - { - "fissures" : { - "345" : { - "name" : "Mercury", - "id" : 345, - "orbit" : 1, - "x" : -40, - "y" : 29, - "type" : "habitable planet", - "image" : "p13", - "size" : 58, - }, - "735" : { - ... - } - } - } - -This returns a hash of body-ids and for each one a brief description of the body on which is at least -one fissure; - -If there are no fissures on any of the bodies which you have probed then an empty list is returned; - -=head2 view_laws (session_id, star_id ) - -B Pass in a the id of a star and the laws enacted by the controlling station will be returned. - -Returns a list of the laws. - - { - "status" : { ... }, - "laws" : [ - { - "id" : "id-goes-here", - "name" : "Censure of Jamie Vrbsky", - "description" : "Jamie Vrbsky is bad at playing Lacuna!", - "date_enacted" : "01 31 2010 13:09:05 +0600" - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 star_id - -The unique id of the star - - -=head1 FAQ - -These are common questions about this API. - -=head2 What is a body? - -A body is any object that orbits a star. In Lacuna terms this means a body is a habitable planet, gas giant planet, space station, or asteroid. - -=cut - diff --git a/docs/MassadsHenge.pod b/docs/MassadsHenge.pod deleted file mode 100644 index c5bb9c50..00000000 --- a/docs/MassadsHenge.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Massad's Henge Methods - -Massad's Henge is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/MayhemTraining.pod b/docs/MayhemTraining.pod deleted file mode 100644 index a84bbf17..00000000 --- a/docs/MayhemTraining.pod +++ /dev/null @@ -1,29 +0,0 @@ -=head1 MayhemTraining Methods - -Mayhem Training Facility is accessible via the URL C. - -The Mayhem Training Facility is where you train your spies in the art of destruction. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - - { - "status" : { ... }, - "building" : { ... }, - "spies" : { - "max_points" : 2600, - "points_per" : 45, - "in_training" : 4, - }, - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of your Mayhem Training Facility. - -=cut diff --git a/docs/MercenariesGuild.pod b/docs/MercenariesGuild.pod deleted file mode 100644 index 16d82092..00000000 --- a/docs/MercenariesGuild.pod +++ /dev/null @@ -1,248 +0,0 @@ -=head1 Mercenaries Guild Methods - -The Mercenaries Guild is accessible via the URL C. It allows you to send spies to other players via spy pods. It costs essentia to use it. - -The list of methods below represents changes and additions to the methods that all L share. - - -=head2 add_to_market ( session_id, building_id, spy_id, ask, [ ship_id ] ) - -Queues a trade for others to see. Returns: - - { - "trade_id" : "id-goes-here", - "status" : { ... }, - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the mercenaries guild. - -=head3 spy_id - -The unique id of the spy that you want to trade. See the C method for a list of your spies. - -=head3 ask - -An integer representing the amount of essentia you are asking for in this trade. Must be between 1 and 99. - -=head3 ship_id - -Optional. The specific id of a ship you want to use for this trade. See C for details. - - - -=head2 get_spies ( session_id, building_id ) - -Returns a list of spies that may be traded. Used with the C method. - - { - "spies" : [ - { - "id" : "id-goes-here", - "name" : "Jack Bauer", - "level" : "9" - }, - ... - ], - "cargo_space_used_each" : 350, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - - -=head2 withdraw_from_market ( session_id, building_id, trade_id ) - -Remove a trade that you have offered and collect the items up for trade. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 trade_id - -The unique id of the trade. - - - - -=head2 accept_from_market ( session_id, building_id, trade_id ) - -Accept a trade offer from the list of available trades. See C. - -Throws 1016. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 trade_id - -The unique id of the trade. - - - -=head2 view_market ( session_id, building_id, [ page_number ] ) - -Displays a list of trades available at the present time. - - { - "trades" : [ - { - "date_offered" : "01 31 2010 13:09:05 +0600", - "id" : "id-goes-here", - "ask" : 25, # essentia - "offer" : [ - "Level 9 spy named Jack Bauer (Mercenary Transport) Offense: 875, Defense: 875, Intel: 2, Mayhem: 0, Politics: 0, Theft: 0, Mission Count Offensive: 0 Defensive: 2)", - ], - "body" : { - "id" : "id-goes-here" # use with get_trade_ships() to determine travel time - }, - "empire" : { - "id" : "id-goes-here", - "name" : "Earthlings" - } - }, - ... - ], - "trade_count" : 1047, - "page_number" : 1, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 page_number - -Optional. An integer representing the page of trades (25 per page) to return. Defaults to 1. - - - - -=head2 view_my_market ( session_id, building_id, [ page_number ] ) - -Displays a list of trades the current user has posted. - - { - "trades" : [ - { - "date_offered" : "01 31 2010 13:09:05 +0600", - "id" : "id-goes-here", - "ask" : 25, # essentia - "offer" : [ - "Level 9 spy named Jack Bauer (Mercenary Transport) Offense: 875, Defense: 875, Intel: 2, Mayhem: 0, Politics: 0, Theft: 0, Mission Count Offensive: 0 Defensive: 2)", - ] - }, - ... - ], - "trade_count" : 17, - "page_number" : 1, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 page_number - -An integer representing the page of trades (25 per page) to return. Defaults to 1. - - - -=head2 get_trade_ships ( session_id, building_id, [ target_body_id ] ) - -Returns a list of the ships that could be used to do a trade. - - { - "status" : { ... }, - "ships" : [ - { - "id" : "id-goes-here", - "type" : "spy_pod", - "name" : "Spy Pod 5", - "estimated_travel_time" : 3600, # in seconds, one way - ... - }, - ... - ] - } - - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the trade ministry. - -=head3 target_body_id - -The unique id of the body you'll be shipping to. Optional. If included it will calculate the estimated travel time of the ships to this body. - - - - - -=head2 report_abuse ( session_id, building_id, trade_id ) - -Report a trade that you think is abusing the trade system. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 trade_id - -The unique id of the trade. - - - - -=cut diff --git a/docs/MetalJunkArches.pod b/docs/MetalJunkArches.pod deleted file mode 100644 index 43fb4908..00000000 --- a/docs/MetalJunkArches.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Metal Junk Arches Methods - -Metal Junk Arches is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Mine.pod b/docs/Mine.pod deleted file mode 100644 index 6fa82a5d..00000000 --- a/docs/Mine.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Mine Methods - -Mine is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/MiningMinistry.pod b/docs/MiningMinistry.pod deleted file mode 100644 index 899df85b..00000000 --- a/docs/MiningMinistry.pod +++ /dev/null @@ -1,179 +0,0 @@ -=head1 Mining Ministry Methods - -Mining Ministry is accessible via the URL C. - -The Mining Ministry controls mining platform ships for harvesting the resources of asteroids. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view_platforms ( session_id, building_id ) - -Returns a list of the mining platforms currently controlled by this ministry. - - { - "status" : { ... }, - "max_platforms" : 1, - "platforms" : [ - { - "id" : "id-goes-here", - "asteroid" : { - "id" : "id-goes-here", - "name" : "Kuiper", - "x" : 0, - "y" : -444, - "image" : "a1-5", - ... - }, - "rutile_hour" : 10, - "chromite_hour" : 10, - "chalcopyrite_hour" : 10, - "galena_hour" : 10, - "gold_hour" : 10, - "uraninite_hour" : 10, - "bauxite_hour" : 10, - "goethite_hour" : 10, - "halite_hour" : 10, - "gypsum_hour" : 10, - "trona_hour" : 10, - "kerogen_hour" : 10, - "methane_hour" : 10, - "anthracite_hour" : 10, - "sulfur_hour" : 10, - "zircon_hour" : 10, - "monazite_hour" : 10, - "fluorite_hour" : 10, - "beryl_hour" : 10, - "magnetite_hour" : 10, - "shipping_capacity" : 51 - }, - ... - ] - } - -The C number is a percent which gives you an indication of your production vs shipping efficiency. If it's a -1 then you have no ships servicing the platforms. If it's at 0, then it means you have ships but no production. If it's 1 to 99 then you've got more shipping capacity than production. If it's at 100 then everything is in harmony. And if it's greater than 100 then you need to add ships because you're producing more than your ships can handle. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the mining ministry. - - - -=head2 view_ships ( session_id, building_id ) - -Shows you the ships that are working in the mining fleet, and available to work in the mining fleet. - - { - "ships" : [ - { - "name" : "CS4", - "id" : "id-goes-here", - "task" : "Mining", - "speed" : 350, - "hold_size" : 5600 - }, - ... - ], - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the mining ministry. - - - -=head2 add_cargo_ship_to_fleet ( session_id, building_id, ship_id ) - -Take a cargo ship from the space port and add it to the mining fleet. - - { - "status" : { ... } - } - -Throws 1009. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the mining ministry. - -=head3 ship_id - -The unique id of the ship you want to add to the fleet. - - -=head2 remove_cargo_ship_from_fleet ( session_id, building_id, ship_id ) - -Tell one of the cargo ships in the mining fleet to come home and park at the space port. - - { - "status" : { ... } - } - -Throws 1009. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the mining ministry. - -=head3 ship_id - -The unique id of the ship you want to add. - - - - - -=head2 abandon_platform ( session_id, building_id, platform_id ) - -Close down an existing mining platform. - - { - "status" : { ... } - } - -Throws 1002. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the mining ministry. - -=head3 platform_id - -The unique id of the platform you wish to abandon. - - - -=head2 mass_abandon_platform ( session_id, building_id ) - -Destroy all platforms. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id for the mining ministry. - - -=cut diff --git a/docs/MissionCommand.pod b/docs/MissionCommand.pod deleted file mode 100644 index 8540af9d..00000000 --- a/docs/MissionCommand.pod +++ /dev/null @@ -1,88 +0,0 @@ -=head1 Mission Command Methods - -Mission Command is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 get_missions ( session_id, building_id ) - -Returns a list of missions that you are eligible to complete in this zone. - - { - "status" : { ... }, - "missions" : [ - { - "id" : "id-goes-here", - "max_university_level" : 12, - "date_posted" : "01 31 2010 13:09:05 +0600", - "name" : "The Big Mission", - "description" : "Do the big thing and make it go.", - "objectives" : [ - "1500 apple", - "Kill a spy", - "Destroy a ship" - ], - "rewards" : [ - "1 essentia" - ] - }, - ... - ] - } - -B This is not the complete list of missions in the zone. You cannot complete missions you've already completed, nor can you complete missions that are registered as being below your university level. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id for the mission command building. - - - -=head2 complete_mission ( session_id, building_id, mission_id ) - -Completes a mission. Will be rejected if you do not have all the objectives met. If you have met the objectives, then the rewards will be distributed to you. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id for the mission command building. - -=head3 mission_id - -The unique id of the mission you'd like to complete. - - - -=head2 skip_mission ( session_id, building_id, mission_id ) - -Skips a mission. This mission won't show up on the list of missions for this user for 30 days. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id for the mission command building. - -=head3 mission_id - -The unique id of the mission you'd like to skip. - - -=cut diff --git a/docs/Modules.pod b/docs/Modules.pod deleted file mode 100644 index 897057f2..00000000 --- a/docs/Modules.pod +++ /dev/null @@ -1,33 +0,0 @@ -=head1 Modules vs Buildings - -Modules are special types of L that can only be built on a space station. - -Modules produce no resources, and therefore may be built to consume resources beyond your production levels. - -Modules can only be built, repaired, upgraded, downgraded, and demolished via acts of L. Therefore modules don't inherit the C, C, C, C, and C methods from L. - -=head1 Module Types - -Below is a list of the different types of structures that can be built on space stations in Lacuna. - -=over - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=item L - -=back - -=cut diff --git a/docs/MunitionsLab.pod b/docs/MunitionsLab.pod deleted file mode 100644 index 1c0c4193..00000000 --- a/docs/MunitionsLab.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Munitions Lab Methods - -Munitions Lab is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/NaturalSpring.pod b/docs/NaturalSpring.pod deleted file mode 100644 index 294fbc75..00000000 --- a/docs/NaturalSpring.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 NaturalSpring Methods - -Natural Spring is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Network19.pod b/docs/Network19.pod deleted file mode 100644 index 85bb173a..00000000 --- a/docs/Network19.pod +++ /dev/null @@ -1,69 +0,0 @@ -=head1 Network19 Methods - -Network 19 Affiliate is accessible via the URL C. - -Network 19 is the news network covering the Expanse. Here you can learn all kinds of things about what's happening around you, without even leaving your planet. Every two levels you'll receive news from additional zones around you, up to 7 total zones. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view (session_id, building_id) - - { - "status" : { ... }, - "building" : { ... }, - "restrict_coverage" : 1 # see restrict_coverage() - } - - -=head2 restrict_coverage ( session_id, building_id, onoff ) - -You can enact or disband a policy to restrict what Network 19 covers about your planet. Restricting coverage does make your citizens unhappy. - - { - "status" : { ... } - } - -Throws 1009. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this Network 19 Affiliate. - -=head3 onoff - -A boolean indicating whether or not you have enacted a policy to restrict coverage. 1 to restrict, 0 to not restrict. - - -=head2 view_news ( session_id, building_id ) - -Get the top 100 headlines from your region of space (called a zone). It also returns a list of RSS feeds that can be used outside the game to see the same news in a given zone. - - { - "news" : [ - { - "headline" : "HCorp founded a new colony on Rigel 4.", - "date" : "01 31 2010 13:09:05 +0600" - }, - ... - ], - "feeds" : { - "0|0|0" : 'http://feeds.game.lacunaexpanse.com/78d5e7b2-b8d7-317c-b244-3f774264be57.rss' - }, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Network 19 Affiliate. - - - -=cut diff --git a/docs/Observatory.pod b/docs/Observatory.pod deleted file mode 100644 index 2fdcfde7..00000000 --- a/docs/Observatory.pod +++ /dev/null @@ -1,93 +0,0 @@ -=head1 Observatory Methods - -Observatory is accessible via the URL C. - -The observatory controls stellar probes. - -The list of methods below represents changes and additions to the methods that all L share. - - - -=head2 get_probed_stars ( session_id, building_id, [ page_number ] ) - -Returns a list of the stars that have been probed by this planet. - - { - "status" : { ... }, - "stars" : [ - "id" : "id-goes-here", - "color" : "yellow", - "name" : "Sol", - "x" : 17, - "y" : 4, - "z" : -3, - "bodies" : [ - { See get_status() in Body }, - ... - ] - ], - "star_count" : 37, - "max_probes" : 90, - "travelling" : 2 - } - - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id for the observatory. - -=head3 page_number. - -An integer representing which set of probes to return. Defaults to 1. Each page has up to 25 probes. - - - -=head2 abandon_probe ( session_id, building_id, star_id ) - -The probe is deactivated, and allowed to burn up in the star. - - { - "status" : { ... } - } - -Throws 1002, 1010. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id for the observatory. - -=head3 star_id - -The unique id of the star the probe is attached to. - - - -=head2 abandon_all_probes ( session_id, building_id ) - -All probes controlled by this observatory are deactivated, -and allowed to burn up in the stars. - - { - "status" : { ... } - } - -Throws 1010. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id for the observatory. - - -=cut diff --git a/docs/OperaHouse.pod b/docs/OperaHouse.pod deleted file mode 100644 index 4b34e19a..00000000 --- a/docs/OperaHouse.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Opera House Methods - -Opera House is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/OracleOfAnid.pod b/docs/OracleOfAnid.pod deleted file mode 100644 index 638e5358..00000000 --- a/docs/OracleOfAnid.pod +++ /dev/null @@ -1,94 +0,0 @@ -=head1 Oracle of Anid Methods - -Oracle of Anid is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - - -=head2 get_star (session_id, building_id, star_id) - -Retrieves info on a single star. Works like L except that you can see the bodies even if there is no probe there. Therefore the same displays that you would have for the star and these bodies in the star map should work from this interface. Send a scow to a star, attack a player, send a mining platform, etc. - -There is a range to the Oracle based upon it's level. A 10 map unit radius per level. A 1009 exception will be thrown if you request a star that its outside that range. - -B to look up the id of a star by name.> - - - { - "star" : { - "name" : "Sol", - "color" : "yellow", - "x" : -41, - "y" : 27, - "bodies" : [ - { - same data as get_status() on /body - }, - ... - ] - } - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Oracle. - -=head3 star_id - -The unique id of the star. - - -=head2 get_probed_stars - -Returns all stars that are within distance of the Oracle - -Uses named arguments call - - { - "session_id" : "session-goes-here", - "building_id" : "building-id-goes-here", - "page_number" : 1, - } - -=head3 session_id (required) - -The session ID - -=head3 building_id (required) - -The ID of the Oracle building - -=head3 page_number (optional) - -The page number of the results, defaults to page 1 where each page contains B records. - -=head3 page_size (optional) - -Defaults to a page size of 25, can have any value from 1 to 200 - -=head3 RESPONSE - - { - "status" : { ... }, - "stars" : [ - "id" : "id-goes-here", - "color" : "yellow", - "name" : "Sol", - "x" : 17, - "y" : 4, - "z" : -3, - "bodies" : [ - { See get_status() in Body }, - ... - ] - , - "star_count" : 5, - "max_distance" : 10, - } - -=cut diff --git a/docs/OreRefinery.pod b/docs/OreRefinery.pod deleted file mode 100644 index fc4fa175..00000000 --- a/docs/OreRefinery.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Ore Refinery Methods - -Ore Refinery is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/OreStorage.pod b/docs/OreStorage.pod deleted file mode 100644 index a69879c4..00000000 --- a/docs/OreStorage.pod +++ /dev/null @@ -1,49 +0,0 @@ -=head1 Ore Storage Methods - -Ore Storage Tanks is accessible via the URL C. - -Ore Storage Tanks increase the amount of ore you can store on your planet. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - -This method is extended to include details about what kinds of ore are stored. - - { - "building" : { ... }, - "status" : { ... }, - "ore_stored" : { - "bauxite" : 0, - "gold" : 47, - "trona" : 301, - ... - } - } - - -=head2 dump ( session_id, building_id, type, amount ) - -Converts ore into waste. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the building. - -=head3 type - -Choose a type of ore convert into waste. (gold, bauxite, galena, etc) - -=head3 amount - -An integer representing the amount to dump. - -=cut \ No newline at end of file diff --git a/docs/Oversight.pod b/docs/Oversight.pod deleted file mode 100644 index 4af476c3..00000000 --- a/docs/Oversight.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Oversight Ministry Methods - -The Oversight Ministry is accessible via the URL C. It is used to speed up the construction and upgrade of buildings through better project management. The time cost of all buildings is reduced by 1% per level of the Oversight Ministry. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Pancake.pod b/docs/Pancake.pod deleted file mode 100644 index 4d9bd813..00000000 --- a/docs/Pancake.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Pancake Methods - -Pancake is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/PantheonOfHagness.pod b/docs/PantheonOfHagness.pod deleted file mode 100644 index b4e69ac1..00000000 --- a/docs/PantheonOfHagness.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Pantheon of Hagness Methods - -Pantheon of Hagness is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Park.pod b/docs/Park.pod deleted file mode 100644 index 05c2beaf..00000000 --- a/docs/Park.pod +++ /dev/null @@ -1,68 +0,0 @@ -=head1 Park Methods - -Park is accessible via the URL C. - -Parks are highly useful because they generate happiness for your planet. Just being able to use the park makes your citizens happy, but you can also throw parties for them, which will generate lots of happiness at the end of the party. - -The list of methods below represents changes and additions to the methods that all L share. - - - -=head2 view ( session_id, building_id ) - -This method is changed from the default because it adds a C element to the output. - - { - "building" : { ... }, - "status" : { ... }, - "party" : { - "seconds_remaining" : 397, - "happiness" : 10000, - "can_throw" : 0 - } - } - -If there's an ongoing party you'll be able to see how long it has left. And if there's not a party it will let you know whether you have the resources to throw one. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the park. - - - -=head2 throw_a_party ( session_id, building_id ) - -Initiates a party. It will cost you 10,000 food, and the party will last for a day. For 10,000 food you'll get 3,000 happiness. For each type of food available in quantities of 500 or more, you'll get a multiplier added to that. So if you have 4 types of food, you'll get 12,000 happiness. In addition, you get a 0.3 to your multiplier for each level of park that you have. Therefore a level 10 park is the same as adding three extra foods to your party! - -Returns C. - -Throws 1002, 1006, 1010, and 1011. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the park. - - -=head2 subsidize_party ( session_id, building_id ) - -Will spend 2 essentia to complete the current party immediately. Returns C. - -Throws 1011. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Park. - -=cut diff --git a/docs/Parliament.pod b/docs/Parliament.pod deleted file mode 100644 index 30ab72a5..00000000 --- a/docs/Parliament.pod +++ /dev/null @@ -1,974 +0,0 @@ -=head1 Parliament Methods - -Parliament is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - - -=head2 view_laws (session_id, body_id ) - -While still usable, replaced by a body call instead of via the station. See Body for details. - -=head3 session_id - -A session id. - -=head3 body_id - -The unique id of the space station. - - - -=head2 view_propositions (session_id, building_id ) - -Returns a list of the pending propositions. - - { - "status" : { ... }, - "propositions" : [ - { - "id" : "id-goes-here", - "name" : "Rename Station", - "description" : "Rename the station from 'Bri Prui 7' to 'Deep Space 1'.", - "votes_needed" : 7, - "votes_yes" : 1, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - }, - "my_vote" : 0 # not present if they haven't voted - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - - - - -=head2 view_taxes_collected (session_id, building_id ) - -Returns a list of the empires that have paid taxes and how much has been paid for the past seven days. - -Within the taxes_collected list you will find the id and name of the empire that paid taxes, a list of payments for today (element 0) and the previous six days as well as the total of those seven days payments. - - { - "status" : { ... }, - "taxes_collected" : [ - { - "id" : "id-goes-here", - "name" : "Klingons", - "paid" : [ 0, 1000, 0, 0, 1500, 500, 500 ], - "total" : 3500, - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - - - - -=head2 get_stars_in_jurisdiction (session_id, building_id ) - -Returns a list of the stars in the jurisdiction of this space station. - - { - "status" : { ... }, - "stars" : [ - { - "name" : "Sol", - "color" : "yellow", - "x" : -41, - "y" : 27, - "station" : { # only shows up if this star is under the influence of a space station - "id" : "id-goes-here", - "x" : 143, - "y" : -27, - "name" : "The Death Star" - }, - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - - - -=head2 get_bodies_for_star_in_jurisdiction (session_id, building_id, star_id ) - -Returns a list of the bodies for a star in the jurisdiction of the space station. - - { - "status" : { ... }, - "bodies" : [ - { - same data as get_status() on /body - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 star_id - -The unique id of a star in jurisdiction. See c. - - - - -=head2 get_mining_platforms_for_asteroid_in_jurisdiction (session_id, building_id, asteroid_id ) - -Returns a list of the platforms for an asteroid in the jurisdiction of the space station. - - { - "status" : { ... }, - "platforms" : [ - { - "id" : "id-goes-here", - "empire" : { - "id" : "id-goes-here", - "name" : "Klingons" - } - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 asteroid_id - -The unique id of an asteroid in jurisdiction. See c. - - - - - -=head2 cast_vote ( session_id, building_id, proposition_id, vote ) - -Casts a vote for or against a proposition. Cannot be voted on using a sitter password. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Rename Station", - "description" : "Rename the station from 'Bri Prui 7' to 'Deep Space 1'.", - "votes_needed" : 7, - "votes_yes" : 2, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - }, - "my_vote" : 0 # not present if they haven't voted - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 proposition_id - -The id of the propostion your casting this vote for or against. See C for a list. - -=head3 vote - -A boolean indicating which way you wish to vote. 1 for yes. 0 for no. Default is 0. - - - -=head1 Proposition Methods - -The following methods propose laws or actions to be taken by the station on behalf of Parliament. There are many propositions that are implied, such as installing a new module or renaming the station. These propositions, must be explicitly declared through parliament by calling these methods. - - -=head2 propose_writ ( session_id, building_id, title, description ) - -Proproses an unenforceable law. Only works with Parliament 4 and higher. - -B See the C section of C. These should be included as selectable options as a way to start the writeup of a title and description for a writ. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Censure of Jamie Vrbsky", - "description" : "Jamie Vrbsky is bad at playing Lacuna!", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 title - -The name of the law. - -=head3 description - -A detailed description of what the law intends to promote or prohibit. Same rules as an L message body apply here. - - - -=head2 propose_repeal_law ( session_id, building_id, law_id ) - -Repeal an existing law. Usable at parliament level 5. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Repeal Writ of Censure", - "description" : "Repeal this law: Jamie Vrbsky is bad at playing Lacuna!", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 law_id - -The id of a law to repeal. - - - - - - -=head2 propose_transfer_station_ownership ( session_id, building_id, to_empire_id ) - -Transfer the ownership of the station to another member of the alliance. Only works with Parliament 6 and higher. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Transfer Station", - "description" : "Transfer ownership of Deep Space 9 from The Federation to the Klingon Empire.", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 to_empire_id - -The id of an empire within the alliance that wants control over the station. - - - -=head2 propose_rename_star ( session_id, building_id, star_id, name ) - -Rename a star. Usable at parliament level 8. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Rename Sol", - "description" : "Rename Sol to Sun.", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 star_id - -The id of a star to rename. - -=head3 name - -The new name of the star. - - - -=head2 propose_broadcast_on_network19 ( session_id, building_id, message ) - -Broadcast any message you like on Network 19. Usable at parliament level 9. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Network 19 Broadcast", - "description" : "Broadcast the following message on Network 19: Plant your corn early next season.", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 message - -A 140 character string that cannot contain special characters or profanity. - - - - - -=head2 propose_induct_member ( session_id, building_id, empire_id, [ message ] ) - -Induct a new member into the alliance. Once passed, an alliance invitation will be sent. Only works with Parliament 10 and higher. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Induct Member", - "description" : "Induct The Romulans as a new member of The Federation.", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 empire_id - -The unique id of an empire proposed for membership in the alliance. - -=head3 message - -Optional. A personalized welcome message that will be included in the invitation. - - - - -=head2 propose_expel_member ( session_id, building_id, empire_id, [ message ] ) - -Expel a member from the alliance. Once passed, the member will be removed from the alliance. Only works with Parliament 10 and higher. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Expel Member", - "description" : "Expel The Romulans from The Federation.", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 empire_id - -The unique id of an empire proposed for removal from the alliance. - -=head3 message - -An optional message about why you're removing them from the alliance. Cannot contain restricted characters or profanity. - - - - -=head2 propose_elect_new_leader ( session_id, building_id, to_empire_id ) - -Elect a new leader of the alliance. Only works with Parliament 11 and higher. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Elect New Leader", - "description" : "Elect The Klingon Empire as the new leader of The Federation.", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Romulus", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 to_empire_id - -The unique id of an empire proposed as the new leader of the alliance. The empire must already be a member of the alliance. - - - - -=head2 propose_rename_asteroid ( session_id, building_id, asteroid_id, name ) - -Rename any asteroid in the station's jurisdiction. Usable at parliament level 12. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Rename Bebox 3", - "description" : "Rename the asteroid Bebox 3 to Big Rock.", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 asteroid_id - -The unique id of an asteroid in the station's jurisdiction to rename. - -=head3 name - -A 30 chararacter string without profanity or special characters. - - - - - -=head2 propose_rename_uninhabited ( session_id, building_id, planet_id, name ) - -Rename any uninhabited planet in the station's jurisdiction. Usable at parliament level 17. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Rename Bebox 4", - "description" : "Rename the planet Bebox 4 to Blue Orb.", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 planet_id - -The unique id of an uninhabited planet in the station's jurisdiction to rename. - -=head3 name - -A 30 chararacter string without profanity or special characters. - - - - - -=head2 propose_members_only_mining_rights ( session_id, building_id ) - -If passed, only members of the alliance would be able to set up new mining platforms on asteroids in this station's jurisdiction. Usable at parliament level 13. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Members Only Mining Rights", - "description" : "Only members of The Federation of Planets should be allowed to mine asteroids in the jurisdiction of this station.", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - - - - -=head2 propose_evict_mining_platform ( session_id, building_id, platform_id ) - -Destroys a mining platform on an asteroid. Usable at parliament level 14. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Evict Bjoran Mining Platform", - "description" : "Evict a mining platform on Big Rock that is controlled by Bjoran.", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 platform_id - -The unique id of a mining platform. See C. - - - - -=head2 propose_taxation ( session_id, building_id, taxes ) - -Introduces an unenforceable law that imposes a tax on all empires under the jurisdiction of the space station. Usable at parliament level 15. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Tax of 5000 resources per day", - "description" : "Implement a tax of 5000 resources per day for all empires in the jurisdiction of this station", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 taxes - -The amount of taxes to impose per day. - - - - - -=head2 propose_foreign_aid ( session_id, building_id, planet_id, resources ) - -Sends a foreign aid package to a planet in the jurisdiction of the station. The foreign aid is sent via supply pod. Usable at parliament level 16. - -The foreign aid package costs double whatever aid is being sent. The first half to cover the cost of the supply pod, the second half is the resources being sent. Just like with normal supply pods, no more than one per day. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Foreign Aid for Kronos", - "description" : "Send a foreign aid package of 10000 resources to Kronos (total cost 20000 resources).", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 planet_id - -The unique id of the planet to receive the foreign aid package. - -=head3 resources - -The amount of resources to send to the receiving planet. - - - - -=head2 propose_members_only_colonization ( session_id, building_id ) - -If passed, only members of the alliance would be able to set up new colonies on planets in this station's jurisdiction. Usable at parliament level 18. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Members Only Colonization", - "description" : "Only members of The Federation of Planets should be allowed to colonize planets in the jurisdiction of this station.", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head2 propose_members_only_excavation ( session_id, building_id ) - -If passed, only members of the alliance would be able to set up new colonies on planets in this station's jurisdiction. Usable at parliament level 18. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Members Only Excavation", - "description" : "Only members of The Federation of Planets should be allowed to excavate planets in the jurisdiction of this station.", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head2 propose_members_only_stations ( session_id, building_id ) - -If passed, only members of the alliance would be able to set up new stations in this station's jurisdiction. Usable at parliament level 18. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Members Only Stations", - "description" : "Only members of The Federation of Planets should be allowed to setup new stations in the jurisdiction of this station.", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - - -=head2 propose_neutralize_bhg ( session_id, building_id ) - -If passed, Black Hole Generators will not be able to be used on or from systems in the jurisdiction of this station by members outside the alliance. Usable at parliament level 23. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "BHG Neutralized", - "description" : "Black Hole Generators will not function in the jurisdiction of this station.", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - - -=head2 propose_fire_bfg ( session_id, building_id, body_id, reason ) - -Fires the BFG equipped on all space stations at a planet of Parliament's choosing as long as it is within the jurisdiction of the station. Can only be called by Parliament level 25. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "Fire BFG", - "description" : "Fire BFG at Alderaan from The Death Star. Reason cited: The princess isn't talking!", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Admiral Motti", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 body_id - -A planet to fire at. See C for details. - -=head3 reason - -An explict reason why the BFG should be fired upon the target. Same rules as an L message body apply here. - -=head2 allow_bhg_by_alliance ( session_id, building_id, alliance_id ) - -If passed, Black Hole Generators of members of another alliance are allowed to use their BHGs in this stations jurisdiction. Will also ignore Members Only Colonies & Stations. Usable at parliament level 28. - - { - "status" : { ... }, - "proposition" : { - "id" : "id-goes-here", - "name" : "BHG Passport", - "description" : "Black Hole Generators of alliance Star Fleet are allowed to be used in the jurisdiction of this station.", - "votes_needed" : 7, - "votes_yes" : 0, - "votes_no" : 0, - "status" : "Pending", - "date_ends" : "01 31 2010 13:09:05 +0600", - "proposed_by" : { - "id" : "id-goes-here", - "name" : "Klingons", - } - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the parliament. - -=head3 alliance_id - -The unique id of the alliance to be allowed to use their BHGs. - -=cut diff --git a/docs/Payments.pod b/docs/Payments.pod deleted file mode 100644 index ce39a50b..00000000 --- a/docs/Payments.pod +++ /dev/null @@ -1,15 +0,0 @@ -=head1 Payments - -The payments system allows users to purchase essentia. There's not much for an app developer to do here execept to hand off to the payment system. Usually this involves opening a window for them. - -B This API is B JSON-RPC based. - -To initiate the payments process you simply need to open the following url: - - https://servername.lacunaexpanse.com/pay?session_id=xxxxxxxxxxxxxxxx - -The payment system will handle the rest. - -B The parameters in the above URL can be passed via GET or POST, it doesn't matter which. - -=cut diff --git a/docs/Pie.pod b/docs/Pie.pod deleted file mode 100644 index cadd6dee..00000000 --- a/docs/Pie.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Pie Methods - -Pie is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/PilotTraining.pod b/docs/PilotTraining.pod deleted file mode 100644 index 9b69672a..00000000 --- a/docs/PilotTraining.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Pilot Training Facility Methods - -Pilot Training Facility is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/PlanetaryCommand.pod b/docs/PlanetaryCommand.pod deleted file mode 100644 index baef3886..00000000 --- a/docs/PlanetaryCommand.pod +++ /dev/null @@ -1,150 +0,0 @@ -=head1 Planetary Command Methods - -Planetary Command Center is accessible via the URL C. - -The Planetary Command Center (PCC), or just Command, is the hub of your empire on a planet. It gives you the resources and storage you need to get a foothold on a planet. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - -Command extends the view method to include a C section. - - { - "building" : { ... }, - "status" : { ... }, - "next_colony_cost" : 750000, # the amount of happiness required to settle your next colony - "food" : { - "algae_hour" : 24, - "algae_stored" :1322, - "bean_hour" : 1, - "bean_stored" :42, - .. - }, - "ore" : { - "anthracite_hour" : 333, - "anthracite_stored" : 34444, - "bauxite_hour" : 22, - "bauxite_stored" : 1235, - ... - }, - "pod_delay" : 70515, # seconds between supply pod sendings - "planet" : { - "id" : "id-goes-here", - "x" : -4, - "y" : 10, - "z" : 6, - "star_id" : "id-goes-here", - "orbit" : 3, - "type" : "habitable planet", - "name" : "Earth", - "image" : "p13", - "size" : 67, - "water" : 900, - "ore" : { - "gold" : 3399, - "bauxite" : 4000, - ... - }, - "building_count" : 7, - "population" : 470000, - "happiness" : 3939, - "happiness_hour" : 25, - "food_stored" : 33329, - "food_capacity" : 40000, - "food_hour" : 229, - "energy_stored" : 39931, - "energy_capacity" : 43000, - "energy_hour" : 391, - "ore_hour" 284, - "ore_capacity" 35000, - "ore_stored" 1901, - "waste_hour" : 933, - "waste_stored" : 9933, - "waste_capacity" : 13000, - "water_stored" : 9929, - "water_hour" : 295, - "water_capacity" : 51050 - } - } - - -=head2 view_plans ( session_id, building_id ) - -Returns a list of all the plans you've collected through various means. - - { - "status" : { ... }, - "plans" : [ - { - "quantity" : 23, - "name" : "Malcud Fungus Farm", - "level" : 1, - "extra_build_level" : 5 - }, - ... - ] - } - -If the C is 1, and there is an C, that means that the building will be built up to 1 plus the extra build level when complete. So in the example above, it would be a level 6 directly after being built. - - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the PCC. - - -=head2 view_incoming_supply_chains ( session_id, building_id ) - -Returns a list of all incoming supply chains feeding this planet. - - { - "status" : { ... }, - "supply_chains" : [ - { - "id" : "id-goes-here", - "from_body" : { - "id" : "id-goes-here", - "name" : "Mars", - "x" : 0, - "y" : -123, - "image" : "station" - }, - "resource_hour" : 10000000, - "resource_type" : 'water', - "percent_transferred" : 95, - "stalled" : 0, - }, - ... - ] - } - - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the PCC. - -=head2 subsidize_pod_cooldown ( session_id, building_id ) - -Will spend 2 essentia to allow a new pod to be sent immediately. Returns C. - -Throws 1011. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Planetary Command Center. - - -=cut diff --git a/docs/PoliceStation.pod b/docs/PoliceStation.pod deleted file mode 100644 index 1bf88f9b..00000000 --- a/docs/PoliceStation.pod +++ /dev/null @@ -1,277 +0,0 @@ -=head1 Police Station Methods - -Police Station is accessible via the URL C. - -Captured spies are detained at the Police Station. - -The list of methods below represents changes and additions to the methods that all L share. - - -=head2 view_prisoners ( session_id, building_id, [ page_number ]) - -Displays a list of the spies that have been captured. - - { - "status" : { ... }, - "prisoners" : [ - { - "id" : "id-goes-here", - "name" : "James Bond", - "level" : "20", - "task" : "Captured" or "Prisoner Transport", - "sentence_expires" : "01 31 2010 13:09:05 +0600" - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Police Station. - -=head3 page_number - -Defaults to 1. Each page contains 25 spies. - - - -=head2 execute_prisoner ( session_id, building_id, prisoner_id ) - -You may choose to execute a prisoner rather than letting him serve his sentence and be released. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Police Station. - -=head3 prisoner_id - -The unique id of a prisoner you have captured. See C for details. - - - -=head2 release_prisoner ( session_id, building_id, prisoner_id ) - -You may choose to release a prisoner by calling this method. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Police Station. - -=head3 prisoner_id - -The unique id of a prisoner you have captured. See C for details. - - - - -=head2 view_foreign_spies ( session_id, building_id, [ page_number ]) - -Displays a list of the spies that are on your planet, and have a level lower than your Police Station. - - { - "status" : { ... }, - "spies" : [ - { - "name" : "James Bond", - "level" : 11, - "task" : "Appropriate Technology", - "next_mission" : "01 31 2010 13:09:05 +0600" - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Police Station. - -=head3 page_number - -Defaults to 1. Each page contains 25 spies. - - - - -=head2 view_foreign_ships ( session_id, building_id, page_number ) - -Shows you all the foreign ships that are incoming. However, the list is filtered by the stealth of the ship vs the level of the Police Station. The formula is: - - 525 * Police Station Level >= Ship Stealth - -If your Police Station exceeds the Ship's Stealth, then you'll see it incoming. Otherwise you won't. - - { - "ships" : [ - { - "id" : "id-goes-here", - "name" : "CS3", - "type_human" : "Cargo Ship", - "type" : "cargo_ship", - "date_arrives" : "02 01 2010 10:08:33 +0600", - "from" : { - "id" : "id-goes-here", - "name" : "Earth", - "empire" : { - "id" : "id-goes-here", - "name" : "Earthlings" - } - } - }, - ... - ], - "number_of_ships" : 13, - "status" : { ... } - } - -The C block is only included if - - 675 * Police Station Level >= Ship Stealth - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the space port. - -=head3 page_number - -Defaults to page 1. Shows 25 at a time. - - - - -=head2 view_ships_travelling ( session_id, building_id, [ page_number ]) - -Returns a list of the ships that are travelling to or from this planet. - -B All inbound/outbound ships are shown regardless of which space port they will eventually land at. - - { - "status" : { ... }, - "number_of_ships_travelling" : 30, - "ships_travelling" : [ - { - "id" : "id-goes-here", - "type" : "probe", - "type_human" : "Probe", - "date_arrives" : "01 31 2010 13:09:05 +0600", - "from" : { - "id" : "id-goes-here", - "type" : "body", - "name" : "Earth", - }, - "to" : { - "id" : "id-goes-here", - "type" : "star", - "name" : "Sol", - } - }, - ... - ] - } - - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the space port. - -=head3 page_number - -Defaults to 1. An integer representing which page of ships travelling to view. Each page shows 25 ships. - - - -=head2 view_ships_orbiting ( session_id, building_id, [ page_number ]) - -Shows you all the foreign ships that are orbiting this planet. However, the list is filtered by the stealth of the ship vs the level of the Police Station. The formula is: - - 525 * Police Station Level >= Ship Stealth - -If your Police Station exceeds the Ship's Stealth, then you'll see it orbiting. Otherwise you won't. - - { - "ships" : [ - { - "id" : "id-goes-here", - "name" : "SS3", - "type" : "spy_shuttle", - "type_human" : "Spy Shuttle", - "date_arrived" : "02 01 2010 10:08:33 +0600", - "from" : { - "id" : "id-goes-here", - "name" : "Mars", - "empire" : { - "id" : "id-goes-here", - "name" : "Martians" - } - } - }, - { - "id" : "id-goes-here", - "name" : "F3", - "type" : "fighter", - "type_human" : "Fighter", - "from" : { - "id" : "id-goes-here", - "name" : "Earth", - "empire" : { - "id" : "id-goes-here", - "name" : "Earthlings" - } - } - }, - ... - ], - "number_of_ships" : 13, - "status" : { ... } - } - -The C block is only included if - - 675 * Police Station Level >= Ship Stealth - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the space port. - -=head3 page_number - -Defaults to page 1. Shows 25 at a time. - - - -=cut diff --git a/docs/PoliticsTraining.pod b/docs/PoliticsTraining.pod deleted file mode 100644 index 236dc581..00000000 --- a/docs/PoliticsTraining.pod +++ /dev/null @@ -1,29 +0,0 @@ -=head1 PoliticsTraining Methods - -Politics Training Facility is accessible via the URL C. - -The Politics Training Facility is where you train your spies in the dark art of social engineering. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - - { - "status" : { ... }, - "building" : { ... }, - "spies" : { - "max_points" : 2600, - "points_per" : 45, - "in_training" : 4, - }, - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of your Politics Training Facility. - -=cut diff --git a/docs/Potato.pod b/docs/Potato.pod deleted file mode 100644 index fe4d0b73..00000000 --- a/docs/Potato.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Potato Methods - -Potato is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Propulsion.pod b/docs/Propulsion.pod deleted file mode 100644 index a93bd3dc..00000000 --- a/docs/Propulsion.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Propulsion Methods - -Propulsion is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/PyramidJunkSculpture.pod b/docs/PyramidJunkSculpture.pod deleted file mode 100644 index 1275fd6d..00000000 --- a/docs/PyramidJunkSculpture.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 PyramidJunkSculpture Methods - -Pyramid Junk Sculpture is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Ravine.pod b/docs/Ravine.pod deleted file mode 100644 index 1c99b85a..00000000 --- a/docs/Ravine.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Ravine Methods - -Ravine is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/RockyOutcrop.pod b/docs/RockyOutcrop.pod deleted file mode 100644 index 1d28f7ba..00000000 --- a/docs/RockyOutcrop.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Rocky Outcrop Methods - -Rocky Outcrop is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/SAW.pod b/docs/SAW.pod deleted file mode 100644 index 6a70731d..00000000 --- a/docs/SAW.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Shield Against Weapons Methods - -Shield Against Weapons is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Sand.pod b/docs/Sand.pod deleted file mode 100644 index 1e5b9d44..00000000 --- a/docs/Sand.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Sand Methods - -Sand is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Security.pod b/docs/Security.pod deleted file mode 100644 index 4290b231..00000000 --- a/docs/Security.pod +++ /dev/null @@ -1,122 +0,0 @@ -=head1 Security Methods - -Security Ministry is accessible via the URL C. - -Captured spies are detained at the security ministry. - -The list of methods below represents changes and additions to the methods that all L share. - - -=head2 view_prisoners ( session_id, building_id, [ page_number ]) - -Displays a list of the spies that have been captured. - - { - "status" : { ... }, - "prisoners" : [ - { - "id" : "id-goes-here", - "name" : "James Bond", - "level" : "20", - "task" : "Captured" or "Prisoner Transport", - "sentence_expires" : "01 31 2010 13:09:05 +0600" - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the security ministry. - -=head3 page_number - -Defaults to 1. Each page contains 25 spies. - - - -=head2 execute_prisoner ( session_id, building_id, prisoner_id ) - -You may choose to execute a prisoner rather than letting him serve his sentence and be released. However, that will cost you 10,000 times the prisoner's level in happiness from your planet. So a level 11 prisoner would cost you 110,000 happiness. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the security ministry. - -=head3 prisoner_id - -The unique id of a prisoner you have captured. See C for details. - - - -=head2 release_prisoner ( session_id, building_id, prisoner_id ) - -You may choose to release a prisoner by calling this method. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the security ministry. - -=head3 prisoner_id - -The unique id of a prisoner you have captured. See C for details. - - - - -=head2 view_foreign_spies ( session_id, building_id, [ page_number ]) - -Displays a list of the spies that are on your planet, and have a level lower than your security ministry. - - { - "status" : { ... }, - "spies" : [ - { - "name" : "James Bond", - "level" : 11, - "task" : "Appropriate Technology", - "next_mission" : "01 31 2010 13:09:05 +0600" - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the security ministry. - -=head3 page_number - -Defaults to 1. Each page contains 25 spies. - - - - - - - -=cut diff --git a/docs/Shake.pod b/docs/Shake.pod deleted file mode 100644 index adedb096..00000000 --- a/docs/Shake.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Shake Methods - -Shake is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Shipyard.pod b/docs/Shipyard.pod deleted file mode 100644 index 20452882..00000000 --- a/docs/Shipyard.pod +++ /dev/null @@ -1,266 +0,0 @@ -=head1 Ship Descriptions - -Ship descriptions are bulky, and are the same every time. As such we've created a file you can download to include ship descriptions in your client. You should cache this file once you've downloaded and only get it again if it has changed. - - https://servername.lacunaexpanse.com/resources.json - -=head1 Shipyard Methods - -Shipyard is accessible via the URL C. - -The shipyard is where you build ships. However, you'll need other building types to enable the different kinds of ships that are available. The higher the level of the shipyard, faster your ships will be built. - -The list of methods below represents changes and additions to the methods that all L share. - - -=head2 view_build_queue ( session_id, building_id, [page_number]) - -Retrieves what is already being built at this shipyard. - - { - "status" : { ... }, - "number_of_ships_building" : 30, - "cost_to_subsidize" : 30, - "ships_building" : [ - { - "id" : "1234", - "type" : "spy_pod", - "type_human" : "Spy Pod", - "date_completed" : "01 31 2010 13:09:05 +0600" - } - ... - ] - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this shipyard. - -=head3 page_number. - -Defaults to 1. An integer representing the page of data to view. There are 25 items per page. - - - -=head2 subsidize_build_queue ( session_id, building_id ) - -Will spend 1 essentia per ship to complete the current build queue immediately. Returns C. - -Throws 1011. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Shipyard. - - -=head2 subsidize_ship ( parameter_hash ) - -Will spend 1 essentia to complete the build of the specified ship. - -This accepts a hash of named arguments. - - { - "session_id" : 1234-123-123, - "building_id" : 4567, - "ship_id" : 88478, - } - -Throws 1011. - -=head3 session_id (required) - -A session id. - -=head3 building_id (required) - -The unique id of the Shipyard. - -=head3 ship_id (required) - -The unique id of the Ship, as returned in C - -=head3 RESPONSE - -Returns the same as C - -=head2 get_buildable ( session_id, building_id, [ tag ] ) - -Returns a list of buildable ships and their costs, and if they're not buildable, gives a reason why not in the form of an exception. - - { - "buildable" : { - "probe" : { - "can" : 1, # can it be built or not - "reason" : null, # if it can't an array ref will be here with the exception for why not - "cost" : { - "seconds" : 900, - "food" : 1100, - "water" : 1000, - "energy" : 1200, - "ore" : 1200, - "waste" : 100, - }, - attributes : { - "speed" : 1000, # 100 roughly equals 1 star in 1 hour - "hold_size" : 1000, - "max_occupants" : 2, - "combat" : 0, - "stealth" : 1500 - } - }, - ... - }, - "docks_available" : 7, # you can only build ships up to the number of docks you have available - "build_queue_max" : 60, # maximum queueable ships - "build_queue_used" : 3, # ships in queue for all shipyards - "status" : { ... }, - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the shipyard. - -=head3 tag - -An optional tag to limit the list of available ships to something shorter. If no tag is specified, then all ships will be displayed. - -=over - -=item Trade - -Ships that can be used to carry resources between colonies. - -=item Colonization - -Ships used to get more planets. - -=item Intelligence - -Ships that deal with spies or intelligence gathering. - -=item Exploration - -Ships that allow the user to go out and explore the Expanse. - -=item War - -Ships that are used to attack or defend. - -=item Mining - -Ships that are used to gather resources from space. - -=back - -=head2 build_ship ( session_id, building_id, type, [ quantity ] ) - -Adds ships to the build queue. Returns the same thing as C. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the shipyard. - -=head3 type - -A ship type. Get from C. - -=head3 quantity - -An optional quantity, if left blank it defaults to 1, otherwise specify the number -of ships to build up to a maximum of 600. You must have the shipyard capacity, the -space port capacity and the resources required to build the specified quantity of -ships. - -=head2 build_ships ( session_id, options ) - -Adds ships to build queues. Returns only the empire status. - -=head3 session_id - -A session id. - -=head3 options - -A hash of options. Keys are: - -=over 4 - -=item type - -A ship type. Get from C. - -=item quantity - -An optional quantity. If omitted, it defaults to 1, otherwise specify the -number of ships to build up to a maximum of 600. You must have the shipyard -capacity, space port capacity, and the resources required to build the -specified quantity of ships. For now, you must be able to build this quantity -as if it were all at the highest shipyard in your queue, which should only -be an issue if you're almost out of resources. - -=item body_id - -When selecting C shipyards, can simply provide the body_id to save -the extra RPC call to look for all shipyards and select one. At least one -of body_id and building_id must be provided. - -=item building_id - -Can be a single building ID of the shipyard, or an array of building IDs to -select which shipyards to use. All buildings must belong to the same body. -If the C is also set, all shipyards must be on that body. At least -one of body_id and building_id must be provided. - -=item autoselect - -The shipyard autoselect mode. By default, if this is not set, the mode -is to only use the shipyard(s) selected by building_id. - -Can be one of: - -=over 4 - -=item 1. - -C - -Selects all shipyards on the current body, whether that was from body_id or -building_id(s). - -=item 2. - -C - -Selects all shipyards on the current body, whose level is I -the building_id passed in. Cannot pass in multiple building_ids when -using this option. - -=item 3. - -C - -Selects all shipyards on the current body, whose level is I -the building_id passed in. Cannot pass in multiple building_ids when -using this option. - -=back - -=back - -=cut diff --git a/docs/Singularity.pod b/docs/Singularity.pod deleted file mode 100644 index cd58b23b..00000000 --- a/docs/Singularity.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Singularity Methods - -Singularity is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Soup.pod b/docs/Soup.pod deleted file mode 100644 index 47202a96..00000000 --- a/docs/Soup.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Soup Methods - -Soup is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/SpaceJunkPark.pod b/docs/SpaceJunkPark.pod deleted file mode 100644 index f0b52242..00000000 --- a/docs/SpaceJunkPark.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Space Junk Park Methods - -Space Junk Park is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/SpacePort.pod b/docs/SpacePort.pod deleted file mode 100644 index 7813d3ad..00000000 --- a/docs/SpacePort.pod +++ /dev/null @@ -1,1205 +0,0 @@ -=head1 Space Port Methods - -Space Port is accessible via the URL C. - -The Space Port is where all the ships you build will be docked once they have been built from the L. You can dock twice as many ships as the level of the Space Port. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - -This method is extended to include a list of docked ships. - - { - "building" : { ... }, - "status" : { ... }, - "max_ships" : 8, - "docks_available" : 4, - "docked_ships" : { - "probe" : 3, - "cargo_ship" : 0, - "spy_pod" : 1, - "colony_ship" : 0, - "terraforming_platform_ship": 0, - "gas_giant_settlement_platform_ship" : 0, - "mining_platform_ship" : 0, - "smuggler_ship" : 1, - "space_station" : 0, - } - } - - -=head2 view_all_ships ( session_id, building_id, [ paging, filter, sort ] ) - -Shows you all your ships whatever they are doing. - - { - "ships" : [ - { - "id" : "id-goes-here", - "name" : "CS3", - "type_human" : "Cargo Ship", - "type" : "cargo_ship", - "task" : "Travelling", - "speed" : "400", - "fleet_speed" : "0", - "stealth" : "0", - "hold_size" : "1200", - "berth_level" : "1", - "date_started" : "01 31 2010 13:09:05 +0600", - "date_available" : "02 01 2010 10:08:33 +0600", - "date_arrives" : "02 01 2010 10:08:33 +0600", - "can_recall" : "0", - "can_scuttle" : "1", - "from" : { - "id" : "id-goes-here", - "type" : "body", - "name" : "Earth" - }, - "to" : { - "id" : "id-goes-here", - "type" : "body", - "name" : "Mars" - } - }, - { - "id" : "id-goes-here", - "name" : "F13", - "type_human" : "Fighter", - "type" : "fighter", - "task" : "Defend", - "speed" : "2000", - "fleet_speed" : "0", - "stealth" : "0", - "hold_size" : "0", - "berth_level" : "1", - "date_started" : "01 31 2010 13:09:05 +0600", - "date_available" : "02 01 2010 10:08:33 +0600", - "date_arrives" : "02 01 2010 10:08:33 +0600", - "can_recall" : "0", - "can_scuttle" : "1", - "from" : { - "id" : "id-goes-here", - "type" : "body", - "name" : "Earth" - }, - "orbiting" : { - "id" : "id-goes-here", - "type" : "body", - "name" : "Mars", - "x" : 4, - "y" : -3 - } - - }, - ... - ], - "number_of_ships" : 13, - "status" : { ... } - } - -Travelling ships will have a from and to block. Defending fighters will have a from and orbiting block. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the space port. - -=head3 paging - -Optional. A hash reference that contains the paging criteria. Valid paging option keys include page_number, items_per page and no_paging. - -=head4 page_number - -Optional. An integer representing the page of ships to return. Defaults to 1. - -=head4 items_per_page - -Optional. An integer representing the number of items per page to return. Defaults to 25. - -=head4 no_paging - -Optional. If set to 1, all other paging options are ignored and all results will be retured. - - { "no_paging" : 1 } - - { "page_number" : 2, "items_per_page" : 30 } - -=head3 filter - -Optional. A hash reference that contains the filter criteria. Valid filter option keys include task, type and tag. - -=head4 task - -Optional. An array reference or string with the task(s) to filter on. Valid tasks include Building, Defend, Docked, Mining, Orbiting, Supply Chain, Travelling, Waiting on Trade, and Waste Chain - -=head4 type - -Optional. An array reference or string with the type(s) to filter on. Valid types are the existing ship types. - -=head4 tag - -Optional. An array reference or string with the tag(s) to filter on. Valid tags include Trade, Colonization, Intelligence, Exploration, War, and Mining. - -Note: Tags will be converted to types prior to filtering and any types that were passed will be replaced. - - { "task" : "Defend" } - - { "tag" : "Mining" } - - { "task" : "Docked", "type" : "freighter" } - - { "tag" : [ "Colonization", "Exploration" ], "task" : "Travelling" } - -=head3 sort - -Optional. A string with the column to sort on. Defaults to 'type'. (A second sort column, 'name', is added to your chosen sort column.) Valid columns to sort on include: combat, name, speed, stealth, task, and type. - - -=head2 view_foreign_ships ( session_id, building_id, page_number ) - -Shows you all the foreign ships that are incoming. However, the list is filtered by the stealth of the ship vs the level of the SpacePort. The formula is: - - 350 * SpacePort Level >= Ship Stealth - -If your SpacePort exceeds the Ship's Stealth, then you'll see it incoming. Otherwise you won't. - - { - "ships" : [ - { - "id" : "id-goes-here", - "name" : "CS3", - "type_human" : "Cargo Ship", - "type" : "cargo_ship", - "date_arrives" : "02 01 2010 10:08:33 +0600", - "can_recall" : "0", - "can_scuttle" : "0", - "from" : { - "id" : "id-goes-here", - "name" : "Earth", - "empire" : { - "id" : "id-goes-here", - "name" : "Earthlings" - } - } - }, - ... - ], - "number_of_ships" : 13, - "status" : { ... } - } - -The C block is only included if - - 450 * SpacePort Level >= Ship Stealth - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the space port. - -=head3 page_number - -Defaults to page 1. Shows 25 at a time. - -=head2 get_fleet_for ( session_id, from_body_id, target ) - -Provides a summary of ships that can be included in a fleet action - - { - "ships" : [ - { - "type" : "sweeper", - "type_human" : "Sweeper", - "speed" : 10166, - "stealth" : 10948, - "combat" : 33372, - "name" : "Sweepit", - "hold_size" : 0, - "quantity" : 103, - "estimated_travel_time" : "3654", - }, - { - "type" : "sweeper", - "type_human" : "Sweeper", - "speed" : 10166, - "stealth" : 10948, - "combat" : 25000, - "name" : "Swifer", - "hold_size" : 0, - "quantity" : 26, - "estimated_travel_time" : "3745", - }, - { - "type" : "surveyor", - "type_human" : "Surveyor", - "speed" : 9030, - "stealth" : 9030, - "combat" : 3220, - "name" : "Electric Eye", - "hold_size" : 0, - "quantity" : 24, - "estimated_travel_time" : "4123", - } - ... - ], - "status" : { ... } - } - -Ships are grouped according to type,speed,stealth and combat, the number of ships in each group is given. - -=head3 session_id - -A session id. - -=head3 from_body_id - -The unique id of the planet that should send the ships. - -=head3 target - -A hash reference that can contain one of five items to identify a star or body. - - { "body_name" : "Earth" } - - { "body_id" : "id-goes-here" } - - { "star_name" : "Sol" } - - { "star_id" : "id-goes-here" } - - { "x" : 4, "y" : -3 } - -=head4 body_name - -A string with the body's name. Case insensitive, but will throw an exception for misspelling. - -=head4 body_id - -The unique id of the body. - -=head4 star_name - -A string with the star's name. Case insensitive, but will throw an exception for misspelling. - -=head4 star_id - -The unique id of the star. - -=head4 x | y - -A set of x,y coordinates to locate the star or body. - - -=head2 get_ships_for ( session_id, from_body_id, target ) - -Provides a list of incoming ships and ships that are available to send to a specific target. Use with C. - - { - "incoming" : [ - { - "id" : "id-goes-here", - "name" : "P13", - "type_human" : "Probe", - "type" : "probe", - "task" : "Travelling", - "speed" : "1200", - "fleet_speed" : "0", - "stealth" : "0", - "hold_size" : "0", - "berth_level" : "1", - "date_started" : "01 31 2010 13:09:05 +0600", - "date_available" : "02 01 2010 10:08:33 +0600", - "date_arrives" : "02 01 2010 10:08:33 +0600", - "from" : { - "id" : "id-goes-here", - "type" : "body", - "name" : "Earth" - }, - "to" : { - "id" : "id-goes-here", - "type" : "star", - "name" : "Sol" - } - }, - ... - ], - "available" : [ - { - "id" : "id-goes-here", - "name" : "D13", - "type_human" : "Detonator", - "type" : "detonator", - "task" : "Docked", - "speed" : "700", - "fleet_speed" : "0", - "stealth" : "0", - "hold_size" : "0", - "berth_level" : "1", - "estimated_travel_time" : 3600, # in seconds - ... - }, - ... - ], - "unavailable" : [ - { - "reason" : [1009, "You can't send a detonator to a star."], - "ship" : { - "id" : "id-goes-here", - "name" : "D13", - "type_human" : "Detonator", - "type" : "detonator", - "task" : "Docked", - "speed" : "700", - "fleet_speed" : "0", - "stealth" : "0", - "hold_size" : "0", - "berth_level" : "1", - "date_started" : "01 31 2010 13:09:05 +0600", - "date_available" : "01 31 2010 13:09:05 +0600" - } - }, - ... - ], - "orbiting" : [ - { - "id" : "id-goes-here", - "name" : "F13", - "type_human" : "Fighter", - "type" : "fighter", - "task" : "Defend", - "speed" : "2000", - "fleet_speed" : "0", - "stealth" : "0", - "hold_size" : "0", - "berth_level" : "1", - "date_started" : "01 31 2010 13:09:05 +0600", - "date_available" : "02 01 2010 10:08:33 +0600", - "date_arrives" : "02 01 2010 10:08:33 +0600", - "from" : { - "id" : "id-goes-here", - "type" : "body", - "name" : "Earth" - }, - "orbiting" : { - "id" : "id-goes-here", - "type" : "body", - "name" : "Mars", - "x" : 4, - "y" : -3, - } - - }, - ... - ], - "mining_platforms" : [ - { - empire_id => "id-goes-here", - empire_name => "The Peeps From Across The Street" - }, - ... - ], - "fleet_send_limit" : 20, - "status" : { ... } - } - -The C block tells you about ships that are docked, but are for some reason not available to be used. The C block will be returned only if the target is body and tells you about fighters that are defending and can be recalled. The C block will be returned only if the target is an asteroid that has platforms on it. The value of C tells you how many ships can be included in a fleet. - -=head3 session_id - -A session id. - -=head3 from_body_id - -The unique id of the planet that should send the ship. - -=head3 target - -A hash reference that can contain one of five items to identify a star or body. - - { "body_name" : "Earth" } - - { "body_id" : "id-goes-here" } - - { "star_name" : "Sol" } - - { "star_id" : "id-goes-here" } - - { "x" : 4, "y" : -3 } - -=head4 body_name - -A string with the body's name. Case insensitive, but will throw an exception for misspelling. - -=head4 body_id - -The unique id of the body. - -=head4 star_name - -A string with the star's name. Case insensitive, but will throw an exception for misspelling. - -=head4 star_id - -The unique id of the star. - -=head4 x | y - -A set of x,y coordinates to locate the star or body. - - -=head2 send_ship ( session_id, ship_id, target ) - -Sends a ship to a specified body or star. Use with C. - - { - "status" : { ... }, - "ship" : { - "id" : "id-goes-here", - "name" : "P13", - "type_human" : "Probe", - "type" : "probe", - "task" : "Travelling", - "speed" : "1200", - "fleet_speed" : "0", - "stealth" : "0", - "hold_size" : "0", - "berth_level" : "1", - "date_started" : "01 31 2010 13:09:05 +0600", - "date_available" : "02 01 2010 10:08:33 +0600", - "date_arrives" : "02 01 2010 10:08:33 +0600", - "can_recall" : "0", - "can_scuttle" : "0", - "from" : { - "id" : "id-goes-here", - "type" : "body", - "name" : "Earth" - }, - "to" : { - "id" : "id-goes-here", - "type" : "star", - "name" : "Sol" - } - } - } - -=head3 session_id - -A session id. - -=head3 ship_id - -The unique id of a ship to send. - -=head3 target - -A hash reference that can contain one of five items to identify a star or body. - - { "body_name" : "Earth" } - - { "body_id" : "id-goes-here" } - - { "star_name" : "Sol" } - - { "star_id" : "id-goes-here" } - - { "x" : 4, "y" : -3 } - -=head4 body_name - -A string with the body's name. Case insensitive, but will throw an exception for misspelling. - -=head4 body_id - -The unique id of the body. - -=head4 star_name - -A string with the star's name. Case insensitive, but will throw an exception for misspelling. - -=head4 star_id - -The unique id of the star. - -=head4 x | y - -A set of x,y coordinates to locate the star or body. - - -=head2 send_ship_types ( session_id, from_body_id, target, types, arrival ) - -Sends a quantity of ships, of a specific type (type, speed, combat, stealth) to a target. - -Look at B for a summary of what ships can be sent. - -Returns the same as B showing how many ships are remaining to be sent. - -Throws 1002,1009,1010,1019 - -=head4 session_id - -A session ID. - -=head4 from_body_id - -The Unique ID of the body that should send the ships - -=head4 target - -A hash reference that can contain one of five items to identify a star or body. - - { "body_name" : "Earth" } - - { "body_id" : "id-goes-here" } - - { "star_name" : "Sol" } - - { "star_id" : "id-goes-here" } - - { "x" : 4, "y" : -3 } - -=head4 body_name - -A string with the body's name. Case insensitive, but will throw an exception for misspelling. - -=head4 body_id - -The unique id of the body. - -=head4 star_name - -A string with the star's name. Case insensitive, but will throw an exception for misspelling. - -=head4 star_id - -The unique id of the star. - -=head4 x | y - -A set of x,y coordinates to locate the star or body. - -=head4 types - -An array reference that contains the specification of the ships to send and the quantity. - - [ - { - "type" : "sweeper", - "speed" : 10166, - "stealth" : 10948, - "combat" : 33372, - "quantity" : 100 - }, - { - "type" : "surveyor", - "speed" : 9030, - "stealth" : 9030, - "combat" : 3220, - "quantity" : 10 - } - ] - -=head4 arrival - -A hash reference of the required arrival time. - - { - "day" : "23", - "hour" : "12", - "minute" : "01", - "second" : "30" - } -or - { - "earliest" : 1, - } - -So long as the sending body has that quantity of ships with those specifications, then the -ships will be sent. - -Ships will be set to arrive at the B time and date, which can be up to 60 days in -the future. B is the day of the month, either the remainder of the current month, or -the start of next month. e.g. if the current date is 23rd of January, then a B of 23 -will refer to today whereas 3 would refer to 3rd of February. - -If an arrival time is set which is prior to the earliest arrival time of the slowest ship, -then an exception is raised. - -If earliest is set, all other values are ignored and ships are sent at fastest speed possible. -They may still be grouped together by the server into an attack group. - -=head2 send_fleet ( session_id, ship_ids, target, [ set_speed ] ) - -Sends a fleet of ships to a specified body or star. Use with C. - - { - "status" : { ... }, - "fleet" : [ - "ship" : { - "id" : "id-goes-here", - "name" : "P13", - "type_human" : "Probe", - "type" : "probe", - "task" : "Travelling", - "speed" : "1200", - "fleet_speed" : "250", - "stealth" : "0", - "hold_size" : "0", - "berth_level" : "1", - "date_started" : "01 31 2010 13:09:05 +0600", - "date_available" : "02 01 2010 10:08:33 +0600", - "date_arrives" : "02 01 2010 10:08:33 +0600", - "can_recall" : "0", - "can_scuttle" : "0", - "from" : { - "id" : "id-goes-here", - "type" : "body", - "name" : "Earth" - }, - "to" : { - "id" : "id-goes-here", - "type" : "star", - "name" : "Sol" - } - }, - ... - ] -} - -Throws 1002, 1009, 1010, 1016. - -=head3 session_id - -A session id. - -=head3 ship_ids - -An array reference of ship ids to send. - -=head3 target - -A hash reference that can contain one of five items to identify a star or body. Same as C. - -=head3 set_speed - -Optional. An integer specifying the speed at which all ships in the fleet should travel. When set to 0, the speed of the slowest ship will be used. - -An exception will be thrown if this is less than zero or exceeds the speed of the slowest ship in the fleet. - - - - -=head2 recall_ship ( session_id, building_id, ship_id ) - -Recalls an orbiting ship (task of 'Defend' or 'Orbiting') to the body of origin. - -Throws 1002, 1010. - - { - "status" : { ... }, - "ship" : { - "id" : "id-goes-here", - "name" : "F13", - "type_human" : "Fighter", - "type" : "fighter", - "task" : "Travelling", - "speed" : "2000", - "stealth" : "0", - "hold_size" : "0", - "berth_level" : "1", - "date_started" : "01 31 2010 13:09:05 +0600", - "date_available" : "02 01 2010 10:08:33 +0600", - "date_arrives" : "02 01 2010 10:08:33 +0600", - "can_recall" : "0", - "can_scuttle" : "0", - "from" : { - "id" : "id-goes-here", - "type" : "body", - "name" : "Earth" - }, - "to" : { - "id" : "id-goes-here", - "type" : "star", - "name" : "Sol" - } - } - } - -Recalling an orbiting Spy Shuttle also fetches as many idle spies as will fit from the planet it was orbiting. - -Throws 1002, 1010, 1013. - - { - "ship" : { - "id" : "id-goes-here", - "name" : "SS4", - "hold_size" : 0, - "berth_level" : "1", - "speed" : 3400, - "type" : "spy_shuttle", - "date_arrives" : "01 31 2010 13:09:05 +0600", - ... - }, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id for the space port. - -=head3 ship_id - -The unique id of a ship to recall. - - - -=head2 recall_all ( session_id, building_id ) - -Recalls all of this planet's ships that are orbiting (task of 'Defend' or 'Orbiting') to their spaceport of origin. This behaves like C in all other aspects. - -Throws 1002, 1010. - - { - "status" : { ... }, - "ships" : [ - { - "id" : "id-goes-here", - "name" : "F13", - "type_human" : "Fighter", - "type" : "fighter", - "task" : "Travelling", - "speed" : "2000", - "stealth" : "0", - "hold_size" : "0", - "berth_level" : "1", - "date_started" : "01 31 2010 13:09:05 +0600", - "date_available" : "02 01 2010 10:08:33 +0600", - "date_arrives" : "02 01 2010 10:08:33 +0600", - "can_recall" : "0", - "can_scuttle" : "0", - "from" : { - "id" : "id-goes-here", - "type" : "body", - "name" : "Earth" - }, - "to" : { - "id" : "id-goes-here", - "type" : "star", - "name" : "Sol" - } - }, - ... - ], - } - - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id for the space port. - - - - - -=head2 name_ship ( session_id, building_id, ship_id, name ) - -Set the name of a ship. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id for the space port. - -=head3 ship_id - -The unique id of the ship you want to name. - -=head3 name - -The name you want to give the ship. 1 to 30 characters. No profanity. No funky characters. - - - -=head2 scuttle_ship ( session_id, building_id, ship_id ) - -Destroy a ship that you no longer need. It must be docked to scuttle it. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id for the space port. - -=head3 ship_id - -The unique id of the ship you want to destroy. - - - -=head2 mass_scuttle_ship ( session_id, building_id, ship_ids ) - -Destroy a ship that you no longer need. It must be docked to scuttle it. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id for the space port. - -=head3 ship_ids - -Reference to an array of ship ids - - - -=head2 view_ships_travelling ( session_id, building_id, [ page_number ]) - -Returns a list of the ships that are travelling to or from this planet. - -B All inbound/outbound ships are shown regardless of which space port they will eventually land at. - - { - "status" : { ... }, - "number_of_ships_travelling" : 30, - "ships_travelling" : [ - { - "id" : "id-goes-here", - "type" : "probe", - "type_human" : "Probe", - "date_arrives" : "01 31 2010 13:09:05 +0600", - "from" : { - "id" : "id-goes-here", - "type" : "body", - "name" : "Earth", - }, - "to" : { - "id" : "id-goes-here", - "type" : "star", - "name" : "Sol", - } - }, - ... - ] - } - - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the space port. - -=head3 page_number - -Defaults to 1. An integer representing which page of ships travelling to view. Each page shows 25 ships. - - - -=head2 view_ships_orbiting ( session_id, building_id, [ page_number ]) - -Shows you all the foreign ships that are orbiting this planet. However, the list is filtered by the stealth of the ship vs the level of the SpacePort. The formula is: - - 350 * SpacePort Level >= Ship Stealth - -If your SpacePort exceeds the Ship's Stealth, then you'll see it orbiting. Otherwise you won't. - - { - "ships" : [ - { - "id" : "id-goes-here", - "name" : "SS3", - "type" : "spy_shuttle", - "type_human" : "Spy Shuttle", - "date_arrived" : "02 01 2010 10:08:33 +0600", - "from" : { - "id" : "id-goes-here", - "name" : "Mars", - "empire" : { - "id" : "id-goes-here", - "name" : "Martians" - } - } - }, - { - "id" : "id-goes-here", - "name" : "F3", - "type" : "fighter", - "type_human" : "Fighter", - "from" : { - "id" : "id-goes-here", - "name" : "Earth", - "empire" : { - "id" : "id-goes-here", - "name" : "Earthlings" - } - } - }, - ... - ], - "number_of_ships" : 13, - "status" : { ... } - } - -The C block is only included if - - 450 * SpacePort Level >= Ship Stealth - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the space port. - -=head3 page_number - -Defaults to page 1. Shows 25 at a time. - - - -=head2 prepare_send_spies ( session_id, on_body_id, to_body_id ) - -Gathers the information needed to call the C method. - - { - "status" : { ... }, - "ships" : [ - { - "id" : "id-goes-here", - "name" : "CS4", - "hold_size" : 1100, - "berth_level" : 1, - "speed" : 400, - "type" : "cargo_ship", - "estimated_travel_time" : 3600, # in seconds - ... - }, - ... - ], - "spies" : [ - { - "id" : "id-goes-here", - "level" : 12, - "name" : "Jack Bauer", - "assigned_to" : { - "body_id" : "id-goes-here", - "name" : "Earth" - }, - ... - }, - ... - ] - } - -B Only a certain number of spies can fit in each type of ship. Spy Pods can hold 1. Spy Shuttles can hold 4. And ships with a cargo hold can hold 1 for every 350 units of hold size. - -=head3 session_id - -A session id. - -=head3 on_body_id - -The unique id of the planet that the spies are on and ship will be dispatched from. - -=head3 to_body_id - -The unique id of the planet that the spies should be sent to. - - - - -=head2 send_spies ( session_id, on_body_id, to_body_id, ship_id, spy_ids ) - -Sends one or more of spies to a planet using a selected ship. See also C. - - { - "ship" : { - "id" : "id-goes-here", - "name" : "CS4", - "hold_size" : 1100, - "berth_level" : 1, - "speed" : 400, - "type" : "cargo_ship", - "date_arrives" : "01 31 2010 13:09:05 +0600", - ... - }, - "spies_sent" : ["id-goes-here","id-goes-here","id-goes-here"], # should be identical to "spy_ids" - "spies_not_sent" : ["id-goes-here","id-goes-here","id-goes-here"], # should only contain something if you're cheating, or a spy dies/turns between RPC calls - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 on_body_id - -The unique id of the planet that should send the ship and that has the spies. - -=head3 to_body_id - -The unique id of the planet that the spies should be sent to. - -=head3 ship_id - -The unique id of the ship to send. - -=head3 spy_ids - -An array reference of spy ids to send. - - - - -=head2 prepare_fetch_spies ( session_id, on_body_id, to_body_id ) - -Gathers the information needed to call the C method. - - { - "status" : { ... }, - "ships" : [ - { - "id" : "id-goes-here", - "name" : "CS4", - "hold_size" : 1100, - "berth_level" : 1, - "speed" : 400, - "type" : "cargo_ship", - "estimated_travel_time" : 3600, # in seconds - ... - }, - ... - ], - "spies" : [ - { - "id" : "id-goes-here", - "level" : 12, - "name" : "Jack Bauer", - "assigned_to" : { - "body_id" : "id-goes-here", - "name" : "Earth" - }, - ... - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 on_body_id - -The unique id of the planet that the spies are on. - -=head3 to_body_id - -The unique id of the planet that the spies should be sent to, and the ship will be dispatched from. - - - - - -=head2 fetch_spies ( session_id, on_body_id, to_body_id, ship_id, spy_ids ) - -Sends a specified ship to fetch specified spies from C, and bring them back to C. See also C. - -B If the spies are not Idle when the ship arrives, they will not be picked up. - - { - "ship" : { - "id" : "id-goes-here", - "name" : "CS4", - "hold_size" : 1100, - "berth_level" : 1, - "speed" : 400, - "type" : "cargo_ship", - "date_arrives" : "01 31 2010 13:09:05 +0600", - ... - }, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 on_body_id - -The unique id of the planet that the spies are on. - -=head3 to_body_id - -The unique id of the planet that the spies should be sent to, and the ship will be dispatched from. - -=head3 ship_id - -The unique id of the ship to use to fetch the spies. - -=head3 spy_ids - -An array reference of spy ids to send. - - - -=head2 view_battle_logs ( session_id, building_id, [ page_number ] ) - -Shows you the battle logs for your empire with the most recent action listed first. This data will be cleaned out every seven days. - - { - "battle_log" : [ - { - "date" : "06 21 2011 22:54:37 +0600", - "attacking_body" : "Romulus", - "attacking_empire" : "Romulans", - "attacking_unit" : "Sweeper 21", - "defending_body" : "Kronos", - "defending_empire" : "Klingons", - "defending_unit" : "Shield Against Weapons", - "victory_to" : "defender" - }, - ... - ], - "number_of_logs" : 57, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the space port. - -=head3 page_number - -Defaults to 1. An integer representing which page of battle logs to view. Each page shows 25 entries. - - -=cut diff --git a/docs/SpaceStationLab.pod b/docs/SpaceStationLab.pod deleted file mode 100644 index 8798988e..00000000 --- a/docs/SpaceStationLab.pod +++ /dev/null @@ -1,95 +0,0 @@ -=head1 Space Station Lab Methods - -Space Station Lab is accessible via the URLs C, C, C, and C. The C URL controls all the actual functions of the lab, but you must build all four lab components to use the functions of SSL A. - -The list of methods below represents changes and additions to the methods that all L share. - -B These methods and changes have only been made to C. - -=head2 view ( session_id, building_id ) - -This method is changed from the default because it adds a C element to the output. - - { - "building" : { ... }, - "status" : { ... }, - "make_plan" : { - "types" : [ - { - "type" : "ibs", - "name" : "Interstellar Broadcast Station", - "image" : "ibs", - "url" : "/ibs" - }, - ... - ], - "level_costs" : [ - { - level => 1, - food => 10000, - ore => 10000, - water => 10000, - energy => 10000, - waste => 2500, - time => 1200 - }, - ... - ], - "subsidy_cost" : 2, - "making" : "Interstellar Broadcast Station (3+0)" - } - } - -If there is a plan being made then the C element will be present. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the space station lab. - - - -=head2 make_plan ( session_id, building_id, type, level ) - -Starts the plan creation process. - -Returns C. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the space station lab. - -=head3 type - -The key from the hash returned by the C method in make_plan > types. For example, C for "Interstellar Broadcast Station". - -=head3 level - -An integer between 1 and 30. The level from the array returned by the C method in make_plan > level_costs. - - - -=head2 subsidize_plan ( session_id, building_id ) - -Will spend essentia equal to the subsidy_cost returned by the C method to complete the current plan immediately. Returns C. - -Throws 1011. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the space station lab. - - - -=cut diff --git a/docs/StationCommand.pod b/docs/StationCommand.pod deleted file mode 100644 index 3aa4c6b6..00000000 --- a/docs/StationCommand.pod +++ /dev/null @@ -1,118 +0,0 @@ -=head1 Station Command Methods - -Station Command Center is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - -Command extends the view method to include a C section. - - { - "building" : { ... }, - "status" : { ... }, - "next_colony_cost" : 750000, # the amount of happiness required to settle your next colony - "planet" : { - "id" : "id-goes-here", - "x" : -4, - "y" : 10, - "z" : 6, - "star_id" : "id-goes-here", - "orbit" : 3, - "type" : "habitable planet", - "name" : "Earth", - "image" : "p13", - "size" : 67, - "water" : 900, - "ore" : { - "gold" : 3399, - "bauxite" : 4000, - ... - }, - "building_count" : 7, - "population" : 470000, - "happiness" : 3939, - "happiness_hour" : 25, - "food_stored" : 33329, - "food_capacity" : 40000, - "food_hour" : 229, - "energy_stored" : 39931, - "energy_capacity" : 43000, - "energy_hour" : 391, - "ore_hour" 284, - "ore_capacity" 35000, - "ore_stored" 1901, - "waste_hour" : 933, - "waste_stored" : 9933, - "waste_capacity" : 13000, - "water_stored" : 9929, - "water_hour" : 295, - "water_capacity" : 51050 - } - } - - -=head2 view_plans ( session_id, building_id ) - -Returns a list of all the plans you've collected through various means. - - { - "status" : { ... }, - "plans" : [ - { - "name" : "Malcud Fungus Farm", - "level" : 1, - "extra_build_level" : 5 - }, - ... - ] - } - -If the C is 1, and there is an C, that means that the building will be built up to 1 plus the extra build level when complete. So in the example above, it would be a level 6 directly after being built. - - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the PCC. - - -=head2 view_incoming_supply_chains ( session_id, building_id ) - -Returns a list of all incoming supply chains feeding this planet. - - { - "status" : { ... }, - "supply_chains" : [ - { - "id" : "id-goes-here", - "from_body" : { - "id" : "id-goes-here", - "name" : "Mars", - "x" : 0, - "y" : -123, - "image" : "station" - }, - "resource_hour" : 10000000, - "resource_type" : 'water', - "percent_transferred" : 95, - "stalled" : 0, - }, - ... - ] - } - - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the PCC. - - -=cut diff --git a/docs/Stats.pod b/docs/Stats.pod deleted file mode 100644 index 00e3fa9f..00000000 --- a/docs/Stats.pod +++ /dev/null @@ -1,258 +0,0 @@ -=head1 Server Overview - -A complete overview of the server statistics is available from B. This file contains many statistics about the server, but not any that you could calculate using the data provided in order to keep the file small. For example, we tell you how many stars have been probed, and how many probes there are, but we don't give you the average number of probes per star, because you could calculate that yourself. - -=head1 Stats Methods - -These methods are accessible via the C URL. - - -=head2 credits ( ) - -Retrieves a list of the game credits. It is an array of hashes of arrays. - - [ - { "Game Server" : ["JT Smith"]}, - { "iPhone Client" : ["Kevin Runde"]}, - { "Web Client" : ["John Rozeske"]}, - { "Play Testers" : ["John Ottinger","Jamie Vrbsky"]}, - ... - ] - - - -=head2 alliance_rank ( session_id, [ sort_by, page_number ] ) - -Returns a sorted list of alliance ranked according to various stats. - - { - "status" : { ... }, - "alliances" : [ - { - "alliance_id" : "id-goes-here", # unique id - "alliance_name" : "Earthlings", # alliance name - "member_count" : "1", # number of empires in the alliance - "space_station_count" : 0, # number of space stations this alliance controlls - "influence" : 0, # the number of stars under the jurisdiction of this alliance - "colony_count" : "1", # number of planets colonized - "population" : "7000000000", # number of citizens on all planets in the empires of the alliance - "average_empire_size" : "7000000000", # average size of empires in the alliance - "building_count" : "50", # number of buildings across all colonies - "average_building_level" : "20", # average level of all buildings across all colonies - "offense_success_rate" : "0.793", # the offense rate of success of spies at all colonies - "defense_success_rate" : "0.49312", # the defense rate of success of spies at all colonies - "dirtiest" : "7941" # the number of times a spy has attempted to hurt another empire - }, - ... - ], - "total_alliances" : 5939, - "page_number" : 3 - } - -=head3 session_id - -A session id. - -=head3 sort_by - -An attribute to sort by. Defaults to C. Possible values are: C, C, C, and C - -=head3 page_number - -An integer representing the page number to display. There are 25 records per page. Defaults to the page number that the current user is listed on. - - - -=head2 find_alliance_rank ( session_id, sort_by, alliance_name ) - -Search for a particular alliance in the C. Returns: - - { - "status" : { ... }, - "alliances" : [ - { - "alliance_id" : "id-goes-here", - "alliance_name" : "Earth Allies", - "page_number" : "54", - } - ... - ] - } - -=head3 session_id - -A session id. - -=head3 sort_by - -The field to sort by. See C for details. - -=head3 alliance_name - -A full or partial alliance name to search by. Must be at least 3 characters to search. - - - - -=head2 empire_rank ( session_id, [ sort_by, page_number ] ) - -Returns a sorted list of empires ranked according to various stats. - - { - "status" : { ... }, - "empires" : [ - { - "empire_id" : "id-goes-here", # unique id - "empire_name" : "Earthlings", # empire name - "alliance_id" : "id-goes-here", # unique id - "alliance_name" : "Earthlings Allied", # alliance name - "colony_count" : "1", # number of planets colonized - "population" : "7000000000", # number of citizens on all planets in the empire - "empire_size" : "7000000000", # size of entire empire - "building_count" : "50", # number of buildings across all colonies - "average_building_level" : "20", # average level of all buildings across all colonies - "offense_success_rate" : "0.793", # the offense rate of success of spies at all colonies - "defense_success_rate" : "0.49312", # the defense rate of success of spies at all colonies - "dirtiest" : "7941" # the number of times a spy has attempted to hurt another empire - }, - ... - ], - "total_empires" : 5939, - "page_number" : 3 - } - -=head3 session_id - -A session id. - -=head3 sort_by - -An attribute to sort by. Defaults to C. Possible values are: C, C, C, and C - -=head3 page_number - -An integer representing the page number to display. There are 25 records per page. Defaults to the page number that the current user is listed on. - - - -=head2 find_empire_rank ( session_id, sort_by, empire_name ) - -Search for a particular empire in the C. Returns: - - { - "status" : { ... }, - "empires" : [ - { - "empire_id" : "id-goes-here", - "empire_name" : "Earthlings", - "page_number" : "54", - } - ... - ] - } - -=head3 session_id - -A session id. - -=head3 sort_by - -The field to sort by. See C for details. - -=head3 empire_name - -A full or partial empire name to search by. Must be at least 3 characters to search. - - - -=head2 colony_rank ( session_id, [ sort_by ] ) - -Returns a sorted list of planets ranked according to various stats. - - { - "status" : { ... }, - "colonies" : [ - { - "empire_id" : "id-goes-here", # unique id - "empire_name" : "Earthlings", # empire name - "planet_id" : "id-goes-here", # unique id - "planet_name" : "Earth", # name of the planet - "population" : "7000000000", # number of citizens on planet - "building_count" : "50", # number of buildings at this colony - "average_building_level" : "20", # average level of all buildings at this colony - "highest_building_level" : "26" # highest building at this colony - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 sort_by - -An attribute to sort by. Defaults to C. Possible values are: C - - - - -=head2 spy_rank ( session_id, [ sort_by ] ) - -Returns a sorted list of the top spies in the game ranked according to various stats. - - { - "status" : { ... }, - "spies" : [ - { - "empire_id" : "id-goes-here", # unique id - "empire_name" : "Earthlings", # empire name - "spy_id" : "id-goes-here", # unique id - "spy_name" : "Agent Null", # the name of this spy - "age" : "3693", # how old is this guy in seconds - "level" : "18", # the level of this spy - "success_rate" : "0.731", # the rate of success this spy has had for both offense and defensive tasks - "dirtiest" : "7941", # the number of times a spy has attempted to hurt another empire - }, - ... - ] - } - -=head3 session_id - -A session id. - -=head3 sort_by - -An attribute to sort by. Defaults to C. Possible values are: C C and C - - - - -=head2 weekly_medal_winners ( session_id ) - -Returns a list of the empires who won this week's weekly medals. - - { - "status" : { ... }, - "winners" : [ - { - "empire_id" : "id-goes-here", - "empire_name" : "Earthlings", - "medal_name" : "Dirtiest Player In The Game", - "medal_image" : "dirtiest1", - "times_earned" : 4, - }, - ... - ] - } - - - -=head3 session_id - -A session id. - - -=cut - diff --git a/docs/Stockpile.pod b/docs/Stockpile.pod deleted file mode 100644 index a0c691dd..00000000 --- a/docs/Stockpile.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Stockpile Methods - -Stockpile is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/SubspaceSupplyDepot.pod b/docs/SubspaceSupplyDepot.pod deleted file mode 100644 index 5b6d21c9..00000000 --- a/docs/SubspaceSupplyDepot.pod +++ /dev/null @@ -1,136 +0,0 @@ -=head1 Subspace Supply Depot Methods - -Subspace Supply Depot is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - - -=head2 transmit_food ( session_id, building_id ) - -Convert 3600 seconds into 3600 food. - - { - "building" : { - "work" : { - "seconds_remaining" : 99, - "start" : "01 31 2010 13:09:05 +0600", - "end" : "01 31 2010 13:09:05 +0600" - } - }, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -A building id. - - - - -=head2 transmit_energy ( session_id, building_id ) - -Convert 3600 seconds into 3600 energy. - - { - "building" : { - "work" : { - "seconds_remaining" : 99, - "start" : "01 31 2010 13:09:05 +0600", - "end" : "01 31 2010 13:09:05 +0600" - } - }, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -A building id. - - - - -=head2 transmit_ore ( session_id, building_id ) - -Convert 3600 seconds into 3600 ore. - - { - "building" : { - "work" : { - "seconds_remaining" : 99, - "start" : "01 31 2010 13:09:05 +0600", - "end" : "01 31 2010 13:09:05 +0600" - } - }, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -A building id. - - - - -=head2 transmit_water ( session_id, building_id ) - -Convert 3600 seconds into 3600 water. - - { - "building" : { - "work" : { - "seconds_remaining" : 99, - "start" : "01 31 2010 13:09:05 +0600", - "end" : "01 31 2010 13:09:05 +0600" - } - }, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -A building id. - - - -=head2 complete_build_queue (session_id, building_id ) - -Trade seconds for build queue time. - - { - "building" : { - "work" : { - "seconds_remaining" : 99, - "start" : "01 31 2010 13:09:05 +0600", - "end" : "01 31 2010 13:09:05 +0600" - } - }, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -A building id. - - - -=cut diff --git a/docs/SupplyPod.pod b/docs/SupplyPod.pod deleted file mode 100644 index 1857f505..00000000 --- a/docs/SupplyPod.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Supply Pod Methods - -Supply Pod is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/Syrup.pod b/docs/Syrup.pod deleted file mode 100644 index 4c8651fb..00000000 --- a/docs/Syrup.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Syrup Methods - -Syrup is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/TempleOfTheDrajilites.pod b/docs/TempleOfTheDrajilites.pod deleted file mode 100644 index add9584d..00000000 --- a/docs/TempleOfTheDrajilites.pod +++ /dev/null @@ -1,69 +0,0 @@ -=head1 TempleOfTheDrajilites Methods - -Temple of the Drajilites is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - - -=head2 list_planets (session_id, building_id, [ star_id ] ) - -Provides the list of the planets around a given star. - - { - "status" : { ... }, - "planets" : [ - { - "id" : "id-goes-here", - "name" : "Earth" - }, - ... - ] - } - -=head3 session_d - -A session id. - -=head3 building_id - -The unique id of the building. - -=head3 star_id - -Optionally pass in a star id. Defaults to the star that the building is built on. See L to see how you can get a star id by name. - - - -=head2 view_planet ( session_id, building_id, planet_id ) - -Returns a surface map identical in format to the one returned as an L attachment. - - { - "status" : { ... }, - "map" : { - "surface_image" : "surface-p12", - "buildings" : [ - { - "x" : 1, - "y" : -2, - "image" : "rockyoutcrop1" - }, - ... - ] - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 planet_id - -The unique id of a planet you want to view. Note that this must be a planet id and not a body id. It won't work for an asteroid for example. Also, the planet must be in range. You get 10 star map units per level of the Temple. - - -=cut \ No newline at end of file diff --git a/docs/TerraformingLab.pod b/docs/TerraformingLab.pod deleted file mode 100644 index 35a9dac7..00000000 --- a/docs/TerraformingLab.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Terraforming Lab Methods - -Terraforming Lab is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/TerraformingPlatform.pod b/docs/TerraformingPlatform.pod deleted file mode 100644 index ac7411c9..00000000 --- a/docs/TerraformingPlatform.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Terraforming Platform Methods - -Terraforming Platform is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/TheDillonForge.pod b/docs/TheDillonForge.pod deleted file mode 100644 index 1d30cb2d..00000000 --- a/docs/TheDillonForge.pod +++ /dev/null @@ -1,118 +0,0 @@ -=head1 The Dillon Forge Methods - -The Dillon Forge is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - -This method is extended to include the list of tasks. - - { - "status " : { ... }, - "building" : { ... }, - "tasks" : { - "current_task" : "make_plan", - "seconds_remaining" : 120, - "can" : 0, - "working" : "Making Crater 6+0", - "subsidy_cost" : 2, - - "make_plan" : [ - { - "name" : "Algae", - "max_level" : 10, - "class" : "Food::Algae", - "reset_sec_per_level" : 5000, - },... - ], - "split_plan" : [ - { - "name" : "Beach [10]", - "class" : "Permanent::Beach10", - "level" : 1, - "extra_build_level" : 2, - "fail_chance" : 50, - "reset_seconds", - },... - ] - } - } - -=head2 make_plan ( session_id, building_id, plan_class, level ) - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Dillon Forge. - -=head3 plan_class - -The class of the plan, as returned in the B method - -=head3 level - -The level to build the plan. Note that The Dillon Forge can only build plans -up to the level of the building. A level 10 Dillon Forge can build any plan level -from 2+0 to 10+0. There must be at least 2x level 1+0 plans on a colony of the -specified class to build a level x+0 plan. - -The B is how long it will take to build a plan per level. - -=head2 split_plan ( session_id, building_id, plan_class, level, extra_build_level, quantity ) - -Split a plan into it's constituant glyphs. The glyph types that can be returned -depend upon the recipe to build that type of plan. The maximum number of glyphs -that can be returned depend upon the number of glyphs in the recipe for a level -1+0 plan, the level of the plan being split and the extra build levels. - -The B given in the view method, determines the number of glyphs that -are likely to be returned. For example, if a plan is 'worth' 4 glyphs then, on -average, a 50% fail_chance will return 2 glyphs (chosen at random from all glyph -types that make up the plan. - -The B is determined by the level of The Dillon Forge and is 3% per -level of the building. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Dillon Forge. - -=head3 plan_class - -The class of the plan, as returned in the B method - -=head3 level - -The level of the plan to be split. - -=head3 extra_build_level - -The extra build levels (if any) for that plan. - -=head3 quantity - -Number of plans to feed into the forge. Time does not go up linearly, but the more plans fed in, the more efficient. - -=head2 subsidize ( session_id, building_id ) - -Will spend essentia to complete the current task immediately. Cost is 2e unless splitting multiple plans. Returns B - -Throws 1011. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Dillon Forge. - -=cut diff --git a/docs/TheftTraining.pod b/docs/TheftTraining.pod deleted file mode 100644 index 5bf256cb..00000000 --- a/docs/TheftTraining.pod +++ /dev/null @@ -1,29 +0,0 @@ -=head1 TheftTraining Methods - -Theft Training Facility is accessible via the URL C. - -The Theft Training Facility is where you train your spies in the art of appropriation. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - - { - "status" : { ... }, - "building" : { ... }, - "spies" : { - "max_points" : 2600, - "points_per" : 45, - "in_training" : 4, - }, - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of your Theft Training Facility. - -=cut diff --git a/docs/ThemePark.pod b/docs/ThemePark.pod deleted file mode 100644 index 055eb31d..00000000 --- a/docs/ThemePark.pod +++ /dev/null @@ -1,53 +0,0 @@ -=head1 Theme Park Methods - -Theme Park is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - - -=head2 view ( session_id, building_id ) - -This method is changed from the default because it adds a C element to the output. - - { - "building" : { ... }, - "status" : { ... }, - "themepark" : { - "food_type_count" : 12, - "can_operate" : 0, - "reason" : [1011, "This Theme Park was started with 12 types of food so you need at least 12 types of food to continue its operation."] - } - } - - -Consult the C block to see how long the Theme Park will remain in operation. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the park. - - - -=head2 operate ( session_id, building_id ) - -Initiates operation of the Theme Park. You need at least 1,000 of each of 5 food types to start the Theme Park for one hour. Once the Theme Park starts it will start using a lot more resources, but it will also start outputting large amounts of happiness. The amount of happiness generated is directly proportional to the number of food types used to start the Theme Park, and is also expontentially increased with each level of the Theme Park. - -While the Theme Park is operating, you can call this method again to spend more food and increase the duration of operation of the Theme Park. However, you must be able to spend at least as much food as you did when this method was last called. - -Returns C. - -Throws 1002, 1006, 1010, and 1011. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the theme park. - -=cut diff --git a/docs/Trade.graffle b/docs/Trade.graffle deleted file mode 100644 index 4ecce9d8a403821429beaa33506074db64c89ab5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35436 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 diff --git a/docs/Trade.png b/docs/Trade.png deleted file mode 100644 index bb9afcb7c24748e3171c524e8df7c222cae228d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92148 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%0Atn#uO4fM{~LF-8COxvQFT0=@d$ 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¥#8m${&5&XhMVj&}CDuX?@ed1I(t)r~zr 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 diff --git a/docs/Trade.pod b/docs/Trade.pod deleted file mode 100644 index 2182cb81..00000000 --- a/docs/Trade.pod +++ /dev/null @@ -1,1029 +0,0 @@ - -=head1 Trade Ministry Methods - -The Trade Ministry is accessible via the URL C. It allows you to send cargo ships to other players with trade goods. Due to the vast distance of space, you may only trade with other players in your zone. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - - { - "building" : { ... }, - "status" : { ... }, - "transport" : { - "max" : 2500, - "pushable" : [ - "id" : 1234, # body ID - "name" : "Planet Name", - "x" : -35, - "y" : 47, - "zone" : "0|0", - ] - } - } - -The alphabetical (on name) pushable list will only include planets and stations that this planet -can push to, even if being sat (correct list of stations for their alliance). - -=head2 add_to_market ( session_id, building_id, offer, ask, options ) - -Queues a trade for others to see. Returns: - - { - "trade_id" : "id-goes-here", - "status" : { ... }, - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the trade ministry. - -=head3 offer - -An array reference of hash references of items you wish to trade. There are five types of items that can be traded via this mechanism. They are resources, glyphs, plans, prisoners, and ships. - - [ - { - "type" : "bauxite", - "quantity" : 10000 - }, - { - "type" : "prisoner", - "prisoner_id" : "id-goes-here" - } - ] - - -=over - -=item resources - -The hash reference for resources looks like: - - { - "type" : "bauxite", - "quantity" : 10000 - } - -=over - -=item type - -The type of resource you want to trade. See C to see what you have available. - -=item quantity - -The amount of the resource that you want to trade. - -=back - -=item glyphs - -The hash reference for glyphs looks like this: - - { - "type" : "glyph", - "name : "bauxite", - "quantity" : 3 - } - -=over - -=item type - -Must be exactly C. - -=item name - -The type of glyph you want to trade (must be an ore type name). - -=item quantity - -The number of glyphs of type C that you want to trade - -=back - - -=item plans - -The hash reference for plans looks like this: - - { - "type" : "plan", - "plan_type" : "Permanent_AlgaePond", - "level" : 1, - "extra_build_level" : 5, - "quantity" : 4, - } - - -=over - -=item type - -Must be exactly C. - -=item plan_type - -Same as returned by get_plan_summary. - -=item level - -Level of the plan being added. - -=item extra_build_level - -Level of plus to plan. Note this will be 0 except possibly when the base level is 1. - -=item quantity - -Number of plans to add. - -=back - - -=item prisoners - -The hash reference for prisoners looks like: - - { - "type" : "prisoner", - "prisoner_id" : "id-goes-here" - } - -=over - -=item type - -Must be exactly C. - -=item prisoner_id - -The unique id of the spy that you want to trade. See the C method for a list of your prisoners. - -=back - - -=item ships - -The hash reference for ships looks like: - - { - "type" : "ship", - "ship_id" : "id-goes-here" - } - -=over - -=item type - -Must be exactly C. - -=item ship_id - -The unique id of the ship that you want to trade. See the C method for a list of your prisoners. - -=back - -=back - -=head3 ask - -An number representing the amount of essentia you are asking for in this trade. Must be between 0.1 and 100. - -=head3 options - -A hash reference of options to modify the trade. - -=over - -=item ship_id - -The specific id of a ship you want to use for this trade. See C for details. - -=back - - -=head2 get_ships ( session_id, building_id ) - -Returns a list of ships that may be traded. Used with the C method. - - { - "ships" : [ - { - "id" : "id-goes-here", - "name" : "Enterprise", - "type" : "probe", - "hold_size" : 0, - "speed" : 3900 - }, - ... - ], - "cargo_space_used_each" : 50000, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - - -=head2 get_prisoners ( session_id, building_id ) - -Returns a list of prisoners that may be traded. Used with the C method. - - { - "prisoners" : [ - { - "id" : "id-goes-here", - "name" : "Jack Bauer", - "level" : "5", - "sentence_expires" : "01 31 2010 13:09:05 +0600" - }, - ... - ], - "cargo_space_used_each" : 350, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - - -=head2 get_plans ( session_id, building_id ) - -Deprecated Method. Please use get_plan_summary instead - -=head2 get_plan_summary ( session_id, building_id ) - -Returns a list of plans that may be traded in summary form. -Used with the C method. - - { - "plans" : [ - { - "name" : "Intelligence Ministry", - "plan_type" : "Intelligence", - "level" : "7", - "extra_build_level" : "0", - "quantity" : "2" - }, - ... - ], - "cargo_space_used_each" : 1000, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building - - -=head2 get_glyphs ( session_id, building_id ) - -This API call is now deprecated, please use get_glyph_summary instead. - -=head2 get_glyph_summary ( session_id, building_id ) - -Returns a summary of all glyphs that may be traded. Used with the C method. - - { - "glyphs" : [ - { - "id" : "id-goes-here", - "name: : "bauxite", - "type" : "bauxite", - "quantity" : 2 - }, - ... - ], - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - - -=head2 withdraw_from_market ( session_id, building_id, trade_id ) - -Remove a trade that you have offered and collect the items up for trade. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 trade_id - -The unique id of the trade. - - - - -=head2 accept_from_market ( session_id, building_id, trade_id ) - -Accept a trade offer from the list of available trades. See C. - -Throws 1016. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 trade_id - -The unique id of the trade. - - - -=head2 view_market ( session_id, building_id, [ page_number, filter ] ) - -Displays a list of trades available at the present time. - - { - "trades" : [ - { - "date_offered" : "01 31 2010 13:09:05 +0600", - "id" : "id-goes-here", - "ask" : 25, # essentia - "offer" : [ - "Level 21 spy named Jack Bauer (prisoner)", - "4,000 bauxite", - "gold glyph" - ], - "body" : { - "id" : "id-goes-here" - }, - "empire" : { - "id" : "id-goes-here", - "name" : "Earthlings" - }, - "delivery: : { - "duration" : 3600, # travel time in seconds - } - }, - ... - ], - "trade_count" : 1047, - "page_number" : 1, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 page_number - -Optional. An integer representing the page of trades (25 per page) to return. Defaults to 1. - -=head3 filter - -Optional. A string which will narrow the offered trades to those who are offering a specific kind of object, such as ships. Filter options include: food ore water waste energy glyph prisoner ship plan - - - - -=head2 view_my_market ( session_id, building_id, [ page_number ] ) - -Displays a list of trades the current user has posted. - - { - "trades" : [ - { - "date_offered" : "01 31 2010 13:09:05 +0600", - "id" : "id-goes-here", - "ask" : 25, # essentia - "offer" : [ - "Level 21 spy named Jack Bauer (prisoner)", - "4,000 bauxite", - "gold glyph" - ] - }, - ... - ], - "trade_count" : 17, - "page_number" : 1, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 page_number - -An integer representing the page of trades (25 per page) to return. Defaults to 1. - - - -=head2 get_trade_ships ( session_id, building_id, [ target_body_id ] ) - -Returns a list of the ships that could be used to do a trade. - - { - "status" : { ... }, - "ships" : [ - { - "id" : "id-goes-here", - "type" : "cargo_ship", - "name" : "SS Minnow", - "estimated_travel_time" : 3600, # in seconds, one way - ... - }, - ... - ] - } - - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the trade ministry. - -=head3 target_body_id - -The unique id of the body you'll be shipping to. Optional. If included it will calculate the estimated travel time of the ships to this body. - - -=head2 get_waste_ships ( session_id, building_id ) - -Returns a list of the ships that are either working to transport waste or available. - - { - "status" : { ... }, - "ships" : [ - { - "id" : "id-goes-here", - "type" : "scow", - "task" : "Docked", - "name" : "Dumper Truck 1", - "speed" : 600, - "hold_size" : 1234800, - }, - ... - ] - } - - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the trade ministry. - - -=head2 get_supply_ships ( session_id, building_id ) - -Returns a list of the ships that are either working to transport supplies or available. - - { - "status" : { ... }, - "ships" : [ - { - "id" : "id-goes-here", - "type" : "hulk", - "task" : "Resource Chain", - "name" : "Big Momma 1", - "speed" : 1000, - "hold_size" : 4000000, - }, - ... - ] - } - - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the trade ministry. - - -=head2 view_supply_chains ( session_id, building_id ) - -Returns a list of the supply chains currently controlled by this Trade Ministry - - { - "status" : { ... }, - "supply_chains" : [ - { - "id" : "id-goes-here", - "body" : { - "id" : "id-goes-here", - "name" : "Mars", - "x" : 0, - "y" : -123, - ... - }, - "building_id" : 1234567, - "resource_hour" : 10000000, - "resource_type" : 'water', - "percent_transferred" : 95, - "stalled" : 0, - } - ], - "max_supply_chains" : 30 - } - -Each supply-chain can transfer any amount of any one resource (food type, ore type -energy, waste or water). B shows you how many Supply Chains -your Trade Ministry can handle. - -The B is the identifier for the Trade Ministry that is the source of the -supply chain. - -The B is the name of the resource you wish to transfer (e.g. 'Gold'); - -The B is the amount of that resource you wish to transfer each hour. - -The B is the percentage of B that is actually transferred. -This is based on the number of ships you have servicing the chain. If you have no ships then -the B will be zero. If it is below 100 then you need to add ships so that -it is at or above 100. Above 100 and you have more ship capacity than you need, but you will -still only transfer the specified B, it just means some ships will be idle or not -fully filled. - -B is true if there are no more of the chain's resource available in storage to push. - - -=head2 view_waste_chains ( session_id, building_id ) - -Returns a list of the waste chains currently controlled by this Trade Ministry - - { - "status" : { ... }, - "waste_chain" : [ - { - "id" : "id-goes-here", - "star" : { - "id" : "id-goes-here", - "name" : "Sol", - "x" : 0, - "y" : -123, - ... - }, - "waste_hour" : 10000000, - "percent_transferred" : 95, - } - ] - } - -Note, there is no need to create a waste chain, all planets have a waste chain by default. - -There should only be one waste-chain in action, to your local star. There is no point in -setting up a waste-chain to any other star. - -The B is the amount of waste you wish to transfer per hour. - -The B is the percentage of B that is actually transferred. -This is based on the number of ships you have servicing the waste. If you have no ships then -the B will be zero. If it is below 100 then you need to add ships so that -it is at or above 100. Above 100 and you have more ship capacity than you need, but you will -still only transfer the specified B, it just means some ships will be idle or not -fully filled. - - -=head2 create_supply_chain (session_id, building_id, target_id, resource_type, resource_hour) - -Create a new supply chain. - -B is the ID of the target planet (or space station). - -B is the identifier of the Trade Ministry building. - -B is the resource you want to push, e.g. 'waste','water','gold','energy','apple' - -B is the amount of the resource you want to transfer each hour. - -Returns the same as the call to B - - -=head2 delete_supply_chain (session_id, building_id, supply_chain_id) - -Delete the supply chain identified by the B - -Returns the same as the call to B - - -=head2 update_supply_chain ( session_id, building_id, supply_chain_id, resource_type, resource_hour) - -Change the B and B for the supply Chain specified by B - -Returns the same as the call to B - -Note, the B may drop below 100% as a result of changing the amount of -B if you don't have enough ships to transfer the amount of resources in all -supply chains. - -You may set the resource_hour to zero if you want to suspend the supply chain to the target planet. - -If you want to remove the supply chain totally then call B - -=head2 update_waste_chain ( session_id, building_id, waste_chain_id, waste_hour) - -Change the B for the Waste Chain specified by B - -Returns the same as the call to B - -Note, the B may drop below 100% as a result of changing the amount of -B if you don't have enough ships to transfer the full amount of waste. - -Note, there is no B because all planets have a waste chain by default. - -You may set the B to zero if you want to stop transferring waste. - -=head2 add_supply_ship_to_fleet (session_id, building_id, ship_id ) - -Take a ship from your space port and add it to the ships servicing the supply chains. - - { - "status" : { ... }, - } - -Throws 1009. - -=head3 session_id - -A Session ID. - -=head3 building_id - -The unique ID of the Trade Ministry. - -=head3 ship_id - -The unique ID of the ship you want to add to the fleet. - - -=head2 add_waste_ship_to_fleet (session_id, building_id, ship_id ) - -Take a scow from your space port and add it to the ships servicing the waste pushes. - - { - "status" : { ... }, - } - -Throws 1009. - -=head3 session_id - -A Session ID. - -=head3 building_id - -The unique ID of the Trade Ministry. - -=head3 ship_id - -The unique ID of the ship you want to add to the fleet. - -=head2 remove_supply_ship_from_fleet (session_id, building_id, ship_id ) - -Remove a ship from servicing your supply chains and tell it to return to the space port. - - { - "status" : { ... }, - } - -Throws 1009. - -=head3 session_id - -A Session ID. - -=head3 building_id - -The unique ID of the Trade Ministry. - -=head3 ship_id - -The unique ID of the ship you want to remove from the fleet. - - -=head2 remove_waste_ship_from_fleet (session_id, building_id, ship_id ) - -Remove a ship from servicing you waste management and tell it to return to the space port. - - { - "status" : { ... }, - } - -Throws 1009. - -=head3 session_id - -A Session ID. - -=head3 building_id - -The unique ID of the Trade Ministry. - -=head3 ship_id - -The unique ID of the ship you want to remove from the fleet. - - -=head2 get_stored_resources ( session_id, building_id ) - -Returns a list of the resources you have stored to make it easier to identify what you want to trade. - - { - "status" : { ... }, - "cargo_space_used_each" : 1, - "resources" : { - "water" : 14000, - "waste" : 393, - "bauxite" : 47, - "cheese" : 1193, - ... - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - - -=head2 push_items ( session_id, building_id, target_id, items, options ) - -Allows you to push items between your colonies. - - { - "status" : { ... }, - "ship" : { - "name" : "SS Minnow", - "type" : "cargo_ship", - "date_arrives" : "01 31 2010 13:09:05 +0600", - ... - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 target_id - -The unqiue id of the planet that you control, that you want to send resources to. - -B The list of your planets comes back with every empire status message. - -=head3 items - -An array reference of hash references of items you wish to ship to the target planet. There are five types of items that can be shipped via this mechanism. They are resources, glyphs, plans, prisoners, and ships. - - [ - { - "type" : "bauxite", - "quantity" : 10000 - }, - { - "type" : "prisoner", - "prisoner_id" : "id-goes-here" - } - ] - - -=over - -=item resources - -The hash reference for resources looks like: - - { - "type" : "bauxite", - "quantity" : 10000 - } - -=over - -=item type - -The type of resource you want to push. Available types are: water, energy, waste, essentia, bean, lapis, potato, apple, root, corn, cider, wheat, bread, soup, chip, pie, pancake, milk, meal, algae, syrup, fungus, burger, shake, beetle, rutile, chromite, chalcopyrite, galena, gold, uraninite, bauxite, goethite, halite, gypsum, trona, kerogen, methane, anthracite, sulfur, zircon, monazite, fluorite, beryl, or magnetite. - -=item quantity - -The amount of the resource that you want to push. - -=back - -=item glyphs - -The hash reference for glyphs looks like: - - { - "type" : "glyph", - "name : "bauxite", - "quantity" : 3 - } - -=over - -=item type - -Must be exactly C. - -=item name - -The type of glyph you want to trade (must be an ore type name). - -=item quantity - -The number of glyphs of type C that you want to push. - -See the C method for a list of your glyphs. - -=back - -=item plans - -The hash reference for plans looks like this: - - { - "type" : "plan", - "plan_type" : "Permanent_AlgaePond", - "level" : 1, - "extra_build_level" : 5, - "quantity" : 4, - } - - -=over - -=item type - -Must be exactly C. - -=item plan_type - -Same as returned by get_plan_summary. - -=item level - -Level of the plan being pushed. - -=item extra_build_level - -Level of plus to plan. Note this will be 0 except possibly when the base level is 1. - -=item quantity - -The number of plans of that you want to push. - -See the C method for a list of your plans. - -=back - - -=item prisoners - -The hash reference for prisoners looks like: - - { - "type" : "prisoner", - "prisoner_id" : "id-goes-here" - } - -=over - -=item type - -Must be exactly C. - -=item prisoner_id - -The unique id of the spy that you want to push. See the C method for a list of your prisoners. - -=back - - -=item ships - -The hash reference for ships looks like: - - { - "type" : "ship", - "ship_id" : "id-goes-here" - } - -=over - -=item type - -Must be exactly C. - -=item ship_id - -The unique id of the ship that you want to push. See the C method for a list of your prisoners. - -=back - - - -=back - - -=head3 options - -A hash reference of options to modify the trade. - -=over - -=item ship_id - -The specific id of a ship you want to use for this push. See C for details. - -=item stay - -If set to 1 the ship will remain at the target planet instead of making a round trip. However, this requires an available spaceport dock on the target planet. - -=back - - - - -=head2 report_abuse ( session_id, building_id, trade_id ) - -Report a trade that you think is abusing the trade system. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 trade_id - -The unique id of the trade. - - - - -=cut diff --git a/docs/Transporter.graffle b/docs/Transporter.graffle deleted file mode 100644 index 4eca057fcbc85a00d179333492ef52408a987037..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38339 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 RWef}q44$rjF6*2UngEZI#?=4- diff --git a/docs/Transporter.pod b/docs/Transporter.pod deleted file mode 100644 index ac6a30b7..00000000 --- a/docs/Transporter.pod +++ /dev/null @@ -1,664 +0,0 @@ -=head1 Transporter Diagram - -The Subspace Transporter is a complex beast, so to help you wrap your brain around it we've created a little flow diagram of how the methods come together. - -=begin html - - -
-
OmniGraffle Version - -=end html - -=head1 Transporter Methods - -The Subspace Transporter is accessible via the URL C. It allows you to transport goods across the vastness of space instantly. The catch is that the planet you're transporting to must also have a transporter, and it burns essentia to use it. - -The list of methods below represents changes and additions to the methods that all L share. - - -=head2 view ( session_id, building_id ) - - { - "building" : { ... }, - "status" : { ... }, - "transport" : { - "max" : 2500, - "pushable" : [ - "id" : 1234, # body ID - "name" : "Planet Name", - "x" : -35, - "y" : 47, - "zone" : "0|0", - ] - } - } - -The alphabetical (on name) pushable list will only include planets with currently-online Transporters. - - -=head2 add_to_market ( session_id, building_id, offer, ask ) - -Queues a trade for others to see. In addition to anything offered in your trade, setting up the trade will cost you 1 essentia. Returns: - - { - "trade_id" : "id-goes-here", - "status" : { ... }, - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the subspace transporter. - -=head3 items - -An array reference of hash references of items you wish to trade. There are five types of items that can be traded via this mechanism. They are resources, glyphs, plans, prisoners, and ships. - - [ - { - "type" : "bauxite", - "quantity" : 10000 - }, - { - "type" : "prisoner", - "prisoner_id" : "id-goes-here" - } - ] - - -=over - -=item resources - -The hash reference for resources looks like: - - { - "type" : "bauxite", - "quantity" : 10000 - } - -=over - -=item type - -The type of resource you want to trade. See C to see what you have available. - -=item quantity - -The amount of the resource that you want to trade. - -=back - -=item glyphs - -The hash reference for glyphs looks like: - - { - "type" : "glyph", - "glyph_id" : "id-goes-here" - } - -=over - -=item type - -Must be exactly C. - -=item glyph_id - -The unique id of the glyph you want to trade. See the C method for a list of your glyphs. - -=back - -=item plans - -The hash reference for plans looks like: - - { - "type" : "plan", - "plan_id" : "id-goes-here" - } - -=over - -=item type - -Must be exactly C. - -=item plan_id - -The unique id of the plan that you want to trade. See the C method for a list of your plans. - -=back - - -=item prisoners - -The hash reference for prisoners looks like: - - { - "type" : "prisoner", - "prisoner_id" : "id-goes-here" - } - -=over - -=item type - -Must be exactly C. - -=item prisoner_id - -The unique id of the spy that you want to trade. See the C method for a list of your prisoners. - -=back - - -=item ships - -The hash reference for ships looks like: - - { - "type" : "ship", - "ship_id" : "id-goes-here" - } - -=over - -=item type - -Must be exactly C. - -=item ship_id - -The unique id of the ship that you want to trade. See the C method for a list of your prisoners. - -=back - -=back - -=head3 ask - -An number which represents how much essentia you are asking for in this trade. Must be between 0.1 and 100. - - - -=head2 get_ships ( session_id, building_id ) - -Returns a list of ships that may be traded. Used with the C method. - - { - "ships" : [ - { - "id" : "id-goes-here", - "name" : "Enterprise", - "type" : "probe", - "hold_size" : 0, - "speed" : 3900 - }, - ... - ], - "cargo_space_used_each" : 50000, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - - - -=head2 get_prisoners ( session_id, building_id ) - -Returns a list of prisoners that may be traded. Used with the C method. - - { - "prisoners" : [ - { - "id" : "id-goes-here", - "name" : "Jack Bauer", - "level" : "5" - "sentence_expires" : "01 31 2010 13:09:05 +0600" - }, - ... - ], - "cargo_space_used_each" : 350, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - - - -=head2 get_plans ( session_id, building_id ) - -Deprecated Method. Please use get_plan_summary instead - -=head2 get_plan_summary ( session_id, building_id ) - -Returns a list of plans that may be traded in summary form. -Used with the C method. - - { - "plans" : [ - { - "name" : "Intelligence Ministry", - "level" : "7", - "extra_build_level" : "0", - "quantity" : "2" - }, - ... - ], - "cargo_space_used_each" : 1000, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building - - -=head2 get_glyphs ( session_id, building_id ) - -This API call is now deprecated, please use get_glyph_summary instead. - -=head2 get_glyph_summary ( session_id, building_id ) - -Returns a summary of all glyphs that may be traded. Used with the C method. - - { - "glyphs" : [ - { - "type" : "bauxite", - "quantity" : 2 - }, - ... - ], - "cargo_space_used_each" : 100, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - - -=head2 withdraw_from_market ( session_id, building_id, trade_id ) - -Remove a trade that you have offered and collect the items up for trade. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 trade_id - -The unique id of the trade. - - - -=head2 accept_from_market ( session_id, building_id, trade_id ) - -Accept a trade offer from the list of available trades. In addition to paying whatever the asking price is, the subspace transporter uses 1 essentia to complete the transaction. See C. - -Throws 1016. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 trade_id - -The unique id of the trade. - - - -=head2 view_market ( session_id, building_id, [ page_number, filter ] ) - -Displays a list of trades available at the present time. - - { - "trades" : [ - { - "date_offered" : "01 31 2010 13:09:05 +0600", - "id" : "id-goes-here", - "ask" : 25, # essentia - "offer" : [ - "Level 21 spy named Jack Bauer (prisoner)", - "4,000 bauxite", - "gold glyph" - ], - "empire" : { - "id" : "id-goes-here", - "name" : "Earthlings" - } - }, - ... - ], - "trade_count" : 1047, - "page_number" : 1, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 page_number - -Optional. An integer representing the page of trades (25 per page) to return. Defaults to 1. - -=head3 filter - -Optional. A string which will narrow the offered trades to those who are offering a specific kind of object, such as ships. Filter options include: food ore water waste energy glyph prisoner ship plan - - - -=head2 view_my_market ( session_id, building_id, [ page_number ] ) - -Displays a list of trades the current user has posted. - - { - "trades" : [ - { - "date_offered" : "01 31 2010 13:09:05 +0600", - "id" : "id-goes-here", - "ask" : 25, # essentia - "offer" : [ - "Level 21 spy named Jack Bauer (prisoner)", - "4,000 bauxite", - "gold glyph" - ] - }, - ... - ], - "trade_count" : 17, - "page_number" : 1, - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 page_number - -An integer representing the page of trades (25 per page) to return. Defaults to 1. - - - - -=head2 get_stored_resources ( session_id, building_id ) - -Returns a list of the resources you have stored to make it easier to identify what you want to trade. - - { - "status" : { ... }, - "cargo_space_used_each" : 100, - "resources" : { - "water" : 14000, - "waste" : 393, - "bauxite" : 47, - "cheese" : 1193, - ... - } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - - - -=head2 push_items ( session_id, building_id, target_id, items ) - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 target_id - -The unqiue id of the planet that you control, that you want to send resources to. - -B The list of your planets comes back with every empire status message. - -=head3 items - -An array reference of hash references of items you wish to ship to the target planet. There are five types of items that can be shipped via this mechanism. They are resources, glyphs, plans, prisoners, and ships. - - [ - { - "type" : "bauxite", - "quantity" : 10000 - }, - { - "type" : "prisoner", - "prisoner_id" : "id-goes-here" - } - ] - - -=over - -=item resources - -The hash reference for resources looks like: - - { - "type" : "bauxite", - "quantity" : 10000 - } - -=over - -=item type - -The type of resource you want to push. Available types are: water, energy, waste, essentia, bean, lapis, potato, apple, root, corn, cider, wheat, bread, soup, chip, pie, pancake, milk, meal, algae, syrup, fungus, burger, shake, beetle, rutile, chromite, chalcopyrite, galena, gold, uraninite, bauxite, goethite, halite, gypsum, trona, kerogen, methane, anthracite, sulfur, zircon, monazite, fluorite, beryl, or magnetite. - -=item quantity - -The amount of the resource that you want to push. - -=back - -=item glyphs - -The hash reference for glyphs looks like: - - { - "type" : "glyph", - "glyph_id" : "id-goes-here" - } - -=over - -=item type - -Must be exactly C. - -=item glyph_id - -The unique id of the glyph you want to push. See the C method for a list of your glyphs. - -=back - - -=item plans - -The hash reference for plans looks like: - - { - "type" : "plan", - "plan_id" : "id-goes-here" - } - -=over - -=item type - -Must be exactly C. - -=item plan_id - -The unique id of the plan that you want to push. See the C method for a list of your plans. - -=back - - -=item prisoners - -The hash reference for prisoners looks like: - - { - "type" : "prisoner", - "prisoner_id" : "id-goes-here" - } - -=over - -=item type - -Must be exactly C. - -=item prisoner_id - -The unique id of the spy that you want to push. See the C method for a list of your prisoners. - -=back - - -=item ships - -The hash reference for ships looks like: - - { - "type" : "ship", - "ship_id" : "id-goes-here" - } - -=over - -=item type - -Must be exactly C. - -=item ship_id - -The unique id of the ship that you want to push. See the C method for a list of your prisoners. - -=back - - - -=back - - - - -=head2 trade_one_for_one ( session_id, building_id, have, want, quantity ) - -Lacuna Expanse Corp will do one for one trades of any resource in exchange for 3 essentia. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 have - -The name of the resource you have. See C to see what you have. - -=head3 want - -The name of any resource you want. - -=head3 quantity - -The amount of resources that will be traded one for one. - - - -=head2 report_abuse ( session_id, building_id, trade_id ) - -Report a trade that you think is abusing the trade system. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of this building. - -=head3 trade_id - -The unique id of the trade. - - - -=cut diff --git a/docs/University.pod b/docs/University.pod deleted file mode 100644 index b6e9f590..00000000 --- a/docs/University.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 University Methods - -University is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Volcano.pod b/docs/Volcano.pod deleted file mode 100644 index d246c079..00000000 --- a/docs/Volcano.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Volcano Methods - -Volcano is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/Warehouse.pod b/docs/Warehouse.pod deleted file mode 100644 index 4aeff5bc..00000000 --- a/docs/Warehouse.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Warehouse Methods - -Warehouse is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/WasteDigester.pod b/docs/WasteDigester.pod deleted file mode 100644 index ac7f0d28..00000000 --- a/docs/WasteDigester.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Waste Digester Methods - -Waste Digester is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/WasteEnergy.pod b/docs/WasteEnergy.pod deleted file mode 100644 index b180f522..00000000 --- a/docs/WasteEnergy.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Waste Energy Methods - -Waste Energy is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/WasteExchanger.pod b/docs/WasteExchanger.pod deleted file mode 100644 index b2d7b0e3..00000000 --- a/docs/WasteExchanger.pod +++ /dev/null @@ -1,73 +0,0 @@ -=head1 Waste Exchanger Methods - -Waste Exchanger is accessible via the URL C. - -The Waste Exchanger can be used to convert waste in storage into usable resources. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - - { - "status" : { ... }, - "building" : { ... }, - "recycle" : { - "seconds_remaining" : 0, - "can" : 1, - "seconds_per_resource" : "2.138", # to precalculate the time recycling will take - "max_recycle" : 12000, - "water" : 0, - "energy" : 0, - "ore" : 0 - } - } - - -=head2 recycle ( session_id, building_id, water, ore, energy, use_essentia ) - -Converts waste into water, ore, and energy. You can choose which amounts of each you want, so long as their total does not go over the amount of waste you have on hand. For each unit of waste converted, the recycling center will take 10 seconds to complete the recycling process. However, the amount of time is reduced a bit by the level of the Waster Exchanger. Returns C. - -Throws 1010 and 1011. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Waste Exchanger. - -=head3 water - -An integer representing the amount of water you want. - -=head3 ore - -An integer representing the amount of ore you want. - -=head3 energy - -An integer representing the amount of energy you want. - -=head3 use_essentia. - -Defaults to 0. A boolean indicating that you wish to spend 2 essentia, to have the recycling operation completed immediately. - - - - -=head2 subsidize_recycling ( session_id, building_id ) - -Will spend 2 essentia to complete the current recycling job immediately. Returns C. - -Throws 1011. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Waste Exchanger building. - -=cut diff --git a/docs/WasteRecycling.pod b/docs/WasteRecycling.pod deleted file mode 100644 index 4313c882..00000000 --- a/docs/WasteRecycling.pod +++ /dev/null @@ -1,73 +0,0 @@ -=head1 Waste Recycling Methods - -Waste Recycling Center is accessible via the URL C. - -The Waste Recycling Center can be used to convert waste in storage into usable resources. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 view ( session_id, building_id ) - - { - "status" : { ... }, - "building" : { ... }, - "recycle" : { - "seconds_remaining" : 0, - "can" : 1, - "seconds_per_resource" : "2.138", # to precalculate the time recycling will take - "max_recycle" : 12000, - "water" : 0, - "energy" : 0, - "ore" : 0 - } - } - - -=head2 recycle ( session_id, building_id, water, ore, energy, use_essentia ) - -Converts waste into water, ore, and energy. You can choose which amounts of each you want, so long as their total does not go over the amount of waste you have on hand. For each unit of waste converted, the recycling center will take 10 seconds to complete the recycling process. However, the amount of time is reduced a bit by the level of the Recycling Center. Returns C. - -Throws 1010 and 1011. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the Waste Recycling Center. - -=head3 water - -An integer representing the amount of water you want. - -=head3 ore - -An integer representing the amount of ore you want. - -=head3 energy - -An integer representing the amount of energy you want. - -=head3 use_essentia. - -Defaults to 0. A boolean indicating that you wish to spend 2 essentia, to have the recycling operation completed immediately. - - - - -=head2 subsidize_recycling ( session_id, building_id ) - -Will spend 2 essentia to complete the current recycling job immediately. Returns C. - -Throws 1011. - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the waste recycling building. - -=cut diff --git a/docs/WasteSequestration.pod b/docs/WasteSequestration.pod deleted file mode 100644 index 41538ee9..00000000 --- a/docs/WasteSequestration.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Waste Sequestration Methods - -Waste Sequestration is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/WasteTreatment.pod b/docs/WasteTreatment.pod deleted file mode 100644 index 08b8b328..00000000 --- a/docs/WasteTreatment.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Waste Treatment Methods - -Waste Treatment is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/WaterProduction.pod b/docs/WaterProduction.pod deleted file mode 100644 index 82c7721f..00000000 --- a/docs/WaterProduction.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Water Production Methods - -Water Production is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut diff --git a/docs/WaterPurification.pod b/docs/WaterPurification.pod deleted file mode 100644 index 87df53a6..00000000 --- a/docs/WaterPurification.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Water Purification Methods - -Water Purification is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/WaterReclamation.pod b/docs/WaterReclamation.pod deleted file mode 100644 index 871752e9..00000000 --- a/docs/WaterReclamation.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Water Reclamation Methods - -Water Reclamation is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/docs/WaterStorage.pod b/docs/WaterStorage.pod deleted file mode 100644 index db0b270f..00000000 --- a/docs/WaterStorage.pod +++ /dev/null @@ -1,29 +0,0 @@ -=head1 Water Storage Methods - -Water Storage is accessible via the URL C. - -Water Storage Tanks increase the amount of water you can store on your planet. - -The list of methods below represents changes and additions to the methods that all L share. - -=head2 dump ( session_id, building_id, amount ) - -Converts water into waste. - - { - "status" : { ... } - } - -=head3 session_id - -A session id. - -=head3 building_id - -The unique id of the building. - -=head3 amount - -An integer representing the amount to dump. - -=cut diff --git a/docs/Wheat.pod b/docs/Wheat.pod deleted file mode 100644 index 33ac4a96..00000000 --- a/docs/Wheat.pod +++ /dev/null @@ -1,7 +0,0 @@ -=head1 Wheat Methods - -Wheat is accessible via the URL C. - -The list of methods below represents changes and additions to the methods that all L share. - -=cut \ No newline at end of file diff --git a/info/add-a-building.md b/info/add-a-building.md index e336243b..efbc23b1 100644 --- a/info/add-a-building.md +++ b/info/add-a-building.md @@ -4,7 +4,6 @@ - add to class types in Lacuna::DB::Result::Building - create RPC class - create pod file -- link pod file in docs/Buildings.pod - add to bin/lacuna.psgi - add to Lacuna::DB::Result::Medals - add to var/www/public/resources.json diff --git a/var/www/public/api/api.css b/var/www/public/api/api.css deleted file mode 100644 index 3e83ae3f..00000000 --- a/var/www/public/api/api.css +++ /dev/null @@ -1,429 +0,0 @@ -BODY, .logo { background: white; } - -BODY { - color: black; - font-family: arial,sans-serif; - margin: 0; - padding: 1ex; -} - -TABLE { - border-collapse: collapse; - border-spacing: 0; - border-width: 0; - color: inherit; -} - -IMG { border: 0; } -FORM { margin: 0; } -input { margin: 2px; } - -.logo { - float: left; - width: 264px; - height: 77px; -} - -.front .logo { - float: none; - display:block; -} - -.front .searchbox { - margin: 2ex auto; - text-align: center; -} - -.front .menubar { - text-align: center; -} - -.menubar { - background: #006699; - margin: 1ex 0; - padding: 1px; -} - -.menubar A { - padding: 0.8ex; - font: bold 10pt Arial,Helvetica,sans-serif; -} - -.menubar A:link, .menubar A:visited { - color: white; - text-decoration: none; -} - -.menubar A:hover { - color: #ff6600; - text-decoration: underline; -} - -A:link, A:visited { - background: transparent; - color: #006699; -} - -A[href="#POD_ERRORS"] { - background: transparent; - color: #FF0000; -} - -TD { - margin: 0; - padding: 0; -} - -DIV { - border-width: 0; -} - -DT { - margin-top: 1em; -} - -.credits TD { - padding: 0.5ex 2ex; -} - -.huge { - font-size: 32pt; -} - -.s { - background: #dddddd; - color: inherit; -} - -.s TD, .r TD { - padding: 0.2ex 1ex; - vertical-align: baseline; -} - -TH { - background: #bbbbbb; - color: inherit; - padding: 0.4ex 1ex; - text-align: left; -} - -TH A:link, TH A:visited { - background: transparent; - color: black; -} - -.box { - border: 1px solid #006699; - margin: 1ex 0; - padding: 0; -} - -.distfiles TD { - padding: 0 2ex 0 0; - vertical-align: baseline; -} - -.manifest TD { - padding: 0 1ex; - vertical-align: top; -} - -.l1 { - font-weight: bold; -} - -.l2 { - font-weight: normal; -} - -.t1, .t2, .t3, .t4, .t5 { - background: #006699; - color: white; -} -.t4 { - padding: 0.2ex 0.4ex; -} -.t1, .t2, .t3 { - padding: 0.5ex 1ex; -} - -/* IE does not support .box>.t1 Grrr */ -.box .t1, .box .t2, .box .t3, .box .t5 { - margin: 0; -} - -.t1 { - font-size: 1.4em; - font-weight: bold; - text-align: center; -} - -.t2 { - font-size: 1.0em; - font-weight: bold; - text-align: left; -} - -.t3 { - font-size: 1.0em; - font-weight: normal; - text-align: left; -} - -.t5 { - font-size: 0.8em; - font-weight: normal; - text-align: center; -} - -/* width: 100%; border: 0.1px solid #FFFFFF; */ /* NN4 hack */ - -.datecell { - text-align: center; - width: 17em; -} - -.cell { - padding: 0.2ex 1ex; - text-align: left; -} - -.label { - background: #aaaaaa; - color: black; - font-weight: bold; - padding: 0.2ex 1ex; - text-align: right; - white-space: nowrap; - vertical-align: baseline; -} - -.categories { - border-bottom: 3px double #006699; - margin-bottom: 1ex; - padding-bottom: 3ex; - padding-top: 2ex; -} - -.categories TABLE { - margin: auto; -} - -.categories TD { - padding: 0.5ex 1ex; - vertical-align: baseline; -} - -.path A { - background: transparent; - color: #006699; - font-weight: bold; -} - -.pages { - background: #dddddd; - color: #006699; - padding: 0.2ex 0.4ex; -} - -.path { - background: #dddddd; - border-bottom: 1px solid #006699; - color: #006699; - /* font-size: 1.4em;*/ - margin: 1ex 0; - padding: 0.5ex 1ex; -} - -.menubar TD { - background: #006699; - color: white; -} - -.menubar { - background: #006699; - color: white; - margin: 1ex 0; - padding: 1px; -} - -.menubar .links { - background: transparent; - color: white; - padding: 0.2ex; - text-align: left; -} - -.menubar .searchbar { - background: black; - color: black; - margin: 0px; - padding: 2px; - text-align: right; -} - -A.m:link, A.m:visited { - background: #006699; - color: white; - font: bold 10pt Arial,Helvetica,sans-serif; - text-decoration: none; -} - -A.o:link, A.o:visited { - background: #006699; - color: #ccffcc; - font: bold 10pt Arial,Helvetica,sans-serif; - text-decoration: none; -} - -A.o:hover { - background: transparent; - color: #ff6600; - text-decoration: underline; -} - -A.m:hover { - background: transparent; - color: #ff6600; - text-decoration: underline; -} - -table.dlsip { - background: #dddddd; - border: 0.4ex solid #dddddd; -} - -.pod, .manifest { margin-right: 20ex; } - -.pod PRE { - background: #eeeeee; - border: 1px solid #888888; - color: black; - padding: 1em; - white-space: pre; -} - -.pod H1 { - background: transparent; - color: #006699; - font-size: xx-large; -} - -.pod H1 A { text-decoration: none; } -.pod H2 A { text-decoration: none; } -.pod H3 A { text-decoration: none; } -.pod H4 A { text-decoration: none; } - -.pod H2 { - background: transparent; - color: #006699; - font-size: x-large; -} - -.pod H3 { - background: transparent; - color: #006699; - font-size: large; - font-style: italic; -} - -.pod H4 { - background: transparent; - color: #006699; - font-size: medium; - font-weight: normal; -} - -.pod IMG { - vertical-align: top; -} - -.pod .toc A { - text-decoration: none; -} - -.pod .toc LI { - line-height: 1.2em; - list-style-type: none; -} - -.faq DT { - font-size: 1.4em; - font-weight: bold; -} - -.chmenu { - background: black; - color: red; - font: bold 1.1em Arial,Helvetica,sans-serif; - margin: 1ex auto; - padding: 0.5ex; -} - -.chmenu TD { - padding: 0.2ex 1ex; -} - -.chmenu A:link, .chmenu A:visited { - background: transparent; - color: white; - text-decoration: none; -} - -.chmenu A:hover { - background: transparent; - color: #ff6600; - text-decoration: underline; -} - -.column { - padding: 0.5ex 1ex; - vertical-align: top; -} - -.datebar { - margin: auto; - width: 14em; -} - -.date { - background: transparent; - color: #008000; -} - -.footer { - margin-top: 1ex; - text-align: right; - color: #006699; - font-size: x-small; - border-top: 1px solid #006699; - line-height: 120%; -} - -.front .footer { - border-top: none; -} - -#permalink { - float: right -} - -#permalink A { - font-size: small; -} - -.sr { - font-size: inherit; - margin: 0; -} - -.cpanstats { - float: left; - text-align: left; - color: #bbb; - white-space: pre; -} - -form.tool { - margin: 1ex; -} diff --git a/var/www/public/resources.json b/var/www/public/resources.json index 1a748cc7..9b12b3e7 100644 --- a/var/www/public/resources.json +++ b/var/www/public/resources.json @@ -2,822 +2,822 @@ "buildings": { "/operahouse": { "description": "A source of cultural influence for your space station.", - "wiki": "http://community.lacunaexpanse.com/wiki/opera-house" + "wiki": "https://tlecommunity.com/wiki/opera-house" }, "/artmuseum": { "description": "A source of cultural influence for your space station.", - "wiki": "http://community.lacunaexpanse.com/wiki/art-museum" + "wiki": "https://tlecommunity.com/wiki/art-museum" }, "/culinaryinstitute": { "description": "A source of cultural influence for your space station.", - "wiki": "http://community.lacunaexpanse.com/wiki/culinary-institute" + "wiki": "https://tlecommunity.com/wiki/culinary-institute" }, "/stationcommand": { "description": "The internal operations of a space station. Controls how big the station can be expanded.", - "wiki": "http://community.lacunaexpanse.com/wiki/station-command-center" + "wiki": "https://tlecommunity.com/wiki/station-command-center" }, "/parliament": { "description": "The central government for the star systems that are controlled by a space station. Laws for the jurisdiction are made here.", - "wiki": "http://community.lacunaexpanse.com/wiki/parliament" + "wiki": "https://tlecommunity.com/wiki/parliament" }, "/policestation": { "description": "The police station manages security on a Space Station. It can help defend the Station against spies as well as detect incoming ships.", - "wiki": "http://community.lacunaexpanse.com/wiki/police-station" + "wiki": "https://tlecommunity.com/wiki/police-station" }, "/warehouse": { "description": "Resource storage for a space station.", - "wiki": "http://community.lacunaexpanse.com/wiki/warehouse" + "wiki": "https://tlecommunity.com/wiki/warehouse" }, "/ibs": { "description": "A means of spreading the culture and influence of a space station's government.", - "wiki": "http://community.lacunaexpanse.com/wiki/interstellar-broadcast-system" + "wiki": "https://tlecommunity.com/wiki/interstellar-broadcast-system" }, "/ssla": { "description": "Allows the construction of Space Station Lab modules. Requires four plots, and this is the top left corner of the building.", - "wiki": "http://community.lacunaexpanse.com/wiki/space-station-lab" + "wiki": "https://tlecommunity.com/wiki/space-station-lab" }, "/sslb": { "description": "Infrastructure required to support Space Station Lab (A).", - "wiki": "http://community.lacunaexpanse.com/wiki/space-station-lab" + "wiki": "https://tlecommunity.com/wiki/space-station-lab" }, "/sslc": { "description": "Infrastructure required to support Space Station Lab (A).", - "wiki": "http://community.lacunaexpanse.com/wiki/space-station-lab" + "wiki": "https://tlecommunity.com/wiki/space-station-lab" }, "/ssld": { "description": "Infrastructure required to support Space Station Lab (A).", - "wiki": "http://community.lacunaexpanse.com/wiki/space-station-lab" + "wiki": "https://tlecommunity.com/wiki/space-station-lab" }, "/distributioncenter": { "description": "A tier two resource storage building. Allows keeping specific resources in reserve.", - "wiki": "http://community.lacunaexpanse.com/wiki/distribution-center" + "wiki": "https://tlecommunity.com/wiki/distribution-center" }, "/saw": { "description": "A railgun system used to protect your planet from enemy ships.", - "wiki": "http://community.lacunaexpanse.com/wiki/shield-against-weapons" + "wiki": "https://tlecommunity.com/wiki/shield-against-weapons" }, "/atmosphericevaporator": { "description": "Produces water by condensing it from the air and soil.", - "wiki": "http://community.lacunaexpanse.com/wiki/atmospheric-evaporator" + "wiki": "https://tlecommunity.com/wiki/atmospheric-evaporator" }, "/greatballofjunk": { "description": "Eliminate waste and give your citizens something to be proud of at the same time.", - "wiki": "http://community.lacunaexpanse.com/wiki/great-ball-of-junk" + "wiki": "https://tlecommunity.com/wiki/great-ball-of-junk" }, "/pyramidjunksculpture": { "description": "Eliminate waste and give your citizens something to be proud of at the same time.", - "wiki": "http://community.lacunaexpanse.com/wiki/pyramid-junk-sculpture" + "wiki": "https://tlecommunity.com/wiki/pyramid-junk-sculpture" }, "/spacejunkpark": { "description": "Eliminate waste and give your citizens something to be proud of at the same time.", - "wiki": "http://community.lacunaexpanse.com/wiki/space-junk-park" + "wiki": "https://tlecommunity.com/wiki/space-junk-park" }, "/junkhengesculpture": { "description": "Eliminate waste and give your citizens something to be proud of at the same time.", - "wiki": "http://community.lacunaexpanse.com/wiki/junk-henge-sculpture" + "wiki": "https://tlecommunity.com/wiki/junk-henge-sculpture" }, "/metaljunkarches": { "description": "Eliminate waste and give your citizens something to be proud of at the same time.", - "wiki": "http://community.lacunaexpanse.com/wiki/metal-junk-arches" + "wiki": "https://tlecommunity.com/wiki/metal-junk-arches" }, "/deployedbleeder": { "description": "Converts planet's resources directly into waste.", - "wiki": "http://community.lacunaexpanse.com/wiki/bleeder" + "wiki": "https://tlecommunity.com/wiki/bleeder" }, "/oracleofanid": { "description": "The all seeing Oracle can help detect enemy threats.", - "wiki": "http://community.lacunaexpanse.com/wiki/oracle-of-anid" + "wiki": "https://tlecommunity.com/wiki/oracle-of-anid" }, "/themepark": { "description": "Produces happiness for your citizens through food and entertainment.", - "wiki": "http://community.lacunaexpanse.com/wiki/theme-park" + "wiki": "https://tlecommunity.com/wiki/theme-park" }, "/geneticslab": { "description": "Allows genetic experiments on captured spies to improve your species.", - "wiki": "http://community.lacunaexpanse.com/wiki/genetics-lab" + "wiki": "https://tlecommunity.com/wiki/genetics-lab" }, "/massadshenge": { "description": "An ancient observatory.", - "wiki": "http://community.lacunaexpanse.com/wiki/massad-s-henge" + "wiki": "https://tlecommunity.com/wiki/massad-s-henge" }, "/gratchsgauntlet": { "description": "The anti-espionage system of the Great Race.", - "wiki": "http://community.lacunaexpanse.com/wiki/gratch-s-gauntlet" + "wiki": "https://tlecommunity.com/wiki/gratch-s-gauntlet" }, "/kasternskeep": { "description": "The place from which the Great Race commanded their armies.", - "wiki": "http://community.lacunaexpanse.com/wiki/kastern-s-keep" + "wiki": "https://tlecommunity.com/wiki/kastern-s-keep" }, "/hallsofvrbansk": { "description": "The source of ancient wisdom.", - "wiki": "http://community.lacunaexpanse.com/wiki/halls-of-vrbansk" + "wiki": "https://tlecommunity.com/wiki/halls-of-vrbansk" }, "/libraryofjith": { "description": "Where the Great Race kept records of their experiments.", - "wiki": "http://community.lacunaexpanse.com/wiki/library-of-jith" + "wiki": "https://tlecommunity.com/wiki/library-of-jith" }, "/thedillonforge": { "description": "Where raw ore formed into glyphs and the glyph buildings were born.", - "wiki": "http://community.lacunaexpanse.com/wiki/the-dillon-forge" + "wiki": "https://tlecommunity.com/wiki/the-dillon-forge" }, "/blackholegenerator": { "description": "An experimental singularity lab engineered by the Great Race.", - "wiki": "http://community.lacunaexpanse.com/wiki/black-hole-generator" + "wiki": "https://tlecommunity.com/wiki/black-hole-generator" }, "/supplypod": { "description": "Used to hold emergency supplies on a damaged colony or on a fledgling colony.", - "wiki": "http://community.lacunaexpanse.com/wiki/supply-pod" + "wiki": "https://tlecommunity.com/wiki/supply-pod" }, "/subspacesupplydepot": { "description": "Helps give a fledgling colony a kickstart.", - "wiki": "http://community.lacunaexpanse.com/wiki/subspace-supply-depot" + "wiki": "https://tlecommunity.com/wiki/subspace-supply-depot" }, "/pantheonofhagness": { "description": "Increases the number of available plots on your planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/pantheon-of-hagness" + "wiki": "https://tlecommunity.com/wiki/pantheon-of-hagness" }, "/crashedshipsite": { "description": "Harvest technology from a crashed ship to make your own ships better.", - "wiki": "http://community.lacunaexpanse.com/wiki/crashed-ship-site" + "wiki": "https://tlecommunity.com/wiki/crashed-ship-site" }, "/citadelofknope": { "description": "Enhances defensive value of your colony against hostile ships and reduces damage taken from fissure debris.", - "wiki": "http://community.lacunaexpanse.com/wiki/citadel-of-knope" + "wiki": "https://tlecommunity.com/wiki/citadel-of-knope" }, "/ravine": { "description": "A natural place to store waste.", - "wiki": "http://community.lacunaexpanse.com/wiki/ravine" + "wiki": "https://tlecommunity.com/wiki/ravine" }, "/fissure": { "description": "The first sign of a dying planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/fissure" + "wiki": "https://tlecommunity.com/wiki/fissure" }, "/amalgusmeadow": { "description": "A wild meadow filled with wild amalgus beans.", - "wiki": "http://community.lacunaexpanse.com/wiki/amalgus-meadow" + "wiki": "https://tlecommunity.com/wiki/amalgus-meadow" }, "/dentonbrambles": { "description": "A thorny patch of brambles, who's roots happen to be the delicious denton roots.", - "wiki": "http://community.lacunaexpanse.com/wiki/denton-brambles" + "wiki": "https://tlecommunity.com/wiki/denton-brambles" }, "/malcudfield": { "description": "A natural source of food.", - "wiki": "http://community.lacunaexpanse.com/wiki/malcud-field" + "wiki": "https://tlecommunity.com/wiki/malcud-field" }, "/lapisforest": { "description": "A natural source of food.", - "wiki": "http://community.lacunaexpanse.com/wiki/lapis-forest" + "wiki": "https://tlecommunity.com/wiki/lapis-forest" }, "/algaepond": { "description": "A natural source of food.", - "wiki": "http://community.lacunaexpanse.com/wiki/algae-pond" + "wiki": "https://tlecommunity.com/wiki/algae-pond" }, "/beeldebannest": { "description": "A natural source of food.", - "wiki": "http://community.lacunaexpanse.com/wiki/beeldeban-nest" + "wiki": "https://tlecommunity.com/wiki/beeldeban-nest" }, "/geothermalvent": { "description": "A natural source of energy from the planet's core.", - "wiki": "http://community.lacunaexpanse.com/wiki/geo-thermal-vent" + "wiki": "https://tlecommunity.com/wiki/geo-thermal-vent" }, "/naturalspring": { "description": "A natural source of water from the planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/natural-spring" + "wiki": "https://tlecommunity.com/wiki/natural-spring" }, "/interdimensionalrift": { "description": "The Great Race somehow learned a technique to create a pocket of subspace with a door into our world. This allowed them to store lots of resources, without taking up much space.", - "wiki": "http://community.lacunaexpanse.com/wiki/interdimensional-rift" + "wiki": "https://tlecommunity.com/wiki/interdimensional-rift" }, "/templeofthedrajilites": { "description": "The Temple of a group of star gazers from the Great Race. It was their belief that through ritual they could see other worlds.", - "wiki": "http://community.lacunaexpanse.com/wiki/temple-of-the-drajilites" + "wiki": "https://tlecommunity.com/wiki/temple-of-the-drajilites" }, "/sand": { "description": "Decoration for your planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/patch-of-sand" + "wiki": "https://tlecommunity.com/wiki/patch-of-sand" }, "/grove": { "description": "Decoration for your planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/grove-of-trees" + "wiki": "https://tlecommunity.com/wiki/grove-of-trees" }, "/lagoon": { "description": "Decoration for your planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/lagoon" + "wiki": "https://tlecommunity.com/wiki/lagoon" }, "/kalavianruins": { "description": "Attracts tourists and creates a sense of wonder for locals, increasing the happiness of your planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/kalavian-ruins" + "wiki": "https://tlecommunity.com/wiki/kalavian-ruins" }, "/essentiavein": { "description": "Produces trace amounts of Essentia.", - "wiki": "http://community.lacunaexpanse.com/wiki/essentia-vein" + "wiki": "https://tlecommunity.com/wiki/essentia-vein" }, "/volcano": { "description": "A natural source of ore.", - "wiki": "http://community.lacunaexpanse.com/wiki/volcano" + "wiki": "https://tlecommunity.com/wiki/volcano" }, "/luxuryhousing": { "description": "Produces more happiness than the Entertainment District, but costs more too.", - "wiki": "http://community.lacunaexpanse.com/wiki/luxury-housing" + "wiki": "https://tlecommunity.com/wiki/luxury-housing" }, "/pilottraining": { "description": "Increases speed and stealth of new piloted ships, and enables building Fighters.", - "wiki": "http://community.lacunaexpanse.com/wiki/pilot-training-facility" + "wiki": "https://tlecommunity.com/wiki/pilot-training-facility" }, "/missioncommand": { "description": "Lists available missions in your zone. You can view one mission per level of the Mission Command.", - "wiki": "http://community.lacunaexpanse.com/wiki/mission-command" + "wiki": "https://tlecommunity.com/wiki/mission-command" }, "/cloakinglab": { "description": "Increases the stealth of new ships.", - "wiki": "http://community.lacunaexpanse.com/wiki/cloaking-lab" + "wiki": "https://tlecommunity.com/wiki/cloaking-lab" }, "/munitionslab": { "description": "Enables you to build the Detonator, Snark, and Seeker robotic war ships.", - "wiki": "http://community.lacunaexpanse.com/wiki/munitions-lab" + "wiki": "https://tlecommunity.com/wiki/munitions-lab" }, "/crater": { "description": "Decoration for your planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/crater" + "wiki": "https://tlecommunity.com/wiki/crater" }, "/rockyoutcrop": { "description": "Decoration for your planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/rocky-outcropping" + "wiki": "https://tlecommunity.com/wiki/rocky-outcropping" }, - "/lake": { "description": "Decoration for your planet.", "wiki": "http://community.lacunaexpanse.com/wiki/lake" }, + "/lake": { "description": "Decoration for your planet.", "wiki": "https://tlecommunity.com/wiki/lake" }, "/beach1": { "description": "Decoration for your planet. Use with other beach tiles to create a beach front.", - "wiki": "http://community.lacunaexpanse.com/wiki/beach-1" + "wiki": "https://tlecommunity.com/wiki/beach-1" }, "/beach2": { "description": "Decoration for your planet. Use with other beach tiles to create a beach front.", - "wiki": "http://community.lacunaexpanse.com/wiki/beach-2" + "wiki": "https://tlecommunity.com/wiki/beach-2" }, "/beach3": { "description": "Decoration for your planet. Use with other beach tiles to create a beach front.", - "wiki": "http://community.lacunaexpanse.com/wiki/beach-3" + "wiki": "https://tlecommunity.com/wiki/beach-3" }, "/beach4": { "description": "Decoration for your planet. Use with other beach tiles to create a beach front.", - "wiki": "http://community.lacunaexpanse.com/wiki/beach-4" + "wiki": "https://tlecommunity.com/wiki/beach-4" }, "/beach5": { "description": "Decoration for your planet. Use with other beach tiles to create a beach front.", - "wiki": "http://community.lacunaexpanse.com/wiki/beach-5" + "wiki": "https://tlecommunity.com/wiki/beach-5" }, "/beach6": { "description": "Decoration for your planet. Use with other beach tiles to create a beach front.", - "wiki": "http://community.lacunaexpanse.com/wiki/beach-6" + "wiki": "https://tlecommunity.com/wiki/beach-6" }, "/beach7": { "description": "Decoration for your planet. Use with other beach tiles to create a beach front.", - "wiki": "http://community.lacunaexpanse.com/wiki/beach-7" + "wiki": "https://tlecommunity.com/wiki/beach-7" }, "/beach8": { "description": "Decoration for your planet. Use with other beach tiles to create a beach front.", - "wiki": "http://community.lacunaexpanse.com/wiki/beach-8" + "wiki": "https://tlecommunity.com/wiki/beach-8" }, "/beach9": { "description": "Decoration for your planet. Use with other beach tiles to create a beach front.", - "wiki": "http://community.lacunaexpanse.com/wiki/beach-9" + "wiki": "https://tlecommunity.com/wiki/beach-9" }, "/beach10": { "description": "Decoration for your planet. Use with other beach tiles to create a beach front.", - "wiki": "http://community.lacunaexpanse.com/wiki/beach-10" + "wiki": "https://tlecommunity.com/wiki/beach-10" }, "/beach11": { "description": "Decoration for your planet. Use with other beach tiles to create a beach front.", - "wiki": "http://community.lacunaexpanse.com/wiki/beach-11" + "wiki": "https://tlecommunity.com/wiki/beach-11" }, "/beach12": { "description": "Decoration for your planet. Use with other beach tiles to create a beach front.", - "wiki": "http://community.lacunaexpanse.com/wiki/beach-12" + "wiki": "https://tlecommunity.com/wiki/beach-12" }, "/beach13": { "description": "Decoration for your planet. Use with other beach tiles to create a beach front.", - "wiki": "http://community.lacunaexpanse.com/wiki/beach-13" + "wiki": "https://tlecommunity.com/wiki/beach-13" }, "/algae": { "description": "Produces algae to be used as food by your empire. It also produces a small amount of energy and can be built in any orbit. The higher the level of the cropper the more food and energy it produces.", - "wiki": "http://community.lacunaexpanse.com/wiki/algae-cropper" + "wiki": "https://tlecommunity.com/wiki/algae-cropper" }, "/apple": { "description": "Allows you to grow apples to feed your empire. You can only grow apples in orbit 3 (its goldilox zone). Food production increases for every level of the orchard. All plants need a source of phosphorus to photosynthesize their food. Therefore you need a good source of gypsum, sulfur, or monazite for plants to thrive.", - "wiki": "http://community.lacunaexpanse.com/wiki/apple-orchard" + "wiki": "https://tlecommunity.com/wiki/apple-orchard" }, "/archaeology": { "description": "Allows you to search through specific types of ore to find Glyphs.", - "wiki": "http://community.lacunaexpanse.com/wiki/archaeology-ministry" + "wiki": "https://tlecommunity.com/wiki/archaeology-ministry" }, "/bean": { "description": "Allows you to grow beans to be used as food by your empire. You can only grow beans in orbit 4 (its goldilox zone). The higher the level of the plantation the more food it produces. All plants need a source of phosphorus to photosynthesize their food. Therefore you need a good source of gypsum, sulfur, or monazite for plants to thrive.", - "wiki": "http://community.lacunaexpanse.com/wiki/amalgus-bean-plantation" + "wiki": "https://tlecommunity.com/wiki/amalgus-bean-plantation" }, "/beeldeban": { "description": "Allows the raising of beeldeban to be used as food for your empire. The higher the building level the more food is produced.", - "wiki": "http://community.lacunaexpanse.com/wiki/beeldeban-herder" + "wiki": "https://tlecommunity.com/wiki/beeldeban-herder" }, "/bread": { "description": "Converts wheat from the Wheat Farm at a minimal loss into bread to be used as food by your empire. The conversion rate increases with every level of the Bakery.", - "wiki": "http://community.lacunaexpanse.com/wiki/bakery" + "wiki": "https://tlecommunity.com/wiki/bakery" }, "/burger": { "description": "Converts fungus from the Malcud Fungus Farm and produces burgers, at a small loss, to food. The higher the building level the more food is converted.", - "wiki": "http://community.lacunaexpanse.com/wiki/burger-packer" + "wiki": "https://tlecommunity.com/wiki/burger-packer" }, "/capitol": { "description": "Provides protection from Insurrection, and produces happiness.", - "wiki": "http://community.lacunaexpanse.com/wiki/capitol" + "wiki": "https://tlecommunity.com/wiki/capitol" }, "/cheese": { "description": "Converts milk from the Dairy Farm into cheese at a small loss to be used as food. The higher the building level the more food is converted.", - "wiki": "http://community.lacunaexpanse.com/wiki/cheese-maker" + "wiki": "https://tlecommunity.com/wiki/cheese-maker" }, "/chip": { "description": "Converts roots from the Denton Root Farm and turns it into root chips as food for your empire at a minimal loss. The higher the level of the Chip Frier the more food it converts.", - "wiki": "http://community.lacunaexpanse.com/wiki/denton-root-chip-frier" + "wiki": "https://tlecommunity.com/wiki/denton-root-chip-frier" }, "/cider": { "description": "Allows you to convert apples from the Apple Orchard into cider with a small amount of loss. The amount of apples converted into cider increases with the level of the building.", - "wiki": "http://community.lacunaexpanse.com/wiki/apple-cider-bottler" + "wiki": "https://tlecommunity.com/wiki/apple-cider-bottler" }, "/corn": { "description": "Produces corn to be used as food by your empire. The corn plantation can only be used in orbits 2 and 3. The higher the level of the plantation the more food is produced. All plants need a source of phosphorus to photosynthesize their food. Therefore you need a good source of gypsum, sulfur, or monazite for plants to thrive.", - "wiki": "http://community.lacunaexpanse.com/wiki/corn-plantation" + "wiki": "https://tlecommunity.com/wiki/corn-plantation" }, "/cornmeal": { "description": "Converts corn from the Corn Plantation into corn meal at a small loss to be used as food. The higher the building level the more food is converted.", - "wiki": "http://community.lacunaexpanse.com/wiki/corn-meal-grinder" + "wiki": "https://tlecommunity.com/wiki/corn-meal-grinder" }, "/dairy": { "description": "Allows you to produce food via dairy cattle. It can only be used in orbit 3 (its goldilox zone). The higher the level of farm the more food it produces. Cows require certain minerals in their diet in order to produce lots of high quality milk. Therefore in order to have a dairy farm you're going to need a good supply of trona.", - "wiki": "http://community.lacunaexpanse.com/wiki/dairy-farm" + "wiki": "https://tlecommunity.com/wiki/dairy-farm" }, "/denton": { "description": "Produces roots to be used as food by your empire. The roots only grow in orbits 5 and 6 (its goldilox zone). The higher the level of the patch the more food it produces. All plants need a source of phosphorus to photosynthesize their food. Therefore you need a good source of gypsum, sulfur, or monazite for plants to thrive.", - "wiki": "http://community.lacunaexpanse.com/wiki/denton-root-patch" + "wiki": "https://tlecommunity.com/wiki/denton-root-patch" }, "/development": { "description": "Allows you to monitor your build queue and subsidize the construction of buildings through the use of Essentia. The higher the level of the building the more buildings you can have in your queue, however the queue still builds in series not in parallel. The number of projects that can be placed in the queue is the level of the ministry plus 1. ", - "wiki": "http://community.lacunaexpanse.com/wiki/development-ministry" + "wiki": "https://tlecommunity.com/wiki/development-ministry" }, "/embassy": { "description": "Allows the formation of alliances. It is also a prerequisite to building the Space Station. Each level of the Embassy allows 2 more members to join the alliance. Each level of the embassy allows 1 stash exchange per day, and 10,000 more resources per exchange.", - "wiki": "http://community.lacunaexpanse.com/wiki/embassy" + "wiki": "https://tlecommunity.com/wiki/embassy" }, "/energyreserve": { "description": "Stores your energy with a minimal amount of loss. Increasing the level of the building raises the amount of energy stored.", - "wiki": "http://community.lacunaexpanse.com/wiki/energy-reserve" + "wiki": "https://tlecommunity.com/wiki/energy-reserve" }, "/entertainment": { "description": "Increases your empire's happiness by providing a place for your citizens to unwind through activities such as casinos, restaurants, clubs and other amusements. The higher the building level the more happiness is produced. It can also be a source of essentia through its lottery system.", - "wiki": "http://community.lacunaexpanse.com/wiki/entertainment-district" + "wiki": "https://tlecommunity.com/wiki/entertainment-district" }, "/espionage": { "description": "Allows the construction of spy pods and spy shuttles at the shipyard. It also allows better training of your spies. The higher the building level, the more effective your spies will be applying their trade. ", - "wiki": "http://community.lacunaexpanse.com/wiki/espionage-ministry" + "wiki": "https://tlecommunity.com/wiki/espionage-ministry" }, "/foodreserve": { "description": "Stores your food with a minimal amount of spoilage. It also gives you a report of the types of food you have stored. Increasing the level of this building increases the amount of food that can be stored.", - "wiki": "http://community.lacunaexpanse.com/wiki/food-reserve" + "wiki": "https://tlecommunity.com/wiki/food-reserve" }, "/fission": { "description": "Produces energy by splitting atoms. This way of producing energy is very efficient on an waste per energy produced ratio. The higher the building level the more energy is produced. Splitting the atoms non-energenic particles doesn't produce much power, so you'll need radioactive ore to power your fission plant, such as uraninite or monazite.", - "wiki": "http://community.lacunaexpanse.com/wiki/fission-energy-plant" + "wiki": "https://tlecommunity.com/wiki/fission-energy-plant" }, "/fusion": { "description": "Produces energy by fusing atoms together. This type of energy is even more efficient than the Fission Energy Plant on a waste per energy produced ratio. Requires a high level University to construct. The higher the building level the more energy is produced. Unfortunately the fusion plant produces enormous amounts of heat as well which requires coolants such as molten lead or salt. Therefore you'll need a good supply of galena or halite to build one.", - "wiki": "http://community.lacunaexpanse.com/wiki/fusion-energy-plant" + "wiki": "https://tlecommunity.com/wiki/fusion-energy-plant" }, "/gasgiantlab": { "description": "Does research on the gas giant ship which deploys into a gas giant platform. The gas giant platform allows settlement of a gas giant. The higher the building level the higher the level of the platform deployed from the gas giant ship.", - "wiki": "http://community.lacunaexpanse.com/wiki/gas-giant-lab" + "wiki": "https://tlecommunity.com/wiki/gas-giant-lab" }, "/gasgiantplatform": { "description": "Increases the available plots on a gas giant.", - "wiki": "http://community.lacunaexpanse.com/wiki/gas-giant-settlement-platform" + "wiki": "https://tlecommunity.com/wiki/gas-giant-settlement-platform" }, "/geo": { "description": "Produces energy with a minimal amount of waste by using the planets own processes such as wind, waves, solar and geo thermal. The higher the level of the building the more energy is produced.", - "wiki": "http://community.lacunaexpanse.com/wiki/geo-energy-plant" + "wiki": "https://tlecommunity.com/wiki/geo-energy-plant" }, "/hydrocarbon": { "description": "Produces large amounts of energy at the cost of producing large amounts of waste by burning hydrocarbons. It also uses significant amounts of ore in the production of this energy. The higher the building level the more energy is produced. Hydrocarbon energy is derived from burning hydrocarbons, so you'll need a good supply of kerogen, methane, or anthracite in order to power it.", - "wiki": "http://community.lacunaexpanse.com/wiki/hydrocarbon-energy-plant" + "wiki": "https://tlecommunity.com/wiki/hydrocarbon-energy-plant" }, "/intelligence": { "description": "Trains spies. You may train 3 spies per level of this building. You may only construct 1 Intelligence Ministry on a planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/intelligence-ministry" + "wiki": "https://tlecommunity.com/wiki/intelligence-ministry" }, "/inteltraining": { "description": "Trains spies in the ways of intelligence gathering. You may only construct 1 Intel Training Facility on a planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/intel-training-facility" + "wiki": "https://tlecommunity.com/wiki/intel-training-facility" }, "/lapis": { "description": "Produces lapis to be used as food by your empire. Lapis can only be grown in orbit 2 (its goldilox zone). The higher the level of the orchard the more food it produces. All plants need a source of phosphorus to photosynthesize their food. Therefore you need a good source of gypsum, sulfur, or monazite for plants to thrive.", - "wiki": "http://community.lacunaexpanse.com/wiki/lapis-orchard" + "wiki": "https://tlecommunity.com/wiki/lapis-orchard" }, "/malcud": { "description": "Produces fungus to be used as food by your empire. The Farm also consumes a small amount of waste and can be built in any orbit. The higher the level of the farm the more food is produced and waste consumed.", - "wiki": "http://community.lacunaexpanse.com/wiki/malcud-fungus-farm" + "wiki": "https://tlecommunity.com/wiki/malcud-fungus-farm" }, "/mayhemtraining": { "description": "Trains spies in the art of destruction. You may only construct 1 Mayhem Training Facility on a planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/mayhem-training-facility" + "wiki": "https://tlecommunity.com/wiki/mayhem-training-facility" }, "/mercenariesguild": { "description": "A black market for buying and selling well trained spies.", - "wiki": "http://community.lacunaexpanse.com/wiki/mercenaries-guild" + "wiki": "https://tlecommunity.com/wiki/mercenaries-guild" }, "/mine": { "description": "Extracts mineral from your planet in the form of ore. The amounts of each mineral extracted depends on the concentration and composition of the planet. The higher the level of the mine the more ore is extracted.", - "wiki": "http://community.lacunaexpanse.com/wiki/mine" + "wiki": "https://tlecommunity.com/wiki/mine" }, "/miningministry": { "description": "Allows you to harvest resources from asteroids. Allows the construction of Mining Platform Ships. Every two levels allows an additional Mining Platform. Each level increases the output of all Mining Platforms controlled by the Ministry.", - "wiki": "http://community.lacunaexpanse.com/wiki/mining-ministry" + "wiki": "https://tlecommunity.com/wiki/mining-ministry" }, "/network19": { "description": "Your empire's source for up to the minute news in your region of the Expanse. Get updates on what other empire's are doing and what you'd prefer they weren't doing. The Network 19 feed can be manipulated through the use of of espionage and political policy. Well informed people are happy people so the network also produces happiness. The higher the building level the more of the expanse you can get news from and the more happiness is produced. ", - "wiki": "http://community.lacunaexpanse.com/wiki/network-19-affiliate" + "wiki": "https://tlecommunity.com/wiki/network-19-affiliate" }, "/observatory": { "description": "Allows the construction of probes and colony ships at the shipyard. It also provides a list of all your active probes and the stars they are observing. A higher building level allows more probes to be constructed.", - "wiki": "http://community.lacunaexpanse.com/wiki/observatory" + "wiki": "https://tlecommunity.com/wiki/observatory" }, "/orerefinery": { "description": "Increases the amount of ore extracted from each terrestrial ore producing structure by purifying the ore and producing less waste. The higher the refinery level the higher the purification process and even greater amounts of ore are extracted. The ore refinery requires sufficient amounts of either sulfur or fluorite being produced in order to process ore.", - "wiki": "http://community.lacunaexpanse.com/wiki/ore-refinery" + "wiki": "https://tlecommunity.com/wiki/ore-refinery" }, "/orestorage": { "description": "Store the ore that is pulled from the Mine. The higher the level of the building the more ore can be stored.", - "wiki": "http://community.lacunaexpanse.com/wiki/ore-storage-tanks" + "wiki": "https://tlecommunity.com/wiki/ore-storage-tanks" }, "/oversight": { "description": "Reduces the amount of time buildings take to upgrade through better project management. All buildings will be produced 3% faster per level of the Oversight Ministry.", - "wiki": "http://community.lacunaexpanse.com/wiki/oversight-ministry" + "wiki": "https://tlecommunity.com/wiki/oversight-ministry" }, "/pancake": { "description": "Converts potatoes from the Potato Plantation into pancakes at a minimal loss to be used as food by your empire. The higher the level of the factory, the more food is converted.", - "wiki": "http://community.lacunaexpanse.com/wiki/pancake-factory" + "wiki": "https://tlecommunity.com/wiki/pancake-factory" }, "/park": { "description": "A place for your people to gather and enjoy nature or hold large scale public events. The Park allows you to throw parties for your citizens to increase their happiness. The more varieties of foods you bring to the party the more happiness is produced.", - "wiki": "http://community.lacunaexpanse.com/wiki/park" + "wiki": "https://tlecommunity.com/wiki/park" }, "/pie": { "description": "Converts lapis from the Lapis Orchard into pies at minimal loss to be used as food by your empire. The higher the level of the bakery, the more food is converted.", - "wiki": "http://community.lacunaexpanse.com/wiki/pie-bakery" + "wiki": "https://tlecommunity.com/wiki/pie-bakery" }, "/planetarycommand": { "description": "Houses the central government for your empire. This is your \"flag in the ground\" that lets everyone know you've staked your claim to a planet. It provides some basic resources and and storage for those resources both of which increase with the level of this building. The planetary command also provides some critical reports on your planetary activities such as total resource production and total resource storage for the planet it's constructed on.", - "wiki": "http://community.lacunaexpanse.com/wiki/planetary-command-center" + "wiki": "https://tlecommunity.com/wiki/planetary-command-center" }, "/politicstraining": { "description": "Trains spies in the dark art of social engineering. You may only construct 1 Politics Training Facility on a planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/politics-training-facility" + "wiki": "https://tlecommunity.com/wiki/politics-training-facility" }, "/potato": { "description": "Allows you to grow potatoes to be used as food for you empire. The patch can only be used in orbits 3 and 4 (its goldilox zone). The higher the level of the patch the more food it produces. All plants need a source of phosphorus to photosynthesize their food. Therefore you need a good source of gypsum, sulfur, or monazite for plants to thrive.", - "wiki": "http://community.lacunaexpanse.com/wiki/potato-patch" + "wiki": "https://tlecommunity.com/wiki/potato-patch" }, "/propulsion": { "description": "Allows your ships to move faster through space by way of upgraded engines. The higher the building level the faster your ships move. All ships originating from this planet are affected. In order to produce high performance engines you'll need a good supply of structural minerals such as rutile, chromite, bauxite, magnetite, beryl, or goethite.", - "wiki": "http://community.lacunaexpanse.com/wiki/propulsion-system-factory" + "wiki": "https://tlecommunity.com/wiki/propulsion-system-factory" }, "/security": { "description": "Increases the effectiveness of your counter-spies and allows you to detect foreign spies. The higher the building level the more training your counter-spies receive. The building will be able to detect foreign spies with a level equal to or lower than the building. It will also help detect incoming ships containing spies.", - "wiki": "http://community.lacunaexpanse.com/wiki/security-ministry" + "wiki": "https://tlecommunity.com/wiki/security-ministry" }, "/shake": { "description": "Converts the beeldeban that are harvested in the Beeldeban Herder into protein shakes, at a small loss, to be used as food. The higher the level of the factory the more food is converted.", - "wiki": "http://community.lacunaexpanse.com/wiki/beeldeban-protein-shake-factory" + "wiki": "https://tlecommunity.com/wiki/beeldeban-protein-shake-factory" }, "/shipyard": { "description": "Constructs ships. The types of ships that can be built in the Shipyard are dependent on some of the other buildings on your planet. The higher the building level the faster ships are produced. In addition, you may queue one ship per level of shipyard.", - "wiki": "http://community.lacunaexpanse.com/wiki/shipyard" + "wiki": "https://tlecommunity.com/wiki/shipyard" }, "/singularity": { "description": "Produces energy by pulling it from subspace. This is the cleanest and most powerful form of energy in the universe. This is extremely expensive to build and requires a very high level University to construct. The higher the building level the more energy is produced.", - "wiki": "http://community.lacunaexpanse.com/wiki/singularity-energy-plant" + "wiki": "https://tlecommunity.com/wiki/singularity-energy-plant" }, "/soup": { "description": "Converts beans from the Amalgus Bean Plantation at a minimal loss into soup to be used as food for your empire. The higher the level of the cannery the more soup is produced.", - "wiki": "http://community.lacunaexpanse.com/wiki/soup-cannery" + "wiki": "https://tlecommunity.com/wiki/soup-cannery" }, "/spaceport": { "description": "Acts as the hangar and control tower for your ships. Here is where you can monitor your ships that are in transit. Be careful as the Space Port can only hold a limited number of ships, if there is no more room in the Space Port when a ship arrives or is built, it will be destroyed. The Space Port can hold double its level in ships and queue its level in ships. ", - "wiki": "http://community.lacunaexpanse.com/wiki/space-port" + "wiki": "https://tlecommunity.com/wiki/space-port" }, "/stockpile": { "description": "Allows resource buildings to go above level 20. Provides storage.", - "wiki": "http://community.lacunaexpanse.com/wiki/stockpile" + "wiki": "https://tlecommunity.com/wiki/stockpile" }, "/syrup": { "description": "Takes algae from the Algae Cropper and converts it in to Syrup with a small loss to be used as food. The higher the level of the bottler the more food is produced.", - "wiki": "http://community.lacunaexpanse.com/wiki/syrup-bottler" + "wiki": "https://tlecommunity.com/wiki/syrup-bottler" }, "/thefttraining": { "description": "Trains spies in the art of appropriation. You may only construct 1 Theft Training Facility on a planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/theft-training-facility" + "wiki": "https://tlecommunity.com/wiki/theft-training-facility" }, "/terraforminglab": { "description": "The Terraforming Lab is where research is done on the production of terraforming platform ships. Terraforming platform ships deploy into terraforming platforms which allows you to colonize planets your species wouldn't normally be capable of colonizing. The level of the building determines the level of the platform that is deployed from the ship.", - "wiki": "http://community.lacunaexpanse.com/wiki/terraforming-lab" + "wiki": "https://tlecommunity.com/wiki/terraforming-lab" }, "/terraformingplatform": { "description": "Increases the available build space on a planet that is not naturally inhabitable by your species.", - "wiki": "http://community.lacunaexpanse.com/wiki/terraforming-platform" + "wiki": "https://tlecommunity.com/wiki/terraforming-platform" }, "/trade": { "description": "Allows access to the interstellar market. Through it you can set up trades for resources with other empires. This building is a prerequisite to building cargo ships, which carry your trade goods, in the shipyard. The higher the building level the more resources your cargo ships can carry.", - "wiki": "http://community.lacunaexpanse.com/wiki/trade-ministry" + "wiki": "https://tlecommunity.com/wiki/trade-ministry" }, "/transporter": { "description": "Allows the instant transport of resources to a destination, but requires Essentia. The transporter also allows conversion of resources through trading with the Lacunans. The higher the building level the more goods can be transported.", - "wiki": "http://community.lacunaexpanse.com/wiki/subspace-transporter" + "wiki": "https://tlecommunity.com/wiki/subspace-transporter" }, "/university": { "description": "Is the key to growth for your empire. Other buildings can not be upgraded higher than the university building level plus 1. Your university's level is empire wide where construction level of buildings on other planets is concerned. Many of the more powerful buildings that can be constructed require a very high level University. The University is also a source of happiness for your empire. ", - "wiki": "http://community.lacunaexpanse.com/wiki/university" + "wiki": "https://tlecommunity.com/wiki/university" }, "/wastedigester": { "description": "Converts waste into ore. The higher the building level the more ore is produced and waste consumed.", - "wiki": "http://community.lacunaexpanse.com/wiki/waste-digester" + "wiki": "https://tlecommunity.com/wiki/waste-digester" }, "/wasteenergy": { "description": "Produces energy by burning your empire's waste. Producing energy this way is far less efficient than other types of energy production, but the benefit is that waste is reduced. The higher the building level the more energy is produced and waste consumed. In order to build and maintain the blast furnace you need a good supply of insulating ores such as zircon, beryl, and gypsum.", - "wiki": "http://community.lacunaexpanse.com/wiki/waste-energy-plant" + "wiki": "https://tlecommunity.com/wiki/waste-energy-plant" }, "/wasterecycling": { "description": "Allows you to manually convert large batches of waste into energy, ore and water. The more waste you convert, the longer it will take to make the resources you want. The higher the level of the building the faster the conversion will take place. You can also spend a small amount of Essentia to convert the waste instantly.", - "wiki": "http://community.lacunaexpanse.com/wiki/waste-recycling-center" + "wiki": "https://tlecommunity.com/wiki/waste-recycling-center" }, "/wasteexchanger": { "description": "The Waste Exchanger is a combination of a waste recycling center, waste sequestration well, and a waste treatment center. It tears apart waste at a molecular level and recombines it into useful resources.", - "wiki": "http://community.lacunaexpanse.com/wiki/waste-exchanger" + "wiki": "https://tlecommunity.com/wiki/waste-exchanger" }, "/wastesequestration": { "description": "Stores waste. Waste that is not stored turns into pollution and lowers your empire's happiness. The higher the building level the more waste can be stored.", - "wiki": "http://community.lacunaexpanse.com/wiki/waste-sequestration-well" + "wiki": "https://tlecommunity.com/wiki/waste-sequestration-well" }, "/wastetreatment": { "description": "Converts waste into water, ore, and energy. Waste treatment requires special chemical compounds derived from halite, sulfur, and trona.", - "wiki": "http://community.lacunaexpanse.com/wiki/waste-treatment-center" + "wiki": "https://tlecommunity.com/wiki/waste-treatment-center" }, "/waterproduction": { "description": "Converts energy and ore into water. This is especially useful on planets with low concentrations of water. A higher building level means more resources are converted.", - "wiki": "http://community.lacunaexpanse.com/wiki/water-production-plant" + "wiki": "https://tlecommunity.com/wiki/water-production-plant" }, "/waterpurification": { "description": "Produces water from the planet's sources. The higher the building level the more water it can purify.", - "wiki": "http://community.lacunaexpanse.com/wiki/water-purification-plant" + "wiki": "https://tlecommunity.com/wiki/water-purification-plant" }, "/waterreclamation": { "description": "Converts waste into water. A higher building level means more resources are converted. If you don't have a good supply of halite or sulfur you cannot treat waste water.", - "wiki": "http://community.lacunaexpanse.com/wiki/water-reclamation-facility" + "wiki": "https://tlecommunity.com/wiki/water-reclamation-facility" }, "/waterstorage": { "description": "Stores the water you've collected. A higher building level allows more water to be stored.", - "wiki": "http://community.lacunaexpanse.com/wiki/water-storage-tank" + "wiki": "https://tlecommunity.com/wiki/water-storage-tank" }, "/wheat": { "description": "Allows you to grow wheat on your planet. You can only grow wheat on planets that are in orbits 2, 3 or 4 (the goldilox zone). The Farm will produce more wheat for each level it is increased. All plants need a source of phosphorus to photosynthesize their food. Therefore you need a good source of gypsum, sulfur, or monazite for plants to thrive.", - "wiki": "http://community.lacunaexpanse.com/wiki/wheat-farm" + "wiki": "https://tlecommunity.com/wiki/wheat-farm" }, "/lcota": { "description": "A self contained city that produces all it's own resources and waste management. It also produces a lot extra for you to use to support your other infrastructure. Be sure to place it where all the plots around it are unoccupied, and on a planet where you have 9 available plots.", - "wiki": "http://community.lacunaexpanse.com/wiki/lost-city-of-tyleon" + "wiki": "https://tlecommunity.com/wiki/lost-city-of-tyleon" }, "/lcotb": { "description": "A self contained city that produces all it's own resources and waste management. It also produces a lot extra for you to use to support your other infrastructure.", - "wiki": "http://community.lacunaexpanse.com/wiki/lost-city-of-tyleon" + "wiki": "https://tlecommunity.com/wiki/lost-city-of-tyleon" }, "/lcotc": { "description": "A self contained city that produces all it's own resources and waste management. It also produces a lot extra for you to use to support your other infrastructure.", - "wiki": "http://community.lacunaexpanse.com/wiki/lost-city-of-tyleon" + "wiki": "https://tlecommunity.com/wiki/lost-city-of-tyleon" }, "/lcotd": { "description": "A self contained city that produces all it's own resources and waste management. It also produces a lot extra for you to use to support your other infrastructure.", - "wiki": "http://community.lacunaexpanse.com/wiki/lost-city-of-tyleon" + "wiki": "https://tlecommunity.com/wiki/lost-city-of-tyleon" }, "/lcote": { "description": "A self contained city that produces all it's own resources and waste management. It also produces a lot extra for you to use to support your other infrastructure.", - "wiki": "http://community.lacunaexpanse.com/wiki/lost-city-of-tyleon" + "wiki": "https://tlecommunity.com/wiki/lost-city-of-tyleon" }, "/lcotf": { "description": "A self contained city that produces all it's own resources and waste management. It also produces a lot extra for you to use to support your other infrastructure.", - "wiki": "http://community.lacunaexpanse.com/wiki/lost-city-of-tyleon" + "wiki": "https://tlecommunity.com/wiki/lost-city-of-tyleon" }, "/lcotg": { "description": "A self contained city that produces all it's own resources and waste management. It also produces a lot extra for you to use to support your other infrastructure.", - "wiki": "http://community.lacunaexpanse.com/wiki/lost-city-of-tyleon" + "wiki": "https://tlecommunity.com/wiki/lost-city-of-tyleon" }, "/lcoth": { "description": "A self contained city that produces all it's own resources and waste management. It also produces a lot extra for you to use to support your other infrastructure.", - "wiki": "http://community.lacunaexpanse.com/wiki/lost-city-of-tyleon" + "wiki": "https://tlecommunity.com/wiki/lost-city-of-tyleon" }, "/lcoti": { "description": "A self contained city that produces all it's own resources and waste management. It also produces a lot extra for you to use to support your other infrastructure.", - "wiki": "http://community.lacunaexpanse.com/wiki/lost-city-of-tyleon" + "wiki": "https://tlecommunity.com/wiki/lost-city-of-tyleon" } }, "ships": { "stake": { "description": "Allows you to claim a planet prior to your colony ship arriving.", - "wiki": "http://community.lacunaexpanse.com/wiki/stake" + "wiki": "https://tlecommunity.com/wiki/stake" }, "thud": { "description": "Temporarily destroys plots on a planet's surface.", - "wiki": "http://community.lacunaexpanse.com/wiki/thud" + "wiki": "https://tlecommunity.com/wiki/thud" }, "sweeper": { "description": "An upgraded Fighter whose primary role is offense rather than defense.", - "wiki": "http://community.lacunaexpanse.com/wiki/sweeper" + "wiki": "https://tlecommunity.com/wiki/sweeper" }, "supply_pod": { "description": "Can deliver resources and creates temporary storage for 24 hours on a remote planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/supply-pod" + "wiki": "https://tlecommunity.com/wiki/supply-pod" }, "supply_pod2": { "description": "A larger version of the Supply Pod.", - "wiki": "http://community.lacunaexpanse.com/wiki/supply-pod" + "wiki": "https://tlecommunity.com/wiki/supply-pod" }, "supply_pod3": { "description": "A very large version of the Supply Pod.", - "wiki": "http://community.lacunaexpanse.com/wiki/supply-pod" + "wiki": "https://tlecommunity.com/wiki/supply-pod" }, "supply_pod4": { "description": "A huge version of the Supply Pod.", - "wiki": "http://community.lacunaexpanse.com/wiki/supply-pod" + "wiki": "https://tlecommunity.com/wiki/supply-pod" }, "placebo": { "description": "Use to fake an attack on another player.", - "wiki": "http://community.lacunaexpanse.com/wiki/placebo" + "wiki": "https://tlecommunity.com/wiki/placebo" }, "placebo2": { "description": "A faster and more stealthed version of the Placebo.", - "wiki": "http://community.lacunaexpanse.com/wiki/placebo" + "wiki": "https://tlecommunity.com/wiki/placebo" }, "placebo3": { "description": "A faster and more stealthed version of the Placebo II.", - "wiki": "http://community.lacunaexpanse.com/wiki/placebo" + "wiki": "https://tlecommunity.com/wiki/placebo" }, "placebo4": { "description": "A faster and more stealthed version of the Placebo III.", - "wiki": "http://community.lacunaexpanse.com/wiki/placebo" + "wiki": "https://tlecommunity.com/wiki/placebo" }, "placebo5": { "description": "A faster and more stealthed version of the Placebo IV.", - "wiki": "http://community.lacunaexpanse.com/wiki/placebo" + "wiki": "https://tlecommunity.com/wiki/placebo" }, "placebo6": { "description": "A faster and more stealthed version of the Placebo V.", - "wiki": "http://community.lacunaexpanse.com/wiki/placebo" + "wiki": "https://tlecommunity.com/wiki/placebo" }, "probe": { "description": "Allows you to view the bodies of a system if sent to a star. Probes are shared among members of the same alliance.", - "wiki": "http://community.lacunaexpanse.com/wiki/probe" + "wiki": "https://tlecommunity.com/wiki/probe" }, "colony_ship": { "description": "Use to create a new colony for your empire.", - "wiki": "http://community.lacunaexpanse.com/wiki/colony-ship" + "wiki": "https://tlecommunity.com/wiki/colony-ship" }, "short_range_colony_ship": { "description": "Use to create a new colony for your empire. Very fast, but with a limited range. Useful within your own, or very close, star systems.", - "wiki": "http://community.lacunaexpanse.com/wiki/short-range-colony-ship" + "wiki": "https://tlecommunity.com/wiki/short-range-colony-ship" }, "spy_pod": { "description": "Stealthy one way transport for a spy.", - "wiki": "http://community.lacunaexpanse.com/wiki/spy-pod" + "wiki": "https://tlecommunity.com/wiki/spy-pod" }, "cargo_ship": { "description": "Medium transport ship. Can be used to push resources between your colonies, trade with other empires, or gather ore from mining platforms.", - "wiki": "http://community.lacunaexpanse.com/wiki/cargo-ship" + "wiki": "https://tlecommunity.com/wiki/cargo-ship" }, "space_station": { "description": "The base hull upon which you can build space station modules to build a complete space station.", - "wiki": "http://community.lacunaexpanse.com/wiki/space-station" + "wiki": "https://tlecommunity.com/wiki/space-station" }, "smuggler_ship": { "description": "Stealthy transport ship. Can be used to push resources between your colonies, trade with other empires, or gather ore from mining platforms.", - "wiki": "http://community.lacunaexpanse.com/wiki/smuggler-ship" + "wiki": "https://tlecommunity.com/wiki/smuggler-ship" }, "mining_platform_ship": { "description": "Allows the gathering of resources from asteroids.", - "wiki": "http://community.lacunaexpanse.com/wiki/mining-platform-ship" + "wiki": "https://tlecommunity.com/wiki/mining-platform-ship" }, "terraforming_platform_ship": { "description": "Allows you to settle planets your species could not normally colonize.", - "wiki": "http://community.lacunaexpanse.com/wiki/terraforming-platform-ship" + "wiki": "https://tlecommunity.com/wiki/terraforming-platform-ship" }, "gas_giant_settlement_ship": { "description": "Allows you to settle gas giants.", - "wiki": "http://community.lacunaexpanse.com/wiki/gas-giant-settlement-ship" + "wiki": "https://tlecommunity.com/wiki/gas-giant-settlement-ship" }, "scow": { "description": "Robotic waste transport ship. Can be used to dispose of waste in space.", - "wiki": "http://community.lacunaexpanse.com/wiki/scow" + "wiki": "https://tlecommunity.com/wiki/scow" }, "scow_fast": { "description": "Much faster than a normal scow. Robotic waste transport ship. Can be used to dispose of waste in space.", - "wiki": "http://community.lacunaexpanse.com/wiki/scow" + "wiki": "https://tlecommunity.com/wiki/scow" }, "scow_large": { "description": "Much larger and a bit slower than a normal scow. Robotic waste transport ship. Can be used to dispose of waste in space.", - "wiki": "http://community.lacunaexpanse.com/wiki/scow" + "wiki": "https://tlecommunity.com/wiki/scow" }, "scow_mega": { "description": "Incredibly larger and slower than a normal scow. Almost useless as an attack. Robotic waste transport ship. Can be used to dispose of waste in space.", - "wiki": "http://community.lacunaexpanse.com/wiki/scow" + "wiki": "https://tlecommunity.com/wiki/scow" }, "bleeder": { "description": "Robotic war ship. Once deployed on enemy planet, starts stealing resources and converting them into waste.", - "wiki": "http://community.lacunaexpanse.com/wiki/bleeder" + "wiki": "https://tlecommunity.com/wiki/bleeder" }, "dory": { "description": "Small transport ship. Can be used to push resources between your colonies, trade with other empires, or gather ore from mining platforms.", - "wiki": "http://community.lacunaexpanse.com/wiki/dory" + "wiki": "https://tlecommunity.com/wiki/dory" }, "barge": { "description": "Versatile transport ship. Can be used to push resources between your colonies, trade with other empires, or gather ore from mining platforms.", - "wiki": "http://community.lacunaexpanse.com/wiki/barge" + "wiki": "https://tlecommunity.com/wiki/barge" }, "galleon": { "description": "Fast medium transport ship. Can be used to push resources between your colonies, trade with other empires, or gather ore from mining platforms.", - "wiki": "http://community.lacunaexpanse.com/wiki/galleon" + "wiki": "https://tlecommunity.com/wiki/galleon" }, "hulk": { "description": "Extra large transport ship. Can be used to push resources between your colonies, trade with other empires, or gather ore from mining platforms.", - "wiki": "http://community.lacunaexpanse.com/wiki/hulk" + "wiki": "https://tlecommunity.com/wiki/hulk" }, "hulk_fast": { "description": "Extra large transport ship slightly bigger and much faster than a Hulk. Can be used to push resources between your colonies, trade with other empires, or gather ore from mining platforms.", - "wiki": "http://community.lacunaexpanse.com/wiki/hulk" + "wiki": "https://tlecommunity.com/wiki/hulk" }, "hulk_huge": { "description": "Incredibly large and very slow transport ship, useful for supply chains. Can be used to push resources between your colonies, trade with other empires, or gather ore from mining platforms.", - "wiki": "http://community.lacunaexpanse.com/wiki/hulk" + "wiki": "https://tlecommunity.com/wiki/hulk" }, "fissure_sealer": { "description": "Large slow ship, used to attempt sealing fissures on uninhabited planets.", - "wiki": "http://community.lacunaexpanse.com/wiki/fissure-sealer" + "wiki": "https://tlecommunity.com/wiki/fissure-sealer" }, "freighter": { "description": "Large transport ship. Can be used to push resources between your colonies, trade with other empires, or gather ore from mining platforms.", - "wiki": "http://community.lacunaexpanse.com/wiki/freighter" + "wiki": "https://tlecommunity.com/wiki/freighter" }, "snark": { "description": "Single-use robotic bombardment weapon, that can be used to damage buildings on remote planets.", - "wiki": "http://community.lacunaexpanse.com/wiki/snark" + "wiki": "https://tlecommunity.com/wiki/snark" }, "snark2": { "description": "An improved version of the Snark, which has four warheads", - "wiki": "http://community.lacunaexpanse.com/wiki/snark" + "wiki": "https://tlecommunity.com/wiki/snark" }, "snark3": { "description": "An improved version of the Snark, which has nine warheads", - "wiki": "http://community.lacunaexpanse.com/wiki/snark" + "wiki": "https://tlecommunity.com/wiki/snark" }, "drone": { "description": "Single use robotic defense weapon, that can stop enemy attacks before they reach your planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/drone" + "wiki": "https://tlecommunity.com/wiki/drone" }, "fighter": { "description": "Piloted defense ship that can stop enemy attacks before they reach your planet. Can also be sent to defend other bodies.", - "wiki": "http://community.lacunaexpanse.com/wiki/fighter" + "wiki": "https://tlecommunity.com/wiki/fighter" }, "spy_shuttle": { "description": "Stealthy transport for up to four spies, that can orbit the target body waiting to pick the spies back up.", - "wiki": "http://community.lacunaexpanse.com/wiki/spy-shuttle" + "wiki": "https://tlecommunity.com/wiki/spy-shuttle" }, "observatory_seeker": { "description": "Variant of the Snark that attacks an Observatory.", - "wiki": "http://community.lacunaexpanse.com/wiki/observatory-seeker" + "wiki": "https://tlecommunity.com/wiki/observatory-seeker" }, "security_ministry_seeker": { "description": "Variant of the Snark that attacks a Security Ministry.", - "wiki": "http://community.lacunaexpanse.com/wiki/security-ministry-seeker" + "wiki": "https://tlecommunity.com/wiki/security-ministry-seeker" }, "spaceport_seeker": { "description": "Variant of the Snark that attacks a SpacePort.", - "wiki": "http://community.lacunaexpanse.com/wiki/spaceport-seeker" + "wiki": "https://tlecommunity.com/wiki/spaceport-seeker" }, "excavator": { "description": "Robotic explorer that searches remote bodies looking for artifacts.", - "wiki": "http://community.lacunaexpanse.com/wiki/excavator" + "wiki": "https://tlecommunity.com/wiki/excavator" }, "detonator": { "description": "Variant of the Snark that detonates in an electromagnetic pulse, which can be used to destroy probes, mining platforms, or excavators.", - "wiki": "http://community.lacunaexpanse.com/wiki/detonator" + "wiki": "https://tlecommunity.com/wiki/detonator" }, "surveyor": { "description": "Robotic explorer that snaps a photograph of the surface of a remote planet, and also identifies the buildings in the photograph.", - "wiki": "http://community.lacunaexpanse.com/wiki/surveyor" + "wiki": "https://tlecommunity.com/wiki/surveyor" }, "scanner": { "description": "Robotic explorer that snaps a photograph of the surface of a remote planet.", - "wiki": "http://community.lacunaexpanse.com/wiki/scanner" + "wiki": "https://tlecommunity.com/wiki/scanner" } }, "tips": [ -- 2.51.2