- separates the composition of cyborgs into modules, iconsets, chassis,
upgrades
- modules / chassis atm can provide items, so can upgrades; in the
future we will want to probably generalize the item API a bit so
components can work
- chassis now can (unimplemented) easily be made to give different stats
- reorganizes all the cyborg sprites
- adds generalized item mounts with redirection support and tears out
legacy cyborg items
- entirely rebalances modules & writes some new lawsets in for future
use
---------
Co-authored-by: silicons <silicons@silicons.dev>
- all cells in the game are now small, medium, large
- super, hyper capacity cells, device, and weapon cells are all removed
- cells now have standardized variants, some of which are printable by
R&D
- energy weapons rebalanced
- **advanced energy guns and stun revolvers removed** - use the new
modular weapon system and microfission cells.
---------
Co-authored-by: silicons <silicons@silicons.dev>
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
PR needs a bit of work outside it (written SOP), advised not to merge or
TM yet (staff might need to speak about it first)
-------
"Soldiers, Officers, polish your boots, clean your ships and be prepared
for some new orders and reorganisation."
_Thats what we heard today. With the the massive migration of people on
Miaphus those past few month, life completly changed. We are far from
the few colonist and convincts mounting up their little governement to
rule and organise a few villages, and now the SDF needs to be able to
respond more quickly to threats in order to protect the system._
_New uniform arrived, and a few small outpost started popping up places
on Miaphus'irra. I heard that corporations injected a bit of funds ro
buy us new, smaller vessels, but whats truth or speculation is a bit
hard to tell on my position._
_I know that you are a bit scared for me, but it will be alright, I
Swear.
Your brother, Crewman Mawra'Kast_
--------
PR adds :
- 3 Uniform meant to be used by Haddis Folly Gouvernement Workers ,
Soldiers, and Officers.
_Those uniform are based on prison Jumpsuits, but refined to be more
offical looking. A reminded of the origin of this new nation to the
people wearing them_



- New ID

- A SDF Ghost role.
_Made of 5 slots, meant to have 1 to 2 informal officers, and max 4
soldiers.
Spawning on them are : uniform, standart radio, standart clothes.
Available to them are 4 service rifles (tajaran), 4 boot knifes, GPS, 2
officer pistols (Revolver and Deagle) headwear, standart space
voidsuits, 2 fighters (One gunship, One duke)
They have little to no medical gear._
- A shuttle (Corvette called SDF Singing shining knight) and a small
Base (Outpost 12)
The corvette is the main base. Ghost role spawn there. They get a
balista dispercer canon, 2 fighters (see above and on picture)


## Why It's Good For The Game
This are the pros :
- Possibility to attract or bring back player that wish for more PVE
action, or a little more military RP.
- More Interaction too, The goal of this ghostrole is to be hunting bad
things that exploration team wouldn't dare approche, help the main NT
station or simply interact with them, giving medical (They will need
medical help) , cargo (They might request things), security (No way ISD
are sleeping to soldiers interacting with the Crew) , command (NO WAY
COMMAND ARE SLEEPING TO SOLDIERS INTERACTING WITH THE CREW), exploration
(No way exploration are sleeping to potential buddies to shoot bad guys
and critters with :D) and even service (No way soldiers are not walking
in a manned bar)
- Eventmin paradise. There is an actual SDF ship there, with Haddis
folly uniform and ID.
Now, the cons
- Like I said at the top of the PR description :
This is a more militaristic role, that will require their own SOP
This is also a rather big shift to the server. Yes, indeed it opens up
new possibilities, and makes the system a tad more lively, but it can be
interpreted as a departure of what a part of the playerbase associate
Citadel with.
There might also be a slight griefer opportunity. Not only from "Sol
Bald man, emmissary of the curse of rah, wielder of the phoron tank and
welder", but also invonlotary from absolutly normal players that acts a
tad antagonistic.
Personnaly, once the SOP is put in place, and after hearing feedback and
correcting possible issue, I do thing it will contribute in more good
than bad for the server.
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
_Somewhere on Centcom NDV Marksman, near a window_
-"Hey, Officer, here are the manifest of the last few months from crew 7
EX 39."
-"Huh. Thank you... Wow, is it me or they are getting less people ?"
-"Yes, I agree... Yet they are getting some big bas- Holly molly, is
that the Strelka ? Its getting repaired ? My grandpa loved that ship !"
-"Huhuh. We only need a smaller crew to man it..."
_Both are looking at a the crew manifest folder_
-**"Bingo."**
The Strelka is one of the oldest NT Vessel. Started out as a Luxury
Yacht for NT, to carry VIPs and celebrities. Served also as a blockade
runner during the corporate wars. Its last function was as a pathmaker
and obstacle buster for the Marksman fleet. With being one of the
oldest, its also one of its smallest, yet still can be used as a day to
day vessel, with... a lot of sacrifices.
The Vessel got four decks, like the Triumph or Endeavour, but is arround
only 80 Tiles long and 64 tiles wide. Its main focus was mainly confort
and luxury at first, with its departments being, for a lot of them, just
cabins with walls that got destroyed to make more room.

## Why It's Good For The Game
The map was made at first to test how small a citadel station can be.
_But I got carried away :D_
There are not a lot of players playing during some time of the day, and
a request for a smaller map, that makes people interact more with each
other, has been requested. This map should do it. Its also takes a
direction that is different from the Atlas, Tether, Triumph and
Endeavour, aspect wise.
The map is also a test to apply the different ideas given from the
exploration departement debates that the server saw multiple times.
Here, the exploration depatement is actually rather open. All of the
crew can easely acces the excursion shuttle hangard. The gears of EMTs
and Explorators (and pathfy) are still here, but located in Science and
Medical (The Pathfy still get is own office). The goal is to have away
team with different crew of multiple departement more easely, without
the need to change access.
Since the vessel is a NEV, the pathfinder gets also acces to the bridge,
where he can assist with charter and helm... And of course, since this
vessel have a Obstacle removal Ballista, the pathfinder (and command)
can use it.
The main drawback of the vessel would be that some science activities
are missing, mostly those that can be found in the western plain outpost
of Lythios 43. So the remaining activities are : Robotics, RnD, Circuit,
Chemistry, Xenobiology, Xenobotany, Telescience, Xenoarchelogy, And
Anomaly.
Another drawback is the lack of maintenance tunnels. There are some
maintenance area, but were on other maps they are arround 30% to 45% of
a map, on this vessel, they be arround 10%. SMES are in glass boxes that
requires Engineering acces to open.
Other than that, all departments and activities are here. It is also
able to welcome traveler and trading shuttles in its Deck 4 hangar.
**It is still a WIP, and would require testing**




---------
Co-authored-by: LordME <58342752+TheLordME@users.noreply.github.com>
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
Turns out the Gateway is supposed to pick a random away mission at the
start of every round. You know that stargate rip off in the back of
explo?
Looks like it's been loosely broken since #2917 4 years ago. Though I
don't remember anybody ever using the gateway since before that.
This PR fixes the system and simplifies it quite a bit.
code/modules/awaymissions/zlevels.dm is now gateway_maps.dm
The method for loading and picking a map has been reduced to a hardcoded
list in gateway_maps.dm instead of using a hardcoded txt file loaded
using a bunch of nonsensical string processing.
There are 4 functional maps I've fixed and added back in:
Carpfarm
Listening post
Snowfield
Snow outpost
Zoo would be really nice to have but it has a number of issues that are
outside the scope of this PR so I've set it as a TODO.
Similarly I'm sure a bunch of the archived missions might be quite fun.
For those unfamiliar with the gameplay loop of the Gateway (considering
its never worked):
1. The gateway has a ~30 minute timer roundstart where it is performing
"warpspace triangulation". (Click on it it will tell you)
2. After that timer is over you can activate the Gateway and walk into
it.
3. This will teleport you to the Gateway mission level randomly.
4. Find the Gateway in the mission level and smack it with a multitool
to calibrate it and return.
5. Once you calibrate the return gateway you can teleport between the
two freely.
!!All of these maps are explo HARDCORE mode and will absolutely kill
you. This ain't miaphus!!
Devdocs:
If you want to make a gateway map it's extremely simple!:
1. Build a gateway, It's like 8 separate pieces just copy one from a
station map.
2. Set the gateway console center bit to a:
/obj/machinery/gateway/centeraway.
3. Sprinkle your map with /obj/landmark/gateway_scatter.
- Players will be randomly teleported to these while the gateway is
uncalibrated. Consider them your starting spawns.
5. Add a /datum/map_level/gateway/[mapname] and a
/datum/map/gateway/[mapname] to your maps .dm file
- See maps/away_missions/carpfarm_140/carpfarm.dm for example.
6. Add the /datum/map/gateway/[mapname] path to the
potentialGatewayLevels list in
code/modules/awaymissions/gateway_maps.dm.
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
I don't particularly want the Gateway to even exist from a lore and game
design standpoint.
But content today is better than content tomorrow.
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
-Rebuild gateway away mission maps
-Rebuild gateway away mission selection at roundstart
-Touch up away_mission folders and names
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑 Shadowcat
refactor: refactored gateway mission code
fix: Fixed gateway random mission picker
fix: Fixed a few gateway missions to actually work
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
A lot of small fixes
## Why It's Good For The Game
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
Because I should have caught them earlier
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
add: Explo sci door helper
add: missing wires in Sec prep
add: door to Detective's office to front lobby
fix: needless doors in maints
fix: many bad doors and paths in maints, multiple decks
fix: lack of airlocks in hallways, added them to aid
compartmentalization
fix: added more vents and scrubbers in areas where needed
fix: wonky disposals issue on deck two, fixed dorms disposals
fix: started beautifying the sec lobby.
fix: added door switch to sec fighter hanger
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
---------
Co-authored-by: LordME <58342752+TheLordME@users.noreply.github.com>
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
- Explorers can no longer enter Research and Development. Explorers
entering R&D is not intended to be the norm and got changed by mistake
when access helpers came to pass a few months ago. Pathfinders can still
enter it.
- Corrects Xenobotany's access on Atlas
- Corrects infirmary access on Atlas
- Chemistry lab changed to Xenobotany/Xenobiology ("genetics") access on
Atlas ( sorry explorers. :^) )
- Everyone who can enter Surt can toggle the blast doors from the
outside instead of just the inside now.
## Why It's Good For The Game
Fix gud.
I swear this isn't just some "explorers get no rights" PR.
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
fix: A few access corrections on Atlas and Surt/Lavaland.
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
update init code, LateInitialize now complains if it doesnt have
anything in it
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
code: update how init does things
code: update matrix helpers
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
add: Added a spawner that sets a functioning away gate up
admin: Added a VV option to start the station gateway up without having
to interact with it
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
converts global vars to regular defines
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
code: radiocode now uses defines, you cant tweak it from world.variables
anymore (or whatever that is)
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
This PR adds a new mapping helper that lets you ID electrochromic
windows placed below, and IDs conveyors.
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
Because we needed more control over what windows are affected by which
tint other than the surface area covered on windows placed by builders,
which could not be ID'd and because having the two conveyor belts be
synced sucks.
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
Adds new mapping helper:
/obj/map_helper/electrochromatic_linker
and litters Riftmap with them.
Separates the controls of the two cargo belts in Riftmap.
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
tweak: tweaked conveyor belt ids
imageadd: edited access helper into a fitting icon
code: added mapping helper
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
Non-map changes:
- Fixed electrochromatic window spawners not passing the given ID over
to the windows they're spawning.
Both:
- Adds fire safety equipment
- Window spawners come with a low wall now.
Triumph:
- Moves the vendors back to the other wall
- Replaces the cigarette vendor with an MRE vendor (don't encourage
smoking in a shuttle.)
- Changes up the bridge to be significantly less garbage
- Medbay's surgery table is replaced with a sleeper. Medbay's beds are
now rolling beds, and IV drips with anesthetic tanks are set beside
them. A blood vendor's been added.
- Lets people in the bridge see people outside in the passenger section.
- Adds point defense system
- Adds electrochromatic windows in the medbay, security, and command
sections. Completely toggleable.
- Adds brig section in security area
- Adds safety equipment like softsuit closets & oxygen closets.
Rift:
- Fixes the tintable windows.
- Fixes access restrictions on security and medical sections.
- Adds additional blast doors.
## Why It's Good For The Game
Brings the departure shuttles which are designed to carry civillians and
various crew members up to code in terms of safety and functionality.
May eventually include its own built in air system later.
Fixes good.
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
tweak: Triumph's departure shuttle has been significantly improved in
terms of equipment.
fix: Atlas and Triumph's departure shuttles have been given proper
safety and functionality.
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
## About The Pull Request
Working on some generic templates and starting to cut down on the planet
specific turfs which are in use.
## Why It's Good For The Game
More POI's and more content!
## Changelog
🆑
add: New generic POI's
tweak: Turf pathing
/🆑
---------
Co-authored-by: LordME <58342752+TheLordME@users.noreply.github.com>
## About The Pull Request
Previously:
- A lot of unnecessary code to thread and repeatedly add
orientation-related variables to the preloader.
- dmm_parsed previously modified its own args, then used arglist(args)
This is bad energy -- as far as I can tell, this was was relying on the
fact that _load_impl didn't use the modified values.
- Fire alarms were hardcoded to deal with east/west incorrectly
Now:
- These variables now live in the dmm_context.
- _load_impl takes fewer unnecessary args, and all its args are explicit
- A few variables have been removed or had their scope limited.
- Fire alarms aren't hardcoded to do that anymore.
Bugs I didn't fix:
- When a map is rotated EAST or WEST, signs spawn in an overlapping
fashion that's really ugly.
## Why It's Good For The Game
### Correctness
Fire alarms were spawning sideways when rotated EAST or WEST and
probably shouldn't be. I've fixed this behavior now.
### Style
Threading a lot of variables in DM is pretty rough -- DM doesn't
actually warn if you do this wrong. Silicons specifically flagged this
as a rough spot for code quality, which is why I attacked it.
These variables never change during the load process, so threading them
as arguments creates the false implication that they can be different
per map object.
### Performance
My goal wasn't to make performance better, just to make the code more
readable without making it worse. Brief profiling implies it might be
faster, but the difference is marginal and possibly explained by bad
test conditions:
- map loading took 24.0, 24.3, 24.6 seconds before the change
- map loading took 23.0, 23.6, 23.8 seconds after this change
All tests were done with rotated Triumph. (I haven't profiled
non-rotated yet.)
Back of the envelope calculation implies the number of
variable-on-object lookups in the hot loop phase of the map load should
be pretty close to the original number -- maybe a little lower, since
I've turned some into locals.
The one lookup that looks new (where we get the context from the
preloader in preloader_load) was actually one that happened
unconditionally at the end of the procedure in the previous code.
## Images
Sign bug: I didn't fix this or introduce this.

Fire alarm bug living its best life. I fixed this:

Fire alarm is Tethered. (Post-fix):

## Changelog
🆑 Pyrex
refactor: DMM rotation code is a little tidier
fix: fire alarms have a 0% chance of hovering
/🆑
---------
Co-authored-by: GDN <96800819+GDNgit@users.noreply.github.com>
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## A Whole New Gaia
The presence of the Gaia worlds bugged me from a world-building
perspective. It made earthlike resort planets seem common. This PR
remedies that by transforming Gaia World into Gaia Station! That is not
the only thing it changes. It also divides Gaia into multiple biomes
with added desert and snow biomes: After All paradise for a Teshari is
not a tropical jungle! Additional changes and attractions have been
added to the planet. The Landing pads have also been expanded now able
to land up to five ships. In addition (legally) accessing Gaia now
requires you buy a pass (you didn't think this was free now did you?).
The prices may be steep but the resort is now even more worth it!
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
add: Three IDs to represent Gaia station passes and a vendor to dispense
them.
add: additional wildlife for all three Gaia biomes
add: a lot of lotion, you can still get burnt even if the sun is fake
tweak: countless Gaia map tweaks including: Race Track Edits, separate
biomes
qol: Gaia gambling area now has the nerd dice bag (so it can be used for
dare dice and other games)
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
- Allows medical to access the quantum telepad to Surt again. Not sure
why this got taken away.
This otherwise makes a few changes to the mining base.
- Clears access restrictions on a large handful of the airlocks,
particularly the ones involved with the dormitories, break room, and
bathroom. The storage's access is also cleared.
- The janitor can access the custodial closet.
- Engineers and the usual group allowed to access the mining base can
access the engine room.
- Expands the storage room, adds a section for xenoarcheology equipment.
Locks mining equipment behind windoors, and xenoarch equipment also
behind windoors. Appropriate access required to open the doors.
- Adds a high-capacity cell at the cell charger.
You will still need security, medical, science, mining, or exploration
to let you into the mining base to begin with as a civillian/engineering
job. This primarily just helps the appropriate jobs perform maintenance
where they're required, if they're needed.
## Why It's Good For The Game
Making the mining base increasingly more of a place of operation for not
just mining, but also scientists feels like an appropriate step in the
right direction.
A lot of the access restrictions otherwise felt unnecessary. They're
just dormitories and a break room. What're people gonna do? Drink and
sleep?
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
tweak: The mining base on Surt has had a few access restrictions cleared
out to make it more convenient for those who need to do maintenance
there. There's also now a xenoarcheology section in storage.
fix: Medical now has access to the Surt telepad again.
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
# why?
non-player facing
we're going to need fast lookups for "is this thing in range of this
other thing" at some point, for things like telecomms
this current solution consumes about 16KB per reservation level
we also add the capability to use spatial grids to quickly get atoms on
a level.
spatial grids are also at 16KB per grid, per world level
all in all worth it in my opinion.
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
This PR is a continuation of #6462 and aims to replace each and every
access var with access helpers. This is the 2nd of 3.
Also adds `research_lab` access helper and grants Pathfinders access to
Rift's RnD (and every map's RnD from now on).
- [x] [Deck 1](https://www.upload.ee/image/16715103/deck_1.png)
- [x] [Deck 2](https://www.upload.ee/image/16715139/deck_2.png)
- [x] [Deck 3](https://www.upload.ee/image/16715188/deck_3.png)
- [x] [Deck 4](https://www.upload.ee/image/16718583/deck_4.png)
- [x] [Flagship](https://www.upload.ee/image/16718647/flagship.png)
- [x] Misc
- [x] Burn engine
- [x] Fission engine
- [x] Rust engine
- [x] Supermatter engine
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
Access vars are obsolete and really complicated for mappers to use.
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
add: Added access helpers to every airlock on Triumph.
add: Added additional maintenance airlocks & hatches to Triumph's engine
chamber.
add: Pathfinders now have access to Rift's RnD
del: Removed Triumph's airlocks access vars, and replaced them with
access helpers.
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
- moves stuff to more sane places so modules folder isn't so messy
- adds a world system that is the start of being able to data-define
world locations and having the game act differently based on which
location a map is in
there's no ability to separate 'pre-load map' (and a way for persistence
to inject this so we can have moving maps yet) but we can add it in
later since things are decently abstracted.
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
This PR puts the access helpers to use on (hopefully) every airlock on
Rift. Also adds a few more access helpers.
I also aim to do the same with the other station maps. This is the 1st
of 3.
- [x] [Level 11 - Orbital](https://i.imgur.com/HEB7tsI.png)
- [x] [Level 10 - West Plains](https://i.imgur.com/Fg3rBVW.png)
- [x] [Level 09 - West Caves](https://i.imgur.com/S8nYKHM.png)
- [x] [Level 08 - West Deep](https://i.imgur.com/AURr1de.png)
- [x] [Level 07 - West Base](https://i.imgur.com/0QVhRjO.png)
- [x] [Level 06 - Surface III](https://i.imgur.com/BXlCwfD.png)
- [x] [Level 05 - Surface II](https://i.imgur.com/0AGn2Ji.png)
- [x] [Level 04 - Surface
I](https://www.upload.ee/image/16679684/level_4.png)
- [x] [Level 03 - Underground
I](https://www.upload.ee/image/16679794/level_3.png)
- [x] [Level 02 - Underground
II](https://www.upload.ee/image/16679884/level_2.png)
- [x] [Level 01 - Underground
I](https://www.upload.ee/image/16679919/level_1.png)
- [Rust
engine](https://www.upload.ee/image/16680411/StrongDMM-2024-05-27_22.10.13.png)
- [Supermatter
engine](https://www.upload.ee/image/16680412/StrongDMM-2024-05-27_22.10.39.png)
## Why It's Good For The Game
On-vars access is obsolete and really complicated for mappers to use.
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
add: Added access helpers to every airlock on Rift.
del: Removed Rift's airlocks access var, and replaced them with access
helpers.
imageadd: Adds `disconnected` access helper icons, for traders, pirates,
Syndicate & Talon airlocks.
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
i decided to atomize my prs a little
- map obfuscation module upgraded
- obfuscation now happens via mangling id, inspired by nebula. atoms loaded with the same mangling id will generate the same obfuscated ids from a given and matching input id
- /datum/map_injection added; it's a composition-based system for modifying maps during spawn
- /datum/map_injection/starting_gear; inspired by barotrauma, pretty much just injects starting gear as necessary with a given configuration. multiple of these can be stacked in a given maploading.
- /obj/map_helper/gear_marker; markers for where starting_gear should populate things.
refactors the asset subsystem to make it much more managed
adds support for 'deferred' assets for tgui, which will be later used
for things like tgui character setup and admin panels.
deferred means that it'll be 'sent in a timely manner after the ui
opens', as opposed to 'sent before the ui opens'
---------
Co-authored-by: silicons <no@you.cat>
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
This PR modifies all access helper icons and adds lacking ones for the
mapper's convenience. Also assigns some helpers to their respective
icons, so there aren't missing icons. Inspired by /tg/'s

from left to right: CentCom, Command (EVA), Engineering (external
airlocks, maintenance), Medical, Science, Security, Service, Supply,
Public/General, `offstation`
## Why It's Good For The Game
The previous icons were copy and pastes of ID card sprites. These are
less obstructive and more malleable. Also really convenient.
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
imageadd: Access helpers now have proper icons.
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
… duplication stacktrace
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
tweak: tweaked the network_builder type to display conflict location
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
title, also adds the merge conflict map helper
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
so you know what broke while mapping
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
Co-authored-by: LordME <58342752+TheLordME@users.noreply.github.com>
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
Fixes a couple runtimes that frequently occure during IntTests
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
fix: fixes wrong fake stairs on miaphus beach
fix: fixes duplicate lattice on debris14.dmm
fix: adds extra check to submap seeding, checking if the tiles are empty
fix: adds check when adding blood writing, to make sure we arent using
to many instances per tile
fix: fix rename_areas for the tiny carrier should happen during lateload
to avoid not finding the shuttle
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->