diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index 50fb9484e4..30ed48fb7a 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -487,7 +487,7 @@ var/global/list/remainless_species = list(SPECIES_PROMETHEAN, hair_accesories_list[path] = instance // Custom species traits - paths = typesof(/datum/trait) - /datum/trait + paths = typesof(/datum/trait) - /datum/trait - /datum/trait/negative - /datum/trait/neutral - /datum/trait/positive for(var/path in paths) var/datum/trait/instance = new path() if(!instance.name) diff --git a/code/game/dna/dna2_helpers.dm b/code/game/dna/dna2_helpers.dm index e94befcd8b..3fb282d72d 100644 --- a/code/game/dna/dna2_helpers.dm +++ b/code/game/dna/dna2_helpers.dm @@ -243,7 +243,7 @@ H.custom_exclaim = dna.custom_exclaim H.species.blood_color = dna.blood_color var/datum/species/S = H.species - S.produceCopy(dna.species_traits,src) + S.produceCopy(dna.species_traits, H, dna.base_species) // VOREStation Edit End H.force_update_organs() //VOREStation Add - Gotta do this too diff --git a/code/modules/mob/living/carbon/human/species/species_vr.dm b/code/modules/mob/living/carbon/human/species/species_vr.dm index 0cbae80540..efb9386f1b 100644 --- a/code/modules/mob/living/carbon/human/species/species_vr.dm +++ b/code/modules/mob/living/carbon/human/species/species_vr.dm @@ -44,7 +44,7 @@ nif.nifsofts = nifsofts else ..() -/datum/species/proc/produceCopy(var/list/traits,var/mob/living/carbon/human/H) +/datum/species/proc/produceCopy(var/list/traits, var/mob/living/carbon/human/H, var/custom_base) //If species allows custom base, and custom base is set, apply it, otherwise use default. ASSERT(src) ASSERT(istype(H)) @@ -81,7 +81,11 @@ //Makes thorough copy of species datum. for(var/i in vars) if(S.vars[i] != vars[i] && !islist(vars[i])) //If vars are same, no point in copying. - if(whitelist && !(i in whitelist) && i in blacklist) //If whitelist is provided, only vars in the list will be copied. + if(i in blacklist) + continue + if(whitelist)//If whitelist is provided, only vars in the list will be copied. + if(i in whitelist) + S.vars[i] = vars[i] continue S.vars[i] = vars[i] diff --git a/code/modules/mob/living/carbon/human/species/station/blank_vr.dm b/code/modules/mob/living/carbon/human/species/station/blank_vr.dm index 513dc05173..bc76da68c8 100644 --- a/code/modules/mob/living/carbon/human/species/station/blank_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/blank_vr.dm @@ -48,9 +48,19 @@ /datum/species/custom/get_race_key() var/datum/species/real = GLOB.all_species[base_species] return real.race_key +<<<<<<< HEAD /datum/species/custom/produceCopy(var/list/traits,var/mob/living/carbon/human/H,var/custom_base) . = ..(traits, H) +||||||| parent of 0ff4f543b8... Merge pull request #10145 from Verkister/traitfixies + +/datum/species/custom/produceCopy(var/list/traits,var/mob/living/carbon/human/H,var/custom_base) + . = ..(traits, H) +======= + +/datum/species/custom/produceCopy(var/list/traits, var/mob/living/carbon/human/H, var/custom_base) + . = ..(traits, H, custom_base) +>>>>>>> 0ff4f543b8... Merge pull request #10145 from Verkister/traitfixies if(selects_bodytype && custom_base) var/datum/species/S = GLOB.all_species[custom_base] S.copy_variables(., copy_vars) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm index 57088bf2af..486c6007d5 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm @@ -1,6 +1,8 @@ #define ORGANICS 1 #define SYNTHETICS 2 +/datum/trait/neutral + /datum/trait/neutral/metabolism_up name = "Fast Metabolism" desc = "You process ingested and injected reagents faster, but get hungry faster (Teshari speed)."