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
/🆑
Ladies, Gentlemen, Gamers. You're probably wondering why I've called you
all here (through the automatic reviewer request system). So, mineral
balance! Mineral balance is less a balance and more of a nervous white
dude juggling spinning plates on a high-wire on his first day. The fact
it hasn't failed after going on this long is a miracle in and of itself.
This PR does not change mineral balance. What this does is moves over
every individual cost, both in crafting recipes attached to an object
over to a define based system. We have 3 defines:
`sheet_material_amount=2000` . Stock standard mineral sheet. This being
our central mineral unit, this is used for all costs 2000+.
`half_sheet_material_amount=1000` . Same as above, but using iron rods
as our inbetween for costs of 1000-1999.
`small_material_amount=100` . This hits 1-999. This covers... a
startlingly large amount of the codebase. It's feast or famine out here
in terms of mineral costs as a result, items are either sheets upon
sheets, or some fraction of small mats.
Shout out to riot darts for being the worst material cost in the game. I
will not elaborate.
Regardless, this has no functional change, but it sets the groundwork
for making future changes to material costs much, MUCH easier, and moves
over to a single, standardized set of units to help enforce coding
standards on new items, and will bring up lots of uncomfortable balance
questions down the line.
For now though, this serves as some rough boundaries on how items costs
are related, and will make adjusting these values easier going forward.
Except for foam darts.
I did round up foam darts.
Adjusting mineral balance on the macro scale will be as simple as
changing the aforementioned mineral defines, where the alternative is a
rats nest of magic number defines. ~~No seriously, 11.25 iron for a foam
dart are you kidding me what is the POINT WHY NOT JUST MAKE IT 11~~
Items individual numbers have not been adjusted yet, but we can
standardize how the conversation can be held and actually GET SOMEWHERE
on material balance as opposed to throwing our hands up or ignoring it
for another 10 years.
## 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>
## About The Pull Request
- Adjusts the signal distance thresholds and moves them to the tram
defines file
- Makes a subtype of the signal for Tramstation specific variables
- Updates documentation to dmDocs
- Fixes#73367 (tram was compounding base damage and wound damage,
changes to a flat 15% death chance, lowers base damage in favor of
causing wounds)
- Adds logging for when people get hit by the tram
## Why It's Good For The Game
Cleanup, documentation, tram isn't killing everyone.
## Changelog
🆑 LT3
fix: Tram damage calculation takes into account compound wounds
code: Tram crossing signals are now map specific
admin: Combat log now generated when the tram collides with someone
/🆑
## About The Pull Request
This PR adds contextual screen tips to signs and plaques based on the
held tool. Wrenches unfasten, and welders repair. Behaves the same with
plaques, but plaques also get a screentip for using a fountain pen on
them if they can be engraved. Also adds a tip to editable-item signs
with a pen out.
Tested to avoid issues with posters from cropping up, and it appears to
still behave correctly with paper posters, which are apparently a type
of sign. Go figure.

I've also reorganized the sign and plaque files to follow our more
standard object hierarchy of base type -> inherited procs -> subtype
specific procs, where these were interspersed throughout the file. I did
however leave the armor datums below the object, as they appear to
follow new convention.
## Why It's Good For The Game
Screentips avoid ambiguity and improve readability of construction. Easy
improvement.
Plus, improves consistency of the signs file layout-wise.
## Changelog
🆑
qol: Adds screentips to both signs and plaque construction/modification.
/🆑
## About The Pull Request
- After one too many tram malfunctions, Nanotrasen's insurance provider
finally sprung the cash for a new tram. Made with the latest in
lightweight materials, there's more capacity than ever before to shuttle
your crew around the station.
https://user-images.githubusercontent.com/83487515/215639768-3f7fcb84-cfd2-4efe-b578-998197651f13.mp4
- Consolidates all the tram turfs, objs, and structures into respective
.dm files because they were haphazardly spread everywhere.
- Fixes tram doors playing open/close animations when they're already in
the correct state, corrects timing for when they change density.
- Tram now correctly has an operating status and will stop functioning
when power is lost.
- Call buttons no longer dispatch a tram that doesn't have power.
- Fix for emergency exit when tram has no power.
- Running at closing tram doors is a gamble, you may be crushed
- Fixes https://github.com/tgstation/tgstation/issues/73125
## Why It's Good For The Game
Looks nice, more space, tram doors demand a pound of flesh.
## Changelog
🆑 LT3
imageadd: Nanotrasen's insurance provider finally sprung the cash for a
new tram. Made with the latest in lightweight and mostly* non-flammable
materials, travel in comfort and style!
code: All tram components are now organised based on type
code: Tram is now aware if it has power or not
del: Removed movement slowdown running on tram plates
fix: Tram call buttons will not work calling an unpowered tram
fix: Tram doors will no longer cycle open/closed when they're already in
the correct position
fix: Fixed an edge case where running onto the tram you bounce off the
open door as if it was closed
fix: Unpowered tram doors can only be forced into the open position
fix: Westbound travel shows the correct controls animation
add: Tram doors take a chunk of flesh if you run at them last minute
qol: Reduced duration of amber stage on tram crossing signals
/🆑
## About The Pull Request
- Fixes https://github.com/tgstation/tgstation/issues/72894
- Fixes layering for wiring and disposal pipes on lattice-based catwalk.
(Goes on top.) Wiring and pipes on floor-based catwalk. (Goes
underneath.)
- Glass floor shifted to show wires/pipe underneath it.
- Moves tram plaque to the game plane, layered underneath tossed
objects.
## Why It's Good For The Game
Wiring the solars looks weird with the wrong layering.
## Changelog
🆑 LT3
fix: Wires and pipes again rest on top of lattice catwalk
/🆑
## About The Pull Request
- I screwed up and called 'Bench Solo' 'Bench Right' in the JSON file.
'tram subfloor' should just be 'tram' since it pulls the name from the
lower left tile of the tram.
- Tram plaque no longer covers objects on that tile.
## About The Pull Request
Continuation of https://github.com/tgstation/tgstation/pull/72047 this
part was left out until it could be done using directional map helpers.
- Side mounts the tram controls freeing up the middle space for
shenanigans or whatever, and you can hit the controls faster from either
side of the tram.
- Emergency exit feature, doors can be forced open when the tram has
lost power.
- Accessible spots for wheelchairs (Ian's injured, you know!)

## Why It's Good For The Game
- Looks like a tram direction sign instead of an awkward center placed
computer. Build an ice cream or illicit drugs shop or something in the
middle. Frees up space.
- You don't get stuck on an unpowered tram if you don't have a crowbar.
## Changelog
🆑 LT3
imageadd: Tram controls are now side mounted, freeing up space. Even
better, you now have two of them!
imageadd: Added a new accessible space on the tram for wheelchairs
fix: Removed duplicate tram plate/platforms
code: Tram has its own floor subtype for the walls and windows
add: Emergency exit feature added for people who are silly enough to not
carry a crowbar
/🆑
Moves singulo and supermatter dmis into obj/engine, renamed from obj/tesla_engine
Moves Halloween, Christmas, and misc holiday items to obj/holiday
Moves lollipops to obj/food
Moves crates, closets, and storage to obj/storage
Moves assemblies to obj/assemblies
Renames decals.dmi to signs.dmi ...because they're signs and not decals
Moves statues, cutouts, instruments, art supplies, and crayons to obj/art
Moves balloons, plushes, toys, cards, dice, the hourglass, and TCG to obj/toys
Moves guns, swords, shields to obj/weapons
Redoes the Icebox upload slightly. Adds murals to the upload and RD's office. Also compresses the tile decals on the bridge.
Murals are fun ways to implement art into spaces, whether they commune something or are just there to look nice. It's weird we don't have any in-game already.
About The Pull Request
Converts more inputs to TGUI. Possibly all user-facing input lists in the game.
Did any surrounding text/number inputs as well
Added null choice support so users can press cancel.
Added some misc TGUI input fixes
Fixed custom vendors while I was there
I refactored a lot of code while just poking around.
Primarily, usage of .len in files where I was already working on lists.
Some code was just awful - look at guardian.dm and its non use of early returns
If there are any disputes, I can revert it just fine, those changes are not integral to the PR.
Why It's Good For The Game
Fixes#63629Fixes#63307
Fixes custom vendors /again/
Text input is more performant.
Part of a long series of TGUI conversion to make the game more visually appealing
Changelog
cl
refactor: The majority of user facing input lists have been converted to TGUI.
refactor: Tgui text inputs now scale with entered input.
fix: Many inputs now properly accept cancelling out of the menu.
fix: Fixes an edge case where users could not press enter on number inputs.
fix: Custom vendor bluescreen.
fix: You can now press ENTER on text inputs without an entry to cancel.
/cl
Implements the Modernizing radiation design document ( https://hackmd.io/@tgstation/rJNIyeBHt ) and replaces the current radiation sources with the new system, as well as replacing/removing a bunch of old consumers of radiation that either had no reason to exist, or could be replaced by something else.
Diverges from the doc in that items radiation don't go up like explained. I was going to, but items get irradiated so easily that it just feels pretty lame. Items still get irradiated, but it's mostly just so that radiation sources look cooler (wow, lots of stuff around going green), and for things like the geiger counter.
Instead of the complicated radiation_wave system, radiation now just checks everything between the radiation source and the potential target, losing power along the way based on the radiation insulation of whats in between. If this reaches too low a point (specified by radiation_pulse consumers), then the radiation will not pass. Otherwise, will roll a chance to irradiate. Uranium structures allow a delay before irradiating, so stay away!
Converts most spans into span procs. Mostly used regex for this and sorted out any compile time errors afterwards so there could be some bugs.
Was initially going to do defines, but ninja said to make it into a proc, and if there's any overhead, they can easily be changed to defines.
Makes it easier to control the formatting and prevents typos when creating spans as it'll runtime if you misspell instead of silently failing.
Reduces the code you need to write when writing spans, as you don't need to close the span as that's automatically handled by the proc.
(Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
Having things updating integrity directly is just going to cause more problems down the line as more elements and components depend on being notified of integrity changes. It's an easy mistake to make so making it private should deal with the problem.
get_integrity() might be useful in the future but is mainly a side effect of making obj_integrity private as that also disallows reads.
Adds commission plaques- these commemorate the day a station was added to the game (adjusted for SS13 time) and the day it was removed (in the case of removed stations). If I got any of the dates wrong, please feel free to tell me.
They're added to every in rotation station, as well as the Derelict and Runtime Station.
Many thanks to Fikou for providing the git hashes for each commit to add/remove a station:
It's a neat nod to the maps' OOC history, as well as simply being some nice flavour.
Converts many proc overrides to properly use list/modifiers, fixes some spots where modifiers should have been passed, calls modifiers what it is, a lazy list, and cleans up some improper arg names like L, M, C, and N. Oh and I think there was a spot where someone was trying to pass M.name in as a string, but forgot to wrap it in []. I fixed that too.
About The Pull Request
This PR removes intents and replaces them with a combat mode. An explanation of what this means can be found below
Major changes:
Disarm and Grab intents have been removed.
Harm/Help is now combat mode, toggled by F or 4 by default
The context/verb/popup menu now only works when you do shift+right-click
Right click is now disarm, both in and out of combat mode.
Grabbing is now on ctrl-click.
If you're in combat mode, and are currently grabbing/pulling someone, and ctrl-click somewhere else, it will not release the grab (To prevent misclicks)
Minor interaction changes:
Right click to dissasemble tables, racks, filing cabinets (When holding the right tool to do so)
Left click to stunbaton, right click to harmbaton
Right click to tip cows
Right click to malpractice surgery
Right click to hold people at gunpoint (if youre holding a gun)
Why It's Good For The Game
Intents heavily cripple both the code and the UI design of interactions. While I understand that a lot of people will dislike this PR as they are used to intents, they are one of our weakest links in terms of explaining to players how to do specific things, and require a lot more keypresses to do compared to this.
As an example, martial arts can now be done without having to juggle 1 2 3 and 4 to switch intents quickly.
As some of you who saw the first combat mode PR, the context menu used to be disabled in combat mode. In this version it is instead on shift-right click ensuring that you can always use it in the same way.
In this version, combat mode also no longer prevents you from attacking with items when you would so before, as this was something that was commonly complained about.
The full intention of this shift in control scheme is that right click will become "secondary interaction" for items, which prevents some of the awkward juggling we have now with item modes etcetera.
Changelog
cl Qustinnus
add: Intents have been replaced with a combat mode. For more info find the PR here: #56601
/cl
* Renames a few variables. Also reorders fallback order again.
Renames item_state to inhand_icon_state
Renames mob_overlay_icon to worn_icon
Renames mob_overlay_state to worn_icon_state
worn_icon_state/mob_overlay_state now never gets used for inhands.
* Fixes some comments
* Fixes map issue
* Restart lints
* Properly resolves conflicts
* inhand icons
* Adding to the object, forgot to name one icon.
* Fixing some stuff, and creating inhand icons.
* Fixes a thing I broke.
* Fixes things (including ALL posters) that shouldn't be wrenchable being wrenchable. Plaques now transfer icon_state always.
* Picture frames, painting frames, and the monkey portrait are now wooden.
* Fountain pens can now be uncommonly found in maint.
* Uneditable sign types should not become editable when unwrenched.
* Move redefined var above newly defined var.
* Oh God I hope this works...
* It didn't work.
* Making things better.
* Making things even better.
* That made things worse.
* Sorting works! \o/
* Tidying some thing ups.
* Adding a custom plaque to the game.
* Some plaque tweaks.
* Makes plaques more durable than signs.
* Adds the stack crafting.
* Plaques take a little time to engrave, signs can't be changed instantly anymore.
* Comments, and renamed the global list to avoid confusion.
* Appends "sign" to every name, makes department signs not all caps, fixes some names and descriptions.
* Touching up plaque customization and display, removing one last all caps.
* Plaques can now be engraved in hand too.
* Newline.
* Update code/game/objects/structures/customplaque.dm
Co-Authored-By: Rohesie <rohesie@gmail.com>
* Update code/game/objects/structures/customplaque.dm
Co-Authored-By: Rohesie <rohesie@gmail.com>
* Mirroring some fixes from customplaque.dm
* A bunch of stuff.
* Unwrenched signs now lay horizontal.
* A lot more stuff, turned a negative variable into a positive.
* Fix chat inconsistency, remove deprecated and unused variable.
* Apparently buildable_sign is used elsewhere, whoops.
* Adding documentation to this, fixing a bool being 0 in another file.
* Don't know why this was here, sign dir is 100% irrelevant.
* Fixes some sound malarkey.
* Changes delays to be readable, removes unneeded return.
* Fixes these two early returns, it needed return TRUE at the end to work.
* Trying to fix a revert I messed up...
* Moving plaques to a directory, moving old sign plaque types into it. Map changes.
* Rename since I relocated this object entirely.
* Signs (and plaques) now properly place, and aren't visible through walls.
* Comment to help people in the future.
* Signs and plaques can be placed diagonally now.
* Removes duplicated code line.
* Blank signs now commonly spawn in maint, blank plaques uncommonly.
* Repairing signs & plaques with a welder is now good to go.
* Moves the GLOB, makes it start as an empty list.
* Update code/game/objects/structures/plaques/_plaques.dm
Co-Authored-By: Rohesie <rohesie@gmail.com>
* Gets rid of some oldcode.
* Apply suggestions from code review
Co-Authored-By: tralezab <40974010+tralezab@users.noreply.github.com>
* Simplifying dir switch to two if elses.
* Plaques take one sheet of gold to graft instead of five.
* Just making this wording in crafting a little clearer.
* They can be removed with wrenches, so I don't think this is proper.
* Makes variables descriptive.
* More descriptive variables, a little dmdoc, move things around to be next to like things.
* Remove a redundant definition.
* Apply suggestions from code review
Co-Authored-By: Rohesie <rohesie@gmail.com>
* Fixes mapping path, rename sign_backing to just sign.
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>