Commit Graph

613 Commits

Author SHA1 Message Date
SkyratBot
dbec66f02a [MIRROR] Fixes an issue with strip menus making duplicate windows (#26944)
* Fixes an issue with strip menus making duplicate windows (#82055)

## About The Pull Request
Fixes an oversight in #57889, where the strip_menus list is set, but
never accessed, leading to whenever you drag to open the menu, it always
opens a new window.

## Why It's Good For The Game
Noticed this while porting the TGUI strip menu, and I figured I should
fix it here too. From the design of the strippable element, it seems
that this was the original design, but somehow got lost along the way.

## Changelog
🆑
Fix: Opening a mob's strip menu multiple times will now properly update
the window.
/🆑

* Fixes an issue with strip menus making duplicate windows

---------

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
2024-03-20 06:29:32 -04:00
SkyratBot
e5ba1e5e99 [MIRROR] [NO GBP] The deathmatch modifiers modal menu can actually be opened now. (#26942)
* [NO GBP] The deathmatch modifiers modal menu can actually be opened now. (#82041)

## About The Pull Request
I've fucked up the logic, so it requires the user to be both the host
and an admin to open it, which was the case when I tested it locally.
This PR fixes that and other issues (and **un**dumbs some of the code).
The spinning screen modifier has also been scrapped for being downright
awful and breaking my screen.

## Why It's Good For The Game
Fixing stuff I've thankfully noticed early.

## Changelog

🆑
fix: The deathmatch modifiers modal menu can actually be opened now.
Also fixed a bunch of issues it had.
/🆑

* [NO GBP] The deathmatch modifiers modal menu can actually be opened now.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-03-20 06:28:45 -04:00
SkyratBot
f7a386b43a [MIRROR] Deathmatch modifiers (#26915)
* Deathmatch modifiers

* Update supplypod.dm

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
2024-03-17 07:27:26 -04:00
SkyratBot
76f9a3c10d [MIRROR] [NO GBP] Fixes the larva "hide" ability not properly hiding larvas under tables. (#26879)
* [NO GBP] Fixes the larva "hide" ability not properly hiding larvas under tables. (#81921)

## About The Pull Request
This PR fixes yet another small issue with elevation.

## Why It's Good For The Game
This PR fixes yet another small issue with elevation.

## Changelog

🆑
fix: Fixed the larva "hide" ability not properly hiding larvas under
tables.
/🆑

* [NO GBP] Fixes the larva "hide" ability not properly hiding larvas under tables.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-03-13 19:49:48 -04:00
SkyratBot
b62b8cdd81 [MIRROR] Drunk people no longer feel cold (#26855)
* Drunk people no longer feel cold (#81939)

## About The Pull Request

Simple PR, if you're drunk then you no longer feel the effects (or get
the warnings) of cold temperatures.
This makes things like cryosting and the coldness of space give you no
warning or tell of why you're being hurt, but it also means you don't
suffer its slowdown.

## Why It's Good For The Game

It's a small bit of realism that doesn't do much to change the game, but
gives some extra bonus/drawback to alcohol that isn't really changing
the game by any means.

## Changelog

🆑 JohnFulpWillard, Atlasle
balance: You no longer feel cold if you're drunk. You still take damage,
but get no warning or slowdown.
/🆑

* Drunk people no longer feel cold

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2024-03-13 19:37:24 -04:00
SkyratBot
0e217eab7b [MIRROR] Sticker resprite and rewrite (#26853)
* Sticker resprite and rewrite (#81893)

Stealing from Goon is bad, but stickers are actually a good feature, and
loosing those will be a disappointment. This project aims to recreate
'em from scratch without using Jimmyl's and Goon's code. Also,
suspicious icons were resprited and renamed.

* Sticker resprite and rewrite

---------

Co-authored-by: Interception&? <137328283+intercepti0n@users.noreply.github.com>
2024-03-13 19:35:59 -04:00
jjpark-kb
3b134f2e85 Missingmirrors (#26743)
* [NO GBP] Extremely tiny stupid nitpick changes to the smoking room ruin (#81767)

## About The Pull Request

Ok so this just does some really really tiny changes to the smoking room
of the smoking room ruin. I added this way back during march mapness and
have always wanted to touch up this last area.

These are basically just touch-ups that are two years too late because
they felt so insignificant and small that making an entire PR to change
them felt excessive. I still feel that way but I'm also a perfectionist
and this would linger in my head until the day I die.

Anyways, there should be slightly less awkwardly placed spawners, decals
blocked from view. You also have to walk past the smoky remains to reach
the second special lighter, instead of the first.

That's it, that's everything. You don't even get screenshots here.
Sorry.
## Why It's Good For The Game

I have an obsession with revisiting and completing old, unfinished work.
## Changelog
🆑 Rhials
fix: Some tiny tiny changes to the smoking room ruin to make it a little
less ugly.
/🆑

* Tram tile/bench fixes (#81798)

## About The Pull Request

- Tram benches can be rebuilt after deconstruction
- Tram tiles build the correct amount inhand
- Tram tiles available in the engineering protolathe with other items
- Tram tiles create the right stack type when pulled up
- Tram tiles have inhand/obj icons for both types

## Changelog

🆑 LT3
fix: Tram floor tiles constructed inhand provides 4 instead of 1
fix: Tram floor tiles provide correct stack item when pulled up
image: Tram floor tiles have their own inhand icons
qol: Tram floor tiles available in the engineering protolathe
fix: You can reconstruct deconstructed tram benches
/🆑

* Tram icon cleanup (#81797)

## About The Pull Request

- Deletes an unused tram_wall.dmi
- Renames tram frame to tram girder
- Tram girder looks like girder, not lattice


![image](https://github.com/tgstation/tgstation/assets/83487515/328c2455-def0-41a1-be9a-87a3ec0dcee7)

## Why It's Good For The Game

More straightforward for players. Since it acts like a girder, it should
look like a girder not a lattice.

## Changelog

🆑 LT3
image: Tram frame is now tram girder, because it acts like one
/🆑

* Autotucking On Map Load (#81782)

## About The Pull Request

Doesn't really do much currently but without it wallening beds look
fuckin DUMB
Plus I think this better matches what is intended

## Why It's Good For The Game


![image](https://github.com/tgstation/tgstation/assets/58055496/d5e4c372-3e84-435a-88b9-b5be442049b2)

---------

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

* Makes Ethereal Charging Loop Just About Everywhere (#81775)

## About The Pull Request
Basically,


For APCs.

![dreamseeker_bfZeNmkOPh](https://github.com/tgstation/tgstation/assets/12636964/39eddc7b-7389-4586-a392-4a8d2437e93b)


For recharging APCs.

![dreamseeker_mlKuDR2JJW](https://github.com/tgstation/tgstation/assets/12636964/1f28850c-57a7-43b2-9663-81b2f3b34ce9)


For recharging from cells. The Ethereal offscreen was blue, you'll just
have to trust me that this was a color-coded PR.

![dreamseeker_bcP0126NlF](https://github.com/tgstation/tgstation/assets/12636964/c20eff96-3112-4b9b-a733-c320528adb5e)

## Why It's Good For The Game
It's kind of CBT as-is right now to have to click this stuff over and
over, especially when light tubes have it that much more convenient than
everything else. I figure some while loops would make the situation
better for them.

## Changelog
🆑
qol: Ethereal charging now loops when they're charging (from) APCs or
from power cells!
/🆑

* Lots of description changes and grammar fixes for heretics (#81761)

## About The Pull Request

Changes a lot of text. Apart from grammar fixes, here are the notable
changes:

- Ash jaunt description just said it is a "short range jaunt" without
explaining what exactly a jaunt is. I believe it is better to describe
without comparing to another spell the player may not have experience
with.
- Cosmic grasp now explains what the deal is with star marks and cosmic
fields. It is still possible to crosspath into a star mark spell,
skipping this description, but I assume a player like that is
experienced enough to know what the star mark does anyway...
- The knowledge for ash spirits no longer refers to them as "Ash Men" -
"Ash Spirit" is the mob's actual name. If you think "Ash Man" is a
better name, I can change it around so that the mob gets renamed that
instead.
- Removes the lines from paradoxical curio's description about causing
brain damage on examination - many heretic items cause adverse effects
to heathens who try to interact with them, and there is never a need to
clutter the description with them.
- Changes the eldritch coin description, because the old one was, in my
opinion, awkward. I changed it to be more inline with the other items'
descriptions, and to not tell non-heretics what its purpose is. If you
liked the old one better, I can revert this change.
## Why It's Good For The Game

Grammar good. Accurate descriptions good.
## Changelog
🆑
fix: made some heretic descriptions more accurate
spellcheck: improved english of the heretical eldritch patrons
/🆑

* Makes Medbay surgery on Metastation a bit more inline with other maps (#81786)

## About The Pull Request

Makes it so paramedics can't access the surgery theater in Metastation

## Why It's Good For The Game
Paramedics can't access surgery on the other maps, and can't use the
front door to the surgery theater, They shouldn't have access to it
through maints

## Changelog
🆑

fix: Makes Metastation surgery access more consistent with other maps

/🆑

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Nerevar <12636964+Nerev4r@users.noreply.github.com>
Co-authored-by: ViktorKoL <44502667+ViktorKoL@users.noreply.github.com>
Co-authored-by: starrm4nn <139372157+starrm4nn@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2024-03-13 04:07:27 +01:00
SkyratBot
e178821ac4 [MIRROR] General maintenance for grilling related stuff. (#26835)
* General maintenance for grilling related stuff.

* Update grill.dm

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
2024-03-12 00:01:24 -04:00
SkyratBot
9bd67f0203 [MIRROR] Adds and improves logging for various shit. (#26831)
* Adds and improves logging for various shit. (#81738)

## About The Pull Request
Adds logging for RCD construction and deconstruction. Hallucinated
projectiles no longer causes logs. Flamethrowers log gas mixture
information, the flamethrower, the gas tank, tank distribution pressure
and whether it was lit. Adds a lot more logging to records consoles.
Frozen objects now log when they get shattered.
## Why It's Good For The Game
Closes #68452
Closes #71798
Closes #78008
Closes #81098
Closes #81130
## Changelog
🆑 Pickle-Coding and Rhials
admin: RCD construction and deconstruction are logged.
admin: Hallucinated projectiles no longer log.
admin: Gives more detail to flamethrower logging.
admin: More actions are logged for records consoles usage.
admin: Frozen object shattering is logged.
/🆑

---------

Co-authored-by: Rhials <Datguy33456@ gmail.com>

* Adds and improves logging for various shit.

---------

Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
Co-authored-by: Rhials <Datguy33456@ gmail.com>
2024-03-11 22:35:39 -04:00
SkyratBot
2eac95b7a1 [MIRROR] Adds a small cafeteria behind the right wing shutters of the museum. (#26766)
* Adds a small cafeteria behind the right wing shutters of the museum. (#81465)

## About The Pull Request
I was thinking to contribute something to the new away mission map to
make it better. Mapping and all takes too much time for me, so I could
do little. Though it comes with its own unique gimmicks.

To reach the cafeteria, one has to complete a couple puzzles.
The first set is opened by inputing the correct PIN on the password
panel beside it. There're several clues to help you guess this fairly
easy puzzle, in the form of several number graffitis, a scrapped piece
of paper full of numbers, and a board filled with colored dots also
found just beside the panel.
The second one is opened by a keycard, and is generally lazier. To find
it, you'll need to do a bit of (toilet) searching.

As for the unique things this PR adds:
- A fire extinguisher... that actually contains welding fuel
- A (dirt-cheap) hotdog vending machine*
- A completely ornamental maneki-neko (that's the name of the
luck-bringing, paw-waving cat figurine)
- A piggy bank that carries money between rounds. It has a cap of 10k
credits worth of holochips, cash and coins, which is pretty high, but
I'm confident people will just destroy it for its contents the moment
they find it. His name is Pigston Swinelord VI.
- More, totally legit and not actually fake bombable walls :^)

*By the by, you can also find it during the national hotdog day.

Screenshots of the new location:
![museum
cafe](https://github.com/tgstation/tgstation/assets/42542238/1c0d93b7-90d5-4459-a48d-81430f0d3613)
![museum
restrooms](https://github.com/tgstation/tgstation/assets/42542238/5a9e049d-6acc-464b-998d-901e43154bae)

## Why It's Good For The Game
You know how most away missions are not that special at all? Yeah,
@ mc-oofert set an example of a pretty decent one actually, if not a tad
small. I thought it could use a touch of another mind actually
contributing to it too, because it deserves it.

Also, this sets the basis for other persistent piggy banks. I don't
think they should all have that 10k cap like this one, perhaps 1k is
enough. Beside, the code that mothblocks did for json database datum is
pretty good, so there is not a whole lot of shitcode here.

## Changelog

🆑
add: Added a cafeteria to the museum away mission, with a few special
things to it. To reach it, you'll have to complete a couple puzzles
however.
map: The museum away mission now has a couple restrooms.
add: Hotdog vending machines may spawn during the National Hot Dog Day.
/🆑

* Adds a small cafeteria behind the right wing shutters of the museum.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-03-07 08:53:28 -06:00
SkyratBot
32ca7f5816 [MIRROR] virtual pets (#26692)
Virtual pets

Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2024-03-01 19:05:23 +01:00
SkyratBot
1a24ea6753 [MIRROR] Tram mob throwing adjustments (#26662)
* Tram mob throwing adjustments (#81617)

## About The Pull Request

- Corrects grille breaking related to PR
https://github.com/tgstation/tgstation/pull/81594
- Throw chance moved to a var on the controller instead of hardcoded
- Corrects a bit of documentation on tram controller landmarks
- Fixes the collision multiplier being set to a static value during
malfunction instead of the intended multiplier
- Includes throw chance in tram malfunction
- Cursed mobs now guaranteed to be thrown

## Changelog

🆑 LT3
code: Tram throwing now breaks grilles consistently
code: Tram malfunction lethality/throw chance are now a multiplier
instead of flat value
code: Tram throw chance can be adjusted
code: Unlucky trait is now used in tram throw calculation
/🆑

---------

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

* Tram mob throwing adjustments

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
2024-02-27 16:47:19 +01:00
SkyratBot
3f2463e24e [MIRROR] [NO GBP] fixes item blood overlays "leaking" onto other objects (#26639)
* [NO GBP] fixes item blood overlays "leaking" onto other objects (#81662)

Looks like KEEP_TOGETHER is necessary after all

before
![Screenshot 2024-02-24
144648](https://github.com/tgstation/tgstation/assets/46101244/e973b372-8391-4678-bc26-28b9d32f05af)

after
![Screenshot 2024-02-24
144001](https://github.com/tgstation/tgstation/assets/46101244/b6c25fcd-9c7f-4f3a-8b8f-69d98b81d424)

## Changelog
🆑
fix: Blood overlays on items no longer leak onto other objects
/🆑

* [NO GBP] fixes item blood overlays "leaking" onto other objects

---------

Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com>
2024-02-26 21:28:24 +01:00
SkyratBot
001a8ca439 [MIRROR] Item Blood Overlay Optimization (#26608)
* Item Blood Overlay Optimization (#81577)

## About The Pull Request
Previously it cached by (icon and icon state) of the item and modified
the blood decal overlay with icon procs

Now there is no cache and everything is done with MAs and overlays,
except for reading the width and height of the item's icon in order to
scale the blood splatter
## Why It's Good For The Game
There was no need to cache the blood splatter since it is exactly the
same sprite for every item
## Changelog
🆑
refactor: Bloody item overlays no longer use icon procs to generate the
overlay
/🆑

* Item Blood Overlay Optimization

---------

Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com>
2024-02-23 05:33:20 +01:00
SkyratBot
9d53f7ae52 [MIRROR] Adds tram throwing mobs through glass windows (#26559)
Adds tram throwing mobs through glass windows (#81284)

## About The Pull Request

- Adds a PASSWINDOW flag so that you can throw mobs through window
panes, smashing them
- Being thrown into the tram window by event only (not player thrown)
has a chance to break through the window
- Reduced throw range of tram emergency stop

## Why It's Good For The Game

Sometimes you don't want them to bounce off the window when they hit,
rather comically fly through it.

## Changelog

🆑 LT3
add: The tram has been equipped with enhanced safety glass to reduce the
severity of crew injuries
/🆑

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2024-02-21 20:31:43 +01:00
SkyratBot
56f02d7e30 [MIRROR] Cardboard cutouts are now tactical. (#26545)
* Cardboard cutouts are now tactical. (#81245)

## About The Pull Request
Basically, this means players holding cardboard cutouts will now assume
their appearance, just like for potted plants. Good for pranking.

I've had to tweak the tactical component and the waddling element a bit
to get them to work as intended while dealing with the multiple sources
of the waddling element.

## Why It's Good For The Game
![](https://media1.tenor.com/m/X1GimXmuByYAAAAd/tom-cruise-doorbell.gif)

## Changelog

🆑
add: Players holding cardboard cutouts will now assume their appearance,
just like for potted plants.
/🆑

* Cardboard cutouts are now tactical.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-02-17 13:25:03 -05:00
SkyratBot
876357d6a5 [MIRROR] Revenants no longer make noise walking into gibs (#26500)
* Revenants no longer make noise walking into gibs (#81420)

## About The Pull Request

Turns the hardcoded sound that plays when you walk into some gibs into
an Element and adds a check for flying to avoid playing the sound,
fixing Revenants, Holoparasites, and other mobs that fly from making
noise when "walking" into a pool of blood.

## Why It's Good For The Game

I was observing a revenant and heard them making noise from walking over
blood, thought it was kinda f*cked up

## Changelog

🆑
fix: Revenants (and other flying mobs) will not make noise when walking
into pools of gibs,
/🆑

---------

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

* Revenants no longer make noise walking into gibs

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
2024-02-14 06:26:40 -05:00
Useroth
7bb2f5055e [MIRROR] 81182 81367 81399 (#26492)
* Implements rgb2num, uses it to replace all our manual rgb reading. Redoes HSV management (#81182)

[Converts all manual extraction of rbg with rgb2num. It's just
better](ae798eabd5)

[Yanks out old HSV management, replaces it with list
stuff](4997e86051)

There's this old lummy era clunky code that passed HSV as text

We can now cleanly replace it with passing hsv as lists from a rgb2hsv
proc

So let's just do that.

Also, cleans up spraytan code (and ethereal lighting)

Code better

* Refactors fire overlays once again to make it not get stuck so often (#81367)

Maybe finally fixes #77701

A big reason why this kept happening is because fire uses standing
overlays. But fire isn't managed by mobs anymore. Meaning in some
situations, fire can cease to exist but the overlay can still be on the
mob. So it gets stuck.

So like, why use standing overlays anymore? We can just hook
`update_overlays` signal.
Isn't that neat.

🆑 Melbert
refactor: Fire effects get added to mobs in a different way now. Maybe
it will get stuck less. Report any oddities.
/🆑

* Fix Flaky Failure From Fire  (#81399)

## About The Pull Request

Closes #81396 , Closes #81391 , Closes #81403, Closes #81402

I don't know why but I thought this proc was only called once, when the
mob entered the turf. That was silly.

And going back at it, I'm not entirely sure why I tied
`TRAIT_NO_EXTINGUISH` to the element anyways, rather than the lava like
it originally was.

While going back over this, I cleaned up the proc a bit. 

## Changelog

Not necessary

* There we go?

* Bruh moment

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-02-12 19:03:58 -05:00
SkyratBot
4f53ec2660 [MIRROR] Fixes complex lights not handling moving well, renames lighting defines (#26484)
* Fixes complex lights not handling moving well, renames lighting defines (#81423)

## About The Pull Request

[Fixes static lights not
moving](ffef43c05a)

Worked fine when the owner moved, but if the owner was inside something
else, it would try and trigger an update on the PARENT's lights, which
are obviously not us.

[Renames MOVABLE_LIGHT and STATIC_LIGHT to better describe what they
do](de73a63bd4)

People keep trying to change the lighting system of lamps and it makes
me mad.
I choose OVERLAY_LIGHT and COMPLEX_LIGHT here, I couldn't figure out a
better name for turf matrix lighting. Suggestions welcome

## Why It's Good For The Game

Closes #80005
Hopefully improves understanding of lighting at a glance
## Changelog
🆑
fix: Fixes fancy lights not updating their source location when picked
up and moved
/🆑

* Oh well

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2024-02-12 22:25:22 +00:00
SkyratBot
0938c796a8 [MIRROR] Adds a signal to buying items from the uplink (& fixes TC misinfo) (#26449)
* Adds a signal to buying items from the uplink (& fixes TC misinfo) (#81372)

## About The Pull Request

Adds a signal when someone buys an item from the uplink and removes
single-letter vars from the ``spawn_item`` proc, and adds/standardizes
add/removing of telecrystals from uplinks (and admin setting how much TC
they have) to ensure the UI always has the right amount of telecrystals
displayed in it.

## Why It's Good For The Game

There are reasons why someone would want to hook up to a traitor's
uplink and listen to items they purchase to do any special effect
on-purchase, so this adds support to do anything in the future with it.
Also tells players how much TC they actually have without forcing them
to close/reopen the UI every time they insert some TC in it by hand.

## Changelog

🆑
fix: Uplinks now update their UI when you add telecrystals in them, so
you don't need to close and reopen it.
/🆑

* Adds a signal to buying items from the uplink (& fixes TC misinfo)

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2024-02-10 23:17:36 -05:00
SkyratBot
4acadfb88a [MIRROR] Fixes a decal hard del (#26250)
* Fixes a decal hard del (#81093)

## About The Pull Request

Attempting to fix this hard del here:

![firefox_1QHRZHx9GY](https://github.com/tgstation/tgstation/assets/13398309/871d50e4-1bfc-4b16-82af-972162e8d2e4)

I think the cause is from the turf changing, which
`/datum/elements/connect_loc` does not seem to take into consideration.
Now it should.

Also cleans up the signals in `/datum/component/infective/` which may be
another potential cause of issues.

## Why It's Good For The Game

Code that cleans up after itself is nice.

## Changelog

🆑
fix: fixes a hard del with decals
/🆑

* Fixes a decal hard del

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2024-01-25 23:10:21 -05:00
Gandalf
3f55068ac7 CI Fix (#26177)
Removes timeout_mod arg from add_mood_effect (#80964)

## About The Pull Request

Partial Revert of https://github.com/tgstation/tgstation/pull/80800

Assuming every num passed in the parameters of `add_mood_effect` is a
`timeout_mod` is incorrect, because there can be mood events that take a
numeric arg which is not meant to be multiplied against the timeout.

This leads to the same issue as multiplying it with strings essentially
(in one case, shown below, this results in a negative duration of a
timer).


![image](https://github.com/tgstation/tgstation/assets/13398309/f8af858f-04ef-4144-9a0b-2fae60b71272)


![Code_ZN176cpMqA](https://github.com/tgstation/tgstation/assets/13398309/a6ec7689-0171-4909-91cb-a17b56454eb6)

Plus having a keyword arg that may or may not actually be what the
keyword arg claims to be is really confusing and bad.

Instead here's what I propose: passing in an instantiated mood datum
itself, which has been modified, and copying the timeout from it before
discarding it.

It is not as clean as I'd prefer either, but at least it's logically
sound and the intent is clear, and it's the best I can think of short of
a major refactor of the entire system for this one small thing which is
only being used by food quality.


![image](https://github.com/tgstation/tgstation/assets/13398309/8560c066-bb0b-4066-af94-372d5ea62679)

## Why It's Good For The Game

Clearer, less smelly code.

## Changelog

🆑
code: removed the timeout_mod arg from add_mood_event, which was only
used for one thing and causes more issues than it's worth
/🆑

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2024-01-19 14:02:59 +00:00
SkyratBot
0d0c901be2 [MIRROR] Disarm refactor, plus shoving people with shields [MDB IGNORE] (#26144)
* Disarm refactor, plus shoving people with shields

* wew

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2024-01-19 01:58:37 +00:00
SkyratBot
6e48563ebf [MIRROR] Revert "Makes immerse use weakrefs", prioritizing some ref removal lines instead. [MDB IGNORE] (#26149)
* Revert "Makes immerse use weakrefs", prioritizing some ref removal lines instead. (#80707)

## About The Pull Request
For a moment, I had forgot about saying I'd take a look into it, but it
seems the new fix to hard dels is causing some runtimes with empty
weakrefs. Beside, WEAKREF() doesn't work well with qdeleting atoms (so
you'd have to access the weak_reference var directly).
How immersion works is quite confusing even for me who coded it, trying
to work around some of the hefty limitations of the engine truly blows.
I could even ask MrMelbert to make a proc-chain chart for it.

But yeah, long story short, I only have a bare idea where the uncleared
refs would be. I suspect it could be `immersed_movables`. It's totally
possible since the proc can early return in a few cases, thus skipping
the ref removal, hence the title.

## Why It's Good For The Game
I didn't like the PR that implemented weakref usage into the element,
but I let it pass because "hard dels = bad". However, the runtimes
aren't that much more pleasant either.

## Changelog
N/A

* Revert "Makes immerse use weakrefs", prioritizing some ref removal lines instead.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-01-18 17:03:36 +00:00
SkyratBot
536e1e48cd [MIRROR] fixes a bunch of moodlets potentially lasting forever (less band-aidy) [MDB IGNORE] (#26124)
* fixes a bunch of moodlets potentially lasting forever (less band-aidy) (#80800)

## About The Pull Request
In a previous PR (https://github.com/tgstation/tgstation/pull/79661), I
noted that a lot of moodlets tended to have their timeouts break because
it was passing their names and whatnot as a parameter, that gets fed
into the timeout modifier parameter, causing the timeout multiplier to
break, because BYOND type-agnosticism means that it can multiply a
number (timeout_mod) by text (a name or some other object), resulting in
0 - which makes a moodlet permanent. This is probably not intended.

This fixes that in two ways:
- Adding a `1` to potentially applicable moodlets (searched for with a
regex of `.add_mood_event(.*, .*,)`) just to make sure the timeout
doesn't get multiplied out weirdly.
- Making the add_mood_event thing CRASH() if the timeout_mod is bad.

If someone else wants to come up with a solution better than this,
please do.

## Why It's Good For The Game
Maybe having your arm permanently fall asleep after getting it
reattached sucks, moodlet-wise. (Being stuck with permanent
positive/negative moodlets is probably not intended.)

## Changelog

🆑
fix: Moodlets with parameters/effects e.g. limb reattachment moodlets
should probably disappear more appropriately.
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>

* fixes a bunch of moodlets potentially lasting forever (less band-aidy)

* wew

---------

Co-authored-by: Hatterhat <31829017+Hatterhat@users.noreply.github.com>
Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2024-01-18 16:28:41 +00:00
SkyratBot
0df77cf49f [MIRROR] Better errors for adding element to qdeling datum [MDB IGNORE] (#26120)
* Better errors for adding element to qdeling datum (#80927)

## About The Pull Request

Got this from reading #80915

The actual name of the element is not reported anywhere in the stack
trace, and while you might be able to figure it out from context clues
based on the procs invoked in the stack trace... this isn't guaranteed
and just makes it harder to diagnose these weird sporadic runtimes.
## Why It's Good For The Game

easier to figure out a problem when you have as much useful information
as possible
## Changelog
irrelevant

* Better errors for adding element to qdeling datum

---------

Co-authored-by: san7890 <the@san7890.com>
2024-01-15 17:40:13 +00:00
SkyratBot
5156e7ccbc [MIRROR] Fixes some AI related runtimes [MDB IGNORE] (#26046)
* Fixes some AI related runtimes (#80828)

## About The Pull Request

Namely this.

![image](https://github.com/tgstation/tgstation/assets/51863163/c6171a4e-afd3-4c07-8a96-1952ef76a3df)

## Changelog

🆑 Melbert
fix: Carps now migrate slightly better, probably.
fix: And Poly now talks better, probably.
/🆑

* Fixes some AI related runtimes

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-01-09 15:35:22 -05:00
SkyratBot
c49d7bff9f [MIRROR] Dead code removal, redundant text macros, drying rack now applies TRAIT_FOOD_CHEF_MADE. [MDB IGNORE] (#25971)
* Dead code removal, redundant text macros, drying rack now applies TRAIT_FOOD_CHEF_MADE. (#80677)

I've been coding a PR these couple days, and I've noticed a few
oversights, all related to food, while working on it.

This PR removes an unused, 12 years old datum, and some redundant text
macros in a text string, for processable items, that already uses the
bold spans. It also makes it so food made with a drying rack gets the
chef made trait, similarly to other methods (though not as foolproof).

* Dead code removal, redundant text macros, drying rack now applies TRAIT_FOOD_CHEF_MADE.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-01-04 16:58:31 +00:00
SkyratBot
a5f9ed9577 [MIRROR] Fixes crashing through tables from a table giving you a negative offset [MDB IGNORE] (#25951)
* Fixes crashing through tables from a table giving you a negative offset (#80701)

## About The Pull Request

While failing to reproduce #80675, given no amount of slamming this poor
little moth creature through glass tables in any order and then
rebuilding it under them seemed to be doing anything, I found that it
_does_ cause a negative offset if the moth-to-be-slammed in question was
already on a table before being slammed into a glass table. (Don't worry
they have health insurance.)

After some debugging, this seemed to be because `Detach()` is called for
the new turf with the smashed table _before_ `on_exited()` is called for
the previous turf, causing it to first reduce one's offset by 12, and
then reduce it by 12 _again_ upon calling `on_exited()`. This seemed to
be true for whichever method was used, whether walking, dragging, or
being smashed.

![image](https://github.com/tgstation/tgstation/assets/42909981/3782776f-7153-4235-b377-8f8bd8904110)
So I introduced the same check for `TRAIT_ON_ELEVATED_SURFACE` that
`Detach()` has to `on_exited()`, making it only attempt to shift down
the movable if it still has the trait, and this seems to fix it fine!
It doesn't seem to cause issues with moving from beds onto tables or
tables onto beds, or smashing through glass tables from tables or beds.
So this should fix #80675, or at least I can't find what they would've
meant if not this.

And yes I did test this on Tramstation just in case.

![image](https://github.com/tgstation/tgstation/assets/42909981/e3d8e755-c288-4ed7-93cb-8948c6012c56)
## Why It's Good For The Game

Fixes #80675.
## Changelog
🆑
fix: slamming through a glass table while previously on a table no
longer gives you a negative offset.
/🆑

* Fixes crashing through tables from a table giving you a negative offset

---------

Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
2024-01-01 23:44:57 +00:00
SkyratBot
b32f4d1974 [MIRROR] Fix footsteps not working [MDB IGNORE] (#25939)
* Fix footsteps not working (#80704)

## About The Pull Request
Fixes #80686.

Somehow, these statics were not being initialized after the GLOBs. I
don't know how that changed. Makes them local references because they're
still used 3 times in the hot path.
🆑
fix: Fixed footstep sounds.
/🆑

* Fix footsteps not working

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2024-01-01 19:23:48 +00:00
SkyratBot
f837ce8444 [MIRROR] Makes immerse use weakrefs [MDB IGNORE] (#25876)
* Makes immerse use weakrefs (#80594)

## About The Pull Request
Immerse was causing harddels due to it having references to mobs. Makes
it use weakrefs for mobs instead.

## Why It's Good For The Game
Immerse would cause harddels if a mob was deleted while it was in it's
list. It could probably also happen if a turf was deleted too, but doing
that here would be much harder.

no CL since nothing playerfacing

* Makes immerse use weakrefs

---------

Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>
2023-12-29 18:13:44 +00:00
SkyratBot
d538bf0de0 [MIRROR] Optimize find_potential_targets self cost [MDB IGNORE] (#25883)
* Optimize find_potential_targets self cost (#80602)

![image](https://github.com/tgstation/tgstation/assets/35135081/84ae20b6-5f44-4a69-bda3-0df1435dea5c)

`find_potential_targets/perform` currently has a pretty bad self cost in
part due to it running a second "loop over everything in range" check to
find turrets and mechs. This doesn't drop it down by as much as I'd like
because it still needs `hearers`, it still shows up pretty high, but
this at least cuts out some unnecessary work.

Best case is likely to minimize work AIs need to do when there are no
players on their z-level, as there are a lot of calls from Lavaland.

* Optimize find_potential_targets self cost

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-12-28 07:55:30 -08:00
SkyratBot
4102ead7a6 [MIRROR] Fix "/datum/element/damage_threshold looks unharmed!" [MDB IGNORE] (#25825)
* Fix "/datum/element/damage_threshold looks unharmed!" (#80546)

Fixed a bug that would give you the chat message

* Fix "/datum/element/damage_threshold looks unharmed!"

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-12-24 20:58:11 +00:00
SkyratBot
9a3fb5c5c1 [MIRROR] FOV is Dead (Long Live FOV) [MDB IGNORE] (#25600)
* FOV is Dead (Long Live FOV)

* Update _megafauna.dm

* Update _vehicle.dm

* FOV Hotfix: Actually offsets gameplane render relays

* removes redundant visual_shadow

* removes GAME_PLANE_UPPER references

* Update mob_movement.dm

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-12-23 17:47:07 +00:00
Nerevar
2805c86c81 [THE HALF-MODULAR PRINCE] Snalance (Snail Balance) and Snissues (Snail Issues) Adjustment (#25439)
* initial d

* holy shit i forgot

* i got so much cheese in my pocket, they thought I was a fucking calzone

* opp was sneak-dissing on the 'gram, turned his city into pompeii

* Just fixing some diffs (line breaks should match tg)

* Fixes these edit comments

---------

Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-12-20 00:53:54 -05:00
SkyratBot
7bfe7215ff [MIRROR] Throwing a bee at someone injects reagents [MDB IGNORE] (#25663)
* Throwing a bee at someone injects reagents (#80354)

## About The Pull Request

Throwing a bee at someone injects that bee's reagents.
This has a larger code footprint than you might expect because venom
injection is done via an element which in turn gives a callback to a
component.
While I was touching that I also separated `COMSIG_MOVABLE_IMPACT` into
`COMSIG_MOVABLE_PRE_IMPACT` because a lot of effects trigger from
`COMSIG_MOVABLE_IMPACT` despite the fact that the throw impact can be
cancelled after the signal is sent.

I also added an inject check onto the venomous element for mob attacks,
so thick clothing can now protect you from venom injection.
I elected that Giant Spiders have big enough fangs to ignore this such
that this isn't a major balance change, as do moonicorns (that horn is
massive), Fire Sharks, and Clowns (no idea how they are applying chems
at all to be honest).

## Why It's Good For The Game

I thought about someone throwing a bee at someone like a little dart and
thought "hee hee"

## Changelog

🆑
add: If you throw a bee at someone it will hit them sting-first and
inject that bee's reagent
balance: Thick clothing can now protect you from the venom of bees,
snakes, frogs, and (small) spiders
/🆑

---------

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

* Throwing a bee at someone injects reagents

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
2023-12-17 10:06:35 -05:00
SkyratBot
b70ca591d8 [MIRROR] Updating elevation.dm to fix a recursion issue. [MDB IGNORE] (#25669)
* Updating elevation.dm to fix a recursion issue. (#80341)

## About The Pull Request
I thought `ADD_TRAIT`, like `REMOVE_TRAIT`, supported using a list of
trait sources, but I was wrong.

## Why It's Good For The Game

![immagine](https://github.com/tgstation/tgstation/assets/42542238/c992d19b-816c-4f8e-b05c-651ce12d158d)

Should fix #80338.

## Changelog
N/A

* Updating elevation.dm to fix a recursion issue.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-12-17 10:02:51 -05:00
SkyratBot
6a201a7990 [MIRROR] Prevents something fucky with elevation and glass tables [MDB IGNORE] (#25567)
* Prevents something fucky with elevation and glass tables (#80187)

## About The Pull Request
Objects can be destroyed during a movement loop before the abstract
entered signal can be sent, so we need to make sure only mobs that have
been elevated are dropped down.

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

## Changelog

🆑
fix: climbing or being shoved into a glass table won't cause elevation
issues.
/🆑

---------

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

* Prevents something fucky with elevation and glass tables

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-12-12 01:30:53 -06:00
SkyratBot
b15b16976a [MIRROR] Attack chain refactoring: Broadening tool_act into item_interact, moving some item interactions to... atom/item_interact / item/interact_with_atom [MDB IGNORE] (#25516)
* Attack chain refactoring: Broadening `tool_act` into `item_interact`, moving some item interactions to... `atom/item_interact` / `item/interact_with_atom`

* Patches up merge skew (#80197)

## About The Pull Request

Yeah #79968 (1e76fd70b4) was not
compatible with master but no one said anything on the PR so i got
jebaited into merging it. The code should be up to the same standards
per the documentation I read (preventing thwacking the target in certain
situations while not returning anything in other situations)

master will definitely compile now though

* Patches up merge skew

* Merge conflicts

* Modular adjustments

* Removes this entirely duplicated proc...

* Update tool_override.dm

* Update weldingtool.dm

* Update tool_override.dm

* Update tool_override.dm

* Nope. Copy paste begone.

A skyrat edit is so much easier to deal with here

* Update brand_intelligence.dm

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-12-09 08:22:19 -05:00
SkyratBot
41ea46d5f2 [MIRROR] Scopes NODECONSTRUCT_1 from flags_1 to obj_flags [MDB IGNORE] (#25496)
* Scopes `NODECONSTRUCT_1` from `flags_1` to `obj_flags`

* Update bitfields.dm

* Modular

* Update rack.dm

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-12-08 23:24:46 -05:00
SkyratBot
374266a0a1 [MIRROR] Fix cult halo and eyes affecting deconverted cultists [MDB IGNORE] (#25477)
* Fix cult halo and eyes affecting deconverted cultists (#80148)

## About The Pull Request

Fixes #69423

Cult halo and eyes were appearing on deconverted cultists due to a delay
when the element gets attatched. This lead to a small window of
oppurtunity where someone could get converted, then deconverted, and
still have the cult icons appear on them later.

## Why It's Good For The Game

The Antichrist is dead.

## Changelog

🆑
fix: Fix cult halo and eyes affecting deconverted cultists
/🆑

* Fix cult halo and eyes affecting deconverted cultists

---------

Co-authored-by: Tim <timothymtorres@gmail.com>
2023-12-07 03:11:20 +00:00
SkyratBot
164edf5fa0 [MIRROR] [no gbp] some medbot fixes [MDB IGNORE] (#25472)
* [no gbp] some medbot fixes (#80150)

## About The Pull Request
medbots now drop hats when tipped closes #80134
medbots now drop their items when they explode
player controlled bots now have their normal speed back

## Why It's Good For The Game
they will now correctly drop their hats when tipped

## Changelog
🆑
fix: medbots now drop hats when tipped and drop their items when they
explode
/🆑

---------

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

* [no gbp] some medbot fixes

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-12-06 22:00:04 -05:00
SkyratBot
4d51b2748d [MIRROR] [NO GBP] Fixing elevation furthermore [MDB IGNORE] (#25414)
* [NO GBP] Fixing elevation furthermore (#80099)

## About The Pull Request
fixes #80059
fixes #80085.

The tram transportation doesn't use `forceMove()`, instead it just
changes the location of the objects directly. What's more, it doesn't
call `oldloc.Exited()` or `loc.Entered()` but only for areas. The
abstract exited/entered signals are from `Moved()` though, which is
called.

df4bc6d948/code/modules/transport/transport_module.dm (L519-L527)

About beds, well, I just happened to put a minus symbol where it
shouldn't be.

## Why It's Good For The Game
Truly one of the fuckups of the year. Now tested. I'll make a unit test
later.

## Changelog

🆑
fix: Fixed some oopsie whoopsie with elevation, trams and beds causing
people to visually ascend or descend to heaven or hell.
/🆑

* [NO GBP] Fixing elevation furthermore

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-12-03 18:29:36 -05:00
SkyratBot
a6975112ed [MIRROR] Basic bots (medibots) [MDB IGNORE] (#25384)
* Basic bots (medibots)

* UpdatePaths, modular

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-12-03 02:10:21 -05:00
SkyratBot
1f9fc79c7d [MIRROR] Meat Hook Rework (Accidental Features) [MDB IGNORE] (#25343)
* Meat Hook Rework (Accidental Features)

* Update meat_hook.dm

* Update meat_hook.dm

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-12-03 01:07:56 -05:00
SkyratBot
7dd661f342 [MIRROR] basic cats and mini kitchen helpers [MDB IGNORE] (#25330)
* basic cats and mini kitchen helpers (#79800)

## About The Pull Request
this pr transforms cats into basic pets! cats now have some new
behavior. they can carry fish and hunted mice in their mouths to deliver
it to kittens, and kittens will eat them.

![catmouse](https://github.com/tgstation/tgstation/assets/138636438/8f146be4-c7b2-41d3-8301-734be49b5efc)

![catfish](https://github.com/tgstation/tgstation/assets/138636438/f8df54f2-9183-406d-afbd-f90f415f7f3d)

if a kitten sees you holding food, it will point at you and meow loudly
until u give it the food.
becareful when putting male cats near each other, there is a small
chance they get into a heated argument and meow loudly at each other
until one of them flees.
also added a new small cat house for cats. cats will use these homes if
u build one near them (using 5 wood planks)

![cathouse](https://github.com/tgstation/tgstation/assets/138636438/9515a78c-fdfe-461b-bad2-6b497117c694)

Chefs can craft the cake cat and breadcat. these are useful cats because
they can help the chef around in the kitchen. they will turn stoves and
grills off when food is ready, so they dont burn. and the cake cat will
help the chef decorate his donuts

## Why It's Good For The Game
refactors cats into basic mobs and gives them a deeper ai

## Changelog
🆑
refactor: cats are now basic pets. please report any bugs.
add: the cake cat and bread cat can now help the chef around in the
kitchen
/🆑

* basic cats and mini kitchen helpers

* Modular

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-12-03 00:37:58 -05:00
SkyratBot
4c804e8215 [MIRROR] Fixes riding vehicles on tables and lying on beds [MDB IGNORE] (#25374)
* Fixes riding vehicles on tables and lying on beds (#80053)

## About The Pull Request
Fixes #80027. My bad.
EDIT: Also fixes #80050.

## Why It's Good For The Game
See the issues above.

## Changelog
🆑
fix: Fixed an issue with the offsets of ridden vehicles on tables, and
another when buckled to a bed.
/🆑

* Fixes riding vehicles on tables and lying on beds

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-12-02 09:06:02 -05:00
SkyratBot
3d074e7ede [MIRROR] Standing on structures such as crates, tables and bed will now look like it. [MDB IGNORE] (#25324)
* Standing on structures such as crates, tables and bed will now look like it.

* Update deployable.dm

* Makes this modular

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-11-28 19:37:33 -05:00
SkyratBot
b8e738cb6b [MIRROR] [NO GBP] Fixes footsteps runtimes, part 2 [MDB IGNORE] (#25319)
* [NO GBP] Fixes footsteps runtimes, part 2 (#79936)

## About The Pull Request

https://github.com/tgstation/tgstation/pull/79903 Fixed the most common
one, but there are still more of these runtimes it seems.

![image](https://github.com/tgstation/tgstation/assets/13398309/3574d756-d6d6-4c0a-84fa-8512f610bf8d)

This should take care of all the rest. It turns out that any one of the
step types keys in the list returned by `prepare_step()` can have `null`
values—not just the barefoot one—so we have to check for that in every
instance where we read from it.

(Shown here: the list that gets returned. Note that any one of these
turf vars can be `null`, aka these are the values that we need to
nullcheck for)

4a6d2b9297/code/datums/elements/footstep.dm (L96)

## Why It's Good For The Game

Bugfix

## Changelog

🆑
fix: fixed remaining footstep runtimes
/🆑

* [NO GBP] Fixes footsteps runtimes, part 2

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-11-28 15:40:07 -05:00
SkyratBot
4927d33e27 [MIRROR] Fixes a footsteps runtime [MDB IGNORE] (#25240)
* Fixes a footsteps runtime (#79903)

## About The Pull Request

Tin. Fixes the following runtime:

![image](https://github.com/tgstation/tgstation/assets/13398309/e4cd087f-3c6e-49f7-aaa4-2a91ca1b9a79)

Which happened because `barefoot_type` can potentially be null if
`turf.barefootstep` is null.

![Code_KnExLVOSD4](https://github.com/tgstation/tgstation/assets/13398309/1b3c97d5-500b-4d3d-a104-8dac7071fae0)

This results in trying to access `GLOB.barefootstep[null]`, which
results in a runtime, which prevents the `play_fov_effect()` from
executing.

## Why It's Good For The Game

Less CI failures, and fixes a bug.

## Changelog

🆑
fix: fixes a runtime in footstep code that would prevent the fov effect
from playing to nearby mobs
/🆑

* Fixes a footsteps runtime

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-11-25 13:17:29 -05:00