Commit Graph

5119 Commits

Author SHA1 Message Date
grungussuss
f529998077 Fixes plastic flaps losing atmos qualities when anchored (#87441) 2024-10-26 02:45:27 +03:00
larentoun
692540a7b9 Singularity_pull() standartize (#87304)
## About The Pull Request
Previous attempt - https://github.com/tgstation/tgstation/pull/87227

`/atom/proc/singularity_pull(obj/singularity/singularity, current_size)`
has first arg typed, but other procs were just referencing it as a
un-typed variable.

Since args are not standartized AND
`atom/proc/singularity_pull(obj/singularity/singularity, current_size)`
is out-dated, since it can be called by things that has
`/datum/component/singularity` - not just by
`obj/singularity/singularity` - This PR just adds args to every
`proc/singularity_pull()` as follows:
`proc/singularity_pull(atom/singularity, current_size)`

## Why It's Good For The Game
Standartization

## Changelog
No changelog needed
2024-10-25 02:08:26 +02:00
SmArtKar
b8091a2e5d Changes wall leaning into a component, makes windows leanable #2 (#87390)
## About The Pull Request
Recovery of #85771, minus directional window leaning (because it looks
goofy)

## Changelog
🆑
add: You can now lean on windows the same way you can lean on walls
fix: You no longer stop leaning on walls after clicking on anything
/🆑
2024-10-24 16:54:44 +02:00
Profakos
13edecad37 Fixes benches attempting to add a nonexisting armrest overlay (#87368)
## About The Pull Request

Benches produced an error overlay when you buckled to them, due to them
inheriting `has_armrest = TRUE` from sofas. This PR fixes that.

## Why It's Good For The Game

Closes #87364

~~There is also #87338 but that is a duplicate.~~  Closed.

## Changelog

🆑
fix: Benches no longer produce an Error overlay when buckled
/🆑
2024-10-23 14:01:36 +02:00
Ben10Omintrix
00d40c2a8f fixes ore vents being tapped despite their drones dying (#87359)
## About The Pull Request
the vent defense minigames had a 100% win rate because of a small
mistake in the order of args passed to the proc

## Why It's Good For The Game
closes #87284

## Changelog
🆑
fix: fixes ore vents being tapped despite their drones dying
/🆑
2024-10-22 23:56:39 -04:00
Ghom
86aee083e3 Speed potion improvements (#87322)
## About The Pull Request
I've added a trait for when a speed potion is applied to the object.
This allows me to remove some args and variables from riding and
ridable, and allow fish past 2000 units of weight to have speed potions
applied to them without the risk of the slowdown being reset the next
time `update_size_and_weight()` is called.

Speed potions now also affect drag slowdown.

## Why It's Good For The Game
Small code improvement, leading to a possible balance change.
This fixes #38623.

## Changelog


🆑
balance: Speed potions now cancel drag slowdown too.
balance: Speed potions can be used on fish past 2000 units of weight.
fix: You can now speed up cardboard boxes with speed potions.
/🆑
2024-10-21 16:46:50 +03:00
SmArtKar
46e3edc788 Fixes electrified chair overlay layering (#87228)
## About The Pull Request

Closes #87221 by changing overlay layers when a mob is buckled to the
chair.

## Changelog
🆑
fix: Fixed electrified chair overlay layering
/🆑
2024-10-18 20:45:34 +03:00
grungussuss
083defab20 Industrial scanning sound (#87189)
## About The Pull Request
For:
- gas analyzer
- scanner gate
- plant analyzer
- t-ray scanner
- slime scanner
- scanning mining geysers


https://github.com/user-attachments/assets/24fde731-e567-483b-b88e-6f7fcbacf52a
## Why It's Good For The Game
it sounds nice
## Changelog
🆑 grungussuss
sound: added new scanning sound
/🆑
2024-10-17 22:16:13 +02:00
SmArtKar
2bb20aab0c Improves armrest code for chairs, fixes bronze chairs not spinning around (#87225)
## About The Pull Request

Closes #87222
armrest code doesnt have to be copied thrice if it can be on chairs with
a var to control if its actually used

## Changelog
🆑
fix: Bronze chairs will automatically spin once more
/🆑
2024-10-17 19:41:58 +00:00
Ghom
cffe5ffc33 Mixed bag of fishing adjustments. (#87201)
## About The Pull Request
This more or less ties with my previous PR where I fix some of the
issues I've seen with fishing, because both are the result of some live
playtesting in which I assessed some flaws and nits. So, let's get
started:

Lowered the number of fish to scan for each fish scanning experiment:
This is the most time-gating feature of fishing. As a scientist you're
usually better off doing anything else than this anyway, which is
understandable, but for whoever else that plans to get some nice ocean
fish, this is going to be a huge bummer. From 4, 8, 14, 21 to 3, 7, 11,
17.

Switched the ocean and chasm portal setting: Right now, the ocean portal
has the largest amount of catchable creatures, which can also help
progress the experiments, while the chasm setting only has two and is
only mildly useful for chasm chrabs --> lobstrosities (which suffer a
bit from not having a good enough AI right now). I hope I'll have the
time to add some late fishes to the chasm setting at some point.

Added a premapped fishing portal generator to the common service room of
every map: It takes quite some time to setup fishing. Making a fishing
portal is by far what I consider to be the most tedious part. Also Wawa
and Birdshot were also missing the aquarium kit. On a side-note I
realized some days ago that service jobs receive very good discounts on
the fishing items sold by the good clean vendor.

Added the fish puns speech modifier to fish-infused gills: I forgot to
do it when I made the PR. Shrimple as that.

Mild fish infusion tweaks: Lowered the crawling speed very sightly, but
buffed showers and water healing slightly. Drinking water now wets you
by about 1/4 of what splashing it would do.

Buffed fishing difficulty modifiers for items and chairs a little: For
the time and credits invested, buying a carp costume or whatever to be
slightly better at fishing doesn't seem that profitable, and I reckon I
was being a bit conservative with the values. Fishing is a considerable
time investment already, especially in the initial stage with the setup.
Also idk why sunglasses and thermals buff fishing while fish are
technically cold-blooded creatures so I removed the comp from them.

Added fishing rods and fish cases designs to cargo and science lathes:
Other base fishing designs are shared between the three departments,
while these two are only available for service (and autolathes
obviously).

Fishing skill now affects completion gain and not only completion loss:
Fishing as a feature has a slower pace than most things in the game. It
feels right that by the time you reach about legendary level, you get to
complete the minigame a bit faster.

## Why It's Good For The Game
To put it briefly, the feature feels right as a casual experience,
however time is very much against you and getting something done takes
some effort (especially on tram, where moving to and fro' departments is
almost like playing froggers at times)

## Changelog

🆑
map: Added a premapped fishing portal generator to every map.
balance: Lowered the requirements for fish scanning experiment. Swapped
the rewards of the second and third experiments.
balance: Buffed fishing difficulty modifiers for several items and
chairs.
balance: Fishing skill now affects completion speed of the minigame more
actively.
balance: Mild fish infusion tweaks. Crawling is a smidge slower, but
healing from showers and drank water is a bit better.
qol: Fishing rods and fish cases can now be printed by cargo and science
lathes.
add: Gills now give the fish puns speech modifier.
/🆑
2024-10-16 20:45:57 -04:00
Koi
28f775a145 New Icebox Ruin - Syndicate Biodome (#86957)
## About The Pull Request
**A Dangerous Ruin Approaches!**

A new high-risk, high reward ruin for icebox! Featuring some very
dangerous enemies for some goodies.

Small puzzle element included find the keycard to open the research
directors office to lift the lockdown on the security post, from there
you can lift the lockdown on the surgical rooms, all the while
encountering feral gorillas.



## Why It's Good For The Game

Icebox lacks some dangerous ruins with decent loot. The loot here is a
WIP and I'm hoping can be discussed. I know icebox still is in need of
some ruins and I had some ideas and threw this together. The map size is
45x45. I made it so you also can't just bee-line and cheese it by adding
indestructable shutters, windows, and walls, along with a noteleport
area flag to prevent cheesing of the area.

In-game rendered screenshots:


![image](https://github.com/user-attachments/assets/deb4a3de-ab3b-4fad-9bc2-38edc58ddbfd)


![image](https://github.com/user-attachments/assets/16debd29-86e2-4a78-92eb-099234634c56)

![Uploading image.png…]()




Editor Screenshots:


![image](https://github.com/user-attachments/assets/330efb1f-9cc2-457b-b0d8-75719c38b7a2)


![image](https://github.com/user-attachments/assets/281e9189-a447-4a25-8932-fca8797a1037)


Notable loot Spawns:


![image](https://github.com/user-attachments/assets/b352b461-0a72-4b1f-83fe-57dbb39f2d39)


![image](https://github.com/user-attachments/assets/a3075def-dcb1-40a5-8d6f-c672e1528647)


![image](https://github.com/user-attachments/assets/50e352e5-15e6-45e8-a2fd-d96625b4f538)


![image](https://github.com/user-attachments/assets/a811231b-70d0-4730-a938-186320438782)


![image](https://github.com/user-attachments/assets/5c07b521-a36f-4e54-807f-6fee95672da7)


![image](https://github.com/user-attachments/assets/a7403e0c-ad09-4a64-8826-18181fc1a26c)








## Changelog
🆑
map: New Icebox  Ruin "Syndicate Biodome" added.

/🆑
2024-10-15 22:00:43 +02:00
Ghom
734051bb1f update_body_parts() is now called when adding or removing bodypart overlays. (#87215)
## About The Pull Request
I'm making sure that `update_body_parts()` is properly called when
changing bodypart overlays, so that they actually show up the very
moment they were changed. However, to avoid redundant
`update_body_parts()` calls on init or while changing species, I've
added a living flag that stops `update_body_parts()` from being called
in these situations. I also scoured the codebase for other redundant
`update_body_parts()` to remove and things to clean up a little.

## Why It's Good For The Game
This automates the process of calling `update_body_parts()` a bit.

## Changelog
Mainly backend.
2024-10-15 18:49:05 +02:00
mamiipolat
466011f541 Felinid mood fix (#87230)
![resim](https://github.com/user-attachments/assets/35ce028c-0ed0-4ea2-89f3-77acc15693ac)


## About The Pull Request
Showering will add negative mood effect to felinids
## Why It's Good For The Game
there was a status effect that drops stamina for felinids on shower but
at the same time it boosts mood i decided to make it better
🆑 Mamaii
add: shower will give felinids negative mood effect
fix: fixed shower hater status effect alert not showing 
/🆑
2024-10-15 15:24:54 +00:00
Bloop
241514f520 Fixes improper static list declarations + adds grep for it (#87207)
## About The Pull Request

I randomly came across a `var/list/static` in the code, which does not
actually do what was intended, and thought it was silly. A ctrl+f
revealed that this was a fairly common mistake, so I went and fixed all
the instances of it I could find.

~~Including one in lighting code, which it looked like they were trying
to create a global list to cache generated lighting sheet values for
speed, but it was just a normal list that got created each time
pointlessly. Now those values are actually being cached (using a global
var, because a `static` list was not the right thing to use there in the
first place).~~

Nevermind, it seems that this was in fact being cached even if it
shouldn't have been, because byond. Just rearranged it there seeing as
it works either way.


## Why It's Good For The Game

Code that does what it's supposed to

## Changelog

🆑
fix: fixes a bunch of improper static list declarations
/🆑
2024-10-14 22:36:41 -06:00
grungussuss
a76084be45 Helmet and visor sounds (#87165) 2024-10-13 16:43:53 +02:00
Ghom
cdebe98a17 refactoring how materials effects are added to atoms (#86901)
## About The Pull Request
I'm "cooking" the materials system a bit, specifically the code
responsible for applying and removing effects. My goal is to move most
of the code to the objects-side, split it in smaller procs that can be
more easily overriden or called for object-specific modifiers and
effects, while also revamping things all around to better support items
made from multiple materials (the cleric mace will most likely be one in
this PR, with the handle and tip made of different materials).

PR NO LONGER WIP, TESTED AND ALL, CLERIC MACES CAN NOW BE MADE OF TWO
MATERIALS.

## Why It's Good For The Game
One of the nastiest flaws with the materials system is that it's just
unfeasable to have items made of multiple mats (with effects enabled)
right now, as they easily tend to override each other, where some of the
modifiers and effects should only be applied the main material.

Beside, the system's starting to show signs of its time, from the
several type checks used to apply different effects, the one letter
variables to the the material flags that are still being passed down as
arguments when you can access them from the atom/source arg anyway. It
would be disonhest of me if I went ahead and coded material fishing rods
or whatever fish fuckery with materials without ensuring it won't
further the technical debt the feature currently has.

## Changelog
🆑
refactor: Refactored materials code. report any issue.
add: Cleric maces (The autolathe-printable weapon design from outer
space) can now be made of two different materials.
balance: Buffed cleric maces a little.
fix: toolboxes' stats are now affected by materials again.
/🆑

---------

Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
2024-10-06 21:56:20 +02:00
Koi
679157d265 New Icebox Ruin - Hunters Lodge (#86927)
## About The Pull Request

Adds a new icebox ruin. Below you can see some good pictures of it.

A unique creature that can be found a "hatsune mi-go", a m1911 with a
magazine, santa outfit w/ bag, and a jukebox. this is actually something
I had planned for a torment nexus but chose to forego for an Icebox ruin
instead. The map is 35x35.


![image](https://github.com/user-attachments/assets/424f196e-0ad8-4ac1-8940-c537c7490305)


![image](https://github.com/user-attachments/assets/20efcc7a-2b9d-40c6-b666-ac4ea8d65efe)


## Why It's Good For The Game

Icebox is in need of some ruins, I was originally working on this for
something else but decided to instead add it as a ruin in icebox. I
added a subtype of the christmas tree that doesn't give presents. I felt
like icebox lacked more dangerous ruins so I sprinkled in a few enemies
and as a reward there is some notable stuff.

## Changelog
:cl:ViralMilk22

map: Additional Icebox Ruin has been added "Hunters Lodge".
/🆑
2024-10-06 19:19:40 +02:00
OrionTheFox
59d4980358 Fixes some minor typos in closets upgraded with Card Readers (#87035)
## About The Pull Request
Just some readability improvements:
- Personal Lockers now have a 's (no more `John Doe locker`, now it's
`John Doe's locker`)
- Department Locks are now called Job Locks to prevent confusion -
locking it with a Head card will, indeed, only be accessible by that
head (or the Captain ofc)
- Newly renamed Job Lockers now have a 's (same as above, now shown as
`Job Assignment's locker`)
- Flipped the descriptions and minorly rewrote them. Now it's added to
the back of the original closet description and reads hopefully better -
`"It has been (ID/access) locked to (name/job)."`


![image](https://github.com/user-attachments/assets/b045b8be-cbdf-4182-85c7-17c12155bf78)

![image](https://github.com/user-attachments/assets/998cf144-539f-4d92-a330-c78c9457bcd8)

![image](https://github.com/user-attachments/assets/65ffe51d-af84-41b1-9e3b-69c46a8d260d)
## Why It's Good For The Game
I'm fairly sure this counts as a spellcheck tag right? 
`Greg Bob locker` vs `Greg Bob's locker`? I don't know correct me if the
tag's wrong.

Besides the 's, easier to understand card reader choice and cleaner
descriptions.
## Changelog
🆑
spellcheck: added a 's to Personal/Job lockers created with card
readers, renamed 'Departmental' to 'Job' to prevent confusion, and made
the description easier to read
/🆑
2024-10-06 17:24:34 +02:00
MrMelbert
b3245078c8 Puts blood back on floor plane, puts runes on floor plane (removes shadows from blood and runes) (#87013)
## About The Pull Request

Basically goes through and puts some flat objects onto the floor plane.
Also puts blood back on the floor plane, since it seems like it used to
be but may have been moved mistakenly questionmark.

This means they will not be affected by Ambient Occlusion: 


![image](https://github.com/user-attachments/assets/594b878b-e5e9-42e3-900e-3c9390c819ee)

## Why It's Good For The Game

A lot of these "flat" things look really out of place because they're
secretly "floating" due to being on the wrong plane

## Changelog

🆑 Melbert
qol: Runes, crayons, and similar decals no longer have shadows
fix: Blood and similar "mess" decals no longer have shadows (again)
/🆑
2024-10-04 02:57:45 +02:00
Xackii
e2785ac4d6 Shower now regen stamina.... Not for the felinids. (#86889)
## About The Pull Request

Washing now give you status effect that regen 4 stamina per tick.


https://github.com/user-attachments/assets/1691ac4b-d8e4-402a-98d1-3cba61c00879

BUT if you felinid you will loss 4 stamina insteed becouse cats don't
love water.


https://github.com/user-attachments/assets/e566e4d8-7f8a-47e6-aadc-b2910758d6ea


## Why It's Good For The Game

Gives more reasons to wash.

## Changelog
🆑
add: Showers now heals stamina when you washing. But not for you
catgitls.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-10-04 02:52:06 +02:00
_0Steven
e60db8c896 Allow reinforced tables to be hooked up to the grid like grilles, shocking people who try to disassemble them (#87003)
## About The Pull Request

This pr makes it so reinforced tables can be hooked up to the power
grid, requiring them to be on an open tile with a cable on it much like
grilles, shocking solely people who attempt any of its disassembly
steps.
Insulation obviously still applies.
## Why It's Good For The Game

Saw talk about someone wiring up tables and I think it's funny to have
your table hooked up to the grid.
Allows you to protect your reinforced tables from disassembly, if you're
fine with world's most obvious open cabled tile below your table.
## Changelog
🆑
add: Reinforced tables may now be hooked up directly to the grid much
like grilles, electrocuting people who attempt to disassemble it.
/🆑
2024-10-03 06:20:38 -07:00
Da Cool Boss
03fc7483a3 Fixes syndicate crates using wrong lock icons, plus minor tweaks (#86742)
## About The Pull Request
- Donk Co. crate previously was unlocked, but the sprite had a lock on
it. Now the lock is removed.
 - There's a new secure Donk Co. crate using the old sprite. 
- S.E.L.F.'s crate had no lock on it, but it was a secure crate. The
lock overlay was present and it didn't look good. Now the lock is fully
on the sprite.
- There's a new unsecured S.E.L.F. crate using the old sprite. I gave it
a new description since the description mentioned locks.
- Interdyne's freezer was unlocked but had a lock on the sprite. Now the
freezer is secure. No unsecure variant this time.
- The names of the crates now use proper nouns, and the names of
corporations are capitalised.
- All syndicate crates with a lock now require syndicate access by
default.
- The Interdyne blood freezer no longer spawns the same contents as a
normal blood crate (a list of 9 blood packs plus 1-3 extra random
packs), now it spawns 13 random packs of blood.
- Typepaths were moved around to make the crates easier to find in
mapping tools.
 - Fixed a dang TYPO in the Donk Co. fridge's description.
## Why It's Good For The Game
Lock issue is solved now. The mismatching sprites didn't look good, and
now they match and look good.

Kept sprites for lockable Donk crate and lockless SELF crates and made
them their own crate types.

Repathed stuff to make it tidier. As a side effect the interdyne blood
crate is no longer a subtype of the regular blood crate, so instead of
copy+pasting the long list of contents it used to have it just has a
bunch of random bloods in it. Feels more on-flavour this way I think.

Access changes are because that makes sense for syndicate crates. Most
of these are going to end up mapped in as syndicate-access crates, makes
sense to make that the default. Can always be overwritten.

yea and I fixed that fuckin typo
## Changelog
🆑
fix: Donk Co. and S.E.L.F. crates now properly display their lock (or
lack therof).
image: New sprites for unlocked Donk Co. crates and locked S.E.L.F.
crates.
spellcheck: The names of syndicate-branded crates now use proper nouns.
spellcheck: Fixed a typo in the description for Donk Co. fridges.
/🆑
2024-10-03 04:41:19 +02:00
carlarctg
d33660e716 Ragnarok/Lattice/Species post-merge tune-up (#86606)
## About The Pull Request

### Ragnarok

- Uncomplicated the arena. The center area's river has been muddied
over, the bonfires have been made dense, the ants on the ground
everywhere have been removed.
- The Warrior's loadout has been simplified, removing any Ash aspects
and making it more concise and understandable.
- The Scribe's loadout has also been simplified, and given an additional
rifle clip. (Yes, it's a clip.) It lost cosmic expansion and the
pacifism mansus, but gained mind gate and some formerly bugged labyrinth
handbooks.
- The Crusader should be able to adjust their nullrod now.
- The Rat'var Apostate's beakers are now named so people other than me
can get the joke.

### Lattice
- Unbreakable lattices are now actually unbreakable and can't be snipped
into nothingness.
- Added true invis walls to the edges.
- Moved spare rods to the pockets.

### Species
- Added no_smoothing to the funny, so it's actually hidden now.
## Why It's Good For The Game

Time playing these ingame has shown some oversights and imbalances.
Ragnarok in particular was far too overcomplicated and indulgent to the
detriment of gameplay. Too many things - ants, rivers, bonfires, spells,
it was cloying. I toned this down a lot here to make the arena more fun.
We still do need a way to pre-bind spells but out of scope.
## Changelog
🆑
balance: - Uncomplicated the Ragnarok arena. The center area's river has
been muddied over, the bonfires have been made dense, the ants on the
ground everywhere have been removed. The Warrior and Scribe have had
their loadouts simplified.
qol: - The Rat'var Apostate's beakers are now named so people other than
me can get the joke.
fix: - Unbreakable lattices are now actually unbreakable and can't be
snipped into nothingness.
fix: - Added true invis walls to the edges of Lattice Battles. Moved
spare rods to the pockets.
fix: - Species Warfare: Added no_smoothing to the funny, so it's
actually hidden now.
/🆑
2024-09-29 16:38:09 +02:00
tonty
3f0b4abb8d Replaces world.icon_size (and some magic numbers) with defines (#86819)
## About The Pull Request

All usages of world.icon_size in code have been replaced with new
`ICONSIZE_X`, `ICONSIZE_Y` and `ICONSIZE_ALL` defines depending on
context

Replaces some "32" magic numbers with the defines

A few bits of code have been modified to split up x/y math as well

## Why It's Good For The Game

Magic number bad, code more readable, code more flexible and I'm told
there's an access cost to doing world.icon_size so minor performance
gains

## Changelog

🆑 tonty
code: made some code relating to the world's icon size more readable
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-09-29 13:28:32 +00:00
ArcaneMusic
47430a4c04 A smattering of boulder-related QOL and fixes. (#86834)
## About The Pull Request

This pull request does a little bit of cleanup that I came across awhile
ago while looking at #85081, then forgot about, then came back up when I
was looking at some additional cleanup that needed to be done.

Reorganizes the handle_wave_conclusion function such that it can take a
force arg, to force a ore vent to be completed for debug purposes.
This also fixes a minor bug where vents, when successfully completed,
will still show a warning alert that the waves were failed, and that the
vent has closed up.

Grammar fix to the examine of boulder processing machines.

Moves the can-move behavior of boulders on conveyor belts and during
regular stacking to an early return over a late return (Thank you
Goofball for pointing that out).

Artifact boulders will now default to their artifact icon_state whenever
possible.

Finally, adds an additional sanity check to boulder processing to check
for custom material length, to attempt to avoid zero-content boulders
existing and running into the afforementioned #85081

## Why It's Good For The Game

Largely applies cleanup to several aspects of the boulder processing
system, and a handful of (hopefully) performance related rearrangements
to the existing layout of boulder processing code.

I can't for sure say that it'll fix the linked issue, due to the fact
that I could not for some reason re-create the issue in local testing,
but I'm hopeful that it's some kind of nebulous sanity-related issue.

Cleans up grammar in some spots, and provides a useful debug tool for
admin purposes when you just want a vent to flip. Might be a good
justification for a ore-manager admin panel later? 🤷

## Changelog

🆑
fix: Artifact boulders should keep their alien icon even after a first
round of processing.
fix: Boulders are less likely to exist with zero materials after
processing.
fix: Boulders should be slightly less laggy on conveyor belts.
fix: Grammar of refinery/smeltery examine is corrected.
/🆑
2024-09-28 04:32:15 +02:00
Soupy
42863ba9b0 Fixes typos with the closets (#86900)
## About The Pull Request
Fixes typos for closets.
## Why It's Good For The Game
Proper spelling so it doesn't ruin immersion and user experience.
## Changelog
🆑
spellcheck: Fixed closet typos
/🆑
2024-09-27 15:39:51 +02:00
SmArtKar
d4ac95a0e1 Nobody expects the span inquisition: replaces most <span>s with macros (#86798)
## About The Pull Request
123 changed files and multiple crashes after writing broken regex, I
replaced most remains of direct spans with macros. This cleans up the
code and makes it easier to work with in general, see justification for
the original PR. I also fixed a bunch of broken and/or unclosed spans
here too.
I intentionally avoided replacing spans with multiple classes (in most
cases) and spans in the middle of strings as it would impact readability
(in my opinion at least) and could be done later if required.

## Why It's Good For The Game

Cleaner code, actually using our macros, fixes borked HTML in some
places. See original PR.

## Changelog
Nothing player-facing
2024-09-26 19:36:13 +00:00
Ghom
c95458f28d Fixes water overlays showing on toilets facing directions other than SOUTH (#86878)
## About The Pull Request
The overlays shows on directions other than south because the code
doesn't update the overlays whenever the dir is changed.
Honestly saving a tiny blip of space with a pair of 1-dir static icons
isn't worth making all this messy code over anyway, so I just scratched
all of it and gave the icon state 4 dirs (3 of which are empty but that
may change if someone decides to give the toilet
a 3/4 perspective when facing right or left.

## Why It's Good For The Game
Fixed water overlays showing on toilets facing directions other than
SOUTH (down).

## Changelog

🆑
fix: Fixed water overlays showing on toilets facing directions other
than SOUTH (down).
/🆑
2024-09-25 21:02:01 -06:00
grungussuss
58501dce77 Reorganizes the sound folder (#86726)
## About The Pull Request

<details>

- renamed ai folder to announcer

-- announcer --
- moved vox_fem to announcer
- moved approachingTG to announcer

- separated the ambience folder into ambience and instrumental
-- ambience --

- created holy folder moved all related sounds there
- created engineering folder and moved all related sounds there
- created security folder and moved ambidet there
- created general folder and moved ambigen there
- created icemoon folder and moved all icebox-related ambience there
- created medical folder and moved all medbay-related ambi there
- created ruin folder and moves all ruins ambi there
- created beach folder and moved seag and shore there
- created lavaland folder and moved related ambi there
- created aurora_caelus folder and placed its ambi there
- created misc folder and moved the rest of the files that don't have a
specific category into it

-- instrumental --

- moved traitor folder here
- created lobby_music folder and placed our songs there (title0 not used
anywhere? - server-side modification?)

-- items --

- moved secdeath to hailer
- moved surgery to handling

-- effects --

- moved chemistry into effects
- moved hallucinations into effects
- moved health into effects
- moved magic into effects

-- vehicles --

- moved mecha into vehicles


created mobs folder

-- mobs --

- moved creatures folder into mobs
- moved voice into mobs

renamed creatures to non-humanoids
renamed voice to humanoids

-- non-humanoids--

created cyborg folder
created hiss folder
moved harmalarm.ogg to cyborg

-- humanoids --




-- misc --

moved ghostwhisper to misc
moved insane_low_laugh to misc

I give up trying to document this.

</details>

- [X] ambience
- [x] announcer
- [x] effects
- [X] instrumental
- [x] items
- [x] machines
- [x] misc 
- [X] mobs
- [X] runtime
- [X] vehicles

- [ ] attributions

## Why It's Good For The Game

This folder is so disorganized that it's vomit inducing, will make it
easier to find and add new sounds, providng a minor structure to the
sound folder.

## Changelog
🆑 grungussuss
refactor: the sound folder in the source code has been reorganized,
please report any oddities with sounds playing or not playing
server: lobby music has been repathed to sound/music/lobby_music
/🆑
2024-09-23 22:24:50 -07:00
san7890
a4328ae1f9 Audits tgui_input_text() for length issues (#86741)
Fixes #86784

## About The Pull Request

Although some of the issues found were a direct result from #86692
(c698196766), there was still 40% of
length-related issues that wouldn't be covered anyways that are fixed in
this PR. I.E.:

* Name inputs without `MAX_NAME_LEN`
* Desc inputs without `MAX_DESC_LEN`
* Plaque inputs without `MAX_PLAQUE_LEN`
* Some people just screwed up the arguments so it would prefill
something like "40" in the `default` var because they didn't name their
vars.

To help me audit I added a lot of `max_length` named arguments to help
people understand it better. I think it might be kinder to have a
wrapper that handles adding `MAX_MESSAGE_LEN` in a lot of these cases
but I think there is some reason for a coder to be cognitive about input
texts? Let me know what you think. I didn't update anything
admin-related from what I can recall, let me know if anything needs to
be unlimited again.
## Why It's Good For The Game

The change to `INFINITY` notwithstanding, there were still an abundance
of issues that we needed to check up on. A lot of these are filtered on
down the line but it is clear that there needs to be something to catch
these issues. Maybe we could lint to make `max_length` a mandatory
argument? I don't know if that's necessary at all but I think that the
limit should be set by the invoker due to the wide arrangement of cases
that this proc could be used in.

This could all be a big nothingburger if the aforementioned PR is
reverted but a big chunk of cases fixed in this PR need to be fixed
regardless of that since people could put in 1024 character names for
stuff like guardians (or more now with the change). Consider this
"revert agnostic".
## Changelog
🆑
fix: A lot of instances where you could fill in 1024-character names
(normal limit is 42) have been patched out, along with too-long plaque
names, too-long descriptions, and more.
/🆑
2024-09-20 22:46:41 +00:00
KingkumaArt
c4974b63ab Bigger Booms: Adds Pipe-Organ Gun and Canister Gatling, two emplaced weapons, along with Mounted Gun code. (#86390)
## About The Pull Request



![image](https://github.com/user-attachments/assets/f62c9c17-6886-4170-9e4c-144f9aa1792e)

So, as you may know, I really like the bootleg weaponry this game has,
but after dealing with gun code for the crossbow, I wasnt inclined to
make more of it. However, when I'm playing ss13 I often have background
noise on, and one day I was listening to an age of empires game, which,
if you aren't aware, is basically a medival rts, featuring a weapon
called an "organ gun". Said organ gun is basically 8 or so muskets stuck
together firing at once. And well, given SS13 has pipeguns, also called
muskets, I couldnt pass up the pun of "pipe organ gun." And thats why
this pr exists. However, as I am noticing I have a habit of doing, I
tend to end up coding more than I ever initially planned.

So what does it add? Well, lets start with the pipe organ gun.

<img width="428" alt="image"
src="https://github.com/user-attachments/assets/0cb93fb9-6ed3-4cb1-a340-0b54832ac577">

The pipe organ gun is made from wood, pipes, iron, typical maints weapon
stuff. Where it differs is it isn't a handheld object - it's a machine
you push and pull around akin to say, the pirate cannons. It can hold up
to 8 pipegun shells, and launches them all at once when lit with
anything that ignites stuff, like a welder, match, torch, etc. It does a
lot of damage, but requires time to reload, and a smart enemy can just
lie down and ignore it. Or maybe it'll just roll 8 of the really bad
ammo types and do nothing, who knows.


https://github.com/user-attachments/assets/5ee1353b-c965-4f47-aa22-4f5cfeb04c51

Initially I planned to use the cannon code as a base, but that presented
a lot of issues, as they need to use cannonballs (which arent ammo in
the traditonal sense), along with only being single shot among other
things. So I made an entire new type of structure called Mounted guns,
which are like cannons that can use conventional ballistic ammo, and
dont have any of the restrictions, and made to be customizable. You want
a gun that takes plasma bars as ammo and launches fireballs? it can do
that. You want to have a rebar ballista, that can shoot up to 3 rods at
once, but only needs to be loaded once? It can do that too. Hell, you
could probably just make full-on gun emplacements with some code
changes. If it's a projectile, it can shoot it, and if its an object, it
can use it as ammo. A list of the current stuff you can change is below.

<img width="510" alt="image"
src="https://github.com/user-attachments/assets/107abbc1-a004-4724-9627-a3388f92cd63">

Which leads me to the second gun I added, which is more of an example of
what can be done with the mounted_gun class.
The canister gatling spawns on the flying dutchman pirate ship, with
enough ammo for five shots.
<img width="453" alt="image"
src="https://github.com/user-attachments/assets/46fdc16e-813a-4e14-b25a-9cf49d245ca6">

Five shots may not sound like much at first - but thats because each
shot is a burst of 50 individual shrapnel bullets. It's unable to break
any walls or doors except for windows, but against anything that isnt a
structure... well, as shown below, they'll have a very bad day.


https://github.com/user-attachments/assets/3519c49d-97e6-4095-99cf-ee8039adbaba

If people like these concepts, I genuinely might add that engineering
rebar ballista.


## Why It's Good For The Game

As said above, I'm a big fan of the whole improvised armory concept ss13
has, and the fact the only "big" gun featured is the trash cannon (which
is locked behind maint loot) is a shame. I felt the pipe-organ gun was a
good compromise - as stated, its just eight pipeguns stuck together,
with all the strengths (high damage output) and weaknesses (slow reload,
needs to be dragged around, cant hit people on the floor, cant damage
walls) that it lacks. As for the canister gatling, I dont forsee it
being a massive problem, as it cant breach walls or doors, so it isn't
just a better cannon.

## Changelog
🆑 WebcomicArtist
add: Added pipe-organ gun: a buildable object akin to trash cannon that
takes pipegun rounds, and shoots up to 8 off at once.
add: Added The Canister Gatling, a rapid fire but non-destructive cannon
for skeleton pirates. Also Canister shot ammo.
sound: Added sounds for the above guns.
image: Added sprites for the guns as well.
code: Added a whole "mounted_gun" class that is basically cannons but
you aren't forced to use cannonballs as ammo and load them with
gunpowder.
/🆑
2024-09-19 23:28:15 +02:00
Goat
0204fea57d Allows lockers & crates with no electronics to be renamed (#86717)
## About The Pull Request
Adds a `secure` check to `ifnull(id_card)`, this allows crates without
airlock electronics or card readers to be renamed by anyone. Also
removes the 'personal' in the TGUI as it doesn't make sense anymore.
## Why It's Good For The Game
Allows any random crate to be renamed and re described. Communal
lockers, like departmental lockers, cannot be renamed because that would
be RUDE.
fix #85628
## Changelog
🆑 Goat
fix: lockers and crates with no access requirements can now be renamed
by anyone
/🆑
2024-09-18 00:16:04 -04:00
Ghom
ba4fa8fe07 What you wear and on what chair you sit on can now influence fishing difficulty (#86646)
## About The Pull Request
A foreword, I had to refactor a few bits of shitcode my past self added
first. For context, the "gone fishing" and "actively fishing" traits
only had one source, which is the fishing challenge itself, ad there was
no way to access the challenge from outside its code, except for a few
weakrefs which were being used as sources for the aforementioned traits
(the shitcode in a nutshell). There were also a few signals that I
didn't like because they were being sent to the harder-to-access
challenge datum rather than the user. So I scrapped the traits for a
couple signals to send to the user, then added a global list as a mean
to easily access the challenge datum, and lastly changed the code to
accomodate the titled feature (and allow the challenge to recalculate
its difficulty DURING the minigame phase)

Moving on to the actual feature: I've added a component that can be
added to objects on which mobs can be buckled to or items. When equipped
in the right slots or buckled to, the object will adjust the difficulty
of current and future fishing challenges by a certain amount (more often
than not positive, but there're many exceptions) as long as the object
isn't equipped or the user is unbuckled.

I've been having some fun adding component to a ton of clothes in the
game as well as chairs. Way too many objects to enumerate, so I'll give
you the general idea:
- each carp-themed article provides a slight positive modifier (easier)
- some (not all) doctor-related garbs provide a marginal positive
modifier each (fish doctor jokes)
- floortile camo clothes have positive modifiers
- Tuxedo, laceups, gowns provide negative modifier (more difficult)
- utility garbs such as bio/bomb/rad hoods and suits are quite bad. Riot
armor too.
- boxing gloves are very, very bad. Insulated gloves and haul gauntlets
are also very bad, to a lesser degree.
- **tackle** gloves are good. (pun intended)
- wizard garbs are good, because wizards are good at casting. (also a
pun)
- magboots slightly bad. Space suits bad.
- Blindfolds and welding protection are also bad. Gas masks marginally
bad.
- Pirate attire is nice to have. (I just vibed a little on this one)
- plastic chairs are quite versatile because they can be carried around,
but the mime chair is the best, followed by ratvarian chairs.
- Fishing toolboxes, analyzers and the fish catalog are a plus, because
they can be held.
- And the fishing hat, obviously (not as great as you'd think)

Some of these may be subject to change depending on what people say.

## Why It's Good For The Game
A hundred lines of fishing challenge code made ever-so-slightly less
awful, and a way to modify fishing diffculty beside skills and bait.

## Changelog

🆑
add: Your current clothes and what chair you sit on can now influence
the difficulty of fishing minigames. Having a bare minimum of fishing
skill will let you distinguish which objects can help and which won't,
so keep an eye out. Holding fishing toolboxes, fish analyzers or fish
catalogs can also help.
/🆑
2024-09-17 22:33:04 +00:00
SmArtKar
48f54857fa Fixes petrification not removing NOBLOOD trait after ending (#86712)
## About The Pull Request

Closes #86710, statues now add noblood themselves from a different
source

## Changelog
🆑
fix: Fixed petrification not removing NOBLOOD trait after ending
/🆑
2024-09-17 15:02:52 -04:00
SmArtKar
866ff1d579 Adds IGNORE_DENSITY flag to windoors and railings to allow crafting on their tile (#86651)
## About The Pull Request

I am bored enough to the point where I'm diving into downstream github
issues.
Thindows have IGNORE_DENSITY but windoors and railings do not,
preventing crafting on their tiles. This ***should not*** cause any side
effects as I went through all the recipes and they still have
BLOCKS_CONSTRUCTION_DIR which should block duplicates or windows from
being constructed on the same tile, but ideally this needs another pair
of eyes.

## Why It's Good For The Game
Windoors/railings should not be preventing you from crafting sprears and
boxes on their tiles. Also parity with thindows.

## Changelog
🆑
fix: You can now craft things on tiles with windoors and railings on
them.
/🆑
2024-09-16 09:28:25 -04:00
Ben10Omintrix
4e4a904a3b [no gbp] reverts some unintended duplicate checks (#86674)
## About The Pull Request
when working on #86031 , i added some checks that were already being
handled earlier in the chain, serving nothing. thanks to melbert for
catching these

## Why It's Good For The Game
removes some duplicated checks
2024-09-16 08:42:34 +02:00
MrMelbert
4a71799e38 Lets you dump bodybags (with people in them) down disposals (#86675)
## About The Pull Request

Bodybags (with people inside them) can be click+dragged to disposals, so
you can dump bodybags down disposals

## Why It's Good For The Game

It's a classic crime trope, so I thought it'd be funny to represent.

## Changelog

🆑 Melbert
qol: You can dump bodybags (with people inside them) down disposals
/🆑
2024-09-16 08:40:06 +02:00
Ghom
5409570e01 Upgrades GODMODE from a flag to a trait. (#86596)
## About The Pull Request
GODMODE has a lot of sources that toggle it. From admin-stuff to status
effects, components, actions and mobs which are supposed to be
invincible. It's better off as a trait than a flag, so we can manage
these sources.

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

## Changelog

🆑
admin: godmode is now a datum trait instead of a bitflag. This means the
process for toggling it is a little different now.
/🆑
2024-09-15 13:40:19 +00:00
Ghom
9a3dceda26 Fishing in a virtual domain doesn't deplete limited loot anymore (also the treasure chest is no longer anchored) (#86625)
## About The Pull Request
I've recently realized that bitrunning fishing spots can steal the
limited loot from outside the virtual reality, which sucks. Also Livrah
asked me why the treasure chest is anchored, to which I said it's
actually an oversight.

## Why It's Good For The Game
Fixing stuff.

## Changelog

🆑
fix: Bitrunning fishing spots no longer deplete limited loot from
outside the virtual reality.
fix: The treasure chest from the beach is no longer anchored to the
floor.
/🆑
2024-09-15 13:55:27 +02:00
SmArtKar
471cde1488 Fixes a typo in DeForest medical crates (#86629)
## About The Pull Request

Closes #86628 

## Changelog
🆑
spellcheck: Fixed a typo in DeForest medical crates
/🆑
2024-09-14 22:24:29 +02:00
jimmyl
7b8449af6e you may now weld a crate (#86064)
## About The Pull Request



https://github.com/user-attachments/assets/bc104e6d-6007-4e9f-ab9f-b810d0f5d664


## Why It's Good For The Game

no reason to be unweldable

## Changelog
🆑
add: you may weld a crate
/🆑

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-09-13 12:38:39 +00:00
John Willard
a4e7929a3b Lighters use welding fuel and can be used as welders in some cases (#85941)
## About The Pull Request

Lighters now have welding fuel which can be filled/extracted by hand,
giving a small but consistent source of welding fuel for non-chemists.
Welding fuel is now required for these lighters to work, they'll close
automatically once they're out of fuel.
They last for a minute, zippo lasts 2 minutes, before they need to be
refuelled. It can have other reagents put into it but it only checks for
welding fuel, so it won't work at all unless its got some.
They can be used as welding tools in minor cases, mostly fixing things
and welding doors shut, but can't do big things like deconstruction,
except the xenobio one because it's a lot hotter than the normal
lighter.

Also added a baseline support to check for heat to perform certain
welds, before heat is just this binary "has or doesnt have heat", which
made its value useless.

## Why It's Good For The Game

Adds a ghetto way of getting welding fuel, hiding reagents, and a ghetto
welding tool without being something that prisoners could break out of
prison with. They could weld the doors shut which is a little funny,
security still has proper welding tools to counter it.
It also currently is kinda lame that lighters could just be open 24/7,
unlike matches which has a lifespan of 10 seconds each or something.

## Changelog

🆑
add: Lighters now use and require welding fuel to work, but can be used
as a welding tool for tasks that don't require much heat.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-09-13 12:32:09 +00:00
MrMelbert
8486f2f7e2 Storage / table interactions at the bottom of the interaction chain (#85512)
Because the wings were in fact made of wax 

## About The Pull Request

Storage goes to the very bottom of the interaction chain, hardcoded in
on `/atom`.
This is not preferred, obviously, but it ends up being a lot less
snowflaking overall.

Tables also go at the very bottom by extending `base_item_interaction`. 

Fixes #83742
Fixes #84434 
Fixes #83982
Fixes #85516
Fixes #84990
Fixes #84890
Closes #85036
Closes #84025 (RMB places it on the table.)
Closes #86616

Other changes:

Refactored pod storage to be less jank. Patches some exploits around it.

## Why It's Good For The Game

Should make a lot more interactions a lot more reliable... hopefully

## Changelog

🆑 Melbert
refactor: Storage and Tables are now a lower priority action, meaning
some uses of items on storage should work... better, now. Here's hoping
at least, report any oddities.
refactor: Note: For an overwhelming majority of items, **combat mode**
will attempt to attack/insert into the target, while **non-combat-mode**
will attempt to use on a target. This means screwdrivering or emagging a
MODsuit must be done on non-combat-mode, as combat mode will simply put
the screwdriver or emag into its storage. Same applies to tables, though
when in doubt, RMB may help (for things which are also weapons, like
mops).
refactor: Refactored escape pod storage, now they actually properly show
as unlocked on red alert and above.
/🆑
2024-09-12 23:48:19 +02:00
EnterTheJake
6faa37853b Void Heretic Rework: You Can (Not) Heat Up. (#85728)
## About The Pull Request

Reworks most of the Void Heretic kit.

All Void spells now apply a stacking debuff that makes you gradually
colder.

Void Blast has been replaced with a new spell "Void Conduit" and a new
Side knowledge spell, "Void Prison" has been introduced.

 Waltz At The End Of Time has been completely overhauled.

Lastly Void Blade has been resprited along with the overlay of Void
Chill, check any of the linked videos to see the new look.

All new sprites have been kindly made by OrcaCora.

## Why It's Good For The Game


Void path is *Supposedly* themed around the cold of space but doesn't
have any tools to live up to the fantasy of being an harbringer of the
Void whose main goal is to freeze the station to an icicle.

Then there's also the issue of Void being utterly underwhelming compared
to his neighbors, Cold is way too easy to treat as a status effect, so
much so, a simple cup of coffee can utterly shutdown the void storm,
which is just unacceptable.

# **Changes**

- **Void Chill**: Is now a stacking debuff, each stack slows movement
speed by a percentage while lowering body temperature, upon reaching the
cap, which is 5 stacks, the victim cannot heat up anymore, all void
Spells apply 1 stack of the debuff, with the exception of the grasp
applying 5 (2 for the mark and 3 for the detonation) and the blade
upgrade applying 2.


**Reasoning**: Void chill currently suffers from being completely
shutdown by sipping tea, coffee or having the COLD_RESIST trait,with
this change you can still negate the damage and the slowdown you get
from being cold but not the slowdown from the debuff itself.

- **Aristocrat's Way**: Now grants no slip on ice and water tiles on
cold or depressurized turfs

**Reasoning:** Since the rework revolves around making Void heretic more
involved in freezing the station, they should be able to move in their
domain without getting punished for it.

- **Void Cloak:** Can now be toggled on and off to make the cloak
visible or invisible; when the cloak is visible it grants low pressure
immunity trait.

**Reasoning:** Not having pressure resistance as a Void Heretic just
sucks, as you are clearly intended to somewhat go into space at some
point; giving it to the cloak is a good compromise since you sacrifice
better protection (***the armor values of the cloak are pitiful***) for
utility.


- **Replaces "Void Blast" with a new spell, "Void Conduit"**.

**Void Conduit:** Opens a gate to the Void; it releases an intermittent
pulse that damages windows and airlocks and applies a stack of void
chill to non heretics, Heretics are granted the low pressure resistance
trait.
**Reasoning**: I like the idea behind Void Blast; unfortunately, the
spell has limited uses if an area isn't already spaced, which is hard to
do considering the current kit of Void Heretic doesn't provide anything
to help in that regard.

I wanted to give Void Heretic a tool to turn any area of their choosing
into their ideal habitat. Not amazing for quick assassinations, good if
you are anticipating a fight or want to simply expand your domain, the
added Trait might seem redundant, but let's not forget that the void
cloak is still a side knowledge, I don't want newbie heretics to space
an area and accidentally killing themselves because of it.
 
Video Demonstration: https://www.youtube.com/watch?v=nhPdj1hIgSI

- **New side knowledge: "Void Prison."**

**Void Prison:** It makes the target invulnerable and unable to do
anything for 10 seconds , when the spell ends, it applies a few stacks
of void chill, cannot be self-cast.

It occupies the same slot of Blood Siphon (inbetween Raw Ritual and Void
Phase.)


Video Demonstration: https://www.youtube.com/watch?v=nKZd8aEcZFw

**Reasoning**: Void is technically meant to be an assassination path and
not really apt at tackling multiple opponents, this spell might come
into clutch if you are outnumbered, or simply want some breathing room
from your pursuers.

- **Void Jaunt and Void Pull**

Cooldown respectively reduced to 25 and 30 seconds, down from 30 and 40.

**Reasoning:** I felt that the cooldown on these was a bit too high
overall; as it stands, Void Phase cooldown is twice as long as Ashen
passage, one of the best and arguably most sidepathed spells in the
game.

Granted phase is faster and has more range but I don't think it
justifies its cooldown being this long.

Void pull could also use slightly less cooldown, being the very last
spell you unlock and offering a simple melee knockdown.

- **Seeking Blade:** Now applies 2 stacks of void chill per hit.

**Reasoning:** Seeking blade is a bit underwhelming for being the final
blade upgrade, teleporting to a target you just stunned at melee range
is incredibly niche, now that Void chill is a stacking debuff we can
probably just slap it on the blade itself.


- **Waltz At The End Of Time:** The Heretic becomes weightless and able
to levitate around, (carp movement essentialy).

The heavy storm is no longer bound to the room the heretic is in but is
now an aura around them, this does a few things.

1) Releases a pulse that depressurizes areas, shatters windows, airlocks
and firelocks, and applies a stack of void chill to non heretics, the
passive burn and oxy damage effect has been removed.

2) Grants to the Heretic projectile deflection.


**Reasoning:** Void Has the reputation of having the weakest ascension
in the game, which it's hard to disagree on considering you can
completely neutralize the effects of the storm by simply sipping tea and
how generally little it does overall.

It's also kind of strange that you have this massive Eldritch storm
ravaging the station and for it to have no effects on its atmosphere,
infrastructure, or projectiles whatsoever.

Video Demonstration: https://www.youtube.com/watch?v=1_blr20-hgA


## Changelog

🆑
add: New Heretic Side Knowledge, Void Prison.
add: New Void Spell Void Conduit has now replaced Void Blast.
balance: Void Chill is now a stacking debuff, upon reaching the cap,
makes the target unable to heat up.
balance: Aristocrat's way now grants immunity to ice and water slips on
cold turfs.
balance:  Void Cloak now grants low pressure resistance when visible.
balance: Void Phase and Void pull have received a minor CD reduction.
balance: Seeking Blade now applies a couple of stacks of void chill.
balance: Void Heretic Ascension has been overhauled, it's now protects
the heretic from projectiles, destroys windows and airlocks and applies
void chills to non heretics.
image: Void Blade and Void Chill have received some new sprites.
/🆑

---------

Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
2024-09-10 22:21:04 +00:00
Ghom
ed0093375f [NO GBP] Fixes mystery boxes breaking after a single use (#86560)
## About The Pull Request
Forgot to set the default value for `uses_left` to infinity when I added
the treasure chest to the beach (it still has 18 uses).

## Why It's Good For The Game
This will fix #86547

## Changelog

🆑
fix: Fixes mystery boxes breaking after a single use.
/🆑
2024-09-10 16:00:13 -04:00
_0Steven
74936ad639 Allow beds to define what side their headrest is on, fixing medical/roller bed buckling and bed_tuckable directions (#86556)
## About The Pull Request

So previously I put out a pr that made beds alternate their
`buckle_lying` angle based on their current direction, such that you
would always use the headrest as a headrest.
However, the medical/roller beds have their sprites flipped, and so
these would instead always use the headrest as a footrest.
This wasn't obvious before as both regular and medical/roller beds would
use the headrest on half their directions, just different halves.

While we could have fixed this by flipping the sprites on the
medical/roller beds, I think it's better to flip their buckling angles
instead so that the medical/roller beds maintain how they look while
being pulled, so my first thought was to override the
`update_buckle_vars(...)` proc with the other directions.

However, during testing I realized that these flipped sprites would also
affect the `bed_tuckable` element interactions with the code, used to
work out how to place certain items onto beds.
So instead of just overriding the proc, we add a new var
`left_headrest_dirs` that defines the directions for which the headrest
faces left, change its value for medical/roller beds, and use this for
the `update_buckle_vars(...)` proc and `bed_tuckle` element.

This fixes our issues.
As a side-effect, this also fixes an issue where `bed_tuckable` would
consider north-facing regular beds as if their headrest was on the right
rather than on the left.

<details>
  <summary>Images</summary>
  

![image](https://github.com/user-attachments/assets/450a3cd5-eed9-4fd1-9d19-ab155d47efaa)

![image](https://github.com/user-attachments/assets/864b28a7-b073-4291-8c21-fcf49c012894)


![image](https://github.com/user-attachments/assets/27016b04-2daa-4cb6-b9c9-5b0557a50a45)

![image](https://github.com/user-attachments/assets/e8af12ce-ad89-4844-b331-478dc0f4ba0d)
</details>

## Why It's Good For The Game

Fixes part of #86521.
Good to not use the headrest as a footrest all the time.
## Changelog
🆑
fix: Fixed being buckled to medical/roller beds making you always use
the headrest as a footrest.
fix: Fixed bedsheets/diskies/plushies/etc put on medical/roller beds
facing the wrong direction.
fix: Fixed bedsheets/diskies/plushies/etc put on any bed facing the
wrong direction on some beds.
/🆑
2024-09-10 17:06:09 +02:00
klorpa
69176298ed Spelling Fixes (#86056)
## About The Pull Request
Fixes several errors to spelling, grammar, and punctuation.
## Why It's Good For The Game
Improves readability and user experience.
## Changelog
🆑
spellcheck: fixed a few typos
/🆑
2024-09-10 17:04:59 +02:00
SmArtKar
8182453c4e Fixes locker shoving closing and opening the locker thrice, sending its victim to the backrooms (#86572)
## About The Pull Request

Closes #86456 and fixes this

![dreamseeker_bPI7dM78rV](https://github.com/user-attachments/assets/b9939d24-347e-49e2-b3b4-cec1185d2dfc)

## Changelog
🆑
fix: Fixed locker shoving closing and opening the locker thrice, sending
its victim to the backrooms
/🆑
2024-09-10 16:29:58 +02:00
FeudeyTF
fcdb92c3cd Detective board fix (#86516)
## About The Pull Request

If you remove last case, board will crash. Now will not.
Also i limited number of cases for 8 cases

## Why It's Good For The Game

Fixes

## Changelog
🆑 FeudeyTF
fix: fixed removing last case
/🆑
2024-09-07 18:22:24 +02:00
vect0r
c50f67bdf4 Fixes an faulty message when a AI controlled mech is destroyed (#86485)
## About The Pull Request

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

## Changelog
🆑
fix: Fixes an faulty message when a AI controlled mech is destroyed
/🆑
2024-09-05 22:53:29 -06:00