Commit Graph

9414 Commits

Author SHA1 Message Date
SkyratBot
3cc14bdc75 [MIRROR] Mutadone restores your original monkey status (#28010)
* Mutadone restores your original monkey status (#83720)

## About The Pull Request

Before PR:
Giving mutadone to a monkey turns it into a human
Giving mutadone to a human does nothing about its human status

After PR:
Giving mutadone to a monkey created from a monkey cube does nothing
about its monkey status
Giving mutadone to a monkey which was originally a human restores it to
being a human
Giving mutadone to a human who has never been a monkey does nothing
about its human status
Giving mutadone to a human who was originally a monkey returns it to
being a monkey

I couldn't think of any better way to achieve this than putting a trait
on the monkey typepath but if anyone has one, I'd love to hear it
(actually, maybe I could just typecheck the mob... but that seems
equally gross)

## Why It's Good For The Game

Treating "being a monkey" as a mutation makes sense from the perspective
of the DNA console but not from the perspective of certain other game
mechanics.
A chemical which "removes all mutations" should _intuitively_ restore
people to the state they were in at the start of the round (so monkeys
turned into humans should return to monkey, and vice versa) rather than
unilaterally enact rapid evolution upon monkeys.
At least, I don't _think_ it's meant to be a lore implication that all
test apes on the station are transformed humans...

This has a couple of side effects, both of which I think are desirable.

Firstly- some mechanics work on humans but not monkeys (see #83698), and
can be circumvented by spraying mutadone gas into a monkey pen. This
will now only be achievable by individually mutating each monkey, which
requires more effort for whatever your desired result is.
Secondly- this adds a downside to the common "cure-all" surgical method
of turning a monkey into a human and transplanting a brain into it. This
new body will still genetically remember being a monkey, adding some
element of risk to this otherwise undramatic means of curing basically
any ailment in the game.
Thirdly- Some people have admitted to using mutadoned monkeys to create
a large number of humans to kill for Heretic and Changeling progression,
which I also don't want them to do, so making this take longer is a
positive.

## Changelog

🆑
balance: Mutadone restores your originally monkey status, rather than
always turning monkeys into humans
/🆑

* Mutadone restores your original monkey status

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-06-06 18:22:18 +05:30
SkyratBot
0f2aad9e2f [MIRROR] basic honkbots (#28007)
* basic honkbots (#81920)

## About The Pull Request
this refactors honkbots into basic mobs. its mostly a faithful 1:1
refactor but i couldnt keep my hands to myselves so i gave them some new
behaviors.

honkbots now love playing with clowns, they will go seek out for clowns
and celebrate around them. also, if the honkbot finds a banana peel or a
slippery item near it, it will actively drag people onto them

honkbots will now go out of theirway to mess with secbots and annoy them

## Why It's Good For The Game
refactors hinkbots into basic bots and also undoes some of the silliness
i did in the previous basic bot prs. i also added lazylist support to
remove_thing_from_list.

## Changelog
🆑
refactor: honkbots are now basic mobs, please report any bugs
add: honkbots will try to slip people on banana peels
/🆑

* basic honkbots

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
2024-06-06 18:22:01 +05:30
SkyratBot
b86cde0521 [MIRROR] Sentient mobs can slowly subtract slime stacks by shaking (#28006)
* Sentient mobs can slowly subtract slime stacks by shaking (#83471)

## About The Pull Request

Closes #82746
PR #77569 replaced the clone damage inflicted by slimes with a lingering
damage over time effect which can be removed with water.
This is all well and good for humans who can spray themselves with fire
extinguishers, showers, or sinks... but most other mobs are not actually
capable of opearating any form of equipment which can make them wet.

This PR allows you to click on the debuff icon to shake the slime off
slowly over time (15 seconds to fully remove the debuff).
This is slower than the recovery time when wet.

Dogs, Cats, and by extension, Felinids are better at removing slime
because of their self-cleaning prowess (they're always licking weird
stuff off themselves). This is rarely helpful if you're not a Felinid,
because almost all cats and dogs have so little health that they will
hit the minimum health threshold and lose the debuff anyway by the time
they would be done.
In the very niche circumstance that a sentient wolf is attacked by a
slime they will appreciate this bonus.

## Why It's Good For The Game

This was a replacement for slimes inflicting clone damage (I am not sure
this even did anything for most simple mobs?) but essentially turned
slimes into an automatic death sentence for most forms of mob without
hands.
Technically the slime debuff cannot kill you and stops if you are under
10 HP, but this is small consolation for most of these mobs which cannot
heal themselves either.

You are still probably going to take between 30-60 damage during the 15
seconds of removing slime from your body.

## Changelog

🆑
balance: Corrosive slime left behind after a slime fails to eat you can
be scraped off with your hands, or shaken off in some other way, by
clicking on the debuff. This is slower and less effective than washing
it off using water.
/🆑

* Sentient mobs can slowly subtract slime stacks by shaking

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-06-06 18:21:50 +05:30
SkyratBot
23095a406a [MIRROR] Adds Biomes to the Cave Generator, for all of your procedurally-placed cave biome needs! (#27996)
* Adds Biomes to the Cave Generator, for all of your procedurally-placed cave biome needs! (#83138)

## About The Pull Request
Implements biomes into the Cave Generator, using some adapted code from
the biomes feature of the Jungle Generator. It's there as a tool for
whomever would want to implement it on /tg/, I simply don't have the
sprites, mobs and motivation to add biomes to anything at this current
point in time, even though I'm fully open to helping anyone that would
be interested in doing so.

Here's how it works:
You supply a 2D list of biomes based on the two arbitrary criteria
'heat' and 'humidity', you can treat these as simply two independent
variables that would affect your biome distribution. There's three
levels of each, `LOW`, `MEDIUM` and `HIGH`, take a look at
`possible_biomes` for a good example of it. Here's what it looks like by
default (yes, that's the default on the jungle generator as well, except
here we use 3x3 instead of 4x4):

![image](https://github.com/tgstation/tgstation/assets/58045821/2c53b46b-f4f9-497f-9647-efc2cc118805)

On the `/datum/biome`, you have three important stats, split into two
each: flora, features and fauna. They are evaluated in this order, so if
a flora spawns, no feature nor fauna will spawn. If a feature spawns, no
fauna will spawn, and if fauna spawns, then that's cool. Each of these
stats have a corresponding `density` (i.e. `flora_density`), which is
simply the probability for that thing to be spawned if it's eligible,
and a `types` list (i.e. `flora_types`), which is a weighted list that
then gets expanded at runtime in order to make the `pick()` operation
faster.

The areas you want to have the biomes in also need to have their
`area_flags` set up to include `FLORA_ALLOWED` for both flora and
features, and `MOB_SPAWN_ALLOWED` for fauna to spawn.

The fauna currently does just about every check that is done in
`cave_generator`'s `populate_terrain()`, except for handling megafauna
differently, or taking megafauna into account. If that's desired, it can
be added easily, I simply chose not to add it because it felt like
wasted processor time over something that would probably not be
pertinent in the majority of cases.

I've run a few tests, and keeping in mind that I've got a high-specs
computer, generating the caves with biomes takes about 1 second for an
entire z-level covered in biomes. For comparison, I compile the repo in
about 36 seconds. ~~It may increase the amount of time spent
initializing the atoms subsystem, however, I'll need to compare that,
I'd really appreciate some help optimizing that if anyone knows how
to.~~ It didn't seem to have an effect, I just had seen things a bit
weird. I optimized things by moving rust-g calls outside of the for
loop, and we gained about 0.3-0.4 seconds, which is pretty nice.

## Why It's Good For The Game
Biomes are cool, and since we use mainly cave generators for z-level
generation, I decided to add biomes to that, so that the biome code
added by floyd lives on.

Here's an example of ice box with jungle caves, just as a proof of
concept, to prove that it works:

![image](https://github.com/tgstation/tgstation/assets/58045821/33b348db-513b-4a2e-b11f-907e80b65177)

## Changelog

🆑 GoldenAlpharex
add: Added Biomes capabilities to the Cave Generator, to allow for
procedurally-placed biomes to be introduced in cave generation. This
feature is not currently used on any map, but the tools are all there
for anyone with the motivation to add biomes to any cave-generating
area, like Lavaland and Ice Box.
code: Biomes can now affect features (which are usually structures), on
top of flora and fauna.
/🆑

* Adds Biomes to the Cave Generator, for all of your procedurally-placed cave biome needs!

---------

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2024-06-06 18:19:22 +05:30
NullDagaf
40c1bbed83 [BOUNTY] Watcher Eye trophy (#27923)
FINALLY, GAY CRUSHER, AGAIN
2024-06-06 11:03:43 +05:30
SkyratBot
5ad688eee7 [MIRROR] The memories for Smoker and Alcoholic now actually mention the preferred brand (#27983)
* The memories for Smoker and Alcoholic now actually mention the preferred brand (#83674)

## About The Pull Request

This revises the descriptions for the smoker/alcoholic quirk memories to
actually mention the preferred brand:

## Why It's Good For The Game

Because memories should help you, well, remember stuff, and "Joe's
smoking problem" is kinda useless when you've forgotten _which_ brand
your character prefers.

`[name]'s smoking problem.` -> `[name]'s addiction to [preferred_brand]
cigarettes.`
`[name]'s drinking problem.` -> `[name]'s addiction to
[preferred_brandy] alcohol.`

## Changelog
🆑
qol: The memories for Smoker and Alcoholic now actually mention the
preferred brand.
/🆑

* The memories for Smoker and Alcoholic now actually mention the preferred brand

---------

Co-authored-by: Lucy <lucy@absolucy.moe>
2024-06-04 14:38:15 +02:00
SkyratBot
8aec766b92 [MIRROR] Adds Soup boiling SFX (#27975)
* Adds Soup boiling SFX (#83649)

## About The Pull Request

In honor of the new sound effects general

https://github.com/tgstation/tgstation/assets/51863163/b2db8ee1-51ef-45a8-9cc8-31594d034ea5

Adds a sound effect that plays when soup is boiling (IE, it only plays
when smoke appears over the soup pot)

It has a sharp falloff and a distance penalty so it will really only be
heard in the kitchen (or though the kitchen's walls), maps with ranges
close to the counter like Metastation notwithstanding.

## Why It's Good For The Game

A touch of atmosphere

## Changelog

🆑 Melbert
sound: Boiling soup now makes a sound.
/🆑

* Adds Soup boiling SFX

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-06-04 14:26:11 +02:00
SkyratBot
cef982d403 [MIRROR] Adds Crutches to Medbay & Crafting (#27959)
* Adds Crutches to Medbay & Crafting (#83242)

## About The Pull Request

Added crutches! Wooden ones can be made with wood. Medical ones can be
bought from the medvendor.

Crutches will reduce slowdown from missing a leg by 60%, and they will
remove the limping from fractured bones. They're also a fairly decent
bludgeon. However, they do nothing if both legs are cut off. Canes now
also remove broken bone limping as well

Changed the 'white cane' name to 'probing cane' to better reflect its
function.

Shuffled some wound and mob code around, added signals for limbless
slowdown and limping.

Crutches make you waddle.

SPRITES BY XHORIAN!!!!!!!!!!!!!

![image](https://github.com/tgstation/tgstation/assets/53100513/fe7e5ac8-0e6e-4291-ae64-c96632997607)

![image](https://github.com/tgstation/tgstation/assets/53100513/bde7fd7a-38d4-4036-82f2-01bdb8a6f00b)

![image](https://github.com/tgstation/tgstation/assets/53100513/9d94bc8d-5a80-4199-a044-7c5cf1944f99)

![image](https://github.com/tgstation/tgstation/assets/53100513/b26ecf53-177a-400d-aa5a-f2c0d5560942)

## Why It's Good For The Game

> Added crutches! Wooden ones can be made with wood. Medical ones can be
bought from the medvendor.

> Crutches will reduce slowdown from missing a leg by 60%, and they will
remove the limping from broken bones. They're also a fairly decent
bludgeon. However, they do nothing if both legs are cut off.

Currently there's no way to abate slowdown from a missing leg except
getting on a vehicle, which I think is pretty lame. What if all the
doctors are busy, missing, or dead? What if medbay is a hole? A crutch
helps make up for the loss at the cost of a hand slot.

> Changed the 'white cane' name to 'probing cane' to better reflect its
function.

'White cane' was undescriptive.

> Shuffled some wound and mob code around, added signals for limbless
slowdown and limping.

I dont know where to put the friggin signals

## Changelog

🆑
Carlarc, Xhorian
add: Added crutches! Wooden ones can be made with wood. Medical ones can
be bought from the medvendor.
add: Crutches will reduce slowdown from missing a leg by 60%, and they
will remove the limping from fractured bones. (canes do that now too)
They're also a fairly decent bludgeon. However, they do nothing if both
legs are cut off.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>

* Adds Crutches to Medbay & Crafting

* This should do the trick

* Missed one

* fix

---------

Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
2024-06-02 19:18:12 +02:00
SkyratBot
f591dd3bd3 [MIRROR] Gondolas are now basic mobs (#27934)
* Gondolas are now basic mobs (#83451)

## About The Pull Request

This PR turns gondolas into basic mobs and does some fiddling with
gondola pods
Their verbs are now action buttons which they lose upon delivering. If
set to stay, they won't have their abilities afterwards (or wont get
them in the first place if the delivery is already done).
Lets them survive without a pod requirement in case admins want to spawn
one for their own stuff, so I also removed it from the snowflake checks
to exclude them from stuff.

Also replaced the hardcoded "cant speak" with simply giving the mute
trait, so admins can make gondolas speak if they want to for any reason.

## Why It's Good For The Game

The pet level of simple animals can finally be killed off, also gives
admins more control over gondola-related stuff if they so wish.

## Changelog

🆑
refactor: Gondolas (including gondola pods) are now basic mobs.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>

* Well then. Hope it works.

* Ohhh.

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2024-06-02 17:37:45 +02:00
SkyratBot
c43cef7e8c [MIRROR] Mining armor and suit storage cleanup/generalization/modernization (#27962)
* Mining armor and suit storage cleanup/generalization/modernization (#83437)

## About The Pull Request

### Suit Storage

Makes the suit storage of the various suits consistent across one
another. Now, all the mining suits use a single list which is easier to
maintain.

**The affected suit list is as follows;**

Explorer Suits (and therefore Syndicate Explorer Suits), Goliath Cloaks,
Bone Armor, Drake Armor, Godslayer Armor, Berserker Armor, Mining
MODsuits, H.E.C.K. Suit.

**The list of holdable items is as follows;**

Flashlights, Proto-Kinetic Accelerators, Advanced Mining Scanners /
Mining Scanners, Pickaxes, Upgraded Resonators / Resonators, Ore Bags,
Air Tanks, Spears, special monster organs like Regenerative Cores,
Knives, Proto-Kinetic Crushers, Cleaving Saws (the one that Blood-Drunk
Miners drop), Grappling Guns and Climbing Hooks.

~~It probably doesn't matter too terribly much because you know only air
tanks are going in that slot 95% of the time~~

### Bone Armor and Goliath Cloaks

Bone armor and goliath cloaks both have the same armor values,
environmental protections and coverage as the explorer suit (bone armor
includes the feet due to the sprite physically covering the feet, which
is not a terribly significant balancing point but worth mentioning).

They use the armor plate component to improve the parts of bone armor.
However, they use bone talismans instead of goliath hide to be upgraded.

Goliath cloaks come fully upgraded. You'll see why in a second.

Their recipes are slightly different. Goliath cloaks take nine hides
(I'm so sorry this is for consistency I promise you can't use the
upgrade system with something that deletes its own armor values like
this) and three sinew. Bone armor takes three goliath hides and 6 bone.

### Berserker Armor

Berserker armor can now be improved to the same armor value as drake
armor by using a full suit on both the body and the helmet of the
berserker armor. (Each drake makes two suits, so you need to use up both
suits).

Instead of an armor boost, rage now halves incoming brute damage. Fuck
you, Bubblegum!

### Minor Mining MODsuit Tweak and other armor value changes

The base value for the armor is now 20, rather than 15, so that when it
reaches max ash accretion it has equivalent armor to a fully upgraded
explorer suit. This is only a value difference of 5, but it always
annoyed me seeing it.

All the above mentioned suits also now have a value of about 10 wound
armor. This is because miners do actually experience wounding on
lavaland. Some of the armors had this wound armor. Some didn't. Now they
all do. I don't believe this to have been a deliberate design choice,
but rather, an oversight. Iunno, someone who keeps track of this please
tell me otherwise.

Upgraded suits get a prefix to show they are upgraded. Now, never doubt
whether the miner you are fighting is in a baseline explorer suit or a
riot suit level improved explorer suit ever again!

### Berserker Armor actually covers up clothing/hair underneath properly
and other minor stuff

This is why I started this PR by the way. This one fix. I expand the
scope of my horizons so broadly when I really sit down and PR, don't I?

H.E.C.K. and Berserker helmets can be used for internals.

## Why It's Good For The Game

There is a great deal of inconsistency with regards to the various
lavaland armor you can find and use. Some armors were wildly inferior to
others and only really having value for aesthetic. Some just seemed to
have oversights that didn't seem quite right. And most importantly, the
actual storage list for mining suits in general were not only
inconsistent in of themselves, but were also not being updated as time
goes on.

Bringing them all into line allows for miners to have a bit of freedom
of choice when it comes to appearance, without it becoming a balancing
sticking point nor a detriment to their effectiveness. It is also much
easier to maintain one list than six or seven lists.

Assuming that the baseline of the explorer suit is a-okay for someone to
possess, goliath cloaks and bone armor should now feel more like
fashionable choices rather than, in some cases, being either a worse or
better choice to take (its bone armor, bone armor is the best of these,
its really good generalist armor). I don't care what effect it has on
the ashlander economy. Neither should you.

The minor tweaks and fixes are just stuff that annoyed me for autism
reasons or were oversights due to changes to the items in question or
the game around it. I doubt anyone but me cares very much about these
minor differences, but I like consistency.

## Changelog
🆑
balance: The various mining related suits now have consistent suit
storage. Try putting a knife into your explorer suit's suit storage
today!
balance: Bone armor work similarly to explorer suits, with similar armor
values and options to upgrade their parts. However, they use bone
talismans instead of goliath hides to upgrade. Magic? Just believing
really strongly that the drake is hitting you slightly less hard because
of the talismans? You be the judge.
balance: Goliath cloaks come fully upgraded. However...
balance: The recipes for bone armor and goliath cloaks are slightly
different. Particularly goliath cloaks, which need a lot more dead
goliaths to make. Sorry.
balance: Mining MODsuits achieve at maximum ash accretion the same
amount of melee armor as an upgraded explorer suit.
balance: These various suits also consistently have wound armor.
fix: Berserker armor properly hides underclothing and hair.
balance: Berserker armor pieces can absorb drake armor to gain their
enhanced protection. Become the warrior of Khorne you've always wanted
to be.
balance: Berserker rage now halves brute damage rather than just adding
Melee Armor to you and your squishy body.
qol: Berserker and H.E.C.K. helmets can be used for internals.
/🆑

* Mining armor and suit storage cleanup/generalization/modernization

* There we go.

* Guess I missed this one

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
2024-06-02 17:37:29 +02:00
SkyratBot
3180f30841 [MIRROR] Floor diseases are easier to cure (#27971)
* Floor diseases are easier to cure (#83613)

## About The Pull Request

The floor diseases were supposed to be more of a joke, but it seems to
be a bother for many due to the scarcity of cures.

This PR changes the floor diseases cures to some common chemicals.

## Why It's Good For The Game

They weren't supposed to suffer this much.

## Changelog

🆑
balance: Floor diseases cures are now common chemicals: Milk, Chlorine,
Space Cleaner
/🆑

* Floor diseases are easier to cure

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
2024-06-02 17:36:10 +02:00
SkyratBot
2b4e9d5391 [MIRROR] Cuffed people can sign (to a limited degree), signing tone emotes improvement (#27965)
* Cuffed people can sign (to a limited degree), signing tone emotes improvement (#83501)

## About The Pull Request

Currently, if you handcuff someone and they only have sign language
available to speak in (mute, no tongue, nearby people are deaf, you have
bronchitis(?)), they are rendered totally unable to communicate with
anything but emotes. This is stifling to trying to roleplay with nearby
people who want to keep you cuffed for whatever reason (security,
antagonists, weirdos who keep hugging you, etc).

So instead, I've made it so that if you use sign language while
handcuffed, you are still able to sign, but to a much more limited
degree (3 - 5 words per message).

If you're put in a straightjacket, you're still totally unable to use
sign language.

Additionally, I spruced up the messages that sign language uses to
signify tone (?, !) and added one for EXCLAIMED QUESTIONS?! I also made
the emotes work as emotes, rather than the small (easily missable)
messages in the chat box. These emotes will not fire if you sign with
tone while cuffed, to avoid you becoming a spam machine.
## Why It's Good For The Game

It lets cuffed sign language users communicate, which is usually a
pretty good thing when it comes to improving a scene for both them and
the people they're playing with.

It improves the descriptiveness of the inquisitive and exclamatory tone
messaging for sign language users, and also adds one for a combination
of the two tones.
## Changelog
🆑
qol: Sign language users can now sign in cuffs, but to a very limited
degree. They also have more descriptive emotes for questions,
exclamations, and a combination of the two.
/🆑

---------

Co-authored-by: san7890 <the@ san7890.com>

* Cuffed people can sign (to a limited degree), signing tone emotes improvement

---------

Co-authored-by: Joshua Kidder <49173900+Metekillot@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2024-06-02 04:01:59 +02:00
SkyratBot
dc77475d0d [MIRROR] Refactored ghetto chem separator (#27958)
* Refactored ghetto chem separator (#83275)

## About The Pull Request

This completely reworks how ghetto chem separator works & brings more
depth & immersion to it. To understand the new system let's compare it
with the current one

**Old System**
1. You insert a beaker containing the reagents you want to separate.
2. You use a lighter/whatever to light a flame, Flame has _magic &
unrealistic_ properties such as
    - It will never heat the beaker above 100k
    - It doesn't burn oxygen or use fuel source to sustain it
- Distillation rate is a constant 5u/s. It doesn't increase as the
solution boils hotter

3. The apparatus sorts the reagents alphabetically? & transfers the 1st
reagent from sorted list to the target beaker. It does not care if each
individual reagent has their boiling points & how to separate them based
on that etc. It's just bland overall

**New System**
1. You insert a beaker containing the reagents you want to separate,
just lke the old system
2. You use a lighter/whatever to light a flame just like the old system,
however flame behaves in a more realistic fashion as follows
- It will heat the beaker all the way to 1000k if you let it run long
enough
- It now burns oxygen & uses a fuel source(a secondary beaker which you
must insert containing flamable reagents like oil, welding fuel etc).
When oxygen is the fuel source no O2 gas is required
    - Distillation rate starts at 2u/s & increases with rising temps
- Intensity of the flame depends on the quality of reagents used as
fuel, Oil has best flammable quality & will heat the beaker faster,
other reagents mixed in various proportions can produce better quality
flames which you can understand by examining the aparatus
    - The flame intensity can be adjusted via the burner knob setting
3. Each reagent now has their _boiling computed_ computed from their
mass allowing for realistic interactions, like having to control the
temp's just right to separate your required reagent
4. Temps automatically cooldown and you can install a condenser to
Facilitate faster cooling

Here's the demo video explaining everything

https://github.com/tgstation/tgstation/assets/110812394/ba591859-3fff-4d06-90f8-024c7266f830

## Changelog
🆑
refactor: ghetto chem separator has been reworked from scratch. See PR
83275 for details
qol: adds examines & screentips for ghetto chem separator
/🆑

* Refactored ghetto chem separator

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
2024-06-02 03:38:18 +02:00
SkyratBot
2269db746f [MIRROR] Makes disease airborne spread more realistic (#27950)
* Makes disease airborne spread more realistic (#83423)

## About The Pull Request

1. Rather than checking every life tick to try to spread via air, it
checks every breath tick. IE, every 8 seconds.
2. Wearing a mask now protects you from catching airborne diseases,
rather than only protecting you from spreading it.
3. Wearing a mask is no longer guaranteed effective (unless on
internals), it now scales based on BIO armor. This is doubly effectively
for people wearing a mask to stop spreading to others vs wearing a mask
to block spreading to them.

## Why It's Good For The Game

Wearing any kind of mask means airborne viruses will never spread, but
also wearing any kind of mask on the opposite end is pointless unless on
internals. Kinda silly.

This PR unifies those behaviors. Wearing a mask to stop spread is still
rewarded, as BIO armor is doubly effective at stopping a spread attempt
as blocking a spread attempt.

Ultimately the goal of this is to give players a realistic way to
protect themselves against airborne transmission vectors besides staying
on internals 100% of the time.

## Changelog

🆑 Melbert
balance: Wearing a mask can now prevent you from being spread airborne
diseases. Prior, it only stopped you from spreading it yourself.
balance: Wearing a mask no longer 100% guarantees you don't spread
viruses to others people - it now scales on the masks BIO armor. Get a
sterile mask from Medical for max safety.
balance: Wearing a mask to stop you from spreading to other people is
doubly effective than wearing a mask to prevent spread to yourself -
Mask up for the greater good!
balance: Passive airborne virus spread attempts are now done every time
you breathe (every eight seconds), rather than every two seconds. The
chance of spread is the same, though - it has been scaled up to
accommodate.
code: Cleaned up a fair bid of airborne-transmission-code. Report any
oddities.
/🆑

* Makes disease airborne spread more realistic

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-06-02 03:06:06 +02:00
SkyratBot
84aee5c0b6 [MIRROR] Fix imaginary friend trauma and message range (#27942)
* Fix imaginary friend trauma and message range (#83590)

## About The Pull Request

So during a previous pr, attaching the imaginary friend to a host and
setting up its preferences were moved from initialization to two
separate procs. The _smite_ was then updated to account for this, but in
the process the brain trauma version was left behind- it even still
tried to add a nonexistent parameter when making a new imaginary friend.

We first fix this by having those two procs be called during
`add_friend(...)`, after finding and assigning a ghost.
```dm
/datum/brain_trauma/special/imaginary_friend/proc/add_friend(mob/dead/observer/ghost)
	if(isnull(ghost))
		qdel(src)
		return

	friend.key = ghost.key
	friend.attach_to_owner(owner) //new
	friend.setup_appearance() //new
	friend_initialized = TRUE
	friend.log_message("became [key_name(owner)]'s split personality.", LOG_GAME)
	message_admins("[ADMIN_LOOKUPFLW(friend)] became [ADMIN_LOOKUPFLW(owner)]'s split personality.")
```
This solves our first issue, where this not being called made every
brain trauma imaginary friend get banished to gay baby jail where they
do not have an appearance, cannot move from their spot, cannot be heard,
and emit runtimes constantly.

Testing this brings us to our second issue, where the host couldn't
actually hear their imaginary friend unless they were at most one tile
away, and would get their message starred if not on the exact same tile.
Looking into it, this seemed to be because `Hear(...)` now had a
`message_range = 0` parameter which we don't actually set here.

Upshot! This seems to let us gut the whisper starring code on our side
and just proxy the right message range to `Hear(...)`.
So we gut our code a bit and do just that, and this fixes it.
## Why It's Good For The Game

Fixes #81138.
Fixes imaginary friend brain trauma being non-functional and emitting
runtimes like hell.
Fixes imaginary friends not being audible to their host beyond a one
tile distance.
## Changelog
🆑
fix: Imaginary friend brain trauma works again.
fix: Imaginary friends can be heard by their hosts from more than a tile
away again.
/🆑

* Fix imaginary friend trauma and message range

---------

Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
2024-06-02 02:51:55 +02:00
SkyratBot
cf34d222d6 [MIRROR] Fixes runtime with serializing photo metadata (#27940)
* Fixes runtime with serializing photo metadata (#83562)

## About The Pull Request

So while working on an entirely unrelated thing, I noticed runtimes
appearing in my logs after taking a picture.
Specifically a bad index runtime for the 77th line here:

2f6920105e/code/modules/photography/_pictures.dm (L66-L78)
And the 199th line here:

2f6920105e/code/datums/datum.dm (L193-L200)
This seemed to be caused by the fact `serialize_list(...)` is called
with a null `semvers` parameter, which then causes it to try to add to a
null list.

I asked about this in code general on the main discord, and got told
just putting an empty list in when `serialize_list(...)` is called
should be fine.
This resolves the runtime.
## Why It's Good For The Game

Better to not have two runtimes added to the logs whenever someone takes
a picture.
Fixes #80514.

* Fixes runtime with serializing photo metadata

---------

Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
2024-06-02 02:51:29 +02:00
SkyratBot
0cae6829fb [MIRROR] [NO GBP] fixes positive viruses being hidden (#27939)
* [NO GBP] fixes positive viruses being hidden (#83576)

## About The Pull Request

#83459 made stealth a function of being equal to or higher than severity
which made a lot of previously visible positive viruses hidden.
Unintended behavior, fixes it.

## Why It's Good For The Game

fix good, most people without HUDs can't see these anyway. It's almost a
QOL thing to just be able to ask a doctor "hey do I have a positive
virus" since if it's perfectly positive, there's nothing really gained
by people not knowing (you, enemies, and friends alike.)

## Changelog

🆑
fix: positive viruses are no longer hidden.
/🆑

* [NO GBP] fixes positive viruses being hidden

---------

Co-authored-by: Higgin <cdonny11@yahoo.com>
2024-06-02 02:51:17 +02:00
SkyratBot
d4b67121d6 [MIRROR] [no GBP] Corrupt organs check patient for Holy Water, not surgeon (#27904)
* [no GBP] Corrupt organs check patient for Holy Water, not surgeon (#83500)

## About The Pull Request

Was looking into #83493 and I have no idea how that happens but I _did_
notice this unrelated runtime and logic error.
Due to the args being incorrect, we were checking the status of the
surgeon performing the operation rather than the person the organ was
being removed from.

## Changelog

🆑
fix: When removing a corrupted organ from a patient, the patient will
now be checked for Holy Water or magic resistance, rather than the
person performing the surgery.
/🆑

* [no GBP] Corrupt organs check patient for Holy Water, not surgeon

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-06-02 00:51:21 +02:00
SpaceLoveSs13
ec9d446c40 Merge pull request #27935 from Skyrat-SS13/upstream-merge-83584
[MIRROR] Fixes railings being invisible
2024-06-01 11:13:02 +05:30
SpaceLoveSs13
eeb02d2b17 Merge pull request #27929 from Skyrat-SS13/upstream-merge-83307
[MIRROR] STATION TRAIT GAMEMODE: Station-Wide Background Checks
2024-06-01 11:11:51 +05:30
SpaceLoveSs13
fb47e1f0a5 Merge pull request #27925 from Skyrat-SS13/upstream-merge-83508
[MIRROR] Fish update just dropped. New fish, aquarium type, two traits and a research node.
2024-06-01 11:10:29 +05:30
Time-Green
c0cbac7675 Fixes railings being invisible (#83584)
Fixes #83575

Kinda my fault, I looked at
https://github.com/tgstation/tgstation/pull/83450, thought the railing
code was weird and then forgot or something.

I've reverted the changes and instead changed the map to not spawn walls
on railings, which I probably should've done when I made the area

🆑
fix: Fixes railings being invisible
fix: Snow walls dont spawn on railings anymore in icebox
/🆑
2024-05-31 18:52:47 -04:00
Time-Green
d5b0a9de08 STATION TRAIT GAMEMODE: Station-Wide Background Checks (#83307)
## About The Pull Request
Adds a new station trait: Station-Wide Background Checks!

It does two things:
1. Blocks most crew-side antagonists. No traitors, changelings, spies,
heretics, etc. You won't be able to fully trust your crew though, as
Space changelings, Paradox Clones, Obsesseds and Blob Infected are
excempted crew-antags since a background check doesn't really help here.
Other antagonists still spawn: pirates, revenants, blobs, aliens,
nukies, wizards etc. Expect a LOT more of these, as Dynamic is gonna put
threat somewhere...

2. Reduces dynamics threat slightly, configurable per server, but
defaults to 15.

It is essentially the first "dynamic gamemode".

## Why It's Good For The Game

Blocking crew antagonists changes the shifts dynamic, similair to old
warops. Security can "trust" crew to not be antagonists, and instead can
focus more on petty crimes and hunting down external threats.

Due to the increased chance of external threats and reduced chance of
internal threats, the crew can focus its defenses outwards. Don't worry
about your coworker killing you (intentionally/probably), but do worry a
lot more about the pirates trying to break through your hull, or alien
nests growing in virology.

I've also reduced total threat count slightly because the idea of 90
threat being dumped into ghost spawns kinda terrifies me and I do want
people to be able to let their guard down a slight bit. It can be
reduced/disabled for servers that already tend to lower threats.

I think it's a lot of fun to change the paranoia dynamic, and a fun
deviation from a normal round of spaceman13.

## Changelog
🆑
add: Station-Wide Background Checks (station trait, rare): Disables crew
antagonists, but get a lot more non-crew antagonists
/🆑
I want to do more like these (this was just an example I threw into
discord to annoy @ Mothblocks but I realized I kinda liked), and this is
a good opportunity to gather community feedback and see how it plays!

---------

Co-authored-by: carlarctg <53100513+carlarctg@ users.noreply.github.com>
2024-05-31 13:13:26 -04:00
tralezab
d86ae35931 Fish update just dropped. New fish, aquarium type, two traits and a research node. (#83508)
## About The Pull Request

### New fish

#### anxious zipzap
An incredibly anxiety-ridden and electroreceptive fish. Worried about
the walls of its tank closing in constantly. Both literally and as a
general metaphorical unease about life's direction.

It produces electricity, and HATES being with any other fish. One other
zipzap is allowed at most.

![image](https://github.com/tgstation/tgstation/assets/40974010/6a1a31f3-1c84-4b5e-b8ca-652c5007813a)

#### monocloning jumpercable
A surprisingly useful if nasty looking creation from the syndicate fish
labs. Drop one in a tank, and watch it self-feed and multiply. Generates
more and more power as a growing swarm!

A far better option for power generation than the zipzap, but it's a
syndicate fish. Get an emag or get very lucky!

![image](https://github.com/tgstation/tgstation/assets/40974010/7f4aaf32-919c-40d9-890f-72ea9f91ac3c)

Working spacebase example

![image](https://github.com/tgstation/tgstation/assets/40974010/8eeaaf18-c0ab-48a5-8ada-e0eb7f118dd9)

### Aquarium type

Bioelectricity Generator! It boosts the power of electroreceptive fish
to very dangerous levels! But, uh, you put a tesla coil, and voila! Free
power! ...Free power if you keep the fish fed! More fish, more power!

![image](https://github.com/tgstation/tgstation/assets/40974010/e6abcd5b-93df-4ffc-ac6a-78585fd4a6c6)

You can convert an aquarium into a bioelectricity generator by
researching the new node, "Marine Utility", from bio processing. Then
you build the biogen upgrade kit and apply it to an already existing
aquarium.

### Fish Traits

#### Electrogenesis

Trait turns the fish into a shock weapon while it's alive, and every
time it feeds, it releases a weak tesla bolt to anyone close to the
tank.

#### Anxiety

anxious fish die when any other fish are in the tank. Please keep them
alone :[

## Why It's Good For The Game

Fish are great, but fish don't have anything to give back to the
station, right? Well, there's some small stuff, but I wanted to add a
bit of functionality towards being able to benefit from having fish.

The anxiety trait with the zipzap gives spessmen a bit of a challenge.
You can settle for one fish generating power per tank and do a
multi-tank generation setup, or you can do some crossbreeding to make a
fish WITH electroreceptive but WITHOUT anxiety. Neat!

## Changelog
🆑
add: New fish, the anxious zipzap
add: New syndicate fish, the monocloning jumpercable
add: New aquarium, the bioelectricity generator
fix: Mixotrophic fish now properly lack food requirements
/🆑
2024-05-30 23:29:02 -04:00
san7890
f9dcaa536e Replaces move_on_shuttle with a trait (#83550)
## About The Pull Request

`move_on_shuttle` was a variable that existed on `/mob` despite only
ever being used by cameras. This PR downgrades the variable to only
exist on `/mob/camera` types, but have the only thing that variable do
is add a trait that blocks movement on shuttles if not allowed. This
allows us to check the variable without casting to camera, which is what
some code was un-necessarily doing. This also retainst the ability to
add the trait later on to different mobs who we may not want to be on
shuttles that aren't `/mob/camera`.
## Why It's Good For The Game

There's no point for this variable to live on `/mob` if all it can do is
clog up the VV screen, especially if the current utilization for it is
only cameras. Let's move it off `/mob` and turn it into a trait so it
still has the similar utilization on a global level without typecasting
- as well as make it actually work since needless typecasting was
introducing a minor bug
## Changelog
Irrelevant.

---------

Co-authored-by: Time-Green <7501474+Time-Green@ users.noreply.github.com>
2024-05-30 02:57:39 -04:00
SpaceLoveSs13
6a007662e0 Merge pull request #27917 from Skyrat-SS13/upstream-merge-83553
[MIRROR] Halves volume of Gravity Generator
2024-05-30 10:37:17 +05:30
SpaceLoveSs13
4ce58f966a Merge pull request #27913 from Skyrat-SS13/upstream-merge-83450
[MIRROR] Iceblock flora generation fixes
2024-05-30 10:36:15 +05:30
SpaceLoveSs13
c4918a2633 Merge pull request #27906 from Skyrat-SS13/upstream-merge-83548
[MIRROR] Fixes decals compounding on shuttles
2024-05-30 10:33:21 +05:30
SpaceLoveSs13
064573805e Merge pull request #27899 from Skyrat-SS13/upstream-merge-83560
[MIRROR] Fix being able to add too many symptoms to a virus
2024-05-30 10:31:31 +05:30
Capsandi
5dd069edab Halves volume of Gravity Generator (#83553)
## About The Pull Request

Halves the volume of sound produced by the gravity generator. This is
done code-side and no change is made to the sound files.

Apparently my tasteful composition of retro futuristic jetsons optimism
juxtaposed with an underlying commentary on the costs associated with
said optimistic attitude(see #83517) was lost on the end users of the
/tg/station project. It has never been as clear to me that my HUGE
FUCKING BRAIN with IQ of more than yours is wasted on the /tg/station
project. Yet, my immense intellect is rivaled only by my nigh saintly
mercy, and thus i have deigned to give you this one line pr.
This is untested code.

## Why It's Good For The Game
People who claim to play the game report that the gravity generator is
still too loud.

## Changelog

🆑
sound: The volume of the gravity generator has been halved
/🆑
2024-05-29 20:38:27 -04:00
Afevis
9a2390ba7a Iceblock flora generation fixes (#83450)
Fixes #83438

🆑 ShizCalev
fix: Trees will no longer be growing through railings on forest planets
fix: Trees/plants will no longer grow through wood pathways on Icebox
fix: Railings will no longer appear ontop of rock walls on icebox
/🆑

Old:

![image](https://github.com/tgstation/tgstation/assets/6209658/094c1708-ac4a-4e1a-acff-9d308a376476)

Fixed:

![image](https://github.com/tgstation/tgstation/assets/6209658/16c0af8b-4293-4b53-98b7-14093244447a)
2024-05-29 16:59:08 -04:00
AnturK
b7edb0efd0 Fixes decals compounding on shuttles (#83548)
Fixes #83535
Fixes #76382

Just a missing UnregisterSignal.
2024-05-29 16:23:12 -04:00
FlufflesTheDog
769d27d561 Fix being able to add too many symptoms to a virus (#83560)
## About The Pull Request
Makes sure viruses respect the weighted 6 symptom cap. 8 symptom viruses
are not something this world is prepared for.
Fixes https://github.com/NovaSector/NovaSector/issues/2727
## Why It's Good For The Game
fix bug
## Changelog
🆑
fix: viruses can no longer potentially have 8 symptoms
/🆑
2024-05-29 11:24:12 -04:00
Time-Green
ddd49179c1 Log trauma gain and loss (#83519) 2024-05-29 02:29:26 -04:00
SkyratBot
df1266e4de [MIRROR] Fix issues resulting from an elevated object being created inside of a non-turf atom (#27890)
* Fix issues resulting from an elevated object being created inside of a non-turf atom (#83498)

## About The Pull Request

If an elevated object is initialized inside of a non-turf atom, it'll
still make the turf it is on elevated. Permanently. Which is weird.

## Why It's Good For The Game

Randomly elevated turfs are bad. Bugs bad.

## Changelog
🆑
fix: Fix a rare issue where a turf would remain permanently "elevated"
if an elevated object was initialized inside of a non-turf object.
/🆑

* Fix issues resulting from an elevated object being created inside of a non-turf atom

---------

Co-authored-by: Lucy <lucy@absolucy.moe>
2024-05-29 02:05:14 +02:00
SkyratBot
7dc5766d00 [MIRROR] Viro Rework Tweaks (Buffed Natural Healing, Slower Progression, Stealth Respects Severity) (#27876)
* Viro Rework Tweaks (Buffed Natural Healing, Slower Progression, Stealth Respects Severity) (#83459)

## About The Pull Request

![image](https://github.com/tgstation/tgstation/assets/3894717/1d041612-c364-41c7-ae4b-bd386f2acb2e)

what it says on the tin. we're in virology rework season again #79854

makes natural healing enough for people to kick the teeth out of bad
viruses without chem. (still needs exact testing to dial in, but
ideally, chems will be a buff but no longer a mainstay. #83453 will
help, and things like fungal TB will be unchanged.)

makes viruses progress a bit slower across the board - this was part of
why you could have a bad virus shoot up to stage 5 from having been at
stage 1 out of nowhere, even after having mostly fought it off. this is
probabilistic, but the prob is lower now.

makes viruses only hide if their stealth stat is higher than their
severity. if you want your virus to be sneaky, you need to spec into
hiding it and run fewer symptoms (#83458 will fuck with this if
implemented - stay tuned.)

## Why It's Good For The Game

people don't like getting griefed by one-sided mechanics. while i think
i got some of the way there in #79854, the felt impact of that PR was
undercut by me being conservative with the values for what players'
actual choices outside of chem could do and SD still existing. I'm
hoping to go back and fix that first one since thankfully @ Time-Green is
working on #83453.

Logic remains much the same as in https://hackmd.io/@ Higgin/HJljdBuNp -
I am leaving this as a draft until I've had at least a few more tests on
the values, but I'd like to see this TM'd in a round or two with
advanced diseases floating around if possible.

edit to add some clarification:
if you do nothing, I balanced the worst viruses to be about a 50% chance
of death.
if you do the right thing, it should work 100% of the time or close to
it.
the problem I'm trying to address here is that the second one was
nowhere near 100%.

## Changelog

🆑
balance: Viruses now self-heal much more effectively with good mood,
sleep, food, and spaceacillin.
balance: Viruses now punish being hungry more. Stay fed!
balance: Spaceacillin now gives 200 ticks of symptom resistance,
declining over time, rather than 100.
balance: Viruses now progress slightly slower.
balance: Viruses now only hide if their stealth stat is greater than
their total computed severity.
/🆑

* Viro Rework Tweaks (Buffed Natural Healing, Slower Progression, Stealth Respects Severity)

---------

Co-authored-by: Higgin <cdonny11@yahoo.com>
2024-05-28 05:13:17 +02:00
SkyratBot
e229fa010f [MIRROR] Wendigo Mob Abilities (#27872)
* Wendigo Mob Abilities (#83325)

## About The Pull Request

Converts wendigo's abilities into mob abilities, behavior should be
almost identical to how it was before. Also gave megafauna the same
night vision as normal lavaland mobs since controlling them and being
unable to see was difficult while testing. Wendigo's scream and slam
were made into global procs so they could be used across these
abilities, but if there's a better way to do that I'm open to it.

## Why It's Good For The Game

More refactoring to make way for converting these all to basic
megafauna.

## Changelog

🆑
refactor: Wendigos abilities have been changed into actions that can be
added to any mob.
/🆑

* Wendigo Mob Abilities

---------

Co-authored-by: Whoneedspacee <yougotreallyowned@gmail.com>
2024-05-28 05:11:31 +02:00
SkyratBot
6cb78de27d [MIRROR] Fix echolocation lag ft. an actual fix (#27870)
* Fix echolocation lag ft. an actual fix (#83434)

## About The Pull Request
Fixes the actual underlying issue that makes images pile up when the
cooldown is lower than the fade time.
Also, adjusts the fade time to compensate for the new 1 second cooldown,
because otherwise you literally don't get an echolocation effect. Things
just never vanish.
Fixes #83385
## Why It's Good For The Game
well-
current behavior:

https://github.com/tgstation/tgstation/assets/25628932/98efda07-5396-4f8c-8460-69231bbfc32e
## Changelog
🆑 Fluffles
fix: echolocation is less laggy. and works.
/🆑

* Fix echolocation lag ft. an actual fix

---------

Co-authored-by: FlufflesTheDog <piecopresident@gmail.com>
2024-05-28 05:10:06 +02:00
SkyratBot
b487bbf07d [MIRROR] Fixes Rust Victims being permanently exiled to the puke-zone. (#27868)
* Fixes Rust Victims being permanently exiled to the puke-zone. (#83417)

## About The Pull Request

closes : https://github.com/tgstation/tgstation/issues/83375

## Why It's Good For The Game

Deleting Heretic rust you are standing on now properly deletes the
status effect.

## Changelog

🆑

fix: Rust debuffs now gets properly removed if you derust a tile you are
standing on.
/🆑

* Fixes Rust Victims being permanently exiled to the puke-zone.

---------

Co-authored-by: EnterTheJake <102721711+EnterTheJake@users.noreply.github.com>
2024-05-28 05:09:00 +02:00
Time-Green
4634bc9367 Adds symptom weights (#83456)
<!-- 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

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

Adds symptom weights. Sneeze and cough have double weighing

## Why It's 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. -->

Sneezing and coughing are very commonly used symptoms in order to mass
spread diseases. They're usually a given since it gives everyone your
virus.

By increasing their weighting, mass spreaders are limited to less
symptoms. Reduces station-wipe potential of lethal diseases and nerfs
positive viruses by requiring people to actually go to medbay and get
them (even if its just the pill table).

We can make viruses less symptom heavy now that we don't have to worry
about the virologists' enjoyment, making it less horrible to deal with.
Instead of combusting, freezing, becoming blind, starving and your skin
melting, you now wont starve (unless you got infected through fluids,
but that's a lot more direct and avoidable so probably fine)

## 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. -->

🆑
tweak: Sneezing and coughing symptoms have double the weighting
/🆑

<!-- 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. -->
2024-05-27 15:24:46 -04:00
SkyratBot
7fa267aca3 [MIRROR] Deletes handle_random_events, saving us from 1 whole proc call in Life (#27864)
* Deletes `handle_random_events`, saving us from 1 whole proc call in `Life` (#83421)

## About The Pull Request

Dumps `handle_random_events` in the bin, giving us one less proc in
`Life`, that's a free proc call optimization baby.

Replaces its only implementation with a status effect conditionally
applied when gaining / losing tox dam.

## Changelog

🆑 Melbert
refactor: Refactored the way high toxins cause you to vomit.
/🆑

* Deletes `handle_random_events`, saving us from 1 whole proc call in `Life`

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-05-26 23:15:36 +02:00
SkyratBot
9df7771eab [MIRROR] Removes miasma and gibs diseases (#27863)
* Removes miasma and gibs diseases (#83455)

## About The Pull Request
Removes miasma generating random viruses (in two locations for some
reason)
Also removes diseases being generated by gibs, which is responsible for
a lot of disease spam

## Why It's Good For The Game
New diseases are spread through events and virology (and some other
minor sources). Miasma and gibs are a source of random viruses that
dilutes player response to diseases. It's frankly exhausting curing the
disease outbreak, just to see 10 others pop-up. Hopefully we can reduce
the madness a bit and place more focus on individual diseases

## Changelog
🆑
del: Miasma and gibs no longer generates random diseases
/🆑

Something like lung rot could be cool though, but out of scope for the
current PR

* Removes miasma and gibs diseases

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
2024-05-26 23:15:02 +02:00
SkyratBot
630b3705b6 [MIRROR] minor raptor tweaks (#27845)
* minor raptor tweaks (#83407)

## About The Pull Request
i think i made these a bit too strong, this hopefully balances them out
a bit. they were initially accidentally given alot of armor against
ranged attacks, this is now removed. also ive reduced their base hp by a
bit. im open to other suggestions and feedback

## Why It's Good For The Game
they were stronger than i intended. this keeps their usefulness for
battling tendrils, or ore vents but also prevents using them to cheese
several megafauna

## Changelog
🆑
balance: you can now polymorph into raptors
balance: raptors overall have less health and no longer have armor
against ranged attacks
/🆑

* minor raptor tweaks

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
2024-05-25 20:59:58 +02:00
SkyratBot
40768c84ea [MIRROR] Adds extra signals for storage add/remove, + minor signal doc (#27837)
* Adds extra signals for storage add/remove, + minor signal doc (#83247)

## About The Pull Request

Title.

Converts TCG decks to use signals instead of a proc override, as is
better practice.
## Why It's Good For The Game

It's generally better practice to not snowflake behavior like this onto
the storage itself, instead using signals/procs.
Also, its good to have parity between add/remove in signals.
## Changelog
🆑
code: New signals for atom storage remove and insert
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>

* Adds extra signals for storage add/remove, + minor signal doc

---------

Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
2024-05-25 20:53:30 +02:00
SkyratBot
6b86e13ddb [MIRROR] Epinephrine will properly freeze multiple allergic reagents (#27836)
* Epinephrine will properly freeze multiple allergic reagents (#83403)

## About The Pull Request
Thanks to an early return, epinephrine was only freezing the metabolism
of a single allergic reagent at a time; refactored the relevant code to
rectify this.
## Why It's Good For The Game
Fixes https://github.com/tgstation/tgstation/issues/83393
## Changelog
🆑 PapaMichael
fix: Epinephrine will prevent metabolism of all allergic reagents
(instead of just one), if taken with multiple chemicals that one is
allergic to.
/🆑

* Epinephrine will properly freeze multiple allergic reagents

---------

Co-authored-by: PapaMichael <papa.michael.1996@gmail.com>
2024-05-25 20:52:17 +02:00
SkyratBot
61ec10c3e0 [MIRROR] grep's for "recieve" typos (#27826)
* grep's for "recieve" typos (#83369)

Just spellchecking some common mistakes.

* Missed these.

---------

Co-authored-by: Afevis <ShizCalev@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2024-05-23 23:38:14 +02:00
SpaceLoveSs13
b2956b6935 Merge pull request #27830 from Skyrat-SS13/upstream-merge-83391
[MIRROR] Adds examine message support to the boomerang component
2024-05-23 23:06:10 +05:30
SpaceLoveSs13
f47c7dc815 Merge pull request #27828 from Skyrat-SS13/upstream-merge-83146
[MIRROR] adds a new fish to lava and plasma rivers
2024-05-23 23:05:46 +05:30
SpaceLoveSs13
e7aaf463c2 Merge pull request #27822 from Skyrat-SS13/upstream-merge-83384
[MIRROR] jps movement can read accesses from the access component
2024-05-23 22:58:55 +05:30
SpaceLoveSs13
b817404a26 Merge pull request #27363 from Skyrat-SS13/upstream-merge-82672
[MIRROR] Fix height settings double-applying offsets / some human icon gen cleanup I guess
2024-05-23 22:18:19 +05:30