mirror of
https://github.com/CHOMPstation/CHOMPstation.git
synced 2026-08-24 04:26:38 +01:00
VS: Support genetic modifiers in resleeving, fix colorblindness
This commit is contained in:
@@ -118,11 +118,13 @@
|
||||
desc = "You simply can't see colors at all, period. You are 100% colorblind."
|
||||
cost = -1
|
||||
|
||||
/datum/modifier/colorblindness_mono
|
||||
name = "Colorblindness (Monochromancy)"
|
||||
desc = "You simply can't see colors at all, period. You are 100% colorblind."
|
||||
|
||||
/datum/trait/colorblind/apply(var/datum/species/S,var/mob/living/carbon/human/H)
|
||||
..(S,H)
|
||||
if(!H.plane_holder)
|
||||
H.plane_holder = new(H)
|
||||
H.plane_holder.set_vis(VIS_D_COLORBLIND,TRUE) //The default is monocrhomia, no need to set values
|
||||
H.add_modifier(/datum/modifier/trait/colorblind_mono)
|
||||
|
||||
/datum/trait/colorblind/para_vulp
|
||||
name = "Colorblindness (Para Vulp)"
|
||||
@@ -131,7 +133,7 @@
|
||||
|
||||
/datum/trait/colorblind/para_vulp/apply(var/datum/species/S,var/mob/living/carbon/human/H)
|
||||
..(S,H)
|
||||
H.plane_holder.alter_values(VIS_D_COLORBLIND,list("variety" = "Paradise Vulp"))
|
||||
H.add_modifier(/datum/modifier/trait/colorblind_vulp)
|
||||
|
||||
/datum/trait/colorblind/para_taj
|
||||
name = "Colorblindness (Para Taj)"
|
||||
@@ -140,4 +142,4 @@
|
||||
|
||||
/datum/trait/colorblind/para_taj/apply(var/datum/species/S,var/mob/living/carbon/human/H)
|
||||
..(S,H)
|
||||
H.plane_holder.alter_values(VIS_D_COLORBLIND,list("variety" = "Paradise Taj"))
|
||||
H.add_modifier(/datum/modifier/trait/colorblind_taj)
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
var/body_oocnotes
|
||||
var/list/limb_data = list(BP_HEAD, BP_L_HAND, BP_R_HAND, BP_L_ARM, BP_R_ARM, BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG, BP_GROIN, BP_TORSO)
|
||||
var/list/organ_data = list(O_HEART, O_EYES, O_LUNGS, O_BRAIN)
|
||||
var/list/genetic_modifiers = list()
|
||||
var/toocomplex
|
||||
var/sizemult
|
||||
var/weight
|
||||
@@ -174,6 +175,12 @@
|
||||
//Just set the data to this. 0:normal, 1:assisted, 2:mechanical, 3:digital
|
||||
organ_data[org] = I.robotic
|
||||
|
||||
//Genetic modifiers
|
||||
for(var/modifier in M.modifiers)
|
||||
var/datum/modifier/mod = modifier
|
||||
if(mod.flags & MODIFIER_GENETIC)
|
||||
genetic_modifiers.Add(mod.type)
|
||||
|
||||
if(add_to_db)
|
||||
SStranscore.add_body(src)
|
||||
|
||||
@@ -204,6 +211,7 @@
|
||||
src.body_oocnotes = orig.body_oocnotes
|
||||
src.limb_data = orig.limb_data.Copy()
|
||||
src.organ_data = orig.organ_data.Copy()
|
||||
src.genetic_modifiers = orig.genetic_modifiers.Copy()
|
||||
src.toocomplex = orig.toocomplex
|
||||
src.sizemult = orig.sizemult
|
||||
src.aflags = orig.aflags
|
||||
|
||||
@@ -69,6 +69,10 @@
|
||||
H.dna = R.dna.Clone()
|
||||
H.original_player = current_project.ckey
|
||||
|
||||
//Apply genetic modifiers
|
||||
for(var/modifier_type in R.genetic_modifiers)
|
||||
H.add_modifier(modifier_type)
|
||||
|
||||
//Apply damage
|
||||
H.adjustCloneLoss((H.getMaxHealth() - config.health_threshold_dead)*0.75)
|
||||
H.Paralyse(4)
|
||||
|
||||
Reference in New Issue
Block a user