* Fixes mortars grinding and juicing (#78212)
## About The Pull Request
Mortal and pestle failed to grind items, as the proc passed over the
item itself, instead of the reagent holder. This PR fixes that.
## Why It's Good For The Game
Its good to have a way to grind some chemicals and fruits without an
All-in One Grinder.
Fixes#78205
## Changelog
🆑
fix: Mortar and pestle can grind stuff again
/🆑
* Fixes mortars grinding and juicing
---------
Co-authored-by: Profakos <profakos@gmail.com>
* Rice Dough can be made in a beaker (#78062)
## About The Pull Request
Rice dough can be made in a beaker using 20u of Rice Flour and 10u of
Water. 10u of Rice Flour is made from 5u of Rice and 5u of Flour. Rice
dough can still be crafted manually using the crafting menu and the
original recipe.
## Why It's Good For The Game
Cooks can sometimes get swamped with work, especially on a high-pop
shift or when there are no botanists. By making rice dough more
convenient to make, cooks don't need to spend as much time in the
crafting menu.
Rice Flour is made from mixing equal parts Rice and Flour. Since no
recipe other than Rice dough uses both Rice and Flour in it's Recipe, it
should be fine to turn those regents into the intermediate reagent "Rice
Flour".
Fixes#77966
## Changelog
🆑
qol: Rice Dough may be made in beaker instead of being crafted, but the
rice and flour must be added first
/🆑
* Rice Dough can be made in a beaker
---------
Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com>
* Collected food fixes (#78190)
I went through the code and tried to find all of the remaining places we
forgot to update the arguments passed into `item/food/Initialize` after
more arguments were added to it, because there were a couple and they
caused things to stop working.
Most notably, golems were unable to eat anything because nothing would
correctly spawn "golem food".
_Additionally_ we were using a bunch of named arguments in new whenever
crafting or cooking food. This runtimed, causing the food not to init
properly.
_On top of that_ a late code review on a recent PR processed a list into
a string_assoc_list twice causing it to become null.
Finally, we were trying to check the food preferences of examining
ghosts or dogs or other non-human mobs. We shouldn't do that.
I also added a unit test for moth and golem food in the hopes that we'll
notice them breaking.
* Collected food fixes
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Fixing this dead mouse related harddel (#78150)
## About The Pull Request
Fixes https://github.com/tgstation/tgstation/issues/78085
Fixes https://github.com/Skyrat-SS13/Skyrat-tg/issues/23510
Fixes https://github.com/Skyrat-SS13/Skyrat-tg/issues/23506

When the foodening added some args to the constructor of
`/obj/item/food` some instances of the constructor being passed stuff
got overlooked and were not updated.
This resulted in a mob ref potentially being passed in to
`starting_reagent_purity` in some cases, ultimately resulting in this
harddel.
@ SyncIt21 this is exactly the reason I was being so paranoid with #77946
the other day. Tracking constructor uses down can be such a pain when
they aren't prefaced with a type, and are almost guaranteed to get
overlooked during refactors if the compiler does not say anything about
it.
I hate DM.
edit: and I just tested this only to find a second bug with the ice
cream. I can confirm that it is in fact working now after fixing that
one too.
<details><summary>evil ice cream</summary>

</details>
## Why It's Good For The Game
Fixing a harddel that was causing many CI failures
## Changelog
🆑
fix: fixes creamatorium not producing any suspicious ice cream, and
fixes a dead mouse related harrdel
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Fixing this dead mouse related harddel
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Fixed reagent grinding (and juicing?) (#78136)
## About The Pull Request
Resolves#78063
The Foodening refactored grinding and juicing in the reagent grinder,
but there were a few mistakes along the way. Most notably, items that
gave extra reagents when ground were not doing that (such as peptides in
livers) due to an error in adding those reagents. This error has been
corrected.
I've also fixed the code for juicing, which was erroneously passing a
beaker as its own reagents datum, though I couldn't tell if this
actually had any negative effects. Somehow. Better safe than sorry.
## Why It's Good For The Game
It's good to get everything you're supposed to get when you grind stuff.
The main source of peptides being inadvertently removed also made
cytology harder, and cytology really doesn't need to be made _more_
inconvenient.
## Changelog
🆑
fix: Fixed all-in-one grinders not giving all the correct reagents when
grinding.
/🆑
* Fixed reagent grinding (and juicing?)
---------
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
* Move some job related achievements into the job achievement category (#78092)
## About The Pull Request
Read title, this only affects the UI and not the database as far as I am
aware
## Why It's Good For The Game
The jobs category is painfully empty, only being home to four
achievements total. Meanwhile we have a ton of achievements inside the
miscellaneous category, a lot of which are not miscellaneous
achievements at all. Right now I just wanna focus on moving around
achievements from existing category to existing category though. This
improves achievement category spread overall by a small but necessary
amount.
## Changelog
🆑 distributivgesetz
code: Moved some job-related achievements from the misc category to the
jobs category.
/🆑
* Move some job related achievements into the job achievement category
---------
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
* Adds a sound effect for hypospray/medipen injections (#77979)
## About The Pull Request
Adds a sound effect for hypospray/medipen injections. Doesn't affect
sleepy pens or HMS injectors
Sound is sourced from the open source CM codebase.
## Why It's Good For The Game
> Adds a sound effect for hypospray/medipen injections. Doesn't affect
sleepy pens or HMS injectors
Satisfactory, visceral feedback of injection. Sounds nice. Makes stealth
injections less noticeable, I guess, not that there's any good
candidates for that with medipens.
## Changelog
🆑
sound: Adds a sound effect for hypospray/medipen injections. Doesn't
affect sleepy pens or HMS injectors
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Adds a sound effect for hypospray/medipen injections
---------
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Fixes meth explosion occurring in the body (#77995)
## About The Pull Request
The meth explosion isn't supposed to happen in a body, but it does
anyway. This PR fixes that, so no more meth explosion syringes (sorry!)
## Why It's Good For The Game
Fixes#77909
## Changelog
🆑
fix: Meth will no longer explode when reacting in a body
/🆑
* Fixes meth explosion occurring in the body
---------
Co-authored-by: Nick <42454181+Momo8289@users.noreply.github.com>
* Removes biotype check from stamloss on probital (#77862)
## About The Pull Request
Should fix probital spamming chat messages and infinitely sleeping
plasmamen and such when overdosed.
If desired, I can also remove biotype checks from all other instances of
reagent stamloss, I did this simply such that it's now 100% a fix PR.
## Why It's Good For The Game
Expecting to powergame only to be infinitely slept with a nice helping
of chat spam isn't all that nice.
## Changelog
🆑
fix: Probital overdose no longer causes plasmamen and other inorganics
to receive the longest nap in their lives.
/🆑
* Removes biotype check from stamloss on probital
---------
Co-authored-by: RikuTheKiller <88713943+RikuTheKiller@users.noreply.github.com>
* Change capacity of big fuel tank from 250 back to 5000 (#77923)
## About The Pull Request
Changes big welding fuel tank capacity from 250 (which was calculated
from SHEET_MATERIAL_AMOUNT for some reason) back to 5000.
## Why It's Good For The Game
Fixes big fuel tank capacity and, by extension, its explosion radius.
* Change capacity of big fuel tank from 250 back to 5000
---------
Co-authored-by: MrDas <62486730+Das15@users.noreply.github.com>
* Replaces or removes miscellaneous sources of clone damage from the game (#77832)
## About The Pull Request
Might as well go over all of them here.
1. Holoparasites deal half of the damage they take as clone damage to
their summoner when they are knocked out. Now it deals damage to the
brain instead.
2. Prion peptides used to deal a little bit of clone damage every
reagent tick. Now they do it to the brain.
3. When transforming back to human from a slime via a shapeshift spell,
the total damage you have gets flat converted into clone damage. Now it
gets flat converted to toxin damage.
4. Black stabilized slimes let you drain health from other people if you
latched onto them, dealing clone damage to whoever you latched onto,
same as slimes used to do. This has been converted to brute damage.
## Why It's Good For The Game
Explanation from #77569:
> Clone damage is a damage type that shouldn't exist anymore, it's a
relic left from the era of cloning and it's so specific of a damage type
that it rarely gets used as a result. It really should be a type of
affliction (wound etc) instead of its own damage counter.
Only a few left to go, cosmic heretic lore, the greed ruin and the
decloner gun. Then we can remove clone damage completely.
## Changelog
🆑
del: Removes miscellaneous sources of clone damage from the game.
/🆑
* Replaces or removes miscellaneous sources of clone damage from the game
---------
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
* Fix sleep status effect not processing (#77637)
## About The Pull Request
Some fixes in #77219 brought up some weirdness with the sleep status
effect. Healium would perma-sleep people, and sleeping in general lost
the ability to heal minor wounds.
## Why It's Good For The Game
Fix bugs, wow healium is abusable right now
* Fix sleep status effect not processing
---------
Co-authored-by: FlufflesTheDog <piecopresident@gmail.com>
* updates martian can sprites, fixes misc text and bugs in wellcheers (#77757)
## About The Pull Request
this is kind of a miscellaneous pile of fixes for soda.dmi, rolled up
with a larger resprite of the new cans that were added with #75988. you
can see everything visually changed (other than inhands) in the image
below

and then the inhands here:

also changes wellcheers mood event text, and the mood switch to be based
on sanity instead. apparently the mood test allowed for foolproof
traitor testing, which is not ideal. this hopefully fixes that.
## Why It's Good For The Game
the new martian drinks used the previous style of cans, which was
updated in #77424. this makes them consistent with that style.
everything else is minor things i missed or forgot to do in that PR.
also things that enable traitor testing are not great, even if they're
niche and require amputation to pull off.
## Changelog
🆑
fix: wellcheers is now based on sanity rather than mood
image: resprites martian cans
image: adds inhands for martian cans and wellcheers
image: minor tweaks to other cans
spellcheck: updates wellcheers mood text
/🆑
* updates martian can sprites, fixes misc text and bugs in wellcheers
---------
Co-authored-by: Lamb <110322848+CoiledLamb@users.noreply.github.com>
* Fixes beakers disappearing when switching in chem heater (#77770)
## About The Pull Request
Fixes#77762
The function to replace beakers in the Chem Heater unregistered the
signal from the beaker after removing it, causing it to break and the
beaker to disappear. This fixes that by unregistering the signal first.
## Why It's Good For The Game
Beakers don't disappear when you try to swap them in the Chem Heater
anymore.
## Changelog
🆑
fix: fixed beakers disappearing when swapped in a chem heater
/🆑
* Fixes beakers disappearing when switching in chem heater
---------
Co-authored-by: Ical <86125936+Ical92@users.noreply.github.com>
* Adds numerous boozepowers to the martian drinks. (#77605)
## About The Pull Request
my family owns a liquor store so i made a bit of each of these and rated
them all on a scale of 1-100 on how fucked up they were likely to make
you for boozepower
These were all set at '20' boozepower for some reason. This fixes that.
## Why It's Good For The Game
fixes#77566
## Changelog
🆑
fix: fixes all the martian drinks having 20 boozepower
/🆑
---------
Co-authored-by: oilysnake <63020759+oilysnake@ users.noreply.github.com>
* Adds numerous boozepowers to the martian drinks.
---------
Co-authored-by: DeerJesus <willgiscool@gmail.com>
Co-authored-by: oilysnake <63020759+oilysnake@ users.noreply.github.com>
* Removes Liver Damage From Spider Toxins, Reduces Injection Amount for Tangle Spider (#77550)
## About The Pull Request
This PR adds a new value to toxins called liver_damage_multiplier. As
you might have guessed, this value modifies how much liver damage
processing the toxin will do, and it is default at 1. Spider toxins now
have this value set to 0, as having their toxins murdering livers isn't
an intentional part of their gameplay loop.
Tangle spiders also now inject half the amount of acid they used to. It
was actually really strong compared to the other toxin types and wasn't
intentional according to Seth.
## Why It's Good For The Game
Liver damage is very strong when it comes to spiders, but it isn't
considered at all in their balancing. Removing it makes the actual toxin
damage the threat and not the liver damage.
Tangle Spider isn't supposed to have high toxin damage, but because of
it injecting acid, it did more damage than the other spider types and
was requested to be have the injection amount reduced by Seth.
## Changelog
🆑
balance: Hunter and viper spider toxins no longer deal liver damage.
balance: Tangle spider's acid injection per bite reduced from 5 to 2.5.
/🆑
* Removes Liver Damage From Spider Toxins, Reduces Injection Amount for Tangle Spider
---------
Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com>
* Fix spaceacillin's infection processing not applying to corpses (#77635)
## About The Pull Request
Spaceacillin used to be able to be able to treat infections on the dead
as well as the living, and got unintentionally changed in #76393. Simply
brings back old functionality
## Why It's Good For The Game
Fix bugs!
## Changelog
🆑
fix: Spaceacillin will once again provide antiviral effects for the
deceased
/🆑
* Fix spaceacillin's infection processing not applying to corpses
---------
Co-authored-by: FlufflesTheDog <piecopresident@gmail.com>
* Chemistry Heaters can now be unwrenched (#77612)
## About The Pull Request
Chemistry heaters can now be unwrenched. now you can steal the ENTIRE
chemistry setup
## Why It's Good For The Game
The dispenser and the chem master can be unwrenched, so I've made it
more consistent, especially considering the sprite of the reaction
chamber just has two tiny legs attaching it to the ground.
## Changelog
🆑
qol: the chemistry heater can now be unwrenched.
/🆑
* Chemistry Heaters can now be unwrenched
---------
Co-authored-by: Vincent983 <124026007+Vincent983@users.noreply.github.com>
* Spiders don't automatically grant an antag datum (#77523)
## About The Pull Request
Fixes#77501
Spider egg ghost role spawners grant the spider antag datum, rather than
the act of being a spider.
This means that gold core, mapstart, polymorph belt, and other spiders
will not have an antagonist datum.
While doing this I also made a new abstract `mob/living/basic/spider`
type which all three kinds of spider life stage (`spiderling`, `young`,
`giant`) extend from, because there was a gross amount of copied code.
Now there isn't.
Also the Flesh Spider and Event Midwife eggs now simply hatch adult
spiders instead of child ones.
This is because there is no reason for either of these to have a two
minute wait time before they get going. Midwife spiders spawned by the
event should just start spidering immediately, and Flesh Spiders are
made by changelings and shouldn't be effected by measures introduced to
balance the spider gamemode.
Eggs which are laid during a round and _can_ hatch into midwife spiders
still hatch baby spiders.
Also I swapped some white pixels on the animation of the ambush
spiderling for a different colour because they looked bad.
## Why It's Good For The Game
While the policy is always "if you turn yourself into something, you're
not an antagonist" the presence of the antag datum still confuses
people. Plus that code was gross and I didn't like it.
## Changelog
🆑
fix: Giant Spiders only have an antag datum if created by the round
event.
balance: Flesh spider eggs hatch into adult spiders instead of baby
spiders.
balance: The eggs spawned by the start of the spider infestation event
hatch into adult Midwife spiders instead of baby ones.
/🆑
* Spiders don't automatically grant an antag datum
* Modular paths
* Modular paths
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Adds hauntium as a reagent with new fun uses. (#77471)
## About The Pull Request
Adds the material hauntium as a reagent, along with bringing some unique
effects with the reagent.
There are a few new ways to get it other than just the camera obscura as
before, such as grinding certain ghostly things.
Unique effects it brings:
- It works in metalgen (I believe the metalgen recipe is still broken as
of making this) to make hauntium infused metalgen.
https://github.com/tgstation/tgstation/assets/58376695/121ca6b2-00b7-4203-bc6a-48976b1af802
- Any object touched by the chem will temporarily have the haunted
effect, letting it teleport around randomly and even attack people.
https://github.com/tgstation/tgstation/assets/58376695/103aeee5-ed3e-4fdd-85e4-ac7338823c46
- If you put it in your body, it hurts your "soul" (soul being heart and
mood)

...unless you are morbid or undead, in which it gives a slight mood
boost and acts like an addiction-less drug
## Why It's Good For The Game
Hauntium previously was super niche and not very useful other than
making funny haunted toolboxes from it. This expands it's usage and
makes it a lot more interesting. I also know a good few people who have
also wished this was available to use in metalgen and now you can!
## Changelog
🆑
add: Lets you grind things into a hauntium reagent which works similarly
to the solid form but is versatile and has some unique effects.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Adds hauntium as a reagent with new fun uses.
---------
Co-authored-by: die_amond <58376695+dieamond13@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Adds Summon Simians & Buffs/QoLs Mutate (#77196)
## About The Pull Request
Adds Summon Simians, a spell that summons four monkeys or lesser
gorillas, with the amount increasing per upgrade. The monkeys have
various fun gear depending on how lucky you get and how leveled the
spell is. If the spell is maximum level, it only summons normal
gorillas.
Added further support for nonhuman robed casting: Monkeys, cyborgs, and
drones can all now cast robed spells as long as they're wearing a
wizardly hat as well.
Made monkeys able to wield things again.
Wizard Mutate spell works on non-human races. It also gives you
Gigantism now (funny). If the Race can't support tinted bodyparts, your
whole sprite is temporarily turned green.
Made Laser eyes projectiles a subtype of actual lasers, which has
various properties such as on-hit effects and upping the damage to 30.
Improved some monkey AI code.
## Why It's Good For The Game
> Adds Summon Simians, a spell that summons four monkeys or lesser
gorillas, with the amount increasing per upgrade. The monkeys have
various fun gear depending on how lucky you get and how leveled the
spell is. If the spell is maximum level, it only summons normal
gorillas.
It's criminal we don't have a monky spell, and this is a really fun spin
on it. Total chaos, but total monky chaos. It's surprisingly strong,
but! it can very well backfire if you stay near the angry monkeys too
long and your protection fades away. Unless you become a monkey
yourself!!
> Wizard Mutate spell works on non-human races.
This spell is great but it's hampered by the mutation's human
requirement, which is reasonable in normal gameplay. Wizards don't need
to care about that, and the human restriction hinders a lot of possible
gimmicks, so off it goes. Also, wizard hulk does't cause chunky fingers
for similar reasons
> Made Laser eyes projectiles a subtype of actual lasers, which has
various properties such as on-hit effects and upping the damage to 30.
Don't really caer about the damage so much, this is more so that it has
effects such as on-hit visuals. Can lower the damage if required, but
honestly anything that competes against troll mjolnir is good.
> Added further support for nonhuman robed casting: Monkeys, cyborgs,
and drones can all now cast robed spells as long as they're wearing a
wizardly hat as well.
SS13 is known for 'The Dev Team Thinks of Everything' and I believe this
is a sorely lacking part of this or something. It's funny.
I want to see a monkey wizard.
> Made monkeys able to wield things again.
I really don't know why this was a thing and it was breaking my axe and
spear wielding primal monkeys. Like, why?
## Changelog
🆑
add: Adds Summon Simians, a spell that summons four monkeys or lesser
gorillas, with the amount increasing per upgrade. The monkeys have
various fun gear depending on how lucky you get and how leveled the
spell is. If the spell is maximum level, it only summons normal
gorillas.
balance: Wizard Mutate spell works on non-human races. It also gives you
Gigantism now (funny). If the Race can't support tinted bodyparts, your
whole sprite is temporarily turned green.
balance: Made Laser eyes projectiles a subtype of actual lasers, which
has various properties such as on-hit effects and upping the damage to
30.
add: Added further support for nonhuman robed casting: Monkeys, cyborgs,
and drones can all now cast robed spells as long as they're wearing a
wizardly hat as well.
balance: Made monkeys able to wield two-handed things again.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Adds Summon Simians & Buffs/QoLs Mutate
* Updates our modular file to take this into account (I hate that this exists)
---------
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Martian Food: A Taste of the Red Planet (#75988)
## About The Pull Request
Adds a selection of new foods and drinks based around Mars.
More information on Mars can be found here:
https://github.com/tgstation/common_core/blob/master/Interesting%20Planets/Human%20Space/The%20Sol%20System.md
To summarise for the general audience, Mars is a vital colony of the
Terran Federation, having been primarily settled (at least originally)
by Cybersun Industries to harvest its lucrative supplies of plasma, the
second largest in human space behind Lavaland. This has given Mars a
diverse culture evolving from the mostly East Asian colonists, and their
food reflects this.
Thanks to Melbert for their work on the soup portion of this PR.
The food:
Martian cuisine draws upon the culinary traditions of East Asia, and
adds in fusion cuisine from the later colonists. Expect classics such as
ramen, curry, noodles and donburi, as well as new takes on the formula
like the Croque-Martienne, Peanut Butter Ice Cream Mochi, and the
Kitzushi- chilli cheese and rice inside a fried tofu casing. Oh, and
lots of pineapple. The Martians love pineapple:

Also included are some foods for Ethereals, which may or may not be
hinting at something I've got planned...
The drinks:
Four new base drinks make their way to the game, bringing with them a
host of new cocktails: enjoy new ventures in bartending with Coconut
Rum, Shochu/Soju, Yuyake (our favourite legally-distinct melon liqueur),
and Mars' favourite alcoholic beverage, rice beer. Each is available in
the dispenser, as well as bottles in the booze-o-mat:

The recipes:
To make your (and the wiki editors) lives easier, please find below the
recipes for both foods and drinks:
Food: https://hackmd.io/@EOBGames/BkVFU0w9Y
Drinks: https://hackmd.io/@EOBGames/rJ1OhnsJ2
## Why It's Good For The Game
Another lot of variety for the chef and bartender, as well as continuing
the work started with lizard and moth food in getting Common Core into
the game in a tangible and fun way.
## Changelog
🆑 EOBGames, MrMelbert
add: Mars celebrates the 250th anniversary of the Martian Concession
this year, and this has brought Martian cuisine to new heights of
popularity. Find a new selection of Martian foods and drinks available
in your crafting menu today!
/🆑
---------
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Fixes champagne froth icon missing (#77389)
## About The Pull Request
#71810 split up `drinks.dmi` and moved froth effects to
`drink_effects.dmi` but `make_froth()` was referencing the drink's
`icon` aka `drinks.dmi`.
## Why It's Good For The Game
froth was killed after a month of it existing and nobody noticed this is
so sad can we hit 50 lilkes
## Changelog
🆑
fix: fixed missing froth sprites
/🆑
* Fixes champagne froth icon missing
---------
Co-authored-by: Sealed101 <cool.bullseye@yandex.ru>
* Robotic organ and disease improvements (#76766)
## About The Pull Request
In the code description for the `ORGAN_ROBOTIC` flag, it says that
robotic organs are not supposed to decay or regenerate health. I went
and fixed this and added some more "robotic" behavior.
New changes for robotic organs:
- No longer heal damage passively
- No longer gain health from revival
- No longer heal in the smart organ fridge
- No longer heal from pluoxium
- Robotic ears no longer heal from ear healing items (earmuffs, etc.)
- Robotic eyes are immune to changeling blind stings
- Robotic eyes no longer heal from occuline
New changes for diseases:
- Some diseases now require an organ to work. A robotic organ will give
immunity to the disease symptom unless the disease has "Inorganic
Biology".
- The transmission methods for diseases require organs to work but
robotic organs are immune. (except inorganic biology) Airborne disease
transmission require lungs. Ingested (drunk or eaten) disease
transmission requires a stomach. Blood (inject or patch) disease
transmission requires a heart.
- Organs removed from a mob that is afflicted with a disease will be
infectious while handling or transplanting it. (again, robotic organs
are immune unless inorganic biology is present) Certain admin spawned or
special diseases are exempt from this transmission method.
- A stomach is required for nebula nausea, gastritium, carpellosis,
metabolic boost, vomit, weight loss, death sandwich poisoning,
- Lungs are required for choking, asphyxiation, cough, cold9, oxygen
restoration, sneezing, flu, cold, spanish flu, tuberculosis
- A liver is required for tissue hydration, plasma fixation, parasitic
infection
- Ears are required for deafness, sensory restoration
- A heart is required for toxolysis, heart failure
- Eyes are required for sensory restoration, hyphema
- A tongue is required for voice change, parrot possession, pierrot
throat
- Wizarditis no longer requires a head (wtf?) to function
## Why It's Good For The Game
Robotic organs should behave as intended. Not naturally healing (like
organic organs) was supposed to be their downside to counteract their
their ability to not decay upon death.
## Changelog
🆑
fix: Fix robotic organs to not gain health passively, from revival,
smart organ fridge, pluxium, occuline, and earmuffs.
add: Some diseases now require the appropriate internal organ to work. A
robotic organ will give immunity to the disease symptom unless the
disease has "Inorganic Biology".
add: Disease transmission methods now require an internal organ to be
successful. Robotic organs give immunity. (except inorganic biology)
Airborne disease transmission require lungs. Ingested (drunk or eaten)
disease transmission requires a stomach. Blood (inject or patch) disease
transmission requires a heart.
add: Organs removed from a mob that is afflicted with a disease will be
infectious while handling or transplanting it. (again, robotic organs
are immune unless inorganic biology is present) Certain admin spawned or
special diseases are exempt from this transmission method.
add: A stomach is required for nebula nausea, gastritium, carpellosis,
metabolic boost, vomit, weight loss, death sandwich poisoning
add: Lungs are required for choking, asphyxiation, cough, cold9, oxygen
restoration, sneezing, flu, cold, spanish flu, tuberculosis
add: A liver is required for tissue hydration, plasma fixation,
parasitic infection
add: Ears are required for deafness, sensory restoration
add: A heart is required for toxolysis, heart failure
add: Eyes are required for sensory restoration, hyphema
add: A tongue is required for voice change, pierrot throat
bal: Remove head requirement for wizarditis disease
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Modular parts
* Printing time
* Hah typos
* I cant spell
* Golden Shower feedback
* Posi-Time
* Update modular_skyrat/modules/synths/code/bodyparts/brain.dm
---------
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Improves the RPG loot wizard event. (#77218)
## About The Pull Request
As the title says. Adds a bunch more stat changes to various different
items and a somewhat simple way of modifying them whilst minimizing
side-effects as much as possible.
Added a new negative curse of polymorph suffix that can randomly
polymorph you once you pick up the item.
Curse of hunger items won't start on items that are not on a turf.
Curse of polymorph will only activate when equipped.
Bodyparts, two-handed melees, bags, guns and grenades, to name a few,
have a bunch of type-specific stat changes depending on their quality.
Some items won't gain fantasy suffixes during the RPG loot event, like
stacks, chairs and paper, to make gamifying the stats a bit harder.
I'm sure there'll still be other ways to game the event, but it's not
that big of a deal since these are the easiest ways to game it.
High level items also have a cool unusual effect aura
## Why It's Good For The Game
Makes the RPG item event cooler. Right now, it's a bit lame since
everything only gains force value and wound bonus on attack. This makes
the statistic increases more type-based and make it interesting to use
It's okay for some items to be powerful since this is a wizard event and
a very impactful one too. By making the curse of hunger items not spawn
on people, it'll also make it a less painful event too.
## Changelog
🆑
add: Expanded the RPG loot wizard event by giving various different
items their own statistic boost.
/🆑
---------
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Improves the RPG loot wizard event.
---------
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* made the bee a basic insect (#76971)
## About The Pull Request
the bee now a baisc insect he will now go to find his home and he will
go and pollinated the plants and helped the queen make children by
polliniting the plants and he will. the queen will leve the hive more
rarely than the normal bees so she can stay in the hive to make kids
## Why It's Good For The Game
the bee now is a basic insect so it means he have a better ai
## Changelog
🆑
balance: the bee now can fly over the machines so its easy for him to go
to the hydroponics machine
fix: player bees now will not be stuck inside the hive if he entered it,
they can now leave it
fix: fixed a har deleted when the hive is deleted all the bees still
have a refence to the hive now its fixed
fix: now when a player interacted with the bee hive the bees will now
leave the hive to defend the hive (it was glitched)
refactor: the bees now are a basic insect.
/🆑
* made the bee a basic insect
* Merge conflict
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Removes the word "chemical" from "chemical patch" (#76966)
## About The Pull Request
In #76011, I bitched and moaned about how the ChemMaster gives patches a
huge ass name. I've talked to other Medical Doctor mains and I also
heard bitching about the word "chemical", which is just a pain in the
ass. It seems many of us just end up removing it because it's so
repetitive and makes the patch's name long fnr. I don't think the word
"chemical" is really needed in there since you can clearly tell it's a
chemical patch just by looking at the word "patch" and the sprite.
I don't think this should affect anything else in the game in a negative
way. In that same issue, it was suggested that the cap for names was
increased instead, but this also solves the issue of the word "chemical"
taking up so much space in the patch's name without touching unknown
lands.
## Why It's Good For The Game
Less words, more healing!
## Changelog
🆑
qol: The word "chemical" has been removed from "chemical patch" when
printing patches
/🆑
* Removes the word "chemical" from "chemical patch"
---------
Co-authored-by: Justice <42555530+Justice12354@users.noreply.github.com>
* Stabilizes code that flicks overlays to view/all clients (#76937)
## About The Pull Request
Rather then using images and displaying them with client.images, we can
instead simply make an object, give it the passed in image/MA's
appearance, and then vis_contents it where we want.
If you want to animate things, you can just use the atom we return from
the proc call.
This ends up costing about 25% of the best case scenario (one guy
online)
It will save more time with more users, but it also allows us to avoid
the hypersuffering that is passing GLOB.clients into the flick proc. So
I think I'm happy enough with this.
For context, here's average per call cost for flick_overlay_view() right
now.
It winds between 5e-5 and 1e-4. With these changes we should pretty
consistently hit the low end of this, because none of our work really
varies all that much.

(I was using sswardrobe for this, but it ends up being a lot slower so
like, why yaknow)
```
/atom/movable/flick_visual
New: 3.65625ms
Provide: 7.4375ms
Qdel: 9.4375ms
Stash: 9.46875ms
```
## Why It's Good For The Game
Using our tools should not make your code eat cpu time for no reason.
Hearers is expensive, iterating clients is expensive, let's not be
expensive.
* Stabilizes code that flicks overlays to view/all clients
* Not every client needs to see this
* and these could be using SECONDS
* grr DM
* Convert these modular files to seconds too
* Update dance_machine.dm
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* SPECIES NUKING 2023 EXTRA: Makes skin tones a trait instead of a species variable (#76410)
very similar to https://github.com/tgstation/tgstation/pull/76297, much
simpler though
removes the uses_skintones variable for similar reasons
Species variables are less useful and modular than traits.
If for some reason we ever add a mechanic that for some reason makes
your character use skin tones instead of whatever their original color
is, it will be much simpler to be handled.
not player facing
* Fixes all of the remaining issues
---------
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
* Optimization pass focused on foam code (saves about 30% of cpu usage I think) (#76104)
## About The Pull Request
Foam is crummy at high load rn, both because it runs on a low priority
background subsystem, and because it wastes a bit of time.
Let's reduce usage (while speeding up a bunch of other stuff too), and
give it more cpu generally.
[Optimizes reagent processing
somewhat](https://github.com/tgstation/tgstation/commit/d409bd4afc3c208cd6f00ff406e1e9f78d5ac5ad)
Turns out most of the cost of foam is the reagents it carries, and the
varying effects they have
I'm doing my best here to optimize them without touching "user space"
too much
That means doing things like prechecking if we're gonna spawn on top of
an existing decal (from glitter, flour, etc), and using that same proc
to also avoid spawning on unacceptable turfs (I had to convert
inheritance to a bitflag system to make this work, but I think that's ok
since we want it imparative anyhow)
It's actually nice for code quality too, since it lets me clean up code
that was using raw locates and weird var pong.
god I wish I had implied types man
[Optimizes foam spreading in its most accursed aspect, reagent
copying](https://github.com/tgstation/tgstation/commit/5cc56a64ad1a22ba7467cb0446b9558560259437)
Holy shit reagent code is a lot.
I'm doing a bunch of small things here. istype in init -> typecache,
removing procs that are called once and loop over a list we JUST looped
over (ph and the caching for reactions in particular)
I am mainly trying to optimize copy_to here, since that's what foam
spams
As a part of this, I removed a pair of update_total and handle_reactions
calls that were done on the reagents we are copying FROM
I have no god damn idea why you would want to do that, but if anything
is relying on the copy proc modifying the source, then that code
deserves to break
Speaking of, I cleaned up handle_reaction's main filter loop a lot,
removed a lot of redundant vars and changed it from a full loop w
tracker vars to an early exit pattern
This meant using a loop label, which is unfortunate, but this is the
fastest method, and it does end up cleaning up the code significantly,
Which is nice
Oh also I made the required_other var function even if there is no atom
attached to the reaction, since I don't see why it wouldn't
This last bit is gonna get a bit esoteric so bear with me
Failing calls (which are most of them) to handle_reactions are going to
be fastest if they need to check as few reactions as possible
One reagent in a reaction's required list is marked as the "primary",
and thus gets to trigger checking it.
We need all the reagents to react anyhow, so we might as well only check
if we have one particular one to avoid double checking
Anyhow, in order to make most calls the fastest, we want these reactions
distributed as evenly as possible across all our reagents.
The current way of doing this is just taking the first reagent in the
requirements list and using it, which is not ideal
Instead of that, lets figure out how many reactions each reagent is in,
then divy reactions up based off that and the currently divvied
reactions
This doubles the reagent index count, and takes the most common reagent,
water, from 67 reactions to I think like 22
Does some other general cleaning in reagent code too, etc etc etc
[Fixes runtimes from the forced gravity element being applied more then
once](https://github.com/tgstation/tgstation/commit/941d0676114fd455a585f2c65ffc79b81e8438b7)
I feel like this element should take a trait source or something to make
them potentially unique, it's too easy to accidentally override one with
another
[Removes connect_loc usage in atmos_sensitive, replaces it with direct
reg/unreg](https://github.com/tgstation/tgstation/commit/de1c76029d5c49dff152f0ea168b9e6c4a4a04aa)
I only really used it because I liked the componentization, but it costs
like 0.2 seconds off init alone which is really stupid, so let's just do
this the very slightly harder way
[Micros foam code slightly by inlining a LinkBlockedWithAccess
call](https://github.com/tgstation/tgstation/commit/744da3694cd4a85b3bdf44d754de57d7570bdd1c)
This is in the space of like 0.05 seconds kinda save so I can put it
back if you'd like, the double loop just felt silly
[Changes how foam processes
slightly](https://github.com/tgstation/tgstation/commit/ee5e633e3256fe7df229af71d78424d502459c16)
Rather then treating spreading and processing as separate actions, we do
both in sync.
This makes foam fade faster when spreading, which is good cause the
whole spread but unclearing foam thing looks silly.
It also avoids the potential bad ending of foam spreading into itself,
backwards and forwards. This is better I promise.
[Bumps fluid priority closer to heavy eaters, moves it off
background](https://github.com/tgstation/tgstation/commit/811797f09db7b060f75f15ad06d0ce8982375f47)
Also fixes a bug where foam would travel under public access airlocks.
## Why It's Good For The Game
Saves a lot of cpu just in general, from both init and live.
In theory makes foam faster, tho I'd have to test that on live at
highpop to see if I've actually succeeded or not. Guess we'll see.
* Optimization pass focused on foam code (saves about 30% of cpu usage I think)
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
SPECIES NUKING 2023: Head flags 2: Electric Boogaloo (#76298)
Continues the work I started on
https://github.com/tgstation/tgstation/pull/76074
Fixes https://github.com/tgstation/tgstation/issues/73782
Implements a bunch of wrapper procs for hair style, facial hair style,
etc etc the whole nine yards.
Fixes many issues, especially with gradients because I did sloppy tired
code that didn't work there.
Makes head/get_limb_icon() not a disgusting mess (well, at least makes
it less of a disgusting mess).
Actually makes hair and lips depend entirely on the bodypart.
🆑
refactor: Head rendering code has been updated significantly... Again.
Please report any issues with hair, facial hair, lipstick and such.
/🆑
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Alcoholic quirk (#76510)
So you're telling me we have a smoker quirk and we DON'T have an
alcoholic quirk?
What a travesty! Time to fix that.
This quirk is essentially equivalent to smoker, but instead of a
favorite brand you get a favorite *brandy* (as in, favorite type of
booze).

More quirk variety with decent roleplay value.
What will we do with a drunken sailor?
🆑
add: Added Alcoholic as a negative quirk.
/🆑
---------
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
* Makes liquids spill on the tile adjacent to a wall when thrown, lets them ricochet off other objects as well
* Just adds some documentation
This file could use it
* Thrown reagents should always expose the tile they hit, even if the liquid lands elsewhere
* Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts
* Update communications.dm
* Modular override
* Some modular adjustments, removes 'emagged' vars in favor of obj_flags
* whoops, mobs don't have obj_flags.
---------
Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>