<!-- 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. -->
modifies the hollow metrics API; that'll probably be implemented soon
adds init stages
changes SSatoms to not abuse its `initialized` variable
closes#6858
# 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.
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.
<!-- 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. -->
🆑
qol: Mapping subsystem now prints the active map to world, so you know
on which map IntTest errors occur
/🆑
<!-- 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. -->
3/3 is world structs and the fun that comes with that
this pr has:
- transitions
- new multiz system
- lookup optimizations
- misc updates
---------
Co-authored-by: silicons <no@you.cat>
i decided i'm following in stylemistake's light
the files in this pr are entirely written by me instead of regurgitated
tgcode;
i'm also marking a lot of other files but they're in their own prs
(inventory module in hand pr, materials/atom damage related stuff in
atom damage, etc)
Co-authored-by: silicons <no@you.cat>
since lohikar / moony talked sense into me we're not doing the
everything must be .json thing anymore
this means there's no more point to separating the folders
i'll be unifying the maploader after this pr and adding
traits/attributes as-is
---------
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
Z-Mimic is nice.
Currently just SSao atm, why SSao? Filter-based ao doesn't really work
with Z-Mimic
O7 Lighting cause I got tired of trying to make ours work with this. But
hey, we got directional lights now so that's cool.
🆑 @Zandario & @Lohikar
add: SSzmimic
add: O7 Lighting
add: SSao
del: SSopenspace
tweak: Lights now can shine in angles between 0 and 180
/🆑
Co-authored-by: Lohikar <lohikar@protonmail.com>
* start
* i hate people who pack shit into one file
* sigh
* regex
* inventory rework
* stubs
* regex
* this is insanity
* oh no
* backend moment
* a
* changes
* wild
* regexing
* changes
* put in hands
* more errorS
* attackby
* more helpers
* replacements
* wild
* fixes
* pain
* fxies
* fixes
* unneeded
* ape
* ape
* wild
* wild
* more
* wild
* there
* fixes
* fixes
* l
* wild
* more
* moer
* fixes
* enough for todayd
* regexing
* long time coming
* shaking and crying
* end me
* fixes
* fixes
* e
* fxies
* rig refactor moment
* fixes
* fixes
* fixes
* fixes
* out with the shitcode
* thanks git
* partial rig rewrite here we go
* more
* fixes
* WWWW
* ok
* wild
* bitfield defines
* nobludgeon
* pain
* pain
* fixes
* more
* wild
* wild
* fixes
* pain
* move behaviorsr
* fixes
* next up, finishing core procs
* y
* .
* time to finish this
* time to finish this
* propagate accessories
* hate this accursed engine
* hate this accursed engine
* pain
* more
* cancer
* epic
* genuinely hate
* wild
* that
* why
* circuitry is my bane
* y
* how
* sort
* logging
* logging
* im dying
* fixes
* next
* f
* more
* epic style
* fixes
* on meta
* fix
* wild
* uh
* quirky
* fixes
* agh
* pain
* fixes
* fix
* sigh
* a
* epic1
* fixes
* ugh
* epic
* fixes
* uhh.
* is this even a fix
* fix
* fixes
* fixes
* we love optimization
* wear over system
* correct
* worn over stuff
* just augments
* coggy
* implant magnetic catch
* implant magnetic catch
* fixe
* a
* g
* t
* fix
* fix
* wack!
* fix
* a
* semantics
* fix
* that
* fixes
* handle denesting
* w
* fixes
* e
* bugs
* fixes
* fixes
* unit tests
* absolutely wild
* fixes
* fix
* fix
* fixes
* on god this is bad
* fixes
* fixes
* fix
* fix
* wacky!
* fix
* wack
* manual
* fixes
* closets
* OOPS
* wack
* pain
* pain
* flags
* regex
* fixes
* wakc
* changes
* more
* augh
* more
* replaces
* more
* that
* acc
* acc
* fix
* fix
* fix
* oh woops that was important
* wack
* epic
Co-authored-by: fake_vm_user <fake_vm_user>
Co-authored-by: VM_USER <VM_USER>
* dme and dmb
* Heeeere we gooo
* fasease
* Continued.
* AAAAAAAAAAAAAAAAAAAAAAAA
* Brain going numb
* agh
* The suffering will be worth it... right?
* Going blank...
* Am I done?
* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
* Fixes
* Should be everything I care about right now.
* start
* stuff
* stuff
* rm
* gotta be fucking kidding me i hate byond
* a
* a
* sigh i just remmebered why i didn't do that
* a
* a
* stub
* Shadowcast
* Shadowcast
* Shadowcast
* uh oh
* uh oh
* Wild
* Wild
* Wild
* automata stuff
* stuff
* let's go
* that
* that
* fixes
* fix
* fxies
* fixes
* that works
* diagonals
* diagonals
* diagonals
* diagonals
* diagonals
* diagonals
* diagonals
* diagonals
* diagonals
* diagonals
* diagonals
* wild
* wild
* i hate lummox
* ihate you byond
* wow.
* refactor that
* why
* fix
* mistakes
* thank you bhijn
* wild
* i'm an idiot
* adjust
* adjust
* that
* blacklist that too
* what if we
* Fix
* fin
Co-authored-by: fake_vm_user <fake_vm_user>
* Time to become our TGUI God.
* Visually sprucing the copyrights.
These shouldn't be ignored :)
* babababa
* https://github.com/tgstation/tgstation/pull/50422
* dooootdooot
* Holy fuck
Updates the tools folder
Updates our build tooling
Updates TGUI MASSIVELY
I'm going to go scream in a hole now
* ??
* Was it this dum thing?
* orrrr
* It's this isn't it
* Did it manually
* hubah
* TGUI Changelog
* oops
* What if I use the original?
* Lets try this again
* Shit commenting out for now
* asdasd
* Fuck it use the old one and remember to replace later
* Updates yarn.lock
* Lets try something horrid
* Nope it HATES THAT
* fucc
* The great eslinting
* HOLY SHIT
* Final?
* ?
* asd
tgstation/tgstation/pull/59914
tgstation/tgstation/pull/66317
* Improved Asset handling.
* Oops
* Subsystem stuff
* Recompiles the Changelong again.
* Finally Fixed Communicators
* Compiled Changelogs... AGAIN
* ill do this in the coffee shop later
* has to go
* add stuff
* changes
* this is going to explode
* this is going to explode x2
* more
* *scream
* move
* w
* oh god oh fuck now for main proc
* progress
* wack
* next segment..
* update
* shuttles are next
* AAA
* sigh
* this is going to be ugly
* ugh
* epic!
* pain
* hope this works
* patch
* patch
* patch
* patch
* patch
* epic!
* wack
* oh god..
* oh god..
* wack
Co-authored-by: fake_vm_user <fake_vm_user>