Commit Graph

3937 Commits

Author SHA1 Message Date
SkyratBot 2f291c7ea1 [MIRROR] Reworks blood deficiency backend, & some adjustments to slime blood deficiency [MDB IGNORE] (#20037)
* Reworks blood deficiency backend, & some adjustments to slime blood deficiency

* Update jellypeople.dm

* e

* wew

* https://github.com/tgstation/tgstation/pull/74246

Co-Authored-By: san7890 <the@san7890.com>

* https://github.com/tgstation/tgstation/pull/74189

I was looking over https://github.com/tgstation/tgstation/pull/74143 one
last time as I tend to do with merged PR's and noticed a couple of
nitpicky comment formatting things that will grate on me. Sorry about
this @san7890

Edit: Then even worse I found a bug. Roundstart species with blood
deficiency should now get the appropriate blood pack mail goodies sent
to them. I had completely forgotten about ethereals. Code is a bit
cleaner too.

Fixes bug, dmdoc formatting

🆑
fix: fixed blood deficiency quirk sending the wrong blood pack to
roundstart species who have exotic blood
/🆑

Co-Authored-By: san7890 <the@san7890.com>

* https://github.com/tgstation/tgstation/pull/74229

Followup to #74189

What it says on the tin. This is the last time I will ping you on a
blood-deficiency related PR, I swear! @san7890

About lizards--they have a special bloodtype that isn't compatible with
the generic O- that gets sent to everyone else, which I am just now
realizing.

I also realized that there is never a situation when `on_species_loss`
gets called without `on_species_gain` so there is no reason to call
`update_mail_goodies` in each of those. I deleted the extra proc calls
in `on_species_loss` to save on performance.

Also cleans up some single letter vars in the lizard species file.

Fixes an oversight, cleans up some code.

🆑
qol: lizards with blood deficiency now receive the type 'L' blood packs
instead of an unhelpful type 'O-' one.
/🆑

Co-Authored-By: san7890 <the@san7890.com>

---------

Co-authored-by: Bloop <vinylspiders@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
2023-03-27 03:27:08 +01:00
SkyratBot 6e029611ac [MIRROR] Implements AddTraits and RemoveTraits procs for adding/removing multiple traits + swag unit test [MDB IGNORE] (#19959)
* Implements AddTraits and RemoveTraits procs for adding/removing multiple traits + swag unit test

* MISSED MIRROR https://github.com/tgstation/tgstation/pull/71606

* Update modules_supply.dm

* Update tgstation.dme

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-27 03:26:52 +01:00
SkyratBot 96be018eb1 [MIRROR] Refactors Suiciding Variable Into Trait [MDB IGNORE] (#20017)
* Refactors Suiciding Variable Into Trait

* suicide

* https://github.com/tgstation/tgstation/pull/72919

MISSED IRROR

* better suicide handling

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-27 02:03:05 +01:00
SkyratBot 8a6df45aed [MIRROR] Fixes thrown reagent containers (like molotovs) fully splashing against mobs when they apparently shouldn't [MDB IGNORE] (#20052)
* Fixes thrown reagent containers (like molotovs) fully splashing against mobs when they apparently shouldn't (#74187)

## About The Pull Request
Not a mapping PR but I probably could take a crack at it anyway if I had
any good ideas but anyway -
Fun fact: throwing molotovs at people, or open reagent containers in
general (beakers, glasses) applies the full force of their contents at
their target. (This is probably not supposed to happen.)

![image](https://user-images.githubusercontent.com/31829017/227109778-11b530fc-4b91-4cf6-b6c3-8e464b0c0a0b.png)

This is because multiplying the `total_reagents` down doesn't actually
affect the reagents as stored in a list, so even if it was supposed to
splash less (because of the inherent in-universe inaccuracy of hucking
things), it... didn't!

This PR fixes this by making a separate variable, `splash_multiplier`
(which defaults to 1), multiplying it down when it hits a mob, and
passing that along to the `reagents.expose` call.

This does not affect non-thrown reagent containers.

![image](https://user-images.githubusercontent.com/31829017/227110370-b553b7e9-e19b-4c97-8014-74aa8ac9d99f.png)

## Why It's Good For The Game

Apparently, this isn't intended according to the comments; even though
it says "not all of it makes contact", the first screenshot kinda shows
that it does, which is suboptimal.

On second thought, I maybe could've made it so that the part of the
reagents that don't hit the target get applied to the floor, instead,
but that's... probably for a sequel PR (mostly applicable to stuff that
splashes on floors e.g. weldfuel (puddles))? Unless a maintainer wants
me to add that as a feature! And then make this less a fix.

Please advise.

## Changelog

🆑
fix: Thrown reagent containers (beakers, molotovs) hitting mobs no
longer fully splash their target with their contents, as this was
unintended behavior. The intended behavior was 0-50% of the splashed
reagents being ignored. Throwing stuff at floors/walls is unaffected.
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>

* Fixes thrown reagent containers (like molotovs) fully splashing against mobs when they apparently shouldn't

---------

Co-authored-by: Hatterhat <31829017+Hatterhat@users.noreply.github.com>
Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-03-25 01:04:21 -07:00
SkyratBot 0d2ba72250 [MIRROR] Replaces internal_organs with organs [MDB IGNORE] (#19871)
* Replaces internal_organs with organs

* Makes all of the necessary internal_organs -> organs in our files to compile

And it seems to work too!

---------

Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-03-24 13:27:48 -04:00
lessthanthree 0d983be692 [MANUAL MIRROR] Fix: DNA Infuser & Unit Tests, Organs Bugfixes (#19211)
* Fix: DNA Infuser & Unit Tests, Organs Bugfixes (#73003)

>_"I don't remember buying tickets to Mutants on Ice."_
>-Duke Nukem

This PR is (hopefully the final) part of a series of my continuing
refactors of the DNA Infuser. This PR represents a "quality pass" which
should also iron-out the rest of the most impactful bugs.

Granular list of changes:
- This PR adds unit tests for the DNA Infuser organs and
`/datum/status_effect/organ_set_bonus` as recommended by @AnturK
- I noticed that the base `/datum/infuser_entry` was being used in the
machine for the Fly and "rejected" infusions, whereas usually we would
expect it to be a base type used only as a development template. I
corrected this issue and created `/datum/infuser_entry/fly` to be used
for that use-case instead.
- Added `/mob/proc/can_mutate()` and `/mob/living/carbon/can_mutate()`
to replace a few copied lines across several files. The proc is normally
used in the context of mutating a Human via their DNA.
- I fixed a ton of typos in organ-related code, specifically where
"receiver" was typo'd as "reciever". There are far more of those typos,
but I limited the scope of my changes to organs.
- I noticed a bug in `/datum/species/proc/regenerate_organs` wherein a
race condition caused an organ to remove itself before it's done
inserting itself. This happens because the Fly organ set bonus runs
`regenerate_organs` which calls `Remove` on the organ while `Insert` is
still in the call-stack. I added `INVOKE_ASYNC` as a workaround, and
also changed the order the signals are emitted to prevent future bugs.
This bug primarily only impacted the flyperson species transformation,
which was part of the DNA Infuser's flyperson infusion organ set bonus.
- In my last refactor PR #72745 I also introduced a bug in
`/obj/machinery/dna_infuser/proc/infuse_organ` wherein I forgot to add
the usage of `new` when attempting to implant new organs, and this PR
fixes the erroneous code.
- Fxed a bug which causes the organ set bonus to activate when mixing
organs from different sources, which is caused by a developer oversight
wherein all `/datum/status_effect/organ_set_bonus` had identical IDs.
- Added a cleaner `replacetext`-based way of handling pronouns in
`/datum/element/noticable_organ/proc/on_receiver_examine`, using custom
macros `%PRONOUN_S` and `%PRONOUN_ES` as advised by @MrMelbert
- This PR also fixes #72767

With the changes in this PR the machine will finally work as we expect
it to. By adding unit tests we will also be able to ensure that it works
as expected from now on. I feel confident saying that the completeness,
algorithmic correctness, and code health of the DNA Infuser is much
better than it was before.

🆑 A.C.M.O.
fix: Fully fixed the DNA Infuser, which will now infuse organs as
expected.
fix: Fixed flyperson species transformation and organ set bonus, which
was throwing a runtime.
fix: Fixed many typos in organ-related source code.
/🆑

---------

Co-authored-by: Time-Green <timkoster1@hotmail.com>

* *shrug

* Uncommented the line Gandalf wanted uncommented

* Properly fixes CI on this one, hopefully.

---------

Co-authored-by: Dani Glore <fantasticdragons@gmail.com>
Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-03-17 18:29:15 -04:00
SkyratBot 4400a6dca4 [MIRROR] Add ketchup bottle, for mail and crafting purposes [MDB IGNORE] (#19865)
* Add ketchup bottle, for mail and crafting purposes (#73954)

🆑 coiax
add: Chefs can sometimes get ketchup bottles in the mail.
fix: Ketchup in the crafting menu is now represented as the bottle,
rather than an empty condiment pack.
/🆑

A lot of recipes are harder to read than they need to be because the
reagents don't have useful containers set. Although ketchup has the
condiment pack set as its "default container", it doesn't display the
red contents in the crafting menu.

Using the already existing ketchup bottle sprite that the condimaster
uses, made a separate pre-defined ketchup bottle for the reagent to
reference, which looks better.

And to provide something that cares about the existence of the dedicated
ketchup bottle (apart from the copy-pasted condimaster code which I am
not brave enough to refactor), lets chefs get ketchup in the mail.

![image](https://user-images.githubusercontent.com/609465/224579612-e439080f-3340-4ad6-816d-e6388fd86740.png)

* Add ketchup bottle, for mail and crafting purposes

---------

Co-authored-by: Jack Edge <yellowbounder@gmail.com>
2023-03-15 00:51:03 +00:00
SkyratBot fd0d736291 [MIRROR] Calomel Rework [MDB IGNORE] (#19835)
* Calomel Rework (#73762)

## About The Pull Request
This transforms the Calomel now into a better version called Ammoniated
Mercury and brings the old Calomel back. Calomel purges all chemicals
again and Ammoniated Mercury purges toxins. Calomel deals toxin damage
until you have less than 100 health in which case it starts doing to
opposite. Ammoniated Mercury heals toxin damage if you do not have
enough brute or fire damage.

Paramedics now get a bottle of Ammoniated Mercury since it is the new
Calomel.
## Why It's Good For The Game
I always used to use Calomel back in the day to get rid of all
chemicals. Multiver does the same but has very weird conditions, so now
I split the old and new Calomel into two chemicals for both uses to
become available. I have never seen anyone use Calomel so now it can be
used to fix overdoses again.
## Changelog
🆑
add: Adds Ammoniated Mercury, a chemical to the game.
balance: Calomel now purges all chemicals again, and now Ammoniated
Mercury only purges toxins.
/🆑

* Calomel Rework

---------

Co-authored-by: Comxy <tijntensen@gmail.com>
2023-03-14 01:58:17 +00:00
SkyratBot 7dea122679 [MIRROR] Cleans up Generate Vintage Code for Unlabeled Wine [MDB IGNORE] (#19798)
* Cleans up Generate Vintage Code for Unlabeled Wine (#73912)

## About The Pull Request

I should have done this or something similar in #70827 but I think I
thought it was too out of scope.

The gist is that we just get rid of a completely un-necessary var (since
it's a macro now), as well as multi-line and alphabetize the lists
present. simple really
## Why It's Good For The Game

Save the time of having a var for something that already points to a
macro, also multilined lists are swag
## Changelog
nothing that concerns players

* Cleans up Generate Vintage Code for Unlabeled Wine

---------

Co-authored-by: san7890 <the@san7890.com>
2023-03-13 01:57:27 +00:00
SkyratBot e4c96c53d8 [MIRROR] Fixes naming in the chem master being dumb [MDB IGNORE] (#19793)
* Fixes naming in the chem master being dumb (#73940)

God I hate this place

* Fixes naming in the chem master being dumb

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-03-13 01:42:53 +00:00
SkyratBot 9b97ef7f91 [MIRROR] Changes Quantum Hair Dye recipe slightly. [MDB IGNORE] (#19775)
* Changes Quantum Hair Dye recipe slightly. (#73867)

## About The Pull Request
So, when you make Colorful reagent, you also make Quantum Hair Dye
because it has recipe from the same reagents as colorful reagent. And
you can't make it normally because of it.
## Why It's Good For The Game
You can make this reagent normally. Without this headache.
## Changelog
🆑
fix: Changed Quantum Hair Dye recipe from colourful reagent, space drugs
and radium to colourful reagent, space drugs and chlorine. So you can
make it normally.
/🆑

* Changes Quantum Hair Dye recipe slightly.

---------

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
2023-03-11 15:15:17 +00:00
SkyratBot 4912b160a8 [MIRROR] Removes bad nodamage var from projectiles, fixes Juggernaut / Rust Walker projectiles doing zero damage [MDB IGNORE] (#19768)
* Removes bad `nodamage` var from projectiles, fixes Juggernaut / Rust Walker projectiles doing zero damage

* wew

* Update drinks.dm

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-11 04:19:58 +00:00
Gandalf 0d030f5cbc [MANUAL MIRROR] [MIRROR] https://github.com/tgstation/tgstation/pull/72290 (#19753)
* Turns miming into a trait instead of an unsightly mind boolean (#72290)

https://github.com/tgstation/tgstation/pull/72254 turned to be wildly
unpopular so i'm simplifying it and keeping only the important, code
backend stuff

makes the code gooder, makes mobs without a mind capable of miming (if
that becomes necessary for whatever reason)

Not player facing

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>

* Update scream_emote.dm

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
2023-03-10 06:42:19 +00:00
SkyratBot 36cf718cc7 [MIRROR] Adds a stack_trace for emissives with invalid icon_states, fixes all that appeared roundstart [MDB IGNORE] (#19678)
* Adds a stack_trace for emissives with invalid icon_states, fixes all that appeared roundstart (#73678)

## About The Pull Request
So, this spiraled from one missing icon being fixed to an entire check
for said icons.
Several icon files no longer use error icons because its assumed that
the checks will handle any missing ones, but the checks don't apply to
emissives nor overlays at all. This led to the radsuit having an
emissive but no icon_state for it - a relic of the old radsuit. This was
only noticed because of a downstream with an error icon appearing for
it...

I was curious how many were actually having the same issue, so I made a
small little stack_trace in the mutable_appearance proc.
There were like, 2k. Lots of them were icons named, like, "transparent"
or "blank" too...
I moved that check to the emissives proc because I semi-understand that
system so could actually fix it, and it moved to around fourty
roundstart. Much more achievable.

(The error usually has more info if you click on it, including the item
that caused it. I dunno how to add that to the check itself because of
where it's located, though.)

![F99cOII1XJ](https://user-images.githubusercontent.com/76465278/221503786-63dc6980-a48b-4290-b891-23c0499500ff.png)

This fixes all the ones I could find, including...
Nonexistant icons that shouldn't be adding emissives on:
- Empty Barsign
- Radsuit
- Mass Driver Controllers
- Telescreens
- Aux Base Consoles
- PanDEMIC
- Kobayashi computer (holodeck)
- Abductor camera console
- Syndie drop pod
- BSA controller
Entirely missing icons on:
- Pwr Game Vendor (this was just misnamed)
- Generic Soda Vendor
- Engivend
- Security Laptop (proud of this one.,.,)
![dreamseeker_36PwO4HSLO](https://user-images.githubusercontent.com/76465278/221544806-3c5ae33a-1360-49e0-ba80-afea6c0a9339.gif)

There are no doubt more of them hidden about, but I don't really know
what I'm doing... If there's a check that'd be better than this, please
review telling me what to change <3
## Why It's Good For The Game
Fixes missing icons, fixes attempts to add icons where we don't need
them, and adds a check to help fix more of the two issues as they occur.
## Changelog
🆑
fix: fixed missing emissives on the Engivend, Pwr-Game Soda, and generic
Soda vendors. Also fixed the seclaptop having no valid screen icon!
fix: fixed a few items trying to apply emissives when they shouldn't.
code: added a stack_trace for emissives with missing icon states.
/🆑

* Adds a stack_trace for emissives with invalid icon_states, fixes all that appeared roundstart

* Update cryopod.dm

---------

Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 06:11:13 +00:00
SkyratBot 4cd00f275a [MIRROR] Faction defines [MDB IGNORE] (#19590)
* Faction defines

* fixes

---------

Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 04:55:18 +00:00
SkyratBot 480745ce05 [MIRROR] Basic Mob Spiders III: Sgt. Araneus is no longer a bat [MDB IGNORE] (#19315)
* Basic Mob Spiders III: Sgt. Araneus is no longer a bat

* spooky scary spider

* Revert "spooky scary spider"

This reverts commit 7bcca7750390c7ba6aaa08760886eda524f600f8.

* resolve conflicts

* resolve conflicts

* https://github.com/tgstation/tgstation/pull/73724

https://github.com/tgstation/tgstation/pull/73724

* https://github.com/Skyrat-SS13/Skyrat-tg/pull/19561

* fixes

* wew

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 04:47:03 +00:00
SkyratBot 5ca96a5a03 [MIRROR] Honorbound fixes [MDB IGNORE] (#19514)
* Honorbound fixes

* Update impure_medicine_reagents.dm

---------

Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 04:20:07 +00:00
SkyratBot f8f2abb11f [MIRROR] Refactor, improve, and rename canUseTopic to be can_perform_action [MDB IGNORE] (#19391)
* Refactor, improve, and rename canUseTopic to be can_perform_action

* updoot

* https://github.com/tgstation/tgstation/pull/72876

https://github.com/tgstation/tgstation/pull/72876

---------

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 04:19:25 +00:00
lessthanthree 7305d12d29 [MANUAL MIRROR] Nightvision Rework (In the name of color) (#19608)
* Nightvision Rework (In the name of color) (#73094)

Relies on #72886 for some render relay expansion I use for light_mask
stuff.

Hello bestie! Night vision pissed me off, so I've come to burn this
place to the ground.
Two sections to discuss here. First we'll talk about see_in_dark and why
I hate it, second we'll discuss the lighting plane and how we brighten
it, plus introducing color to the party.

https://www.byond.com/docs/ref/#/mob/var/see_in_dark

See in dark lets us control how far away from us a turf can be before we
hide it/its contents if it's dark (not got luminosity set)
We currently set it semi inconsistently to provide nightvision to mobs.

The trouble is stuff that produces light != stuff that sets luminosity.
The worst case of this can be seen by walking out of escape on icebox,
where you'll see this

![image](https://user-images.githubusercontent.com/58055496/215683654-587fb00f-ebb8-4c83-962d-a1b2bf429c4a.png)

Snow draws above the lighting plane, so the snow will intermittently
draw, depending on see_in_dark and the luminosity from tracking lights.
This would in theory be solvable by modifying the area, but the same
problem applies across many things in the codebase.
As things currently stand, to be emissive you NEED to have a light on
your tile. People are bad at this, and honestly it's a bit much to
expect of them. An emissive overlay on a canister shouldn't need an
element or something and a list on turfs to manage it.
This gets worse when you factor in the patterns I'm using to avoid
drawing lights above nothing, which leads to lights that should show,
but are misoffset because their parent pixel offsets.

It's silly. We do it so we can have things like mesons without just
handing out night vision, but even there the effect of just hiding
objects and mobs looks baddddddd when moving. It's always bothered me.
I'll complain about mesons more later, but really just like, they're too
bright as it is.

I'm proposing here that rather then manually hiding stuff based off
distance from the player, we can instead show/hide using just the
lighting plane. This means things like mesons are gonna get dimmer, but
that's fine because they suck.

It does have some side effects, things like view() on mobs won't hide
stuff in darkness, but that's fine because none actually thinks about
view like that, I think.

Oh and I added a case to prevent examining stuff that's in darkness, and
not right next to you when you don't have enough nightvision, to match
the old behavior `see_in_dark` gave us.

Now I'd like to go on a mild tangent about color, please bare with me

You ever walk around with mesons on when there's a fire going, or an
ethereal or firelocks down.
You notice how there isn't really much color to our lights? Doesn't that
suck?

It's because the way we go about brighting lighting is by making
everything on the lighting plane transparent.
This is fine for brightening things, but it ends up looking kinda crummy
in the end and leads to really washed out colors that should be bright.
Playing engineer or miner gets fucking depressing.

The central idea of this pr, that everything else falls out of, is
instead of making the plane more transparent, we can use color matrixes
to make things AT LEAST x bright.

https://www.byond.com/docs/ref/#/{notes}/color-matrix

Brief recap for color matrixes, fully expanded they're a set of 20
different values in a list
Units generally scale 0-1 as multipliers, though since it's
multiplication in order to make an rgb(1,1,1) pixel fullbright you would
need to use 255s.

A "unit matrix" for color looks like this:
```
list(1, 0, 0, 0,
     0, 1, 0, 0,
     0, 0, 1, 0,
     0, 0, 0, 1,
     0, 0, 0, 0
)
```

The first four rows are how much each r, g, b and a impact r, g, b and
well a.
So a first row of `(1, 0, 0, 0)` means 1 unit of r results in 1 unit of
r. and 0 units of green, blue and alpha, and so on.
A first row of `(0, 1, 0, 0)` would make 1 red component into 1 green
component, and leave red, blue and alpha alone, shifting any red of
whatever it's applied to a green.

Using these we can essentially color transform our world. It's a fun
tool. But there's more.

That last row there doesn't take a variable input like the others.
Instead, it ADDS some fraction of 255 to red, green, blue and alpha.

So a fifth row of `(1, 0, 0, 0)` would make every pixel as red as it
could possibly be.

This is what we're going to exploit here. You see all these values
accept negative multipliers, so we can lower colors down instead of
raising them up!
The key idea is using color matrix filters
https://www.byond.com/docs/ref/#/{notes}/filters/color to chain these
operations together.

Pulling alllll the way back, we want to brighten darkness without
affecting brighter colors.
Lower rgb values are darker, higher ones are brighter. This relationship
isn't really linear because of suffering reasons, but it's good enough
for this.
Let's try chaining some matrixes on the lighting plane, which is bright
where fullbright, and dark where dark.

Take a list like this

```
list(1, 0, 0, 0,
     0, 1, 0, 0,
     0, 0, 1, 0,
     0, 0, 0, 1,
     -0.2, -0.2, -0.2, 0
)
```
That would darken the lighting a bit, but negative values will get
rounded to 0
A subsequent raising by the same amount
```
list(1, 0, 0, 0,
     0, 1, 0, 0,
     0, 0, 1, 0,
     0, 0, 0, 1,
     0.2, 0.2, 0.2, 0
)
```
Will essentially threshold our brightness at that value.
This ensures we aren't washing out colors when we make things brighter,
while leaving higher values unaffected since they basically just had a
constant subtracted and then readded.

You may have noticed, we gain access to individual color components
here.
This means not only can we darken and lighten by thresholds, we can
COLOR those thresholds.
```
list(1, 0, 0, 0,
     0, 1, 0, 0,
     0, 0, 1, 0,
     0, 0, 0, 1,
     0.1, 0.2, 0.1, 0
)
```
Something like the above, if applied with its inverse, would tint the
darkness green.
The delta between the different scalars will determine how vivid the
color is, and the actual value will impact the brightness.

Something that's always bothered me about nightvision is it's just
greyscale for the most part, there isn't any color to it.
There was an old idea of coloring the game plane to match their lenses,
but if you've ever played with the colorblind quirk you know that gets
headachey really fast.
So instead of that, lets color just the darkness that these glasses
produce.
It provides some reminder that you're wearing them, instead of just
being something you forget about while playing, and provides a reason to
use flashlights and such since they can give you a clearer, less tinted
view of things while retaining the ability to look around things.

I've so far applied this pattern to JUST headwear for humans (also those
mining wisps)
I'm planning on furthering it to mobs that use nightvision, but I wanted
to get this up cause I don't wanna pr it the day before the freeze.

Mesons are green, sec night vision is red, thermals orange, etc.

I think the effect this gives is really really nice.
I've tuned most things to work for the station, though mesons works for
lavaland for obvious reasons.

I've tuned things significantly darker then we have them set currently,
since I really hate flat lighting and this system suffers when
interacting with it.

My goal with these is to give you a rough idea of what's around you,
without a good eye for detail.
That's the difference between say, mesons, and night vision. One helps
you see outlines, the other gives you detail and prevents missing
someone in the darkness.

It's hard to balance this precisely because of different colored
backgrounds (looking at you icebox)
More can be done on this front in future but I'm quite happy with things
as of now

I have since expanded to all uses of nightvision, coloring most all of
them.

Along the way I turned some toggleable nightvision into just one level.
Fullbright sucks, and I'd rather just have one "good" value.

I've kept it for a few cases, mostly eyes you rip out of mobs.
Impacted mobs are nightmares, aliens, zombies, revenants, states and
sort of stands.

I've done a pass on all mobs and items that impact nightvision and added
what I thought was the right level of color to them. This includes stuff
like blobs and shuttle control consoles
As with glasses much of this was around reducing vision, though I kept
it stronger here, since many of these mobs rely on it for engaging with
the game

<details>
<summary>
Technical Changes
</summary>

filter transitions.
Found this when testing this pr, seemed silly.

This avoids dumbass overlay lighting lighting up wallmounts.
We switch modes if some turfflags are set, to accomplish the same thing
with more overhead, and support showing things through the darkness.

Also fixes a bug where you'd only get one fullscreen object per mob, so
opening and closing a submap would take it away

Also also fixes the lighting backdrop not actually spanning the screen.
It doesn't actually do anything anymore because of the fullscreen light
we have, but just in case that's unsued.
Needs cleanup in future.

color with a sprite

This is to support the above
We relay this plane to lighting mask so openspace can like, have
lighting

vision goggles and such
Side affect of removing see_in_dark. This logic is a bit weak atm, needs
some work.

It's a dupe of the nightvision action button, and newly redundant since
I've removed all uses of it

trasnparent won't render

These sucked
Also transparent stuff should never render, if it does you'll get white
blobs which suck

</details>

Videos! (Github doesn't like using a summary here I'm sorry)
<details>

Demonstration of ghost lighting, and color

https://user-images.githubusercontent.com/58055496/215693983-99e00f9e-7214-4cf4-a76a-6e669a8a1103.mp4

Engi-glass mesons and walking in maint (Potentially overtuned, yellow is
hard)

https://user-images.githubusercontent.com/58055496/215695978-26e7dc45-28aa-4285-ae95-62ea3d79860f.mp4

Diagnostic nightvision goggles and see_in_dark not hiding emissives

https://user-images.githubusercontent.com/58055496/215692233-115b4094-1099-4393-9e94-db2088d834f3.mp4

Sec nightvision (I just think it looks neat)

https://user-images.githubusercontent.com/58055496/215692269-bc08335e-0223-49c3-9faf-d2d7b22fe2d2.mp4

Medical nightvision goggles and other colors

https://user-images.githubusercontent.com/58055496/215692286-0ba3de6a-b1d5-4aed-a6eb-c32794ea45da.mp4

Miner mesons and mobs hiding in lavaland (This is basically the darkest
possible environment)

https://user-images.githubusercontent.com/58055496/215696327-26958b69-0e1c-4412-9298-4e9e68b3df68.mp4

Thermal goggles and coloring displayed mobs

https://user-images.githubusercontent.com/58055496/215692710-d2b101f3-7922-498c-918c-9b528d181430.mp4

</details>

I think it's pretty, and see_in_dark sucks butt.

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
add: The darkness that glasses and hud goggles that impact your
nightvision (think mesons, nightvision goggles, etc) lighten is now
tinted to match the glasses. S pretty IMO, and hopefully it helps with
forgetting you're wearing X.
balance: Nightvision is darker. I think bright looks bad, and things
like mesons do way too much
balance: Mesons (and mobs in general) no longer have a static distance
you can see stuff in the dark. If a tile is lit, you can now see it.
fix: Nightvision no longer dims colored lights, instead simply
thresholding off bits of darkness that are dimmer then some level.
/🆑

* modular edits

* see_in_dark

* [MIRROR] Adds a unit test to detect double stacked lights [MDB IGNORE] (#19564)

* Adds a unit test to detect double stacked lights

* we really need to get that night vision pr done

* lints fixes

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>

* Update augments_eyes.dm

* Update augments_eyes.dm

* eeee

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 04:17:22 +00:00
SkyratBot 5a9eac01d0 [MIRROR] [NO GBP] Fixes some major (and minor) issues with the birthday station trait. [MDB IGNORE] (#19709)
* [NO GBP] Fixes some major (and minor) issues with the birthday station trait.

* fix traits

---------

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
2023-03-09 16:48:25 -08:00
SkyratBot 893e1996ad [MIRROR] New Station Trait, Employee Birthday! [MDB IGNORE] (#19690)
* New Station Trait, Employee Birthday!

* Update generic_positive_events.dm

* vr additions

---------

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2023-03-09 21:51:44 +00:00
lessthanthree 021c9d546e [MANUAL MIRROR] Buff scythes, goats, and plantbgone vs PLANT biotypes (#19215)
Buff scythes, goats, and plantbgone vs PLANT biotypes (#72889)

This buffs scythes, goats, and plantbgone vs PLANT biotypes:

- Scythes now deal x1.5 damage to venus flytraps (3 hits to kill)
- Scythes now target the flower bud vines
- Goats now target flower bud vines and deal 15 damage to PLANT biotypes
- Goats have a eating sound whenever they bite PLANT biotypes
- Plantbgone now does 2 dmg per unit to PLANT biotypes (10 dmg per
spray)
- Plantbgone now has a 75% chance to remove weeds and deals large damage
to flower buds
- Weed control crates now come with a pair of leather gloves
- Golems are immune to thorn effects
- Any kind of thick glove material will prevent thorn effects when
attacking
- Flower buds will now take x4 damage from fire and sharp weapons
(unless they have fire trait)
- Regular scythes are now a sharp object

Also this fixes a few runtimes with spacevines and nulls. The bane
element now accepts `mob_biotypes` bitflags as an argument.

Before my changes:

- Plant-b-gone was doing 0.4 dmg per unit to PLANT biotypes (2 dmg per
spray)
- Scythes took 5 hits to kill venus flytraps
- Goats only affected podpeople
- Flower bud vines were being ignored by weed killing code
- Plantbgone only had a 50% chance to remove weeds (and this was very
inconsistent due to RNG)
- Botanical gloves and thick gloves didn't protect from thorns
- Golems were getting pierced by thorns despite having pierce immunity
- Flower buds were not taking the x4 damage like they should have been
- Regular scythes were not a sharp object, but other scythes
(chaplain's, megafauna loot) were sharp

This makes the weed killer crate more effective since people were
complaining about it being worthless vs vines and flower buds. These
changes give people more options to respond to threats vs plants.

🆑
add: Add a pair of leather gloves to weed control crate
balance: Mobs with the PLANT biotypes (venus flytraps, pod people,
killer tomatoes) are now much weaker vs scythes, goats, and plantbgone.
balance: Plantbgone is now more effective at destroying weeds.
balance: Regular scythes are now a sharp object
fix: Fixed scythes, goats, and plantbgone not affecting flower bud
vines.
fix: Thick and botanical gloves not protecting from thorns
fix: Golems not having pierce immunity from thorns
fix: Runtime where vines tried to spread into null turf
fix: Runtime where null vines that were destroyed were trying to spread
to nearby turfs
soundadd: Add eat food sound when goats eat plants
code: Improved goat targeting code
code: The bane element now accepts `mob_biotypes` bitflags as an
argument.
/🆑

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-03 18:37:34 +00:00
SkyratBot bd02e180c1 [MIRROR] Makes dead metabolization work properly [MDB IGNORE] (#19598)
* Makes dead metabolization work properly

* Update holder.dm

---------

Co-authored-by: RikuTheKiller <88713943+RikuTheKiller@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-03-03 08:24:14 -08:00
SkyratBot fce25b931a [MIRROR] Fixes an issue with nightmare revival, Unit tests some fully heal stuff [MDB IGNORE] (#19599)
* Fixes an issue with nightmare revival, Unit tests some fully heal stuff (#73612)

## About The Pull Request

- Same issue as Ethereals. Owner was `null`ed because the heart was
recreated. I opted for a more permanent solution, that being introducing
a new flag to avoid recreating organs.

- Adds some unit tests for fully heal stuff to make sure it works.

## Why It's Good For The Game

More cases of revival working as expected

## Changelog

🆑 Melbert
fix: Nightmare revival acts less funky - stops it from re-creating the
Light Eater.
/🆑

---------

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

* Fixes an issue with nightmare revival, Unit tests some fully heal stuff

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-03-01 01:15:12 -08:00
Tom f6edbf0b86 [MANUAL MIRROR] Return to Tiny: Reworks heights to use filters, allows spacemen to have varying heights (#72344) (#19451)
* Return to Tiny: Reworks heights to use filters, allows spacemen to have varying heights (#72344)

Re-pr of #66644 with some changes to get it working

![image](https://user-images.githubusercontent.com/51863163/209893337-6a35207b-f097-4fd8-bc51-e66b3273919c.png)

- [x] ~~Huds get cut off~~ Resolved
- [x] ~~Very tall helmets get cut off~~ Resolved
- [x] Hair gets cut off
- [x] ~~Needs optimization before releasing to the world as a pref~~ jk
lol

Look at that fella so cute

🆑 Melbert, That REALLY Good Soda Flavor, FatFat, AndreyGusev
add: Spacemen can now have varying height. (Admin only for now)
add: Dwarfs are now slightly shorter, but look way better.
/🆑

Co-authored-by: Jack LeCroy <3073035+jacklecroy@users.noreply.github.com>

* fix conflict

* clarity

* update rouny

* update screenshots

* Revert "update screenshots"

This reverts commit a5427a5238e574869fe364568b7f043bbd287c79.

* Fixes the dwarf screenshot.

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Jack LeCroy <3073035+jacklecroy@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-02-28 16:27:27 -05:00
SkyratBot 75b68ae504 [MIRROR] Nooartrium pulls your ghost back into your body when it revives you [MDB IGNORE] (#19557)
* Nooartrium pulls your ghost back into your body when it revives you (#73641)

## About The Pull Request

This PR makes nooartrium pull your ghost back into your body when it
revives you.
## Why It's Good For The Game

Leaving the undead soulless would be rather boring, wouldn't it?
## Changelog
🆑
fix: Nooartrium now pulls your ghost back into your body when it revives
you.
/🆑

* Nooartrium pulls your ghost back into your body when it revives you

---------

Co-authored-by: RikuTheKiller <88713943+RikuTheKiller@users.noreply.github.com>
2023-02-26 19:03:51 -05:00
SkyratBot bd0ed9c995 [MIRROR] Fixes non-advanced viruses from being seen in the PANDEMIC [MDB IGNORE] (#19526)
* Fixes non-advanced viruses from being seen in the PANDEMIC (#73613)

## About The Pull Request

Early continue was blocking traits being added to ui data.

Added some sanity to stop some bluescreens.

## Changelog

🆑 Melbert
fix: Premade viruses (GBS, beesease, etc) now show up in the PANDEMIC
again
fix: PANDEMICs should bluescreen less often. Maybe.
/🆑

* Fixes non-advanced viruses from being seen in the PANDEMIC

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-02-25 16:46:45 -08:00
SkyratBot 45439f2d93 [MIRROR] [NO GBP] Hotfixes lungless oxyloss immunity, and lungless plasmamen being able to be healed by salbutanol etc. [MDB IGNORE] (#19339)
* [NO GBP] Hotfixes lungless oxyloss immunity, and lungless plasmamen being able to be healed by salbutanol etc.

* resolve conflicts

* Update damage_procs.dm

---------

Co-authored-by: Bloop <vinylspiders@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
2023-02-21 01:15:20 -08:00
SkyratBot ed09da54b9 [MIRROR] Fixes being able to breathe in space, fixes any lingering biotype related damage issues [MDB IGNORE] (#19206)
* Fixes being able to breathe in space, fixes any lingering biotype related damage issues

* Update damage_procs.dm

* Update damage_procs.dm

---------

Co-authored-by: Bloop <vinylspiders@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
2023-02-21 00:42:28 -08:00
SkyratBot a4a30122d6 [MIRROR] [NO GBP] Fixes oculater not working... woops [MDB IGNORE] (#19466)
* [NO GBP] Fixes oculater not working... woops (#73533)

## About The Pull Request

I may or may not have neglected the fact that oculater can't be very low
purity anymore due to my own revamp prior.
So uh, this makes it work like most inverse chemicals, getting better
the higher the purity is.
## Why It's Good For The Game

Bug fix good.
## Changelog
🆑
fix: Oculater works again.
/🆑

* [NO GBP] Fixes oculater not working... woops

---------

Co-authored-by: RikuTheKiller <88713943+RikuTheKiller@users.noreply.github.com>
2023-02-20 21:09:34 -08:00
Tom 2e2c8b7178 [MANUAL MIRROR] Fixes unreachable check and improves code (#72399) (#19454)
[No GBP] Fixes unreachable check and improves code (#72399)

Co-authored-by: Salex08 <33989683+Salex08@users.noreply.github.com>
2023-02-20 21:04:27 -08:00
SkyratBot f51b1668b9 [MIRROR] Fixes broken holy water flask looking like a broken beer bottle [MDB IGNORE] (#19460)
* Fixes broken holy water flask looking like a broken beer bottle (#73504)

Adds new inhand sprites for the broken holy flask, fixes broken holy water flask looking like a broken beer bottle and unholy flasks now use a blackened holy flask inhand sprite instead of the beaker one.

* Fixes broken holy water flask looking like a broken beer bottle

---------

Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-02-20 12:09:09 +00:00
SkyratBot a2cb8c5c0c [MIRROR] Completely removes do_mob and do_after_mob [MDB IGNORE] (#19126)
* Completely removes do_mob and do_after_mob

* update modular

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-02-19 19:19:50 +00:00
SkyratBot 18401f5a8a [MIRROR] Fixes Seiver jank and bad code [MDB IGNORE] (#19437)
* Fixes Seiver jank and bad code (#73496)

## About The Pull Request
Seiver is currently way stronger than it was intended due to bad code.
Also the comments didn't make any sense whatsoever and were often just
wrong.

This nerfs hot seiver significantly - it was often almost 3x stronger
than intended, able to reach tox healing levels of 17.7 per tick. With
the change, it maxes out at 6.7 tox healing per tick.
## Why It's Good For The Game
5u hot seiver can no longer heal 442 tox damage over less than a minute
## Changelog
🆑
fix: seiver no longer applies purity and delta time twice
code: made seiver code much less confusing
/🆑

* Fixes Seiver jank and bad code

---------

Co-authored-by: Roryl-c <5150427+Roryl-c@users.noreply.github.com>
2023-02-18 23:18:54 -08:00
Shadow-Quill 69f1515276 Reagent containers AltClick update (#19272)
* Reagent containers with two settings now just swap on altclick

* suggested change
2023-02-14 13:24:52 +00:00
Bloop dfa6284541 [MODULAR] Fixes some buggy reaction behavior by further modularizing liquid code (#19244)
* Fixes the buggy reaction behavior by further modularizing liquid code

* removed another unneeded skyrat edit

* These are actually not needed after all.
2023-02-10 15:35:22 +00:00
SkyratBot 78b465448f [MIRROR] Fixes force-drinking being instananeous, and a few others [MDB IGNORE] (#19210)
* Fixes force-drinking being instananeous, and a few others

* Update mobs.dm

* fix conflicts

* Update mobs.dm

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-02-10 03:09:58 +00:00
lessthanthree 224e8ef3f6 [MANUAL MIRROR] Fixes plasmamen dying from liver damage when consuming plasma (#19074)
Fixes plasmamen dying from liver damage when consuming plasma & other organic toxins, fixes plasma fixation for plasmamen and other species (#72644)

## About The Pull Request

(edited for brevity---AS BEST I COULD, this turned into a lot more fixes
than I set out to do)

Instead of actually removing and metabolizing plasma in the liver,
plasmamen were having plasma removed in a special handle_chemicals proc.

The issue with this is that the liver's on_life proc would still fire
off alongside it, detecting reagents in the mob (because
handle_chemicals removes them little by little, at the same rate as the
liver does). And because the liver code sees it as a toxin, it takes
damage until it fails, leading to death as described in #72229.

Not actually metabolizing plasma also led to another issue, as mentioned
in #61424.

The solution after much faffing around ended up being to move the actual
reagent removal from handle_chemicals to the liver code, and to compare
a toxin's affected_organtype to the liver's 'status' var to check if the
toxin can damage the liver. There was currently only an ORGAN_ORGANIC
and ORGAN_ROBOTIC defined for this, so I added ORGAN_MINERAL for plasma
livers.

It still works as before, but now the reagent will actually get all the
metabolism procs called on it and be removed by the liver. And mobs with
mineral livers (currently only plasmamen) do not suffer organ failure
from processing organic toxins.

Plasma fixation itself also needed some TLC, as it was likely written
before liver damage was a thing. A lot of this comes down to rogue
livers operating independently of their species now that I think about
it...

Fixed it so you no longer take liver damage from injected/consumed
plasma when under the effects of the stage 4+ virus by making use of the
new PLASMA_LOVER_METABOLISM liver trait.

---

On top of that made it so that breathing in plasma through internals
also contributes to plasma fixation healing. This is a slight buff to
virology (especially for plasmamen) but it didn't seem busted or
anything from my testing. Can lead to some interesting subtle approaches
to healing for virologists as they can use internals rather than just
flooding rooms with plasma...

Some notes: 

- due to the way lungs are coded, non-plasma breathing species take a
significant amount of tox damage from breathing plasma through internals
in most cases and still need the right gas to be present so as to not
asphyxiate.
- During my testing this damage did not get healed fast enough to make
it viable for humans to wear plasma internals as found in spawned tanks
and such.
- I did not play around with creating custom internals mixes of O2 and
plasma but in theory that could possibly allow humans to heal faster
than the tox damage is applied. I think the tox damage on breath is
based on the amount of mols in the tank so perhaps a small amount of
plasma in the mix could work.
- As it stands the heal is very slight at 4kpa which is the typical tank
pressure for plasma internals. Going up to 15kpa can result in a
stronger heal (on par with injecting plasma) but going further offers no
additional benefit, and internals will be consumed much more quickly.
- This heal bonus is multiplicative with the rest, but from my testing
it still stays within reasonable numbers even with all 3 sources going
at once so as to not feel broken.
- Plasma fixation does not heal organ damage, but if I could add that in
easily enough should it be wanted.

The numbers themselves can be easily tweaked if desired, should people
find it too strong or what have you!

## Why It's Good For The Game

Fixes #72229
Fixes #61424
Fixes #70460 --not sure if this PR fixed it but I was able to infect
monkeys and plasmamen with a virus containing Inorganic Biology in my
testing, so this may be closed

Plasmamen dying from plasma is a travesty and reparations must be made.


## Changelog

🆑
fix: plasmamen no longer can suffer liver failure from injecting
themselves with plasma (unless they have a human liver for some reason).
fix: a person who is infected with a plasma fixation disease can no
longer can suffer liver failure from injecting themselves with plasma.
fix: plasmamen no longer can suffer liver failure from consuming other
organic toxins, which they are not supposed to be affected by.
fix: plasma fixation heal-through-inject-or-consumption now works for
plasmamen by letting the metabolism procs take care of removing it from
their systems.
fix: hot ice now has the same wound-healing and nontoxic properties as
plasma to plasmamen, since it is described as "frozen plasma". It is
also nontoxic to plasma fixation virus sufferers.
fix: plasma breathed through internals now contributes to the healing
amount from plasma fixation.
/🆑

Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-02-03 20:01:55 -05:00
SkyratBot ebe38543ff [MIRROR] Adds nutriment factor to liquid gibs. [MDB IGNORE] (#19052)
* Adds nutriment factor to liquid gibs. (#73033)

## About The Pull Request

Over the years I've heard quite a few lizard players scratch their heads
in confusion due to the lack of gibs filling you up. I gave it a fairly
low value of 2 so people don't end up trying to power game it.

## Why It's Good For The Game

Adding an alternative use to gibs is always nice, at the moment it's
mostly just used for soap and cytology (Which barely anyone does.)

## Changelog

🆑
balance: Gibs now provide a small amount of nutriment.
/🆑

* Fixes the modular uses of liquid gibs

* Fixes an error that somehow slipped through.

---------

Co-authored-by: carshalash <carshalash@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-02-03 16:59:09 -05:00
SkyratBot 1fe0d145a3 [MIRROR] Converts blindness and nearsightedness to status effects, scratches some VERY dumb blindness handling that resulted in mobs becoming "incurably" blind [MDB IGNORE] (#18760)
* Converts blindness and nearsightedness to status effects, scratches some VERY dumb blindness handling that resulted in mobs becoming "incurably" blind

* Fixes the conflicts and makes shit compile!

* Fixes other things that didn't show up because I hadn't updated

* Fixes the lints.

* Okay NOW it's ready (please don't add anything else that touches blindness I beg you)

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-02-03 16:08:32 -05:00
SkyratBot dd0dad4e5e [MIRROR] Cleans Up (a few) Single-Lines Over 300 Characters [MDB IGNORE] (#19123)
* Cleans Up (a few) Single-Lines Over 300 Characters (#73124)

These were just super long picks with multiple strings/file
references/whatever, let's convert it into a list of picks, maybe do
some cool proc stuff, just make it look NICER.

I found it by doing `rg '.{300,}' code > output.txt` from the root of my
repository (used ripgrep because that's what i had at the time), and you
can see a copy of the results I got here:
https://github.com/tgstation/tgstation/files/10553651/output.txt in case
you wanna take a stab at it. I didn't filter by .dm code file, so
there's a few bulky JSONs and MD sections, but maybe those are good
candidates for splitting up the wording or otherwise prettifying the
JSON? Unsure.

* Cleans Up (a few) Single-Lines Over 300 Characters

---------

Co-authored-by: san7890 <the@san7890.com>
2023-02-03 16:00:44 +00:00
SkyratBot e4fa713b67 [MIRROR] Fixes water bottle cap overlays & adds an opening sound [MDB IGNORE] (#19110)
* Fixes water bottle cap overlays & adds an opening sound (#73135)

## About The Pull Request

Watter bottle caps are now visible and create a pop sound when opened.
Couldn't find a sound effect for closing the cap though.

Fixes #72927

## Changelog
🆑
fix: Water bottle cap overlays & missing opening sound
/🆑

* Fixes water bottle cap overlays & adds an opening sound

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
2023-02-02 16:15:24 +00:00
SkyratBot 55863138fc [MIRROR] EMPs require aluminum, but it doesn't contribute to the total size of the EMP [MDB IGNORE] (#19101)
* EMPs require aluminum, but it doesn't contribute to the total size of the EMP (#73081)

## About The Pull Request

EMPs now require aluminum. For example, making a 4 heavy range & 7 light
range EMP used to take 100 iron and 100 uranium, now it takes 100 iron,
100 uranium, and 100 aluminum. The aluminum doesn't contribute to a
higher EMP explosion despite making more of the final product in the
reaction.

## Why It's Good For The Game

AI is on the weak side right now, with every department being able to
quickly produce EMPs by depositing iron and uranium from protolathes and
grinding them. I chose aluminum as it still makes the recipe very
possible ghetto (grind cans for 10 aluminum each), but it isn't
instantly achievable from protolathes either. Historically, this was far
less of a problem, as each department didn't have its own big supply of
mats.

## Changelog
🆑
balance: EMP requires aluminum, but the aluminum doesn't contribute to a
bigger EMP size.
/🆑

* EMPs require aluminum, but it doesn't contribute to the total size of the EMP

---------

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2023-02-02 16:08:57 +00:00
SkyratBot 9ae3d8e0b7 [MIRROR] Increases precision of purity scanners and replaces "the beaker" with name of scanned container [MDB IGNORE] (#19024)
Increases precision of purity scanners and replaces "the beaker" with name of scanned container (#73012)

## About The Pull Request
Fixes incorect display of purity. Before this change purity on image
below would be rounded to 100%.

![image](https://user-images.githubusercontent.com/38228316/215264067-44ffc90a-e274-495f-9f5e-c4c5aed29d7b.png)


In practice this makes purity scanners very unlikely to round purity up
to 1 when purity is not 1

Also replaces "the beaker" with name of scanned container in handheld
chemical analyzer

![image](https://user-images.githubusercontent.com/38228316/215264506-98c4db7c-7f3b-46bb-a9fd-92850e147b53.png)
## Why It's Good For The Game
Less lying in scans
## Changelog
🆑
fix: Precision of purity scanners has been increased
/🆑

Co-authored-by: Holoo <38228316+Holoo-1@users.noreply.github.com>
2023-01-31 02:04:48 +00:00
SkyratBot 69bd792a4c [MIRROR] Mint can gib obese people again [MDB IGNORE] (#18987)
Mint can gib obese people again (#72970)

## About The Pull Request

Changes minttoxin(a toxin) to mintextract(a food).

## Why It's Good For The Game

Fixes https://github.com/tgstation/tgstation/issues/72969

The chef's mint is intended to gib fat people. Due to
https://github.com/tgstation/tgstation/pull/70764, liver functionality
was reworked so that instead of being purged rapidly, toxin's in a mobs
system with 3 units or less have no effect. Since the chef's mint only
has 2 units of mint toxin, it's intended functionality is impossible
under normal circumstances.

By changing the reagent type from toxin to consumable, it restores the
ability to gib.

## Changelog

🆑
fix: Mint Toxin(a toxin) has been changed to Mint Extract(a food). The
chef's mint can once again gib, fatties beware.
/🆑

Co-authored-by: the-orange-cow <76538214+the-orange-cow@users.noreply.github.com>
2023-01-28 20:17:09 +00:00
SkyratBot bf31be8946 [MIRROR] Fixes the holy water flask looking like a beer bottle [MDB IGNORE] (#18993)
Fixes the holy water flask looking like a beer bottle (#72979)

## About The Pull Request

Adds new inhand sprites for the holy water to fix its current
appearance, which is a beer bottle.

## Why It's Good For The Game

Chaplains are supposed to be _covertly_ alchoholic. Makes the holy flask
look as it's supposed to when held so the chaplain can drink their holy
spirits in peace.


![image](https://user-images.githubusercontent.com/13398309/214944917-92647a63-0410-4d5d-a608-143b09b28c23.png)


![image](https://user-images.githubusercontent.com/13398309/214944958-1eaf0df4-f151-4ba6-b859-d93fe352c5ea.png)


![image](https://user-images.githubusercontent.com/13398309/214945001-0ed2544e-9b02-4710-879e-da032ab0fdd8.png)


## Changelog

🆑
imageadd: new inhand sprites for the holy flask
fix: chaplains will no longer look like they are carrying a beer bottle
when holding their holy flask
/🆑

Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-01-28 20:15:37 +00:00
GoldenAlpharex 5ea3abd2c1 Hemophagus, The Hemophage Revamp, Part Three: A Taste For Blood (#18292)
* Adds the BLOODY food type

* Adds some Hemophage foods

* Adds recipes for the blood-based foods

* Adds the define I forgot to include in the last commit

* Adds the Bloodshot drink!

* Adds the Bloodshot FOR REAL THIS TIME

* Ticks the files that needed to be ticked

* Gives the new REAGENT_BLOOD_REGENERATING to all the blood-regenerating reagents + nerfs Bloody Mary to a third of its blood regeneration

* Adds a new Taste Suppressor reagent, making you unable to taste anything while it's in your system

* Makes cup and condiment subtypes send a COMSIG_GLASS_DRANK signal to the drinker upon being drank from

* Makes it so Hemophages can only eat and drink things that are going to regenerate their blood levels (BLOODY foodtype and reagents with the REAGENT_BLOOD_REGENERATING flag)

* Okay now it'll compile

* Fixes the bloodshot missing its custom glass appearance

* Fixes a compile issue

* Added icons for the Hemophage and Teshari Food cooking tabs, and the Bloody food type

* Fixes the name of make_microwaveable()

* Fixes the hemophage actions not having their organs displayed

* Updates some list formatting.

* Introduces chemical_flags_skyrat to avoid a few non-modular edits and to ensure easier maintainability
2023-01-25 12:20:05 -08:00
SkyratBot fa973dc5fb [MIRROR] Documents all of the variables on /obj/item/reagent_containers [MDB IGNORE] (#18929)
Documents all of the variables on /obj/item/reagent_containers (#72854)

## About The Pull Request

I noticed a bunch of these variables weren't documented, and I know more
or less what they all do, so woe documentation be upon ye.
## Why It's Good For The Game

Better for future coders to understand wtf is going on inside of reagent
containers
## Changelog
These changes are not player facing

Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
2023-01-24 14:30:52 -08:00
SkyratBot 7a035ba355 [MIRROR] Adds the Mississippi Queen, a new drink [MDB IGNORE] (#18922)
Adds the Mississippi Queen, a new drink (#72780)

## About The Pull Request
Adds the infamous Mississippi Queen, a drink so spicy it'll make you
start seeing things.

![palm-export](https://user-images.githubusercontent.com/66052067/213032895-476521ae-844c-446f-8478-10b76967853b.png)
## Why It's Good For The Game

![DeficientGenuineGlowworm-size_restricted](https://user-images.githubusercontent.com/66052067/213033006-bf3e1a03-779b-4afb-9948-4fc91e718298.gif)
## Changelog
🆑
add: Bartenders can now mix up the Mississippi Queen for those willing
to take the plunge.
/🆑

Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
2023-01-23 17:07:15 -05:00
SkyratBot 63d52ef655 [MIRROR] You can no longer pull out pH Indicator Strips from across the room (COOL GIF INSIDE) [MDB IGNORE] (#18900) 2023-01-23 10:27:03 -08:00