* /mob/living/simple_animal is now frozen. Add a unit test to block all new simple_animal subtypes. (#70669)
* Add a unit test to block all new simple_animal subtypes
* Remove TEST_FOCUS
* Just To Be Sure
* /mob/living/simple_animal is now frozen. Add a unit test to block all new simple_animal subtypes.
* Whitelist! Begin!
* Really
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
* Fixes a server lagging bug with igniters. (#71224)
🆑 Iamgoofball
fix: You can no longer attach igniters to igniters.
/🆑Fixes#71222
Players were using this to lag the server.
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Fixes a server lagging bug with igniters.
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Easy's Super Omega "unarmed strike based species var moved to limbs" refractor, unarmed strike striking with specific body parts rather than it just being flavor, and brain based attacking limb selection extra chunky edition. And also bodypart traits.
* Removed all the conflicts, and started converting all the arms and legs to the proper typepaths
* Actually makes the game compile :)
* Makes the maps compile too!
* Early mirror of #71143 because it's more relevant to us
Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* [NO GBP] More balloon alerts for guns + fixes a wrong alert (#71136)
## About The Pull Request
Turns out I missed a few to_chats in #70398. Also I accidentally
inverted one so it said close the cover instead of open it. Oops!
## Why It's Good For The Game
Same reason as the original PR, balloon alerts are handy for stuff you
care about right now and not in 5 minutes. Also they should probably not
tell you to do the opposite of what you actually need to do.
## Changelog
🆑 VexingRaven
fix: Fixed a few balloon alerts for guns and moved a few more chat
messages to balloon alerts
/🆑
* [NO GBP] More balloon alerts for guns + fixes a wrong alert
* update modular
Co-authored-by: VexingRaven <msgerbs@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Allows mobs caught in disposals to escape once they have stopped moving - Take two
* Update pipe and modularize hurtsposals
* oop
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Zombies can now succumb (#70883)
fixes#70877
Mobs with NODEATH can now succumb if they choose. The only mobs with
NODEATH are all zombies, memento mori and penthrite, of which zombies
are the only one that can ever enter hardcrit. I think it's fair to let
them die if they want.
High-functioning zombies can't succumb by whispering, but pressing the
succumb UI without whispering will succumb you
🆑
tweak: Mobs with NODEATH can now succumb (this is literally only
zombies)
/🆑
* Zombies can now succumb
Co-authored-by: Time-Green <timkoster1@hotmail.com>
* Fixes plenty instances of 1-tile foam (#71132)
## About The Pull Request
All of these from what i heard were supposed to make all foam with range
"4" but most of these ranges were stupidly big so
Fixes 1 tile foam that was apparently not fixed after the foam refactor
in:
AI Upload Foam Dispensers, with a range of "4"
Hygienebot death, with a range of "2"
Clown cars taking damage, with a range of "4" and 25u of space lube.
(henk)
Clown plasmaman envirosuits extinguishment, with a range of "4" and 15u
of space lube. (hunke)
Soap suicide, with a range of "1"
Emagged cleanbots wetting the floor and making foam, with a range of "2"
Firebots when exposed to an atmos fire, firefighting foam with a range
of "3"

## Why It's Good For The Game
Fixes#68441
Makes firebots less ass
Also barely-functional code bad, functional code good
## Changelog
🆑
fix: Fixes 1 tile foam in Foam Dispensers,Clown Cars, Hygiene
Bots,Firebots, Soap Suicide, Emagged cleanbots, and the clown plasmaman
envirosuit
/🆑
* Fixes plenty instances of 1-tile foam
Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
* concussive gauntlets now launch you away from gibtonite and mine basalt (#71108)
when you mine gibtonite using concussive gauntlets, you now get launched
away from it, so you wont get hit by the explosion
also lets them mine basalt for glass
* concussive gauntlets now launch you away from gibtonite and mine basalt
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* UX Update To Saving Ordnance Log Recordings (#71052)
When saving Experiment Log Recording Data to a data disk on either
the Tachyon Doppler or the Tank Compressor, the UI will now say 'save to Disk' instead of 'Print', letting you know that it isn't printing a paper.
* UX Update To Saving Ordnance Log Recordings
Co-authored-by: san7890 <the@san7890.com>
* NtOS Emojipedia - PDA Emoji Messaging For All (#70829)
An Emojipedia app has been added to tablets, given to Mimes and Curators by default, allowing anyone to know all emojis. Additionally, emojis can be used in tablets by every job now.
* NtOS Emojipedia - PDA Emoji Messaging For All
* update emoji list to be valid
* animated emojis
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Adds a special suicide to the Experi-Scanner (#71103)
## About The Pull Request
Adds a `suicide_act` to the Experi-Scanner.
<details>
<summary>LiveLeak footage</summary>
https://user-images.githubusercontent.com/75863639/200129319-d112c8ea-e9f6-49a2-872b-8c2625f97e67.mp4
</details>
The victim's brain also gets placed into the resulting toilet's cistern.
<details>
<summary>Bodycam footage from the clean-up crew</summary>
https://user-images.githubusercontent.com/75863639/200129302-4b9b37fe-9c02-4712-8502-e4732b9258f5.mp4
</details>
The resulting toilet will not drop meat sheets when deconstructed,
leaving only a pile of bones behind.
_might add some bone crunching sounds later_
## Why It's Good For The Game
More variety is nice. A use for the experiscanner-closed icon. An
ultimate sacrifice for a single toilet that you can scan towards an
experiment.
## Changelog
🆑
add: Added a special suicide to the Experi-Scanner
/🆑
* Adds a special suicide to the Experi-Scanner
Co-authored-by: Sealed101 <75863639+Sealed101@users.noreply.github.com>
* Save 0.28s of init time by removing an unnecessary timer in light/LateInitialize (#71059)
Replaces a timer with just calling the proc directly. This saves 0.28s
of making timer events.
This timer exists as an artifact of being a `spawn (1)` since r4407.
Local testing suggests it is completely unnecessary (lights work, lights
break, new lights show)
* Save 0.28s of init time by removing an unnecessary timer in light/LateInitialize
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Add: Deaf Personnel Pin (#71073)
This PR contains a single small addition: The deaf personnel pin/accessory for users of the Deaf quirk. I changed the quirk type to `item_quirk` in order to easily grant the pin to the user. Upon spawning, the quirk will put a deaf personnel pin in their backpack or hands, allowing them to pin it to their uniform as they please.
* Add: Deaf Personnel Pin
Co-authored-by: Dani Glore <fantasticdragons@gmail.com>
* Fixes some monkey business with monkies trying to give items to mobs with no hands. (#71086)
held_items is only populated if the mob is able to hold things. In this case, lizards (and most simple / basic mobs) don't have hands, so it's just an empty list. Fixed that at the `/mob` level.
Also made the giving logic a little more robust to handle mobs mobs not actually wearing anything as well.
* Fixes some monkey business with monkies trying to give items to mobs with no hands.
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Fixes the messenger app not being responsive when certain buttons are clicked (#71077)
## About The Pull Request
The buttons to toggle the ringer, to toggle the sending/receiving and
the button to see message history all stopped being responsive, because
the information they were changing when pressed was wrongly kept in
`ui_static_data()` rather than `ui_data()`. Now, they're back in
`ui_data()`, and behave as expected once again.
## Why It's Good For The Game
A non-responsive TGUI interface is probably the saddest thing to see.
## Changelog
🆑 GoldenAlpharex
fix: SpaceMessenger was now updated to 6.4.8, bringing you more
responsiveness than ever (so long as ever is shorter than seven days
ago)!
/🆑
* Fixes the messenger app not being responsive when certain buttons are clicked
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Ensures bunkering someone doesn't runtime due to a divide by 0 error (#71081)
## About The Pull Request
HAHHHHHHHHHHHHHHHH
* Ensures bunkering someone doesn't runtime due to a divide by 0 error
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Fixes detomatix's name (#71075)
## About The Pull Request
I accidentally replaced it with 'attacking_item' because i am demented
and can't stop abusing my clipboard.
## Why It's Good For The Game
🛩️
## Changelog
🆑
fix: Detomatix cartridges are no longer called attacking items.
/🆑
* Fixes detomatix's name
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* makes flight potions use reagent filling overlays (#71068)
## About The Pull Request
previously flight potions directly overrode icon state, and also didnt
have a set reagent filling icon so it just resulted in the weird bottle
overlay
now they use them properly. also changes the color of the flight potion
reagent so it looks the same, since it used to be white
## Why It's Good For The Game
shit dont look stupid anymore
## Changelog
🆑
fix: flight potions no longer have white bottle overlays
/🆑
* makes flight potions use reagent filling overlays
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Remove ELEMENT_DETACH on everything that doesn't need it, rename to ELEMENT_DETACH_ON_HOST_DESTROY + a PSA (about 0.2s init time savings) (#70972)
ELEMENT_DETACH is **not** a requirement to having `Detach` called.
Detach is always called when the element itself is destroyed.
ELEMENT_DETACH is a flag that when set, makes sure Detach is called when
the atom destroys.
Sometimes you want this, for instance:
```dm
/datum/element/point_of_interest/Detach(datum/target)
SSpoints_of_interest.on_poi_element_removed(target)
return ..()
```
This Detach cleans up a reference that would have hung if target was
destroyed without this being called.
However, most uses of Detach are cleaning up signals. Signals are
automatically cleaned up when something is destroyed. You do not need
ELEMENT_DETACH in this case, and it slows down init. This also includes
somewhat more complex stuff, like removing overlays on the source
object. It's getting deleted anyway, you don't care!
I have removed all uses of ELEMENT_DETACH that seemed superfluous. I
have also renamed it to `ELEMENT_DETACH_ON_HOST_DESTROY` to make its
purpose more clear, as me and a lot of other maintainers misunderstood
what it did,
---
An update to this, ELEMENT_DETACH *is* needed for anything that can
register to a turf, as turfs do not clear their signals on destroy.
* Remove ELEMENT_DETACH on everything that doesn't need it, rename to ELEMENT_DETACH_ON_HOST_DESTROY + a PSA (about 0.2s init time savings)
* skyrat elements
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Fixes proximity sensors to work on 0 tile now (#70859)
<!-- 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
Previously it didn't work while it was supposed to, setting it up to 0
tile range would make it useless and not trigger. Now it does.
https://www.youtube.com/watch?v=ouseFRoEgD8
<!-- 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
Fixes are 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
🆑
fix: fixed the prox sensor
/🆑
* Fixes proximity sensors to work on 0 tile now
Co-authored-by: exymian <66227760+exymian@users.noreply.github.com>
* Conveyor speed input fix (#70898)
## About The Pull Request
Fixes a simple text input bug. Earlier you couldn't type in 0.2 for
example because it would get rounded while this is the original speed.
Now it will not get rounded.
## Why It's Good For The Game
## Changelog
🆑
fix: Fixes conveyor speed input.
/🆑
* Conveyor speed input fix
Co-authored-by: Comxy <tijntensen@gmail.com>
* Brimdemons & Lobstrosities drop (slightly) useful organs (#70546)
Goliaths, Legions, Watchers, and (as of recently) Bileworms all drop
something vaguely useful when they die.
Brimdemons and Lobstrosities do not. This PR aims to fix that, so that
there's at least some vague benefit to hunting them.
In this case it takes the form of organs you get when you butcher them,
similar to the regenerative core from Legions.
As they're similar to the regenerative core, I modified the regenerative
core to extend from a new common "monster core" typepath which these two
new organs also extend.
Like the regenerative core, both of these items do something when used
and something slightly different if you go to the effort of having
someone implant them into your body. They also decay over time, and you
can use stabilising serum to prevent this from happening.
https://user-images.githubusercontent.com/7483112/195967746-55a7d04d-224e-412d-aedc-3a0ec754db3d.mp4
The Rush Gland from the Lobstrosity lets you do a little impression of
their charging attack, making you run very fast for a handful of seconds
and ignoring slowdown effects. Unlike a lobstrosity you aren't actually
built to do this so if you run into a mob you will fall over, and if you
are doing this on the space station running into any dense object will
also make you fall over (it shouldn't make you _too_ much of a pain for
security to catch).
The idea here is that you use this to save time running back and forth
from the mining base.
The Brimdust Sac from the Brimdemon covers you in exploding dust. The
next three times you take Brute damage some of the dust will explode,
dealing damage equal to an unupgraded PKA shot to anything near you (but
not you).
If you do this in a space station not only is the damage proportionally
lower (still matching the PKA), but it _does_ effect you and also it
sets you on fire. You can remove the buff by showering it off.
The idea here is that you use this for minor revenge damage on enemies
whose attacks you don't manage to dodge.
https://user-images.githubusercontent.com/7483112/195967811-0b362ba9-2da0-42ac-bd55-3809473cbc74.mp4
If you implant the Rush Gland then you can use it once every 3 minutes
without consuming it, and the buff lasts very slightly longer. It will
automatically trigger itself if your health gets low, which might be
good (helps you escape a rough situation) or bad (didn't want to use it
yet).
https://user-images.githubusercontent.com/7483112/195967888-f63f7cbd-60cd-4309-8004-203afc5b2153.mp4
If you implant the Brimdust Sac then you can use it once every 3 minutes
to shake off cloud of dust which gives the buff to everyone nearby, if
you want to kit out your miner squad. The dust cloud also makes you
cough if you stand in it, and it's opaque. If you catch fire with this
organ inside you and aren't in mining atmosphere then it will explode
inside of your abdomen, which should probably be avoided, resultingly it
is very risky to use this on the space station.
* Brimdemons & Lobstrosities drop (slightly) useful organs
* update modular
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* mech orbital pad update (#70918)
bout The Pull Request
the mech orbital pad now no longer deorgans you if you stand on it while it launches upward, now gibbing (!!!), but only when a mech falls on you
the mech orbital pad can be used by mechs, and after 5 seconds of careful computer manipulation with your big mech arms, you can launch yourself
improves some (edit: A LOT) mechpad and mech code
mechs now give you feedback on what you fucked up when trying to attach equipment
you can now melee attack as a mech when you dont have weapons equipped, as opposed to only being able to do it with weapons equipped (this is needed for the console)
lets you lock the orbital pad, preventing lifeforms to come down with the mech, so mappers could stick one in the armory for example
increases the size of the supplypod dropping space. its player visible, but currently widescreen makes player view extend over to the easter egg and super secret room
Why It's Good For The Game
using the mech pad shouldnt kill you for standing on it while a mech is launching, thats stupid
the pad being used by mechs makes it so instead of the player needing to do a stupid process of entering of a mech and last second pressing the button, they can just launch themselves in the mech
mechs not being able to punch without weapons equipped is really stupid
and im tired of people ahelping why their mech doesnt work (they dont know about the 2 arm slots)
Changelog
cl Fikou
qol: the mech orbital pad now no longer deorgans you if you stand on it while it launches upward, now gibbing (!!!), but only when a mech falls on you
qol: the mech orbital pad can be used by mechs, and after 5 seconds of careful computer manipulation with your big mech arms, you can launch yourself
qol: mechs now give you feedback on what you fucked up when trying to attach equipment
fix: you can now melee attack as a mech when you dont have weapons equipped, as opposed to only being able to do it with weapons equipped
add: you can now lock mech orbital pads with wirecutters, preventing mechs with pilots from launching, allowing only empty mechs
/cl
* mech orbital pad update
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Fixes incorrectly passed arguments to demoralise poster signal handler (#70887)
## About The Pull Request
First argument is the source of the signal. This caused runtimes where
it tried to check a poster's mind.
## Why It's Good For The Game
Less runtimes
## Changelog
🆑 Melbert
fix: Triggering a traitor poster trap progresses their objective.
/🆑
* Fixes incorrectly passed arguments to demoralise poster signal handler
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Fix AIs with AI Cores getting gibbed when the mech theyre controlling gets destroyed (#70990)
## About The Pull Request
Makes AIs with AI Cores not get gibbed when their mech gets destroyed or
they get forcefully ejected which is a bug
Also, fixes a very very small bug which i didnt think was worth making a
seperate PR for where the stats displayed when
clicking on an AI-controllable mech, it would show "Pilot: /list"
## Why It's Good For The Game
Fixes#68713Fixes#70922
Im fairly sure AIs with AI cores getting gibbed in their core leaving a
MMI behind is probably a bug introduced by
not updating the code when AI Tracking Beacons were added
Also bugs bad, and having a mech destroyed like 100 tiles away splode
your core is nonsense
## Changelog
🆑
fix: Fixes getting AIs with cores getting gibbed if their mech theyre
controlling is destroyed
/🆑
* Fix AIs with AI Cores getting gibbed when the mech theyre controlling gets destroyed
Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
* Changes HFR corner to use 4-way icons (#71029)
## About The Pull Request
Changes the HFR corner icon and some of the code so that it uses 4-way
icons. Fixes#64729.
The way the icon is currently set up, the cardinal directions are
completely blank and the icons are on the intercardinals only. Because
of this, using the chameleon projector on a HFR corner means you'll be
completely invisible since the player faces cardinals but the HFR corner
doesn't have cardinal sprites.
## Changelog
🆑
fix: fixed an exploit that let you go completely invisible by scanning a
HFR corner with a chameleon projector
/🆑
* Changes HFR corner to use 4-way icons
Co-authored-by: GoblinBackwards <22856555+GoblinBackwards@users.noreply.github.com>
* AI Universal Standard canvas will now show it's canvas size on the item name (#70868)
## About The Pull Request
This PR adds the canvas size to the name of the AI canvas from "canvas
(AI Universal Standard)" to "canvas (24x24) (AI Universal Standard),
making it consistent with other types of canvases which has their own
size on their name.
## Why It's Good For The Game
Consistency, every other canvases has their size on their name except
for this one.
Also makes it easier to distinguish the difference between this and the
other canvases.
## Changelog
🆑
spellcheck: AI Universal Standard canvas will now specify it's size on
the item name.
/🆑
* AI Universal Standard canvas will now show it's canvas size on the item name
Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com>
* Surgery computers tell which tool to use. (#70973)
## About The Pull Request

All surgery step names, displayed in the surgical computer, will now
show which tool to use for that step in parentheses. In cases where
multiple tools have a 100% success chance, all are listed; if no tool
has a 100% chance then the "correct" one is shown.
Surgery computers will never display "alternate" tools for surgeries
(those with a lower success chance), but this shouldn't be a problem.
Surgical computers are _usually_ in places with surgical tools at hand,
and NanoTrasen wouldn't want to encourage doing brain surgery with a
screwdriver. Y'know, probably.
## Why It's Good For The Game
Firstly, this change is particularly helpful to new players. If you have
little experience with surgery, it's not always clear which tool you're
meant to use for which step. This is especially true for some of the
odder surgeries - if you didn't already know, it's not clear at all that
"brainwash" means "use a hemostat". While there are certainly guides on
the wiki, it's nice to have as much information provided in-game as
possible.
Secondly, this change brings consistency. A _small_ number of surgical
steps (healing broken bones, namely) already do this! I see no reason
why this shouldn't be extended to the remaining surgical steps,
especially because it's not particularly obtrusive to the surgery
computer interface.
## Changelog
🆑
qol: Made surgical computers tell you what tool to use for the current
surgical step.
/🆑
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Surgery computers tell which tool to use.
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* The screwdriver cocktail is now the world's worst screwdriver (#70862)
## About The Pull Request
Screwdriver cocktail now secretly works as a screwdriver... just, the
worst one ever. How the fuck are you doing that?!
## Why It's Good For The Game
It's funny and I bet someone has tried this before
## Changelog
🆑
add: Screwdriver cocktails now work as the world's worst screwdriver
/🆑
* The screwdriver cocktail is now the world's worst screwdriver
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>