Commit Graph

1352 Commits

Author SHA1 Message Date
SkyratBot 4d9bed607f [MIRROR] Fixing this dead mouse related harddel [MDB IGNORE] (#23569)
* Fixing this dead mouse related harddel (#78150)

## About The Pull Request

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

Fixes https://github.com/Skyrat-SS13/Skyrat-tg/issues/23510
Fixes https://github.com/Skyrat-SS13/Skyrat-tg/issues/23506

![image](https://github.com/tgstation/tgstation/assets/13398309/fab09657-12e8-4fb8-9e84-05ef48c9d55e)

When the foodening added some args to the constructor of
`/obj/item/food` some instances of the constructor being passed stuff
got overlooked and were not updated.

This resulted in a mob ref potentially being passed in to
`starting_reagent_purity` in some cases, ultimately resulting in this
harddel.

@ SyncIt21 this is exactly the reason I was being so paranoid with #77946
the other day. Tracking constructor uses down can be such a pain when
they aren't prefaced with a type, and are almost guaranteed to get
overlooked during refactors if the compiler does not say anything about
it.

I hate DM.

edit: and I just tested this only to find a second bug with the ice
cream. I can confirm that it is in fact working now after fixing that
one too.

<details><summary>evil ice cream</summary>

![image](https://github.com/tgstation/tgstation/assets/13398309/46cd85cd-1051-46d9-9642-0275af098dbe)

</details>

## Why It's Good For The Game

Fixing a harddel that was causing many CI failures

## Changelog

🆑
fix: fixes creamatorium not producing any suspicious ice cream, and
fixes a dead mouse related harrdel
/🆑

---------

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

* Fixing this dead mouse related harddel

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
2023-09-07 18:39:21 -04:00
SkyratBot 87bfa7a61a [MIRROR] Fixes typo 'transfered', olive oil reaction repath [MDB IGNORE] (#23469)
* Fixes typo 'transfered', olive oil reaction repath

* Modular

* Update condiment.dm

* Update recipes_guide.dm

* Update _cup.dm

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-09-04 08:49:33 -04:00
SkyratBot f0b265b6bb [MIRROR] Foodening [MDB IGNORE] (#23440)
* Foodening

* Update chem_dispenser.dm

* Juicening?

* Update big_mortar.dm

* Adds crafting complexities to modular foods

* Olive oil repath

* Cooking oil repath

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-09-03 20:47:17 -04:00
SkyratBot a8994478cd [MIRROR] Watering hydroponic trays can no longer add more water than the container has. [MDB IGNORE] (#23436)
* Watering hydroponic trays can no longer add more water than the container has. (#78005)

## About The Pull Request

What it says on the tin. Previously it would not check whether the
amount set to transfer was greater than the amount contained, and so you
could have a gardening can with 10u of water fill the tray with 100u if
you set it to that.

Also, I removed a (seemingly) pointless part of the check in line 885.
All it achieves as far as I can tell is that if you have decimal (less
than 1) amounts of water in a container, it will be incorrectly added to
the nutrient count rather than the water count.
## Why It's Good For The Game
## Changelog
🆑
fix: containers can no longer add more water to hydroponic trays than
they actually contain.
fix: watering a hydroponic tray with amounts of water lesser than 1 will
no longer be added to nutrients rather than water
/🆑

* Watering hydroponic trays can no longer add more water than the container has.

---------

Co-authored-by: A miscellaneous Fern <80640114+FernandoJ8@users.noreply.github.com>
2023-08-31 14:26:08 -07:00
SkyratBot 061770c032 [MIRROR] Ports poppy and geranium sprites from beestation (plus flower crowns!!) [MDB IGNORE] (#23432)
* Ports poppy and geranium sprites from beestation (plus flower crowns!!) (#78022)

## About The Pull Request
Ported from
[here](https://github.com/BeeStation/BeeStation-Hornet/pull/5397).
I have for the longest time hated how geraniums and lilies are just a
resprite of poppies, so, with the permission of the original PR author

![image](https://github.com/tgstation/tgstation/assets/20053168/19480651-8924-40c7-b57d-ad4e6f06c6e2)
I present you, plants.

![image](https://github.com/tgstation/tgstation/assets/20053168/fa13cc16-929e-44ec-b4cf-065e06772c21)

![image](https://github.com/tgstation/tgstation/assets/20053168/318cc7c2-8f40-47b7-a6df-562255173027)
## Why It's Good For The Game
No more recoloured poppies, plants have soul now. Also flower crowns are
pretty.
## Changelog
🆑 xPokee, Pirill
add: Added flower crowns, craftable via the clothing menu.
image: Resprited geraniums, poppies, and lilys, along with changing
their worn icon.
/🆑

---------

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

* Ports poppy and geranium sprites from beestation (plus flower crowns!!)

---------

Co-authored-by: Alexis <catmc8565@gmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
2023-08-31 12:23:57 -07:00
SkyratBot 45a76cdd0e [MIRROR] Makes corncobs produce seeds [MDB IGNORE] (#23369)
* Makes corncobs produce seeds (#77944)

## About The Pull Request
This adds a new type of corncob for snapcorn and makes both types
produce their respective seeds when used in a seed extractor or portable
seed extractor.
## Why It's Good For The Game
No more using corncobs on the extractor for the message but not getting
any seeds.

![image](https://github.com/tgstation/tgstation/assets/53197594/15fc4949-37ab-47a6-9195-e3e2a6dcf010)

![image](https://github.com/tgstation/tgstation/assets/53197594/134fe504-9e9c-4ac9-8a67-22e2a097c785)
## Changelog
🆑
fix: fixed corn cobs not making seeds and lying to you in the text box.
/🆑

---------

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

* Makes corncobs produce seeds

---------

Co-authored-by: xXPawnStarrXx <53197594+xXPawnStarrXx@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
2023-08-27 10:46:35 -07:00
SkyratBot d21e06104f [MIRROR] Dunking handle_atom_del() in the trash bin. [MDB IGNORE] (#23183)
* Dunking handle_atom_del() in the trash bin.

* Update _box_magazine.dm

* Modular paths

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-08-18 12:17:04 -04:00
SkyratBot e7fb9b8465 [MIRROR] Harvesting podpeople seeds now requires explicit approval [MDB IGNORE] (#23041)
* Harvesting podpeople seeds now requires explicit approval (#77526)

## About The Pull Request

Podpeople seeds have a popup saying "This tray has no soul, are you sure
you want to harvest right now?", but it will still harvest if you x out
of the tab instead of clicking cancel. This flips it so you have to
explicitely say yes for it to go through.

## Why It's Good For The Game

When you X out of a tab, you did not mean to say yes.

## Changelog

🆑
fix: X'ing out of the podpeople no soul prompt will no longer harvest
the seeds.
/🆑

* Harvesting podpeople seeds now requires explicit approval

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-08-12 17:51:31 -04:00
SkyratBot d2b4b475cb [MIRROR] Spiders don't automatically grant an antag datum [MDB IGNORE] (#23029)
* Spiders don't automatically grant an antag datum (#77523)

## About The Pull Request

Fixes #77501

Spider egg ghost role spawners grant the spider antag datum, rather than
the act of being a spider.
This means that gold core, mapstart, polymorph belt, and other spiders
will not have an antagonist datum.

While doing this I also made a new abstract `mob/living/basic/spider`
type which all three kinds of spider life stage (`spiderling`, `young`,
`giant`) extend from, because there was a gross amount of copied code.
Now there isn't.

Also the Flesh Spider and Event Midwife eggs now simply hatch adult
spiders instead of child ones.
This is because there is no reason for either of these to have a two
minute wait time before they get going. Midwife spiders spawned by the
event should just start spidering immediately, and Flesh Spiders are
made by changelings and shouldn't be effected by measures introduced to
balance the spider gamemode.
Eggs which are laid during a round and _can_ hatch into midwife spiders
still hatch baby spiders.

Also I swapped some white pixels on the animation of the ambush
spiderling for a different colour because they looked bad.

## Why It's Good For The Game

While the policy is always "if you turn yourself into something, you're
not an antagonist" the presence of the antag datum still confuses
people. Plus that code was gross and I didn't like it.

## Changelog

🆑
fix: Giant Spiders only have an antag datum if created by the round
event.
balance: Flesh spider eggs hatch into adult spiders instead of baby
spiders.
balance: The eggs spawned by the start of the spider infestation event
hatch into adult Midwife spiders instead of baby ones.
/🆑

* Spiders don't automatically grant an antag datum

* Modular paths

* Modular paths

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-08-12 00:17:56 -04:00
SkyratBot d8ed857b3e [MIRROR] Biogenerators can be unwrenched [MDB IGNORE] (#22971)
* Biogenerators can be unwrenched (#77366)

## About The Pull Request

Biogenerators can be unwrenched

## Why It's Good For The Game

If significantly more round impacting things like smoke machines and
hydro trays that drop plants that turn into meth bath salts krokodil
smoke can be unwrenched i dont see why this cant

## Changelog

🆑
qol: Biogenerators can be unwrenched
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>

* Biogenerators can be unwrenched

---------

Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
2023-08-09 17:04:19 -04:00
Bloop 7fe39be6a0 [MISSED MIRROR] make the mushroom a basic monster (#76570) (#22760)
make the mushroom a basic monster (#76570)

## About The Pull Request
i maked the mushrom from the simple monster to a basic monster so he is
dont a simple anymore but now he is a basic.i followe the instrucions in
the guide learn-ai.md to maked this pr. i also give the mushrom a extra
feture he will go and hunt food mushroms on the floor to ate them and
when he ate them he will heal small his hp

## Why It's Good For The Game
he is now a basic monster so he is not simple anymore. it is good
because he is a more advance ai and he will stil go and do the same stuf
he did when he is simple but he is now a basic

## Changelog
🆑
refactor: Mushrooms have been refactors, please report any
bugs/unintended behavior
add: the mushroom basic mob can eat the mushroom plant to heal itself
/🆑

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
2023-07-28 22:19:15 -07:00
SkyratBot 888801fd05 [MIRROR] Adds a unit test to stop elements from using identical lists for their arguments. [MDB IGNORE] (#22732)
* Adds a unit test to stop elements from using identical lists for their arguments. (#76322)

## About The Pull Request
Ok, so a few days ago I made an issue report about multiple instances of
identical elements being generated because of uncached lists.
ninjanomnom (the mind being the element datums) cleared it up and said
an implementation of GetIdFromArguments() that also checks the list
contents wouldn't be worth the performance cost, while adding that a
unit test should be written to check that it doesn't happen at least
during init, which should catch a good chunk of cases.

Also, i'm stopping RemoveElement() from initializing new elements
whenever a cached element is not found. Ideally, there should be a focus
only unit test for that too, but that's something we should tackle on a
different PR.

Some of the code comments may be a tad inaccurate, as much as I'd like
to blame drowsiness for it. Regardless, the unit test takes less than
0.2 seconds to complete on my potato so it's fairly lite.

## Why It's Good For The Game
This will close #76279.

## Changelog
No player-facing change to be logged.

* Adds a unit test to stop elements from using identical lists for their arguments.

* Fixes unit test

* seeing double

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-07-27 20:08:55 -04:00
SkyratBot 46ee262598 [MIRROR] made the bee a basic insect [MDB IGNORE] (#22652)
* made the bee a basic insect (#76971)

## About The Pull Request
the bee now a baisc insect he will now go to find his home and he will
go and pollinated the plants and helped the queen make children by
polliniting the plants and he will. the queen will leve the hive more
rarely than the normal bees so she can stay in the hive to make kids

## Why It's Good For The Game
the bee now is a basic insect so it means he have a better ai

## Changelog
🆑
balance: the bee now can fly over the machines so its easy for him to go
to the hydroponics machine
fix: player bees now will not be stuck inside the hive if he entered it,
they can now leave it
fix: fixed a har deleted when the hive is deleted all the bees still
have a refence to the hive now its fixed
fix: now when a player interacted with the bee hive the bees will now
leave the hive to defend the hive (it was glitched)
refactor: the bees now are a basic insect.
/🆑

* made the bee a basic insect

* Merge conflict

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-07-24 01:21:59 -04:00
SkyratBot 8782f19258 [MIRROR] Stabilizes code that flicks overlays to view/all clients [MDB IGNORE] (#22601)
* Stabilizes code that flicks overlays to view/all clients (#76937)

## About The Pull Request

Rather then using images and displaying them with client.images, we can
instead simply make an object, give it the passed in image/MA's
appearance, and then vis_contents it where we want.

If you want to animate things, you can just use the atom we return from
the proc call.

This ends up costing about 25% of the best case scenario (one guy
online)
It will save more time with more users, but it also allows us to avoid
the hypersuffering that is passing GLOB.clients into the flick proc. So
I think I'm happy enough with this.

For context, here's average per call cost for flick_overlay_view() right
now.
It winds between 5e-5 and 1e-4. With these changes we should pretty
consistently hit the low end of this, because none of our work really
varies all that much.

![flick_avg](https://github.com/tgstation/tgstation/assets/58055496/3483e022-9cc5-490a-be5e-eb79f4e2110b)

(I was using sswardrobe for this, but it ends up being a lot slower so
like, why yaknow)
```
/atom/movable/flick_visual
        New: 3.65625ms
        Provide: 7.4375ms
        Qdel: 9.4375ms
        Stash: 9.46875ms
```

## Why It's Good For The Game

Using our tools should not make your code eat cpu time for no reason.
Hearers is expensive, iterating clients is expensive, let's not be
expensive.

* Stabilizes code that flicks overlays to view/all clients

* Not every client needs to see this

* and these could be using SECONDS

* grr DM

* Convert these modular files to seconds too

* Update dance_machine.dm

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-07-20 18:59:09 -04:00
SkyratBot 2f552919c1 [MIRROR] Icons folder cleaning wave two [MDB IGNORE] (#22454)
* Icons folder cleaning wave two

* Merge conflict resolution

* Modular path hell

* hmm

* Update 2022-10.yml

* Another modular thing

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-16 00:41:18 -04:00
SkyratBot 2f5c7f8389 [MIRROR] Icon folder cleaning wave one [MDB IGNORE] (#22374)
* Icon folder cleaning wave one

* Fixe a merge conflict

* Fixes some more merge conflicts

* Fixes some modular icon paths

* Fixes even more modular icon paths...

Hopefully that's the last of them

* Fixes some merge discrepencies

* More merge issues

* ok

* not ok

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-13 16:24:33 -04:00
Zergspower 68a899f5bd [Manual Mirror Fix] Coroner additions and tweaks (#76534) (#22380)
* Coroner additions and tweaks (#76534)

## About The Pull Request

Serrated bone shovels can be created with any kind of shovel now, not
just a spade (???)

Serrated bone shovels can be used in place of circular saw in most
surgeries.

Added a duller (still deadly) variant of the serrated bone shovel as
coroner mail.

Autopsy scanners now act as advanced health analyzers on dead and
seemingly-dead people.

Increased the force, throwforce, and wound bonus of inert ritual knives
and scythes.

Coroner gloves can quickly apply medicine like nitrile gloves.
## Why It's Good For The Game

> Serrated bone shovels can be created with any kind of shovel now, not
just a spade (???)

Weird ass bug.

> Serrated bone shovels can be used in place of circular saw in most
surgeries.

It's serrated, it's cool, it's rare, it has a fast toolspeed.

> Added a duller (still deadly) variant of the serrated bone shovel as
coroner mail.

Very thematic for the coroner, should probably also be a heirloom item
but whatevs. Weaker so there's still a reason to seek out the OG.

> Autopsy scanners now act as advanced health analyzers on dead and
seemingly-dead people.

Scanning corpses is pretty important during surgery - it tells you how
much blood they have, organ damage, diseases... these things don't
appear in the surgical computer readout, which means the coroner has to
go out of his cave to pick up a boring light blue meatbag wound scanner.
This also incentivizes coroners to do their job by giving them something
cool that only works on dead bodies.

> Increased the force, throwforce, and wound bonus of inert ritual
knives and scythes.

These two options in the MortiDrobe are pretty frickin' badass,
especially with how SICK the Coroner looks with them, double especially
in combat.


![image](https://github.com/tgstation/tgstation/assets/53100513/98c6f8a5-3e5a-41a9-8a9c-cb6b82ecc0b8)

However, there's the large issue that as actual weapons they're really,
really weak. Not enough damage, when I use them in combat I both feel
badass but also get a nagging feeling in the back of my mind that I'm
intentionally gimping myself, and with only 10 damage I can *really*
feel it. I find it unfair that these are objectively worse than a
welding tool or even a Butcher's Cleaver when they're a lot more
involved to find, and scarce besides. These arguments apply equally to
the Wizard's ritual knife, and the scythe.

Additionally on the scythe, the crew really needs more good ghetto
weaponry that isn't the boring same ol' of baseball bats, spears,
cleavers... and making scythes useful is a great way to help bridge that
gap. They deal a satisfying amount of damage now, with the clear
downside, of course, being that they're bulky and hard to lug around.

> Coroner gloves can quickly apply medicine like nitrile gloves.

'Fast medicine' doesn't just cover sutures, it also covers medical gel.
Specifically, sterilizer gel. I find it annoying that the Coroner is
encouraged to give up his drip for the boring life-saver nitrile gloves,
because the difference in applying time really does make a difference -
it makes gel applying go from annoying to smooth, which is important
considering the whole purpose of sterilizer gel is to make surgeries go
faster. The Coroner has surgery and thus medical locker access to begin
with, so this isn't a balance problem, (and nitrile gloves are found by
the dozen anyways) especially with how rare the coroner gloves are.
## Changelog
🆑
fix: Serrated bone shovels can be created with any kind of shovel now,
not just a spade (???)
add: Serrated bone shovels can be used in place of circular saw in most
surgeries.
add: Added a duller (still deadly) variant of the serrated bone shovel
as coroner mail.
add: Autopsy scanners now act as advanced health analyzers on dead and
seemingly-dead people.
add: Increased the force, throwforce, and wound bonus of inert ritual
knives and scythes.
add: Coroner gloves can quickly apply medicine like nitrile gloves.
/🆑

* Modular Scythes

---------

Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
2023-07-11 22:07:31 -07:00
SkyratBot 1e4ecf1f66 [MIRROR] [NO GBP] Plant bags harvesting fix and other hotfixes for floor sickness [MDB IGNORE] (#22237)
* [NO GBP] Plant bags harvesting fix and other hotfixes for floor sickness (#76479)

## About The Pull Request

After #76018 people reported that you need to do an extra click when you
harvest with plant bag because harvest always dropped on top of
hydrotray instead of going into the bag.

And It looked bad when people just left their harvest on hydrotrays
without picking it up.

I reverted the change that made harvest spawn on top of hydrotrays to
address both issues.

Hydrotrays still protect from germs if the plant was harvested using
telekinesis.

Fixes #76462

Also fixes sloppy mistake in Carpellosis - I was checking whether the
target has mouth instead of owners mouth in the gnashing check.

And it makes patches not become dirty, showing warning message. They
weren't infective anyway.

## Why It's Good For The Game

Fix

## Changelog

🆑
fix: Plant bags now properly harvest items when you click on hydrotray
with it, and don't pick up anything except the harvest
fix: Carpellosis gnashing checks owner's teeth availability instead of
the target's teeth
fix: Patches don't have a message saying that they're dirty
/🆑

* [NO GBP] Plant bags harvesting fix and other hotfixes for floor sickness

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
2023-07-04 15:58:32 -07:00
SkyratBot d7b54593f0 [MIRROR] Triples production of rice and flour [MDB IGNORE] (#22177)
* Triples production of rice and flour (#76317)

* Triples production of rice and flour

---------

Co-authored-by: carshalash <carshalash@gmail.com>
2023-07-01 11:22:06 -07:00
SkyratBot f485737ea1 [MIRROR] Eating from floor may cause disease [MDB IGNORE] (#22151)
* Eating from floor may cause disease

* Update turf.dm

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-07-01 01:30:17 -07:00
Nerevar 6b57e50614 Makes Podpeople Hair Recolorable 3-D: The Revenge (#19908)
* wew

* hell yes fuck yes

* Replace podhair with modular tricolor podhair

Co-authored-by: Nerevar <12636964+Nerev4r@users.noreply.github.com>

* help me oh my god

* we're cooking

* done

* what if i were to purchase fast food

* yeah baby

* so true bestie

* let's fucking go

* screenshot tests updated

* wew

* thanks in_phaze !

* we put our whole coderussies into this

* weird but ok

---------

Co-authored-by: Snakebittenn <12636964+Snakebittenn@users.noreply.github.com>
Co-authored-by: Penelope Haze <out.of.p.haze@proton.me>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-06-28 15:59:19 -04:00
SkyratBot 0d66fb7dbc [MIRROR] Gives Holywatermelon inhand sprites [MDB IGNORE] (#21937)
* Gives Holywatermelon inhand sprites (#76054)

## About The Pull Request
Gives holymelons in hand sprites
Closes https://github.com/tgstation/tgstation/issues/75981
![New Piskel
(2)](https://github.com/tgstation/tgstation/assets/84478872/0fabe183-0571-4dcb-95cb-7d8f85f09dc4)
![New Piskel
(4)](https://github.com/tgstation/tgstation/assets/84478872/9f1f91bd-12ea-4b3d-97ff-dc702e242a1b)

![image](https://github.com/tgstation/tgstation/assets/84478872/4603c51e-56a9-4dfd-81da-3c953fe9eab5)

![image](https://github.com/tgstation/tgstation/assets/84478872/b7bfb71b-3246-4fd3-a5ce-aa822ae1ca90)

![image](https://github.com/tgstation/tgstation/assets/84478872/9f916012-ecb8-4445-9779-1063ca73f970)

![image](https://github.com/tgstation/tgstation/assets/84478872/e265a513-1cdd-47fc-969d-b008813c5c2b)

## Why It's Good For The Game
Both was in a issue report and it kind of sucks for cultists to not be
able to tell who has this item that counters every single one of their
spells
## Changelog
🆑
fix: fixes holymelons not having inhand sprites
/🆑

* Gives Holywatermelon inhand sprites

---------

Co-authored-by: Hoolny <84478872+SethLafuente@users.noreply.github.com>
2023-06-21 15:11:14 +02:00
SkyratBot 6dfe17306c [MIRROR] Pulls apart the vestiges of components still hanging onto signals [MDB IGNORE] (#21738)
* Pulls apart the vestiges of components still hanging onto signals

* update modular

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-18 13:18:23 +00:00
SkyratBot df7455f2a4 [MIRROR] Named barrels [MDB IGNORE] (#21850)
* Named barrels (#75976)

![dreamseeker_qLlw7wAl94](https://github.com/tgstation/tgstation/assets/3625094/747f61a0-533f-4cc2-ac61-2901d2d3afb4)

## About The Pull Request

Barrels are nice stationary reagent containers, but it's hard to use
many of them because they're non-transparent and to see the reagents
with science glasses, you need to open the lid.

Now you can name barrels to not mistake them.

## Why It's Good For The Game

You don't need to open the barrel to figure out what you're going to get
from the tap.

## Changelog

🆑
qol: You can name barrels with a pen now, changing its icon
/🆑

* Named barrels

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
2023-06-14 21:39:09 -07:00
SkyratBot de4f2add68 [MIRROR] Mafia update: Return to body when the game ends [MDB IGNORE] (#21669)
* Mafia update: Return to body when the game ends (#75258)

## About The Pull Request

Mafia players are now sent to their last body when the Mafia game ends,
and in the meantime they have text saying why they are dead.
They can still be revived during this period, and when the game is up
they'll be forced back into their body if alive, if they are dead then
they'll just be able to re-enter their corpse as normal.

Also since I was poking around in Mafia stuff:
- I removed mafia observing because it was unused (this previously was
used to allow ghosts to see Changeling chat).
- I fixed it being a Draw when there was one Town or Changeling left.
- I fixed the role list showing some roles multiple times
- I fixed the Chaplain not being able to use their night ability (and
therefore being completely useless)
- I added prevention to prevent Admins from causing runtimes or straight
up crashing the server, with a very real chance it can happen purely by
accident, through the Admin UI.

I'm hoping to change how this actually does the job because I find it to
be very bad coding practices, but my problem is that everyone who signs
up for Mafia is a ghost, and they are added into the game through their
CLIENTS, so we don't have access on the mafia controller or the role, to
the player's previous body or mind, without this shit.

Also adds a new mafia board icon

Made by tatax and I find it fits more the theme of Mafia than the
current one.

New UI

* Mafia update: Return to body when the game ends

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-06-05 14:22:20 -07:00
SkyratBot e9af1f27a9 [MIRROR] Removes a lot of boilerplate from hydroponics apply, adds a mushroom mechanic for milk as implied by comments [MDB IGNORE] (#21412)
* Removes a lot of boilerplate from hydroponics apply, adds a mushroom mechanic for milk as implied by comments (#75491)

## About The Pull Request

- Removes a ton of boilerplate from `on_hydroponics_apply`
- Replaces `chems.get_reagent_amount(type)` with `volume`. The former is
a roundabout way of accomplishing the latter, the only thing the proc
did was add un-necessary iterating and also round to the chemical
quantisiation level, which wasn't really necessary as most locations
rounded anyways.

- While doing this, I saw th is comment: `Milk is good for humans, but
bad for plants. The sugars cannot be used by plants, and the milk fat
harms growth. Not shrooms though. I can't deal with this now...` This
was super easy to just throw in so I did it.

- Additionally, I noticed Uranium and Radium had this var, `tox_damage`,
which was ... the same for both, but one used REM and one didn't, but it
shouldn't have been using REM since it was multiplied by REM in the
proc... so I removed the REM from the latter, making it doubly strong
(0.5 -> 1). I did this just because I could use it nicely for the hydro
proc but... I unno.

## Why It's Good For The Game

Makes it a bit clearer on working with hydro chems

## Changelog

🆑 Melbert
balance: Milk no longer harms the potency of mushrooms. Apparently it's
good for them?
balance: Radium now does slightly more tox damage than Uranium
code: Removed a ton of boilerplate from chem hydro interactions
/🆑

* Removes a lot of boilerplate from hydroponics apply, adds a mushroom mechanic for milk as implied by comments

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-05-25 17:25:18 -07:00
SkyratBot 13970a9399 [MIRROR] honeycomb fixes [MDB IGNORE] (#21392)
* Refactors honeycomb into a food (#75551)

## About The Pull Request

Updates to honeycomb for the new reagent system

## Why It's Good For The Game

The plant bag can hold honeycomb but the all-in-one grinder does not
accept honeycomb from the plant bag, requiring manual removal and
placement into the grinder. This speeds up workflow and makes bees less
clunky and more accessible.

## Changelog

🆑
refactor: honeycomb is now edible
fix: all-in-one grinder now notifies the user when trying to dump an
empty bag
fix: all-in-one grinder now accepts honeycomb from plant bags
/🆑

* honeycomb fixes

* fixes

* almost slipped me by

---------

Co-authored-by: Oreo <20830349+Peliex@users.noreply.github.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
2023-05-24 15:38:40 +00:00
SkyratBot 3696b1eb88 [MIRROR] Converts Killer Tomatoes to Basic Mobs [MDB IGNORE] (#21301)
* Converts Killer Tomatoes to Basic Mobs

* skyrat modular changes

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-05-20 23:44:02 -07:00
SkyratBot e27eba7f66 [MIRROR] Makes fire blossoms glowy. [MDB IGNORE] (#21251)
* Makes fire blossoms glowy. (#75392)

## About The Pull Request
They have bioluminescence trait as endershrooms, but don't glow like
endershrooms.
That's how it looks when grown:

![image](https://github.com/tgstation/tgstation/assets/93882977/65aa33ba-3b8e-4ad8-a347-d44f256a15f8)
And it has a weaker light when it's harvested:

![image](https://github.com/tgstation/tgstation/assets/93882977/7c1ec59d-624d-44cc-bf42-5e850e625ba6)
## Why It's Good For The Game
It's cool.
## Changelog
🆑
add: Fire Blossoms are now glowy.
/🆑

* Makes fire blossoms glowy.

---------

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
2023-05-18 18:58:44 +02:00
Tom 8f68506ce6 Add new chems to plants that allow foam effects (#69221) (#21206)
Adds a 10% Fluorine gene to Corpseflowers, and a 5% Sulfuric Acid gene to Novaflowers

Co-authored-by: Tim <timothymtorres@gmail.com>
2023-05-15 19:35:33 -07:00
coldud13 ea8805371e [MANUAL MIRROR] Makes the juice of death berries poisonous, like poison berry's (#72443) (#21135)
Makes the juice of death berries poisonous, like poison berry's (#72443)

Found out poison berry juice existed from the wiki and code diving,
however, only poison berries juice into it. Death berries, despite their
stronger poison, juice into normal berry juice instead. This changes
that to have death berries also juice into poisoned juice.

Mostly a consistency change, it doesn't make sense for the berry with
the stronger poison to not juice into something poisonous as well, when
a berry that's less poisonous does do so. For transparency's sake, this
will make the death berry marginally stronger, as with plant traits you
can get the juiced reagent inside of a plant without juicing it.

Co-authored-by: Unit2E <41054578+Unit2E@users.noreply.github.com>
2023-05-15 14:43:03 +01:00
SkyratBot 5e9d2379bf [MIRROR] Stock Part Resprite [MDB IGNORE] (#21014)
* Stock Part Resprite

* wew

* alright

---------

Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-05-09 04:10:18 +01:00
SkyratBot c4d4e1da63 [MIRROR] Minerals have been refactored so costs and minerals in items are now in terms of mineral defines. [MDB IGNORE] (#20916)
* Minerals have been refactored so costs and minerals in items are now in terms of mineral defines.

* AI GEN RUN ONE

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-05-03 22:48:10 +01:00
SkyratBot 97ed91be26 [MIRROR] Auto-wiki setup for soup [MDB IGNORE] (#20851)
* Auto-wiki setup for soup (#74931)

## About The Pull Request

Sets up an auto-wiki run for Soup.

It's all in the in game cookbook, but keeping the wiki up to date is
good.

Still figuring out how auto-wiki works with the help of Smithers, so it
might need to be updated in a follow-up PR.

```
{{Autowiki/SoupRecipeTemplate
|name=Tomato Soup
|taste=tomato
|foodtypes=Vegetables, Fruits
|description=Drinking this feels like being a vampire! A tomato vampire...
|icon=soup/Tomato Soup
|requirements=50 units Water, 2 tomatos, at temperature 450K
|results=30 units Tomato Soup, 20 units Tomato Juice
}}
```

Templates:
https://tgstation13.org/wiki/Template:Autowiki/SoupRecipeTemplate
https://tgstation13.org/wiki/Template:Autowiki/SoupRecipeTableTemplate

* Auto-wiki setup for soup

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-05-01 14:11:32 -07:00
SkyratBot 7028b1d32e [MIRROR] Converts Spiderlings from Structures to Basic Mobs [MDB IGNORE] (#20852)
* Converts Spiderlings from Structures to Basic Mobs (#75001)

If I could've made this more atomic, I would have in a heartbeat, trust
me.

## About The Pull Request

Hey there. People were mocking us for having spiderlings still be a
subtype of `/obj/structure`. I decided to take a lot of time to fix
that. A lot of behavior it was implementing was just pseudo-mob stuff,
so it was actually easier than it looked for the raw conversion. A lot
of the footwork on spider stuff in the basic framework was already done
previously by Jacquerel, so that was pretty nice.

However, there are two new things that weren't introduced in the code
that had to be put in.

A) A component to handle growth and differentiation into a mob. This may
have already existed, no clue. If it does (and it's NOT
evolutionary_leap), let me know.
B) AI Behavior to handle seeking out a vent, entering a vent, and then
exiting out of a different vent. I may have gone a bit wacky on the
code, but it certainly works as expected (spiderling goes in one vent,
exits the other). Let me know if you can think of a way it can be better
optimized, but it was deliberately written to be very failsafey in case
shit goes yonkers.

One fundamental difference between structure spiderlings and basic mob
spiderlings (beyond the AI and not just a random prob() check for
movement) is the fact that they had vent movement coded in... but we
_really_ don't need stuff like that for our intents and purposes. If the
range turns out to be too OP in the current framework, we can always
change it up a bit, but also there's a _lot_ of vents we can end up in
the station (my testing had one spiderling end up in the AI sat to get
obliterated).
## Why It's Good For The Game

Spiderlings aren't structures! They behave like a mob should! Players
can possess spiderlings! They work seamlessly with differentiating into
a giant spider! Better AI! More room for people to add into this very
under-utilized buggers!
## Changelog
🆑
refactor: Spiderlings are now basic mobs, report any complete
weirdness/deviation from known behavior. They should be a lot more
intelligent now though.
add: AI Spiderlings are super fragile, but they're also super fast,
especially when they get into a vent. Once they're in circulation, they
could end up everywhere! Maybe in the armory, maybe in a locked closet
in maintenance. Be sure to be vigilant and splat them whenever you can
to save the station from a whole lotta heartache!
/🆑

---------

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

* Converts Spiderlings from Structures to Basic Mobs

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
2023-04-30 12:54:58 -07:00
SkyratBot 7ddd343a70 [MIRROR] Move dirt [MDB IGNORE] (#20848)
* You can now move dirt (#75028)

## About The Pull Request

Changed the recipe for dirt piles from 3 sandstone bricks to 3 sand.
And made the dirt pile drop these 3 sand on deconstruction instead of
just disappearing.

![dreamseeker_Lj6jELZPjb](https://user-images.githubusercontent.com/3625094/235268536-c9835fa0-ce31-4bd3-a75c-ef2f3dcc7da7.gif)

Also fixed hydrotrays resetting their water and nutriments on
construction.

## Why It's Good For The Game

You could accidentally click on the wrong mouse button and loose your
dirt pile instead of uprooting a plant.
And it didn't make sense why you would need to turn sand into bricks
before making a pile out of it.

## Changelog

🆑
qol: Dirt pile is crafted from sand instead of sandstone and drops it on
deconstruction
fix: You can't have free water and nutriments by rebuilding hydrotray
/🆑

* Move dirt

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
2023-04-30 10:56:18 +01:00
SkyratBot dad84df983 [MIRROR] Makes a whole bunch of wooden objects flammable [MDB IGNORE] (#20670)
* Makes a whole bunch of wooden objects flammable (#74827)

## About The Pull Request

This whole PR started because I realized that baseball bats are not
actually flammable which I found weird, then I looked at a whole bunch
of other stuff that really should be flammable but also isn't.

## Why It's Good For The Game

Makes wooden objects behave slightly more consistently? Honestly, most
of these seem like oversights to me.

## Changelog

🆑
balance: The following structures are now flammable: Picture frame,
fermenting barrel, drying rack, sandals, painting frames, paintings,
spirit board, notice board, dresser, displaycase chassis, wooden
barricade
balance: The following items are now flammable: Baseball bat, rolling
pin, mortar, coffee condiments display, sandals, wooden hatchet, gohei,
popsicle stick, rifle stock
/🆑

* Makes a whole bunch of wooden objects flammable

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
2023-04-21 01:42:34 +01:00
SkyratBot 92f3327227 [MIRROR] refactors poles and trees into basic mobs [MDB IGNORE] (#20649)
* refactors poles and trees into basic mobs (#74812)

## About The Pull Request
refactors poles and trees into basic mobs. If trees now see you holding
a chainsaw, hatchet, or some wood they will get angry and knock you out
for longer. Poles will run around giving some of their charge to APCs
they find along the way. i did them both in this PR coz poles were a
subtype of trees.

## Why It's Good For The Game
refactor

## Changelog
🆑
refactor: refactors trees into basic mobs
refactor: refactors poles into basic mobs
add: If trees now see you holding a chainsaw, hatchet, or some wood they
will get angry and knock you out for longer
add: Poles will run around giving some of their charge to APCs they find
along the way
fix: cells charged by the pole will now have their icon correctly
updated to reflect their charge
/🆑

---------

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

* refactors poles and trees into basic mobs

---------

Co-authored-by: SMOSMOSMOSMOSMO <95004236+SmoSmoSmoSmok@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2023-04-20 02:24:29 +01:00
SkyratBot ef7ee99bc5 [MIRROR] Kills an old macro involving hydro trays [MDB IGNORE] (#20625)
* Kills an old macro involving hydro trays (#74785)

## About The Pull Request

- Axes `TRAY_NAME_UPDATE`, replaces it with `update_name`
- Unset particles in `set_seed`
- Gives trays a description (they never had one?)
- Update appearance when basin is emptied

## Why It's Good For The Game

More accurate updates when changes are done to the tray.

## Changelog

🆑 Melbert
qol: Hydroponics trays should update more snappily now
/🆑

* Kills an old macro involving hydro trays

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-04-17 21:58:17 -07:00
SkyratBot 0d5e4e4ec9 [MIRROR] Basic pollen-particles for plants pollenating. [MDB IGNORE] (#20592)
* Basic pollen-particles for plants pollenating. (#74675)

Legally endorsed nightcode 👍

## About The Pull Request

When 2 plants are adjacent to each other, they will begin to
cross-pollenate, sharing their potency, instability, and yield values
between the two. This has been in the game since #50001 , however we
never added a more clear visual tell that cross-pollenation exists.
Thanks to the magic of *barticles*, now you can!

![image](https://user-images.githubusercontent.com/41715314/231359363-07c7f354-d2f6-4d5e-8b59-5f968781135f.png)
_pictured: wheat and tomatoes pollenating_

Adds a simple particle effect, largely lifted from bonfires, that
indicates that two plants are sharing stats at minimum.

## Why It's Good For The Game

Following discussion from #74621, it was decided we needed and preferred
a more visual cue to the mechanic. As a general point I think that's a
longer term fix to the issue, and this adds more visual clarity to an
otherwise arcane mechanic (heh).

Looking for feedback on how to improve the look of the particles but for
fast nightcode I think I did okay for a first try

## Changelog

🆑
imageadd: Hydroponics trays now have pollen particles that they generate
when they share stats and chems. Non-allergenic!
/🆑

---------

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

* Basic pollen-particles for plants pollenating.

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-04-17 17:53:30 +01:00
SkyratBot 9a594755f3 [MIRROR] Renames delta time to be a more obvious name [MDB IGNORE] (#20507)
* Renames delta time to be a more obvious name

* updates to our code

---------

Co-authored-by: oranges <email@oranges.net.nz>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-12 20:45:43 +01:00
SkyratBot fe8fc4d010 [MIRROR] Split weapons_and_items.dmi icons into their own categories [MDB IGNORE] (#20360)
* Split weapons_and_items.dmi icons into their own categories

* update modular

* I hate the dme

* random ass define removal fix

* missing icons fix

---------

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-12 19:53:43 +01:00
SkyratBot 8f11ad41b0 [MIRROR] Makes uprooting and digging out plants use tool_behaviour instead of just typepath of shovel. [MDB IGNORE] (#20494)
* Makes uprooting and digging out plants use tool_behaviour instead of just typepath of shovel. (#74630)

## About The Pull Request
Closes https://github.com/tgstation/tgstation/issues/74564.

You can now uproot plants with any item that has TOOL_SHOVEL flag
instead of just item/shovel. So you can use trench tool for this
purpose.
And the same with digging out plants. It was originally limited to just
spade shovel, which is rather strange considering that there is bone
shovel recipe and one of it's ingridients is spade.

Changed icon of omnitool's shovel because spade won't be the only shovel
used for uprooting plants.

Also removed a bunch of code and it didn't affect anything in my tests
so I'm assuming it was unused and completely useless.
Maybe i'm not right and it affects something tho.
## Why It's Good For The Game
Trench tool can be used as a normal shovel.
## Changelog
🆑
fix: You can now uproot and dig out plants with any shovel and not just
spade.
/🆑

* Makes uprooting and digging out plants use tool_behaviour instead of just typepath of shovel.

---------

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
2023-04-12 04:10:38 +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 e299106b73 [MIRROR] Fixes coderbus item layering [MDB IGNORE] (#20332)
* Fixes coderbus item layering (#74481)

## About The Pull Request

Pixel y offsets were causing the items to draw behind the seats, which
is cringe, and the grown items randomly offset themselves, which lead to
more shitfuck. This solves those two issues.

Yes I did add bespoke code for the snowflake reference ruin. Neener
neener.

## Why It's Good For The Game

![image](https://user-images.githubusercontent.com/58055496/229493901-6fdb5d71-3456-47dc-a042-62b5c85102e6.png)

## Changelog
🆑
fix: The coderbus passengers layer properly again
/🆑

* Fixes coderbus item layering

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-04-05 08:35:54 -04: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 6d08ad8984 [MIRROR] Machines can now be pried open multiple times and maintain their initial densities [MDB IGNORE] (#20044)
* Machines can now be pried open multiple times and maintain their initial densities (#74163)

## About The Pull Request
These changes fix how machines are pried open with crowbars. Currently,
most machines can be pried open, but many of them have no method for
being closed again. This means they can be pried once, and then never
again (as their internal logic has them stuck in an "open" state).

Additionally, the densities of these machines is also inconsistent, as
density is tied to the procs for opening/closing machines (open =
non-dense, closed = dense). Thus, these new changes allow desired
densities to be passed to `open_machine()` and `close_machine()`, as
well as `default_pry_open()`, meaning that atypical machine densities
can be maintained (e.g. machines that should remain dense when open, or
non-dense when closed).

I've also added a `close_after_pry` boolean parameter to the
`default_pry_open()` proc, which determines whether to immediately close
a machine after opening it. This is useful for machines that don't
really have a use case for remaining open, often lacking a sprite to
represent this state as well.
* Note: Opening and immediately closing machines with this boolean will
still drop their contents onto the floor, but will now immediately
"close" in their logic, allowing for further prying attempts in the
future.

It's worth noting that this implements default density values for these
procs, which match the existing behavior for machines, so as to
(hopefully) not disrupt existing or expected machine behavior.

Two caveats to these changes currently exist:
1. On machines that immediately close after prying, the prying action
can now be spammed to the chat with repeated clicking. I'm uncertain if
this needs some sort of spam protection or if it's fine as is.
2. I've only been able to manually test this code. I'd love to write
unit tests for it, as it affects a lot of different machines, but don't
know where to begin with DM Unit Testing (or which files would be good
examples to reference in the code base).
* Note: I did manually test each and every machine that calls
`default_pry_open()` and they all seem to be working correctly. (Except
for `obj/machinery/plumbing/sender`, but that doesn't seem to need
prying, as it has no contents to drop, only reagents.)

As always, let me know if any improvements/changes should be made.

This closes #26833.

## Why It's Good For The Game
These changes allow crowbar prying to correctly occur multiple times on
any machine, which is intended behavior. It prevents player confusion
that could occur when a machine couldn't be pried open a second time
during a shift, even though it had previously been pried before, forcing
players to question themselves. (Are they missing something? Did they
perform the action a different way last time? Is the machine actually
still powered on instead of off? Etc.)

These changes also maintain the correct density for machines after
prying, preventing scenarios where a machine might behave differently
once it had been pried open. (An example of this was being able to walk
through a smartfridge after prying it open.) Additionally, players are
no longer required to know/use workarounds (such as machine disassembly)
to retrieve a powered-off machine's contents.

Overall, these changes improve consistency around machines, creating
more scenarios where they behave as players would expect.

## Changelog
🆑
fix: machines can now be pried open more than once.
fix: machines now have the correct density when pried open.
/🆑

---------

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

* Machines can now be pried open multiple times and maintain their initial densities

* wew

---------

Co-authored-by: Antonio Tosti <5588048+atosti@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-27 02:36:29 +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 254092a7d5 [MIRROR] Add missing space to plant grafts [MDB IGNORE] (#19987)
* Add missing space to plant grafts (#74098)

It's now `"plant graft (Grass)"`, rather than `"plant graft(Grass)"`.

* Add missing space to plant grafts

---------

Co-authored-by: Jack Edge <yellowbounder@gmail.com>
2023-03-26 01:27:03 -07:00