* Makes mutant bodyparts and mutcolors into editable genetic traits (plus a whole shitload of otherwise out of scope code improvements because I just HAD to touch old code)
* Mirror
* genetically-editable mutant bodyparts and colors - skyrat edition
Co-authored-by: Funce <funce.973@gmail.com>
* mostly [modular] adds a language for xeno hybrids via culture
* ok special culture
* I FORGOT THE DEFINE
* Update tgstation.dme
Co-authored-by: louiseedwardstuart <bonniefluff>
* Massively buffs debriding surgery (#59865)
Yesterday, I got lasered in the arm twice. A good three minutes later I lose all controle off my arm and have an assistant debride my arm. On a surgical table with sterilizine, this took 2 minutes and 30 seconds.
All wounds can be fixed quite easily, but the infection wound type has always been an absolute nightmare. This was the only time I recorded it, but this has happened so many times and it feels like the average lies around 4~ minutes for this surgery to complete.
It still depends on how badly infected your burn wound is, but it shouldn't take longer than 30 seconds now.
* Massively buffs debriding surgery
Co-authored-by: Time-Green <timkoster1@hotmail.com>
* Fix to_chat error with empty surgery step strings (#59876)
/datum/surgery_step/incise/success() has no vague_message arg in a certain edge case when calling display_results. This eventually leads to an empty string being sent to /mob/proc/show_message() - Unsure if this is intended or not, but I've added an equivalent string based on the other usages of display_results instead of sending an empty string.
* Fix to_chat error with empty surgery step strings
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Remove unnecessary species breath code (#59864)
Human code override breathe(), called the species datum which checked if the human had NO_BREATH. I just made it check for NOBREATH directly, since it is apparently a human only trait.
If someone wants to implement special breathing checks/behaviour, make custom lungs
* removes unnecessary species breath code
Co-authored-by: Time-Green <timkoster1@hotmail.com>
* Slightly buffs knife wounds, slightly nerfs scalpel wounds (#59848)
Recently it came to my attention that knives are actually really bad at causing slashing wounds, while the scalpel is probably a little too good at causing them, even through armor. So, here's what this PR does:
Knives in general are more effective at causing slash wounds, especially if the target has no armor/clothing on that limb. The butcher's cleaver in particular is now equally as effective as a circular saw.
Scalpels are a bit less effective at causing slash wounds against armor/clothing, though they're still extremely good at cutting, especially against exposed flesh.
With these stats, knives will be more effective against unarmored targets, and can actually be counted on to draw blood when needed.
* Slightly buffs knife wounds, slightly nerfs scalpel wounds
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Refactors species stomach code, makes ethereal charge inherent to their stomach (#59801)
A stomach would literally just ask the species datum how to be hungry and made a bunch of exceptions for ethereals. I mostly just moved code around so that hunger is handled by a persons stomach, thus shrinking the species.dm bloat.
This also makes it so ethereal's charge mechanic is unique to their stomache, instead of this really weird inbetween where just nothing happens and you kinda starve to death. You can stick an ethereal stomach in a human and this will replace their hunger mechanic with the charge mechanic and lets them absorb power from APCs and everything. You can also give ethereals a normal stomach and they'll use the normal hunger mechanics
* Refactors species stomach code, makes ethereal charge inherent to their stomach
Co-authored-by: Time-Green <timkoster1@hotmail.com>
* Fix missing SIGNAL_HANDLER (#59826)
Adds SIGNAL_HANDLER to everywhere that didn't have it that was picked up by dm-lua, which is now ready enough to catch these.
* Fix missing SIGNAL_HANDLER
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Digitigrade Paralysis BugFix (#59697)
* Fixing Digitigrade Legs, Adding Sanity Checks
- A limb's attach_limb proc now uses the set_owner() proc instead of setting the owner manually, fixing problems where limbs that were meant to be paralyzed were not
- Added a sanity check to set_usable_legs to ensure the value isn't set lower than 0
* Adds A Stack Trace to Set_Usable_Legs
- set_usable_legs now calls stack_trace() whenever it is provided with a negative value
* Digitigrade Paralysis BugFix
Co-authored-by: Beatrice <83368538+SpaceDragon00@users.noreply.github.com>
* Adds Neon Carpet (#59140)
Adds a couple varieties of neon carpet.
Makes decals care about their plane in addition to their layer.
* 0
* A
* a
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Blindness-related bug fix and code improvements (#59616)
TRAIT_BLIND caused by the hypnochair or by being unconscious (eg. sleeping) will no longer prevent you from being flashed.
Moves all raw text strings used in become_blind and cure_blind calls (as well as nanites in general with ADD_TRAIT) into defines.
Code changes not in changelog due to not being even the slightest bit of player facing.
* Blindness-related bug fixes and code improvements
Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
* Makes obj_integrity only updated through procs (#59474)
Having things updating integrity directly is just going to cause more problems down the line as more elements and components depend on being notified of integrity changes. It's an easy mistake to make so making it private should deal with the problem.
get_integrity() might be useful in the future but is mainly a side effect of making obj_integrity private as that also disallows reads.
* Makes obj_integrity private and only updated through procs
* Mirror!
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
* Cleans up some pointlessly defined initialization procs (#59425)
* Cleans up some pointlessly defined initialization procs
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Stops giving you organ damage messages if you arent conscious (#59311)
* Stops giving you organ damage messages if you arent conscious
Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
* use SIGNAL_HANDLER REEEEEE (#59242)
makes as many procs as i can find use the SIGNAL_HANDLER define which i assumed they all already did
* USE SIGNAL_HANDLER REEEEEE
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* it begins
* all
* pain
* i forgot i personally slogged through the entire goddamn surgery code to clean out those single letter variables
* i need to stop rushing
* Update readme.md
* Mechanical surgery - unscrew shell now correctly checks if the random item you use is sharp or not (#59167)
* Mechanical surgery - unscrew shell now correctly checks if the random item you use is sharp or not.
Co-authored-by: FlamingLily <80451102+FlamingLily@users.noreply.github.com>
* Tend Wounds and Debride Infection surgeries now estimate how long you have left to finish (#58682)
* Tend Wounds and Debride Infection surgeries now estimate how long you have left to finish
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Stops ethereal from crystalizing while eaten (#58650)
Checks if an ethereal is in an item or mob before making the crystal. Stops weird cases where one might just appear outside a space dragon or create legions that dropped no corpses. fixes#58643
Look if someone wants to code the process of an ethereal coming back to life in a space dragon's stomach I won't stop you but I will judge you.
* Stops ethereal from crystalizing while eaten
Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
* feedback it isFeedback for mutations deactivating from losing limbs (#58687)
* Feedback for mutations deactivating from losing limbs
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Fix for reagents on_mob_life (#58359)
An update stopped reagent on_mob_life from triggering unless the reagent can be overdosed.
This fixes this issue and allows items like milk to be metabolized again.
This also buffs milk healing in bone stomachs as it was really weak, the total milk and the amount you heal have both been increased.
Fixes#58293
* Fix for reagents on_mob_life
Co-authored-by: NightRed <nightred@gmail.com>
* Fermichem 2.5 - Organ(kinda) related medicines adjustments! (#57806)
* Initial dump
* Getting there
* Update impure_medicine_reagents.dm
* Update impure_medicine_reagents.dm
* Adds the reaction mechanics
* Compiling fixes
* Update medicine_reagents.dm
* Updates the debug machine to allow for live recipe edits and tweaks the rest of the stuff
* Few fixes and things I missed
* linters
* Feedback changes
* Apply suggestions from code review. Thanks ATH1909!
Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>
* More changes
* Few more tweaks before component and eyes
* Update chem_recipe_debug.dm
* Fixes loop I think
* I guess I'll just have to hope qdel does it's job
* It really doesn't like nullspace
* Fixes bug in oculine and misspelling
* No obsessed traumas to avoid forced antaging
Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@ gmail.com>
* Fermichem 2.5 - Organ(kinda) related medicines adjustments!
Co-authored-by: Thalpy <33956696+Thalpy@users.noreply.github.com>
Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@ gmail.com>
* cultures and languages
* botanist fix
* missing languages
* make sure new saves from scratch get a species set correctly
* Update preferences.dm
* Update new_player.dm
Co-authored-by: Gandalf <jzo123@hotmail.com>