I wanted to refactor how movetype flags are added and removed into traits to prevent multiple sources of specific movement types from conflicting one other. I ended up also having to refactor the floating animation loop (the one that bobs up and down) code in the process.
Why It's Good For The Game
A way to avoid conflict from multiple sources of movement types.
This also stops melee attacks, jitteriness and update_transform() from temporarily disabling the floating movetype bitflag altogether until the next life tick.
Tested, but i'm pretty sure improvements could be made.
Changelog
cl
fix: jitteriness, melee attack animations and resting/standing up should no longer momentarily remove the floating movement type.
/cl
Jack and Style figured out that sound environments can be cancelled by setting some settings in Echo. By default audio has no reverb, but if a sound environment is selected in playsound_local it will become a reverb sound.
This makes every room sound a bit different. The only caveat is is that if you move into another room, Already playing sounds will transition into the new environment, which sounds odd.
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Missed check for stomach food reagents in stomach vomit code causing pain.
Now vomit code checks that the reagents it has are not in the food reagents when applying damage.
fixes#55000
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.
default_features and mutant_bodyparts have been used ambivelently since a long time, so I'm merging the two together and replacing relevant 'in' list access operations with '[ ]' for performance while I'm at it.
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
* Self_attack for arms if the hand is empty
* Oops
* Light runtime fix
This is not my runtime, but I will fix it all the same
* return better good
* How about a variable name that actually fits
* asdf
Hexane no longer grant the ability to hear dchat (yep it was a bad idea) (Lemon's note: I am very dumb)
Hexane now gives the resist heat trait to fight fires better but can give you a lot of hallucinations
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.
Basically, all ethereal charge capacity and interactions have been scaled upwards by 20x.
Power wise, ethereals now hold up to 3000, with the max safe threshold being 2000. For reference, upgraded powercells can hold 2500, with high capacity holding 10K).
All appropriate values have been tweaked to match this change. There shouldn't be ANY sort of noticeable difference in game, aside from power sources depleting faster, and a few values which I decided to tweak for balance reasons. They are: power cell draining time is 1.5 seconds longer, and light draining time is 0.5 shorter. Also, draining cells has less of a punishment multiplier upon the cell now, (originally, the the cell lost 33x as much as you received. now its 12x). (to avoid returning to this in why its good, I did this because now that ethereals are capable of holding more, I can afford to have less of a punishment, while still maintaining a reasonable level of punishment).
Also some minor code and grammar improvements.
Its all over the place, messy, and overall a bad enough gamemode to be removed from rotation.
A rework would have to tear out everything as is so there is no reason to allow the shitcode to live beyond tripping up everything.
Healium was too stronk, nerfed it to behave like a good gas.
Added coughing and euphoria mood if breathed in small quantities to alert the player.
Sleep if it is 3 moles in the air for 3 to 5 seconds
Sleep you if is more than 6 moles and it heals you while knocked down.
Lowered the amount of healing done
Edit: It doesnt knock you out, it makes you sleep now, since the knockdown effect was so strong that people wouldn't wake up
Added simple code guards at the start of the two remaining peices of code that are responsible from spamming heart attack messages to early return if the owner doesn't actually use their heart.
🆑 Qustinnus
code: Moves spaghetti to new food
fix: Fixes some more size problems on food
fix: Fixes organs having wrong params
/🆑fixes#53482fixes#53572
Changes the name of the recipe for the gloves to make them more clear
Adds a note in the tongue file to make sure it's clear you SHOULDN'T SEE THAT TONGUE.
Adds a unique chat message for mimes who use sign language, to make it clearer you can't cheese as a mime
Adds a unique slurring verb for drunkards
Removes the ability for sign languagers to use megaphones, which I forgot existed in the game.
Punctuation removal now replaces all punctuation used with periods rather than with blank space, to reduce run-on sentences.
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
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
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.
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>