Commit Graph

10809 Commits

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

* wew

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 02:39:41 +00:00
SkyratBot
893e1996ad [MIRROR] New Station Trait, Employee Birthday! [MDB IGNORE] (#19690)
* New Station Trait, Employee Birthday!

* Update generic_positive_events.dm

* vr additions

---------

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2023-03-09 21:51:44 +00:00
SkyratBot
bbf67180b4 [MIRROR] Adds The rest of the lipstick colours to cosmetics.dm [MDB IGNORE] (#19733)
* Adds The rest of the lipstick colours to cosmetics.dm (#73849)

## About The Pull Request
I noticed while working on a feature for a downstream, that three of the
lipstick colours weren't actually seperate items, so this PR just adds
those three so they can be spawned in by admins.
## Why It's Good For The Game
It lets admins spawn more colours of lipstick for costuming, also good
for downstreams that might want to make lipsticks buyable.
## Changelog
🆑
add: Adds the rest of the lipsticks to the cosmetics.dm
/🆑

* Adds The rest of the lipstick colours to cosmetics.dm

---------

Co-authored-by: Moth-lantern <122066083+Moth-lantern@users.noreply.github.com>
2023-03-08 22:53:38 -08:00
SkyratBot
3c4b5a2a77 [MIRROR] Fix lung stirfry to use a bowl and non-cybernetic lungs [MDB IGNORE] (#19741)
* Fix lung stirfry to use a bowl and non-cybernetic lungs (#73687)

🆑 coiax
fix: Tiziran lung stirfry now correctly uses a bowl in its construction,
and is left over after eating. It also can only be constructed with
organic lungs, because cybernetic lungs don't fry as well.
/🆑

Sprite has a bowl, but no bowl involved in the crafting or left behind.
Using cybernetic organs also seems like an oversight, given the whole
"lizards love the raw meat" vibe they have with Tiziran food.

* Fix lung stirfry to use a bowl and non-cybernetic lungs

---------

Co-authored-by: Jack Edge <yellowbounder@gmail.com>
2023-03-08 20:54:23 -08:00
SkyratBot
60fa0ed655 [MIRROR] Fixes several issues with the rapid lighting device, lights not actually emitting light and glowstick mode not working when its dark. [MDB IGNORE] (#19736)
* Fixes several issues with the rapid lighting device, lights not actually emitting light and glowstick mode not working when its dark. (#73846)

## About The Pull Request

Fixes: #73844

RLD's now have a default light color so they will work out of the box,
and setting the light color to white doesn't result in the light color
on produced lights being set to null anymore.

I'm not certain if the glowstick thing is a bug so give me a heads up if
its not and I'll change it to balance but it seemed weird to me that the
glowstick mode was unusable in the dark so it is now usable, this also
impacts floor lights but wall lights worked in the dark already.
## Why It's Good For The Game

Bugfix good.
## Changelog
🆑
fix: Rapid lighting devices can now have their color set to #ffffff and
the resulting lights will now function.
fix: Rapid lighting devices will now default its set color to white when
created instead of trying to produce colorless lights.
fix: The rapid lighting device can now be used in the dark when
producing glow sticks or floor lights.
/🆑

* Fixes several issues with the rapid lighting device, lights not actually emitting light and glowstick mode not working when its dark.

---------

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
2023-03-08 20:38:56 -08:00
SkyratBot
257d63f360 [MIRROR] Fixes some invisible inhands from the transforming component [MDB IGNORE] (#19721)
* Fixes some invisible inhands from the transforming component (#73807)

## About The Pull Request

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

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

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

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

Fixes #73805
Fixes #73711 (Actually)

## Why It's Good For The Game

Invisible sword bad

## Changelog

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

* Fixes some invisible inhands from the transforming component

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-03-08 11:33:50 +00:00
SkyratBot
62d1147513 [MIRROR] Fixes bread dog butchering producing error bread and adds some warnings to bread that shouldn't appear in-game. [MDB IGNORE] (#19695)
* Fixes bread dog butchering producing error bread and adds some warnings to bread that shouldn't appear in-game. (#73783)

## About The Pull Request
Fixes https://github.com/tgstation/tgstation/issues/73765
Also adds some warnings and description to bread/breadslice so you can
more easily notice that something is wrong.
Not much to discuss i think.
## Why It's Good For The Game
You can get normal bread from butchering bread dog. And potentially less
issues with bread in future.
## Changelog
🆑
fix: fixed butchering bread dog spawning error bread.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@ gmail.com>

* Fixes bread dog butchering producing error bread and adds some warnings to bread that shouldn't appear in-game.

---------

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
2023-03-06 11:34:25 -08:00
SkyratBot
8321b7fa5e [MIRROR] Fixes another instance of fortnite gaming on SS13 [MDB IGNORE] (#19679)
* Fixes another instance of fortnite gaming on SS13 (#73770)

🆑 Iamgoofball
fix: You can no longer fortnite with glass sheets
/🆑

---------

Co-authored-by: Kyle Spier-Swenson <kyleshome@ gmail.com>

* Fixes another instance of fortnite gaming on SS13

---------

Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: Kyle Spier-Swenson <kyleshome@ gmail.com>
2023-03-06 16:41:26 +00:00
SkyratBot
397821a536 [MIRROR] Refactor egg to chick logic into component [MDB IGNORE] (#19689)
* Refactor egg to chick logic into component (#73537)

Refactored how eggs growing into chicks is implemented, and
how the number of chickens and chicks are tracked. It's now possible for
admins to make anything into an egg.

- Instead of the "fertility" of an egg being whether or not it's
processing (along with the ugliness of adding a variable to a item
defined in another file), fertile eggs are now implemented via
components.
- The number of chickens in the world, and the number of chicks hatched
from egg throwing are now global variables, rather than static variables
on the class.

I've tried very hard to keep these changes completely feature freeze
compatible, any variation in the old behaviour is non-intended (at this
point).

* Refactor egg to chick logic into component

---------

Co-authored-by: Jack Edge <yellowbounder@gmail.com>
2023-03-06 08:30:16 -08:00
SkyratBot
a6ecf76aeb [MIRROR] Adds traitor final objective to make the station AI malf [MDB IGNORE] (#19376)
* Adds traitor final objective to make the station AI malf

* Update malf_ai.dm

---------

Co-authored-by: SuperSlayer <91609255+SuperSlayer0@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-03-04 17:48:31 -08:00
SkyratBot
ece5f9c320 [MIRROR] Fixes wrong inhand icon state for jaws of life [MDB IGNORE] (#19650)
* Fixes wrong inhand icon state for jaws of life (#73716)

## About The Pull Request
Fixes #73711
## Why It's Good For The Game
## Changelog
🆑
fix: fixed missing inhand icon state for jaws of life
/🆑

* Fixes wrong inhand icon state for jaws of life

---------

Co-authored-by: FinancialGoose <92416224+TheBoondock@users.noreply.github.com>
2023-03-04 13:01:04 +00:00
SkyratBot
0dfde9b1a6 [MIRROR] Tape Wizard, the distant cousin of the Paper Wizard [MDB IGNORE] (#19640)
* Tape Wizard, the distant cousin of the Paper Wizard (#73739)

## About The Pull Request

Adds a new wizard costume and non magical variant, made exclusively from
tape.

![qTwAAAAASUVORK5CYII](https://user-images.githubusercontent.com/81540056/222332110-96af21bc-d568-40fc-a813-1464577521ff.png)

## Why It's Good For The Game

New unique nice looking thing = good
Opens the door for more uses of an already niche mechanic

![ducktape](https://user-images.githubusercontent.com/81540056/222332139-83f01340-299a-48e0-b68a-3c5e57e20547.png)
Roleplay.

## Changelog
🆑
add: Adds the tape wizard costume, both a real and fake variant
add: Adds the costume behind the autodrobe contraband wire, and the real
variant in the wiz den
🆑

* Tape Wizard, the distant cousin of the Paper Wizard

---------

Co-authored-by: Thedragmeme <81540056+Draggeru@users.noreply.github.com>
2023-03-04 05:00:35 +00:00
lessthanthree
021c9d546e [MANUAL MIRROR] Buff scythes, goats, and plantbgone vs PLANT biotypes (#19215)
Buff scythes, goats, and plantbgone vs PLANT biotypes (#72889)

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

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

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

Before my changes:

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

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

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

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-03 18:37:34 +00:00
SkyratBot
f9f4c80055 [MIRROR] Refactors the Nuclear Authentication Disk's Lone Op Behavior Into a Component, + Examine Message [MDB IGNORE] (#19407)
* Refactors the Nuclear Authentication Disk's Lone Op Behavior Into a Component, + Examine Message (#73453)

## About The Pull Request

### Refactor

Turns all the behavior for the nuke disk raising lone op probability
when unsecured into a new component, the "Keep Me Secure" component. As
an example (and really, I made it to test that the component was
actually working), there is a new admin plush called the "whiny plushie"
that will change icon depending on whether it is secure or not. Useful!

### Examine

I also added an examine message. Will explain below

## Why It's Good For The Game

The examine message was really what this entire pr's purpose was really
for.

>
[Capsandi](https://tgstation13.org/phpBB/memberlist.php?mode=viewprofile&u=7767)
wrote:
[↑](https://tgstation13.org/phpBB/viewtopic.php?p=665827#p665827)Wed Feb
15, 2023 2:42 pm
Someone needs to pr some sort of indicator as to whether the disk is
'secure' or not so players who don't know about the niche lone op
mechanic won't make the same intuitive assumption (though swat has been
trolled for putting it in the safe before).

I agree with this for the same reasons I did #73016 so I'll restate the
point with it here: A piece of banning a captain recently was that they
didn't secure the disk, but there is no indication in game that the disk
has special condiitons that trigger lone op, just that it should be kept
safe (which yeah, nuke ops want it). I'd rather remove the ambiguity of
a captain knowing this mechanic or not for the sake of the game, a
single examine for it is harmless

I'm considering this administration, not a feature. If maints want me to
take it out and have this be refactor only, that's fine with me

## Changelog
🆑
refactor: Refactors how nuclear activation disk works. Shouldn't notice
a whole lot but if you do, it might be because of this.
admin: Disk now has an examine message for whether it's secure or not,
to make it less ambiguous for players.
/🆑

* Refactors the Nuclear Authentication Disk's Lone Op Behavior Into a Component, + Examine Message

---------

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2023-03-02 22:06:22 -08:00
SkyratBot
f708bb7bc4 [MIRROR] Make glass and bone knives not conduct electricity and shocks from grille [MDB IGNORE] (#19591)
* Make glass and bone knives not conduct electricity and shocks from grille (#73679)

## About The Pull Request
Just making shivs more consistent with what is expected. It's weird when
glass shard allows you to smash grille connected to power while shivs
made out of glass dont. Extended to bone knives for the same reason.
## Why It's Good For The Game
Immersium
## Changelog
🆑 Remuluson2
fix: After pressure from Nanotrasen, Space Wizard Federation made glass
and bone knives non-conductive again.
/🆑

---------

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

* Make glass and bone knives not conduct electricity and shocks from grille

---------

Co-authored-by: remuluson2 <remuluson2@gmail.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-03-01 02:28:05 +00:00
SkyratBot
b8afddcbd6 [MIRROR] Teleport scroll charges cannot be bypassed via clicking the action button [MDB IGNORE] (#19563)
* Teleport scroll charges cannot be bypassed via clicking the action button (#73653)

## About The Pull Request

Teleport scrolls would only deplete a charge if used in hand, however
their implementation actually granted you the spell as an item action
which you could use by hitting the action button, This would not deplete
a charge, and had no cooldown whatsoever.
The action button is convenient and should stay, but I modified the code
so that instead of depleting a charge when clicked it depletes a charge
when the spell contained by the item successfully casts.

I also changed the order of operations slightly in `spell/after_cast`
because using the signal to delete the scroll would also delete the
spell (sensibly, it should clean up after itself) before the last cast
could make smoke, which was sad.

## Why It's Good For The Game

On live the teleport scroll gives all wizards _and_ apprentices the
teleport spell with absolutely no cooldown and infinite usage, which is
probably not intended.

## Changelog

🆑
fix: Using a teleport scroll will deplete a charge regardless of whether
used in-hand or by pressing the action button.
/🆑

* Teleport scroll charges cannot be bypassed via clicking the action button

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-02-26 19:28:58 -08:00
SkyratBot
7cd024fa5e [MIRROR] [no gbp] dismantling an unplaced wallframe will now make a wrench sound [MDB IGNORE] (#19510)
* [no gbp] dismantling an unplaced wallframe will now make a wrench sound (#73589)

## About The Pull Request
Dismantling an unplaced wallframe will now make a wrench sound.
## Why It's Good For The Game
Using a wrench almost always makes the wrench noise. Having that noise
not play when you wrench something feels very weird.
## Changelog
🆑
soundadd: dismantling an unplaced wallframe will now make a wrench sound
/🆑

* [no gbp] dismantling an unplaced wallframe will now make a wrench sound

---------

Co-authored-by: kawoppi <94711066+kawoppi@users.noreply.github.com>
2023-02-26 19:06:39 -05:00
SkyratBot
586854baf6 [MIRROR] Basic Mobs can be healed using medical items [MDB IGNORE] (#19483)
* Basic Mobs can be healed using medical items (#73556)

## About The Pull Request

The generic medical stacks items sutures, bruise packs, aloe, and
poultices can be used to heal simple mobs but not basic mobs.
This seems to just be an oversight rather than an intentional change.

Currently simple mobs have a kind of ugly "can be healed" var on them
which I am going to assume we don't want to copy over to basic mobs. I
can remove about 3/4 of the mobs who set this by filtering by biotypes
instead which should cover most basic mob conversions.
The only mobs I can find with `BIOTYPE_ORGANIC` and `can_heal = FALSE`
are heretic monsters, slimes, slaughter demons, and Morph. Some of those
could reasonably be fixed by changing their biotypes, and most of the
others it's... probably fine to be able to heal with sutures anyway?
Really the only outlier is probably not wanting Slaughter Demons to be
healing themselves with bruise packs. Sort of a future problem, and not
a big one.

Also while I was there I continued my mission to desoul every proc I
touch by turning error messages into balloon alerts (the heal success
notification can stay though, that seems like relevant information to
log for everyone nearby).

## Why It's Good For The Game

This is behaviour these mobs used to support and was accidentally
dropped. It maintains consistency and is how you expect these items to
work.

## Changelog

🆑
fix: Restores lost behaviour to heal Ian with sutures. Or giant spiders,
if you want to do that for some reason.
/🆑

* Basic Mobs can be healed using medical items

* Update code/game/objects/items/stacks/medical.dm

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-02-26 20:57:27 +00:00
SkyratBot
4f554a3990 [MIRROR] Corrects blocked limb balloon alert for borg hyposprays [MDB IGNORE] (#19545)
* Corrects blocked limb balloon alert for borg hyposprays (#73632)

## About The Pull Request

Fixes #73631
## Why It's Good For The Game

Reads better
## Changelog
🆑
fix: Borg hypospray will correctly tell you the name of the limb that is
blocked when trying to inject into a blocked limb.
/🆑

* Corrects blocked limb balloon alert for borg hyposprays

---------

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
2023-02-26 15:24:56 -05:00
OrionTheFox
d097050d1d [Manual Mirror] Adds checkgrep for improper or missing atom Initialize args (mapload) (#19539)
* Adds checkgrep for improper or missing atom Initialize args (`mapload`) (#72846)

## About The Pull Request

Adds a grep for atom initialize overrides which does not include mapload

Regex used
`^/(obj|mob|turf|area|atom)/.+/Initialize\((?!mapload).*\)`

Also replaced some space indentation with some tab indentation in some
other greps


![image](https://user-images.githubusercontent.com/51863163/213883049-ef6d953a-e11f-4876-9852-c09633ddc289.png)

## Why It's Good For The Game

See #69107, #61759, #61623

## Changelog

No player facing changes

* Missed by #8374

* Add (mapload) to a //Skyrat Edit so that it passes

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-02-26 15:20:38 -05:00
SkyratBot
46c6a7512f [MIRROR] Refactors lizard fake canned food into real canned food [MDB IGNORE] (#19403)
* Refactors lizard fake canned food into real canned food (#73469)

## About The Pull Request

/obj/item/food/canned_jellyfish, /obj/item/food/desert_snails, and
/obj/item/food/larvae are now all /canned subtypes. All this means is
that to eat them, you use them once, and now they drop an empty tin
rubbish item.

## Why It's Good For The Game

Making fake false versions of real types that exist is such a pet peeve
of mine, we recently had a bug from it where the snails would go bad.
But even with that fixed you're just chomping the container of snails
and it's not the same behavior as all the other cans
grumgrugmrg I FIXED IT.

## Changelog
🆑
refactor: Lizard related canned food now acts like canned food
/🆑

* Refactors lizard fake canned food into real canned food

* updates all the modular canned stuff

* desert_

---------

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
2023-02-20 20:53:53 -08:00
SkyratBot
595da5b21a [MIRROR] Flares and candles are now made of plastic [MDB IGNORE] (#19472)
* Flares and candles are now made of plastic (#73505)

## About The Pull Request

Flares and candles are now made of plastic.

![image](https://user-images.githubusercontent.com/12107211/219854793-378aba49-78e7-4b6d-95de-8cc1062de0ea.png)

That's close enough to wax, right? I'm sure those chemical-smelling
fumes are nothing to worry about.

## Why It's Good For The Game

Fixes https://github.com/tgstation/tgstation/issues/73495 (arguably)

## Changelog

🆑
fix: candles are made of a more appropriate material
/🆑

* Flares and candles are now made of plastic

---------

Co-authored-by: skylord-a52 <skylord-a52@users.noreply.github.com>
2023-02-21 00:29:31 +00:00
SkyratBot
5f5e3141dc [MIRROR] Don't reregister PDA signals we already registered [MDB IGNORE] (#19453)
* Don't reregister PDA signals we already registered (#73525)

## About The Pull Request

Fixes #73102 by removing an apparently purposeless proc.
I'll be honest I have been staring and staring at this proc and have no
idea what problem it is supposed to be solving and it looks kind of like
nonsense, a victim of refactors maybe?

So here's what it was doing:
When you place an ID card into a PDA we register to the "moved" signal.
When the PDA is moved we first check if the PDA's old location was a
PDA. First head-scratcher, when would that be true? Was there a point
where PDAs could be nested, back when they were tablets? Doesn't seem to
be possible now.
We then unregister the other signals we registered when setting up this
proc, but _only_ if it was previously inside a PDA.

Then we check if the source of the signal exists, which is also
confusing but I _guess_ maybe something else listening to the move
signal could have deleted it before we got here?
The source of the signal of course continues to be the PDA we registered
signals to. We only unregister those signals if it was previously
somehow inside of a different PDA. We then re-register the signals we
already registered on it, causing a warning runtime because we're
registering a signal we already registered.
Sure enough, the warning is telling us that we're just doing the same
thing twice for as far as I can tell, absolutely no reason.

As far as I can tell this proc... doesn't do anything _except_ runtime?
It's full range of possible behaviour is to register some signals we are
already registered to. So I fixed the bug by deleting it.
If there's some edge case behaviour related to putting PDAs inside other
PDAs which I am missing here, or I have misunderstood this code somehow,
let me know.

## Why It's Good For The Game

We shouldn't runtime every time you move your PDA around.

## Changelog

🆑
fix: Removes a runtime error caused by moving your PDA between slots.
/🆑

* Don't reregister PDA signals we already registered

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-02-20 02:09:32 +00:00
SkyratBot
db625af910 [MIRROR] Optimize cardboard cutouts saving 1.5s+ on init times [MDB IGNORE] (#19435)
* Optimize cardboard cutouts saving 1.5s+ on init times (#73404)

New regression in init times. Closes
https://github.com/tgstation/dev-cycles-initiative/issues/32. CC @ Fikou

- Instead of creating a human and icon for *every* cardboard cutout when
initialized, only creates the one we're actually using. When you're
about to use a crayon, creates all of them.
- Instead of using getFlatIcon, uses appearances directly.

* Optimize cardboard cutouts saving 1.5s+ on init times

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-02-19 22:52:00 +00:00
SkyratBot
edd70ac76f [MIRROR] Fix eating the bowl when eating poke [MDB IGNORE] (#19448)
* Fix eating the bowl when eating poke (#73524)

🆑 coiax
fix: Eating fish and meat poke bowls no longer consumes the bowl, just
the food inside.
/🆑

## Why It's Good For The Game

Those bowls are made out of glass in the protolathe, they can't be good
for you to eat. Also, soups leave the bowl behind.

* Fix eating the bowl when eating poke

---------

Co-authored-by: Jack Edge <yellowbounder@gmail.com>
2023-02-19 22:49:21 +00:00
SkyratBot
566a0e53b7 [MIRROR] Fixes valentines breaking highlander [MDB IGNORE] (#19445)
* Fixes valentines breaking highlander (#73519)

## About The Pull Request

fixes #73450

Highlander checked special roles instead of antag datum for its
abilities, special role is set to the last antag you were so becoming
valentines (or anything else for that matter) broke it

## Why It's Good For The Game

Bugfix

## Changelog
🆑
fix: Valentines and other antags no longer break highlander
/🆑

* Fixes valentines breaking highlander

---------

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2023-02-19 22:48:32 +00:00
SkyratBot
9435aeb31d [MIRROR] Purchasing weapon goodie packs require weapon permits, rather than actually being a head of security (includes other small changes) [MDB IGNORE] (#19133)
* Purchasing weapon goodie packs require weapon permits, rather than actually being a head of security (includes other small changes)

* Update inventory.dm

* Update goodies.dm

* Update inventory.dm

* update modular

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-02-19 19:19:59 +00:00
SkyratBot
a2cb8c5c0c [MIRROR] Completely removes do_mob and do_after_mob [MDB IGNORE] (#19126)
* Completely removes do_mob and do_after_mob

* update modular

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-02-19 19:19:50 +00:00
SkyratBot
94aa2f4bd6 [MIRROR] [No GBP] Minor Food Tweaks [MDB IGNORE] (#19434)
* [No GBP] Minor Food Tweaks (#73499)

## About The Pull Request

This PR will tweak some of my foods and others to make them a little
less excessive or to buff them a little.

Meatloaf takes 2 meat slabs instead of 3. It felt pretty excessive to
use 3.
Ribs and meat clown now use /obj/item/food/meat/steak instead of
/obj/item/food/meat/steak/plain. This allows custom downstream steaks to
also be used for ribs, instead of only vanilla upstream ones
Truffles and peanut butter cups use 2 of their filling ingredient
instead of 5. 5 felt excessive.
Moved calzones to the pizza crafting menu
Adds the meat foodtype to meat pierogis and removes the dairy foodtype
(wow)
Increases the nutritional value of french toast
Beef stroganoff uses 2 units of salt/pepper instead of 5
Removes sugar from granola bars to make them less complex to make

## Why It's Good For The Game

Re-balancing certain foods to make them simpler or more worthwhile
encourages people to make them =)

## Changelog
🆑
qol: Tweaked around some foods to make them easier to make
/🆑

* [No GBP] Minor Food Tweaks

---------

Co-authored-by: MidoriWroth <kodyman@att.net>
2023-02-18 22:16:45 -08:00
SkyratBot
ae4598ac3f [MIRROR] Fixes health analyzers checking for missing stomachs and tongues [MDB IGNORE] (#19373)
* Fixes health analyzers checking for missing stomachs and tongues (#73421)

## About The Pull Request

Healthanalyzer's check for missing tongues and stomachs were incorrect.
They only printed the message for those organs if the target's species
lacked them, and the organ was missing as intended (examples: abductors
for stomachs, cardboard golems for tongues). This PR fixes this, and the
healthanalyzer will only complain about the lack of those organs, if the
targets are supposed to have them in the first place.

## Why It's Good For The Game

It is good to be told that your patient is missing a vital organ or two
before booting them out of medbay.

## Changelog

🆑
fix: Health analyzers will properly report missing stomachs and tongues
/🆑

* Fixes health analyzers checking for missing stomachs and tongues

---------

Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-02-18 20:36:09 -08:00
SkyratBot
6ebdfdc73f [MIRROR] Makes Shake() proc work [MDB IGNORE] (#19424)
* Makes Shake() proc work (#73480)

## About The Pull Request

Fixes #72321
Fixes #70388

The shake proc didn't work and hasn't for ages.
I remember it having worked at some point, but it was quite a long time
ago.
I cannot guarantee that the end result here is the same as it was, the
reason here being that I have no idea how this proc ever worked in the
first place. My limited understanding of the `animate` proc implies that
the previous implementation as written would never have acted as you
would expect it to, but clearly at some time in the past it did work. A
mystery.

As a result of the previous, possibly because the proc never _did_ work
as expected and just did something which looked vaguely correct most of
the time, both the default values and the values people were passing
into this proc were completely ridiculous.
Why would anyone ever want to pixel shift an object with a range of _15_
pixels in all directions? That's half a full tile! And why would you
want it to do this for 25 seconds?
So I also changed the values being passed in, because you really want
pretty small numbers passed into here most of the time.

Here's a video of everything that vibrates:
https://www.youtube.com/watch?v=Q0hoqmaXkKA

The exception is the v8 engine. I left this alone because it seems to
try and start shaking while in your hands, which doesn't work, and I
don't know how to fix that. This has potentially _also_ never worked.

## Why It's Good For The Game

Now you can see intended visual indicators for:
- Lobstrosities charging.
- Beepsky being EMPed.
- The Savannah Ivanov preparing to jump.
- The DNA infuser putting someone through the spin cycle.
- The mystery box admin item I had no previous idea even existed (fun
animations on this one).
- Anything else which wants to use this proc to create vibrating objects
in the future.

## Changelog

🆑
fix: Lobstrosities and Tarantulas will once more vibrate to let you know
they're about to charge at you.
fix: The Savannah Ivanov will once more vibrate to let you know it's
about to jump into the air.
fix: The DNA infuser will now vibrate to let people know that it's busy
blending someone with a dead animal.
/🆑

* Makes Shake() proc work

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-02-18 16:58:30 -08:00
GoldenAlpharex
f61b17667b [s] Revert "[MIRROR] Stunbatons can now only be used during Red Alerts [MDB IGNORE]" (#19413)
Revert "[MIRROR] Stunbatons can now only be used during Red Alerts [MDB IGNORE] (#19412)"

This reverts commit f96467d105.
2023-02-17 23:08:07 -05:00
SkyratBot
f96467d105 [MIRROR] Stunbatons can now only be used during Red Alerts [MDB IGNORE] (#19412)
* Stunbatons can now only be used during Red Alerts (#73492)

## About The Pull Request
This prevents stunbatons being turned on to full stun mode if the
station is not in a red alert emergency.

## Why It's Good For The Game

The decision to limit the use of stunbatons in TGStation to red alert
emergencies is due to the general degradation of the melee combat design
space in the game. The stunbaton's ability to stun and knock down
opponents with ease has made it the go-to weapon for many players,
leading to a lack of diversity in melee combat strategies.

This over-reliance on stunbatons has made other melee weapons, such as
knives or clubs, obsolete in many situations. This not only limits
player choice but also reduces the overall challenge and fun of melee
combat in the game.

By restricting the use of stunbatons to red alert emergencies, players
are encouraged to explore other melee weapons and develop new
strategies, making the game more engaging and challenging. It also
ensures that the use of stunbatons is reserved for critical situations,
making combat encounters more meaningful and immersive.

## Changelog

🆑 oranges
add: Stunbatons now require a red alert to activate stun mode
/🆑

* Stunbatons can now only be used during Red Alerts

---------

Co-authored-by: oranges <email@oranges.net.nz>
2023-02-17 18:19:07 -08:00
SkyratBot
56b3c415cd [MIRROR] Made assembly bombs unable to multignite [MDB IGNORE] (#19387)
* Made assembly bombs unable to multignite (#73446)

Added stack traces for multignition events

Also moves the tank procs into the tanks file from bomb because I can
and I hate the previous organisation

* Made assembly bombs unable to multignite

---------

Co-authored-by: oranges <email@oranges.net.nz>
2023-02-17 03:43:43 +00:00
Shadow-Quill
69f1515276 Reagent containers AltClick update (#19272)
* Reagent containers with two settings now just swap on altclick

* suggested change
2023-02-14 13:24:52 +00:00
SkyratBot
54977bec0f [MIRROR] Fixes runtime with mime kissing [MDB IGNORE] (#19332)
* Fixes runtime with mime kissing (#73394)

## About The Pull Request

Not all living mobs have a reagent datum, but you can kiss all living
mobs.

## Changelog

🆑 Melbert
fix: Fixed a runtime from mime *kissing silicons and simplemobs.
/🆑

* Fixes runtime with mime kissing

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-02-14 02:43:51 +00:00
OrionTheFox
3334cbf891 Modular Suit Sorting 3: Winter Coats (#19230)
* Makes A-Formal coat into our SR basetype (and removes ugly xmas coat)

* Few fixes and formatting things

* Move Bartender and HoPFormal to Skyrat

* Move Narsie/Ratvar coats to Skyrat, remove unused armored variants

* Move christmas coats to Skyrat

* Tosses obsolete HoPFormal (We have a HoP coat that's updated now)

* Syndie coat to skyrat subtype, assorted cleaning, rename

* oopsies

* Does checklist, adds todo notes for upcoming sorting, removes politics

* whoops

* tiny formalcoat sprite update per Hal
2023-02-14 02:38:53 +00:00
SkyratBot
a18889baa4 [MIRROR] Fix Tiziran canned goods from being eaten by ants [MDB IGNORE] (#19327)
* Fix Tiziran canned goods from being eaten by ants (#73401)

Because these canned goods didn't inherit from /obj/item/food/canned,
they didn't inherit the imperishable nature. Ideally in the future,
they'll inherit properly from that, but they'll need trash and open
sprites to make that happen.

Until then, let's just make the goods non-perishable.

🆑 coiax
fix: Tiziran canned goods no longer decompose into mush.
/🆑

## Why It's Good For The Game
Inconsistent that canned goods would turn to mush if left on the ground.
Doesn't happen to other (non-opened) canned goods.

* Fix Tiziran canned goods from being eaten by ants

---------

Co-authored-by: Jack Edge <yellowbounder@gmail.com>
2023-02-13 16:23:59 -08:00
SkyratBot
c03d29223b [MIRROR] Fix extinguisher switch range, changing the delay on using it with a chair or something [MDB IGNORE] (#19328)
* Fix extinguisher switch range, changing the delay on using it with a chair or something (#73403)

Blocks compilation on newest BYOND

## Changelog
🆑
fix: Using a fire extinguisher with a chair now properly
does...something with how fast you move I think it makes you slower
/🆑

* Fix extinguisher switch range, changing the delay on using it with a chair or something

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-02-13 16:23:41 -08:00
SkyratBot
dfe6c614ae [MIRROR] RPD UI ,bunch of pipe fixes & stack garbage collection [MDB IGNORE] (#19100)
* RPD UI  ,bunch of pipe fixes & stack garbage collection

* Update _machinery.dm

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-02-13 10:41:11 -08:00
SkyratBot
67f6a3b897 [MIRROR] Burn wounds bugfixing [MDB IGNORE] (#19145)
* Burn wounds bugfixing

* Update medical.dm

---------

Co-authored-by: Roryl-c <5150427+Roryl-c@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-02-12 02:18:27 -08:00
SkyratBot
743601ec77 [MIRROR] you can no longer change non null rod null rods [MDB IGNORE] (#19093)
* you can no longer change non null rod null rods

* Update holy_weapons.dm

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-02-12 01:35:04 -08:00
nevimer
3bddc6c821 Missed Mirror: Remove NTNet from doors (saves 0.2s of init) -- Fixes windoors not wo (#18976)
* Remove NTNet from doors (saves 0.2s of init) -- Fixes windoors not working with remotes, and balloons them (#71735)

## About The Pull Request
Removes NTNet from doors. NTNet as a whole is getting excised, but this
was an enormous cost to initialize. Was only used for door remotes, so
just changes them to act on the door directly.

Windoors were supposed to be controllable, but were broken at some point
to always display an error message in chat.

Closes https://github.com/tgstation/dev-cycles-initiative/issues/3

## Changelog

🆑
fix: Door remotes now open windoors again.
qol: Door remotes now use balloon alerts for failures.
/🆑

(cherry picked from commit db2566f44d)

# Conflicts:
#	code/game/machinery/doors/airlock.dm

* Update airlock.dm

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-02-11 23:39:17 -08:00
SkyratBot
7bee221fa3 [MIRROR] Fixes exosuit board sprites [MDB IGNORE] (#19286)
* Fixes exosuit board sprites (#73332)

## About The Pull Request

Any circuit board whose icon state is not "circuit_map" (others dont
have gags) dont have gags applied to them

## Why It's Good For The Game

Fixes #71332

## Changelog
🆑
fix: Any circuit boards with custom sprites now actually use that sprite
/🆑

* Fixes exosuit board sprites

---------

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
2023-02-12 01:49:36 +00:00
nevimer
3b0dd047fc Manual Mirror: Add investigate_deaths (#71112) (#18985)
Add investigate_deaths (#71112)

## About The Pull Request
Adds INVESTIGATE_DEATHS, an investigate category intended to better show
causes of death.

![image](https://user-images.githubusercontent.com/66640614/200142461-c17b5e51-1116-4eef-bbfb-49bc024c0953.png)

![image](https://user-images.githubusercontent.com/66640614/200147306-09bef76e-68c6-4f0a-bdf9-0211eb274e66.png)

Also makes suicide_act take a `mob/living` as an argument instead of a
`mob`, and some minor style improvements since apparently I hate
atomicity.

## Why It's Good For The Game
Inspired by a mysterious death and dusting. More logging and leads for
admins investigating deaths.

Also fixes #59028

## Changelog
🆑 Tattle
admin: added investigate deaths to shed some more light on unusual
demises, dustings, and gibbings
/🆑

Co-authored-by: tattle <article.disaster@gmail.com>
(cherry picked from commit ad5debaaa1)

# Conflicts:
#	code/datums/dna.dm
#	code/game/machinery/washing_machine.dm
#	code/game/objects/items/clown_items.dm
#	code/game/objects/items/food/misc.dm
#	code/game/objects/items/food/monkeycube.dm
#	code/game/objects/items/stacks/sheets/glass.dm
#	code/game/objects/items/storage/toolbox.dm
#	code/game/objects/items/tools/crowbar.dm
#	code/game/objects/items/tools/screwdriver.dm
#	code/game/objects/items/tools/wrench.dm
#	code/game/objects/items/weaponry.dm
#	code/game/objects/structures/petrified_statue.dm
#	code/modules/antagonists/heretic/magic/nightwatcher_rebirth.dm
#	code/modules/mob/living/carbon/human/death.dm
#	code/modules/mob/living/living_defense.dm
#	code/modules/mob/living/simple_animal/guardian/guardian.dm
#	code/modules/mob/living/simple_animal/hostile/headcrab.dm
#	code/modules/paperwork/stamps.dm
#	code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
#	code/modules/reagents/chemistry/reagents/toxin_reagents.dm
#	code/modules/shuttle/on_move.dm
#	code/modules/spells/spell_types/touch/smite.dm
#	code/modules/vehicles/mecha/equipment/tools/mining_tools.dm

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2023-02-09 22:32:55 -08:00
SkyratBot
78b465448f [MIRROR] Fixes force-drinking being instananeous, and a few others [MDB IGNORE] (#19210)
* Fixes force-drinking being instananeous, and a few others

* Update mobs.dm

* fix conflicts

* Update mobs.dm

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-02-10 03:09:58 +00:00
SkyratBot
c9ee524c87 [MIRROR] Changes spear custom_materials values to be more appropriate [MDB IGNORE] (#19108)
* Changes spear custom_materials values to be more appropriate

* Update spear.dm

---------

Co-authored-by: SeigaSeiga <seigashearwood@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-02-08 02:59:25 +00:00
Pinta
75692d71e6 [MODULAR] Replacces the NIFSoft Vendor with a PDA app (#18955)
* start

* It's now a PDA app

* Update nifsoft_catalog.dm

* nice

* 🦀

* NIF GHOST BOX NIF GHOST BOX

* price updates

* whoops

* Update modular_skyrat/modules/modular_implants/code/nifs.dm

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>

* Update modular_skyrat/modules/modular_implants/code/nifs.dm

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>

* Update nifsoft_catalog.dm

* a

* Update wardrobes.dm

* Update wardrobes.dm

* Update nifsoft_catalog.dm

* Update NtosNifsoftCatalog.js

* Update modular_skyrat/modules/modular_implants/code/nifsoft_catalog.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update wardrobes.dm

* Update nifsoft_catalog.dm

* Update wardrobes.dm

---------

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-02-08 02:31:00 +00:00
SkyratBot
8500d62b79 [MIRROR] Abductor scientist self-retrieve failure/runtime fix [MDB IGNORE] (#19179)
* Abductor scientist self-retrieve failure/runtime fix (#73172)

## About The Pull Request

Since the abductor outfit/implant would load before the abductor ship
(and it's teleport pad) when first generating a team, a runtime would
occur when trying to link the pad to the implant. Another would occur
every time you attempted to retrieve yourself (as the linked pad would
be null), preventing recall and completely neutering an abductor team's
most important maneuver.

Now, using the implant will perform the linking process again if no
linked pad is found, and provides the owner with a warning if (by some
great calamity) they genuinely have no pad to teleport back to. This
solves the issue of the implant sometimes not linking to a pad properly
on initialize, and makes them way less prone to breaking.

Apparently this has been broken for a while, presumably since the
abductor ship was made into a lazyloading template.
## Why It's Good For The Game

The funny silly grey men get to torture the poor hapless crew once
again.
## Changelog
🆑
fix: abductor scientist's retrieval implants will now properly recall
the owner, and inform them upon recall failure.
/🆑

* Abductor scientist self-retrieve failure/runtime fix

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
2023-02-08 02:11:13 +00:00
SkyratBot
8763459ef6 [MIRROR] Fairy Grass Inhands [MDB IGNORE] (#19193)
* Fairy Grass Inhands (#73209)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
fixes #72549
## Changelog

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

🆑 itseasytosee
imageadd: inhands for fairy grass tiles
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

* Fairy Grass Inhands

---------

Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
2023-02-08 02:08:14 +00:00