## About The Pull Request
/obj/structure/closet/mini_fridge is now a clean nice one, which only
spawns beverages and does not have that cockroach reference in the
description, and starts off anchored. now
/obj/structure/closet/mini_fridge/grimy works like the old mini-fridge,
with syndicake, moldy bread, and now the chance of an ACTUAL cockroach.
I've replaced them on maps according to each one's needs, So, as an
example, Northstar gets a regular one (it var edited it before) while
tram maints get the grimy subtype.
mini-fridges now can properly go over tables, so you don't have to
deconstruct said table to put it on top again.
## Why It's Good For The Game
I've found the need for a nice subtype while doing a ruin, and so has a
few other mappers apparently, as northstar had a var edited variant. The
fact that it couldn't go over tables and started off unanchored was
annoying on tram and icebox, where it is present on the kitchen and you
could easily push it to the ground and suffer.
## Changelog
🆑
qol: It has been issued brand new mini-fridges for our active stations,
Featuring more booze and less moldy pizza!
/🆑
## About The Pull Request
Every ID, silver ID, and PDA box has been removed from the maps. You can
now only find ID boxes on the HoP's locker and PDAs must be bought from
the tech vendor. Said locker also had two instances of ID boxes, so i've
swapped one of them for the silver ID box
## Why It's Good For The Game
tram had, in total, 5 ID boxes. That's *35 IDs in total.* No one is ever
gonna lose that much, and having 7 is more than enough. If a situation
happens where you somehow need more, you can still buy it on the tech
vendor AND on cargo. I realized how many boxes the HoP had on the other
PR
## Changelog
🆑
del: Removed excess ID boxes on HoP's office
/🆑
## About The Pull Request
Adds tables near produce consoles
## Why It's Good For The Game
This is for mitigating the contamination mechanic introduced in
https://github.com/tgstation/tgstation/pull/76018 . Ideally the consoles
would auto target the table too but... one bridge at a time.
## Changelog
🆑
qol: Produce consoles now have tables near them.
/🆑
## About The Pull Request
Title.
## Why It's Good For The Game
Door var which is primarily used in the.. commissary.
Now the doors won't be locked and fucked up if someone decides to close
the commissary.
~~Actually tram doesn't use this var, I think, but my point still
stands.~~
## Changelog
🆑 Jolly
fix: [TramStation] - Removed a (possibly) unused var on the barber shop
doors. Hopefully those taking refuge in the commissary wasn't causing
too many issues.
/🆑
## About The Pull Request
Title.
## Why It's Good For The Game
Armories aren't really a dense area mapping wise, just a few guns there,
armor there, and some fluff security stuff (like HUDs or whatever).
This PR just converts most of the heavy stuff (armor, helmets, guns)
into spawning helpers with the aim to make mapping armories just a tad
bit quicker and easier.
The only thing this does kinda nuke is the neatly stacked stuff, which
the mapping helpers kinda suck at doing, but its not totally woeful.
## Changelog
🆑 Jolly, timothymtorres
code: Jolly: Armories across all maps have been tweaked slightly. Report
to a Nanotrasen security advisor for any missing guns, armor, helmets or
anything else that was there previously (that means, post an issue on
Github if theres an issue!!)
code: timothymtorres: Random item spawners now support better control of
their X/Y pixel offset.
/🆑
---------
Co-authored-by: Tim <timothymtorres@gmail.com>
## About The Pull Request
Hey there,
A pretty bad bug (#76226) got through, but it was fixed pretty quickly
in #76241 (cf92862daf). I realized that if
we were testing all the away missions, that this could theoretically get
caught and not happen again. Regardless, unit testing gateway missions
has been on my to-do list for a while now, and I finally got it nailed
down.
Basically, we just have a really small "station" map with the bare bones
(_teeny_ bit of fluff, maploading is going to take 30 seconds tops
anyways let me have my kicks) with a JSON map datum flag that causes it
to load all away missions in the codebase (which are all in one folder).
Just in case some admins were planning on invoking the proc on
`SSmapping`, I also decided to gate a `tgui_alert()` behind it because
you never can be too sure of what people think is funny these days (it
really does lock up your game for a second or so at a time).
I also alphabetized the maps.txt config because that was annoying me.
## Why It's Good For The Game
Things that break on production could(?) be caught in unit testing? I
don't know if the linked issue I mentioned above would have been caught
in retrospect, but it's likely to catch more than a few upcoming bugs
(like the UO45 atmospherics thing at the very top) and ensure that these
gateway missions, which tend to be the most neglected part of mapping,
stay bug-free.
This is also helpful in case someone makes a new away mission and wants
to see if stuff's broken. Helps out maptainers a bit because very, very
technically broken mapping will throw up runtimes. Neato.
## Changelog
Nothing that players should be concerned about.
Let me know if there's a better way to approach this, but I really think
that having a super-duper light map with the bare basics to load up
gateway missions and then all nine-ish gateway missions can sequentially
load during init. I can't think of a better way to do it aside from some
really ugly `#ifdef` shit. Also also, it has the added benefit of being
a map that will always load your away mission without touching a single
shred of config (and it's not likely to break if you follow sane
practices such as making your own areas)
## About The Pull Request
This adds either a leather satchel (when there is space for it) or a
simple wallet to every HoP's office.
## Why It's Good For The Game
HoP is the bureaucracy role that carries a bunch of tiny things. It
should be helpful to have a wallet easily available
As for the leather satchel, HoP (and most of service, if i'm honest)
Does not have a special departmental satchel/backpack, so they spawn in
with a boring gray one. Having the option to quickly switch to a more
stylish version is nice, instead of going to dorms to steal one from
there. Note that the leather satchel is not on all maps, as some have an
office too small to fit one, but i think small map variety like this is
fine.
## Changelog
🆑
qol: Leather satchels and wallets have been issued to the offices of
Head of Personnel all across the sector. Studies suggest a fashion
increase of 34%
/🆑
## About The Pull Request
Title.
## Why It's Good For The Game
Random ass /obj/item floating in space. Don't know how it got there,
don't know when.
## Changelog
🆑 Jolly
fix: [MetaStation] There is no longer a random nondescript "item"
outside Xenobiology. No, it was NOT a Xenomorph.
/🆑
## About The Pull Request
I noticed the morgue of Delta was very not pretty from the coroner
reworking so I just came through and prettied it up.
Did the same to brigsec.
If this falls under the freeze let me know and I'll re-open it later
maptainers.
## Why It's Good For The Game
Pretty morgues.
## Changelog
🆑 Melbert
qol: Prettied up the morgue of Deltastation
/🆑
## About The Pull Request
Removes the attachment module for 'atmoscilower_2' and replaces it with
a static dug-out room.
## Why It's Good For The Game
I didn't properly space out the current modules for how much closer the
module spawns on this variant and it'd clip into Science pretty badly.
nobody made an issue report on this afaik and it hurts my soul
## About The Pull Request
The second layer of tram does not need its own relay, it is like 10 feet
max above the first.
Feels wrong in game, mappers tend to just sneak these off in corners, it
sucks.
Shouldn't need to do it.
Instead, tcomms z levels will be filled based off the z stack, rather
then just the layer itself.
Adds a list/helper to make this more efficient/more easily duplicable
## Why It's Good For The Game
Matches what people expect better, removes redundant map bits, better
vibes.
## Changelog
🆑
balance: Tcomms now works across connected (vertically) zlevels. No more
hunting in maint for the relay.
/🆑
## About The Pull Request
Title.
Also, fixes https://github.com/tgstation/tgstation/issues/75568 at the
request of @TheVekter
## Why It's Good For The Game
This subtype only exists to append ore box behavior and is clearly a
relic of pre-2020 mechcode.
Keeping it around will only make it harder in the future to add new
mechs with ore box support.
## Changelog
🆑
fix: Clarke ore box now has a less confusing dump contents button.
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
The reusable and caseless types only purposes are the behaviors of
deleting the casing when fired and spawning a new object when the
projectile ultimately reaches its maximum range or hits a target, both
of which are easily "elementizable". Also, I don't like those barely
filled sub-folders in the projectile module, and the fact we've
divergent reusable and single use arrow types.
## About The Pull Request
The incident counters and digital clocks merged at roughly the same
time, causing some overlap. Moves a few around and adds where missing.
## Changelog
🆑 LT3
fix: MetaStation's bridge incident counter and clock no longer overlap
fix: Deltastation's missing incident counter has been found. Does that
count as an incident?
qol: Tramstation bridge and medbay now have a clock where the tram hit
counter used to be
/🆑
Theres one player-facing change in this PR and it's that I removed human
gibs from being valid in space turfs, making it more consistent with the
other gib decals.
I've cleaned up many instances of decals spawning in bad turfs on
mapload in https://github.com/tgstation/tgstation/pull/75189, but making
it error anytime in-game a decal is put over an invalid turf is bad as
it punishes contributors for not optimizing their decals properly.
This changes it so it only errors if it's on mapload, unit testing or
not.
I've also removed ``turf_loc_check`` and replaced instances of it with
overwriting ``NeverShouldHaveComeHere``, which gives us greater control
of where decals can be placed.
This let me remove 2 subtypes that were made to have decals in specific
places (which then got placed elsewhere, ruining it all).
Mappers are still able to set decals to be placed anywhere, they just
need to add it as a valid turf for that decal.
## About The Pull Request
Adds one way accesses on science hallway doors on Delta, Icebox, and
Birdshot to make them consistent with other maps.
Also fixed a science maintenance that was set to service maintenance,
which didn't make any difference in testing but it kind of bugged me
seeing it in the mapper.
## Why It's Good For The Game
Avoids people getting trapped in science hallways, and I think
consistency in behavior across all maps for something like this is a
good thing.
## Changelog
🆑
fix: Science department hallways now have unrestricted one-way exits on
Delta, Birdshot, and Icebox, to make these maps consistent with the
others.
/🆑
## About The Pull Request
Ok so we currently have 1 (count em) border object that wants to smooth
with other border objects. That's the tram window.
It currently does this manually, via map edits, but that's kinda crappy
so lets be better.
This pr adds a new smoothing mode to handle border objects.
Unlike other smoothing modes, it returns a bitfield of directions the
border object connects in.
I do this by memorizing a calculation of which dirs "connect" at init,
and reading out of a global list with border object direction, direction
between objects, and if it's a border object, the other object's dir.
I'm doing this primarily because it's become useful for wallening (a
spriter saw the tram thing and is doing the same thing to pod windows,
and I want to support that)
I do think it's potentially useful in other applications too tho, and I
like dehardcoding tram windows.
Also fun bonus (or maybe downside), it's nearly 0 cost because I pulled
the bitmask smoothing define into 2 subdefines, and am swapping the
handler one out to do what I want.
Oh also I got rid of a for loop in smoothing code, redundant and costs
time in list iteration
[Moves tram windows over to the new border object
smoothing](114873679c)
Also replaces some typepath chicanery with a setDir override, for
redundancy in future
Oh and there's a update paths script too, to be nice
## Why It's Good For The Game
More visual possibility in future, fixes a hack we have currently, and
makes some spriters happy.
## Changelog
🆑
fix: Dehardcodes some stuff with tram windows, they'll be easier to map
with now
refactor: Border objects can now smooth with each other. I'm sure
something cool will come of this
/🆑
## About The Pull Request
Apps now properly delete themselves when removed, so they don't exist in
nullspace anymore.
Chat client now actually updates the uid, because its New() didn't call
parent.
Deletes the 'console' subtype of modular computer
Updates how downloading and transferring files are handled
Fixes being able to infinitely upload apps to a disk
## Why It's Good For The Game
Fixes some more bugs I found with apps and prevents spamming apps in a
disk.
## Changelog
🆑
fix: Maintenance data disks now properly transfer from PC to disk
fix: Disks can no longer be flooded with the same app repeatedly.
/🆑
## About The Pull Request
Fixes/adds missing atmosdrobe. To fit the theme of the map, its
placement is slightly obnoxious.
## Why It's Good For The Game
Lets atmos techs be slightly more fashionable hermits. Or at least get a
new clothes when, neglecting PPE, their burn escapes containment.
## Changelog
🆑
fix: Birdshot now has an (oddly placed) atmosdrobe.
/🆑
## About The Pull Request
Unit tests will now fail if there's a decal in a wall or open space
turf. Open space turf could be limiting to mappers but I don't think it
makes sense for decals (like dirt, glass shards, etc) to be floating
around in space in the exact same spot.
If there's a decal you want to put in space, decals have a
``turf_loc_check`` var that will bypass this.
**Important note: This is not changing existing behavior. Decals already
delete themselves when they spawn in these incorrect locations, we're
just avoiding them from spawning in the first place.**
### Changes I made
- Ash flora are now lava immune, rivers spawn after flora does, so I
decided that it would be easiest (and more flavorful) to have them be
lava-immune rather than to not have them spawn at all.
- Decals can now be spawned in non-turf locations. This is currently
done by mail, which can give you bones as part of the mail. Currently it
will just delete itself instead.
- Trading Card button is now on the same tile as their display, which
now uses an offset. Before it would spawn it on the tile next to it,
which could be a wall in some instances.
- Mirrors now have floating movement type. They ARE floating since
they're attached to the wall, and it prevents them from burning up due
to lava in the Pride ruin.
- I also added a broken mirror subtype because I thought the icon_state
check was terrible.
- Bubblegum called ``DestroySurroundings`` several times on the same
thing, I hopefully fixed some of that. Their charge ability also
registered ``COMSIG_MOB_STATCHANGE`` despite ``/datum/action`` doing it
by default, so I fixed that too.
## Why It's Good For The Game
Decals in walls is already a bad idea, but currently all it does is
delete it on Initialize. It would be better if we ensured they wouldn't
spawn in the first place.
## Changelog
🆑
fix: Lava will no longer burn 6 of the mirrors in pride ruin
fix: Lava will no longer burn plants that spawn in them.
/🆑
## About The Pull Request
This fixes a few weird access perms on maintenance doors leading into
Tramstation's brig.
The delivery chute windoors here were not access locked at all, meaning
anyone could just walk into the security office through maintenance.
This PR replaces these two windoors with a single reinforced windoor
that is locked to security access; in line with other departmental
delivery locations around the map.
<details>

</details>
This door in the brig medbay used a maintenance access helper, meaning
anyone with maintenance access could walk into the brig through it. This
PR swaps that out with a general security access helper instead:
<details>

</details>
## Why It's Good For The Game
The brig probably shouldn't be publicly accessible through maintenance.
## Changelog
🆑
fix: Maintenance doors/delivery chutes leading into Tramstation's brig
have had their access requirements fixed and now actually require
security access to open.
/🆑
Fixes#75918
Alternative to #75926🆑 ShizCalev
fix: The RD's plant will no longer say that it's not very healthy after
being restored with seeds.
fix: Potted plants no longer randomly swap icons after being thrown.
fix: Plants that started the round dead are no longer all the same kind
once revived.
fix: Admins can now varedit plants to be alive / dead!
/🆑

## About The Pull Request
The current broken tiles have some visual issues:
- There is an ambient occlusion shade when it touches normal tile
- It has a layer higher than it should be which leads to things that are
normally above the floor layer, render below it. Such as atmos
machinery, cleanable overlays, etc.
This PR makes the render on a proper layer and work like a partially
destroyed floor tile that can be reclaimed with crowbar.
Also, the cleanables are now on FLOOR_CLEAN_LAYER to make dirt appear
above catwalks and these new tiles.
And the flat dirt now has 4 variants of sprites, while dust uses the old
dirt sprite. It seems like dust was just dirt with different description
before.
## Why It's Good For The Game
A broken tiling with no visual bugs and proper floor-like logic.
## Changelog
🆑 MTandi, Borbop
fix: Dust now has dust icon, instead of dirt icon. Dust on all maps
replaced with dirt
image: Flat dirt now picks from 4 new sprites
refactor: Made broken tiling work more like tiling and have
corresponding visuals. Added directional mapping variants.
fix: Cleanables now use FLOOR_CLEAN_LAYER to make sure that trash is
visible above catwalks
/🆑
## About The Pull Request
- Rewrites the Pride Week rainbow tiles coloring into a more generic
'Holiday' tile coloring proc so that it can be used by any holiday
- Adds support for different color patterns
- Adds support for the trimline decal subtype Tramstation uses
- Adds stack types for tram tiles so that if you pull them up you can
put them back
- Fixes naming of tile decals
## Why It's Good For The Game
- The generic proc allows us to specify a different color set for each
holiday (think red white blue for July 4, or red/white/green for
Christmas)
- Players now have a way to put back tram platform tiles that have been
pulled up
- Tramstation gets colored tiles like the other maps

## Changelog
🆑 LT3
fix: Tram platform tiles now have proper stack types
refactor: Pride week tile coloring refactored into a generic holiday
decal system
spellcheck: Tile decals are no longer all named 'corner'
/🆑
## About The Pull Request
Changed the amount from 1 to 5 for original `bone_gel` so it's easier
for mappers to add the right bone gel.
Deleted subtype `/four` and added subtype `/one` specifically for bone
gel creating.
Increased from 4 to 5 because surgical tape has 5.
## Why It's Good For The Game
Having 1 bone gel near 5 surgical tapes always seemed off.
## Changelog
🆑
balance: Bone gel standart amount has been increased to 5.
/🆑
## About The Pull Request
Adds names to a few stuffed toys to be found around Northstar.
## Why It's Good For The Game
Adding uniqueness to the plushies that are found around Northstar adds
further character and charm to the map.
Adding this detail will make the station feel more lived-in.
## Changelog
qol: adds further flavor to the Northstar Plushies
## About The Pull Request
On the tin. They have pretty much nothing in common with chickens, so no
subtyping. They are in the same folder to keep that whole thing tidy,
though.
Also includes fixes to `growth_and_differentiation` element that I made
for spiderlings, since some stuff was yorked without me realizing. It
pretty much worked flawlessly for these chicks otherwise though. It all
works fine now.
## Why It's Good For The Game
More verbose naming scheme (instead of "holo", we get "permanent"
chicks), smarter AI for chicks, knocks them off the list, etc. etc.
One thing that I wanted to do was to have chicks recognize their mother
(if they had one), but that would be way out of scope for this simple
port PR. I'll dwell on adding something cool for that in the future.
## Changelog
🆑
refactor: Chicks are now a bit smarter, be careful not to squish them!
/🆑
Let me know if the whole "COMPONENT_KILL" thing is cringe, I couldn't
figure out a better way to do it without abusing `GetComponent()` to
`qdel()` it that way.