Commit Graph

1701 Commits

Author SHA1 Message Date
SkyratBot
7f29afc8ec [MIRROR] Refactors species mutanthands into human component [MDB IGNORE] (#19355)
* Refactors species mutanthands into human component

* wew

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 02:39:41 +00:00
SkyratBot
257d63f360 [MIRROR] Fixes some invisible inhands from the transforming component [MDB IGNORE] (#19721)
* Fixes some invisible inhands from the transforming component (#73807)

## About The Pull Request

The original issue caused by #70037
Esword issue caused by #73716

Originally the transforming component did not override the inhand icon
state of the the item on its own (instead putting the onus on the item
itself if they wanted unique behavior). It was changed to always update
inhand icon state, most of which don't have one

I don't really like this fix, it should be explicit "I want inhand to
change" and not default, but this will work for now

Also the PR that fixed the Jaws issue didn't actually set the var they
created

Fixes #73805
Fixes #73711 (Actually)

## Why It's Good For The Game

Invisible sword bad

## Changelog

🆑 Melbert
fix: Fixed a eswords, some tools, and some other misc. items from being
invisible while extended / active
fix: Teleshields and other misc items not extending in hand when active
fix: Switchblades click on extend again
fix: Pendrivers click on extend
/🆑

* Fixes some invisible inhands from the transforming component

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-03-08 11:33:50 +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
f194b57feb [MIRROR] Basic Mob Spiders II: Elements [MDB IGNORE] (#19268)
* Basic Mob Spiders II: Elements

* Update giant_spider.dm

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
2023-03-01 11:57:49 -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
SkyratBot
ff1954e3b1 [MIRROR] Fixes strong arm implant bugs [MDB IGNORE] (#19551)
* Fixes strong arm implant bugs (#73605)

## About The Pull Request

Fixes strong arm implant introduced in
https://github.com/tgstation/tgstation/pull/73043 stunlocking people and
stacking with hulk attacks

## Why It's Good For The Game

Stunlocking or any other negative effects from throwing were not an
intended thing, this PR fixes it.

Stacking with hulk attacks also wasn't an intended feature.

## Changelog
🆑
fix: Fixes strong arm implant attacks stunlocking people
fix: Strong arm implant attacks no longer stack with hulk attacks
/🆑

---------

Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>

* Fixes strong arm implant bugs

---------

Co-authored-by: SuperSlayer <91609255+SuperSlayer0@users.noreply.github.com>
Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>
2023-02-26 00:35:42 -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
5b0b115d16 [MIRROR] Adds new combat cybernetic implant [MDB IGNORE] (#19473)
* Adds new combat cybernetic implant (#73043)

## About The Pull Request

Adds arm empower implant to the game - a cybernetic implant that will
make your punches deal 13 damage(normal human attacks deal between 1 and
10 damage), and throw your target away(doesn't work if you are lying
down) like a baseball bat does. It is inserted into your arm, and it
works only for the arm it is inserted into.

As an EMP effect it would cause you to fall under your target, or get
paralyzed due to muscle spasms.

## Why It's Good For The Game

Expands the implant system and adds more things to stuff into yourself
if you want to roleplay as a cool robo man.

## Changelog

🆑
add: Added a new cybernetic implant that increases punch damage of a
human
/🆑

---------

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

* Adds new combat cybernetic implant

---------

Co-authored-by: SuperSlayer <91609255+SuperSlayer0@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-02-21 00:29:21 +00:00
SkyratBot
92397eba00 [MIRROR] Moth Wing Reconstruction surgery works [MDB IGNORE] (#19423)
* Moth Wing Reconstruction surgery works (#73486)

## About The Pull Request

Moth wings only allow themselves to be healed if the proc is called with
HEAL_ORGAN or HEAL_LIMB
So we just make the surgery force healing
## Why It's Good For The Game

Resolves https://github.com/tgstation/tgstation/issues/73485
## Changelog
🆑
fix: Moth wings can now correctly be healed
/🆑

* Moth Wing Reconstruction surgery works

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-02-18 14:09:27 -08:00
SkyratBot
08ef305add [MIRROR] Fixes ethereal revival not giving traumas [MDB IGNORE] (#19419)
* Fixes ethereal revival not giving traumas (#73484)

## About The Pull Request

All that needed to be done was `revive` be moved to the end of the
chain, as it was responsible for `null`ing the ethereal heart references
/ causing the runtimes.

While I was here, I fixed a few other issues - like, using
`visible_messages` to start the process was not a good idea, as often
you are blind from unconsciousness when that message happens.

## Why It's Good For The Game

Fixes #71630

Downsides are good

## Changelog

🆑 Melbert
fix: Ethereal revival causing traumas again.
/🆑

* Fixes ethereal revival not giving traumas

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-02-18 14:07:54 -08:00
SkyratBot
dd9aab77fa [MIRROR] Refactor cursed heart [MDB IGNORE] (#19337)
* Refactor cursed heart (#73301)

## About The Pull Request

Changes how the underlying logic for cursed hearts work, notably when
the organ is inserted is resets the last pump to the current world time
which means that you won't get two free pump misses on organ insertion
## Why It's Good For The Game

Should resolve #73234

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

* Refactor cursed heart

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
2023-02-14 15:26:34 -08:00
SkyratBot
e70d3fd63c [MIRROR] Fixes changing species causing you to drop held items, Fixes loss of right arm not applying typical "lost arm" effects [MDB IGNORE] (#19323)
* Fixes changing species causing you to drop held items, Fixes loss of right arm not applying typical "lost arm" effects (#73356)

## About The Pull Request

`drop_limb(special = TRUE)` will now no longer drop held items. This can
cause issues if people are misusing `special`, but if people are not
then it's fine, as it's supposed to be replaced just after.

Also cut out some copy-pasta from arm and leg `drop_limb`. Since they're
one unified type, they no longer needed to carry across both. This fixed
another bug

Also also, I was able to move the held index check out of core bodypart
code, and down to arm level. This MAY have side effects, which I'm
observing for.

## Why It's Good For The Game

Changing species let you drop no-drop items, super lame

## Changelog

🆑 Melbert
fix: Changing species no longer drops all held items
fix: Losing your right hand not un-cuffing you or dropping your gloves
/🆑

* Fixes changing species causing you to drop held items, Fixes loss of right arm not applying typical "lost arm" effects

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-02-13 13:54:14 -08:00
SkyratBot
22dee84d90 [MIRROR] Makes nightmares unable to be pepersprayed [MDB IGNORE] (#19119)
* Makes nightmares unable to be pepersprayed

* resolve conflict

---------

Co-authored-by: SuperSlayer <91609255+SuperSlayer0@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-02-12 02:34:55 -08:00
SkyratBot
431ad4cb25 [MIRROR] correct the spelling of some limb disable messages [MDB IGNORE] (#19199)
* correct the spelling of some limb disable messages (#73260)

## About The Pull Request

fixes the spelling with an epic webedit

## Why It's Good For The Game

spelling uhh good

## Changelog
🆑
spellcheck: The message given when a limb is disabled has had its
spelling corrected.
/🆑

* correct the spelling of some limb disable messages

---------

Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-02-07 03:22:47 +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
46f4ccc406 [MIRROR] Revert "Underwear Update (Sanity edition)" [MDB IGNORE] (#19077)
* Revert "Underwear Update (Sanity edition)"

* actually revert

---------

Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-02-03 01:16:19 +00:00
SkyratBot
191cc0cbee [MIRROR] Underwear Update (Sanity edition) [MDB IGNORE] (#19025)
Underwear Update (Sanity edition) (#73010)

## About The Pull Request
Two changes to underwear/undershirts/socks work:

Randomly spawned species will not be given underwear unless they are a
human, felinid, dullahan, or vampire.
This does not effect character creation,

Losing your torso will cause you to loose your undershirt and
underpants. You can put more on at a dresser if you'd like.
Losing a leg will make you loose your socks (sad)
## Why It's Good For The Game
I tried to spawn in some naked android for an event and they had
underwear on and it made me mad. This problem is consistent about just
about every race expect for felinids and humans,
Also when a human gets auged, they now get to show off their sexy new
robot chest without going to a dresser. I think this kinda stuff should
have been in since day one,
## Changelog
🆑 itseasytosee
del: You are less likely to see underwear in places it logically should
not be.
/🆑

Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
2023-02-02 16:13:12 +00:00
SkyratBot
b8f850876d [MIRROR] Refactor: Carp Infusion & Lungs [MDB IGNORE] (#19004)
Refactor: Carp Infusion & Lungs (#71940)

## About The Pull Request
Recently before merging PR #71867 I failed to account for the carp lungs
and spacewalk trait in my testing (I did not try to fly across space)
and so I did not notice other bugs. This PR fixes the bugs/oversights
which I missed in my prior PR. Fixes #72678

I have completed a refactor of
`/obj/item/organ/internal/lungs/proc/check_breath` and
`/mob/living/carbon/proc/check_breath` because I noticed that bugs
within the gas alert system (stuck alerts) were caused by their improper
execution, and the code was written in a hard-to-understand style.

This PR also includes a small adjustment to status indicators which
allows you to add an already existing timed indicator without
overwriting it; it instead resets the existing timeout.

Here is a granular list of bugs:

- Bug A: Causes the spacewalk trait to not be applied to the mob, and is
caused by a minor developer oversight in
`/datum/status_effect/organ_set_bonus/carp/enable_bonus()` wherein it
attempts to add `TRAIT_SPACEWALK` to the status effect rather than to
the Mob.
- Bug B: Causes the carp lungs to suffocate you in space, because that
behavior is unimplemented.
- Bug C: Causes the gas alert indicators ("Too much O2!" etc) to stay
stuck to the screen if `check_breath` or other procs fail to remove
them. This is caused by the way `check_breath` early-returns without
executing the necessary logic to manage its gas alerts.
- Bug D: The part of `lungs/proc/check_breath()` that removes consumed
miasma from the air is only doing so when helium is also present and
consumed.

This PR contains fixes for these bugs:

- Fix A: Added the spacewalk trait to the mob, allowing the trait to
enable space flight as expected.
- Fix B: Added `TRAIT_SPACEBREATHING` as a lungs trait, which is used in
`check_breath`, which allows the mob to "breathe" in space or vacuum,
but suffocate when breathing unsuitable gas/O2.
- Fix C: Changed the proc `/mob/proc/throw_alert` such that, when
throwing an alert which already exists, it resets the timeout of the
existing alert rather than replacing it.
- ~Fix C2: Added a 10 second timer to gas alerts. If something fails to
clear them from the screen, they will now clear themselves after 10
seconds.~
- Fix D: Refactored `/mob/living/carbon/proc/check_breath` and
`obj/item/organ/internal/lungs/proc/check_breath` to run the necessary
logic for resetting gas side effects and gas alerts.
- Removed an early-return which was causing the `check_breath` functions
to skip most of their critical sections.
- Fixed the part of `lungs/proc/check_breath()` that removes consumed
miasma from the air, allowing it to remove the correct amount when
expected to.
- Added conditionals to check for `TRAIT_SPACEBREATHING` on lungs to
bypass suffocation.
- Added a fall-back to a default "flyweight" breath
`datum/gas_mixture/empty_breath` to Carbons and lungs, used in in the
event that either gets a null `breath`.
- Renamed `obj/item/organ/internal/lungs/proc/handle_too_little_breath`
to `handle_suffocation` and refactored it to handle more aspects of
suffocation that was originally being handled inline.
- Added `/obj/item/organ/internal/lungs/proc/breathe_gas_volume` to
`check_breath` to replace lots of inlined logic which handles
consuming/exchanging gases (O2 for CO2, etc).

## Why It's Good For The Game

Shortly after PR #71867 was merged, we noticed the carp lungs and
spacewalking trait were not working as expected when doing the Space
Carp DNA infusion. This PR fixes the bug and allows you to spacewalk
like a Space Carp again.

This PR also adjusts the gas alert indicators so they don't get stuck to
the screen as often. This PR also fixes a bug that was causing timed
alerts to overwrite each other when it was unnecessary to do so, and
helps prevent their on-throw animation from being replayed when not
appropriate.

I have included an intermediate refactor of
`/mob/living/carbon/proc/check_breath` and
`obj/item/organ/internal/lungs/proc/check_breath` in this PR, and I have
tried to improve readability/maintainability while correcting critical
oversights in the ways breathing was working. After my changes are
merged, I will likely work on another refactor to delete duplicated
sections of code between Carbons and lungs, as much of it is 99%
identical.

## Changelog

🆑 A.C.M.O.
refactor: Refactored breathing, mostly check_breath, for Carbons and
lungs organ.
add: Added the space-breathing trait for lungs.
fix: Fixed the Space Carp DNA infusion to apply the Spacewalk trait,
allowing you to fly through space.
fix: Fixed the Space Carp lungs, allowing you to breathe in space with
them.
fix: Fixed gas status indicators re-playing their on-throw animation
when they are refreshed.
fix: Fixed gas status indicators getting stuck to the screen in some
situations.
fix: Fixed gas side effects, such as euphoria and hallucinations, to
reset when expected.
fix: For Humans, fixed Miasma only being consumed from the air when
Helium is present.
/🆑

---------

Co-authored-by: Dani Glore <fantasticdragons@gmail.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-01-31 02:17:34 +00:00
SkyratBot
c5ca08fd01 [MIRROR] Adds spaces around logical operators [MDB IGNORE] (#18776)
* Adds spaces around logical operators

* Update code/modules/admin/verbs/admingame.dm

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-01-21 22:16:43 -08:00
SkyratBot
aae3666cd6 [MIRROR] Makes nerve splicing surgery reduce stamina damage [MDB IGNORE] (#18837)
Makes nerve splicing surgery reduce stamina damage (#72661)

## About The Pull Request

Makes nerve splicing surgery also reduce stamina damage by 20% (amount
of stun/stamina reduction can be changed if requested).

## Why It's Good For The Game

Most of stun sources now come from stamina damage, so this surgery is
kinda useless in most cases. This PR makes it more usefull in the
current combat system, while not making it too OP.

## Changelog

🆑
balance: Nerve splicing surgery now additionaly reduces stamina damage
taken by 20%
/🆑

Co-authored-by: SuperSlayer <91609255+SuperSlayer0@users.noreply.github.com>
2023-01-20 12:06:56 -08:00
SkyratBot
97499a276e [MIRROR] Limb-based damage descriptions fixes and code improvement [MDB IGNORE] (#18703)
* Limb-based damage descriptions fixes and code improvement (#72236)

## About The Pull Request

The limb-based damage descriptions added by #71635 didn't work properly,
as get_majority_bodypart_damage_desc() didn't return the correct values.
I rewrote the proc altogether and changed the format of the damage
description vars (formerly burn_damage_desc and brute_damage_desc). They
are now a single associative list with each description being indexed by
it's respective damage type DEFINE
The proc now returns the correct description, avoids the duplicated code
between the brute and burn sections and can support any number of damage
types. To that end I also added Clone damage support, although no limbs
use a special description for the moment.

Oh, I also gave the robotic damage descriptions to all the robotic
limbs, for some reason only the left robot arm had it.
## Why It's Good For The Game

It makes the system function properly and correctly labels robotic
limbs.
On the side of the proc, it's more flexible this way and avoids the
redundancy. I am aware, however, that I'm using a lot of associative
lists. I'll rewrite it to reduce them if memory is deemed significant
concern in this context. It's, admittedly, probably a bit overengineered
for what it is.
## Changelog
🆑
fix: the examine text for damage now properly uses the most common
examine text out of all the mob's limbs
fix: all robotic limbs now have the robotic damage descriptions
(charring, denting)
code: improved the get_majority_bodypart_damage_desc() proc to reduce
redundancies and add support for limb-based cellular damage
/🆑

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

* Limb-based damage descriptions fixes and code improvement

Co-authored-by: A miscellaneous Fern <80640114+FernandoJ8@users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@ users.noreply.github.com>
2023-01-19 15:32:47 -05:00
SkyratBot
a2832df45e [MIRROR] Uses RegisterSignals for lists of signals, instead of RegisterSignal. [MDB IGNORE] (#18769)
* Uses RegisterSignals for lists of signals, instead of RegisterSignal. (#72581)

## About The Pull Request

Uses RegisterSignals instead of RegisterSignal when registering to a
list of signals.

## Why It's Good For The Game

Less error messages, RegisterSignals is meant to be used for lists.

## Changelog

Nothing player-facing.

* Uses RegisterSignals for lists of signals, instead of RegisterSignal.

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-01-19 15:22:58 -05:00
Nerevar
7410a85103 [Preferably][No GBP]Reintroduces Snail Changes (#18814)
* thanks fuzwuz

* wow shit

Co-authored-by: Snakebittenn <12636964+Snakebittenn@users.noreply.github.com>
2023-01-19 14:36:04 -05:00
SkyratBot
522e9e9818 [MIRROR] Improves Damage Detection for Maintenance adapted eyes. [MDB IGNORE] (#18770)
* Improves Damage Detection for Maintenance adapted eyes. (#72700)

## About The Pull Request

Fixes the eyes by using the code timothymtorres suggested.

Changes an IF check to better detect light and apply damage to
maintenance adapted eyes.

fixes #59285

## Why It's Good For The Game

Fixes a buggy light sensitivity issue.

## Changelog

🆑
fix: improved maintenance eyes light detection.
/🆑

* Improves Damage Detection for Maintenance adapted eyes.

Co-authored-by: Mey-Ha-Zah <tomboxallghss@gmail.com>
2023-01-17 04:38:38 +00:00
SkyratBot
2785d37cf0 [MIRROR] Cutting the Burdened Cheese Part 1: Removes free burden points from removing unnecessary or cosmetic organs. [MDB IGNORE] (#18493)
* Cutting the Burdened Cheese Part 1: Removes free burden points from removing unnecessary or cosmetic organs. (#71938)

Burdened organs now only count for the main organs only. Cyberimplants
don't count, alien organs don't count, etc. This is because someone
could get a bunch of extra organs, and then take the burdened sect and
remove them for free burden points.

Useless organs for species also do not count (stomachs given to species
that do not hunger, for instance)

Removes the error on burden points clamping on negative values. This can
happen when someone previously disabled takes burden sect.

Cheese is being used to bypass the unique gameplay goals burdened sect
provides. Will throw another pr when fikou finishes bat mutants ;)

🆑
fix: Removed some cheese strategies from burdened sect.
/🆑

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

* Modular!

* Aaaaaa

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2023-01-17 14:06:18 +13:00
SkyratBot
25f4961156 [MIRROR] Refactors memories to be less painful to add and apply, moves memory detail / text to memory subtypes. Adds some new memories to demonstrate. [MDB IGNORE] (#18487)
* Refactors memories to be less painful to add and apply, moves memory detail / text to memory subtypes. Adds some new memories to demonstrate.  (#72110)

So, a huge issue with memories and - what I personally believe is the
reason why not many have been added since their inception is - they're
very annoying to add!

Normally, adding subtypes of stuff like traumas or hallucinations are as
easy as doing just that, adding a subtype.

But memories used this factory argument passing method combined with
holding all their strings in a JSON file which made it just frustrating
to add, debug, or just mess with.

It also made it much harder to organize new memories keep it clean for
stuff like downstreams.

So I refactored it. Memories are now handled on a subtype by subtype
basis, instead of all memories being a `/datum/memory`.

Any variety of arguments can be passed into memories like addcomponent
(KWARGS) so each subtype can have their own `new` parameters.

This makes it much much easier to add a new memory. All you need to do
is make your subtype and add it somewhere. Don't need to mess with jsons
or defines or anything.

To demonstrate this, I added a few memories. Some existing memories had
their story values tweak to compensate.

Makes it way simpler to add new memories. Maybe we'll get some more fun
ones now?

🆑 Melbert
add: Roundstart captains will now memorize the code to the spare ID
safe.
add: Traitors will now memorize the location and code to their uplink.
add: Heads of staff winning a revolution will now get a memory of their
success.
add: Heads of staff and head revolutionaries who lose their respective
sides of the revolution also get a memory of their failure.
add: Completing a ritual of knowledge as a heretic grants you a quality
memory.
add: Successfully defusing a bomb now grants you a cool memory. Failing
it will also grant you a memory, though you will likely not be alive to
see it.
add: Planting bombs now increase their memory quality depending on how
cool the bomb is.
refactor: Memories have been refactored to be much easier to add.
/🆑

* Modular!

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2023-01-17 12:51:58 +13:00
SkyratBot
fadc04eb93 [MIRROR] Adds surgery for fixing ears/hearing. [MDB IGNORE] (#18657)
* Adds surgery for fixing ears/hearing. (#71651)

## About The Pull Request

Adds surgery for fixing ears/hearing - this time without somehow
bricking my entire fork trying to squash the merge commit out of there
as I did with #71644. My apologies to the folks who reviewed and were
sitting on the last one - I actually used a branch this time, so it
shouldn't be a mess. 💀

Apologies and thanks to @ distributivgesetz and @ Time-Green for review
and comments on the earlier PR, this should integrate all of your
feedback.

## Why It's Good For The Game

Consistency with eye surgery as a way of getting people access to the
information they use to engage with the game, when getting people back
to engaging with the game is the point of medical (and you don't always
have chems or upgraded organ freezers for non-functional ears) is a good
thing.

## Changelog

🆑
add: Adds ear surgery to repair damaged ears/deafness.
/🆑

* Adds surgery for fixing ears/hearing.

Co-authored-by: Higgin <cdonny11@yahoo.com>
2023-01-12 12:14:05 -08:00
SkyratBot
076e3fd31f [MIRROR] Refactors how tongue languages are set [MDB IGNORE] (#18362)
* Refactors how tongue languages are set

* skew and modular

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
2023-01-12 12:27:47 -05:00
SkyratBot
8e8002b555 [MIRROR] Converts drowsy and eye blur to status effects, striking yet another two carbon level status vars [MDB IGNORE] (#18348)
* Converts drowsy and eye blur to status effects, striking yet another two carbon level status vars

* merge conflicts

* adjust_eye_blur and set_eye_blur_if_lower

* adjust drowsiness overdoses

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-09 13:14:47 -05:00
SkyratBot
3af3989a89 [MIRROR] Makes biological states for wounding limb based, not species based [MDB IGNORE] (#18257)
Makes biological states for wounding limb based, not species based (#71745)

I noticed something pretty terrible when playing around with some humans
locally.
As it turns out, limbs did not preserve their biological state when
amputated - This meant that a skeleton limb on a normal human, still
behaved as if it had a bunch of flesh and veins on it.
I didn't like that, and it seems like an oversight, so I decoupled the
biological state from the species and made it limb based.

What does this mean?
Skeleton limbs on a human will not bleed, but will still break (and be
more prone to breaking)
Human limbs on a skeleton will not bleed, however they will get cuts and
pierces that will not clot and need to be treated to go away - These
limbs will have the same requirements for dismemberment on a skeleton as
they have on a human.

This makes limbs behave according to how they look instead of causing
mild confusion.

🆑 Big chungus wholesome 100
fix: Amputated and reattached limbs now get wounded based on their own
biology, not the current owner's biology.
/🆑

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
2023-01-09 17:24:08 +13:00
Tastyfish
01b1dafbf8 [MIRROR][Cherrypicked] Reworks how legs are rendered yet again because it was very convaluted i hated it (#18557)
* Reworks how legs are rendered yet again because it was very convaluted i hated it

* merge conflicts

* correct comment

* Fixes husk appearances not working, adds a screenshot test for it (#72190)

## About The Pull Request

Fixes #72159

Before this proc used to early return when the limb was husked
The leg refactor changed it to no longer early return and as a result it
overrided the generated husk icon with a normal limb icon
So I just wrapped even more of the proc in `!is_husked`, since like most
of it is not supposed to run

Screenshot tests husks too

## Why It's Good For The Game

Husks are good(?)

## Changelog

🆑 Melbert
fix: Husked bodies look husked again
/🆑

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-01-07 23:35:56 -08:00
SkyratBot
7263765bd4 [MIRROR] Jellypeople and stargazers use the correct eyes sprite. [MDB IGNORE] (#18305)
* Jellypeople and stargazers use the correct eyes sprite. (#72175)

## About The Pull Request

Jellypeople and stargazers both have three eye sockets on their sprites,
but due to the way eyes work, they use the incorrect eyes on their
sprite. This leads to both of these species looking fairly ugly, with
the wrong arrangement of eyes. This PR adds a unique eyes organ, "jelly
eyes", to these two species. This organ has no special properties, but
makes them properly display three eyes.

![image](https://user-images.githubusercontent.com/105025397/209075852-226ef72d-4f67-4b59-8438-c9aa72d07976.png)
_The current jellyperson eyes appearance vs. the new one, in obnoxious
pink for visibility._

![image](https://user-images.githubusercontent.com/105025397/209075951-23f317ab-63e7-482a-b843-b9a0246d3231.png)
_The new "jelly eyes"._

Incidentally, jelly eyes _can_ be implanted into other species to give
them three eyes. This can look somewhat odd depending on how a
particular species's eye sockets are drawn, but this is also an
extremely niche interaction - so most _likely_ not a problem.
## Why It's Good For The Game

The jelly eyes _already_ have existing on-mob sprites, so I can only
assume they stopped working due to a refactor in how eyes worked. These
species look better with the correct eyes sprites restored.
## Changelog
🆑
fix: Implemented "jelly eyes" to make jellypeople and stargazers use the
proper eyes sprite.
/🆑

* Jellypeople and stargazers use the correct eyes sprite.

* screenshot

Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
2023-01-07 22:31:08 -08:00
SkyratBot
011fefdd81 [MIRROR] Refactors armor into dedicated subtypes [MDB IGNORE] (#18291)
* Refactors armor into dedicated subtypes

* start

* most tg things

* pain (#18584)

* shit

* non-mod changes

* compile

Co-authored-by: John Doe <gamingskeleton3@gmail.com>

* #18291

* compile fix

* ???

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-07 20:06:16 -08:00
SkyratBot
65b6c059ff [MIRROR] Removing an organ from a autosurgeon now correctly updates its overlays + 2 more bonus autosurgeon fixes [MDB IGNORE] (#18565)
* Removing an organ from a autosurgeon now correctly updates its overlays + 2 more bonus autosurgeon fixes (#72471)

Removing an organ from an auto-surgeon with a screwdriver didn't call
update_appearance() and thus it kept its overlay as if it was full.

Fixes single use autosurgeons not consuming uses when their implant is
removed, this was a bug introduced by #68379
Autosurgeons now actually tell you what organ was removed from them.

* Removing an organ from a autosurgeon now correctly updates its overlays + 2 more bonus autosurgeon fixes

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
2023-01-07 08:28:06 -08:00
SkyratBot
7cc088e72a [MIRROR] Fixes podperson hair colors, adds individual layer colors [MDB IGNORE] (#18185)
* Fixes podperson hair colors, adds individual layer colors

* merge conflicts

* oops, use old screenshot png

Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-07 00:48:50 -05:00
SkyratBot
2773eda662 [MIRROR] Goliath dna infusion [MDB IGNORE] (#18375)
* Goliath dna infusion

* ashie fix

Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
2022-12-31 10:56:20 -08:00
SkyratBot
f1288ca9f8 [MIRROR] fixes typo for insertion during organ manipulation [MDB IGNORE] (#18264)
* fixes typo for insertion during organ manipulation (#72136)

## About The Pull Request
**BEFORE:**
display_pain(target, "You can feel your something being placed in your
[parse_zone(target_zone)]!")
**AFTER:**
display_pain(target, "You can feel something being placed in your
[parse_zone(target_zone)]!")
Removes lazy coding, improves visual fidelity

## Why It's Good For The Game
ugly

🆑
spellcheck: drastically improves grammar for inserting something during
organ manipulation
/🆑

* fixes typo for insertion during organ manipulation

Co-authored-by: kate <97811257+winterboekje@users.noreply.github.com>
2022-12-24 21:53:24 -08:00
SkyratBot
91d74cabf6 [MIRROR] Bodypart code cleanup, robotic limbs can actually be disabled through damage again. [MDB IGNORE] (#18093)
Bodypart code cleanup, robotic limbs can actually be disabled through damage again. (#71739)

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

Cleans up various variables and code comments in bodypart code so that
it is easier to understand (hopefully) what the fuck is happening there.

Fixes a hilarious oversight. For what may have been an entire 2 year
span, robotic limbs were unable to be disabled whatsoever. Good stuff.

Lost all your limbs and now have only surplus prosthetics?
Congratulations! You're now more durable than even someone with proper
robotic limbs, as your arms do not contribute anything more than 10
damage (or 15 stamina) to your overall damage taken. Furthermore, taking
the maximum amount of damage is actually entirely meaningless to you.

Laugh as someone attempting to shoot your arms does almost no meaningful
damage once you hit the cap! It's all sunk cost! You can't have it blown
off anyway, because dismembering surplus limbs is gone!

Who knew getting into a horrible bluespace/goliath accident could have
such an impact on your combat prowess. Thanks Nanotrasen!

Anyway, these vars are ugly.

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

🆑
code: Makes a lot of the bodypart variables clearer as to what they do.
Includes more detailed code comments.
fix: Robotic limbs are no longer immune to being disabled through
reaching maximum damage.
/🆑

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

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
2022-12-19 22:38:03 +13:00
SkyratBot
cf1416ed79 [MIRROR] Fix: Robotic Damage / Reagents Refactor [MDB IGNORE] (#18132)
* Fix: Robotic Damage / Reagents Refactor (#71937)

This PR is a continuing refactor of and fixes bugs introduced by my
prior PR #71864

![when-you-finish-fixing-something-and-it-no-longer-works](https://cdn.discordapp.com/attachments/752427120365404172/1052037482771906640/Attachment.jpg)

Due to many functions in reagents having been implemented on top of
prior buggy code, their new behaviors are not as expected in-game, and
as a result reagents damage/heal robotic/cybernetic bodyparts/organs
when not appropriate; bugs like healing robotic arms with Libital is
currently possible.

To fix the errant behaviors in the newly debugged code, I have added
three variables to `datum/reagent` which are used throughout reagent
code, mainly inside of `on_mob_life` etc:

- `affected_bodytype = BODYTYPE_ORGANIC` - Used if the reagent
damages/heals bodyparts (Brute/Fire) of an affected mob.
- `affected_biotype = MOB_ORGANIC` - Used if the reagent damages/heals
generic damage (Toxin/Oxygen) of an affected mob.
- `affected_organtype = ORGAN_ORGANIC` - Used if the reagent
damages/heals organ damage of an affected mob.

The diff is large, and I have refactored the readability/maintainability
around the sections of code I was modifying. At one point I chose to
perform a quality pass on reagents because I found it quite hard to
maintain reagents code in its current state. This PR also replaces many
single-letter variables with more descriptive and readable variable
names. I also found and fixed a stray tab which was located in the
flavortext of `proc/item_heal_robotic`

Due to an old bug being fixed recently by PR #71864 a lot of
healing/damaging reagents now have an effect on robotic bodyparts. This
PR corrects the issue and changes reagents to explicitly define the body
type, bio type, and organ type which they can affect with
helaing/damage. This PR replaces a lot of single-letter variable names
with more descriptive names. I also fixed a small typo in
`item_heal_robotic` which was inserting an extra tab.

🆑
fix: Fixed a stray-tab typo in "item_heal_robotic"
fix: Fixed reagents and other effects which were inappropriately
affecting robotic limbs.
code: Refactored all of reagents code to be more readable and
maintainable.
/🆑

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

* Modular!

* More Modular!

Co-authored-by: Dani Glore <fantasticdragons@gmail.com>
Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
2022-12-19 22:04:01 +13:00
SkyratBot
f87981d67f [MIRROR] Inserted tongues and HUD implants no longer exist outside the body. [MDB IGNORE] (#17955)
* Inserted tongues and HUD implants no longer exist outside the body.

* Mirror

Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2022-12-19 01:17:22 +13:00
SkyratBot
15faaa54f5 [MIRROR] Rewrites how action buttons icons are generated, makes them layer nicer. Allows observers to see a mob's action buttons. [MDB IGNORE] (#17907)
* Rewrites how action buttons icons are generated, makes them layer nicer. Allows observers to see a mob's action buttons.

* conflicts

* Modular!

* update modular

* icon icon icon icon icon

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2022-12-16 16:01:41 +00:00
SkyratBot
da0a127243 [MIRROR] Delimbs Stamina [MDB IGNORE] (#17981)
* Delimbs Stamina

* SR skews

* out of band upstream hotfix

Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
2022-12-15 17:50:49 -05:00
Rimi Nosha
c53f28969e [99% MODULAR] Synth and IPC Unification and Extended Customization! (#16967)
* What am I looking at?

* Okay, now limbs and switching to the three other types of synth!

* Hey, it compiles, but *definitely* doesn't work!

* Has a slight chance of working now!

* Actually compiles properly now!

* Nice one, dork

* Fuck limb code.

* And this is the story behind where the last 8 hours of my life went!

* My code will now throw the rattle if you do dumbdumb.

* I'M SORRY, MODULARITY

* Final code, maybe?

* Hmm, yes, today I will leave debug logs in my commits.

* Hmmm, maybe not enable that by default.

* Oh yea, nice one, dork.

* Oh yea, digitigrade exists. Also fixes all known runtimes. Also fixes me forgetting a couple of *very* important things.

* I feel special.

* Small bit of code cleanup!

* Android parts!

* Go away Blueshift compile error!

* E

* More code fixes!

* Synthliz fix

* Haha, shitcode go brrrr

* AAAAAAAAAAAAAAA

* Fix screenshot tests!

* Listen here you little shit-

* idontknowwhythisisbreakingantennasbutyoucankeepthenameiguess

* FUCK

* Turns out some antennas *do* use more than one colour, ugh.

* Nice one, genius.

* Address reviews, and also change IPC antennas to tri_bool instead of toggle- woops!

* Now that I know roughly how sprite accessories work, let's fix this at long last so I can finally get this merged.

* Oh yea, this!

* Oops, nice catch, unit tests!

* Very cool, PDA update

* Yeet!

* Apply suggestions!

* Oops!

* WHY DIDN'T YOU COMMIT

* I'm getting tired of fixing these conflicts.

* Ugh.

* Fix my shitcode, also make erp genitals check less intensive

* FUCK

* I am still suffering

* Fix

* e

* Fucking LEGS

* Fucking GREYSCALE

* REMOVE THIS BEFORE MERGE, DUMBASS

* Nevermind, this is unironically the best way to do it due to how our really weird prefscode works... pain.

* Stupid organic interface code edit
2022-12-14 18:22:55 -05:00
SkyratBot
6d723d38f4 [MIRROR] Moves speaking verbs to tongues + subtypes, moves wing sprites to wing subtypes, bodypart damage examines to limbs, fixes sign language not working without a tongue [MDB IGNORE] (#17889)
* Moves speaking verbs to tongues + subtypes, moves wing sprites to wing subtypes, bodypart damage examines to limbs, fixes sign language not working without a tongue

* I forgor

* Modular!

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2022-12-10 19:12:10 -05:00
SkyratBot
a5a173f672 [MIRROR] Adds the DNA Infuser, a genetics machine you feed corpses to infuse their DNA with yours! What could go wrong?! [MDB IGNORE] (#17811)
* Adds the DNA Infuser, a genetics machine you feed corpses to infuse their DNA with yours! What could go wrong?!

* SR conflicts

* fox ears

* remove duplicate event and merge master

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-12-07 16:07:26 +00:00
SkyratBot
ecbcf9a466 [MIRROR] Ultra-modularizes podperson hair restyling [MDB IGNORE] (#17873)
* Ultra-modularizes podperson hair restyling

* fix conflicts

Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-12-07 01:11:30 +00:00
SkyratBot
ab85bf9432 [MIRROR] Change liver to not purge toxins rapidly [MDB IGNORE] (#17928)
* Change liver to not purge toxins rapidly (#70764)

<!-- 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! -->

Fixes #70762

The liver was purging toxins rapidly and it didn't matter how much
poison you would inject a food / drink / cigarette with, since it would
get purged before it could buildup to toxic levels.

My changes fix this by doing the following:

- Skips toxin `on_mob_life` effects and toxin damage if it is lower than
the 3u threshold
- Metabolizes the toxin at normal rate instead of purging when under the
3u threshold (this allows toxins to buildup while
eating/drinking/smoking)
- New formula to calculate liver damage `liver_damage +=
((toxin_units/15) * toxin.toxpwr) / liver_resistance`
- Liver is damaged based on the units of toxin present and their
lethality. Liver damage **IS NOT** skipped if toxin is lower than the 3u
threshold
- Change alien liver toxin resistance value to be -33% (from -40%) and
cybernetic liver toxin resistance value to be +50% (from +20%)

---

<details>
<summary>Liver damage per second from toxins</summary>

There is a hard cap of 2 dmg per second that all the combined damage
can't go over. This should give someone suffering max liver damage about
a minute before it gets destroyed.

| Toxin | Power | 1u | 3u | 5u | 15u |
| ------------- | ------------- | ------------- | ------------- |
------------- | ------------- |
| Coffepowder | 0.5 |  0.03 dmg | 0.1 dmg | 0.16 dmg | 0.5 dmg |
| Plantbgone  | 1 |  0.06 dmg | 0.2 dmg | 0.33 dmg | 1 dmg |
| Amatoxin | 2.5 |  0.15 dmg | 0.5 dmg | 0.825 dmg | 2 dmg |

</details>

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

Fixes broken toxin system for liver.

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

🆑
balance: Change liver to not purge toxins instantly for low amounts.
Instead the toxin effect gets skipped while it is metabolized normally,
however it still does liver damage. This fixes bite increments for food,
cigarettes, and drinks where the toxins would purge without building up
to harmful levels.
balance: Change the formula for how toxins effect livers. Livers will be
damaged based on the units of toxin present and their lethality.
balance: Change alien liver toxin resistance value to be -33% and
cybernetic liver toxin resistance value to be +50%
/🆑

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

* Change liver to not purge toxins rapidly

* Update skrell.dm

* Update code/modules/surgery/organs/liver.dm

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-12-06 20:37:58 +00:00
SkyratBot
fcdf5d850c [MIRROR] Psykers [MDB IGNORE] (#17825)
* Psykers (#71566)

## About The Pull Request
Finishes #66471
At burden level nine (or through a deadly genetic breakdown), you now
turn into a psyker.
This splits your skull in half and transforms it into a weird fleshy
mass. You become blind, but your skull is perfectly suited for sending
out psychic waves. You get potent psy abilities.
First one is brainwave echolocation, inspired by Gehennites (but not as
laggy).
Secondly, you get the ability of Psychic Walls, which act similarly to
wizard ones, but last shorter, and cause projectiles to ricochet off
them.
Thirdly, you get a projectile boost ability, this temporarily lets you
fire guns twice as fast and gives them homing to the target you clicked.
Lastly, you get the ability of psychic projection. This terrifies the
victim, fucking their screen up and causing them to rapidfire any gun
they have in their general direction (they'll probably miss you)
With most of the abilities being based around guns, a burden level nine
chaplain now gets a new rite, Transmogrify. This lets them turn their
null rod into a 5-shot 18 damage .77 revolver. The revolver possesses a
weaker version of antimagic (protects against mind and unholy spells,
but not wizard/cult ones). It is reloaded by a prayer action (can also
only be performed by a max burdened person).
General Video: https://streamable.com/w3kkrk
Psychic Projection Video: https://streamable.com/4ibu7o

![image](https://user-images.githubusercontent.com/23585223/204150279-a6cf8e2f-c678-476e-b72c-6088cd8b684b.png)

## Why It's Good For The Game
Rewards the burdened chaplain with some pretty cool stuff for going
through hell like losing half his limbs, cause the current psychics dont
cut it as much as probably necessary, adds echolocation which can be
used for neat stuff in the future (bat organs for DNA infuser for
example).

## Changelog
🆑 Fikou, sprites from Halcyon, some old code from Basilman and
Armhulen.
refactor: Honorbound and Burdened mutations are brain traumas now.
add: Psykers. Become a psyker through the path of the burdened, or a
genetic breakdown.
add: Echolocation Component.
/🆑

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

* Psykers

* commented out stuff is now in

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: tralezab <spamqetuo2@ gmail.com>
Co-authored-by: tralezab <40974010+tralezab@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
2022-12-03 19:45:18 -08:00