mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
[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:
committed by
GitHub
parent
d81e145924
commit
7bfffc808d
@@ -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()
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user