Metalgen can't spawn in strange seeds, maintpills, random geysers, egg
gland etc anymore
Metalgen is an extremely strong chem, intentionally gated behind both a
a rare geyser chem and a randomized recipe. A botanist being able to
mass-produce it randomly roundstart throws off the entire balance
systems and takes away from the novelty of metalgen synthesis
The randomized recipe system is meant to reward players for putting in
extraordinary effort to get an extraordinary reagent. Secret sauce (the
only other secret chem) can also not be randomly generated for this
reason, I made an oversight by not doing the same for metalgen.
This portion of the script wasn't updated, so we always got an error on
linters. This never threw a `sys.exit` error so this list hasn't been
updated for a solid while now...
Let's both add the prefix and make sure we throw so we don't forget
about this script in the future. Quite important to make sure this stuff
works!
This PR makes HMS and any other diseases set to uncurable severity (only
HMS counts right now) actually uncurable through either aheal or viral
bonding.
Well, simply put, you shouldn't be able to cure quirks. Viral bonding
doesn't technically "cure" the disease but makes you into a carrier for
something that doesn't spread, which has been fixed.
There was an oversight with one of the explorer drone trader events who
wants /obj/item/clothing/suit/armor (base armor path) which currently
doesn't have its own name so it gets referred to by the inherited name
from /obj/item/clothing/suit in game. I've given it the proper generic
name "armor" so this sort of thing won't happen in the future.
Ran into a player doing explorer drone who tried using different types
of clothing because the trader asked for "suit" and not even the admins
online knew what it meant. This will clear things up and stop similar
confusion in the event any code needs to refer to the base armor path by
name.
## About The Pull Request
This PR refactors mind language holders into non-existence
As a result, `update_atom_languages` is no longer necessary
Mind-bound languages are transferred via `/mind/proc/transfer_to`
Species changing no longer deletes and re-creates the mob's language
holder, allowing them to keep any languages they have.
Species languages are sourced from `LANGUAGE_SPECIES` now, meaning they
are removed when they change species. If the mob is not a human with a
species datum, these are effectively just atom level languages.
Makes a bunch of unit tests to ensure language transfer over certain
events works as intended
## Why It's Good For The Game
Mobs with minds having two independent language holders results in a
good few bugs, and simply doesn't make sense when we have sources
(`LANGUAGE_MIND`).
Instead of tracking two language holders, we can simply use sources
better and only track one.
This means that the language holder you start with is your language
holder, period. It doesn't get deleted or re-instantiated or whatever.
## Changelog
🆑 Melbert
refactor: Refactored language holders, making species changes not delete
all of your known languages
/🆑
## About The Pull Request
Fixes#76661
Also adds new PLUOXIUM_PROPORTION define, this is set to 8 which is
currently how better pluoxium is at metabolism compared to oxygen
## Why It's Good For The Game
Since pluoxium is 8 times as effective as oxygen, mobs only need 0.625
mol of it compared to 5 mol of oxygen. This is a very small amount,
maybe it should just be the same as oxygen?
Also pluoxium and oxygen are counted together, so you could have a mix
of 0.5 mol of pluoxium and 1 mol of oxygen for example.
## Changelog
🆑
fix:Mobs can breathe pluoxium
/🆑
Define not player-facing
## About The Pull Request
Gives all themes to clear PDAs
## Why It's Good For The Game
Clear PDAs are found/purchased late into a round and theme apps would
generally already be found and installed in PDAs. This means there's
nothing left to install in the crystal PDA, so instead I thought why
shouldn't they just get all themes?
## Changelog
🆑
qol: Clear PDAs now has all themes in their themify app by default.
/🆑
## About The Pull Request
Fixes#76503
Probably important for this stuff to be logged.
## Why It's Good For The Game
Helps admins figure out the signallers that are signalling, and who
triggered the signaller.
## Changelog
🆑
admin: If a circuit component outputs a radio signal, it should now be
logged in list-signalers.
/🆑
## About The Pull Request
Fixes https://github.com/tgstation/tgstation/issues/76641
Caused by the bodypart overlay being deleted before it got properly
removed on UnregisterFromParent()
## Why It's Good For The Game
One less hard delete and one less bug caused by said hard delete
## Changelog
🆑
fix: Creampies will no longer irreparably stain your face
/🆑
## About The Pull Request
makes them unable to hold any /mob/dead
## Why It's Good For The Game
Fixes#76632
## Changelog
🆑
fix: morgue units can no longer hold ghosts
/🆑
## About The Pull Request
This PR adds a new craftable item to the game that, in a way, works
somewhat like ID cards, as in it gives the wearer an identity of some
sort, and that can be modified similardly to the agent ID, but...
It doesn't provide access.
It doesn't trick security bots and turrets.
It doesn't work with chameleon masks.
It doesn't have a bank account.
It doesn't fit inside wallets or PDAs.
It doesn't show a trim (it's just cosmetic) on the security HUD.
It doesn't look like an ID card.
(It does however, synergizes well with sign language and face-covering
mask, but in the face of all the things id doesn't do, should I change
that? idk)
Basically, it's not an ID, it's just a piece of cardboard with name and
job written on it.


## Why It's Good For The Game
Often, player shenanigeans rely on ID cards with gimmicky names and jobs
to advertise themselves or provide a (feeble) disguise for it.
The idea is to provide players a cheap tool for their tomfoolery, that
doesn't get much in the way of balance. Compared to actual IDs,
cardboard IDs' only advantage is the fact they're more easily
produceable.
Also this PR converts a bit of snowflakey code into signals, and fixes
the name part in hallucination messages being shown "Unknown" while the
speaker is wearing a mask but also an ID.
## Changelog
🆑
add: Added cardboard IDs to the game. They can be crafted with a
cardboard sheet and wirecutters and modified with a writing tool. While
worn, these will modify the visible name of the wearer just like actual
IDs, though they aren't real IDs and won't work as such.
/🆑
## About The Pull Request
See #76551. The on hit effect component was treating the `hit_limb` arg
of the projectile on_hit signals as if it were a bodypart item rather
than a string. This wasn't my fault.
Also, invisible arrows because I forgot to set up their definition of
update_icon_state() and base icon state var.
Lastly, the envenomable casing registering a signal on the wrong atom,
and the arrow bullet subtype being defined twice.
## Why It's Good For The Game
This will close#76551.
## Changelog
🆑
fix: Fixes venomous projectiles for real, and invisible arrow sprites.
/🆑
## About The Pull Request
The AI I coded for spiders deciding where to make webs when they aren't
otherwise occupied would do so by finding the _closest_ valid tile,
which seemed like a good idea at the time. The problem with that is that
the "closest" algorithm we use has a predictable search pattern which
meant that spiders would always predictably make a diagonal line of webs
pointing South West, which looked very silly.
I've rewritten how they pick targets to introduce some randomness, which
causes them to properly spread out and make a nicer-looking structure:
which serves purely to annoy spacemen who need to pass through this
area.

I'll be honest I mostly did this while bored waiting for other PRs which
I require for my other branch to get merged.
## Why It's Good For The Game
This probably only annoyed me to be quite honest and if you left one
alone for long enough it would fill enough space that you couldn't tell
anyway, but it does look nicer now.
## Changelog
🆑
add: AI-controlled spiders will make more web-shaped webs.
/🆑
## About The Pull Request
Emagged organ harvesters will no longer refuse a victim that has items
on their person, such as the handcuffs they've been bound with.
To be clear, this PR affects the organ harvester, which should not be
confused with the chef's gibber or cargo's recycler.
## Why It's Good For The Game
Emagging an organ harvester disables its checks to make sure that the
"patient" is dead, but doesn't disable its checks to make sure that the
patient is naked. This makes grinding people alive with an organ
harvester very awkward, as the machine will detect the cuffs you've
bound them with and refuse to grind them.
A demonstration of the jank involved in the current organ harvester
experience, courtesy of Livrah:
https://youtube.com/clip/UgkxC8OmO90nEhAonO0PIhRmQtcA-0urZoZ3
For the record, grinding conscious victims (but not critted or
unconscious ones) notifies ghosts. Furthermore, the variable for
disabling the item check actually already existed in the code for the
organ harvester, but was unused. I believe that tying someone up and
killing them slowly and painfully by shoving them into an organ
harvester is supposed to be intentional.
## Changelog
🆑 ATHATH
qol: Emagged organ harvesters will no longer refuse a victim that has
items on their person, such as the handcuffs they've been bound with.
/🆑
## About The Pull Request
#76596 changed engi scanner goggles to be green in meson mode, but the
vision tint was still yellow. Originally I wanted to make the tint green
(#76630), but it seems that people like yellow engi mesons more, so I
changed the sprite instead. I copied the glass part of atmos-thermal
mode t-ray goggles onto the engi goggles.
Before:

After:

Also atmos thermal imaging goggles are now green to avoid confusion
## Why It's Good For The Game
Sprite color matches the vision tint
## Changelog
🆑
image: Engineering scanner goggles are now yellow and not green when in
meson mode
image: Atmospheric thermal imaging goggles are now green
/🆑
## About The Pull Request
Closes https://github.com/tgstation/tgstation/issues/76645
## Why It's Good For The Game
More reasons to ghost
## Changelog
🆑
fix: snakes, security, spiders and skeletons phobias now properly react
on mobs
/🆑
## About The Pull Request
Replaces a return ..() with a return TRUE in the process(), removing the
PROCESS_KILL returb
## Why It's Good For The Game
Thinks working are always nice.
## Changelog
🆑
fix: Quantum relays now process, meaning DOS attacks actually function
/🆑
## About The Pull Request
Closes https://github.com/tgstation/tgstation/issues/76644
appendix to null
ears to simple cybernetic
eyes to tier 2 cybernetic eyes because i don't want android wizards to
cosplay moths, they are weak enough already.
## Why It's Good For The Game
Androids are now blind when emp'd.
## Changelog
🆑
fix: androids now have proper robotic organs and no appendix.
/🆑
## About The Pull Request
Fixes#76665
`fakedeath` early returned if the mob was dead, I guess it assumed if
you were dead dead you wouldn't want to become fake dead as well
I removed that because it's definitely a valid use case, in my eyes,
that you would be able to apply the fakedeath traits to a mob who is
dead, for the event they are revived at some point (to still appear
dead)
## Why It's Good For The Game
Lings rely on this
## Changelog
🆑 Melbert
fix: Fix ling revival for full-dead lings
/🆑
## About The Pull Request
Rebalances the smuggler satchels that were randomly replaced around the
station.
Now only two are spawned, down from 10
## Why It's Good For The Game
Though I think these are cool, currently with 10 spawning roundstart
they feel like they are everywhere, especially if you are walking around
with t-ray vision. The smugglers satchel is powerful item, powerful
enough to be in the traitor uplink. It makes inventory management a lot
easier, as you essentially have another backpack in your backpack. I
feel like this is a fine reward for being lucky or actively looking for
them, but with how they are currently, you can pretty much guarantee
your chances of getting 5 with a t-ray scanner and a couple minutes of
walking around, invalidating the inventory system. Now if you want this
reward, you have to make a choice to look for one, with the knowledge
that you still may not find it.
## Changelog
🆑 Seven
balance: Only 2 smugglers satchels will spawn on the station at
roundstart, down from 10
/🆑
## About The Pull Request
Fixed the typo. Left with an underscore for back compatibility reasons.
## Changelog
🆑 Riggle
spellcheck: fix suspicious_logins
/🆑
## About The Pull Request
Title.
## Why It's Good For The Game
Accidental coder speak.
## Changelog
🆑 distributivgesetz
spellcheck: Fixed some underscores in spiderling names.
/🆑
## About The Pull Request
PR done for bounty:
https://tgstation13.org/phpBB/viewtopic.php?f=5&t=33988
borgs can now turn on stoves and griddles
borg click code has been reworked a bit to be closer to base mob, you
are now able to click on stuff within reach rather than just Adjacent
(might be buggy to introduce this? hopefully not. if anything we can
testmerge this), which lets us make the apparatus work to pick up stoves
on the range and such
Adds the Codex Cibus Mechanicus as an upgrade you can research in RnD
with the other service borg ones. When you use it it shows you the
cooking menu!

## Why It's Good For The Game
The service borg has the tools to prepare ingredients, but it can't
actually do anything with them, which severely limits it, only being
able to do slapcrafted foods.
The apparatus not working on items that are on top of stoves/griddles
seems to be just a bug with how cyborg click code is handled.
## Changelog
🆑 Fikou
fix: service borg apparatus now works on stoves and griddles and ovens
qol: borgs can now activate stoves and griddles
add: rnd can research a cookbook for service borgs
/🆑
## About The Pull Request
I'm atomising a different branch I'm working on so here comes a bunch of
goofy components.
This one lets mobs dig up floor by clicking on them.

I have justified the existence both of this component and of this system
by attaching it to golem arms.
## Why It's Good For The Game
If you can mine solid rock with your fists you should probably be able
to get sand too
## Changelog
🆑
add: Golems can scoop sand (or snow) off the floor by clicking on it.
/🆑