When generating a gas mix with no temp provided the gas mix starts out at basically 0K.
This set this gas mix to room temp if no temp is listed in the gas mix string.
Nothing should start at 0K for temp, gasses being one of the big issue points.
- Refractor HFR core from binary device to unary device to fix issue with cooling not properly connecting, that was deleting gases when tryed to use (only one port cooling now similar to a Thermomachine)
- Small fix of GUI data where two vars were inverted
This PR introduces the wacky round gauge for showing all of your favourite metrics in half-circle format. Show off those wacky numbers, use some scary blinking lights, feel alive!
I've also gone ahead and included this in the canister and tank (think internals) UIs. I've also done some refactoring of data sending from canisters because GOSH DANG it required some.
The core temp was meant to be cooled separately through the skin in cryo pods, but on inspection that interaction was skipped.
This makes the core temp match skin temp in a cryo pod.
* cryo fixes and cleanup
Move magic numbers to defines
Fixes cryo deleting 100L of gas each time it transfers
Remove unneeded/unused variables
Moves gas all gas consumption to process_atmos
delta_time in process_atmos
* simplify consume_gas
This PR removes fusion from reactions.dm and add the Hypertorus machine and its new and improved fusion reaction (results may vary).
Fusion is one of the most costly reactions from the atmos system, is one of the most complex and yet most simple ones; this will move fusion inside a buildable machine and it will allow a degree of complexity that can't be done inside react()
* The Re-pricening
* Rewritten and adjusted for paycheck defines.
* I made the map changes finally.
* And the refills too.
* "OH YEAH REPLACING IT ALL WITH DEFINES AND SCALING IT THE EXCEL DOCUMENT WILL BE EASY, ARCANE!!!"
* And the premium ones too.
* Accidently spoiled a future pr due to dme bleedover
The PR aims to allow advanced tool users to be defined by traits rather than a hardcoded proc.
Also necessary for the CanUseTopic refactor I'm working on, which will be PRed separately for atomization purposes.
This PR also fixes an inconsistency with can_hold_items (since monkeys can actually hold items).
This PR changes the Hypernoblium gas around a bit.
First the stop-all-reaction property has been limited to a minimum temperature of 20 K, under that it will no longer stop the reactions in the container (canister, pipenet or open air), over that it will behave normally
Second the production of the Hypernoblium has been shifted to very low temperature, under 15 K so you need at least t3 freezers to achieve and at least 1000 moles of BZ as catalyst to lower the vey high energy released by the reaction
Lowered amount of credit received by cargo to 5.
The production of Hypernoblium was always a pain to make it happen, so it was a super rare gas that almost nobody made, now that the endgame for atmos shifted to more advanced gases and tools, Hypernoblium needed a little rework to fit right into those changes.
Atmos canisters now display their correct max. pressure capacity. Game code always expects kPa, code for SI-prefix-generation only expects the base unit (here: Pa), so the displayed value was always off by the factor 1000.
This PR removes the burn damage you accumulate when breathing nitryl and adds a reaction to breakdown nitryl into its components(excluding bz) when in contact with oxygen under 600k. This produces small amounts of heat.
Nitryl, as it stands, is barely made or used due to the constant damage you take from breathing it, which causes damage slowdown after less than a minute of use. By making nitryl unsafe or unable to breathe with oxygen present, users must turn to pluoxium while using it in tanks, or hyper-nobilium when filling a room with it. BZ is not refunded if you waste your nitryl.
You now burp while breathing nitryl instead of gasping because it no longer directly harms you.
Breathing nitryl will cause lung damage proportional to the amount you are breathing at a rate proportional to the amount you are breathing when it makes up more than 10% of your breath.
imo; the ss13 audio-scape is quite barren, you can only hear most things if you can see them, which in my opinion doesn't make much sense. This changes that so you can hear further away, but falloff is much higher, so in reality you will only hear things relatively quietly when they're out of sight.
This PR increases the hearing distance of most sound by 9, excluding sounds such as antag items that are meant to be used stealthily
This PR also replaces Byond's inbuilt falloff system with something I made, (And thanks to potato for helping me throw together a formula for it). This fall-off system makes sound fall off more naturally, with sounds being full volume within a certain range, and then softly falling off until they are completely quiet. This makes for a smoother transition between "This sound is full volume" and "I dont hear this sound".
Co-authored-by: ff <ff>
removes hexane gas from video game
(the ability to hear dchat got removed like half a day ago) (Lemons note, it's been more then half a day)
it will speed up atmos a bit with less reactions, the reagent from the gas does the same things as halon + bz and the reaction from it is pretty similar to halon, they are both gases that exist to stop fires, i dont think we need both
Before, cryo used overlays for humans and snowflake sprites for other animals. Now, it just makes the mob stand up and show it as vis_contents, applying a masking filter so that nothing out of the cryo sprite gets rendered.
Added a trait that forces the user to stand up as well.
Implements the ?. operator, replacing code like A && A.B with A?.B
BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.
This is a pretty big change all around. The gist of it is that it moves the mobility_flags into traits or variables that can track the sources, and to which we can append code to react to the events, be it via signals or via on_event-like procs.
For example, MOBILITY_STAND could mean, depending on context, that the mob is either already standing or that it may be able to stand, and thus is lying down.
There was a lot of snowflakery and redefinitions on top of redefinitions, so this is bound to create bugs I'm willing to fix as I learn them.
The end-goal is for every living mob to use the same mobility system, for the traits to mean the same among them, and for no place to just mass-change settings without a way to trace it, such as with mobility_flags = NONE and mobility_flags = ALL
Fixes AIs being able to strip nearby people. They've lost their hands usage.
* Most OP atmos tool. RPD that can unwrench pipes.
Adds reverse wrench mode upgrade to the RPD.
Attention, due to budget cuts, the mode is hard linked to the destroy mode control button.
Now /obj/machinery/atmospherics/deconstruct(disassembled = TRUE) return created obj/item/pipe
Co-authored-by: girl <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
Cold room air alarm no longer wants to be at -60C, now has more reasonable temp thresholds set for the -14C default freezer temp (only meta uses this currently). Also replaces the meta medbay freezer with the cold room air alarm subtype.
Air alarms going off by default is bad.
* Replaces some CANATMOSPASS calls with a new define that checks if the turfs are in each others atmos adjacent list, as that's the same info that they want.
Adds variants for a bunch of atmos machinery that were missing them:
unary tanks
atmos filters
atmos control computers (and circuit boards)
atmos tank turfs
atmos tank outlet injectors
atmos tank siphon vents
gas miners
All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.
So yeah the multi-z pipe adapter was showing the big gmod error.
This fixes it and adds multiple directions and layers for the adapter.
Also RPD now can produce said manifold.
Also this reworks the painting mechanism so that it uses a variable+proc instead of checking for subtypes .
* Fixes pump UIs not respecting max_pressure/max_rate setting
* Fixed min/max rates and pressures for atmos devices UIs
* Maximize default atmos tank injectors rate instead of hardcoding
Fixes#53659
Also fixes the same issue with the new pressure valve. The tgui for some reason had hardcoded the max_rate/max_pressure despite them being readily available.
qdel'd objects could still process in SSair because SSair utilises a cache whenever it has to resume processing runs from a partially completed state from running out of processing time.
Of all the things that processed on SSair, only one thing actually took care to remove itself from the cache as well on deletion.
This is an important subsystem and the processing lists should not be public. Objects don't need to know how SSair works, they just call the proc to add when they start processing and call the proc to remove when they finish.
Thanks to @LemonInTheDark and @willox for spending a lot of time helping me track down a proper fix to this issue.
Adds a mapping helper for piping, it works on all layers, works on all colors, and it autoconnects to other pipe devices. making it extremely useful.
Making mapping less of a massive fucking clusterfuck of burnout is always good.
Mappers can now use Smart Pipes, pipes that autoconnect to other pipes, like redstone! MAPPERS ONLY!
Fix connector double cap. Now really. (Lemon's note, the last fix didn't properly well, fix things. Wrong arguments being passed, ect. this should do it, as it properly clears old overlays now.)
fix#53437
bugs is bad