* Makes decals only caught on mapload & removes turf_loc_check (#76130)
Theres one player-facing change in this PR and it's that I removed human
gibs from being valid in space turfs, making it more consistent with the
other gib decals.
I've cleaned up many instances of decals spawning in bad turfs on
mapload in https://github.com/tgstation/tgstation/pull/75189, but making
it error anytime in-game a decal is put over an invalid turf is bad as
it punishes contributors for not optimizing their decals properly.
This changes it so it only errors if it's on mapload, unit testing or
not.
I've also removed ``turf_loc_check`` and replaced instances of it with
overwriting ``NeverShouldHaveComeHere``, which gives us greater control
of where decals can be placed.
This let me remove 2 subtypes that were made to have decals in specific
places (which then got placed elsewhere, ruining it all).
Mappers are still able to set decals to be placed anywhere, they just
need to add it as a valid turf for that decal.
* Makes decals only caught on mapload & removes turf_loc_check
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* updates multitile airlocks to not close on you
* I forgot to do the of hehabgggg
* also fixes the density of the assemblies cus uhhhh yolo
* generalisation and some other stuff I forgot
* deletes this other bit cus it doesnt seem to make a difference
* Standardize Welder Fuel Usage (#76021)
Remove welder fuel usage from all actions except attacking and leaving
it on
most welder tasks require a minimum of 1u of fuel, some longer tasks
require a minimum of 2 or 3u welders now drain 1u every 5 seconds
they're active
## About The Pull Request
Prior to this PR welder fuel usage was random, a lot of tasks didn't use
any welder fuel and welders were basically near infinite so long as you
didn't use them for combat, it took 26 seconds of activity to drain 1u
of fuel, that means an emergency welder alone could run for 5 minutes
straight before needing a refuel
After this PR all welders will drain 1u every 5 seconds instead of every
26 seconds, but welding objects won't require extra fuel anymore, making
the fuel usage much more consistent.
resolves#55018
## Why It's Good For The Game
Actually makes fuel tanks useful and relevant without making it
obnoxious to do repetitive quick tasks like turn rods into plates,
there's actually a reason to upgrade off the emergency welder now since
it lasts 50 seconds rather than 5 minutes
## Changelog
🆑
qol: Welders now have a more consistent fuel usage
/🆑
* Standardize Welder Fuel Usage
---------
Co-authored-by: Couls <coul422@gmail.com>
* Fix further/MetaStation (#76158)
## About The Pull Request
Typo fixes. Further and fixes MetaStation's default name to match the
JSON.
## Changelog
🆑 LT3
spellcheck: Fixed a few typos
/🆑
* Fix further/MetaStation
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Fix logging for tabling and disposal shoving (#76017)
## About The Pull Request
fixes#69837
## Why It's Good For The Game
accurate combat logs
## Changelog
🆑
admin: fix combat logs for tabling and disposal shoving
/🆑
* Fix logging for tabling and disposal shoving
---------
Co-authored-by: Couls <coul422@gmail.com>
* Cannot use departmental budget cards as source of credit withdraw (#76113)
Currently you can put cargo's budget card into your PDA, go into NT Pay
and send over the budget to any pay token you want including yours. This
just adds a check to ensure you aren't using that kind of card as
withdrawal source.
* Cannot use departmental budget cards as source of credit withdraw
---------
Co-authored-by: Pepsilawn <reisenrui@gmail.com>
* Proper broken tiles (#75623)

## About The Pull Request
The current broken tiles have some visual issues:
- There is an ambient occlusion shade when it touches normal tile
- It has a layer higher than it should be which leads to things that are
normally above the floor layer, render below it. Such as atmos
machinery, cleanable overlays, etc.
This PR makes the render on a proper layer and work like a partially
destroyed floor tile that can be reclaimed with crowbar.
Also, the cleanables are now on FLOOR_CLEAN_LAYER to make dirt appear
above catwalks and these new tiles.
And the flat dirt now has 4 variants of sprites, while dust uses the old
dirt sprite. It seems like dust was just dirt with different description
before.
## Why It's Good For The Game
A broken tiling with no visual bugs and proper floor-like logic.
## Changelog
🆑 MTandi, Borbop
fix: Dust now has dust icon, instead of dirt icon. Dust on all maps
replaced with dirt
image: Flat dirt now picks from 4 new sprites
refactor: Made broken tiling work more like tiling and have
corresponding visuals. Added directional mapping variants.
fix: Cleanables now use FLOOR_CLEAN_LAYER to make sure that trash is
visible above catwalks
/🆑
* Proper broken tiles
* Update north_star.dmm
* Update north_star.dmm
---------
Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Late adjustments to my previous move_loop PR. [NO GBP] (#75778)
## About The Pull Request
Lemon guy was a bit too late in reviewing #75732 because it got already
merged by someone else, and I too hadn't managed to make some adjustment
to that PR in time.
This PR applies suggested changes, turns a simple proc into a macro, and
makes it so that also waddling, squeaky shoes and swivel chair sounds
don't running when moved by conveyor belt.
This doesn't stop squeaking from happening when other
conveyor-belt-moved objects or mobs cross its tile. That'd be hacky and
I'm not here to fight sfx-spamming machines.
## Why It's Good For The Game
These are changes that should have been included in #75732 but couldn't.
See that PR for the general idea.
## Changelog
🆑
fix: waddling, squeaky shoes and swivel chair sound effects no longer
run when moved by conveyor belt.
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Late adjustments to my previous move_loop PR. [NO GBP]
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* makes snow legions from portals drop skeletons (like tendril legions) (#75707)
## About The Pull Request
Exactly what it says on the tin (snow legions only dropping ashen
skeletons, like tendril legions).
Also changes the name of the "fromtendril" variable to "from_spawner",
and comments it. Not sure if that warrants a changelong comment, but
I'll go ahead and assume no.
## Why It's Good For The Game
being able to farm snow legion portals for an endless tide of bodies
and/or equipment is a bit weird. also puts it a bit more in line with
the legions of Lavaland
## Changelog
🆑
balance: The source of the demonic portals that endlessly deposits snow
legions onto the Icemoon no longer preserves the bodies nor gear of the
damned (read: demon portal snow legions now only drop skeletons).
/🆑
---------
Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
* makes snow legions from portals drop skeletons (like tendril legions)
---------
Co-authored-by: Hatterhat <31829017+Hatterhat@users.noreply.github.com>
Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
* Stops shields getting broken by pillows and disablers. (#75759)
## About The Pull Request
See the title. Doing so by adding a new arg for damage type to
`check_shields()` and `hit_reaction()`. The other way would had involved
a couple istype checks for item or projectile damage type, but this is a
longer term solution and can tackle more than just that.
## Why It's Good For The Game
Fixes#74876.
## Changelog
🆑
fix: Stops shields getting broken by pillows and disablers.
/🆑
* Stops shields getting broken by pillows and disablers.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* You can now sweep garbage into open trash bins (the crate subtype), not just disposal bins. (#75734)
## About The Pull Request
Re-read the title. I had to add a dcs signal to do this.
## Why It's Good For The Game
Empowering trash bins for the sake of consistency.
## Changelog
🆑
balance: You can now sweep garbage into open trash bins (the crate
subtype).
/🆑
* You can now sweep garbage into open trash bins (the crate subtype), not just disposal bins.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Fixes grilles electrocuting or tesla-ing when there's a floor between the grille and the cable (#75703)
## About The Pull Request
Stops grilles from electrocuting or tesla-ing when there's a floor
between the grille and the cable.
## Why It's Good For The Game
Fixes#60541
## Changelog
🆑 Licks-the-Crystal
fix: Stops grilles from electrocuting or tesla-ing when there's a floor
between the grille and the cable.
/🆑
* Fixes grilles electrocuting or tesla-ing when there's a floor between the grille and the cable
---------
Co-authored-by: zeckle/licks-the-crystal <79835169+mikederkan@users.noreply.github.com>
* Engineering, janitor and medical holosign projector changes. Much faster, more capacity, less integrity. (#75543)
## About The Pull Request
The engineering, janitor and medical holosign projectors can project
their holosigns in 1 second. The holosign integrity has been reduced to
1. Engineering max capacity increased to 12, medical to 6.
## Why It's Good For The Game
The long time to project made these projectors, especially the
engineering ones, impractical to use during an emergency that warrents
their usage. Medical capacity increase allows them to block off a
typical hallway, which could be used if there's a biohazard (60 gibbed
monkeys, or botanist). Engineering capacity increase is warrented due to
the nature of breaches and how large they can get.
The integrity reduction should help prevent them from being used to
Fortnite people.
## Changelog
🆑
balance: Engineering, janitor and medical holosign projector projection
time reduced to 1 second.
balance: Engineering, janitor, and medical holosign integrity reduced to
1.
balance: Engineering holosign projector max capacity increased to 12.
balance: Medical holosign projector max capacity increased to 6.
/🆑
* Engineering, janitor and medical holosign projector changes. Much faster, more capacity, less integrity.
---------
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
* Rubber duck now quacks, not honks (#75674)
## About The Pull Request
I stepped on a rubber duck while testing #75672 and got very sad when it
honked.
Makes rubber ducks use the rubber ducky shoes sound effect instead of a
clown honk sound effect.
## Why It's Good For The Game
Ducks are supposed to quack, not honk. It's not a goose, after all.
## Changelog
🆑 Stalkeros
sound: Rubber duck now quacks.
/🆑
* Rubber duck now quacks, not honks
---------
Co-authored-by: Stalkeros2 <42087567+Stalkeros2@users.noreply.github.com>
* Massive Spraycan and Crayon Powercreep: smaller graffiti cost less to draw. (#75588)
## About The Pull Request
Currently, drawing a small circle on the floor consumes as much charge
as any other drawable but the larger horizontal ones that cost five
times as much, which is a bit dull for non-cyborg players, having to
burn through a ton of spraycans just to cover the floor in several small
dots if ever attempting to do some floor art.
This PR aims to reduce the cost of some of the smaller drawables, like
"shortline", "smallbrush", "pawprints" etc., in virtue of the smaller
area they cover. The balances changes may seem bit of an arbitrary and
not include ones that are a bit on the edge between "small" and not
"small", but I'd rather keep it simple than have other values such like
"semi-small" integrated and snowball this balance PR into a more
finnicky, disputable or not agreeable with version of itself.
This also covers re-coloring and existent graffiti. Currently it always
costs 2 charges to change its color regardless if it costed 1 or 5 to
spray in the first place. With this PR, the costs should match that of
when they were drawn. To boot, It also takes into account the tagger
quirk now.
Code had to be cleaned up and improved a bit for a smoother
implementation of these changes.
A fairly unrelated but small change: Trying to suicide with an empty
spraycan will now fail, because it's empty. It's that simple.
## Why It's Good For The Game
Enables non-cyborg players to engage in jolly floor-vandalizing-art in a
more consistent, slightly more enjoyable way.
## Changelog
🆑
balance: Drawing small graffiti like paw/foot/claw prints, small brush
dots and short lines should cost half as many charges off your spraycan
or crayon.
balance: The cost of recoloring graffiti decals is now consistent with
that of drawing them.
balance: Trying to suicide with an empty spraycan will now fail, because
it's empty. It's just that simple.
/🆑
* Massive Spraycan and Crayon Powercreep: smaller graffiti cost less to draw.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Reworks gym equipment (#75389)
## About The Pull Request
Gym equipment are currently ported from Goon code, and I didn't like how
it currently worked as it was buggy and the code was a mess. I decided
to just rework how they worked entirely. I left the parts that weren't
Goon code (like tooltips & deconstruction) alone because it's not goon
code and I think it's fine that way.
- Now you buckle yourself to it (like a chair, I didn't like how it
didn't work like one) and can work out with an action button you get on
buckle, you can do as many sets as you want, then unbuckle & go.
- You aren't hardstunned for 8 seconds for clicking on it anymore, you
aren't flying around because the stun doesn't even last the duration of
the animation anymore.
Video demonstration
https://github.com/tgstation/tgstation/assets/53777086/f5ae86f1-65fb-46c6-8a5f-8f9d9f0548b3
## Why It's Good For The Game
Reworks old code
Removes un-documented Goon code
Makes gym equipment less broken than it currently is.
## Changelog
🆑
qol: Gym equipment was reworked. You now buckle yourself to weight
machines to use them, rather than clicking on it and getting stunned for
a few seconds. It also means it works like a chair now.
qol: Gym equipment no longer breaks a sweat in no gravity.
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Reworks gym equipment
* updatepaths
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* emagging morgues updates the icon state immediately (#75564)
very tiny change, just means if theres already an alive body you dont
need to reopen and close it
* emagging morgues updates the icon state immediately
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* morgue trays can now be emagged (#75457)
## About The Pull Request
you can emag morgue trays disabling the alarm system
## Why It's Good For The Game
keeps your enemies dead :J
## Changelog
🆑
add: You can emag morgue trays to disable their life alerts.
/🆑
* morgue trays can now be emagged
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Adds a variable to deployable turrets to keep them permanently anchored (#71178)
Sometimes admins want to spawn a deployable turret in a certain place
for a reason, and not allow them to be dragged away to anywhere on the
station on a moments notice. This lets you do that.
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Autodocs dreams and bedsheets, triples the number of dream strings (#70824)
Autodocs dreaming.dm and bedsheet_bin.dm.
Also adds a bunch of new subjects for your dreams to choose from. This list was way more sparse than I expected, so I felt obligated to add to it.
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Adds One Single Space to Unlocking and Locking Closets (#75383)
## About The Pull Request
Title. I added one single space bar to the third-person display message
when you witness someone else lock or unlock a locker.
## Why It's Good For The Game
Before:
<img src="https://i.ibb.co/RCWTTcq/Closet-Space-Bar-Before.png">
After:
<img src="https://i.ibb.co/Wfm7hvR/Closet-Space-Bar-After.png">
Highlighting unrelated shoutout to my fellow based AI enjoyers.
Grammar is good.
## Changelog
No changelog necessary.
* Adds One Single Space to Unlocking and Locking Closets
---------
Co-authored-by: Jackraxxus <60418544+Jackraxxus@users.noreply.github.com>
* [NO GBP]Final Closet, Crate & Access Patches (#75331)
## About The Pull Request
1. Ensures the static list closet & crate paint job vars & the
`access_choices` list vars are initialized only once. Since they are
defined inside `Initialize()` they were initialized many times and need
to be set only once when null
2. Fixes#75313
Closets & Crates can be wrapped again
3. Fixes#75349
Personal closets can be claimed again by anyone without
ACCESS_ALL_PERSONAL_LOCKERS if it's currently unclaimed.
4. Fixes#75351
Wallet with combined access are accepted again
**Note:** To claim a personal closet swipe once to unlock it, then swipe
again to claim it
🆑
fix: closets & crates can be wrapped with wrapping paper again
refactor: closet & crate paint jobs static list vars, access_choices
static list var are initialized only once during init
/🆑
---------
Co-authored-by: Tim <timothymtorres@ gmail.com>
* [NO GBP]Final Closet, Crate & Access Patches
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Tim <timothymtorres@ gmail.com>
* Flora (like trees, rocks and etc.) now drops materials when destroyed. (#75070)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
I find it strange that you don't get anything if you just break tree or
rock with brute force. So you will now get something but with 0.6
multiplier.
I chose 0.6 multiplier so using tools are still preferable, but you
still get amount of recourses you can do something with.
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
You can gather some materials if you have no tools besides the toolbox.
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
qol: Trees, rocks, grass and etc. now drop materials when destroyed.
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
* Flora (like trees, rocks and etc.) now drops materials when destroyed.
---------
Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
* Cardbaord box alert doesn't trigger on blind mobs (#74787)
## About The Pull Request
Cardboard box MGS alert doesn't trigger on blind mobs.
## Why It's Good For The Game
Just makes sense I think
## Changelog
🆑 Melbert
balance: Blind people don't get alerted when someone in a cardboard box
pops out nearby
/🆑
* Cardbaord box alert doesn't trigger on blind mobs
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Gives stairs infinite move resistance (#75120)
Gives stairs `move_resist = INFINITY`, preventing anything with
above-average move force from moving them.
Currently, mobs with above average move forces, like Goliaths and
Megafauna will break stairs on their first use, not by destroying them
but by physically moving the stairs one tile.
While funny, this really does mess with a few maps, opens up easy grief,
and doesn't make too much sense.
* Gives stairs infinite move resistance
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Removal of Kilostation (#75039)
## About The Pull Request
Removes Kilostation from the game.
Since I know this is bound to be a touchy subject (the map has its fans,
after all), I feel I need to explain the situation and why this decision
has been made.
While working on mapping for TGStation, there's an inherent struggle
between what's good for mappers, and what's good for coders. On the
mapping side, we want as many maps as we reasonably can have in the
repo. On the code side, every map added introduces a new layer of
complexity for adding new features. While we're attempting to make
strides in improving cooperation between the two teams so we can handle
both many maps and lots of new features, in the here and now this means
that we find ourselves limited in how many maps we can maintain at once.
With this in mind, we find ourselves in a conundrum when new maps come
along. While it would be nice to accept everything new without needing
to remove anything else, the above problems force us to stick to a
limit. Via a fair amount of discussion on the maintainer team, this was
set to 6 recently, which we reached when Northstar was merged, and
meaning that a removal was required for any new maps.
As for why the decision was made to take Birdshot over Kilo, I believe
it is better for us to have a map that has room to grow and an active
creator. As much as I was personally a Kilo enjoyer, the map has
consistently proven to be problematic for new code additions due to its
scale, and it receives little maintenance outside of the bare essentials
as a result. With all this in mind, it comes out as the obvious choice
for removal in this case. Of course, nothing stops it from coming back
in future if any of the above changes.
## Why It's Good For The Game
TL:DR: In order to keep the maintenance budget down, we need to remove a
map for the sake of new blood, and in this case Kilo was the simplest
choice.
## Changelog
🆑
del: Kilostation has went back to its home planet. It served us
faithfully for nearly 3 and a half years. May it rest in peace.
/🆑
---------
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
* Removal of Kilostation
---------
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
* Miner Style Points 2: Style on Everyone (#74690)
## About The Pull Request
A re-open of https://github.com/tgstation/tgstation/pull/66326 with
Fikou's permission
Adds the style meter, it can be bought from the mining vendor for 1500
points, it is an attachment to your glasses.
The style meter creates a display on your hud, with your recent actions,
like attacking enemies, killing them, mining ore etc. Actions like
spinning or flipping increase your score multiplier, making you get more
points.
Your style meter affects how much ore you get from mining rocks. By
default with the meter, you get 20% less ore, but at the highest, you
can get 1.2x the ore from mining. In addition, on B-tier or above, you
can "hotswap" items, by attacking an item in your backpack with one in
your hand (should it fit and all that). Also features a leaderboard for
highest style point count!
New streamable: https://streamable.com/eewi6l
The following are sources of points:
- Killing things
- Killing big things
- Killing small things
- Punching things
- Melee'ing things
- Mining rocks and ores
- Having matrix traps detonate
- Hit, defuse, and detonate gibtonite
- Detonate crusher marks
- Scan geysers
- Parry projectiles (others or your own)
Oh, right. While wearing the style meter, you're able to parry any
lavaland-based projectile by clicking on it or the tile it is on, which
reflects it back in a 7 degree arc, making it 20% faster and 15% more
damaging. Usually not very easy.
Maybe-plan in the future for some syndicate variant of this (with bullet
parrying and appropriate style sources, etc.), but not for this PR
Thanks to Arcane, multitooling the style meter will make it play some
sounds on rank-up.

https://streamable.com/nheaky
Parrying in action
## Why It's Good For The Game
Makes miners bring more ore in a fun way.
## Changelog
🆑 Fikou, Zonespace, Arcane for voicing
add: The mining vendor now has a style meter. This meter gauges your
style points and uses them to improve your ore yield.
/🆑
---------
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Miner Style Points 2: Style on Everyone
---------
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>