## About The Pull Request
Re-open of #80808 post embargo
I've increased the minimum amount of n2o required in the air to cause
giggling. Threshold is still well below the para and sleep values.
This should stop people randomly getting drugged and giggly from trace
amounts of gas.
I'm not gonna lie I had no idea how to fully dial this in, so the
numbers are an arbitrary ~~10x increase from .01 mol to .1 mol~~ 8x
increase from .01 mol to .08 mol.
## Why It's Good For The Game
After "extensive" real life testing I've determined that giggling and
euphoria from trace amounts of the gas is unrealistic.
Also it would be a lot less annoying. @Cheshify also called it qol so
I'm sticking with that.
<img alt="220f1c0470cef181192facef1374bf5c"
src="https://github.com/tgstation/tgstation/assets/26744576/1f42cc27-24d0-42c1-a233-f0bae9f1aa77">
## Changelog
🆑
qol: Increased threshold of trace n2o required to make euphoria and
giggles happen.
/🆑
## About The Pull Request
A part of https://github.com/tgstation/tgstation/issues/81242
## Why It's Good For The Game
Don't interact with things you shouldn't be
## Changelog
🆑 LT3
fix: Fixed alt-click validation for tram interactions
/🆑
## About The Pull Request
Spider radial menus now require proximity, and will close if you move
away from them.

## Why It's Good For The Game
Clicking the egg and not picking anything leaves the radial open. If you
try to use any other eggs the menu will not open until you track down
the radial menu and close it properly. If you aren't aware of this,
it'll feel like all of the eggs are broken and lead to confusion. This
has happened to myself and others.
## Changelog
🆑 Rhials
qol: Spider eggs will now close their spawn menu when you move away from
them.
/🆑
## About The Pull Request
The robotic voicebox tongue had the `can_speak_language(language)` proc
set to return `TRUE` regardless, however it doesn't seem like this is
actually called on a tongue anywhere else in the code. I _believe_ this
proc is on the atom level, and isn't for the tongue itself.
I think the correct proc would be
`could_speak_language(datum/language/language_path)`. which is defined
on the tongue and most importantly actually called when checking which
language a carbon can speak.
```dm
/mob/living/carbon/could_speak_language(datum/language/language_path)
var/obj/item/organ/internal/tongue/spoken_with = get_organ_slot(ORGAN_SLOT_TONGUE)
// the tower of babel needs to bypass the tongue language restrictions without giving omnitongue
return HAS_MIND_TRAIT(src, TRAIT_TOWER_OF_BABEL) || spoken_with.could_speak_language(language_path)
```
## Why It's Good For The Game
It having `can_speak_language(language)` doesn't seem to actually be
doing anything, but its presence in the first place makes me feel like
this is unintentional. This fixes that.
## Changelog
🆑
fix: Robotic voicebox actually lets you speak any language again (as
long as you know it).
/🆑
## About The Pull Request
- Kicks Martial Arts out of the attack chain.
- All Martial Arts attacks are now handled via unarmed attack or grab
signals
- This means all martial arts are now technically on the living level,
allowing any mob that can unarmed attack to martial arts. Sort of. YMMV.
- All martial arts block checking is now handled by the arts themselves,
meaning you can selectively decide for a martial arts strike to not be
blocked. Maybe good for the future.
- A comprehensive cleanup of all existing martial arts. Improving var
names, code, adding some missing animation calls, etc.
Fixes#74829
## Why It's Good For The Game
Untangles the mess that is martial arts, making it a lot easier to work
with the attack chain and making it overall a ton more consistent.
## Changelog
🆑 Melbert
refactor: Big martial arts refactor, they should now overall act a ton
more consistent. Also technically any mob can do martial arts. Let me
know if something is funky.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
This gives the mounted RCD the same functionality as the handheld
version, from upgrades to destruction scanning. Upgrades can be
installed by using them on either the mech or the equipment item, and
both the scanner and RCD menu can be accessed in the equipment's menu.
Because mechs don't have different left/right click actions,
deconstructing is toggled in the menu as well.

## Why It's Good For The Game
Gives exosuits more things to do that aren't combat-related, which I
feel is lacking currently.
## Changelog
🆑
add: Exosuit-mounted RCDs now have the same functionality as the
handheld version.
/🆑
<!-- 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 increases cuff time to 4 seconds, but adds a trait for gloves
that makes you cuff 1 second faster. Currently this is placed on black
gloves, the captain's gloves and any other gloves which are used for
combat (like krav maga, any tacklers, and combat gloves). Chameleon
gloves also have this trait so that traitors have a glove choice other
than the somewhat conspicuous combat gloves to help them with
kidnapping, something they may do for objectives or contracting.
It also makes nitrile and latex gloves hide your fingerprints once
again.
<!-- 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
Latex gloves not hiding fingerprints was basically done purely for
balance reasons to make them not a direct upgrade over black gloves,
however it bothered me that this made little sense logically and is very
unintuitive and not something that's easy to tell in game. I've
personally arrested multiple people while playing sec using finger print
evidence they didn't even realize I could possibly have because they
thought their gloves would protect them.
Also I don't like playing against shove cuffing, dying because you dared
to stand within 1 tile of a wall or table and got shoved once is unfun
and takes basically zero effort or preparation and is one of the most
effective things you can do to fight someone, it discourages RP because
literally anyone can just turn on combat mode, walk you into the wall
while you're typing and kill you with nothing but a pair a cable cuffs.
This will make it take a little more prep and make you a little more
conspicuous when you intend to do it.
<!-- 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: Wearing certain gloves (such as black gloves and combat oriented
gloves) allow you to cuff people faster
balance: base handcuffing time is now 4 seconds
balance: latex gloves now hide your fingerprints
/🆑
<!-- 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
This project rewrites experimentor UI from browser to TGUI. Refactored
`ejectItem`, moved experiment handling logic out of `ui_act` and
reordered proc calls, thus fixing a null reference runtime during
attempt to unlock any techweb node. In addition, removed
`checkCircumstances` due to being unused.
## Why It's Good For The Game
The New UI is more responsive and displays much more information in a
more organized fashion. Also, it removes `updateUsrDialog` and helps to
bring https://hackmd.io/XLt5MoRvRxuhFbwtk4VAUA to a closure.
## Changelog
🆑
refactor: refactored experimentor UI to TGUI.
/🆑
## About The Pull Request
[Converts all manual extraction of rbg with rgb2num. It's just
better](ae798eabd5)
[Yanks out old HSV management, replaces it with list
stuff](4997e86051)
There's this old lummy era clunky code that passed HSV as text
We can now cleanly replace it with passing hsv as lists from a rgb2hsv
proc
So let's just do that.
Also, cleans up spraytan code (and ethereal lighting)
## Why It's Good For The Game
Code better
check for area.requires_power
## About The Pull Request
If the area is supposed to not require power, we should respect that
Also it doesnt make sense to use all the power at once even though we
print items in series not parallel
fixes#81155
## Changelog
🆑
fix: lathes now respect always-powered areas
balance: lathes now use power as they print instead of all at once
/🆑
## About The Pull Request
Classic copy paste error
Open dream lint would catch this I think
## Changelog
🆑 Melbert
fix: Robocontrol app maybe works better now.
/🆑
## About The Pull Request
It's a classic

`EXAMINE_HINT(x)` resolves to `"<b>" + x + "</b>"`
When placed in this line directly, you get:
`["<b>" + HAS_TRAIT_FROM(...) ? "..." : "..." + "</b>"]`
You see the issue, right?
This resolves as you would expect:
`("<b>" + HAS_TRAIT_FROM(...)) ? ("...") : ("..." + "</b>")`
Which, of course, runtimes as it's adding a string to an integer (0).
By pulling it out to its own var we can get around this:
`["<b>" + frame_or_pc + "</b>"]`
## Changelog
🆑 Melbert
fix: Fixed examining modular PCs
/🆑
## About The Pull Request
- The screwdriver_act() proc is blocked if the mech's occupant list
isn't empty.
- Entering a mech also force-sets the panel closed.
- Fixes an incorrect comment.
## Why It's Good For The Game
I think mech wires were dumb to begin with, but that's not the hill I'm
here to die on today.
The ability to mess with mech wires while the mech is piloted doesn't
really make anti-mech combat better. Pilot gets a big giant text
warning, if they're looking at the text window, but if not the wires can
be quick-snipped once the do-after is done. If you were in the middle of
typing, you have a short window to close the text box and get back to
moving before the panel is open (and you cannot close it without exiting
the mech). At the same time, there's no real way to combo into it, so
it's _only_ really useful against mechs otherwise distracted, or as
cheese when the mech is in a corner. Then we put things like weapon
disabling and forced overclocking (and thus, damage) into the wires, so
cutting everything cripples the vehicle.
In short, it's stupid powerful when it works, and yet it only works
against inattentive players unaware of the mech wire system. An overly
cheesy anti-mech strat when the go-to should be EMPs.
You can still steal unoccupied mechs, I guess, go nuts.
## Changelog
🆑
balance: Mech wire panels are now blocked when the mech is occupied. I
guess it was moved to be behind the seat.
/🆑
## About The Pull Request
You can now get station goals in a slightly better way over using a
`locate() in` call on a global list.
The Meteor Satellite goal no longer stores a giant list of ALL OBJECTS
in view. And now correctly only counts turfs.
## Changelog
🆑
fix: Meteor Satellites no longer erroneously count every piece of paper
as a protected turf.
fix: As a result the station goal is slightly more difficult
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
## About The Pull Request
With the recent changes to polling, it seems like it didn't properly
poll cultists, I fixed that and fixed other issues with it (such as it
telling players that they are signing up to BE a cult leader, when they
arent).
Also fixed the button to put yourself forward as cult leader, it
properly removes and gives itself when necessary.
## Why It's Good For The Game
Cult button works again how cool is that
Closes https://github.com/tgstation/tgstation/issues/80620
## Changelog
🆑
fix: Cultists can now vote for a Cult leader again.
/🆑
## About The Pull Request
The laser musket and smoothbore disabler are themed heavily towards
pirate stuff (main thinking of the movie treasure planet) so I thought
since the guns aren't held up as great as traditional guns, pirates
should at least be able to wear them on their suits, so this does
exactly that.
## Why It's Good For The Game
It encourages pirate costume wearing people to use pirate-themed guns
which I think is a positive.
## Changelog
🆑
balance: Pirate suits can now hold the laser musket and smoothbore
disabler.
/🆑
## About The Pull Request
Using feed while feeding on someone will now unbuckle you rather than
prompt you to buckle to someone else like it's supposed to
The list of people to buckle to no longer includes dead people (which is
beneficial for the last fix)
If there's only one person to buckle to then it will skip the UI and eat
that person.
## Why It's Good For The Game
Fixes to slime.
## Changelog
🆑
fix: Slimes using Feed while buckled now stops feeding.
fix: Slimes are no longer prompted to feed off of dead people.
fix: Slimes that can only feed onto one person now immediately feeds off
of them.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
- Jukebox is refactored into a datum that the rave visor and the jukebox
uses.
- Jukebox UI is now typescript.
- How the Jukebox delivers sound to players has been rewritten.
- Now it adjusts the sound's position in accordance to where the
listener is.
- This implementation was loosely inspired by that done by Baystation
half a decade ago, so kudos to them.
- Additionally, being deafened will temporarily mute the jukebox.
- And sorry, in refactoring this I snuck in one tiny feature.
- You can now toggle looping on Jukeboxes to play the song
foreeeverrrrr.
## Why It's Good For The Game
It sounds wayyyyyy better. Overhead isn't even that bad, though it could
be tested on a live server to make sure.
https://github.com/tgstation/tgstation/assets/51863163/ec1321b6-bf1c-4c33-9663-83f2c23a4277
## Changelog
🆑 Melbert
refactor: Jukebox has been refactored. Jukebox music now updates as the
player moves, mutes when the player is deafened, and overall sounds
wayyy better. You can also now toggle song repeat on jukeboxes.
/🆑
## About The Pull Request
Fixes https://github.com/tgstation/tgstation/issues/81106. The tram's
dynamic power use does not get recalculated when leaving an area because
the powernet between areas is made for static loads, This leads to APCs
being drained quickly consuming too much power, or consuming negative
energy leading to an APC being charged.
The amount of times use_power is called on tram crossing signals during
processing also leads to unexpected power consumption.
This moves tram power to a rectifier machinery object in each area,
controlled by signals from the tram. Tram crossing signals are fixed in
how they consume power, changing between power use states instead of
consuming during processing, and moved from the transport subsystem to
fastprocess because they don't need to be running at 20fps.
## Why It's Good For The Game
Tram draining an APC in a matter of seconds is bad. Tram having negative
power draw at other times is also bad.

## Changelog
🆑 LT3
fix: Tram power consumption will no longer will randomly drain APCs
fix: Tram power moved to area based rectifiers
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Fixes Mk-II Ripley exosuits not being enclosed, and converted mechs not
having lights on if they did before.
## Why It's Good For The Game
Closes#81034
## Changelog
🆑
fix: Mk-II Ripley exosuits are spaceproof again.
fix: Converted mechs now have their lights on if they did before the
conversion.
/🆑
## About The Pull Request
I made a change in #80324 that prevents delamination variants from
updating after the countdown is reached, however AWTL wouldn't obey this
because the countdown proc sleeps while the crystal comes back from the
countdown stage, so the `delamination_strategy` var will have changed. I
removed 3 dead lines of code (because delam variants never change during
the countdown).
Fixes#79528 this time hopefully
## Why It's Good For The Game
work, damn it
## Changelog
🆑
fix: All Within Theoretical Limits should properly unlock now when the
crystal comes back from the countdown.
/🆑
## About The Pull Request
Cult pylons read from our existing list of "turfs which don't count as
floor despite being open turfs" instead of having its own one, which did
not include openspace turfs.
This prevents it from "papering over" things like stairwells and sealing
people inside their base.

## Why It's Good For The Game
It's not supposed to do that, and fixing it this way is futureproof to a
greater degree.
## Changelog
🆑
fix: Cult pylons will no longer cover up "open space" (or water) with
cult floors
/🆑
## About The Pull Request
This PR changes the circulator's sprite to have four informational
overlays-- one will display the panel status (opened or closed), one
will show if the circulators are anchored (or not), one that will show
if it is on the hot or cold mode, and what direction the gas will flow
from "inside" the circulator.
## Why It's Good For The Game
Using sprites to promote clarity is nice...

## Changelog
🆑
code: added the code that allows the image overlays to work for the
circulator (teg)
image: changed circulator's (teg) fast/slow turbine sprite
image: added an anchor, panel, and flow overlay for the circulator (teg)
/🆑
## About The Pull Request
This gives the encrypted bitrunning crate a bunch of resistances, making
it (theoretically) impossible to destroy.
## Why It's Good For The Game
The crate getting shot down by mobs or players and softlocking a domain
really kinda sucks!
## Changelog
🆑 Rhials
fix: The encrypted bitrunner cache is now impervious to most
conventional means of destruction.
/🆑
## About The Pull Request



With the merge of #78524, we have a significant amount more control over
how many materials are entering the round, as if it's overtuned, we can
adjust the mineral spawning percentages, and if it's undertuned we can
do vice-versa. Similarly with ore vents, we can adjust how much of every
resource will spawn, allowing for items that can be printed via the
lathe to have a significant more impact on how much they cost depending
on round balance.
Going forward, this data can be found using the mineral logging and
graphing tool found in `tools\silo_grapher\silo_graph_script.py` to make
future balance decisions. These tools combined allow for a full suite of
resource controls going in and out of the round for decisions to be made
on item printing.
## Why It's Good For The Game
We needed better control on resources going in and out of the round for
the massive, massive quantity of items in game limited by being
extremely cheap to print on the lathe.
We have those resource controls now, and the tools to adjust the balance
as necessary. Therefore, I'm fine with us axing this.
Fixes#67009, and fixes#66601.
I would wait out the last bit of the freeze but ahh fuck it I don't see
why not to do it now
## Changelog
🆑
del: The lathe tax on printing items has been removed from the game for
both humans and silicons.
/🆑
## About The Pull Request
When I wrote #81113, I foolishly set the flags on the nukie medbot by
typing out all the parent flags and removing the one I did not want.
This PR changes that to use the `parent_type::` operator and get the
actual parent flags, then removing the one we do not want. Not player
facing.
## Why It's Good For The Game
Looks cleaner in the code and probably helps maintainability.
## About The Pull Request
Fast little PR, with the autolathe and design datum time changes, I saw
that we didn't have design datums moved over to using time defines
uniformly, and in a few cases the times were using material quantity
defines (oops!), so I've quickly moved those over to using our correct
time defines as guided by common sense.
## Why It's Good For The Game
Cleans up the code for this section going forward so that when everyone
copypastes a new design datum for the next feature at least we're using
consistent and correct standards.
## Changelog
No player facing changes.
## About The Pull Request
Added an update call to looping ambient sounds to `/mob/Login()`. And
removed ship ambience from the lobby area.
Doesn't fix the issue of ambient sounds not updating for ghosts since
they cannot enter areas. Should all dead mobs get updates to ambience at
all? Who knows
## Why It's Good For The Game
silence when starting the game is noticeably annoying.
## Changelog
🆑
fix: Ambient loops will now refresh when entering a mob.
/🆑
## About The Pull Request
While playing hop I was told that, well: apparently it wasn't possible
to make rootbread soup, as it required a whole raw unpeeled egg to be in
the pot, while attempting to put it in the pot would break it into its
reagents.
This pr makes it instead use the egg reagents to represent poaching the
egg in the soup to reflect the sprite. And also that one irl rootbread
soup chef station 13 blogpost.
## Why It's Good For The Game
It was not possible to make rootbread soup due to eggs breaking on
contact with soup pots, now it is.
## Changelog
🆑
fix: Rootbread soup now uses poached egg (egg reagents in soup pot)
instead of raw unpeeled egg (which would break into reagents upon coming
into contact with the soup pot) and is thus craftable again.
/🆑
## About The Pull Request
This just seemed like a minor error with the new syntax that popped up:
The intent of these seem to be "take our obj flags and add
`NO_DECONSTRUCTION` to it", which was perfectly serviceable in a
majority of places, as the parent type had the same obj flags as `/obj`.
But in a small handfull of places (such as any table subtypes) this was
not the case, and it caused some objects to have missing flags that they
were otherwise intended(?) to inherit.
So I replaced `/obj::` with `parent_type::` meaning rather than using
the base obj flags and then adding `NO_DECONSTRUCTION`, they use their
parent type's obj flags and then add `NO_DECONSTRUCTION`.
## Changelog
🆑 Melbert
fix: You can build on some niche tables again, such as the Wabbajack
Altar.
/🆑
## About The Pull Request
- Fixes#81096
Basically if the reagent volume inside an reagent holder falls below
`CHEMICAL_VOLUME_ROUNDING`(or 0.01) only then is it garbage collected.
Helps with small transfer rates like the plumbing iv drip
This means volumes like 0.01 of a reagent can now exist inside your
beaker, previously this was 0.05
## Changelog
🆑
fix: sets minimum volume of reagent allowed to exist inside anything to
0.01 therefore allowing plumbing iv drip small transfer rates to occur
without reagents disappearing.
/🆑
## About The Pull Request
fixes the flaky error that would happen in cleanbot controllers. i
discovered thru the profiler that a proc i was using to stop tracking
unreachable targets and caching them to a blacklist in selectbehavior
had a bit of a high real time cost, so if the mob got deleted midway
through for any reason would cause a runtime error. ive moved this proc
off selectbehavior and im instead letting the move loop cache this
target into the blacklist if it reaches the max pathing attempts
## Why It's Good For The Game
fixes a runtime that sometimes happens in ai controllers
## Changelog
🆑
fix: fixes a runtime that sometimes happens in ai controllers
/🆑
## About The Pull Request
Some bug smashing, as well as adding decent values to martian drinks.
This is also my first few ever PRs, so if something goes wrong, yell at
me
## Why It's Good For The Game
This should hopefully make it so that martian drinks appear more at
bars. Also, you can now eat a pesto pizza whole. Yey.
## Changelog
🆑
fix martian drinks give various moodboosts that aren't just "nice" now
fix: pesto pizza (cooked) is no longer raw, and cilbir is meat instead
of fruit
/🆑
## About The Pull Request
I made it so Wizarditis Timestop just freezes yourself but forgot
timestop makes you immune to timestop.
So now I added some vars to timestop both to fix this and also for
admins to mess around with.
## Changelog
🆑 Melbert
fix: Wizarditis Timestop now has the desired effect.
admin: Admins can now VV Timestop to make the caster not immune to their
own Timestop. If they really wanted.
/🆑
## About The Pull Request
Husk icons are now generated dynamically by greyscaling the limbs and
applying the husk blood overlay
rather than everything using the same husk sprite
## Why It's Good For The Game
Less sprites needed, also good for nonhuman races especially those with
non-humanoid shapes
All that is needed for a husk icon now is a blood overlay instead of an
entire limb set
Human, Lizard, Moth, Monkey husks
PIC IS A BIT OUTDATED, THE BLOOD IN PIC IS DARKER THAN HUSK BLOOD
(fixed) AND IT DOESNT "FIT" TO LIMB SPRITE (fixed)

## Changelog
🆑
refactor: Husk icons are now dynamically generated. See if you can
identify what species it was!
/🆑
## About The Pull Request
It was mentioned to me that APCs were spamming the power down noise when
broken, so I looked into it.
After further questioning and testing, this turned out to be a
blob-specific issue.
Blobs present on the same tile as an APC were continuously calling the
`set_broken()` proc:
```dm
/obj/machinery/power/apc/blob_act(obj/structure/blob/B)
set_broken()
```
```dm
/obj/machinery/power/apc/proc/set_broken()
if(malfai && operating)
malfai.malf_picker.processing_time = clamp(malfai.malf_picker.processing_time - 10,0,1000)
operating = FALSE
atom_break()
if(occupier)
malfvacate(TRUE)
update()
```
Which was causing `update()` to be continuously called on the APC, which
was in turn spamming the power down noise:
```dm
/obj/machinery/power/apc/proc/update()
if(operating && !shorted && !failure_timer)
(...)
else
(...)
playsound(src.loc, 'sound/machines/terminal_off.ogg', 50, FALSE)
area.power_change()
```
So we fixed this by just adding an if statement to check if it's broken
or not before breaking it:
```dm
/obj/machinery/power/apc/blob_act(obj/structure/blob/B)
if(machine_stat & BROKEN)
return
set_broken()
```
## Why It's Good For The Game
Fixes noise spam bug.
Ough my ears.
## Changelog
🆑
fix: Blobs sitting on APCs no longer break them when already broken, and
so no longer spam the power down noise.
/🆑
## About The Pull Request
Fixes two small errors in the lines spoken by mob when performing the
fireproof clothing rite.
"a thousand time and more" is now "a thousand times and more"
And the first line has a space added for consistency with the other
lines.
## Why It's Good For The Game
Gotta fix those player facing typos.
## Changelog
🆑
spellcheck: typos fixed in the fireproof clothing religious rite
/🆑
## About The Pull Request
Alternative title: "Resolve Jerry Tramstation's impotence."
While cats had all the other requirements for breeding, the ai subtree
for it returns early as no `BB_BABIES_PARTNER_TYPES` had been set for
the cat ai and thus it would never actually try to breed.
This pr just adds a `BB_BABIES_PARTNER_TYPES` value to
`code/modules/mob/living/basic/pets/cat/cat_ai.dm`, so they can actually
have kittens again.
## Why It's Good For The Game
Fixes cat breeding bug.
And c'mooooon, look at theeeeem:

## Changelog
🆑
fix: Jerry Tramstation can get laid again! (Fixed cat breeding.)
/🆑
## About The Pull Request
Thanks Elli-Skala for pointing it out.
## Why It's Good For The Game
The port is meant for modular computers and station relays, both of
which are objects.
## Changelog
N/A, it's a very small thing.
## About The Pull Request
Fixes https://github.com/tgstation/tgstation/issues/79067 where you can
hijack the shuttle without actually being on the shuttle.
## Changelog
🆑 LT3
fix: Emergency shuttle console now only works while on the emergency
shuttle
/🆑
## About The Pull Request
### Alternative title: "Remove kitten omniscience."
>If you were to ever have the hubris of entering a kitten's line of
sight while holding a food they like, like a dead mouse, they would
start pointing and meowing at you. It's their food, after all. You
should give it to them.
However, if you were to drop the item, they would continue pointing.
If you were to leave the area, they would continue pointing.
Even if you were to run, to hide, to break down and cry.
They would continue pointing. Meowing
Forever.
And Ever.
You can't run. You can't hide. You can't fool them.
That ever sweet scent stays with you, lingering. It marks you.
Wherever you are, whenever you are, the wretched beasts will know.
Even in death your corpse will be theirs to torment.
For you, oh marked one, this is now a fact of life.
_And you better bring your masters their food._
Putting aside how funny the kitten-based triangulation device is, this
feels like an oversight.
`/.../beacon_for_food/finish_action(...)` even tries to clear the
begging target from the blackboard, but
`/.../beacon_for_food/perform(...)` never actually passes in the key.
## Why It's Good For The Game
Kittens no longer beg at you forever wherever you are, even after
dropping the food they were begging for.

Like forever, wherever.


## Changelog
🆑
fix: Removed kitten omniscience. (They stop pointing at you now.)
/🆑
## About The Pull Request
- Shortened the description for readability. Makes sense to display
further details only when examining.
- Removed deprecated `content` tag from button elements in the UI
- Added more sanity checks when dealing with numbers inside `ui_act()`
- Make sure we don't insert hologram items
- Use `as anything` to speed up some for loops
- Capitalized some text inside examine
## Changelog
🆑
spellcheck: shortened description for the PCM and capitalized some text
for its examines.
code: adds sanity checks and removed deprecated `content` tag from PCM
UI. Stops hologram items from being inserted.
/🆑
## About The Pull Request
The nuclear operative medbot, Oppenheimer, now starts with airplane mode
enabled (aka, remote control disabled), so the presence of operatives on
the station Z-level is not immediately given away to AIs.

Fixes#81105
## Why It's Good For The Game
It'd be pretty lame to have your stealth ops operation ruined because
you forgot to turn on airplane mode, no? I don't think this was
intentional by any means, seems like an oversight.
## Changelog
🆑
fix: Oppenheimer, the nukie medbot, has been reprogrammed to use
Airplane Mode as a factory default. The station AI is no longer
immediately aware of his presence!
/🆑
I've made a new UI for Telecommunications Monitoring Console. New
features include: more useful information, search bar, icons and smaller
window. This PR also includes a new sprite sheet, be warned!
Additionally, I've removed `updateUsrDialog` because it makes no sense
here and UI updates are handled by TGUI.
## About The Pull Request
Converts legions hardcoded abilities to the cooldown action / mob
abilities system.
I also took the liberty of converting the hacky 360 second cooldowns in
a lot of the mob actions into simply disabling other abilities while the
ability is active, this will make it easier to have bosses without
everything on a shared cooldown and also not allow abilities to be used
simultaneously.
## Why It's Good For The Game
Paving the way for basic megafauna.
## Changelog
🆑
refactor: Legions abilities have been changed into actions that can be
added to any mob.
/🆑
---------
Co-authored-by: Changelogs <action@github.com>
## About The Pull Request
`trigger_organ_action`'s first and only argument is trigger flags to
pass to `Trigger`
The first argument if signals is the datum sending the signal

## Changelog
🆑 Melbert
fix: Rush Gland now triggers correctly on being grabbed by a Goliath
/🆑
## About The Pull Request
When cats were turned into basic mobs it seems a few things were lost in
translation, being footsteps and cytology cell swabbing. All this pr
does is basically re-add the lines that did such, though _slightly
barely_ differently due to now being basic pets.
## Why It's Good For The Game
Lets you get feliform cells again. Also cats not having footstep sounds
feels eerie.
## Changelog
🆑
fix: Cats can be swabbed for feliform cells again.
sound: Cats have had their mastery of silent walking revoked, and have
their pitter-pattering footsteps back again.
/🆑