Commit Graph

33 Commits

Author SHA1 Message Date
SkyratBot
e90627be0e [MIRROR] Modernizing Radiation -- TL;DR: Radiation is now a status effect healed by tox healing, and contamination is removed [MDB IGNORE] (#9176)
* 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>
2021-11-02 10:36:46 -04:00
SkyratBot
c23bd1cb8c [MIRROR] every case of initialize that should have mapload, does (#8374)
* every case of initialize that should have mapload, does

* E

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-09-24 23:07:53 +01:00
Gandalf
b2f0f6cf46 Reverts infinite showers (#7016)
* AAAAAAAA

* Update shower.dm

* Update shower.dm

* Update shower.dm
2021-07-19 16:42:23 +01:00
SkyratBot
cab78dcf78 [MIRROR] Changes how weather sends sound to players, reduces sound loop overtime (#6627)
* Changes how weather sends sound to players, reduces sound loop overtime (#59284)

* Converts looping sounds from a list of play locations to just the one

* Updates all uses of looping sounds to match the new arg

* Adds an area based sound manager that hooks into looping sounds to drive the actual audio. I'll be using this to redo how weather effects handle sound

* Some structrual stuff to make everything else smoother
Timers now properly return the time left for client based timers
Weather sends global signals when it starts/stops
Looping sounds now use their timerid var for all their sound related timers, not just the main loop

* This is the painful part
Adds an area sound manager component, it handles the logic of moving into new areas potentially creating new
sound loops. We do some extra work to prevent stacking sound loops.
Adds an ash storm listener element that adds a tailored area sound manager to clients on the lavaland z level.
It's removed on logout.
Adds the ash_storm_sounds assoc list, a reference to this is passed into area sound managers, and it's modified
in a manner that doesn't break the reference in ash_storm (This is what I hate)

* Hooks ash storm listener into cliented mobs and possessed objects

* Documents the odd ref stuff, adds an ignore start var to looping sounds, fixes some errors and lint issues

* Applies kyler's review

banging

Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>

* Cleans up some var names, reduces the amount of looping we do in some areas

* Makes the code compile, redoes the movement listener to be more general

* fuck

* We don't need to detach on del if we're just removing signals on detach

* Should? work

* if(direct) memes

Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>

* Changes how weather sends sound to players, reduces sound loop overtime

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Kylerace <kylerlumpkin1@ gmail.com>
2021-07-01 02:18:04 +01:00
SkyratBot
5326760cb3 [MIRROR] Makes turfs persist their signals, uses this to optimize connect_loc (#6465)
* Makes turfs persist their signals, uses this to optimize connect_loc  (#59608)

* Makes turfs persist signals

* Splits connect_loc up into two elements, one for stuff that wishes to connect on behalf of something, and one for stuff that just wants to connect normally. Connecting on behalf of someone has a significant amount of overhead, so let's do this to keep things clear

* Converts all uses of connect_loc over to the new patterns

* Adds some comments, actually makes turfs persist signals

* There's no need to detach connect loc anymore, since all it does is unregister signals. Unregisters a signal from formorly decal'd turfs, and makes the changeturf signal persistance stuff actually work

* bro fuck documentation

* Changes from a var to a proc, prevents admemems and idiots

* Extra detail on why we do the copy post qdel

* Makes turfs persist their signals, uses this to optimize connect_loc

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-06-23 04:23:48 +01:00
SkyratBot
7d1d0e1fad [MIRROR] Refactors most spans into span procs (#6315)
* Refactors most spans into span procs

* AA

* a

* AAAAAAAAAAAAAAAAAAAAAA

* Update species.dm

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-06-16 00:24:49 +01:00
SkyratBot
5880be0168 [MIRROR] (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc (#5524)
* (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc

* WHEW THAT WAS EASY

* Update ammo.dm

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-05-07 22:39:27 +01:00
SkyratBot
18eca27569 [MIRROR] update_appearance (#3508)
* update_appearance

* a

* a

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-19 16:08:09 +00:00
SkyratBot
b332b46b65 [MIRROR] Remove hideous inline tab indentation, and bans it in contributing guidelines (#3394)
* Remove hideous inline tab indentation, and bans it in contributing guidelines

* a

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-15 15:32:02 +00:00
SkyratBot
699cd1e412 [MIRROR] renames metal sheets to iron sheets (#3116)
* renames metal sheets to iron sheets

* Merge branch 'master' into upstream-merge-56643

* yay metal

* Update DeltaStation2_skyrat.dmm

* a

* Update CentCom_skyrat_z2.dmm

* a

* a

Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-05 22:09:50 +00:00
SkyratBot
b4f1bc2dfb Fixes showers overexposing washed targets (#2738)
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2021-01-17 13:31:02 +01:00
SkyratBot
f36d4698f3 [MIRROR] Adds toggling shower's refills (#2735)
* Adds toggling shower's refills (#55895)

Adds the ability to toggle showers water reclaimers with a multitool
Adds some delta_time handling to showers.

* Adds toggling shower's refills

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2021-01-17 13:15:18 +01:00
SkyratBot
dbdcef06f2 [MIRROR] [s]Showers now properly react with 10u per tick instead of 1000u. (#1221)
* [s]Showers now properly react with 10u per tick instead of 1000u. (#54236)

Turns out what I thought was reagent units used per reaction was actually reaction multiplier in #53377, and it flew under the radar until literally 15 minutes ago.

This adjusted the reaction quantity down to 0.05, which with the 200 unit reagent volume of the showers, equates to about a 10u reaction per tick, ya know, rather high but reasonable considering that before it was mistakenly set to *5 instead, which meant you could de-husk a patient in a literal single tick with 1 unit of synthflesh.

* [s]Showers now properly react with 10u per tick instead of 1000u.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2020-10-09 18:31:24 +02:00
SkyratBot
1e705faa19 [MIRROR] Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#709)
* Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#52981)

* Process procs now properly use deltatime when implementing rates, timers and probabilities

* Review fixes

* Geiger counters cleanup

Made hardsuit geiger code more similar to geiger counter code
Geiger counters are more responsive now

* Moved SS*_DT defines to subsystems.dm

* Rebase fix

* Redefined the SS*_DT defines to use the subsystem wait vars

* Implemented suggested changes by @AnturK

* Commented /datum/proc/process about the deltatime stuff

* Send delta_time as a process parameter instead of the defines

Also DTfied acid_processing

* Dtfied new acid component

* Process procs now properly utilize deltatime when implementing rates, timers and probabilities

Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
2020-09-09 08:19:23 +02:00
SkyratBot
cf87e6b394 [MIRROR] Several associated shower bug/QOL fixes. (#706)
* Merge pull request #53377 from ArcaneMusic/plumbingfixesrev2

So, I may have made at least one... maybe 1.5 math errors. Namely, the reaction volume on every reagent was the full 200u. This is bad for bitcoin, as it means that you can instantly bottom out most reactions and drown someone in 1000 units of water in a single second! That's bad.

Also! On that note, vapor reaction was also transferring reagents that otherwise helped contribute to the above problem. I've yeeted this in kind, but I'm willing to do some more testing and planning to see if they were specific to the reaction volume fix first, but to be safe vapor is vape-aint.

Lastly: Gas chems were producing way, way, WAY too much gas even once the above two points were occuring. So much gas, that it was capable of filling a 8x10 tile airless room in a timed 1 minute 40 seconds. So, we've slowed the roll of the free reagents being produced by synthesizers, and brought it down to 1/5th of the reaction volume to 1/20th. That sounds like a massive leap, but trust me, you could produce millions of KPA very, VERY quickly without it, but at 1/20 it was actually sort of reasonable.

Edit: Apparently this also fixes #46413 as a result of removing the obj_react from the above gasses!

Fixes #53357. Also, prevents reagent synthesizers and showers to behave EXACTLY like gas miners, but free. Also, prevents 1000s of reagents from being multiplied through the use of showers.
Changelog

fix: Showers no longer have the vapor reaction, as before the changes.
fix: Showers no longer produce ludicrously over-scaled chemical reactions.
balance: Gas chems now produce 1/4th less gas when released into the air as before.

* Several associated shower bug/QOL fixes.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-09-09 08:17:13 +02:00
SkyratBot
a9d83ceedd [MIRROR] Makes water recyclers fabricate-able, and makes showers preform a touch reaction only. (#573)
* Makes water recyclers fabricate-able, and makes showers preform a touch reaction only.  (#53279)

* Makes water recyclers fabricate-able, and makes showers preform a touch reaction only.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2020-08-30 05:28:01 +02:00
SkyratBot
a35183463d [MIRROR] Waterworks: Plumbing enabled sinks, tanks, plant trays, and showers. (#562)
* Waterworks: Plumbing enabled sinks, tanks, plant trays, and showers. (#52865)

https://cdn.discordapp.com/attachments/326831214667235328/740812723956482118/2020-08-06_02-04-14.mp4
For everything in this PR working at the same time, watch this video!

Alright, from the top:
Sinks now need plumbing to pump out liquids.

All sinks now has a demand-only plumbing pipe face the opposite direction of the sink itself. A standard iron sink will hold 100 units of water, and must be constructed from a sink frame. To complete the frame, a new stock part, the water recycler must be applied to the frame. Once the sink is constructed, it will only hold those 100 units of water until new water is piped in.
This however doesn't extend just to water, as a result. Any reagent can be piped into the sink, and will be used 5 units at a time per use. This means water isn't just an infinite resource, and will need to be resupplied to the station if, somehow, you're using a metric ton of water somehow.
image
A basic sink setup with water being plumbed in.
Showers now need plumbing to wash you off.

Want to dispense reagents faster on your Patients Victims Friends Coworkers? Well, you may also construct a shower frame, in a similar fashion to a sink frame, and pipe in your own reagents into the loop. The shower drains reagents much faster than the shower, and also preforms vapor and touch reagent reactions, resulting in a constant stream of chemicals being processed. This can lead to horrible situations, like a chemical heater hooked up to a vat of cooking oil being pumped into a shower.
Additionally, showers will display the reagents they're pumping out visually based on the color of their chemical contents. As a result, dangerous or unique showers are going to look noticeably different if their contents are dangerous looking.
image
A safe shower.
image
A very unsafe shower.
Wait what was that bit about cooking oil?

So, reagent dispensers, like water/fuel tanks, Virus Food, Cooking Oil Vats, Pepperspray, and the like, can now be converted into a stationary tank of reagents by using a sheet of metal on it, allowing it to behave as a simple supply of their respective contents, and can be pumped into a plumbing network. This means rolling water tanks can be used to resupply sinks and showers, as well as allow for inventive uses of otherwise unused chemicals located all around the station. Pump welding fuel into a resupply line to fight a blob! Pump pepper spray into the dorms showers! Create a deep fryer shower! The possibilities are LIMITED (Because we have very few reagent dispensers)! Still, this will prevent sinks and showers from being completely unfix-able should all the water run out, as cargo can purchase many of these chemical tanks at will.
Hydroponics is now also plumbing enabled.

So there I was, thinking, have I gone mad? Is the barking I hear in my noggin my own dogs rattling and raging against the eternal ocean tide, or are these the hounds of tindalos come to finally rip me to shreds within the sea of causality?
The answer to this is quite simple: I added plumbing simple-demand components to hydroponics.
Now, the trays will accept a pumping input, which can provide the plants themselves a reagent input for their nutrients, and SHOULD (current not fixed yet) also contribute to refilling the trays water. As a check to this horrible decision, there are very few plumbing chems that don't suffer from some kind of downside if exclusively pumped into the trays, so this should be done delicately and with forethought applied, or you'll have a row of plants with dead stats because they OD'd on ammonia.
image
Holy damn why are you doing this

I'm thinking this pr is probably in need of some serious trimming and will probably be closed as a result of the need to atomize this down, but this way I can start to get some feedback and ideas on which aspects would be better suited towards the current design direction of plumbing/bio-chem/reagent heavy jobs. As far as I'm aware, this is all in accordance with the relevant design docs, but this way I'll know for sure 🤷‍♂️
To-do before being 100% sparkly and clean

Fix hydroponics trays adding water to the nutrient reagents slot (NOT A TRUE FIX, SEE COMMENTS BELOW PLEASE)
Make disconnected sinks/showers slowly regenerate water so that a stationwide plumbing net isn't required so Anturk doesn't snap my kneecaps off
Make water/fuel tanks use their snowflaked stationary tank sprites instead of the custom overlay version

    Yeet out the existing psudo-plumbing from hydroponics

Why It's Good For The Game

We've discussed adding plumbing into the game for forever now, and with all the new and tangentally related plumbing content we have, almost everything we have now perfectly enables servers to properly create a station-wide plumbing network.

Sinks and showers provide an infinite supply of water all shift long, and since they can be produced with any material, anywhere, practically for free, that was the first and foremost reason why I made this PR, to make water slightly more precious on station, to justify the 20+ water tanks mapped across every station. Plus, no more meatsink spam in the middle of the hallways.

Hydroponics has a built in feature that was intended to work similar to plumbing, before we had plumbing, for sharing resources/water, but it was pretty rough and is still exceptionally difficult to make look very pretty on live servers. By integrating them with actual plumbing pipes, this enables one step closer to integrating chemistry and botany to merge going forward, and give them an incentive to include each other in their supply chains each shift.

On the reagent tank conversion, That's just an interesting feature I felt the need for while testing everything else, and found pretty great success in. Being able to pipe in large supplies of a single reagent that ordinarily would just sit on a wall or in mait somewhere proved extra useful, and would be beneficial for refilling plumbing heavy areas like bathrooms/medbay, etc.

* Waterworks: Plumbing enabled sinks, tanks, plant trays, and showers.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2020-08-29 20:34:23 +01:00
Daniel Hultgren
bae9371da5 Cleanable cleanup (#52477)
* Don't initialize the atom_colours list on atoms until it's actually needed

* Moved bloody_hands var to mob/living/carbon/human instead

* Added COMSIG_COMPONENT_CLEAN_RADIATION signal to reduce moms spaghetti

The shower and suit storage unit now calls this signal instead of either doing it manually or doing it via the washed proc

* Cleaned up carbon washing, renamed washed to wash

* The wash proc now doesn't take the washer as first arg because that wasn't used anywhere
* The wash strength is no longer optional
* Carbons now overrides the wash proc instead of using the signal
* Properly check for obscuredness before washing any equipped items
* Properly wash all items and bloody hands etc
* Added clean_lips proc for humans for cleaning any lipstick

* Cleaned up washing. Washy stuff now calls wash instead of calling the clean signal directly

* Renamed is_cleanable to ismopable, gives this category a more fitting purpose. Many things beyond floor decals are cleanable. It is now also determined using the atom layer instead to make it more generic.
* Properly utilize the is_cleanable define
* Added wash override for turfs where they also wash any mopables on the same tile
* Space cleaner and cleaning element etc now simply washes the mob instead of doing its own manual cleaning on ~some~ equipped items

* Non-component washables now simply override wash instead of registering for the clean signal

* Fixed some left over clean signal registers not returning true

* Added clean_strength var to space cleaner

* Moved human wash proc next to the other washing procs

* Also wash glasses and mask if not obscured when washing face

* Fixed attempting to "scoop up" cleanable decals using a rag

* Fixed plasmaman spacehelm icon not updating when washed

Also removed a duplicated worn_overlays proc

* Fixed head icon not updating when washing lipstick

* Moved radioactive clean signal register to where it should be

* Added atom radiate VV verb for debugging

* Redesigned the CLEAN constants into a more sensible flags setup

This makes it more dynamic, cleaning apparatuses can clean more specific than just a cleaning strength.

* CLEAN_TYPE_* flags indicate a specific cleanable, such as blood, fingerprints or disease
* CLEAN_* consts consist of a combination of cleaning types to make cleaning apparatuses have a consistent behaviour on what they clean

* Fixed broken rad removal logic in showers

* Apply suggestions from code review

Co-authored-by: Rohesie <rohesie@gmail.com>

* Removed unneccesary bool from sink code

* Fixed wrongly named variable in turf wash

* Renamed bloody_hands to blood_in_hands

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-07-29 08:32:30 -04:00
TemporalOroboros
e78d82592f Refactors reagent exposure code (#51396)
* Refactors reagent exposure code

Removes istype clutter. Renames a few procs

* == TRUE

Adjusts COMPONENT_NO_EXPOSE_REAGENTS bitflag offset.

TODO: Remove comment

Co-authored-by: Rohesie <rohesie@gmail.com>

* == TRUE

Adjusts COMONENT_NO_EXPOSE REAGENTS bitflag offset.

Removes comment

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-06-21 20:03:19 -03:00
Qustinnus
72fb1458a7 Adds the shower bot, makes sure you don't become too bloody (#49083)
* Epicgamers

* woops

* Update code/modules/mob/living/simple_animal/bot/construction.dm

Co-Authored-By: TheChosenEvilOne <34602646+TheChosenEvilOne@users.noreply.github.com>

* slip

* fix

* epic

* emag functionality

* Update code/modules/mob/living/simple_animal/bot/hygienebot.dm

* Update code/modules/mob/living/simple_animal/bot/hygienebot.dm

* step 1

* woops

* fixes

* fixes

* fixes++

* fixes a broken thing

* lol ok

* fixes

* oopsie

* oneliner

* lmao webedits

* small brain

Co-authored-by: TheChosenEvilOne <34602646+TheChosenEvilOne@users.noreply.github.com>
2020-02-20 22:31:22 +01:00
MrPerson
26093e5ac2 Further update_icon splitup (#48784)
* Further update_icon splitup

After this there'll be just under 100 old update_icon() calls that need fixing.

* Thanks Travis
2020-01-22 10:18:05 -05:00
Emmett Gaines
5481515dff Removes the non bitflag slot defines (#47742)
Removes the non bitflag slot defines
2019-11-17 17:52:11 -08:00
spookydonut
8b339f7f94 creamed component (#46496)
* creamed component

* creamed no

* make use of unused sprites

* applies to all living

* params

* changes from review
2019-09-24 17:17:33 +02:00
nemvar
e587b970da Adds parent calls to almost all tool_acts (#45582)
* Adds parent calls to almost all tool_acts

* actually compiles
2019-08-03 22:25:57 -07:00
Garen Crownguard
caa683e5b1 merge 2019-06-04 07:04:21 -05:00
Garen Crownguard
4b2fc4cc05 Removes Hygiene 2019-06-04 06:25:51 -05:00
vuonojenmustaturska
6a106bc877 Remove reagent ids and use typepaths where applicable (#44166)
cl Naksu
code: reagent IDs have been removed in favor using reagent typepaths where applicable
fix: mechas, borg hyposprays etc no longer display internal reagent ids to the player
/cl
2019-05-31 21:57:26 +12:00
zxaber
2509aaea46 Removes the negative moodlet for showering with clothes on. (#43722)
* Don't need none of that negitive attitude

* better good

* Adds a message about trying to shower with clothes on while you're filthy.
2019-04-30 10:10:39 -04:00
oranges
55f6c039b3 Showers no longer runtime when you shower with an empty hand (#42410)
held items actually contains "null" entries by default using just var/I
gets these null items and then tries to wash_obj a null causing a
runtime

Specifying /obj/item will stop the nulls being iterated
2019-01-19 00:00:47 -08:00
oranges
8aa9a2a64a Merge pull request #42312 from Qustinnus/quickfix
initial hygiene tweaks
2019-01-12 10:41:44 +13:00
Unknown
145ac716cb done 2019-01-10 22:45:21 +01:00
Jack Edge
cbf3b770dd Fixes ghosts and camera mobs feeling cold showers
🆑 coiax
fix: Ghosts and camera mobs no longer feel if the shower is cold or too hot.
/🆑

Fixes #42269.

- In addition, replaces some "the shower" with [src].
2019-01-09 18:27:14 +00:00
coiax
56305454bf Cleans up shower code (#41884)
cl coiax
fix: Monkey cubes now expand in a running shower!
fix: Slimes now die in running showers.
/cl

Showers now apply 200 water reagent via TOUCH every tick to anything under them.
This doesn't actually add reagent to the atoms it touches though.
Showers now use timers rather than spawn for the mist creation.
Mist isn't recreated every time the shower is turned on and off.
All living mobs are burned by hot showers, not just carbons.
This means that slimes are healed by hot showers.
Showers are now in a separate file.
Shower temperatures now use defines.

Fixes #41773.
2019-01-07 19:20:45 +13:00