mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-09 07:46:20 +00:00
## About The Pull Request Revival of https://github.com/tgstation/tgstation/pull/79691 A while back, I made this PR, but lost motivation after diving too deep into the code soup of can_breathe and related procs. Now, I have removed those parts, and have simplified that part of the code to the point I think it's ready for review. Many reviews from the previous PR have been addressed in this PR. <hr> <details> <summary>Details</summary> Asthma is a 4 point negative quirk that emulates real life asthma. It works by slowly decreasing the amount of pressure each breath you take receives, until your lungs completely seal, ensuring death if you dont get oxyloss meds/windpipe surgery. Inflammation (the tracker for intensity) increases whenever you breathe smoke, use a cigarette, metabolize histimine, or suffer an asthma attack. Asthma attacks have a low chance of happening every second, starting 10 minutes after you spawn and with a 20-30 grace period between attacks. They are "diseases" that cant be outright cured by albuterol, only put into remission. They increase inflammation at varying rates depending on their severity, with extreme asthma attacks being a immediate threat to your life while mild ones might not even cause inflammation. The response to these is always the same - use your inhaler before you start choking. Asthmatics start with a rescue inhaler, a low-capacity inhaler loaded with albuterol, which I will get to later. Albuterol is a new medicine thats a little tricky to make but still doable. It can be efficiently created with inverse convermol, or transmutated from salbutamol and convermol. The opposite is true, with albuterol able to be turned into salbutamol. Two canisters are available in chemvends. Upon use, it increases the virtual pressure of all breaths taken by 40%. This allows for you to breathe in lower pressure environments, as well as enhancing the effects of things like healium. It's OD causes your diaphram to spasm, causing sporadic losebreath and forced breathing. Inhalers are a fancy new reagent application apparatus that uses the INHALE reagent bitflag. Inhalers themselves are rather unremarkable, they are merely the method of using inhaler canisters (they also have a rotary display approximating the uses left in a canister - just like real life inhalers). Inhaler canisters are the reagent containers, and are generally low capacity. They can only be used in a inhaler, and contain aerosolized chemicals. Inhaler canisters and inhalers are unlocked from chemical synthesis, and are printable for cheap from a medlathe. In order to use a inhaler, one must uncover the mouth of a carbon and wait a few seconds (its faster if its a self-application) before a small amount of the reagents are delivered via the INHALE bitflag. This only works on things currently breathing - if theyre dead, have no lungs, or just, arent breathing - it will fail. This includes asthmatics with 100% inflammation. </details> <img width="181" height="74" alt="282863233-77a7cd6b-44d2-458e-9966-06d485df1521" src="https://github.com/user-attachments/assets/293b6659-0834-4e9a-b033-cc3b0cfde18e" /> <img width="1465" height="202" alt="282863346-2a247736-0c3a-43b0-a60b-7cff10ce4963" src="https://github.com/user-attachments/assets/5d9a13dc-b7b2-4de2-adda-8fbc8276e667" /> Sprites are not mine; they are from swanni and I can NOT sprite for the life of me ## Why It's Good For The Game 1. Asthma is just cool. One of my favorite features on bay was the fact lung damage required you to turn up the pressure on your O2 tank to survive, and this does precisely that. 2. Its always fun to add new ways to interact with atmos as a player that arent grossly broken, and I fail to see how a 40% increase of gas intake will really affect balance too badly. 3. Inhalers are badass. ## Changelog 🆑 add: Asthma quirk, based on IRL asthma add: Inhalers, a new reagent administering method that uses INHALE add: Albuterol, a new reagent that increases the amount of gas you inhale by 40% balance: Inverse convermol now forms once the reaction is done, not on metabolize /🆑 --------- Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> # Conflicts: # code/datums/quirks/negative_quirks/allergic.dm # code/game/objects/items/devices/scanners/health_analyzer.dm
78 lines
2.3 KiB
Plaintext
78 lines
2.3 KiB
Plaintext
/** Atmos related */
|
|
#define ALERT_TOO_MUCH_OXYGEN "too_much_oxy"
|
|
#define ALERT_NOT_ENOUGH_OXYGEN "not_enough_oxy"
|
|
|
|
#define ALERT_TOO_MUCH_PLASMA "too_much_plas"
|
|
#define ALERT_NOT_ENOUGH_PLASMA "not_enough_plas"
|
|
|
|
#define ALERT_TOO_MUCH_CO2 "too_much_co2"
|
|
#define ALERT_NOT_ENOUGH_CO2 "not_enough_co2"
|
|
|
|
#define ALERT_TOO_MUCH_N2O "too_much_n2o"
|
|
#define ALERT_NOT_ENOUGH_N2O "not_enough_n2o"
|
|
|
|
#define ALERT_TOO_MUCH_NITRO "too_much_nitro"
|
|
#define ALERT_NOT_ENOUGH_NITRO "not_enough_nitro"
|
|
|
|
#define ALERT_BRONCHODILATION "bronchodilation"
|
|
|
|
#define ALERT_NOT_ENOUGH_WATER "not_enough_water"
|
|
|
|
/** Mob related */
|
|
#define ALERT_SUCCUMB "succumb"
|
|
#define ALERT_BUCKLED "buckled"
|
|
#define ALERT_HANDCUFFED "handcuffed"
|
|
#define ALERT_LEGCUFFED "legcuffed"
|
|
#define ALERT_IRRADIATED "irradiated"
|
|
#define ALERT_EMBEDDED_OBJECT "embeddedobject"
|
|
#define ALERT_SHOES_KNOT "shoealert"
|
|
#define ALERT_RADIOACTIVE_AREA "radioactive_area"
|
|
#define ALERT_UNPOSSESS_OBJECT "unpossess_object"
|
|
|
|
//antag related
|
|
#define ALERT_HYPNOSIS "hypnosis"
|
|
#define ALERT_MIND_CONTROL "mind_control"
|
|
|
|
//ethereal alerts
|
|
#define ALERT_ETHEREAL_CHARGE "ethereal_charge"
|
|
#define ALERT_ETHEREAL_OVERCHARGE "ethereal_overcharge"
|
|
|
|
/** Alien related */
|
|
#define ALERT_XENO_FIRE "alien_fire"
|
|
#define ALERT_XENO_PLASMA "alien_plas"
|
|
#define ALERT_XENO_NOQUEEN "alien_noqueen"
|
|
|
|
/** Silicon related */
|
|
#define ALERT_NEW_LAW "newlaw"
|
|
#define ALERT_CHARGE "charge"
|
|
#define ALERT_LOCKED "locked"
|
|
#define ALERT_HACKED "hacked"
|
|
#define ALERT_HACKING_APC "hackingapc"
|
|
|
|
/** MODsuit/Mech related */
|
|
#define ALERT_MECH_DAMAGE "mech_damage"
|
|
|
|
/** Food related */
|
|
#define ALERT_DISGUST "disgust"
|
|
|
|
/** Environment related */
|
|
#define ALERT_PRESSURE "pressure"
|
|
#define ALERT_GRAVITY "gravity"
|
|
#define ALERT_FIRE "fire"
|
|
|
|
#define ALERT_TEMPERATURE "temp"
|
|
#define ALERT_TEMPERATURE_HOT "temphot"
|
|
#define ALERT_TEMPERATURE_COLD "tempcold"
|
|
|
|
/** Bitrunning */
|
|
#define ALERT_BITRUNNER_CROWBAR "bitrunning_crowbar"
|
|
#define ALERT_BITRUNNER_COMPLETED "bitrunning_complete"
|
|
#define ALERT_BITRUNNER_INTEGRITY "bitrunning_integrity"
|
|
#define ALERT_BITRUNNER_SHUTDOWN "bitrunning_shutdown"
|
|
#define ALERT_BITRUNNER_RESET "bitrunning_reset"
|
|
#define ALERT_BITRUNNER_THREAT "bitrunning_threat"
|
|
#define ALERT_BITRUNNER_BREACH "bitrunning_breach"
|
|
#define ALERT_BITRUNNER_GLITCH "bitrunning_glitch"
|
|
|
|
#define ALERT_SILICON_RECORDING "silicon_recording"
|