[MIRROR] Adds Trait Genetics (#10142)

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-02-13 07:41:59 -07:00
committed by GitHub
parent d81e145924
commit 7bfffc808d
138 changed files with 3818 additions and 2996 deletions

View File

@@ -725,7 +725,6 @@
M.heal_organ_damage(3 * removed, 0) //Gives the bones a chance to set properly even without other meds
if(ishuman(M))
var/mob/living/carbon/human/H = M
//CHOMPEdit Begin
var/totalvol = 0
if(H.ingested)
for(var/datum/reagent/R in H.ingested.reagent_list)
@@ -736,10 +735,10 @@
for(var/obj/item/organ/external/O in H.bad_external_organs)
if(O.status & ORGAN_BROKEN)
O.mend_fracture() //Only works if the bone won't rebreak, as usual
H.custom_pain("You feel a terrible agony tear through your bones!",60)
H.custom_pain(span_danger("<b><font size=2>You feel a terrible agony tear through your [O.name]!</font></b>"),60,TRUE)
H.AdjustWeakened(10) //Bones being regrown will knock you over
H.adjustHalLoss(60)
H.AdjustStunned(1) //Bones being regrown will knock you over - CHOMPEdit - Crawling made this trivial, get stunned
//CHOMPEdit End
H.AdjustStunned(1) //Bones being regrown will knock you over
/datum/reagent/myelamine
name = REAGENT_MYELAMINE
@@ -747,11 +746,11 @@
description = "Used to rapidly clot internal hemorrhages by increasing the effectiveness of platelets."
reagent_state = LIQUID
color = "#4246C7"
metabolism = REM * 0.75 //CHOMPEdit
metabolism = REM * 0.75
overdose = REAGENTS_OVERDOSE * 0.5
overdose_mod = 1.5
scannable = 1
var/repair_strength = 6 //CHOMPEdit
var/repair_strength = 6
/datum/reagent/myelamine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_DIONA)
@@ -925,6 +924,7 @@
overdose = 20
overdose_mod = 1.5
scannable = 1
metabolism = REM * 0.06
/datum/reagent/immunosuprizine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
var/strength_mod = 1 * M.species.chem_strength_heal
@@ -972,14 +972,14 @@
H.adjustToxLoss((15 / strength_mod))
I.take_damage(1)
/datum/reagent/skrellimmuno
/datum/reagent/skrellimmuno //skrell exist?
name = REAGENT_MALISHQUALEM
id = REAGENT_ID_MALISHQUALEM
description = "A strange, oily powder used by Malish-Katish to prevent organ rejection."
taste_description = "mordant"
reagent_state = SOLID
color = "#84B2B0"
metabolism = REM * 0.75
metabolism = REM * 0.06
overdose = 20
overdose_mod = 1.5
scannable = 1
@@ -1021,49 +1021,18 @@
/datum/reagent/ryetalyn
name = REAGENT_RYETALYN
id = REAGENT_ID_RYETALYN
description = REAGENT_RYETALYN + " can cure all genetic abnomalities via a catalytic process."
description = REAGENT_RYETALYN + " can cure DNA, Cloning, and genetic damage via a catalytic process."
taste_description = "acid"
reagent_state = SOLID
color = "#004000"
overdose = REAGENTS_OVERDOSE
/datum/reagent/ryetalyn/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
var/needs_update = M.mutations.len > 0
M.mutations = list()
M.disabilities = 0
M.sdisabilities = 0
var/mob/living/carbon/human/H = M
if(alien == IS_SLIME && istype(H)) //Shifts them toward white, faster than Rezadone does toward grey.
if(prob(50))
if(H.r_skin)
H.r_skin = round((H.r_skin + 510)/3)
if(H.r_hair)
H.r_hair = round((H.r_hair + 510)/3)
if(H.r_facial)
H.r_facial = round((H.r_facial + 510)/3)
H.adjustToxLoss(6 * removed)
if(prob(50))
if(H.g_skin)
H.g_skin = round((H.g_skin + 510)/3)
if(H.g_hair)
H.g_hair = round((H.g_hair + 510)/3)
if(H.g_facial)
H.g_facial = round((H.g_facial + 510)/3)
H.adjustToxLoss(6 * removed)
if(prob(50))
if(H.b_skin)
H.b_skin = round((H.b_skin + 510)/3)
if(H.b_hair)
H.b_hair = round((H.b_hair + 510)/3)
if(H.b_facial)
H.b_facial = round((H.b_facial + 510)/3)
H.adjustToxLoss(6 * removed)
// Might need to update appearance for hulk etc.
if(needs_update && ishuman(M))
H.update_mutations()
//Ryetalyn is for genetics damage curing not resetting mutations, breaks traitgenes
if(alien == IS_DIONA)
return
var/chem_effective = 1 * M.species.chem_strength_heal
M.adjustCloneLoss(-2 * removed * chem_effective)
/*/datum/reagent/hyperzine
name = REAGENT_HYPERZINE
@@ -1232,7 +1201,7 @@
var/obj/item/organ/external/O = pick(H.organs)
if(prob(20) && !istype(O, /obj/item/organ/external/chest/unbreakable/slime) && !istype(O, /obj/item/organ/external/groin/unbreakable/slime))
to_chat(M, span_critical("You feel your [O] begin to dissolve, before it sloughs from your body."))
O.droplimb() //Splat.
O.droplimb(TRUE, DROPLIMB_ACID)
return
//Based roughly on Levofloxacin's rather severe side-effects
@@ -1246,7 +1215,7 @@
M.hallucination = max(M.hallucination, 10)
//One of the levofloxacin side effects is 'spontaneous tendon rupture', which I'll immitate here. 1:1000 chance, so, pretty darn rare.
if(ishuman(M) && rand(1,10000) == 1) //VOREStation Edit (more rare)
if(ishuman(M) && rand(1,10000) == 1) //Adjusted to 1:10000
var/obj/item/organ/external/eo = pick(H.organs) //Misleading variable name, 'organs' is only external organs
eo.fracture()

View File

@@ -186,12 +186,12 @@
taste_mult = 0.6
reagent_state = LIQUID
color = "#CF3600"
strength = 15 //CHOMPEdit this shit needs to be changed sheesh
metabolism = REM * 0.5 //CHOMPEdit holy balls
strength = 15
metabolism = REM * 0.5
/datum/reagent/toxin/cyanide/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
..()
M.adjustOxyLoss(10 * removed) //CHOMPEdit the fucking toxins are already crazy enough, calm down
M.adjustOxyLoss(10 * removed)
M.Sleeping(1)
/datum/reagent/toxin/mold
@@ -624,16 +624,12 @@
if(M.dna)
if(prob(removed * 10)) // Removed is .2 per tick. Multiplying it by 10 makes it a 2% chance per tick. 10 units has 50 ticks, so 10 units injected should give a single good/bad mutation.
randmuti(M)
if(prob(98))
randmutb(M)
else
randmutg(M)
domutcheck(M, null)
M.UpdateAppearance()
if(prob(removed * 40)) //Additionally, let's make it so there's an 8% chance per tick for a random cosmetic/not guranteed good/bad mutation.
randmuti(M)//This should equate to 4 random cosmetic mutations per 10 injected/20 ingested/30 touching units
to_chat(M, span_warning("You feel odd!"))
M.apply_effect(10 * removed, IRRADIATE, 0)
/datum/reagent/slimejelly
@@ -896,16 +892,12 @@
if(M.dna)
if(prob(removed * 10))
randmuti(M)
if(prob(98))
randmutb(M)
else
randmutg(M)
domutcheck(M, null)
M.UpdateAppearance()
if(prob(removed * 40))
randmuti(M)
to_chat(M, span_warning("You feel odd!"))
M.apply_effect(16 * removed, IRRADIATE, 0)
/datum/reagent/aslimetoxin
@@ -916,7 +908,7 @@
reagent_state = LIQUID
color = "#FF69B4"
/datum/reagent/aslimetoxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) // TODO: check if there's similar code anywhere else
/datum/reagent/aslimetoxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(M.isSynthetic())
return
@@ -926,16 +918,12 @@
if(M.dna)
if(prob(removed * 10))
randmuti(M)
if(prob(98))
randmutb(M)
else
randmutg(M)
domutcheck(M, null)
M.UpdateAppearance()
if(prob(removed * 40))
randmuti(M)
to_chat(M, span_warning("You feel odd!"))
M.apply_effect(6 * removed, IRRADIATE, 0)
/*