Commit Graph

16418 Commits

Author SHA1 Message Date
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 34ad67a4fc [MIRROR] Updates policy to better warn players for any existing antagonist policy [MDB IGNORE] (#19341)
* Updates policy to better warn players for any existing antagonist policy

* Update job.dm

* Update job.dm

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-03-01 17:10:54 -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 db33d75a5e [MIRROR] Space/Changeturf fixes and optimizations [MDB IGNORE] (#19201)
Space/Changeturf fixes and optimizations

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-02-28 15:23:35 -05: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 b047ad0ad8 [MIRROR] Fixes paper formatting on vote box tallies, for democracy. [MDB IGNORE] (#19559)
* Fixes paper formatting on vote box tallies, for democracy. (#73639)

In the spirit of AnturK's original PR the voting season, I present to
you: Fixing a piece of paper.

Due to using DM's multiline template formatting, the `<div>` for the
header started with double tab.

Markdown interpreted that as a code block, quote:
> [Code blocks](https://www.markdownguide.org/basic-syntax/#code-blocks)
are normally indented four spaces or one tab. When they’re in a list,
indent them eight spaces or two tabs.

So I just changed a line of code, then messed around with some other
formatting.

* Fixes paper formatting on vote box tallies, for democracy.

---------

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2023-02-26 19:04:45 -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
SkyratBot 6dc0ad75f8 [MIRROR] A worn item which has its color changed (such as by a slime potion) with now have its color change reflected on mobs. [MDB IGNORE] (#19544)
* A worn item which has its color changed (such as by a slime potion) with now have its color change reflected on mobs. (#73627)

## About The Pull Request

If I'm wearing an outfit and use a slime fireproof potion on it at
present it wont become blue until taking it off and putting it back on
again, this PR makes it so it changes immediately. Also means if an
admin VVs the color value of a worn item its icon worn color will update
to reflect this change immediately.
## Why It's Good For The Game

Bugfix!
## Changelog
🆑
fix: Any worn item that has its color changed will now have its color
change reflected on the item's worn icon immediately.
/🆑

* A worn item which has its color changed (such as by a slime potion) with now have its color change reflected on mobs.

---------

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
2023-02-26 15:24:34 -05:00
SkyratBot 1c524fa584 [MIRROR] filled trashcarts spawn nearby grime when initialized instead of when opened for the first time [MDB IGNORE] (#19550)
* filled trashcarts spawn nearby grime when initialized instead of when opened for the first time (#73608)

## About The Pull Request
Filled trashcarts spawn some trash in them once they are opened for the
first time. But they also spawn grime, and the problem with that is that
grime spawns in a range around the trashcart. So opening the trashcart
for the first time would cause the grime to suddenly pop in around the
cart.

This PR changes it so that the grime is spawned when the filled
trashcart is initialized.
## Why It's Good For The Game
Having trash spawn around the trashcart the moment that you open it is
probably not intended. The grime is probably meant to be there before
the trashcart is opened for the first time.
## Changelog
🆑
fix: filled trashcarts spawn nearby grime when initialized instead of
when opened for the first time
/🆑

---------

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

* filled trashcarts spawn nearby grime when initialized instead of when opened for the first time

---------

Co-authored-by: kawoppi <94711066+kawoppi@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
2023-02-26 15:22:15 -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 bb9b68a88d [MIRROR] Basic Mob Spiders I: Ability refactor [MDB IGNORE] (#19200)
* Basic Mob Spiders I: Ability refactor

* Update tgstation.dme

* Update tgstation.dme

* Update tgstation.dme

* Update tgstation.dme

* Update tgstation.dme

* Update tgstation.dme

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: KathrinBailey <53862927+KathrinBailey@users.noreply.github.com>
Co-authored-by: KathrinBailey <kat892@outlook.com>
2023-02-22 18:49:39 +00: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 36c52d3913 [MIRROR] Guillotine can be unanchored again [MDB IGNORE] (#19371)
* Guillotine can be unanchored again (#73423)

## About The Pull Request

Guillotines could not be unanchored, because the unfasten check checked
if any action is being applied to the guillotine, including being
wrenched at the moment. This PR fixes that.

This PR also autodocs everything, adds a missing UNDEF, and renames
GUILLOTINE_BLADE_IDLE to GUILLOTINE_ACTION_IDLE to make it clearer that
this is intended for the current_action var, and not the blade_status
var.

## Why It's Good For The Game

Fixes a bug that prevents something from being moved around.

## Changelog

🆑
fix: Guillotines can be unanchored again
/🆑

* Guillotine can be unanchored again

---------

Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-02-18 21:37:09 -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
SkyratBot 3fcac8d317 [MIRROR] [NO GBP] Maintainer requested changes to the locker/closet grammar PR [MDB IGNORE] (#19350)
* [NO GBP] Maintainer requested changes to the locker/closet grammar PR

* merge conflict markers

---------

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
2023-02-18 15:03:55 -05: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 cef8390012 [MIRROR] Fixes an inverted if check on false wall attackby code. [MDB IGNORE] (#19395)
* Fixes an inverted if check on false wall attackby code. (#73459)

## About The Pull Request

#64428 made it so using a non-tool on a false wall that was closed would
return the "You must wait until the door has stopped moving" message,
this was caused by a flipped if statement so I've re-flipped it by
changing it to an early return instead.
## Why It's Good For The Game

Bug fix!
## Changelog
🆑
fix: False walls will no longer tell you to wait until they've stopped
moving when you use an item on them.
/🆑

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

* Fixes an inverted if check on false wall attackby code.

---------

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
2023-02-17 11:08:43 -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
SkyratBot d17b330c5b [MIRROR] De-hardcodes spawnDebris in windows, fixes a bunch of issues with windows. [MDB IGNORE] (#19357)
* De-hardcodes spawnDebris in windows, fixes a bunch of issues with windows. (#73274)

## About The Pull Request

spawnDebris was being overridden by almost every type of window, I've
set up some new vars for it to pull shard and its debris decal from so
spawnDebris only needed to be set up once (+ once more for paper windows
which are unique).
Fixes an issue with reinforced plasma glass windows dropping regular
glass when broken.
Fixes an oversight where tram windows were dropping only 1 rod instead
of 2 and dropping glass sheets instead of shards.
Cleans up tram window code a bunch.
## Why It's Good For The Game

Fixes several issues, cleans up code and cuts down on a lot of repeat
code.
## Changelog
🆑
fix: Reinforced plasma windows will now drop plasma glass instead of
regular glass when broken.
fix: Tram windows drop the correct number of rods and a shard when
broken instead of a sheet.
code: Removed a ton of duplicate vars in tram window code and
re-organize the file slightly.
refactor: spawnDebris has been un-hardcoded and all (but one) override
of it has been removed.
/🆑

* De-hardcodes spawnDebris in windows, fixes a bunch of issues with windows.

---------

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
2023-02-15 13:04:19 -08:00
SkyratBot e895d0f98c [MIRROR] Tram signal defines, subtypes, documentation, compound damage calc [NO GBP] [MDB IGNORE] (#19313)
Tram signal defines, subtypes, documentation, compound damage calc [NO GBP]

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
2023-02-14 11:12:27 -05: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 ef3deed131 [MIRROR] Fixes the benches' appearance and odd sitting offset [MDB IGNORE] (#19338)
* Fixes the benches' appearance and odd sitting offset (#73397)

## About The Pull Request
Introduced in https://github.com/tgstation/tgstation/pull/73057,
undocumented, was a change in the offset of players sitting in benches,
which just made it look like if everyone was standing on benches, rather
than sitting on them. I can understand the original goal behind that
change (after discussing with LT3 about it), but I still think that, for
one direction where it might _arguably_ look better, _every_ other
direction looks absolutely awful, and goes against the norm when it
comes to sitting on an chair/sofa/anything you can buckle onto that
serves as a place to sit.

Introduced in https://github.com/tgstation/tgstation/pull/73243,
undocumented, was a new color for benches that just made them look blue
rather than the brown they were meant to be. I'm returning them to their
prior color, as I think that it fits a lot better in its surroundings in
light brown than it did with dirty blue.

This fixes both of these issues, bringing the benches back to
consistency with the rest.

## Why It's Good For The Game
It just looks more consistent with everything else.

![image](https://user-images.githubusercontent.com/58045821/218340276-ee42d15b-fc54-4e56-b565-164b8a8b4db2.png)

## Changelog

🆑 GoldenAlpharex
fix: Sitting on benches no longer gives you a weird offset that makes
you look like you're standing on them.
fix: Returns benches to their original light brown color, rather than
the middle between brown and cyan that they were at for a bit.
/🆑

* Fixes the benches' appearance and odd sitting offset

---------

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-02-13 20:07:20 -08: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 bd3fd77d82 [MIRROR] Fixes kitchen spike add context screentip runtime [MDB IGNORE] (#19330)
* Fixes kitchen spike add context screentip runtime (#73392)

## About The Pull Request

`held_item` does not always exist, hovering over spikes with empty hands
caused a runtime error

## Changelog

🆑 Melbert
fix: Fixed a runtime from hovering over a meat spike / kitchen spike
with an empty hand
/🆑

* Fixes kitchen spike add context screentip runtime

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-02-14 02:17:23 +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 19608fbac6 [MIRROR] Barsign UI/UX Improvements - Emissive effects, balloon alerts, and refactored code [MDB IGNORE] (#19121)
* Barsign UI/UX Improvements - Emissive effects, balloon alerts, and refactored code (#73106)

The barsign code is over a decade old so this is a big refactor with
some notable improvements:

- Emissive effects (neon lights now glow in the dark)
- Balloon alerts instead of `to_chat` messages
- Mapping helpers based on direction and all_access
- Barsigns are considered machinery now and use power

* Barsign UI/UX Improvements - Emissive effects, balloon alerts, and refactored code

* fixes modular maps

---------

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
2023-02-13 12:59:01 -05:00
SkyratBot 668bbcac4a [MIRROR] Adds the Ectoplasmic Outburst, a rare ghost-centric anomaly event [MDB IGNORE] (#19292)
* Adds the Ectoplasmic Outburst, a rare ghost-centric anomaly event (#73024)

## About The Pull Request

This PR description might be a bit rushed because I accidentally
submitted the PR and want to bang out a quick explanation of what this
is before people start asking questions.

Adds a new, rare, ghost-themed anomaly event -- The Ectoplasmic
Outburst.

![Animation](https://user-images.githubusercontent.com/28870487/215292488-cc5ce589-39be-490d-bd80-92a2ed6e948b.gif)

This event increases in power as more ghosts orbit it, with three
important thresholds to meet.

If 10% or more of all active observers are orbiting the anomaly, an
effect will occur in the nearby area akin to the revenant's defile
spell, damaging flooring, windows, and making a mess.

If 35% or more are orbiting the anomaly, nearby objects in the effect
radius have a chance to become haunted, and will fling themselves at
anyone nearby for a bit. Spooky!

Now, at 50% or more participation, things get serious. Ghosts orbiting
the anomaly will be polled to be brought back into the world for a brief
period as a vengeful spirit, anchored to a SUPER spooky ghost portal.
The portal closes after two minutes (alternatively, smash it with a
toolbox) and deletes all of the ghosts it spawned. Vengeful spirits are
mostly just meant to smash stuff and be a nuisance while they can. It's
a wonderful opportunity to let deadchat desalinate a little.

![spooky
ghosts](https://user-images.githubusercontent.com/28870487/215293550-f7bbede2-cfa0-49b1-87fe-f38ee45d1df8.gif)

Oh, also, the anomaly is deadchat controlled. With enough ghosts, you
could theoretically outrun anyone trying to neutralize it!

The associated reactive armor has an effect similar to the anomaly,
haunting nearby objects for a time when the wearer is struck. Not
particularly outstanding, but it can introduce an element of chaos into
a fight that your opponent might not expect.

## Why It's Good For The Game

Anomaly events are great for ghosts. Why not make one tailored just for
them!

Gives admins something to spawn when a wizard has killed half of the
crew but it's not quiiiite time for an ERT.

It's a bit of a silly event with a novelty reward, but I think it's rare
enough not to be a huge issue.

## Changelog

🆑 Rhials
add: Ectoplasmic Outburst anomaly event
add: Reactive Ectoplasm Armor
/🆑

* Adds the Ectoplasmic Outburst, a rare ghost-centric anomaly event

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-02-12 16:44:26 -08:00