* At first i thought that i was being forced to add a feature 🤮 but then i realized i was being encouraged to refactor 😄. Electrified chair is now a component instead of a failure (#57117)
* At first i thought that i was being forced to add a feature 🤮 but then i realized i was being encouraged to refactor 😄. Electrified chair is now a component instead of a failure
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* 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>
* You can now make damp rags by dipping a bolt of cloth in a sink (#56337)
Co-authored-by: Mothblocks <35135081+Jared-Fogle@ users.noreply.github.com>
* You can now make damp rags by dipping a bolt of cloth in a sink
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Jared-Fogle@ users.noreply.github.com>
* Mechanical Curtains (#55751)
good for better mapping, I have seen some mappers wish to utilize fancy curtains on their rooms windows (for example, a psychologist office) but wanted to be able to have privacy when with a patient, which curtains can be opened from either side of the window, and shutters just dont fit the theme, this way mappers can add in curtains which are button operated and cant be opened manually, basically, it functions like a shutter, only it looks and acts like curtains (can be destroyed like one, etc... it is literally a curtain subtype)
* Mechanical Curtains
Co-authored-by: 小月猫 <alina.r.starkova@gmail.com>
* Adds record of toilet combat (#54836)
Logs a direct method of dealing damage to a person that wasn't logged previously
* Adds record of toilet combat
Co-authored-by: ArcaneDefence <51932756+ArcaneDefence@users.noreply.github.com>
* Implements timed_action_flags for do_after-like procs (#54409)
Originally I wanted to fix an issue where the `get_up()` `do_after()` would ignore the callback checks, because it was `uninterruptible`, so that made me refactor these procs to allow for higher granularity on checks and standardize behavior a bit more.
There's more work to be done for them, but one thing at a time.
* Removes the `uninterruptible` check in favor of the more granular `timed_action_flags`
* Cleans code on the `do_atom`, `do_after_mob`, `do_mob` and `do_after` procs to standardize them a little better.
* Implements timed_action_flags for do_after-like procs
* Update horror_form.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
* sinks now refill properly (#53579)
Fixes#53343
Also fixes an issue where sinks wouldn't refill after a mop was used on them.
* sinks now refill properly
Co-authored-by: William Wallace <me@wiox.me>
* 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>
Makes acid levels a component.
Merges the acid effect object into the component.
Reworks acids decay rates slightly.
Rebalances xenos acid spit so that they can still melt through walls.
Misc. associated changes:
Adds defines for a lot of the acid associated constants.
Documents clean types and adds CLEAN_TYPE_ACID
Adds and implements a return bitflag for COMSIG_COMPONENT_CLEAN_ACT
Adds a looping sound for acid.
Makes /atom/proc/acid_act return a boolean.
Fixes waterclosets creating a new reagent holder datum every time they are used.
Removes waterclosets regenerating reagents on-use and restricts their reaction volume to 5 units.
Adds and implements a couple reagent signals.
Renames a few vars so Rohesie can stop telling me to rename more vars.
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* Fixes#53290, puddles are now infinite again. (#53311)
Fixes#53290
A code oversight of #52865 that also applied plumbing changes to puddles.
Avoided snow flaking by creating a new object type called water_source. Can be used in the future instead of the sink type.
* Fixes#53290, puddles are now infinite again.
Co-authored-by: Jack7D1 <59462654+Jack7D1@users.noreply.github.com>
* 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>
* Opacity refactor (#52881)
Moves all opacity var manipulation to a proc which sends a signal.
light_blocker element for movable opaque atoms made, which tracks its movement and updates the affected turfs for proper lighting updates.
has_opaque_atom boolean replaced by the opacity_sources lazylist to keep track of the sources, and a directional_opacity which serves a similar function but also allows for future expansion with on-border opaque objects (not yet implemented).
Some opacity-related sight procs optimized as a result of this.
Some variables moved to the object's definition.
A define or two added into the mix for clarity.
Some code cleaning, like turning booleans into their defines.
One file renamed for clarity.
Changelog
cl
balance: Mechs no longer block sight. It's a non-trivial cost for the lighting system with little to no gain.
/cl
* Opacity refactor
Co-authored-by: Rohesie <rohesie@gmail.com>
* Contributes more missing belt, back, and otherwise ERRORing sprites. (#52670)
* I'm crying over all these beeeeeeelts
* Removes ?
* Provides some close enough substitutes for inhands
* Contributes more missing belt, back, and otherwise ERRORing sprites.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* 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>
* 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
About The Pull Request
Adds a slew of new material datums. Included are bronze, runed metal, sand (made from sand blocks, made by using sand on a sink), sandstone, snow, paper, cardboard, bone and bamboo. Oh, and pizza. Yes, pizza.
newmats
(from left to right: bronze, sandstone, sand, snow, bamboo, paper, cardboard, runed metal, and bone).
PIZZA
PIZZA!
Pizza is a special case: it's edible, and to craft it, you need pepperoni sheetzzas. These are made by using a rolling pin on a pizza slice.
Why It's Good For The Game
More mats datumised, and pizza is a good meme.
Changelog
🆑 EOBGames (Inept)
add: A whole bunch of materials are now datumised! Check out bronze, runed metal, sand, sandstone, snow, paper, cardboard, bone and bamboo. Oh, and pizza. Yes, pizza.
/🆑
* Makes abductor baton child of stun baton
- Clarify var names and reorder vars in baton defines
- Slightly simplify active baton wash code
* forget about ()
Nanotrasen has just come out with a new clown tech design, Plastic Duckys™. Move aside expensive rubber donk.co and waffle.co brand duckies. These quality* made ducks are fabricated at our finest research stations with industrial-grade** protolathes. Made from chemically processed plastics from our expert*** chemists!
Plastic ducky
Why It's Good For The Game
plastic uses are neato. This may be controversial as it ads a potentially unlimited source of honks but if people think this is really an issue then I would consider adding a bananaium cost that would make it on par with other printable honk items.
Changelog
🆑 itseasytosee
add: Nanotracen is beginning to dabble in toy-making technologies. Clown tech now adds a design for a cheap alternative to rubbers ducks made from plastic.
/🆑
About The Pull Request
Now that achievements are open for adding again, adds 7 new misc achievements-
Disk, Please!: As a nuclear operative, hold up the captain with a loaded rocket launcher. The captain must be conscious for it to count!
My Watchlist Status is Not Important: Get reported to security and medical staff by displaying antisocial tendencies in a video game.
I Was a Teenage Anarchist: Get killed by a vending machine falling on you.
Mister Sandman: Kill someone by botching surgery while they're asleep
A Bowl-d New World: Die to a toilet
How Do I Switch Hands???: Hit yourself idiot
One Lean, Mean, Cleaning Machine: Gaze upon a fully promoted cleanbot
Why It's Good For The Game
Adds more fun things to do for the gamer cred that aren't just killing things on lavaland
Changelog
cl Ryll/Shaps
add: A bunch of new achievements have been added! To name a few, there are achievements for holding up the captain with a rocket launcher as a nuclear operative, dying to inanimate objects, dying in a toilet, and getting watchlisted! Go do some dumb stuff!
/cl
Gave better color matrices to some materials. Simplified some of the existing matrices down. Gave uranium a standard color since it didn't need a matrix. Made bananium obnoxiously bright. Made gold slightly less bright. Made diamonds somewhat brighter. Made glass actually look like glass, it was almost grey before wtf.
Improved some of the greyscaled sprites used by materials, many of them were too dark and/or straight reused from other things. Some of them weren't even grey come on guys.
I'll add some pics later.
* Initial Commit, Features the Map, Map specific files, changes to a metric ton of icons, etc.
* Fixes merge conflict, actually adds the map
* Spelling is hard Part 1
* Alright, steps are bad. Got it.
* Clean slate, please pretend to compile
* dme issue
* Fixes it for lavaland elites PR
* Removes the last dirty step_x, removes duplicate file, makes treavor happy
* Fixes some newline issues.
* Fixes some types, spawns skeletons in select graves since mob_spawns kept shoving them outside.
* Makes bone statues and shovel actually craftable, cleans up some comments.
* Properly defines muddy paper, updates map, fixes a few more typos.
* Prevents some future turf atmos issues, finally touched up the two skull sprites.
* Refactors strong mineral drops, cleans up some duplicate code, prevents washing hands with OIL
* I swear officer, i'm a native english speaker, fixes remains dropping correctly, un-nests my Ifs further.
* Oil well now covers target in oil when interacting with it.
* Refactors sink deconstruction a bit, oil wells can't be constructed with a wrench.
* Cleans up some atmos, and adds a return
* Adds subtype of remains for use in graves, move their spawn to src, not loc
* Moves around remains spawn, gets rid of untouched var
* Reverts italics-span back to no color.
* Cleans up many extra spaces and indents.
* Adds 'hear' span class.
* Replaces all 'italics' used in heard messages with 'hear'.
About The Pull Request
Converts every single usage of playsound's vary parameter to use the boolean define instead of 1 or 0. I'm tired of people copypasting the incorrect usage.
Also changes a couple of places where a list was picked from instead of using get_sfx internal calls
This was done via regex:
(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\)) to match 1
(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\)) to match 0
full sed commands:
/(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\))/\1TRUE\2/ 1 to TRUE
/(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\))/\1FALSE\2/ 0 to FALSE
I'm not very good with regex and these could probably be optimized, but they worked.
Why It's Good For The Game
Code usability
About The Pull Request
Adds 'notice' span class to all visible_messages which had no span class, making all those black messages blue.
Why It's Good For The Game
This should help differentiate action-messages from talking-messages in the chat. More actions will be blue, thus black talking-messages should pop out more.
* mostly fixes in this commit
* removes old_god from the dme
* russian shuttle improvements
* TODO: fix the hook gun
* shotgun finished, next commit shuttle
* bounty hunting shuttle
* back up to speed on the dmis
* readds poster 46 and adds the shuttle finally
* dmi fixes
* traps need fixing, work out whatever is happening with synths
* super final touches, see desc
map ports + proper spawners, pinpointer and traps functional. other misc changes
* removes verb stuff from non verb stuff
* review (see desc)
antimagic checks and it now the two objects move inside each other instead
* dmi conflicts
* PLUNGERS. BEGONE.