Commit Graph

1807 Commits

Author SHA1 Message Date
SkyratBot
fc5d5a9fe3 [MIRROR] Componentizes loomability [MDB IGNORE] (#20424)
* Componentizes loomability (#74552)

## About The Pull Request

As shrimple as the title might imply, the ability for an item to be
processed in a loom is now a component.

Behavior on looming cotton, durathread, and wool, should all be the
exact same in terms of cost, time, results, etc.
## Why It's Good For The Game

If, for any reason, someone might want to extend the behavior of "this
thing can be loomed" to other items, it can be done.
## Changelog
🆑
code: The ability for objects to be loomed is now a component, with all
of the looming behavior moved off of the structure and into said
component. The actual behavior for looming cotton (clicking on a loom
with cotton) is completely unchanged.
/🆑

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>

* Componentizes loomability

---------

Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
2023-04-09 02:29:51 +01:00
SkyratBot
749d62c1e3 [MIRROR] makes cursed katana combos into a generic component [MDB IGNORE] (#20419)
* makes cursed katana combos into a generic component (#74543)

## About The Pull Request
what the title says
also the katana's dark cloak move now has some vfx cause i figured why
not

## Why It's Good For The Game
this means anyone can give any weapon combos :D

## Changelog

* makes cursed katana combos into a generic component

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2023-04-08 18:50:43 +01:00
SkyratBot
6f3befe233 [MIRROR] Reagent soup / Soup rework / Stoves - A kitchen expansion [MDB IGNORE] (#20410)
* Reagent soup / Soup rework / Stoves - A kitchen expansion

* fixes that stuff

* puts the range stove on maps that sohuld have it

* fixes some paths that don't exist anymore

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
2023-04-08 13:30:41 -04:00
SkyratBot
60f860f607 [MIRROR] Fixes the supermatter not dusting you when you fall on top of it from a z-level [MDB IGNORE] (#20381)
* Fixes the supermatter not dusting you when you fall on top of it from a z-level (#74535)

## About The Pull Request

fixes SM not dusting you if you fall on top of it from a z level
literally nobody tested the code lmao

## Why It's Good For The Game

bug bad

## Changelog
🆑
fix: SM now dusts you if you fall on top of it from another Z level
/🆑

* Fixes the supermatter not dusting you when you fall on top of it from a z-level

---------

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
2023-04-06 16:14:50 -07:00
SkyratBot
638cbf8a8e [MIRROR] Replaceable Traitor Uplinks [MDB IGNORE] (#20350)
* Replaceable Traitor Uplinks

* skyrat edits

---------

Co-authored-by: Sol N <116288367+flowercuco@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
2023-04-06 02:06:22 +01:00
Zergspower
541a557c6e [Missed Mirror] Electrified tram plate #74334 (#20354)
Electrified tram plate (#74334)

A new addition for the bad luck smite/cursed trait. A chance of getting
an electric shock when crossing the tram rails.

While it adds no additional danger for normal crew, if you have the bad
luck smite or cursed trait you may be in for a shocking surprise!

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-04-05 13:29:39 -07:00
SkyratBot
c79bd4f13b [MIRROR] Adds Chuunibyou Spell + Granter [MDB IGNORE] (#20299)
* Adds Chuunibyou Spell + Granter

* aazaasdaw

---------

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-04 16:34:11 +01:00
SkyratBot
ccb8a92cc9 [MIRROR] Updates paper biscuits and the paper cutter [MDB IGNORE] (#20312)
* Updates paper biscuits and the paper cutter (#74473)

## About The Pull Request

Well this started as a PR updating some of the spelling and grammar on
the biscuits... though spilled out a little into other aspects of the
relevant code.
There are a few things I've done here.

**Paper biscuits:**

- Updated spelling and grammar for paper biscuits. Confidental ->
confidential, that sort of thing.
- A little reorganisation and cleanup of the code itself.
- Preset slips are now generated on init on the parent from a var,
rather than each having its own init proc.
- Early returns, clearer vars, etc

**Paper Cutters**
Ended up doing more here, even though it wasn't the original reason I
started looking at this code.

- Added one (1) paper cutter blade to the paper cutters cargo crate.
Raised the price a little. This is just a reskinned hatchet, so I don't
think it's much of a balance concern.
- Clarifies and docs vars
- Cleans up refs on destroy
- Many `to_chat`s to `balloon_alert`s
- Removed single-letter vars
- Cancelled attack chains when trying to actually use the cutter. You
now pick it up either by having the blade secured and no paper inside,
or by dragging it into your hand.

## Changelog
🆑
spellcheck: Paper biscuits now have more proper spelling and grammar
qol: You now get one spare paper cutter blade in the paper cutter cargo
crate.
tweak: You now use right click to cut paper with a paper cutter
fix: You can now remove paper from a paper cutter if you change your
mind.
/🆑

---------

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

* Updates paper biscuits and the paper cutter

---------

Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-04-04 04:45:59 +01:00
SkyratBot
90e8f5f70f [MIRROR] "Biscuit" cards, and also now slip papers are actually paper! [MDB IGNORE] (#20240)
* "Biscuit" cards, and also now slip papers are actually paper! (#74329)

## About The Pull Request
**This is not a literal biscuit which you eat. "Biscuit" is just a
nickname of this kind of snap-cards.**
Slip paper is now actually paper, before that, it was just literally
nothing, an object which does nothing. Because of that, the paper cutter
was useless as well, as it turned normal paper into useless paper slips.
Because of this now paper cutters are placed at:

- Bridge
- HoP office
- Warden office
- Cargo

Also adds biscuit cards. If you have no idea what it is, it's a kind of
card placed around a piece of paper usually to conceal some document and
it can be opened by cracking it with a crunchy sound (that's why it's
named a biscuit). Those are usually only opened in certain situations or
emergencies (The most famous example is the US president's nuclear
biscuit, which contains nuclear codes)

There are 2 biscuits: Normal and Confidential.
Normal is a plain biscuit with nothing really special, can be coloured
if you want as it's white.

![image](https://user-images.githubusercontent.com/42353186/229195802-4ac5ad96-6083-47dc-9ccd-13d132f690bf.png)

The confidential biscuit is blue and has "NT" on it.

![image](https://user-images.githubusercontent.com/42353186/229195753-207d64f1-1f17-418e-a01a-8bfa2c4abc51.png)

There is a not-sealed biscuit you can print in autolathe, it starts open
so you can put paper in and seal later making it a normal crackable one.

Now spare ID safe code automatically spawns in a confidential biscuit in
a new paper slip subtype - corporate slip paper. It's a plastic card
which is sturdier than the normal paper clip.

![image](https://user-images.githubusercontent.com/42353186/229195696-07075f78-c736-43a9-bd14-5cf9ca36ddc9.png)

You can also create the corporate paper slip paper using - normal paper
slip, plastic, and captain rubber stamp (making this paper having a rare
status)

![image](https://user-images.githubusercontent.com/42353186/229195599-75807483-02f9-44cb-ae24-d3388b509ccd.png)

![image](https://user-images.githubusercontent.com/42353186/229195610-5a264ed4-8b04-4452-9032-5755e2419423.png)

## Why It's Good For The Game
Paper slips being not paper is stupid and has no point in being that
way. This also made the paper cutter useless; hence, it was never placed
on any map (and never used).
This PR makes it paper, so it's usable when crew members need a paper
slip instead of a full-size sheet.

Placing paper cutters around the station makes it so the crew can
produce paper slips when they need them, this also gives it finally a
use and place on the station.

The 'biscuits' are cool and give more flavour to the spare ID safe
codes, as well as to other documents people might put in future PRs.
This also makes those paranoid captains which are scared of their spare
ID safe code being stolen and read can sleep tight, as now if someone
opens it up it's really obvious. Now also you can really make sure if
that head is lying about "not touching the spare ID", _but not as anyone
cares really._

**Okay, it's draft for now just so I can add some new things, and fix
the dupe bug:**

- [x] Being able to fax the paper biscuits
- [x] Make it impossible to cut paper slips into paper slips
- [x] Make corporate paper slips craftable or printable
- [x] Make confidential biscuits craftable or printable
- [x] Make paper cutters orderable at the cargo

_CRUNCH_
## Changelog
🆑 DrDiasyl aka DrTuxedo#0931
add: Added 'biscuit' cards! They can contain documents and can only be
accessed by cracking them open, you can't close them back. Nanotrasen
now stores spare ID safe codes in them.
add: Placed paper cutters around the station. They're in Bridge, HoP
office, Warden office, and Cargo.
add: Now you can order paper cutters at cargo.
fix: Now the paper slip is actually paper.
imageadd: The paper slips sprite was slightly tweaked to have text lay
more logically, added the corporate paper slip.
/🆑

---------

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

* "Biscuit" cards, and also now slip papers are actually paper!

---------

Co-authored-by: DrTuxedo <42353186+DrDiasyl@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-01 21:19:17 +01:00
SkyratBot
b6601a2405 [MIRROR] March into Mapness: Meateor [MDB IGNORE] (#20233)
* March into Mapness: Meateor (#74070)

* March into Mapness: Meateor

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-04-01 05:39:55 -04:00
SkyratBot
2dc1e76135 [MIRROR] Makes eyestabbing and neck slicing a little easier to use. Also add's screams to kneecapping. [MDB IGNORE] (#20217)
Makes eyestabbing and neck slicing a little easier to use. Also add's screams to kneecapping.

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-01 03:24:54 +01:00
SkyratBot
3464b6bfb2 [MIRROR] Refactors Regenerate Organs, and a few organ helpers [MDB IGNORE] (#20094)
* Refactors Regenerate Organs, and a few organ helpers

* MERGE CONFLICTS

* GETORGANSLOT > GET_ORGAN_SLOT

* GETORGAN > get_organ_by_type

* lint repairs

* more lint

* Update tgstation.dme

* Update surgery_step.dm

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-01 02:51:06 +01:00
Gandalf
e4b4d4d3c0 MISSED MIRROR [Lints Against Unmanaged Local Defines] (#20204)
* https://github.com/tgstation/tgstation/pull/74333

https: //github.com/tgstation/tgstation/pull/74333
Co-Authored-By: tattle <66640614+dragomagol@users.noreply.github.com>

* var stuff

Co-Authored-By: tattle <66640614+dragomagol@users.noreply.github.com>

* vars

* Update sol_fed.dm

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2023-04-01 01:15:22 +01:00
SkyratBot
fd112cfe9c [MIRROR] Adds the Dark Matt-eor when you emag a stupid amount of meteor shields + lots of meteor file sorting + qol + dark matter singularity + dark matt-eor summoning final traitor objective [MDB IGNORE] (#20178)
* Adds the Dark Matt-eor when you emag a stupid amount of meteor shields + lots of meteor file sorting + qol + dark matter singularity + dark matt-eor summoning final traitor objective

* singularity

* Update singularity_s1.dmi

---------

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
2023-03-29 21:25:00 -07:00
SkyratBot
0e6ef7d12f [MIRROR] Reduces progression cost of a lot of traitor items. Groups assassinate/behead/eyesnatching objectives together so that they're treated the same under the traitor no-dupe rules. [MDB IGNORE] (#20112)
* Reduces progression cost of a lot of traitor items. Groups assassinate/behead/eyesnatching objectives together so that they're treated the same under the traitor no-dupe rules.

* ok

---------

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-29 23:10:18 +01:00
SkyratBot
3eb9d2127e [MIRROR] Fixes arrivals shuttle runtime [MDB IGNORE] (#20163)
* Fixes arrivals shuttle runtime (#74296)

## About The Pull Request

Fixes #74172

Some signals were added to this component late in development and
weren't unregistered when the component was removed, now they are.

## Why It's Good For The Game

This runtime was annoying me.

## Changelog

Not player facing.

* Fixes arrivals shuttle runtime

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-03-29 22:37:15 +01:00
SkyratBot
ba96aedf6d [MIRROR] Adds The Sturdy Shako (HoS Hat) [MDB IGNORE] (#20123)
* Adds The Sturdy Shako (HoS Hat) (#74277)

## About The Pull Request

Adds a new craftable HoS shako, made from the standard peaked cap and
some plasteel and gold.

![shako](https://user-images.githubusercontent.com/5479091/227799392-ad2ea145-5c58-45d7-8763-a76e9323ec09.png)

Moves the HoS cap into a subtype `/obj/item/clothing/head/hats/hos/cap`
to avoid catching the beret in the crafting recipe, the base type
`/obj/item/clothing/head/hats/hos` is now a generic subtype which should
never exist.

(Yes there's a TF2 reference included with the hat)

## Why It's Good For The Game

Adds an additional level of style for an HoS willing to put a little
effort into gathering the required materials. As it is crafted as a
one-to-one trade with another headgear there is no additional spare
headgear introduced.

## Changelog
🆑
add: The Nanotrasen Costuming Department has released specifications for
how to convert the Head of Security's cap into a shako.
/🆑

---------

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

* Adds The Sturdy Shako (HoS Hat)

---------

Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
2023-03-29 22:25:53 +01:00
SkyratBot
79bb4facfc [MIRROR] Removes networks from the game [MDB IGNORE] (#20083)
* Removes networks from the game (#74142)

## About The Pull Request

This is a continuation of
https://github.com/tgstation/tgstation/pull/74085 - I announced in the
comments there that this would be my next PR, and this is it.

Removes SSnetwork, ``/datum/ntnet``,
``/datum/component/ntnet_interface``, ``var/network_root_id``, the
network unit test, and a lot of other things related to networks.

- NTNet circuits now check for an Ntnet relay, and uses signals to
operate.
- Logs in Wirecarp is now only for PDA and Ntnet Relay things, so you
can no longer see what ruins exist using it (why should Wirecarp know
that Oldstation spawned? The flavor is that they dont know its there).
- Removed it from MULEbots entirely, I don't think it even did anything
for them? Botkeeper seems to work without it, so it's possibly there
from pre-tgui PDAs.
- Moves assigning random names to a base proc instead of being tied to
network, this is things like random-naming scrubbers/vents. The behavior
hasn't changed at all.
- Makes Ntos work for consoles when relays are down, as the comments
said they're supposed to (because they're wired). I think this was an
accidental change on my part, so this is a revert of that.

## Why It's Good For The Game

Ntnet is ancient code that hasn't given us much that we can't do with
already existing alternatives, we've been slowly moving away from it for
init times, and though a large portion of that was limited to airlocks,
I still don't think this is a system worth keeping around.
It's way too complex to expect feature coders to do anything with it,
and too old with better alternatives for anyone to want to improve any
of it.

## Changelog

🆑
fix: Computers are now properly connected to Ethernet, and can use Ntos
when Relays are down.
refactor: Removes Ntnet and Ntnet interfaces, which was only used by
Ntnet circuits (which now directly checks for a Relay to work) and
MULEbots, which did nothing with it.
balance: Wirecarp no longer tells you what ruins spawned in a round,
instead it's limited to PDA logs, and tells you the source too. This
means the RD can catch someone running illegal programs if they don't
make any attempt at hiding it.
qol: Wirecarp logs is now set to save 300 at once, instead of 100 and
being increased to 300 by the RD during the round. This is pretty
insignificant, since there's no reason to NOT want as many logs as
possible.
/🆑

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>

* Removes networks from the game

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
2023-03-27 03:28:18 +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
629941e590 [MIRROR] Turns stickers into a component and an element [MDB IGNORE] (#20071)
* Turns stickers into a component and an element (#74091)

## About The Pull Request
Adds /datum/element/sticker, and /datum/component/attached_sticker
Sticker items now mostly operate off /datum/element/sticker
The sticker element, hooks the whole "attach to stuff" and adds the
attached_sticker component to its target
The attached_sticker component, adds the overlay, hooks the clean and
on-fire signals.

## Why It's Good For The Game

Allows to check if a sticker is present on an object (which I will use
later)
Code is probably cleaner???

## Changelog
🆑
refactor: Stickers use a component and an element now to do their
sticking
/🆑

* Turns stickers into a component and an element

---------

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
2023-03-26 01:58:13 -07:00
SkyratBot
ebb19783dc [MIRROR] Fixes atmos machinery breaking when the area is edited/renamed via station blueprints & Deletes empty areas, ARCD upgrades [MDB IGNORE] (#19904)
* Fixes atmos machinery breaking when the area is edited/renamed via station blueprints & Deletes empty areas, ARCD upgrades

* areas

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
2023-03-25 23:54:59 -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
SkyratBot
50032b8a55 [MIRROR] Correct grammar, tags, procs involving food processing [MDB IGNORE] (#19988)
* Correct grammar, tags, procs involving food processing (#74097)

The wording of microwable/grillable/processable outputs now takes into
accounts plurals.

For example, the examine text for an onion slice is now: "The onion
slices can be baked into _some_ onion rings", rather than "an onion
rings".

- Examining microwavable things now uses "can be", rather than "could
be"; the same verb as bakeable and griddlable.
- Processing atoms now uses `plural_s()` rather than just a flat `/s`,
which is unreliable.
- The use of `<b>` tags has been changed to `span_bold()`.

* Correct grammar, tags, procs involving food processing

---------

Co-authored-by: Jack Edge <yellowbounder@gmail.com>
2023-03-19 19:19:40 -07:00
SkyratBot
e13e921d75 [MIRROR] Adds the Snatcherprod. It steals stuff from peoples hands and puts it into yours! [MDB IGNORE] (#19882)
* Adds the Snatcherprod. It steals stuff from peoples hands and puts it into yours! (#73746)

## About The Pull Request

Adds the Snatcherprod, the telecrystal version of the teleprod. It
yoinks an item out of the victim's hand, and puts it into yours. Or on
the ground, if your hands are full.

You make it like you would a teleprod, but using a telecrystal instead.

## Why It's Good For The Game

It was a funny joke I observed. Also I'm deeply sleep deprived and so my
better judgement eludes me during these capricious moments.

## Changelog
🆑
add: Adds the Snatcherprod. Like a teleprod, but it steals stuff from
peoples hands instead. Made using a telecrystal, rather than a bluespace
crystal.
/🆑

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>

* Adds the Snatcherprod. It steals stuff from peoples hands and puts it into yours!

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-03-18 03:24:31 -07:00
SkyratBot
408f0e9c5a [MIRROR] Audits usage of isanimal() vs isanimal_or_basic_mob() [MDB IGNORE] (#19938)
* Audits usage of isanimal() vs isanimal_or_basic_mob() (#74029)

## About The Pull Request

There's a couple of open issues which fix places where only simple
animals were considered, but they are doing it piecemeal.
I decided to just go through every instance of `isanimal` or
`subtypesof(mob/living/simple_animal)` I could find, identify which
should also affect basic mobs, and fix them.

I left out the two others which are already in PR, I'm not stealing your
GBP.

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

## Why It's Good For The Game

Consistency, mostly.
As far as I can tell all of these things _should_ have effected basic
mobs, but didn't.
This fixes a fair number of bugs but also they're bugs that nobody
noticed or reported.

There are a couple of places I did not update which will need updating
in future. These are:
- Dextrousness checks, because basic mobs don't have that yet.
- The Charge cooldown action, because frankly I couldn't tell what it
was trying to do.

alright here goes

## Changelog

🆑
fix: Carp will once again be healed from being near carp rifts
fix: Sepia slime cores and the rewind camera now work on Ian
fix: Sapient ridden carp (or cows) can throw off their riders by shoving
them, or by performing the spin emote.
fix: Giant Spider AI will be disabled by the timestop spell
fix: Ian can eat envirochow
fix: Mice, Frogs, and Cockroaches will no longer set off bear traps
fix: You can put a macrobomb implant into Cayenne (or Ian)
fix: Ian will now recognise that being squeezed by a cyborg is a nice
hug
fix: The player panel will tell admins if you're currently a corgi
fix: The staff of storms deals massive damage to Bileworms and Giant
Spiders
fix: Ian will whimper if forced to scream
fix: Slimes can consume space carp
fix: Mice can be captured in xenoballs
fix: You can use pacifying potions on Giant Spiders
fix: Sgt Araneus can be fitted with a xenobiological radio implant
fix: Sapient corgis no longer count as living players for the purpose of
highlander escape objectives
fix: The random sentience event can now target corgis and sergeant
araneus
add: The random sentience event can target a wider array of farm animals
fix: Petsplosion wizard event can target corgis
add: Petsplosion wizard event will now target farm animals and
mothroaches
fix: The colossus possession crystal can now actually possess the
cockroach it spawns, does not kill you instantly upon ending possession
/🆑

* Audits usage of isanimal() vs isanimal_or_basic_mob()

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-03-18 03:15:31 -07:00
SkyratBot
7ad441e407 [MIRROR] More stuff to construct & destroy [MDB IGNORE] (#19903)
* More stuff to construct & destroy (#73942)

## About The Pull Request
**1. Suit Storage Units**
- What about them?

1. You can print "suit storage unit" circuit boards from engineering &
science circuit printer's after research to make more suit storage
units, now since they behave like regular constructable machines you can
deconstruct them via screwdriver & crowbar.
   2.  You can upgrade its capacitor to get faster charging speeds

- Why its good for the game?
   1. You can rebuild these in the event they get destroyed
   2. Better tier capacitors = faster charging speeds
3. More storage units = More places to decontaminate your equipment +
Recharge more mod suits made in robotics
4. If you decide to leave the game or your done using a mod suit e.g. a
mining mod suit rather than keeping it to yourself or throwing it away,
just build a suit storage unit and hang it there so other players can
use it i.e., sharing is caring.

**2. Freezer Cabinet**
- What about them?
 1. They are now craftable

![Screenshot
(133)](https://user-images.githubusercontent.com/110812394/224561037-5461be22-e651-4d72-8afc-f797bb7d8a47.png)

  3. You can deconstruct them with a welding tool.

- Why its good for the game?
  1. You can now make more of them if they get stolen/destroyed
  2. More places to store food, dead bodies, whatever

**3. Flood Lights**
- What about them?
They can now be fully deconstructed in the exact opposite sequence you
constructed them.
  - First use screwdriver to open its panel
  - Then use empty hand to remove light
  - Then use screwdriver to unscrew the wiring from frame
  - Use wire cutter to remove wiring completely
  - Finally use wrench to completely deconstruct frame

- Why it's good for the game?
Reclaim used material to build flood light else where . Also much more
clean than what the wiki is suggesting.

![Screenshot
(134)](https://user-images.githubusercontent.com/110812394/224561553-f44a97f3-ac70-49e7-892f-1a05e2323ecb.png)

  ## Changelog
🆑
add: suit storage unit circuit boards to engineering & science
department circuit printers.
add: freezer cabinet as a craftable & destructible item.
qol: flood light can now be deconstructed rather than destroyed/thrown
away.
/🆑

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>

* More stuff to construct & destroy

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-03-16 18:41:12 -04:00
SkyratBot
f3155d0f63 [MIRROR] Clicking on the >> WALL << of a fire alarm/light switch with your hand will activate it [MDB IGNORE] (#19876)
* Clicking on the >> WALL << of a fire alarm/light switch with your hand will activate it (#73920)

## About The Pull Request

Clicking on the turf of a fire alarm/light switch with your hand will
activate it, similar to how you can click the turf a door is on to close
it and not pixel hunt. Refers to the turf it *looks* like it's on, not
the one it actually is on, since fire alarms and light switches are
actually on the turf near the wall, pixel shifted up.

False walls are ignored.

## Why It's Good For The Game

Lets our artists do whatever they want to these sprites, or those of
future consumers, without worrying about niche balance stuff. I really
like people using fire alarms for environmental combat and don't want
that to get in the way of spriting.

## Changelog
🆑
qol: Clicking on the turf of a fire alarm/light switch with your hand
will activate it.
/🆑

* Clicking on the >> WALL << of a fire alarm/light switch with your hand will activate it

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-03-14 23:17:05 -07:00
SkyratBot
7de062f78e [MIRROR] All hail The Pickle Jar, harbringer of better crafting [MDB IGNORE] (#19866)
* All hail The Pickle Jar, harbringer of better crafting (#73939)

## About The Pull Request
Fixes #73841

---

_It is the 12th of March, 2023. Around 3am. I have published a Pull
Request which involves circuits, and got reminded of my low GBP. I go
into the issues tab to see if there's anything someone of my low skill
caliber could tackle. I see it; Pickles.
"How hard could I be?" I ask myself, foolishly unaware of the dangers
that would soon overcome me.
Surely it must've been a mistype, I thought. Surely someone accidentally
confused pickles and cucumbers.
"Wait, the pickles are supposed to be created on the jar when the jar is
created", I say foolishly.
"Wait, its putting the ingredients used for the jar in the jar, that
doesn't explain why the pickles aren't there though", I say foolishly
"Wait, whoever tried fixing this earlier fucking qdel'd the beaker and
called it a day????", I say, foolishly._

---

Anyways I changed how the crafting menu distincts between categories,
instead of checking whether or not the path is for food, it checks the
actual categories themselves (why didn't it do this already), meaning
that you can have non-food items on the food tab if it has a food
category. Did this by adding a list that includes all crafting
categories, so in the future when adding new categories you'll have to
add them twice, which sucks, but oh well.

Also added a new variable to craftable items, which makes it so that you
can not delete a container's contents if you so wish (why was this the
default).

All this so that when you craft pickles, it actually crafts pickles
instead of cucumbers.

I spent hours on this, its 6:30am as I'm typing this. I'm tired. Fucking
pickles.

Super duper ultra thanks to FinalPotato for guiding me and suffering
with me through this and teaching me so much about DM and BYOND. I
cannot emphasize just how helpful and awesome they were thank you thank
you thank you <3
## Why It's Good For The Game

Bug fixing be good
## Changelog
🆑
fix: The jar of pickles, after millenia, finally actually contains
pickles. All hail the jar of pickles.
/🆑

* All hail The Pickle Jar, harbringer of better crafting

---------

Co-authored-by: TheSmallBlue <ilanmori@hotmail.com>
2023-03-15 00:51:13 +00:00
SkyratBot
ee2bc1be73 [MIRROR] admins can use the spawner component again [MDB IGNORE] (#19851)
* admins can use the spawner component again (#73976)

Not playing code vanity project with this shit.

Do not require data that just gets stored on a var to be passed via the
stack.

---------

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

* admins can use the spawner component again

---------

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-03-15 00:48:05 +00:00
SkyratBot
a98484d624 [MIRROR] Adds Pinatas that can be purchased by cargo and clown operatives! [MDB IGNORE] (#19829)
* Adds Pinatas that can be purchased by cargo and clown operatives! (#73868)

## About The Pull Request

Pinata's drop various items when struck with a sufficiently powerful
weapon. This PR adds two types, a standard one which can be bought from
cargo which contains various candy items and a syndicate one which
contains both candy items and explosives purchasable by clown
operatives.

The pinata functionality is also a component so admins can turn any
structure/machine/mob into a pinata and customize the "candy" inside

Sprites by @ Mey-Ha-Zah animated versions by me
## Why It's Good For The Game

Adds a cute little celebration themed structure that can be bought by
players to accommodate a celebration based gimmicks or the party trait.
I think the options on things to do as a crew during a celebration are a
bit limited at present with most of the options being making/purchasing
food, activity wise the main example of a celebration item is pin the
tail on the corgi which is a bit uninteresting, the pinata on the other
hand is more cathartic and provides a "reward" in the form of various
candy items for people who participate in smashing it. I also think its
just funny to have clown operative gambling half their TC to try and get
explosives.
## Changelog
🆑 Mey-Ha-Zah & NamelessFairy
add: Added pinata crates to cargo, they contain various candy items. Fun
at parties.
add: Clown operatives can now purchase a weapons grade pinata, this
contains both candy and explosives. Still fun at parties.
admin: Admins can now turn players, mobs and objects into pinata's with
the new pinata component.
/🆑

* Adds Pinatas that can be purchased by cargo and clown operatives!

---------

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
2023-03-13 16:20:54 -07:00
SkyratBot
dff0577483 [MIRROR] Converts the crackable element to mutable appearances, saves 0.15 seconds of init [MDB IGNORE] (#19830)
* Converts the crackable element to mutable appearances, saves 0.15 seconds of init (#73941)

## About The Pull Request

Instead of passing in an icon as a source to the alpha mask filter, we
can stick a mutable appearance in our overlays list with a render target
set, and use that render target to do our masking. Remember to use "*"
to avoid rendering the crack twice

## Why It's Good For The Game

CPU time

* Converts the crackable element to mutable appearances, saves 0.15 seconds of init

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-03-13 16:20:00 -07:00
SkyratBot
ac2b1d5ec7 [MIRROR] Restores Spell Card targetting behaviour [MDB IGNORE] (#19776)
* Restores Spell Card targetting behaviour (#73706)

## About The Pull Request

Fixes #52946

This has been broken ever since #44112 which apparently removed the proc
in this component which selected a target for performance reasons and
just... didn't replace it with anything else? So it's been bricked ever
since.

In order to restore the removed mouse tracking behaviour I implemented
the pattern used in scoped weapons and the kinesis module. As this was
the third thing I could find to use this code, I abstracted it out into
an object where most of the shared behaviour lives. I tested those
things too and they still seem to do what they used to.

Here it is in action:

https://user-images.githubusercontent.com/7483112/221954852-22244bb1-7c87-452d-a9b0-ebed81c4c1ef.mp4

Because this spell now applies a full screen overlay in order to
function, it's really begging for someone to make some touhou-style art
with cards and patterns around the edge of the screen while you are in
aiming mode, but I'm not going to be the one to make it.

I tidied this component up and refactored it as best I could while I was
reworking it to use a full screen overlay but I am... not totally
confident that it should be a component at all given that it keeps being
created and destroyed. But also it has worked that way for like four
years now, so who am I to say.

Oh yeah also the icon for this spell broke, so I fixed it.

## Why It's Good For The Game

Makes a reasonably terrible wizard spell marginally less bad.
Maybe now that this component works, some other things can use it?
If we make a fourth thing which follows your cursor it won't need to
copy/paste code around.

## Changelog

🆑
fix: Spell Cards from the Wizard spell will now home in somewhat on the
target nearest to your cursor.
fix: The Spell Cards spell now displays the correct icon instead of a
big red "error" text.
/🆑

* Restores Spell Card targetting behaviour

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-03-11 15:15:26 +00:00
SkyratBot
f36d71d0c4 [MIRROR] The CE blueprints can no longer be used to obfuscate cultist summon locations [MDB IGNORE] (#19772)
* The CE blueprints can no longer be used to obfuscate cultist summon locations (#73853)

## About The Pull Request

The Nar'Sie summon message will now only use the original name of the
ritual site area. You can no longer fake out the ritual announcement by
renaming the area with the CE blueprints.

The ritual site locator HUD popup now also uses the original area names,
to prevent the same issue from occurring.
## Why It's Good For The Game

Closes #73036.
## Changelog
🆑
fix: The cultist ritual site locator and Nar'Sie summon message will no
longer use area names modified by the CE's blueprints.
/🆑

* The CE blueprints can no longer be used to obfuscate cultist summon locations

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
2023-03-11 02:39:27 -08:00
SkyratBot
e4ca3c8529 [MIRROR] Fake nuclear authentication disks now have a placebo keep_me_secure component (making them more convincing) [MDB IGNORE] (#19777)
* Fake nuclear authentication disks now have a placebo keep_me_secure component (making them more convincing) (#73890)

## About The Pull Request
In #73453, we were given the `keep_me_secure` component. Something I
think was long overdue, really.

However, it came at a terrible price...
<details>
  <summary>The Lore</summary>

Tell me, John Assistant with absolutely no disk verifier skillchip,
which nuclear authentication disk is real?

![image](https://user-images.githubusercontent.com/44104681/224259065-1176d783-355c-4d83-a7a2-d0a5fa1324fa.png)

The one on the plastitanium glass table?

![image](https://user-images.githubusercontent.com/44104681/224259331-3f7bc729-f451-4c52-9534-b4a86a433d91.png)

The one on the titanium glass table?

![image](https://user-images.githubusercontent.com/44104681/224259436-3aeecb65-57c8-4806-82e9-9e586d44d9e5.png)

Or the one on the reinforced plasma glass table?

![image](https://user-images.githubusercontent.com/44104681/224259583-2e2cb6ad-a6a7-4f7f-b012-9102fe51bc01.png)

The one on the plastitanium glass table you say?

![image](https://user-images.githubusercontent.com/44104681/224259817-1edfbe68-94a9-4f0d-be99-c52adf682774.png)
B-but how did you know?!
</details>

tldr: Anyone can tell the real disk apart from fakes because only the
real one has the `keep_me_secure` component examine message! This PR
fixes that by adding the `keep_me_secure` component to fake disks. It
won't actually do anything - and I added a check to `keep_me_secure` so
it won't process if there are no callbacks passed, avoiding Free Lag.
This just gives the fake disks the same examine message as the disk, so
it won't be so obvious.
## Why It's Good For The Game
Bugfix good. Futureproofing good. Fake disk noob trap bad. Disk verifier
skillchip should actually do something.
## Changelog
🆑
fix: Fake nuclear authentication disks have been updated to include the
holographic security sticker found on the real disk, one again making
them convincingly real to the average person.
code: The keep_me_secured component will now only process if it has at
least one callback argument passed.
/🆑

* Fake nuclear authentication disks now have a placebo keep_me_secure component (making them more convincing)

---------

Co-authored-by: Vladin Heir <44104681+VladinXXV@users.noreply.github.com>
2023-03-11 02:37:45 -08: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
SkyratBot
f4ba8c4017 [MIRROR] Reworks sabotage progression traitor objective [MDB IGNORE] (#19766)
* Reworks sabotage progression traitor objective (#73750)

## About The Pull Request

This one is a little bit of a more abstract change than my last traitor
objective rebalancing PR.

The idea here is that I think that the objectives which have you
sabotage a frequently used machine (lathes or the ORM, but we can maybe
expand it to others following this?) are potentially pretty good but
limitations in how the objective are tracked mean that people go about
them in a boring way which rarely inconveniences anyone.

I have reworked these objectives so that you can choose to apply a
provided item to the machine over 10 seconds. The next interaction
following this (clicking on it, or in the case of the ORM loading any
ore into it) will cause the machine to explode, destroying itself and
lightly damaging people nearby (explosion damage is... variable, but
it's a light explosion so it won't instantly kill anyone).
There is a 0.5 second grace period between the bomb triggering and the
explosion actually happening, which players can use to perform some kind
of tactical reaction or simply to feel regret.

Here's a video:
https://www.youtube.com/watch?v=xNIaHsA9YFE

Trapped machines will intermittently beep, though at a volume which is
hard to detect from more than two tiles away, and can be defused by
using a screwdriver on the machine.
If you choose to do this then you will get a little bonus to TC and
reputation, but only if the trap is successfully sprung. This means that
sabotaging a machine in an empty department is unlikely to lead to quick
success.
You can also still do it with screwdriver and crowbar way if you are
boring but this means you will only get reputation and not any
telecrystals.

The two objectives to destroy a radio server or the research machine
remain as they were.

Also I refactored how we set which machines are targets for these
objectives so it doesn't iterate over every machine in the world every
time.

## Why It's Good For The Game

Traitor objectives (and antagonist objectives in general) should:
- Present you with a somewhat engaging task
- Encourage you to interact with at least one other player (at least by
"attempting to sneak past them")
- Move the state of the round forward in some way, usually by creating
inconvenience for at least one other person

Prior to this change you could, and people often did, complete this
objective by accessing a machine that you already _have_ access to,
using a screwdriver and crowbar on it, and then reassembling it.
This prompts interaction with nobody, and inconveniences nobody.

Following this change people will be encouraged to:
- Actually destroy the machine.
- Probably harm somebody.
- Potentially cause some collateral damage.
- Make loud sounds and flashing lights to delight people of all ages.

Even if you opt to set the device in a little-used department and then
blow yourself up, that will prompt you to go and interact with someone
in medbay and will also look pretty suspicious in a way that's much
harder to track with the previous objective.

Also I might reuse this component again in the future, you never know.

## Changelog

🆑 Jacquerel, sprite by J(Clearly Lying)
balance: Traitor objectives which ask you to destroy lathes or the ORM
provide an optional bonus if you _booby trap_ the machine using a
provided tool. This causes the machine to explode the next time it is
interacted with.
balance: Performing the objective without rigging the machine to explode
awards no TC, using it awards more TC than it did previously.
/🆑

* Reworks sabotage progression traitor objective

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-11 01:57:18 +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
3af2663e7c [MIRROR] Makes "forced" opening and closing of doors way more sane [MDB IGNORE] (#19706)
* Makes "forced" opening and closing of doors way more sane

* Update airlock.dm

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 06:41:59 +00:00
SkyratBot
ca0e0983c7 [MIRROR] Refactor mob spawner component so that it is independent [MDB IGNORE] (#19560)
Refactor mob spawner component so that it is independent

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 06:08:35 +00:00
SkyratBot
53db0f7784 [MIRROR] Visual fixes (lighting, weird shit, old bugs from a parallax thing) [MDB IGNORE] (#19482)
Visual fixes (lighting, weird shit, old bugs from a parallax thing)

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 06:07:58 +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
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
SkyratBot
10f151c2f1 [MIRROR] Replaces Netherworld mob health scaling component [MDB IGNORE] (#19580)
* Replaces Netherworld mob health scaling component

* e

* Update mobs.dm

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 04:13:02 +00:00
SkyratBot
9325ea1758 [MIRROR] Refactor Statue & Creature unobserved behaviour [MDB IGNORE] (#19565)
* Refactor Statue & Creature unobserved behaviour

* Update statue.dm

* Update ProduceConsole.js

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 04:05:25 +00:00
SkyratBot
e2d531cfe0 [MIRROR] Fixes tackles rarely applying permanent slowdowns, improves min_distance tackle targeting [MDB IGNORE] (#19478)
* Fixes tackles rarely applying permanent slowdowns, improves min_distance tackle targeting

* Update tackle.dm

---------

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 02:45:02 +00:00
SkyratBot
88f8ef7adc [MIRROR] Netherworld Mobs Refractor [MDB IGNORE] (#19181)
* Netherworld Mobs Refractor

* Update statues.dm

* Update tgstation.dme

* w

---------

Co-authored-by: Comxy <tijntensen@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 02:44:53 +00:00
SkyratBot
e07ce00128 [MIRROR] Lightgeists won't try to heal toxin damage [MDB IGNORE] (#19399)
Lightgeists won't try to heal toxin damage

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 02:44:39 +00:00
SkyratBot
a993ba2461 [MIRROR] Fix chef food ownership to follow mind [MDB IGNORE] (#19517)
* Fix chef food ownership to follow mind (#73600)

🆑 coiax
fix: A chef who is beheaded, and the head stitched on another body will
still see their food as their own.
/🆑

## Why It's Good For The Game

Having food ownership be based on the mind, rather than the mob, makes
it resilient to body-swap, mind-swap, podcloning (cloning!?),
situations. Because even though you may have been reduced to just a
head, that stew is still yours, you still made it.

* Fix chef food ownership to follow mind

---------

Co-authored-by: Jack Edge <yellowbounder@gmail.com>
2023-03-10 02:41:30 +00:00
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