Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[MIRROR] The death or internal/external organ pathing (ft. fixed fox …
…ears and recoloring bodypart overlays with dye sprays) (#87434) (#4634) * The death or internal/external organ pathing (ft. fixed fox ears and recoloring bodypart overlays with dye sprays) (#87434) This PR kills the abstract internal and external typepaths for organs, now replaced by an EXTERNAL_ORGAN flag to distinguish the two kinds. This PR also fixes fox ears (from #87162, no tail is added) and mushpeople's caps (they should be red, the screenshot is a tad outdated). And yes, you can now use a hair dye spray to recolor body parts like most tails, podpeople hair, mushpeople caps and cat ears. The process can be reversed by using the spray again. Time-Green put some effort during the last few months to untie functions and mechanics from external/internal organ pathing. Now, all that this pathing is good for are a few typechecks, easily replaceable with bitflags. Also podpeople and mushpeople need a way to recolor their "hair". This kind of applies to fish tails from the fish infusion, which colors can't be selected right now. The rest is just there if you ever want to recolor your lizard tail for some reason. Proof of testing btw (screenshot taken before mushpeople cap fix, right side has dyed body parts, moth can't be dyed, they're already fabolous): ![immagine](https://github.com/user-attachments/assets/2bb625c9-9233-42eb-b9b8-e0bd6909ce89) :cl: code: Removed internal/external pathing from organs in favor of a bit flag. Hopefully this shouldn't break anything about organs. fix: Fixed invisible fox ears. fix: Fixed mushpeople caps not being colored red by default. add: You can now dye most tails, podpeople hair, mushpeople caps etc. with a hair dye spray. /:cl: * Automatic changelog for PR #87434 [ci skip] * Adds a new INHALE reagent transfer method and applies it to smoking and smoke inhalation. Nitrous oxide (the reagent version) inhalation causes brain damage. (#87306) Adds the ``INHALE`` transfer method. Smoking and smoke exposure now uses this method. Makes a few sensible inhalation effects for current behaviours. Adds a unit test amongst the rest of the exposure method tests. Nitrous oxide does brain damage on inhalation based on volume inhaled. Smoke and smoking being based on ingestion rather than inhaling was always weird to me. It'd be nice to have a specific method for smoking instead of a method shared by drinking. Many of our smokables make sense as indigestibles, obviously, but maybe we'd like a chem you can ONLY smoke. ~~Also, I walked out of a job interview and up the street to see a guy throwing his empty nitrous canisters around and yelling at passerbys, so shout out to that fucking guy with this PR.~~ :cl: code: Introduces a INHALE method for reagent transfer. Cigarettes and smoke reactions use this new method. balance: Nitrous oxide now brain damage if you inhale it. So don't do that. /:cl: --------- * Automatic changelog for PR #87306 [ci skip] * Refactor tasting code and reagent taste carrying, no longer taste your stomach contents or have non-existing flavours win out (#87329) Soooooooooooooooooooooooooooooooo tasting code has been jank for a good damn while, and with this we aim to fix that- let's start from the beginning. Earlier when I was making a food item, I noticed that it'd never actually have the taste I gave it, just tasting indescribable as things without tastes do. Weird, cause it definitely has a taste set, and plenty of nutriment subtype reagents!... When looking into it, I noticed that we only copy the tastes to *specifically* the base nutriment and the vitamin subtype: https://github.com/tgstation/tgstation/blob/57b718ad20c3b6af02dbdbc87f3cae4dd4d7e297/code/datums/components/food/edible.dm#L215-L216 But! Surely the other reagents should have tastes, right?.... No: https://github.com/tgstation/tgstation/blob/57b718ad20c3b6af02dbdbc87f3cae4dd4d7e297/code/modules/reagents/chemistry/reagents/food_reagents.dm#L119-L120 we were always returning the tastes data, but never actually setting it except for those two reagents, overriding any and all tastes. This caused the non-taste of the proteins and fats to override the food taste applied to the vitamins with their volume. So, to fix this, we replace these hardcoded ids with a check for `carry_food_tastes` on the nutriment reagent, such that each can individually define whether they carry food tastes. This lets oils have their own tastes, while letting all other nutriments carry the tastes. We then make `get_taste_description(...)` return the base flavour if no special flavour is found, and add base flavours to proteins and vitamins based on what pure proteins/vitamins with no further additives would roughly taste like. This fixes our issue!....... Except, we now always taste something "rich earthy pungent" when we eat. Looking into it, that's the organ tissue reagent, used in our stomachs: https://github.com/tgstation/tgstation/blob/57b718ad20c3b6af02dbdbc87f3cae4dd4d7e297/code/modules/reagents/chemistry/reagents/food_reagents.dm#L232-L236 ....Because whenever we ingest something, we taste the contents of our stomach. This was previously less noticeable, as while it *did* count, it only added a weight for _no flavour_. To fix this we just, well, make it so you taste what you're eating and not the container itself. It's as simple as separating the tasting code from the reagent holder, and making the tasting that happens on ingest exposure use that logic instead. We keep the old logic for the INTJ skillchip and tasting machine, just re-routed through this, and split up some procs to avoid too much duplication. This fixes our issue! Though, there's still some minor issues. This lets us add organ tissue instead of nutriment to other organs so they no longer taste indescribable, as it actually works properly now, but letting organ tissue hold flavours would risk having the stomach organ tissue permanently leech the flavours of the organ tissue you eat. So we make a subtype of organ tissue for the stomach, stomach lining, which cannot hold flavours. This lets us apply the base organ tissue to all other organs without risking stomach contamination. It's jank to taste your stomach contents. It's jank for organs to taste like nothing. It's jank for reagents with flavours to never taste like anything. It's jank for tasteless reagents to block out food flavours. It's jank for organs to only sometimes contain organ tissues. yeah. :cl: refactor: Refactored tasting code. Please report any jank tasting behaviours. fix: You taste what you eat instead of the contents of your own stomach. fix: Other basic nutriment subtypes also carry food flavours, instead of outweighing the food flavours with their lack of flavour. fix: Basic nutriment subtypes have a flavour they default to, in case of not carrying any food flavours. fix: Oils taste like oil instead of tasting indescribable. fix: Clothing eaten by moths actually carries its flavours instead of tasting indescribable. fix: Organs use organ tissue instead of nutriment. fix: You can actually taste organ tissue. qol: Mineral slurry tastes like minerals instead of tasting indescribable. fix: Tasted flavours can actually be "strong" in addition to mild or "a hint of", as intended. qol: Flavours are only strong when their percentage of what you're tasting is more than 4x taste sensitivity instead of 3x, for most default tongues being 60% and lizards 40% of the drink. qol: Tasted flavours are sorted by strength, stronger flavours coming first. qol: Tasted flavours are grouped into "strong", "mild", and "hint" in the message, replacing "You can taste a hint of bitterness, alcohol, a hint of sweetness, and a hint of cola" with "You can taste alcohol and a hint of bitterness, sweetness, and cola". /:cl: --------- * Automatic changelog for PR #87329 [ci skip] * Herculean/Atlas implants get a few additional BOULDER/Equipment related benefits. Boulders are more robust. Natural Athletics gains. (#87469) Herculean/Atlas spinal implants allow you to break boulders to process them manually. Doing so also grants athletics experience. They also increase the speed at which you throw objects, and also increase the range further. The Atlas version also allows you to reduce equipment movespeed penalties. (Fikou wanted me to do this for specifically modsuits, but I don't see any reason this can't apply to more than that, modsuits are just generally the slowest equipment you could wear) Boulders have 30 throw force, are by default HUGE, but have no throw range at all and really weak tk throw range. You need a throwing booster to throw boulders around. (They do extra damage to SPECIAL mobs, like lavaland bosses, because it's funny to kill a god-like being with a huge rock while slow as shit) You naturally get athletics experience by doing some actions. Fireman carrying, climbing tables/crates, climbing rope and climbing ladders give you a slow and steady stream of experience. Rope gives a larger amount if only because the process for doing so is destructive in some way (you have to get more climbing rope eventually, so there is an associated cost). Spinal implants now improve climbing speed for climbing over objects. I just had this strange compulsion to make the spinal implant make you good at throwing boulders at lethal speeds. It already has some cool rock-based special effects around you. Having mastery over rock throwing just kind of made sense. Additionally, I thought it would be a funny method for someone to be able to kill a boss via way of thrown boulders. Or some hapless nuclear operative unprepared for a bunch of assistants lobbing boulders at them. Additionally, I also think it letting you break boulders for ore is a fairly minor but fun addition. Pull boulders out of the vents, smash them. Good work out. Particularly for miners. I talked a while ago with I think Jacq about adding some natural methods for accumulating athletics experience over the course of a round that doesn't involve the dedicated weight lifting machinery/boxing bag. I thought any method for doing that should probably be relatively slow and definitely nonviable for significant athletics gains beyond novice level. Mooost people will hit novice on a multi-z map if they go up and down ladders enough. Or climb a lot of tables/crates. The results aren't going to have much noticeable impact, however, as you only gain appreciable benefits above novice. Probably just greater visibility of fitness in a round. (Rather nice for the RD, who gets to show off how swole they are more regularly). <details> <summary>Spoiler warning</summary> ![CES8b4XWEAAIakb](https://github.com/user-attachments/assets/8baaa012-8048-419f-b936-2dc6621db3c2) </details> :cl: balance: Herculean/Atlas spinal implants make you better at climbing tables, throw objects much faster and throw them much further. You can also break boulders with your bare hands. balance: Atlas implants let you offset the weight of worn/carried equipment (like boulders). balance: Boulders have no throw range, but if you can throw them via throwing range boosters (such as the spinal implant), they deal fairly large amounts of damage. Especially to powerful mobs like lavlaand bosses. balance: You naturally gain a small amount of athletics experience doing some tasks, such as climbing rope, ladders and tables/crates, fireman carrying, or smashing open boulders. /:cl: * Fixes eye charts so that master isn't failing (#87648) The eye charts were still using the ``internal`` organ subtype. This fixes that. Phone PR baby. We love webedits. :cl: fix: Eye charts now use the correct subtype for eye organs. /:cl: * Adds eye color overrides, converts cult/weed/silverscale eye effects to use them (#87782) Eye color effects are now controlled via a new overrides system, which should prevent conflicts between different sources - such as smoking weed, becoming a cultist, stopping your weed and getting normal eyes (and subsequently getting your red eyes back when you get deconverted) Should ensure that different eye color effects don't collide between each other. Also need this for a future feature I wanna add. :cl: refactor: Eye color effects are now controlled via a new overrides system, which should prevent conflicts between different sources. /:cl: --------- Co-authored-by: Ghom <[email protected]> * Automatic changelog for PR #87782 [ci skip] * Fixes ayylmao's brain examine lines (#87869) Closes #87861 Merge skew my beloved :cl: fix: Fixed ayylmao's brain examine lines /:cl: * Automatic changelog for PR #87869 [ci skip] * modsuit given traits use refs + fixes their deletion not working right + need boot out for ai to move (#87726) so there is a problem of: if 2 modsuit modules were to apply the same trait and 1 were removed, shit would break so now all instances of mod_trait applied to the modsuit wearer are refs instead, with mod_trait used for stuff added to items as that isnt likely to have the same thing also qdeleted modsuits delete their parts apparently accidentally removed at some point. the previous time they did it caused qdel loops but this time it doesnt makes boots need to be out for an ai to move someone in a modsuit improves the ui, non-standard cores now have unique colors for the charging bar, and you can extend/retract things from ui, also adds a configurable button to config menu so that the tether doesnt repurpose the pin function made for circuits redoes modsuit balloon alerts to use simpler language makes the weapon recall module make you pick up the weapon if its on your tile as throws dont work on same tile ![image](https://github.com/user-attachments/assets/97a0eb85-8127-4297-b679-3e5488ce73be) futureproofing (also technically presentproofing, if you wear something like infiltrator and normal back modsuit and both have ai control they both will give you a trait) also ai movement doesnt have any checks currently, i think it makes sense that it would require your boots to be out so that the ai has something to move fix stuff change break boom wack * Automatic changelog for PR #87726 [ci skip] * Fixes brains turning invisible after being washed instead of being smooth (#87898) * Automatic changelog for PR #87898 [ci skip] * Fix flap emote runtimes (#87789) Wingless creatures don't cause runtimes when they flap their imaginery wings Runtimes bad :cl: fix: Fixes a runtime when wingless creature flaps their wings /:cl: * Automatic changelog for PR #87789 [ci skip] * [NO GBP] Syndicate Biodome Fixes (#87792) Fixed cheesing by monkeyification by changing the gorillas factions to hostile. Tweaked the loot to be consistent and nerfed slightly (Makarovs instead of APS) Also changed one of the observation cells to a cytology room with a clown glutton ![image](https://github.com/user-attachments/assets/2b3f5ea0-75ea-42f1-98f7-50b7ebd60b04) ![image](https://github.com/user-attachments/assets/9d700be2-7108-4d7a-90f9-7a8f19737879) It fixes stuff and prevents cheese. :cl: fix: Syndicate Biodome fixes /:cl: * Automatic changelog for PR #87792 [ci skip] * vampires are a human subtype & have stomachs/lungs (#87622) Vampires have stomachs and lungs. They still don't have hunger. Vampires are a human subtype. Vamp bloodtype from "U"nknown to "V"ampire For some stupid reason vampires lacked stomachs. Vampires drinking wine is a classic trope that currently results in vomit magically appearing below you. Evidence of wine: ![ielbiv4shad81](https://github.com/user-attachments/assets/ef39c522-282d-4763-8802-a6fb180aafb2) Vampires are a human subtype too like felinids because this resulted in dumb bugs like no screaming sound. Vamp bloodtype from "U"nknown to "V"ampire I mean if we haev these guys on halloween. We probably know their blood right. :cl: fix: vampires are a human subtype & have stomachs/lungs /:cl: --------- Co-authored-by: Ghom <[email protected]> * Automatic changelog for PR #87622 [ci skip] * Modsuits no longer horrifically screech when taken off (#88326) Closes #87979 ***FSZZHHHH*** :cl: sound: Modsuits no longer horrifically screech when taken off /:cl: * Automatic changelog for PR #88326 [ci skip] * Modular updates --------- Co-authored-by: SyncIt21 <[email protected]> Co-authored-by: Ghom <[email protected]> Co-authored-by: MrMelbert <[email protected]> 1 Co-Authored-By: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com> Co-Authored-By: necromanceranne <[email protected]> Co-Authored-By: SyncIt21 <[email protected]> Co-Authored-By: Ghom <[email protected]> Co-Authored-By: _0Steven <[email protected]> Co-Authored-By: MrMelbert <[email protected]> Co-Authored-By: SmArtKar <[email protected]> Co-Authored-By: Fikou <[email protected]> Co-Authored-By: Alexis <[email protected]> Co-Authored-By: larentoun <[email protected]> Co-Authored-By: Koi <[email protected]> Co-Authored-By: carlarctg <[email protected]>
- Loading branch information