* Makes update_icon_updates_onmob more robust (#75324)
Safeguards against #74965 happening in the future.
Noticed a bunch of these were using ITEM_SLOT_HANDS. This is incorrect,
as the element already automatically updates held items. grep'd it to
catch future instances.
Likewise, a number of objects weren't passing slot_flags to the element,
meaning it wasn't actually updating those things properly when they were
being worn. I've simplified this so now the element will automatically
update all slot_flags, and passing an additional slot to the element
when being added is only needed for additional slots that might need to
be updated. This also means if slot_flags change, the element will now
update correctly as well.
🆑 ShizCalev
code: The update_icon_updates_onmob element will now automatically
update all slots in an item's slot_flags var. This does fix multiple
things that weren't updating properly. Passing a slot to the element is
now only necessary if you want to add additional slots to be updated.
/🆑
* Makes update_icon_updates_onmob more robust
---------
Co-authored-by: ShizCalev <ShizCalev@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>
* New inhand icons for light tubes, makes latex balloons craftable, and various other fixes/improvements
* resolve conflict
* Update VoidRaptor.dmm
---------
Co-authored-by: Bloop <vinylspiders@gmail.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
* lights
* colors go insane if you go over 255
* warmer, less pink
* move file, lower power/delay
* low power lighting
* emergency brightness
* metastation/void raptor
* Lightbulb removal code adjustments and message change (#74166)
## About The Pull Request
This makes two changes to the lightbulb removal process code that I
found while looking at a different issue:
'user' is passed as a carbon, which is then typecasted to 'electrician'
as a carbon (again). electrician/user were used interchangeably, and
were functionally identical, meaning the electrician var was
unnecessary. Now, 'electrician' has been removed and replaced with user.
The 'protection_amount' var is now 'protected' and uses TRUE/FALSE,
since it was only ever a value of 0 or 1 anyways. The order in which it
is determined has been shifted slightly.
This also changes the message you get partway through ripping out a
lightbulb with the lightbulb remover skillchip:
`to_chat(user, span_notice("You feel like you're burning, but you can
push through."))`
`to_chat(user, span_notice("You feel your [the limb being burned]
burning, and the light beginning to budge."))`
## Why It's Good For The Game
Makes the code a bit easier to read.
The "you feel like you're burning" message has ever so slightly bothered
me for too long. I feel like I'm burning? It's a fucking light tube
dude, I'm fine.
## Changelog
🆑
code: Lightbulb removal code is a little bit easier to read
spellcheck: The lightbulb remover skillchip implant (which I know you
guys LOVE to use) has a slightly different message now.
/🆑
* Lightbulb removal code adjustments and message change
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Light Replacer cleanup and afterattack improvement (#72566)
## About The Pull Request
Makes a few code improvements to the light replacer.
* increment, decrement, and bulb shards were three values unnecessarily
stored as vars on the light replacer. They are now defines, as they were
static values either way.
* Autodocs variables on the light replacer.
* Everything uses snake case, and the single-character vars have all
been smote from existence.
* Changes some 0/1 use to FALSE/TRUE
In addition to this cleanup, the afterattack chain has been cleaned up a
lot. It now allows you to click on either the light, OR the turf under
it to replace a light. As a bonus, you now get some balloon alerts when
trying to replace lights while empty.
## Why It's Good For The Game
Closes#72557.
Cleans up the code I had to shuffle through to do so.
## Changelog
🆑 Rhials
qol: the light replacer now allows you to click on either the light, or
the floor beneath it, to refill lights.
code: light replacer code is now a bit prettier.
/🆑
* Light Replacer cleanup and afterattack improvement
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Adds missing descriptions again (#72013)
Adds descriptions to some base types (such as walls, floors,
machines frames and computer frames) to make the world feel
more alive.
Authored-by: etherware-novice <candy@ notarealaddr.com>
Co-authored-by: OrionTheFox <76465278+OrionTheFox@ users.noreply.github.com>
* Adds missing descriptions again
Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com>
Co-authored-by: OrionTheFox <76465278+OrionTheFox@ users.noreply.github.com>
* Grey Tide event light behavior changes and code tidiness (#71230)
## About The Pull Request
Makes a number of changes to the Grey Tide event, some of which are and
some of which aren't player facing.
Player facing bits:
- The lights will once again turn off when the event ends and the doors
begin opening. Originally, the lights would all shatter when the event
hit, providing a cover of darkness for opportunists to sneak around
under. Unfortunately this would prevent the AI from fixing the doors
until the lights were replaced, leading to headaches and the removal of
this functionality in #43159. Now, the lights are simply turned off at
the APC instead of shattered.
- The lights now flicker at certain intervals as the event is running,
rather than just right at the start.
- Announcement has been slightly modified to indicate that the event
hits more than just airlocks.
- Event runs way faster. Doors open all at once, rather than
one-at-a-time.
And now for the non player-facing bits:
- The filename is now grey_tide.dm instead of prison_break.dm. The event
was effectively re-branded to the Grey Tide event six years ago, but the
filename was unchaged.
- potential_areas is now a part of setup instead of a var on the
round_event.
- Cleans up instances of single-character varnames and stuff not in
snake case.
- The event now checks if it has any valid areas (will it work or not)
at the start, rather than at the end.
- The event now sends a global signal when run, rather than checking
everything in the entire world. It should run faster now.
- Everything that can be affected by the grey tide event now stores its
functionality on a signal handler, including the light flickers
## Why It's Good For The Game
Makes the grey tide event a bit more interesting and easier to take
advantage of. Cleans up the backend code a bit.
## Changelog
🆑 Rhials
balance: The lights will now flicker more frequently before a Grey Tide
event
balance: The lights will now be shut off via the APC when the Grey Tide
event opens up a department.
code: Makes some miscellaneous code improvements to the Grey Tide event
code: Grey tide event runs much faster
code: Renames prison_break.dm to grey_tide.dm
/🆑
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Grey Tide event light behavior changes and code tidiness
Co-authored-by: Rhials <Datguy33456@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Save 0.28s of init time by removing an unnecessary timer in light/LateInitialize (#71059)
Replaces a timer with just calling the proc directly. This saves 0.28s
of making timer events.
This timer exists as an artifact of being a `spawn (1)` since r4407.
Local testing suggests it is completely unnecessary (lights work, lights
break, new lights show)
* Save 0.28s of init time by removing an unnecessary timer in light/LateInitialize
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Rigged to Blow: Lightbulb Rigging/Reagent Handling Overhaul (#69833)
About The Pull Request
First and foremost, guts out the previous, arguably cursed "rigged" functionality from light tubes. Light tubes now have a capacity of 20 reagents. Light tubes will now splash their contents upon shattering, instead of just releasing plasma gas into the air (if rigged). Lightbulbs with reagents inside of them will now transfer with them to the light fixture they're inserted into, which will slowly heat the contents to a maximum of 1000 degrees.
Heating the plasma reagent manually leads to it harmlessly boiling out of the container and dissipating, effectively ruining the original functionality. To account for plasma boiling over (when it should be bursting into flames) a SEALED_CONTAINER reagent container flag has been added. This is mostly just to prevent the plasma from leaving the container until it is ignition-ready. As a result, light tubes rigged the old way no longer harmlessly explode, and instead produce a small, (mostly) self-contained fire in the area surrounding the light.
Light tubes (and light fixtures with reagents in their lightbulb) now show their reagent contents upon examine. It's only fair to reward attentive people with a chance to avoid impending disaster, but on the other hand lightbulbs are transparent and you should just be able to look through them anyways.
As a bonus, all of this SHOULD be handled in a way that doesn't put any unnecessary strain on machine processing or anything. Rejoice.
Why It's Good For The Game
Lightbulbs being reagent holders was a huge missed opportunity, with their only use being for the disappointingly ineffective plasma-rigging functionality. This expands on the idea, and reworks the original functionality to be much more interactive. Bigger sandbox! Deeper sandbox!
Changelog
cl
add: Rigging light fixtures now works with more reagents than just plasma. Light fixtures will heat the reagents of their inserted lightbulb, up to a maximum of 1000 degrees. Lightbulb tubes now hold 20 reagents to make this more usable.
add: Lightbulbs will now splash their contents on whatever they're shattered by. Their contents are also now visible upon examination.
* Rigged to Blow: Lightbulb Rigging/Reagent Handling Overhaul
* fix modular
Co-authored-by: Rhials <Datguy33456@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Tweaks brightness for red, blacklight presets. Adds dim red light preset (#68576)
Tweaked blacklight,red - Added dim red
* Tweaks brightness for red, blacklight presets. Adds dim red light preset
Co-authored-by: Mickyan <38563876+Mickyan@users.noreply.github.com>
* This tail refactor turned into an organ refactor. Funny how that works.
* Firstly, fixing all the conflicts.
* Fixes all our maps (hopefully)
* Actually, this should fix pod people hair :)
* Almost everything is working, just two major things to fix
* Fixed a certain kind of external organ
* Cleaning up some more stuff
* Turned tail_cat into tail because why the fuck are they separate?
* Moved all the tails into tails.dmi because that was just dumb to have like 3 in a different file
* Adds relevant_layers to organs to help with rendering
* Makes stored_feature_id also check mutant_bodyparts
* Fixes the icon_state names of ALL the tails (pain)
* Fixes wagging, gotta refactor most mutant bodyparts later on
* I Love Added Failures
* Fixed some organs that slipped through my searches
* This could possibly fix the CI for this?
* It doesn't look like it did fix it
* This will make it pass, even if it's ugly as sin.
* Fixed Felinids having a weird ghost tail
* Fixes instances of snouts and tails not being properly colored
Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Adds MC initialization stages. Earlier stages can fire while later ones init. Fixes tgui chat reconnection banner showing during init. (#66473)
* Adds MC initialization stages. Earlier stages can fire while later ones init.
Removes TICK_LIMIT_MC_INIT config for barely doing anything to speed up init and being inconvenient to work with if fires and inits can happen at the same time.
* Adds MC initialization stages. Earlier stages can fire while later ones init. Fixes tgui chat reconnection banner showing during init.
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
* Set the plane for floor lights. (#65106)
Floor lights are missing "plane" and the default sets them to -4, which makes them appear on top of tables and players.
* Fixes floor lights by setting their plane.
Co-authored-by: Christmas5 <58363251+Christmas5@users.noreply.github.com>
* Fixes some light presets being brighter than intended (#64861)
* fixes light presets
* into the void with you
* Fixes some light presets being brighter than intended
Co-authored-by: Mickyan <38563876+Mickyan@users.noreply.github.com>
* [MDB IGNORE] dir sanity, primarily on WALLITEMs (#62601)
About The Pull Request
Wall items mostly use the direction from the floor to the wall in the named mapping helper. Wall items mostly use the direction from the wall to the floor for the internal dir variable.
This leads to a headache when it comes to working out what conflicts with what, and what needs placing where.
Wall frames provided a member, inverse, which specified whether or not to invert the direction of the item when looking for conflicts. It was also used to specify whether to look for conflicts outside of the wall (cameras and lights appear external to the wall) or inside the wall (most wall items). This flag was set for Intercoms, APCs, and Lights. Since APCs and Lights expect a floor-to-wall direction, and Intercoms expect a wall-to-floor direction, this means that APCs and Lights were getting the correct direction, and Intercoms were getting the wrong direction.
Some implications of this setup were:
You could build an APC on top of another wall item, provided there was nothing external attached to the wall and the area didn't have an APC.
You could stack Intercoms indefinitely on top of the same wall, provided you weren't in a one-tile wide corridor with something on the opposite wall.
Or both! Here's twenty Intercoms placed on the wall, and a freshly placed APC frame after placing all Intercoms and deconstructing the old APC:
endless-stack-of-intercoms
Not everything used this inverse variable to adjust to the correct direction. For example, /obj/machinery/defibrillator_mount just used a negative pixel_offset to be visually placed in the correct direction, even though the internal direction was wrong, and never set! This also let you stack an indefinite number of defib mounts on the same wall, provided it wasn't a northern wall... except you could do this to northern walls too, since defibs weren't considered a wall item for the purposes of checking collisions at all!
Ultimately, every constructable interior wall item either used this inverse variable to adjust to the correct placement, set a negative pixel_offset variable to have its offset adjusted to the correct placement, or overrode New or Initialize to run its own checks and assignment to pixel_x and pixel_y!
Inventory: Table of various paths, related paths, and the adjustments they used
Unfortunately, untangling /obj/structure/sign is going to be another major headache, and this has already exploded in scope enough already, so we can't get rid of the get_turf_pixel call just yet. This also doesn't fix problems with the special 2x1 /obj/structure/sign/barsign.
Some non-wall items have been made to use the new MAPPING_DIRECTIONAL_HELPERS as part of the directional cleanup.
tl;dr: All wall mounted items and some directional objects now use the same direction that they were labelled as. More consistent directional types everywhere.
Why It's Good For The Game
fml
Changelog
cl
refactor: Wall mounted and directional objects have undergone major internal simplification. Please report anything unusual!
fix: You can no longer stack an indefinite amount of Intercoms on the same wall.
fix: Defibrillator Mounts, Bluespace Gas Vendors, Turret Controlers, and Ticket Machines are now considered wall items.
fix: Wall mounted items on top of the wall now consistently check against other items on top of the wall, and items coming out of the wall now consistently check against other items coming out of the wall.
fix: The various directional pixel offsets within an APC, Fire Extinguisher Cabinet, Intercom, or Newscaster have been made consistent with each other.
fix: The pixel offsets of Intercoms, Fire Alarms, Fire Extinguisher Cabinets, Flashers, and Newscasters have been made consistent between roundstart and constructed instances.
fix: Constructed Turret Controls will no longer oddly overhang the wall they were placed on.
qol: Defibrillator mounts now better indicate which side of the wall they are on.
fix: Some instances where there were multiple identical lights on the same tile have been fixed to only have one.
/cl
* [MDB IGNORE] dir sanity, primarily on WALLITEMs
* apc directionals
* bluespace vendor fix
* defib fix
Co-authored-by: esainane <esainane+github@gmail.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
* Modernizing Radiation -- TL;DR: Radiation is now a status effect healed by tox healing, and contamination is removed
* Fixing conflicts
* Makes it compile, yeet all the RAD armor from everywhere (thanks RegEx!)
* Removing more lingering rad armor (woo)
* Damnit powerarmors
* Bye bye rad collectors!
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Add local APC cache to /area (#61655)
About The Pull Request
for(var/obj/machinery/power/apc/APC in GLOB.apcs_list) in get_apc makes chuck norris shed a tear
Why It's Good For The Game
tears are bad
Changelog
cl
code: /area now retains a local reference to the APC in the area, if any
/cl
* Add local APC cache to /area
Co-authored-by: esainane <esainane+github@gmail.com>
* Revert "Revert "[MIRROR] Refactor area and turf lighting (#7775)" (#7902)"
This reverts commit 64c4c52d12.
* This should probably fix it
* I love linters
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>