* Remove HoS's redsec skirt from their locker
Redsec is dead.
* Fixes missing repaths to hos/cap and other related tweaks
TG repathed these, which means now we don't need to worry about reskinning applying to the beret! We should probably make sure to use the new type tho...
* remove dupe hop coat from garmentbag
* update the single hos cap path on modular interdyne
* more missed cap paths and removes now-redundant beret flag
The base-type has the flag which covers the beret
* Make paint cans limited use again (#75198)
## About The Pull Request
Apparently paint cans were never decrementing their `paintleft`
variable. They do this now, plus an error message for the funny
multicolor paint can when you try changing the color while it's empty.
Fixes#75110 by decrementing the variable.
This also makes sure clown borgs aren't hampered by their inability to
just get a new paint can by making their specifically infinite use.
## Why It's Good For The Game
Apparently paint cans were supposed to be limited use in the first
place, considering they had a `paintleft` variable that was never
decremented. We could also look at a few different options for refilling
these cans in the future that could further the creativity available
with them.
## Changelog
🆑
fix: Paint cans have become limited use as intended by the gods of code
fix: Clown borgs get unlimited paint, as a treat.
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Make paint cans limited use again
---------
Co-authored-by: Gear <9438930+the-og-gear@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.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>
* Wedding Cakes (#75076)
## About The Pull Request
Added wedding cakes, which are sliceable into wedding cake slices.
Mechanically, they are just worse pound cakes - they require more
ingredients and provide less nutrients - but they are here for the
flavor. Sometimes a pound cake just doesn't suffice when you want to
roleplay a wedding.
Fair warning, I've not done a pull request here before, any advice
welcome.
<img
src='https://user-images.githubusercontent.com/102194057/235379312-2eaecffa-c48f-45b6-a3c6-09bf4bbff14a.png'>
## Why It's Good For The Game
Roleplayers like weddings, and what is a wedding without a cake? (This
PR was originally made for Skyrat but they recommended I take it
upstream).
## Changelog
🆑
add: Added wedding cakes
/🆑
---------
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
* Wedding Cakes
---------
Co-authored-by: Thlumyn <102194057+Thlumyn@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ 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>
* Powersinks no longer always show as being "very hot" when you are close to them (#75155)
## About The Pull Request
This fixes the powersink always showing as being "very hot" under
certain conditions, since there was a missing set of parenthesis in the
observer/distance check.
## Why It's Good For The Game
Fixes a bug I found while making a QOL change that ended up being kind
of pointless.
## Changelog
🆑 Rhials
fix: Powersinks no longer always show as being very hot if you're too
close.
/🆑
* Powersinks no longer always show as being "very hot" when you are close to them
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Cyborg Rechargers material changes, part two (#74814)
## About The Pull Request
Continuation of #74770;
- Fixes some botched math due to the borg material storage datums using
a proprietary value per sheet (500 vs 2000)
- Restocking is now enabled by default when a borg enters a charger. It
can be disabled during the charge session, but will re-enable the next
time the charger is used.
- Moves the Metal and Glass storage datums to a new shared subtype.
- Restocking speed scales with the manipulator tier of the recharger; By
default, it is 1/8th the total metal/glass storage per cycle, and
increases to 1/5th with a tier 4 manipulator.
## Why It's Good For The Game
These were changes I meant to make before the last PR was merged.
## Changelog
🆑
fix: Fixed math on cyborg restocking
qol: borgs entering chargers now have the restocking feature enabled by
default. It can be disabled with a right-click while charging if you
don't want to eat the station's mats.
balance: Borg restocking speed now scales with the charger's manipulator
tier.
/🆑
* Cyborg Rechargers material changes, part two
---------
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
* Deadchat Announcement Variety Pack 1 (#75140)
## About The Pull Request
Adds announce_to_ghosts()/notify_ghosts() calls to a bunch of different
things.
**THIS INCLUDES:**
- Powersink being activated/reaching critical (explosion) heat capacity.
- His Grace being awoken.
- Hot Potatoes being armed.
- Ascension Rituals being completed.
- Eyesnatcher victims.
- Ovens exploding as a result of the Aurora Caelus event.
- Wizard Imposter spawns.
- Rock-Paper-Scissors with death as the result of Helbital consumption.
- BSA impact sites.
- Spontaneous Appendicitis.
- The purchasing of a badass syndie balloon.
- The Supermatter beginning to delaminate.
This was everything that I could think of that would be worth announcing
to deadchat. These were all chosen with consideration to questions like
"how easy would it be to spam deadchat with this?" and "will observers
actually see the interesting thing happen, or just the aftermath?".
Not gonna lie, I've really become an observer main as of recently. Maybe
that's being reflected in my recent PRs. Who's to say? Deadchat
Announcement Variety Pack 2 will probably never come out. Sorry.
## Why It's Good For The Game
Gives deadchat a better indiciation of when/where something **REALLY
FUNNY** is about to happen. Draws attention to certain things that are
likely to gather an audience anyways, but sooner (for your viewing
pleasure). In simple terms, it helps the observers observe things
better.
Some cases, such as the aurora caelus or helbitaljanken, are occurrences
so rare that they deserve the audience.
## Changelog
🆑 Rhials
qol: Observers now recieve an alert when a powersink is activated/about
to explode.
qol: His Grace being awoken now alerts observers, to give you a
headstart on your murderbone ghost ring.
qol: Ascension Rituals being completed will also alert observers, for
basically the same reason.
qol: Arming a hot potato will now alert observers. Catch!
qol: Eyesnatcher victims will now notify observers, and invite them to
laugh at their state of misery and impotence.
qol: Observers will be notified of any acute references to The Simpsons
or other 20th Television America copyright properties.
qol: Wizard Imposter spawns alert observers, much like any other ghost
role event should.
qol: Playing Rock-Paper-Scissors with death will now alert the observers
and invite them to watch. Better not choke!
qol: Observers now get an orbit link for BSA impact sites. Why does it
keep teleporting me to the AI upload??
qol: Spontaneous Appendicitis now alerts deadchat.
qol: The purchasing of a badass syndie balloon now alerts deadchat. You
might not be any more powerful, but at least you have an audience.
qol: When beginning to delaminate, the Supermatter will alert observers
and invite them to watch the fireworks.
/🆑
* Deadchat Announcement Variety Pack 1
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
APC assigns itself the correct name based on its area (#73054)
## About The Pull Request
APC was assigned a name before it was assigned an area causing null
names.
Another bug i noticed was that newly built apcs were also not assigned
names. Thats fixed now too
Fixes#73052
## Changelog
🆑
fix: apc not assigning itself a name based on its area
fix: newly built apc's not getting assigned area names
/🆑
Co-authored-by: SyncIt21 <110812394+SyncIt21@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>
* Adds the Death Sandwich to the game (#75013)
## About The Pull Request
Adds the Death Sandwich to the game, the ultimate form of
bread-conveyed-meat-based consumables.

And remember;
Eat it right, or you die!
## Why It's Good For The Game
I'm genuinely surprised we don't already have a meatball sub in the game
also I love humor food, and I doubt my edition of the Eggcellent
Challenge would ever be merged if I tried to do so, so this is the next
best thing.
## Changelog
🆑 Wallem
add: The ancient recipe for the Death Sandwich has been rediscovered
buried in the deepest depths of an erupting volcano.
/🆑
* Adds the Death Sandwich to the game
---------
Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
* Health Analyzer now lists embeds (#75113)
## About The Pull Request
Health analyzer now shows off any embeds in the limbs, right under their
damage.

## Why It's Good For The Game
Currently the only way to tell there's an embed in a bodypart is by
examining them, and Doctors have their health analyzer to examine FOR
them. Knowing embeds is an important part of treatment, so I think it's
justified to have the analyzer show them this info.
## Changelog
🆑
qol: Health Analyzers now show embeds in bodyparts on examine.
/🆑
* Health Analyzer now lists embeds
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@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>
* You can now close codex cicatrix in your hand. (#74684)
## About The Pull Request
Fixes that you could spam open books.
Changed that toy version of codex cicatrix didn't have a proper
animation.
And you also can close it in your hand now.
Also fixed some minor typos.
## Why It's Good For The Game
Book looks like book now.
## Changelog
🆑
fix: You can't spam open codex cicatrix now.
qol: You can close codex cicatrix in your hand now! Also toy codex
cicatrix has proper animation now.
/🆑
* You can now close codex cicatrix in your hand.
---------
Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
* Converts Spiderlings from Structures to Basic Mobs (#75001)
If I could've made this more atomic, I would have in a heartbeat, trust
me.
## About The Pull Request
Hey there. People were mocking us for having spiderlings still be a
subtype of `/obj/structure`. I decided to take a lot of time to fix
that. A lot of behavior it was implementing was just pseudo-mob stuff,
so it was actually easier than it looked for the raw conversion. A lot
of the footwork on spider stuff in the basic framework was already done
previously by Jacquerel, so that was pretty nice.
However, there are two new things that weren't introduced in the code
that had to be put in.
A) A component to handle growth and differentiation into a mob. This may
have already existed, no clue. If it does (and it's NOT
evolutionary_leap), let me know.
B) AI Behavior to handle seeking out a vent, entering a vent, and then
exiting out of a different vent. I may have gone a bit wacky on the
code, but it certainly works as expected (spiderling goes in one vent,
exits the other). Let me know if you can think of a way it can be better
optimized, but it was deliberately written to be very failsafey in case
shit goes yonkers.
One fundamental difference between structure spiderlings and basic mob
spiderlings (beyond the AI and not just a random prob() check for
movement) is the fact that they had vent movement coded in... but we
_really_ don't need stuff like that for our intents and purposes. If the
range turns out to be too OP in the current framework, we can always
change it up a bit, but also there's a _lot_ of vents we can end up in
the station (my testing had one spiderling end up in the AI sat to get
obliterated).
## Why It's Good For The Game
Spiderlings aren't structures! They behave like a mob should! Players
can possess spiderlings! They work seamlessly with differentiating into
a giant spider! Better AI! More room for people to add into this very
under-utilized buggers!
## Changelog
🆑
refactor: Spiderlings are now basic mobs, report any complete
weirdness/deviation from known behavior. They should be a lot more
intelligent now though.
add: AI Spiderlings are super fragile, but they're also super fast,
especially when they get into a vent. Once they're in circulation, they
could end up everywhere! Maybe in the armory, maybe in a locked closet
in maintenance. Be sure to be vigilant and splat them whenever you can
to save the station from a whole lotta heartache!
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Converts Spiderlings from Structures to Basic Mobs
---------
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* You can now move dirt (#75028)
## About The Pull Request
Changed the recipe for dirt piles from 3 sandstone bricks to 3 sand.
And made the dirt pile drop these 3 sand on deconstruction instead of
just disappearing.

Also fixed hydrotrays resetting their water and nutriments on
construction.
## Why It's Good For The Game
You could accidentally click on the wrong mouse button and loose your
dirt pile instead of uprooting a plant.
And it didn't make sense why you would need to turn sand into bricks
before making a pile out of it.
## Changelog
🆑
qol: Dirt pile is crafted from sand instead of sandstone and drops it on
deconstruction
fix: You can't have free water and nutriments by rebuilding hydrotray
/🆑
* Move dirt
---------
Co-authored-by: Andrew <mt.forspam@gmail.com>
* Craftable material sniffers (#74798)
## About The Pull Request
Are YOU annoyed about never finding the fucking mats you need? Slap some
cable coil on an analyzer and find that untouched sheet of iron and or
glass. It's a pinpointer for basic sheets.
## Why It's Good For The Game
Originally I meant to give this as something borgs might want, but I
realized they really won't have a great time using it and the situation
is more about botanists not being asked, and not knowing how to grow
lots of iron, repeat for all other departments. Awareness problems!!!
But I still like the item as a miscellaneous craftable.
## Changelog
🆑
add: Craftable Material sniffers
/🆑
---------
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Craftable material sniffers
---------
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ 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>
* Tablet UI update (mostly fixes) (#74844)
## About The Pull Request
Tablet UIs are now changed when opening/closing an app, instead of
constantly checking for a UI change every ui update.
Program UI acts no longer call parent, as it was unnecessary, Computers
are the ones that should be calling it.
Fixes a ton of problems with static data not updating, such as in
Messenger, ID management, Siliconnect, and Chat client
Chat Client's Admin mode also works again, which was broken when
accesses to check was turned into a list.
Turns a few lists in Robocontrol into static ones when we aren't
changing anything, and makes it actually scan your ID's access.
Fixes budget ordering being unable to show the cart/call the cargo
shuttle.
## Why It's Good For The Game
While I can't seem to find a single issue report on any of the above,
these are still problems that should be fixed.
## Changelog
🆑
fix: SiliConnect can download borg logs again.
fix: The RD can once again enable Admin mode on Wirecarp
fix: NT IRN can once again see the shopping cart and call the cargo
shuttle.
fix: Chat Client, ID Management and Messenger should now update their
UIs properly.
code: PDAs will hopefully not lag as much when clicking on buttons (such
as in ID management).
/🆑
* Tablet UI update (mostly fixes)
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Candles and flares can now set mobs on fire (#74982)
## About The Pull Request
Exactly what it says. You want to set people on fire using a candle or a
flare now? No problem.
## Why It's Good For The Game
Not sure why you could never do this.
## Changelog
🆑
fix: mobs can now be set on fire using flares and candles if they are
covered in something flammable
/🆑
* Candles and flares can now set mobs on fire
---------
Co-authored-by: Bloop <vinylspiders@gmail.com>
* Fixes an exploit that allows portable chem mixer to dispense chems to a beaker from anywhere. Adds a locked check to storage hotkeys. (#74861)
## About The Pull Request
Ya so I just recently learned about the portable chem mixer and after 10
minutes of playing with it I found a game breaking exploit on accident
and ended up thinking part of it was intentional.
Basically this is how the portable chem mixer currently works, you put
beakers with chems into it and then you change it to dispense mode which
disallows opening the inventory (but doesnt close it) once you change it
to dispense mode the next beaker you put in it becomes linked to it and
it can dispense chems from other beakers into this linked beaker.
The problem was it doesnt close your inventory, which lead me to believe
the beaker is supposed to be in your hand when you dispense chems into
it.
Then someone who I was having ic conflict with stole my beaker and I
noticed that the beaker still shows up in my dispense ui.....
And how excited I was to learn that I indeed could turn them into a
fireball from over a screen away..
https://www.youtube.com/watch?v=ebNJVYgVsKA
(For clarification the reaction I did was failed helgrasp which makes a
(non damaging) fireblast that sets people on fire and knocks them back)
The fix is to make it so the inventory of the portable chem mixer is
automatically closed when its locked so you cant take the beaker out (I
dont think instant summons will work either since that teleports the
container too so no need to check where the linked beaker is constantly)
## Why It's Good For The Game
This is an exploit that I firmly believe has BS murderbone
potential...imagine being able to remotely dump chems into a bluespace
beaker...imagine giving someone a beaker that you have linked.
## Changelog
🆑
fix: You can no longer bypass the laws of bluespace with a portable chem
mixer.
fix: You can no longer bypass container locks with storage hotkeys.
/🆑
* Fixes an exploit that allows portable chem mixer to dispense chems to a beaker from anywhere. Adds a locked check to storage hotkeys.
---------
Co-authored-by: moocowswag <62126254+moocowswag@users.noreply.github.com>
* Health analyzers now warn you if someone can't survive their temperature. (#74936)
## About The Pull Request
Health analyzers are now red/blue if the temperature of the person is
too hot/cold



Also because I just noticed it, I moved the signal for health scan down,
meaning that things that are registered to it now work with inverse
technetium setting it to advanced mode.
I also removed the ishuman check for bleeding because it's a carbon
proc. This has no game-effects as xenos don't have DNA.
## Why It's Good For The Game
We currently expect doctors to see all the important information with
red text to know what needs to be fixed, however this is not the case
for temperature, we are currently expecting them to pay attention to a
body's temperature, and what their species can handle. I think this is
quite lame, and I think it would be better if it worked like everything
else in the analyzer.
## Changelog
🆑
qol: Health analyzers now show body temperature in red/blue if the
temperature of the body can't sustain it's own life.
fix: Inverse technetium now properly gives advanced details in
genetics/radiation analyzing.
/🆑
* Health analyzers now warn you if someone can't survive their temperature.
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* RPD Speeds Tweak (#74619)
Lowercased RPD name and lowered the speeds for building atmos pipes/devices, reprogramming stuff and destroying stuff
atmos 0.5s -> 0.3s
reprogram/destroy 0.5s->0.3s
Why It's Good For The Game
QOL for atmos, makes big atmos/engi projects more viable
Loose pipes/devices don't even have gas in them no point in taking a lot of time to destroy them, they don't cost any materials to make either so nothing is wasted
This especially helps with fixing huge explosions since that leads to 50 pipe fittings being spammed everywhere and takes ages to clean up
Changelog
cl
qol: Lowered the atmos build, reprogram, and destroy delays on the RPD
/cl
* RPD Speeds Tweak
---------
Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com>
* Fixes redundant code & runtime in RPD (#74949)
## About The Pull Request
1. `pre_attack()` was defined twice, removed one
2. `attackby()` does the exact same thing as `pre_attack()` for
installing upgrades so removed that
3. Fixes runtime

When you attempt to unwrench a pipe via the RPD but you interrupt the
`do_after()` proc by moving. it doesn't need to crash but simply return
if unwrenching was unsuccessful see
`/obj/machinery/atmospherics/wrench_act()`
## Changelog
🆑
refactor: removed duplicate `pre_attack()` & redundant `attackby()`
procs which did the same thing
fix: unnecessary crash when unwrenching pipes/devices with the RPD
/🆑
* Fixes redundant code & runtime in RPD
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* Restores ability for borgs to adjust reflector angles (#74913)
## About The Pull Request
Adds an override for `attack_robot()` on reflectors, which is called
when a borg clicks on an object with no tool selected. Only allows
rotating if the borg is adjacent to the reflector.
## Why It's Good For The Game
This was an undocumented change of #74800, and I assume unintended. In
any case, the inability to adjust reflectors somewhat restricts engineer
borgs' ability to engineer.
## Changelog
🆑
fix: Restores ability for borgs to adjust reflector angles. This is now
a left-click with nothing selected, similar to humans' left-click with
an empty hand.
/🆑
* Restores ability for borgs to adjust reflector angles
---------
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
* Makes burning items actually hot (#74874)
## About The Pull Request
Simply put, unless overriden, items with the ON_FIRE flag will always be
at least 150º C (491,15 kelvin).
I didn't want to pack this change with
https://github.com/tgstation/tgstation/pull/74803 because I feel this
might have some weird unintended consequences, maybe.
## Why It's Good For The Game
Emergent gameplay like lighting a cigarette with a burning piece of
paper, I guess.
## Changelog
🆑
add: Burning items are now actually considered to be at a minimum, 150
degrees celsius by the game.
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Makes burning items actually hot
---------
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Audio File Cleanup (#74863)
## About The Pull Request
Removes a bunch of sound files that we don't use and moves some sound
files into better locations. I'm hoping to get an archive repo for
sounds going, much like the
[map_depot](https://github.com/tgstation/map_depot) and
[SS13-sprites](https://github.com/tgstation/SS13-sprites).
EDIT: The old sound files are being moved here:
https://github.com/tgstation/SS13-sounds
Also increased the volume of the clownana rustle sound and clipped off
some dead air from shockwave_explosion
## Why It's Good For The Game
Removes a total of 1.95MB worth of unused sound files from the codebase.
## Changelog
🆑 Tattle
soundadd: increased the volume of the clownana rustle
/🆑
---------
Co-authored-by: tattle <article.disaster@ gmail.com>
* Audio File Cleanup
* Fixes the missing sound files ;)
---------
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@ gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Cleans up thermite component code (#74825)
## About The Pull Request
Nothing too interesting to be quite honest, just cleans up the thermite
component code a bit because it was a bit weird.
## Why It's Good For The Game
This probably fixes a few rare bugs where the thermite overlay
disappears due to an update_icon call. Slightly neater code.
Also, adds an examine message to thermite walls because small QoL stuff
is neat.
## Changelog
🆑
qol: Thermited walls now get an examine message telling you they are, in
fact, thermited.
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Cleans up thermite component code
---------
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
* Stops the base random poster spawner from spawning traitor posters (#74868)
## About The Pull Request
When the syndicate posters were added, they were intended to be a
traitor objective. To quote from the original PR:
>"If you start seeing red posters then you know there are traitors
somewhere."
As an unintended consequence of how poster randomization works however
they are able to spawn from the base random poster mapping object,
defeating the purpose. They should only be able to be placed by actual
player traitors (or a deliberate mapping decision).
This PR just removes them from the pool of posters to select from when
using `/obj/structure/sign/poster/random`. You can still use
`/obj/structure/sign/poster/traitor/random` to spawn random traitor
posters both when mapping or ingame via commands.
This will close https://github.com/Skyrat-SS13/Skyrat-tg/issues/17956.
## Why It's Good For The Game
More control over mapping poster placement.
## Changelog
🆑
fix: traitor objective posters will no longer be able to spawn from
general random poster spawners.
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Stops the base random poster spawner from spawning traitor posters
---------
Co-authored-by: Bloop <vinylspiders@gmail.com>
Co-authored-by: san7890 <the@ san7890.com>
* Refactors sheet crafting to better support directional construction (#74572)
## About The Pull Request
0426f7ddba/code/game/objects/items/stacks/stack.dm (L449)
Ok, but can we not?
This PR refactors sheet crafting to generalize all the cases that were
previously locked behind grille/window type checks and such. In their
stead there are bitflags that can be set to achieve certain behaviors.
All the behavior from before should be preserved, but now it can be
extended to other items. E.g. if you want a railing that can be crafted
underneath directional windows, or an item that behaves like a grille
does--it's just a matter of setting the right obj_flags for it now.
This makes it very simple and painless to add new recipes that use
directional crafting! It's all modular now.
<details><summary>Details</summary>
---
### What I've done:
-Eliminated all the type checks, instead it will now be handled by
object flags and recipe vars, making for a much more configurable
system.
-Added two new obj_flags: `BLOCKS_CONSTRUCTION_DIR` and
`IGNORE_DENSITY`.
-Additionally, I renamed the existing flag `NO_BUILD` to
`BLOCKS_CONSTRUCTION`.
-Changes the proc `valid_window_location` to `valid_build_direction`,
and makes it work for things other than windows.
-Removed a deprecated `window_checks` var from the stack_recipe datum.
-Added three more vars to the stack_recipe datum: `check_direction` and
`check_density`, `is_fulltile`
-Decoupled `on_solid_ground` from the object density check. Now you can
set those separately, allowing you to make recipes that forbid/allow
building things over other things while in space.
---
### What the new flags do:
`BLOCKS_CONSTRUCTION` works as before---prevents objects from being
built on the object. I felt that the previous name was not descriptive
enough, you should know exactly what it does just from looking at the
name.
_example: dna scanner_
`BLOCKS_CONSTRUCTION_DIR` -- setting this on an object will prevent
objects from being built on it when their directions are the same.
_example: directional windows, windoors, railings_
`IGNORE_DENSITY` -- setting this on an object will cause its density to
be ignored when performing the construction density check. This could
have other potential uses as well in the future.
_example: grilles, directional windows, tables_
These three flags cover all the bases for the types of items that are
currently craftable, so there is no more need for any type checking or
weird snowflake window checks. Simply set the appropriate flag and it'll
work as you would expect.
---
### What the recipe vars do:
`check_direction` tells the recipe to check if there's something in that
direction with the `BLOCKS_CONSTRUCTION_DIR` flag set.
`check_density` tells the recipe to run the density check when set. This
is true by default. There are very few items in the game that currently
have this set to false--namely grilles. Setting this to false will make
it so that the object can be constructed regardless of what is in that
tile (unless `one_per_turf` is also set, which will make it so that you
can't craft the same thing twice in the same turf).
`is_fulltile` is used for fulltile windows, but it doesn't necessarily
have to be--you can give this to any recipe and it will adopt the same
properties as that of the fulltile window. Basically they have a special
case where they shouldn't be able to be built over directional
constructions, where normally things would be able to be. Setting this
makes check_direction true as well.
---
### In summary:
Sheet crafting still works just as it did before. But the backend of it
has gotten a glow up and will be able to more easily support new
behaviors.
</details>
## Why It's Good For The Game
This makes the crafting system much more flexible to add recipes to, and
will prevent bad code practices of stacking more conditionals down the
line whenever someone wants to add an item that behaves like grilles or
directional windows in how they are constructed.
It had to be done. Those window checks were a mess.
## Changelog
🆑
qol: added fifty stack versions of remaining glass sheet stacks for ease
of debugging
refactor: refactored sheet crafting to better support directional
constructions that aren't windows
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Refactors sheet crafting to better support directional construction
* fex
* https://github.com/Skyrat-SS13/Skyrat-tg/pull/20636
---------
Co-authored-by: Bloop <vinylspiders@gmail.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Adds a Material Stack manipulation apparatus for Engineer Cyborgs, replaces the R-Glass tool (#74297)
## About The Pull Request
- Adds a new apparatus for Engineer Cyborgs that can pick up and
manipulate material sheet stacks. Once holding a stack, interactions are
passed to the stack.
- Sheets in the new apparatus will always show as single sheets while
held, regardless of the actual count.
- Removes the R-Glass tool from Engineer Cyborgs.
- Sabotage borgs have the same changes
## Why It's Good For The Game
Allows Engiborgs to repair or build with various materials, without
(further) destroying the concept of material economy.
The R-Glass tool, in my experience, is generally unused, as the RCD can
create R-Windows and that's the main use for the sheets. So the tool has
been removed to keep the Engineer Borg Toolkit from exploding. The new
tool can also pick up R-Glass, if a need for it arises.
## Changelog
🆑
balance: Engineer Borgs now have a tool to manipulate material stacks
(and also tile stacks). This replaces the R-Glass tool.
/🆑
Pictured: Apparatus carrying titanium.

* Adds a Material Stack manipulation apparatus for Engineer Cyborgs, replaces the R-Glass tool
* fex
---------
Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Implanted foreign bodyparts will resist being removed on species change (#74701)
## About The Pull Request
Title.
Also, to make bodypart code slightly nicer, I retooled some variables to
be part of a new bitfield called bodypart_flags.
## Why It's Good For The Game
We've been trying to move away from the species datum for limb stuff
precisely because of funny shenanigans like this, no?
## Changelog
🆑
refactor: Implanted foreign limbs will no longer be wiped by species
change.
/🆑
* Implanted foreign bodyparts will resist being removed on species change
* fex
---------
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Makes a whole bunch of wooden objects flammable (#74827)
## About The Pull Request
This whole PR started because I realized that baseball bats are not
actually flammable which I found weird, then I looked at a whole bunch
of other stuff that really should be flammable but also isn't.
## Why It's Good For The Game
Makes wooden objects behave slightly more consistently? Honestly, most
of these seem like oversights to me.
## Changelog
🆑
balance: The following structures are now flammable: Picture frame,
fermenting barrel, drying rack, sandals, painting frames, paintings,
spirit board, notice board, dresser, displaycase chassis, wooden
barricade
balance: The following items are now flammable: Baseball bat, rolling
pin, mortar, coffee condiments display, sandals, wooden hatchet, gohei,
popsicle stick, rifle stock
/🆑
* Makes a whole bunch of wooden objects flammable
---------
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
* fixes all the issues with gondola mutants + small rat spell check (#74837)
## About The Pull Request
list of fixes:
- dna infusers got a random check for the dna infuser to be open when
adding what you're infusing from. i made it intentional that they don't
require this for the infusion items, and it just seems to confuse people
so i'm reverting
- gondola martial art works again, the martial arts help proc literally
never worked GUHHHH
- gondola now correctly can't pick up items they're not able to hold
- adds a missing period to a rat organ examine
- small code cleanup in the species grab proc
## Why It's Good For The Game
feeexes
## Changelog
🆑
qol: made dna infusers less confusing to use by removing the "must be
opened" check
fix: fixed up gondola mutants and how to obtain them
/🆑
* fixes all the issues with gondola mutants + small rat spell check
---------
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Fix med analyzer sometimes cutting off the top of the health report (#74833)
This text should be concatenated to the health report, not replace it
## About The Pull Request
Fixes a simple bug/oversight in the health analyzer code
## Why It's Good For The Game
It makes a thing work properly.
## Changelog
:cl:iain0
fix: Fixes an error in health analyzers which would cut off the top of
the health scan if the player was deaf.
/🆑
* Fix med analyzer sometimes cutting off the top of the health report
---------
Co-authored-by: Iain Price <github@predestined.net>
* Rolling table gets rolling sound (#74805)
## About The Pull Request
I realized while working on another project, that the rolling table does
not play the rolling sound when it's moved. Absolutely criminal. I took
it upon myself to right this wrong. And not just because it will go
great with said project I'm working on. I swear.
## Why It's Good For The Game
Makes the visuals of the table moving work with the audio of the table
moving, instead of wondering due to the rarity of the rolling table
'Huh, is the table bugged?' if they haven't noticed the table name.
## Changelog
🆑
fix: The rolling table actually plays the rolling sound, as the lord
intended.
/🆑
* Rolling table gets rolling sound
---------
Co-authored-by: Dawnseer <126404225+Dawnseer@users.noreply.github.com>