VS: Support genetic modifiers in resleeving, fix colorblindness

This commit is contained in:
Arokha Sieyes
2018-05-03 17:52:27 -04:00
parent 8fbf78974a
commit cdd35ccb70
4 changed files with 25 additions and 11 deletions
@@ -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
+4
View File
@@ -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)