The scope of this PR is to add new and interesting stuff to the atmos crew and to bring more people to it both old and new.
This PR adds 5 new gases, a bunch of reactions (i'm still working on this but suggestions are useful), new recipes and items to the atmosians arsenal. These gases have high utility for everyone, atmosians will find them useful to do their job both as firefighters and air maintenance.
FINAL GAS NAMES (will change only if a maintainer ask about it)
Healium
Proto Nitrate
Cyrion B
Halon
Hexane
reactions avaiable in this PR: https://drive.google.com/file/d/1e6DZlBaKSCNdCADKnrH3F3aDWvl0iZr4/view
What the PR add:
-Healium: a red gas, stronger than n2o if breathed, with healing properties
-Proto Nitrate: a green inert gas if breathed but with different reactions with various gases at high temperatures
-Cyrion B: a black deadly gas if breathed that decompones very fast if exposed to N2 even at minimal amounts
-Halon: a light blue gas that when used in a fire it will suck up the O2 and will help cool the room, helping fighting the fire
-Hexane: a purple gas that has the ability to filter from the air plasma and n2o, useful to clean distro from the harmful gases quickly
-Healium Crystal: a reddish crystal that when broken will explode cooling the room and removing the plasma from the air (act like a grenade)
-Proto Nitrate Crystal: a greenish crystal that when broken will explode refilling a space with O2 and N2
-Cyrion B Crystal: a blackish crystal that when broken will explode dealing damage around it
-Metallic hydrogen recipe addition (atmosian armor and fireaxe)
-Statue of an elder atmosian (for bragging rights)
-Supermatter Interactions
-More gas interactions (Roinnel have multiple and different interactions)
-New RPD device: the pressure valve, a device that allow gas flow in a pipenet if the input pressure is higher than the set pressure it's getting atomized
-Fusion is a bit "easier" to start (minor changes to the math so that the instability is more reasonable)
-pluox can be also made without using rads
-cyrion-b bounty
-all 5 gases can be sold to cargo
More stuff needs to be added (like the SM interactions(added) and probably more reactions and breathe reactions)
Please leave suggestions and feedbacks as it helps improve the PR
Atmos desperately need more content and need to be proactive in the making of its tools, with this PR is a start to more atmos content
🆑
add: hydrogen + rads = trit
add: 5 new gases
add: Healium : made from Bz + Freon + cold, it knocks people down but have healing properties
add: Proto Nitrate : made from pluox and H2 + heat, it has different reaction with a bunch of other gases
add: Cyrion B : made from hypernoblium + stimulum around 0°C, it has heavy damage if breathed but is decomposed rapidly by N2
add: Halon : made from bz + trit + cold, it reacts with O2 at high temperature removing it and cooling the air, helping putting out fires
add: Hexane : made from bz + H2 + cold, it reacts with plasma and n2o and removes them from the air mix, filtering them.
tweak: stimulum no longer require plasma
add: canister sprites, gas sprites
add: crystal from gases formation and reaction
add: new metallic hydrogen recipes
add: elder atmosian statue
add: supermatter interactions
tweak: minor changes to fusion math to make it "easier" to start
add : pluoxium can be also made without using rads (not removing the rad production one) (this also produces a minimal amount of h2)
tweak: lowered hypernoblium min temperature of reaction
tweak: metallic hydrogen production more common
add: cyrion-b bounty
add: all 5 gases are up to selling
/🆑
This pull request adds the neutral quirk "Tongue Tied", which relegates the user to sign language, along with both the positive and negative effects this can have. After some thought, I had decided to make it neutral due to the overall impact its effects can have.
Effects include:
Having one hand full causes your speech to be obscured. Having both hands full makes you unable to speak at all. This also applies to the removal of said limbs.
Obviously using your hands would hinder speech over radio, so to get around this, Nanotrasen have developed a special kind of glove for those with this speech impediment! Don't lose them though, or you'll have to create new ones.
The deaf can understand you, and you're "immune" to being mute as long as you can sign! Of course, good luck communicating with anyone who's blind.
Punctuation? In my visual-based language? Hell no, you better learn to read people's faces. When someone's eyebrows are raised, they are surprised/exclaiming, whilst lowering ones eyebrows indicates they are asking a question. Just like real Sign Language!
Awards players who pick it for being more aware & efficient with their inventory, whilst punishing them for carrying items in their hands 24/7. It further opens these players to new communication options & challenges, whilst giving people who go against them new hurdles & weaknesses to exploit.
* 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
Makes nanite reduced diagnostic function baseline and adds new increased diagnostics program
* A better way
* Increased Harmonic Nanite research costs by +1000/+1000
* Harmonic nanite passive boost.
This changes the has_reagent check to work with stomachs.
Several supporting procs have been added to fully support this behavior.
end_metabolization will work as expected again
expose is working with INGEST items again
on_mob_add working as intended
on_mob_life has been reviewed and worked over.
Health Analyzers now show stomach contents, same with the medical kiosk.
Included the unit test to validate reagent checks.
Unit tests for the new procs on mob
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.
This puts food you eat in to the stomach.
If you do not have a stomach you can not eat, if you try to swallow anything you will spew it out.
Changes to surgeries:
Stomach pump can now be done on the living, and pushes out the reagents in the stomach.
Blood filter is a new tool and cleans the reagents out of the body.
This also makes it so that reagents that do not metabolize can accumulate in the stomach reducing how much food you can eat.
Fixes a bug caused by transferring an orbiter component to a parent where one already exists. Causing the old original orbiter to update the added ghosts positions when the parent moves, but not allowing them to ever break orbit and also setting the ref to null for the component on the whole due to old signals it would seem.
Also tweaks the blades use in hand ghost notification message to remove the redundant (Orbit) link.
* Card Decks n shuffling.
* the "crackling with sexual energy" update
}
Kept you waiting, hunh?
This adds a new multi-faceted object to the game, the TCG Card Pile. Using any 2 cards together on each other will create a pile, and the first card in the pile will determine if the card pile is face-up, or face-down. Depending on the orientation of the card pile, you'll draw cards out of it in the orientation. So, a "deck" card pile would be flipped face down, and would allow you to draw cards out of it also face down, and vis versa.
Decks can be renamed with a pen, and use a radial menu in order to enable quick action on the Trading Card game battlefield.
image
Draw allows you to draw a single card from the deck, again based on the orientation of the cards used to build the deck.
Shuffle calls the shuffle() proc on the deck, and (should) randomize the order of the cards in the deck for use.
Pick up puts the deck into your hands instead of the nonsense dragging required with regular playing cards.
Flip flips the orientation of the cards in the deck, turning a face up pile into a facedown pile, and a facedown, faceup. Also, calls reverseRange() on the contents of the deck, which should put the bottom of the deck on top, and vis verse, ALSO enabling you to put cards on the bottom or the top of your deck easily.
Card piles also operate with a custom storage component, so you can search for cards in your deck if need be, but also handle edge cases like when you only have 1 card in a pile left, or when you dump out a deck of cards like you would a bag.
This basically adds in more sane hands, more sane decks and discard piles, and a massive QOL update to the trading card game to make it actually playable (once potato actually puts the card stats and effects on the cards themselves.)
-Mechs are a vehicle subtype
-Mech equipment half-rewritten
-Mech actions completely redone
-Cooldown macros
-New movement macros & replacing all var in GLOB.diagonals with ISDIAGONALDIR(var)
-New lazylist macro
-Support for lavaland only mechs
-Removed the tank because fuck off with that hacky shit
-Documentation
-Fuckton of fixes
adds a food trash element, for dumping trash when u eat food
unused now, needed for food refactor. spawns trash in your hands (or on the floor) when the food this is attached to is eaten.
Brings back the behavior removed from #52186 with cleaner code.
Differences in the code:
No more explicit type checks in the spray paint code, other than a broad isobj.
Checking for dark colors is now based on luminosity, rather than unscientifically summing all the RGB components and checking an arbitrary number.
Removes the paintable component. This was used on one item, and its behavior is replicated in the spray can.
Instead of checking for windows specifically and changing opacity through there, atoms can now specify through init flags whether or not they allow dark colors. Windows set this flag.
Adds a COMSIG_OBJ_PAINTED signal. Windows use this signal to dynamically update opacity, just like how they did before.
This was a fun cosmetic feature that I'm not sure anyone had a problem with. The original reason for removal seemed to be because of code quality, and not because of negatives about the feature.
Makes canvasses unpaintable
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is
Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>
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.
Moves the food storage behavior on (formerly) bread, cheese wheels, and cakes from /food/snacks/store/ to a component.
This lets just about any food/edible thing be used for storing fun things like glass shards, which is pretty neat. Also helps work towards the food refactor.
Automatic glide size adjustment based on move delay.
Essentially a port of https://github.com/yogstation13/Yogstation/pull/8132 but that was mostly my code with some fixes.
Why again? well it turns out the recent byond fixes to glide size actually worked and solved the issues that were unsolvable.
https://file.house/0B3u.mp4
Glide size no longer incorrectly scales at fps, so it works as intended at any framerate with the only stuttering being normal byond suck stuttering.
Made a few changes to gunpoints and some related mechanics while tidying up and adding docs. Here's a quick list
-Execution (point blank help intent shot aimed at the mouth) and gunpoint shots now apply their bonuses to every pellet fired rather than only the first, generally making them gushier. They also buff wound power as well as damage
-You can no longer punch yourself while holding someone up to trigger the charged shot
-You can no longer purposely fail executions and gunpoints with pax or whatever to endlessly spike the damage in a loaded round
-Attacks with extremely high wounding power can now outright dismember limbs regardless of mangled status. The threshold is high enough that it mostly applies for admin edited weapons or execution shots with shotguns (or people with the frail quirk!)
-Piercing wounds make further wounds a bit easier to apply to give them a bit more power
-Hellguns now cost 2250 credits instead of 2000 to make them a bit harder for random crew to get
-Adds special bouncy L6 rounds for admins to use to bounce off anything and everything en-masse
Also as a minor note
Projectiles with no trajectory (meaning they were likely spawned in manually) now qdel themselves on bumping something, rather than runtiming helplessly
Componentized the bloody feet feature.
* Hardsuits and other feet-covering clothing can now get bloody feet as well and spread gunk around.
* Bare feet can now get bloody as well and spread gunk around.
* Shoes/feet won't get bloody if something is covering them.
* Improved blood spreading behaviour. Previously, magic numbers were used in the blood pick up and drop off process. Now, when you step in blood, you and the floor share the blood volume. When you step on a non-bloody tile, you give away half of your shoe blood to the tile, and so on. This means the total blood volume always stays constant when moving around. * Blood doesn't appear out of thin air, nor get flushed to bluespace.
* Lowered footprint minimum opacity. Because it looks better, imo.
* Improved footprint exit/enter dirs.
* Improved footprint examine.
* Removed code for cult magic where a spell can suck up blood on your shoes. I'm pretty sure this code didn't work anyway. Implementing that for this new system would require a new signal and I just don't think it's worth it.
How can this game make you spend 20 hours on fucking spaceman footprints
Hardsuits will become "fully bloody" by just stepping in blood. This is a limitation of the current forensics system, as that is what is used to determine if an item is bloody or not. I'm aware of this but I don't think it fits to fix that in this PR.
cl
add: Footprints and bloody shoes major update. Hardsuits and bare feet can now get bloody as well. Improved blood spreading behaviour.
fix: Shoes will no longer get bloody while wearing something that covers them.
/cl