Commit Graph

39346 Commits

Author SHA1 Message Date
SkyratBot
1d6f69a4fa [MIRROR] Undertile Element Logic Refactor, or Catwalks Aren't Affected by Ambient Occlusion Anymore [MDB IGNORE] (#17845)
* Undertile Element Logic Refactor, or Catwalks Aren't Affected by Ambient Occlusion Anymore (#71555)

## About The Pull Request
It was bugging me how catwalks would just be stuck rendering on the game
plane in order to be above the pipes and all the other underfloor
objects, because it meant that they stood out due to being affected by
ambient occlusion.

So I decided to change that, and the best change I could come up with,
was to refactor the logic of `/datum/element/undertile` in order to
actually allow us to do exactly what we wanted by having three different
states of underfloor visibility, which in turn allowed me to slap
everything that wasn't accessible on the floor plane rather than
whatever plane they were on, effectively making it so catwalk tiles
wouldn't need to be on the game plane anymore. :)

Also fixes https://github.com/tgstation/tgstation/issues/63590 while I'm
at it :)

## Why It's Good For The Game
Seeing ambient occlusion on catwalks make them stand out in a jarring
way, now that won't be the case anymore!

Now, instead, you get something like this, which _absolutely_ looks like
it fits in!

![image](https://user-images.githubusercontent.com/58045821/204106823-95b77a6b-b9c1-4494-b2f8-3b586c42428c.png)

## Changelog

🆑 GoldenAlpharex
refactor: Refactored the way the undertile component works, to allow it
to have a bit more granularity as to when it's meant to be covered, but
still visible, like for catwalks!
fix: Catwalks no longer are affected by ambient occlusion, and now
properly feel like actual floor tiles.
/🆑

* Undertile Element Logic Refactor, or Catwalks Aren't Affected by Ambient Occlusion Anymore

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-11-30 18:13:35 -05:00
SkyratBot
d88865fc78 [MIRROR] Cleans up toolbox initializes [MDB IGNORE] (#17822)
* Cleans up toolbox initializes (#71585)

🆑
fix: normal toolboxes can't hold fishing rods anymore
/🆑

* Cleans up toolbox initializes

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2022-11-30 16:11:49 -05:00
SkyratBot
f6b318b751 [MIRROR] Fix cleanbots spamming runtimes [MDB IGNORE] (#17827)
* Fix cleanbots spamming runtimes (#71583)

Broken in #71159. `get_path_to` can return null.

* Fix cleanbots spamming runtimes

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-11-30 15:51:47 -05:00
Zergspower
4981f2f1a0 New default laws for Silicon (#17269) 2022-11-30 18:05:04 +00:00
SkyratBot
852a5af6f7 [MIRROR] Saves 0.1 seconds of init by not reacting reagents if something is created during MC init [MDB IGNORE] (#17836) 2022-11-29 19:07:47 -08:00
SkyratBot
cf4a194e86 [MIRROR] Biogen Refactor and Code Cleanup, Faster Biomass Conversion and No More Biomass Cap! [MDB IGNORE] (#17828)
* Biogen Refactor and Code Cleanup, Faster Biomass Conversion and No More Biomass Cap! (#71563)

## About The Pull Request
So, I looked at the Biogenerator code and there was just, _so_ much old
and undocumented code, that I just spazzed out and started documenting
and refactoring everything. There's now a lot less usage of contents
lookups and for loops, and _almost_ everything is documented, now, too.

As for the changes, as you can see in the title, I made biomass
conversion faster. How much faster, you ask? 5 times faster with default
parts, up to 20 times faster with the best parts. It was painfully slow,
and that's not fun for anyone.

I also lifted the biomass cap. It wasn't useful, it wasn't fun, and
Melbert didn't really agree with it either. However, I enjoyed the look
of the biomass going up, so I gave it a max visual amount of 5000, so
you get to see it gradually filling up as you put your first 5000
biomass in. After that, you do you, chief. Watch the funny numbers go up
all you want.

I also improved the maths so that it wasn't just rounding stuff
constantly, and also gave a little bit more insight on how much biomass
everything would cost you, down to two decimals. If there's no decimals,
it won't show them, however.

<details>
<summary>Here's what that looks like now:</summary>
That's one screenshot per different decimal places, there's no trailing
zeros because I think we can all universally agree that those look bad
in this kind of setting.

![image](https://user-images.githubusercontent.com/58045821/204120744-a8c398dc-7c19-4ee0-a8cb-5615f1dce1ea.png)

![image](https://user-images.githubusercontent.com/58045821/204120749-90aae203-bdb8-4322-a657-bb4fd313d808.png)

![image](https://user-images.githubusercontent.com/58045821/204120755-8bed494d-0d70-4b4a-afa2-413610089f6d.png)

</details>

There's now also more information displayed when you examine the biogen,
namely, how many items it has stored, and how many it can hold. I also
fixed the formatting a bit, so it looks ever so slightly cleaner.

Other than that, I just improved the code everywhere I saw it to be
fitting, there shouldn't be any single-letter variables in there
anymore, and the code should be more spaced out. Honestly, at this
point, I wrote most of this code six hours ago so I don't remember all
of it, and I'm too lazy to go through and check what I've changed again.
Diff and changelog are there for that.

## Why It's Good For The Game
So, I'll be honest, there were two big reasons that motivated me to do
this. First of all, the biomass cap. That was a little silly, anyone
that has spent more than one shift in Hydroponics knows that you usually
only put Watermelons in the biomass generator as they're usually the
thing that nets you the most biomass. Botanists will generally stock the
fridges first, and if they have a lot of excess, they'll put it in the
generator if they want, but that's rarely what was done. I've talked
with @ MrMelbert about it and he gave me the go-ahead, as can be seen
here:

![image](https://user-images.githubusercontent.com/58045821/204115174-fb2610c0-61c5-44e1-845e-cc6925ee33e6.png)

The other reason was the excruciatingly slow processing speed, which
I've fixed. So we're good now. :)

## Changelog

🆑 GoldenAlpharex
refactor: Went through and refactored a lot of the old code of the
biogenerator, and made multiple improvements to its logic, which should
hopefully make it behave more consistently. Nearly all of it is now also
fully documented, so as to make it easier for anyone else that has to
sift through it in the future.
qol: The biogenerator now processes items five times faster, up to 20
times faster if properly upgraded!
qol: The biogenerator is no longer capped on biomass. Its visuals will
change up until 5000 biomass, but you're free to go as high as you'd
like with it! Sky's the limit!
fix: Fixed the logic of the biogenerator that would make it so the
amount of biomass used for recipes was wildly inconsistent. Now, there's
no more back-end rounding up, it's all on the front end when it needs to
be, so there's no loss or gain of biomass when there shouldn't be.
spellcheck: Fixed a capitalization issue with the seaweed sheets in the
biogenerator recipes.
spellcheck: Fixed multiple inconsistencies between the messages sent to
your chat by the biogenerator.
/🆑

* Biogen Refactor and Code Cleanup, Faster Biomass Conversion and No More Biomass Cap!

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-11-29 19:38:41 -05:00
Zonespace
e324f14956 Abductors no longer get objectives (#17577)
goodbye, adios, never come back
2022-11-28 20:21:33 -05:00
SkyratBot
fcebbd61a9 [MIRROR] Basic Mob Carp Bonus Part: Wall smashing [MDB IGNORE] (#17791)
* Basic Mob Carp Bonus Part: Wall smashing (#71524)

## About The Pull Request

Atomisation of #71421
This moves the attack function of "environment smash" flags which allow
simple mobs to attack walls into an element, so that we can put it on
other things later.
For some reason while working on carp I convinced myself that they had
"environment_smash" flags, which they do not, so this actually is not
relevant to carp in any way.

While implementing this I learned that the way wall smashing works is
stupid, because walls don't have health and so resultingly if a mob can
attack walls it deletes them in a single click. If we ever decide to
change this then it should be easier in an element than in three
different `attack_animal` reactions.
This is especially silly with the "wumborian fugu" item which allows any
mob it is used on to instantly delete reinforced walls, and also to
destroy tables if they click them like seven or eight times (because it
does not increase their object damage in any way).

## Why It's Good For The Game

Eventually someone will port a basic mob which does use this behaviour
(most of the mining ones for instance) and then this will be useful.
If we ever rebalance wall smashing to not instantly delete walls then
this will also be useful.
Admins can apply this to a mob to allow it to delete walls if they
wanted to do that for some reason, they probably shouldn't to be honest
at least until after we've done point two unless they trust the player
not to just use it to deconstruct the space station.

## Changelog
🆑
refactor: Moves wall smashing out of simple mob code and into an element
we can reuse for basic mobs later
/🆑

* Basic Mob Carp Bonus Part: Wall smashing

* SR mobs

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-11-28 16:42:19 -05:00
SkyratBot
16d20f50e1 [MIRROR] Basic Mob Carp Part III: Nuclear Operatives [MDB IGNORE] (#17711)
Basic Mob Carp Part III: Nuclear Operatives

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-11-28 16:41:37 -05:00
lessthanthree
f6d13fd686 [MANUAL MIRROR] Removes message admins for tram malfunction failing to run (#17805) 2022-11-28 13:06:35 -08:00
lessthanthree
f34af66153 [MANUAL MIRROR] Tram Malfunction successfully announces 'successfully' (#17806) 2022-11-28 21:06:01 +00:00
SkyratBot
a70a6a8055 [MIRROR] Save 0.6-0.7s of init time by splitting registering lists of signals into its own proc, and optimizing QDELETED [MDB IGNORE] (#17670)
* Save 0.6-0.7s of init time by splitting registering lists of signals into its own proc, and optimizing QDELETED

* modular RegisterSignals

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-11-28 14:51:08 -05:00
SkyratBot
2127bb5c61 [MIRROR] Unit Tests use a consistent human subtype [MDB IGNORE] (#17772)
* Unit Tests use a consistent human subtype

* sr dummy

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-11-28 13:50:05 -05:00
SkyratBot
9f3ebb04cb [MIRROR] Basic Mob Carp Part I: Colourful carp [MDB IGNORE] (#17704)
* Basic Mob Carp Part I: Colourful carp

* merge skew

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-11-28 13:49:44 -05:00
SkyratBot
4dad02fb35 [MIRROR] Fixes regenerate organs carrying over organ damage [MDB IGNORE] (#17597)
* Fixes regenerate organs carrying over organ damage

* oop

* organ conflict

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-11-28 13:49:25 -05:00
SkyratBot
a02a900a0d [MIRROR] Removes Bombgers [MDB IGNORE] (#17790) 2022-11-28 10:24:09 -08:00
SkyratBot
3f5f271988 [MIRROR] Strange Reagent correctly revives station pets, (and humans), correctly again. [MDB IGNORE] (#17723)
* Strange Reagent correctly revives station pets, (and humans), correctly again.

* Update code/modules/mob/living/carbon/carbon_update_icons.dm

* centaur shitcode

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-11-28 12:24:54 -05:00
SkyratBot
0ca2c0b527 [MIRROR] Gives bread and cake slice_types and adds screentip verbs to proccessed foods [MDB IGNORE] (#17721)
* Gives bread and cake slice_types and adds screentip verbs to proccessed foods (#71449)

## About The Pull Request

A side effect of my pizza PR #71202 I added contextual screentips as
part of processable.dm. In doing this, I noticed that with a few
exceptions, almost every single bread and cake type copies the proc
exactly the same for every single child of cake or bread, so I put the
proc on the parent of bread and cake and gave them slice_types, making
them more similar to pizza.dm

For everything else I've changed the default that I put in
processable.dm into "slice" or "cut" for things that use the knife and
"flatten" for things that use the rolling pin.

Finally, you can slice bread with saws now, because I think its silly
that only pizza gets this luxury.

## Why It's Good For The Game

Because it wasnt the focus of #71202 I didn't mess with screentips
outside of the pizza file a lot, but now that it's merged I figure I
should go and do that.
As Bread and Cake's processables are almost fully standardized it seems
silly for them to call on the proc 12 times in the same document so I
did this, which also allows for more versatility in editing how they
work as well allow people to, if they want to, add more tool behaviours
in the future without adding in 12 lines of code. Also means that people
who want to add new cake or bread have one less thing to do.

## Changelog

🆑
add: you can saw bread with a saw into bread slices
qol: added screentip verbs to a bunch of food files
code: bread and cake now have slice types and all only have one call on
the processable.dm proc
/🆑

* Gives bread and cake slice_types and adds screentip verbs to proccessed foods

* sco'ish

* fuck me ig

Co-authored-by: Sol N <116288367+flowercuco@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
2022-11-28 17:16:01 +00:00
SkyratBot
e1bcd32594 [MIRROR] [NO GBP] Rabbits won't become dense when they die [MDB IGNORE] (#17757)
* [NO GBP] Rabbits won't become dense when they die

* Update basic.dm

* Update basic.dm

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-11-28 12:05:14 -05:00
SkyratBot
d8c9307296 [MIRROR] Basic Mob Carp Part IV: Revived Basic Mobs Look Alive [MDB IGNORE] (#17724)
* Basic Mob Carp Part IV: Revived Basic Mobs Look Alive (#71482)

## About The Pull Request

Fourth atomisation of #71421
Pretty basic fix, if you revived basic mobs they'd retain their dead
appearance forever (as well as losing density if they had it).
Now they don't do that.

There's still some work to do to get the Lazarus Injector to work with
Basic Mobs because of how it changes behaviour, and we don't really have
support for that yet. Probably important once it covers more pets
because once Basic Mob Dogs is merged Ian will be temporarily impossible
to revive with the injector (although strange reagent, wands, etc will
still work fine).
I'll get to that eventually.

## Why It's Good For The Game

If something is alive it should look alive.

## Changelog
🆑
fix: A revived basic mob will stand up again rather than inching around
as a living corpse.
/🆑

* Basic Mob Carp Part IV: Revived Basic Mobs Look Alive

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2022-11-28 11:22:55 -05:00
SkyratBot
c986f2779b [MIRROR] Photocopier now tells you if it can't charge you successfully. [MDB IGNORE] (#17800)
* Photocopier now tells you if it can't charge you successfully. (#71559)

## About The Pull Request

Closes #71466.

Photocopying your ass is fine and works well enough, but the comments to
that report were correct that it provided no user feedback as to why it
wasn't copying. This just adds a small balloon alert to the viewer so
that they realize that they might have to have their card in their hand
for it to run.

I toyed around with a few iterations of the message and I figured that
one got the point across well, but if anyone has any better ideas that
would be welcome as well. Not sure if we should just have it be a longer
"Say" message.
## Why It's Good For The Game

User feedback when something fails is important!
## Changelog
🆑
qol: The photocopier will now tell you when it's not able to find an ID
to charge on your person.
/🆑

* Photocopier now tells you if it can't charge you successfully.

Co-authored-by: san7890 <the@san7890.com>
2022-11-28 09:38:01 -05:00
SkyratBot
1132a363ae [MIRROR] Revert "Unit tests radio, saymode, and language prefix keys" [MDB IGNORE] (#17793)
* Revert "Unit tests radio, saymode, and language prefix keys" (#71474)

Reverts tgstation/tgstation#71328 (@ Zonespace27 )

Departmental shorthand (.h/:h) is a convenience alias that should apply
to all jobs and all race types and all classifications. ITS SUPPOSE TO
FUCKING CONFLICT.

if you are ai and not in a holopad, it should go to binary.

if you are ai and in a holopad, it should go to the holopad.

if you are borg it should go to binary

if you are xeno it should go to alien

Removing it from the AI over a stupid need to made universal broad
reaching rules that can be declared upon the code was stupid.

This entire unittest is needlessly overboard and over generic putting
"rules" that are not backed up by logic on the codebase in a way that
hinders making good UX, not help.

The datumized saymode system not being able to handle this complexity
when the old hardcoded system could is a problem with the datumized
saymode system and not the fucking :h shortcut for holopad.

🆑 Common fucking sense
fix: The changes to Mafia and holopad say prefixes was reverted.
spellcheck: Mafia changeling say prefix has no longer been changed to
.1, and has been returned to .j
spellcheck: AI Holopad say has no longer been changed to .2, and has
been returned to .h
/🆑

* Revert "Unit tests radio, saymode, and language prefix keys"

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2022-11-28 06:30:50 +00:00
SkyratBot
a101d66658 [MIRROR] Allows Fully Heal to be passed a series of flags, fixes Adminordrazine being horrible [MDB IGNORE] (#17535)
* Allows Fully Heal to be passed a series of flags, fixes Adminordrazine being horrible

* Apply suggestions from code review

* few more flag bits

* our shit

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
2022-11-28 00:09:31 +00:00
SkyratBot
150e3450d1 [MIRROR] Hardcrit immunity grants hearing while under the hardcrit threshold and nooartrium doesn't blind you anymore [MDB IGNORE] (#17783)
* Hardcrit immunity grants hearing while under the hardcrit threshold and nooartrium doesn't blind you anymore (#71525)

## About The Pull Request

Adds TRAIT_NOCRITOVERLAY to nooartrium which stops the normal critical
overlay from appearing. Damage type overlays still appear as usual.

Makes TRAIT_NOHARDCRIT give you immunity to the deafness caused by being
in hardcrit. (Which also leads into being able to hear while using
nooartrium.)

Makes nooartrium give you immunity to oxyloss knockouts. (The reason
should be obvious.)
## Why It's Good For The Game

Bugfix good.
## Changelog
🆑
fix: Nooartrium doesn't blind you anymore and keeps you conscious
regardless of oxyloss.
fix: Being immune to hardcrit makes you able to hear while you should be
in hardcrit.
/🆑

* Hardcrit immunity grants hearing while under the hardcrit threshold and nooartrium doesn't blind you anymore

Co-authored-by: RikuTheKiller <88713943+RikuTheKiller@users.noreply.github.com>
2022-11-27 18:49:39 -05:00
SkyratBot
6fdbbc633d [MIRROR] Fixes the identification section not appearing in PDAs and improves its appearance just a bit (while also fixing some runtimes) [MDB IGNORE] (#17753)
* Fixes the identification section not appearing in PDAs and improves its appearance just a bit (while also fixing some runtimes) (#71467)

## About The Pull Request
Yeah so turns out that #71420 broke the display of the identification
section in PDAs (and by extension, all modular (I guess not really
modular anymore) computers), because it forgot to remove a now unused
variable from the interface. However, while investigating this, I
strolled upon many more bugs and other general unresponsiveness of the
interface, so I went ahead and fixed those.

There's also no longer an empty set of `()` on both of the fields if
there's no ID inside of the computer anymore, because that was stupid.

## Why It's Good For The Game
Bug bad, fix good. Multiple fix, even better.

## Changelog

🆑 GoldenAlpharex
fix: PDAs (and by extension, modular computers) now can see the ID
section at the top of their main screen again, which means that PDAs can
have IDs imprinted on them again.
fix: Fixes the ID section not displaying anything when there wasn't any
ID inserted in it, even if it had an imprinted name and job.
fix: Fixes the "Eject ID" and "Imprint ID" buttons not being disabled
when there's no ID in the computer/PDA.
fix: There's no longer any empty () by in the "ID Name" and "Assignment"
fields of the ID section of computers when there's no ID in them.
/🆑

* Fixes the identification section not appearing in PDAs and improves its appearance just a bit (while also fixing some runtimes)

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-11-27 15:32:38 -08:00
SkyratBot
cdd34d2c0a [MIRROR] Fixes being unable to open necropolis gate when behind it [MDB IGNORE] (#17751)
* Fixes being unable to open necropolis gate when behind it (#71497)

## About The Pull Request
Adds a new parameter to the seethrough component for if it should allow
clickthrough when transparent (true by default), and sets it to false on
the necropolis gate.
## Why It's Good For The Game
Fixes #71471
Ashwalkers can't even leave their own base right now because it's
impossible for them to open the door from inside.
## Changelog
🆑
fix: Fixed being unable to open the necropolis gate when standing behind
it
/🆑

* Fixes being unable to open necropolis gate when behind it

Co-authored-by: GoblinBackwards <22856555+GoblinBackwards@users.noreply.github.com>
2022-11-27 15:30:40 -08:00
SkyratBot
def64b2962 [MIRROR] Fixes a transofrm animation todo [MDB IGNORE] (#17756)
* Fixes a transofrm animation todo (#71496)

makes it pass appearance

Co-authored-by: TiviPlus <572233640+TiviPlus@ users.noreply.com>

* Fixes a transofrm animation todo

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: TiviPlus <572233640+TiviPlus@ users.noreply.com>
2022-11-27 15:28:51 -08:00
SkyratBot
1ed5158358 [MIRROR] Lets tgui input actually accept decimals where allowed to [MDB IGNORE] (#17713)
* Lets tgui input actually accept decimals where allowed to (#71453)

It was rounded off ui side even if dm side allowed it.

* Lets tgui input actually accept decimals where allowed to

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
2022-11-27 15:18:06 -08:00
SkyratBot
04102bcdd7 [MIRROR] Nukies Update 6: Interdyne is here for you! Medical Supplies and Atropine! [MDB IGNORE] (#17785)
* Nukies Update 6: Interdyne is here for you! Medical Supplies and Atropine!

* Update medkit.dm

* our uses

* adds it to opfor, too

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
2022-11-27 15:17:31 -08:00
SkyratBot
6bbf3809f8 [MIRROR] Tram signal and station improvements [MDB IGNORE] (#17755)
Tram signal and station improvements

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2022-11-27 14:47:52 -08:00
SkyratBot
257feb1be7 [MIRROR] More horrible 515 proc compatibility. [MDB IGNORE] (#17671)
* More horrible 515 proc compatibility.

* Feex

* Hopefully we're done now

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-11-27 14:46:36 -08:00
SkyratBot
9b980f9612 [MIRROR] Remove explicit runtime check in monkey business test [MDB IGNORE] (#17767)
* Remove explicit runtime check in monkey business test (#71513)

I knew this was redundant at first but kept it anyway because I thought
it was fine.

However, for some code I'm writing to make issues for flaky tests, this
is going to be an issue. I'm making sure it can intelligently create
collated issues for multiple failures (rather than generating an issue
for every individual shapeshift failure, for instance), but also a more
obviously titled issue if it's only one failure. With this assertion, it
always guarantees multiple failures, and would make issues harder to
read.

To be clear, runtimes during a test ALWAYS mean failure. This check was
never necessary, I just didn't mind it.

* Remove explicit runtime check in monkey business test

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-11-27 07:57:55 -08:00
SkyratBot
10f91f3094 [MIRROR] mugs now default to spawning empty [MDB IGNORE] (#17771)
* mugs now default to spawning empty (#71530)

## About The Pull Request

![image](https://user-images.githubusercontent.com/116288367/204053022-1344cfce-8b55-4907-83b1-30e4eeab137d.png)

## Why It's Good For The Game

the sprites wrong!!!!!!!!!!!!!! also the code comment says that the
parent /glass_mug exists to have an empty sprite but the sprite doesn't
start empty!

## Changelog

🆑
fix: roundstart empty mugs now appear to be empty
fix: nanotrasen mug no longer becomes normal mug after you drink from it
/🆑

* mugs now default to spawning empty

Co-authored-by: Sol N <116288367+flowercuco@users.noreply.github.com>
2022-11-27 07:57:26 -08:00
SkyratBot
8c84bb2ff1 [MIRROR] the shocks from spell packets now have SHOCK_NOGLOVES [MDB IGNORE] (#17773)
* the shocks from spell packets now have SHOCK_NOGLOVES (#71506)

## About The Pull Request

See title.

## Why It's Good For The Game

Atomized from https://github.com/tgstation/tgstation/pull/71426.

The shocks come from you being hit in the chest by a packet of enchanted
birdseed, not from touching something with your hands.

## Changelog

🆑 ATHATH
fix: The shocks from the spell packets spell are no longer blocked by
insulated gloves.
/🆑

* the shocks from spell packets now have SHOCK_NOGLOVES

Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
2022-11-27 07:56:23 -08:00
SkyratBot
2640a465db [MIRROR] Wrench pda fix [MDB IGNORE] (#17770) 2022-11-26 20:27:48 -08:00
SkyratBot
932d25cdeb [MIRROR] Mail sorting helper, and disposals fixes [MDB IGNORE] (#17683)
* Mail sorting helper, and disposals fixes (#70861)

## About The Pull Request

![image](https://user-images.githubusercontent.com/2676196/198695007-53db1b70-845f-46a9-b98a-e146bb53951b.png)

This PR adds a mail sorting map helper, which during Late Initialization
will apply a sorting location index to the mail sorting disposals pipe
under them. I have replaced the varedits with all mail sorters with the
appropriate map helpers. I have thoroughly tested this, making sure
packages arrived to every location, where possible.

I have also fixed a few issues with the disposals network:

**Tramstation**

- One of the random maintenance segments had a place with no disposal
pipes. This has been fixed
- A sorter was looking for chapel and library packages, but it actually
meant to look for engineering packages
- There was no dormitory mail sorter, I have added one

**Metastation**

- There was no dormitory mail sorter, I have added one

**Icebox**

- There is no experimentor lab in icebox, but there is an
"experimentation" lab, which is good enough, so I have added it as a
location

**Deltastation**

- There was no dormitory mail sorter, I have added one
- Virology was not connected to the disposals network. However, on every
other map, it has a one way connection. I have hooked it up just like
that, so virology mail will arrive safely, and virology trash will go
into space as usual.

**Kilostation**

- Genetics packages were rerouted to the psychologist office

Unsolved issue on kilostation: there is no experimentor on this station,
and there is no space for a disposals in the circuits lab, so sadly, if
you send a package to this destination, it will come back to the mail
sorting office.

**Future improvements**

The TAGGERLOCATIONS list, which is used to retrieve the labels of the
various tags, is frankly unorganizable, and hard to expand. I have
delayed fixing this for a future PR.

I kinda wish to remove the sortType variable, as it is no longer
necessary to have it around with these helpers, but sadly, this would
ruin downstream maps, so I have no plans for this at the moment.

## Why It's Good For The Game

While mapping, having to constantly compare a comment in flavor_misc.dm
to figure out what to varedit a disposal mail sorter to is rather
annoying. These map helpers, similar to the access helpers, will help
with this issue.

Its also good if mail actually arrives.

## Changelog

🆑
qol: added a mail sorting map helper, to allow mappers to create
disposal networks faster
fix: fixes several non working disposal mail targets that never received
their packages
/🆑

* Mail sorting helper, and disposals fixes

* vr fixes

Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2022-11-25 21:11:20 -05:00
SkyratBot
78c1b9f456 [MIRROR] [MDB Ignore] Unit Tests for Invalid Space Turfs (Area Bullshit Edition) [MDB IGNORE] (#17626)
* [MDB Ignore] Unit Tests for Invalid Space Turfs (Area Bullshit Edition)

* should probably make tests pass

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
2022-11-25 16:29:20 -05:00
SkyratBot
7bb8ecb768 [MIRROR] Fixup list helpers, remove listoflist footgun from generic list procs, remove duplicated procs. [MDB IGNORE] (#17749)
* Fixup list helpers, remove listoflist footgun from generic list procs, remove duplicated procs. (#71280)

Add helper defines for handling list values in lists to remove the
footgun where `+=` and `-=` with lists as the Right hand side argument
causes the list contents to be added or removed, not the list itself.

Use said helpers to remove the footgun from list helpers that could
reasonably be expected to get called on list of lists.

Remove duplicated clear nulls from list proc. this pr will fail to
compile until i go move those over to the preexisting one, but the
compile errors will tell me where all the consumers are.

This likely fixes some bug(s) in the issue tracker, but we don't know
what they are.

* Fixup list helpers, remove listoflist footgun from generic list procs, remove duplicated procs.

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2022-11-25 15:01:04 +00:00
SkyratBot
ea1e6ff95f [MIRROR] Adds a preference that disables intensive rendering on different multiz layers [MDB IGNORE] (#17737)
* Adds a preference that disables intensive rendering on different multiz layers (#71218)

## About The Pull Request

It's kinda hacky, but it is nearly the same as just rendering one z
layer.
We allow people to ENTIRELY REMOVE most plane masters from their screen.
This has the side effect of disabling most visual effects (AO is a big
one) which saves a LOT of gpu.

We rely on planes being essentially layers to ensure things render in
the proper order. (outside of some hackyness required to make parallax
work)

I've kept parallax and lighting enabled, so visuals will still look
better then multiz pre plane cube.
It does also mean that things like FOV don't work, but honestly they
didn't work PRE plane cube, and FOV's implementation makes me mad so I
have a hard time caring.

Reduces gpu usage on my machine on tram from 47% to 32%, just above the
27% I get on meta.

I'm happy with this.

Oh also turns out the parallaxing had almost no cost. Need to remove it
as a side effect of what I'm doing but if I could keep it I would.

There's still room for in between performance options, like disabling
things like AO on lower z layers, but I didn't expect it to make a huge
impact, so I left things as is

Also fixes a bug with paper bins not respecting z layer. It came up in
testing and annoyed me

## Why It's Good For The Game

Ensures we can make multiz maps without running into client performance
issues, allows users to customize performance and visual quality.

## Changelog
🆑
add: Adds a new rendering option to the gameplay preferences. You can
now limit the rendering intensity of multiz levels. This will make
things look a bit worse, but run a LOT better. Try it out if your
machine chokes on icebox or somethin.
/🆑

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

* Adds a preference that disables intensive rendering on different multiz layers

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2022-11-25 14:27:27 +00:00
SkyratBot
d350def891 [MIRROR] Fix allow_spawn check for Ashwalkers and Battlecruiser crew [MDB IGNORE] (#17739)
* Fix allow_spawn check for Ashwalkers and Battlecruiser crew (#71480)

## About The Pull Request
Currently, if you fail the allow_spawn test for Ashwalkers or
Battlecruiser Crew you will get the deny message even if the check was
silent. Meaning every time you open the spawners menu you get "You have
exhausted your usefulness to the Necropolis." or "You have already used
up your chance to roll as Battlecruiser." All the other allow_spawn
checks have a `!silent` check before sending the message so that they
only show this message if the player actually clicks the spawner.

Also for some reason the ashwalker message is bold and it shouldn't be.
## Why It's Good For The Game
Consistency is good, as is not giving the player unnecessary chat
messages.
## Changelog
🆑 VexingRaven
fix: Ashwalker Eggs and Battlecruiser spawners no longer give you a
warning every time you open the spawn menu if you've already spawned as
that role once.
spellcheck: Ashwalker Egg warning message for having already spawned
once is no longer bolded for no reason.
/🆑

* Fix allow_spawn check for Ashwalkers and Battlecruiser crew

Co-authored-by: VexingRaven <msgerbs@users.noreply.github.com>
2022-11-25 14:26:05 +00:00
SkyratBot
1efc44a4f6 [MIRROR] Wirecarp mass PDA now edits the TARGET computer [MDB IGNORE] (#17740)
* Wirecarp mass PDA now edits the TARGET computer (#71483)

## About The Pull Request

Wirecarp's mass pda perms feature broke when I had switched 'target
computer' for the host of the application instead, likely due to a copy
paste error. This fixes that, allowing the RD to once again give people
PDA perms.

## Why It's Good For The Game

Wirecarp now works as intended.

## Changelog

🆑
fix: Wirecarp now lets you give people mass PDA perms again.
/🆑

* Wirecarp mass PDA now edits the TARGET computer

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2022-11-25 14:25:37 +00:00
SkyratBot
a0bc2f5697 [MIRROR] The clown car now crashes upon collision with a deer. Also fixes an unrelated bug with car keys I found while testing. [MDB IGNORE] (#17741)
* The clown car now crashes upon collision with a deer. Also fixes an unrelated bug with car keys I found while testing. (#71488)

## About The Pull Request

Clown cars now crash into deer rather than sucking them up.

Removing the keys from a car would call forcemove, then place it in the
user's inventory. For some reason, the inserted_key would be nulled
during the forcemove, leading to a null.equip_to_best_slot being called
and a runtime and not getting your key back.
## Why It's Good For The Game

https://en.wikipedia.org/wiki/Deer%E2%80%93vehicle_collisions

The natural enemy of the car is the deer.
## Changelog
🆑
fix: you get your keys upon removing them from a car now!
balance: the clown car now crashes upon ramming into a deer, like god
intended.
/🆑

* The clown car now crashes upon collision with a deer. Also fixes an unrelated bug with car keys I found while testing.

Co-authored-by: Rhials <Datguy33456@gmail.com>
2022-11-25 14:25:11 +00:00
SkyratBot
0aed085cb8 [MIRROR] Wall mounted vendors are no longer a Brand Intelligence liability [MDB IGNORE] (#17744)
* Wall mounted vendors are no longer a Brand Intelligence liability (#71468)

## About The Pull Request

Wall mounted vendors (currently just the wallmed) are no longer able to
be selected or spread to during the Brand Intelligence event. This is
done by checking the density variable, rather than just excluding the
wallmed, in case any other wall mounted vendors are implemented.

Also, adds and removes empty lines that were bugging me.
## Why It's Good For The Game

Closes #71465.

Wall mounted vendors look wonky when they leave the wall due to their
visual offset, and since they don't look like vending machines it can be
a bit confusing. Less buggy vendors and more immersive slapstick comedy.

## Changelog
🆑
fix: Wall mounted vendors can no longer receive brand intelligence.
/🆑

* Wall mounted vendors are no longer a Brand Intelligence liability

Co-authored-by: Rhials <Datguy33456@gmail.com>
2022-11-25 14:24:03 +00:00
SkyratBot
c275f3203f [MIRROR] Biogen backend optimization and bugfix [MDB IGNORE] (#17748)
* Biogen backend optimization and bugfix (#71460)

## About The Pull Request

In previous PR I didn't touch the backend much, but I've learned that
while loop the biogen was using is not very good when we have the
`process()`.
I replaced that with a cleaner `process(delta_time)`, it should also be
less resource intensive.
No real player-facing changes.

Also fixed a bug with non-stackable items not spawning more than 1 copy
on purchase. This was working on dev branch but somehow broke recently.

And increased the size of the most important buttons slightly, while I
was at it:

![image](https://user-images.githubusercontent.com/3625094/203447298-bdfedd49-ae90-41e4-81a8-668efd0b41dd.png)

## Changelog
🆑
fix: biogenerator now properly gives non-stackable items
refactor: biogenerator backend optimization
/🆑

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

* Biogen backend optimization and bugfix

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2022-11-25 14:22:50 +00:00
SkyratBot
abd6980402 [MIRROR] Limits when Icebox's snow will alert you [MDB IGNORE] (#17746)
* Limits when Icebox's snow will alert you (#71485)

## About The Pull Request
Limits when you get alerted to icebox, to when you would need to know it

When youre in a mining area
If you're a miner
and If you can see the snow outside
then it will alert you, otherwise it hides the alert
and ghosts always get alerted
## Why It's Good For The Game
Getting alerted about incoming storms is annoying when you're indoors
for 80-100% of the shift, and just serves to clutter chat. Also, the way
its set up is modular and can be applied to any other weather condition
you'd want
## Changelog
🆑
fix: limits how much you get alerted by icebox storms
/🆑

Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: etherware-novice <candy@ notarealaddr.com>

* Limits when Icebox's snow will alert you

Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com>
Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: etherware-novice <candy@ notarealaddr.com>
2022-11-25 14:22:07 +00:00
SkyratBot
4a5ac51af0 [MIRROR] Fix traitor objectives failing to complete [MDB IGNORE] (#17712)
* Fix traitor objectives failing to complete (#71459)

Traitor objectives were registering non-lists to lists for completion/failure signals, this fixes that by making them lists.

* Fix traitor objectives failing to complete

Co-authored-by: 1bw0kopy <xz2rbf23@protonmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-11-25 02:43:43 +00:00
SkyratBot
60d0ec8afe [MIRROR] Fixes antag hud icons disappearing if mesons were equipped [MDB IGNORE] (#17710)
* Fixes antag hud icons disappearing if mesons were equipped (#71155)

## About The Pull Request

They sit on plane 0, IE the darkness plane. So if say, the darkness
plane was alpha'd away (which we have to do with see_blackness), then so
goes the hud element. stupid stupid stupid stupid

## Why It's Good For The Game

Fixes a derivation of #68087
Not all of it, since most of that came about pre plane cube and likely
has to do with z'd image shenanigines. I got it to replicate once
randomly but then it stopped. v annoying. There is a linked issue report
that mentions mesons however, which this does resolve.

## Changelog
🆑
fix: You can now see antag hud icons AND see through walls. WOW
/🆑

* Fixes antag hud icons disappearing if mesons were equipped

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2022-11-25 02:41:48 +00:00
SkyratBot
c5b3403f34 [MIRROR] New random event: Tram Malfunction [MDB IGNORE] (#17621)
* New random event: Tram Malfunction (#71234)

## About The Pull Request
Random event where for a couple minutes the tram crossing signals stop
working, and it hits hard.
## Why It's Good For The Game
Be careful, don't become a tram statistic! Adds a bit of 'Frogger'
gameplay for a couple minutes.
## Changelog
🆑 LT3
add: New random event added: Tram Malfunction
/🆑

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

* New random event: Tram Malfunction

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2022-11-25 02:10:26 +00:00
SkyratBot
f31ab6f6c0 [MIRROR] Surgery code improvements [MDB IGNORE] (#17614)
* Surgery code improvements

* missed flag

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-11-25 02:00:09 +00:00
SkyratBot
b922aef977 [MIRROR] Adds Some Supermatter Effects [MDB IGNORE] (#17734)
* Adds Some Supermatter Effects  (#67866)

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

## About The Pull Request

This pull request adds a variety of Supermatter delamination effects to
make the crystal a bit more fun to watch and stare at. The initial
filter effects and animations are from Baystation12, but I have adapted
it to make it fun to watch!

It'll be a bit hard to explain in text, so this is the text explanation.

For normal running conditions, the Supermatter will emit pretty golden
rays, and a large campfire like that glow that grows and shrinks based
on it's power level.

![dreamseeker_vnw1BL7DNy](https://user-images.githubusercontent.com/77420409/174471609-7be70234-5eae-4839-b551-1c28145d6b60.gif)

For high power conditions, such as high O2 or CO2 amounts, the
Supermatter's rays will glow red and it will emit red light, aswell as
turn red (like before, unchanged).

https://user-images.githubusercontent.com/77420409/174471693-e191ee47-1a01-4b76-8570-9d12b994c2d4.mp4

When the conditions for a cascade, singularity, or a tesla are met, the
colours and rays emitting from the crystal will change to match!

https://user-images.githubusercontent.com/77420409/174471747-dffb3beb-dd38-42a1-a97b-7262dabd60af.mp4

https://user-images.githubusercontent.com/77420409/174471765-af1927e8-a48e-4fd5-a35c-6b3aa53c5add.mp4

Also, I've added more sucking power to the crystal during its final
countdown for DRAMATIC EFFECT. If the singularity conditions are met,
the supermatter will SUCK THINGS INTO IT, even if they are bolted to the
GROUND. Just like a singularity! It's REALLY COOL.
https://streamasaurus.com/sharing/singularity_full.mp4 <--17MB video.
UPDATE 1: New rays for the singulo

https://user-images.githubusercontent.com/77420409/174933219-0118748a-02da-40f8-9b99-06009e197cc8.mp4
UPDATE 2:
Singularity delamination final countdown effect??:

https://user-images.githubusercontent.com/77420409/175421220-66bae109-204d-44ee-8a67-c18ce8eff3ba.mp4

When the supermatter has reached the FINAL COUNTDOWN but does NOT meet
the criteria for a singularity, it will simply YOINK everything
unwrenched towards, like a gravitational anomaly, range based on power
at the time. Not as crazy as the singularity. Most things will get
slapped against walls.

Here, have another cool delamination demo showing the criteria's
swapping mid countdown!
https://streamasaurus.com/sharing/modeswapping.mp4 <-- 17.5MB

I am likely missing something important from this body as I am drowsy
making this! I will update this body with anything I forgot to note that
I did.

## Why It's Good For The Game

The supermatter is a a very cool thing, but it could be cooler. I think
the visual experience could do with a bit of an upgrade, as visual
feedback is really cool and impressive to watch! You could tell more
about the crystal without looking at the console, but not everything or
precise numbers.

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

🆑
add: The Supermatter crystal will now emit rays of light, varying on
it's power level and situation.
code: improves a formatting and comment spelling
fix: The Causality field now actually shows up!
/🆑

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

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

* Adds Some Supermatter Effects

Co-authored-by: nevimer <77420409+nevimer@users.noreply.github.com>
Co-authored-by: tralezab <40974010+tralezab@ users.noreply.github.com>
2022-11-25 01:55:42 +00:00