Fixes traits not getting applied properly.

-Fixes and tweaks a couple little slipups and other potential oversights discovered along the way.
This commit is contained in:
Verkister
2021-04-12 17:22:17 +03:00
parent eabb487497
commit 1ae9121ee0
5 changed files with 13 additions and 7 deletions
+1 -1
View File
@@ -485,7 +485,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)
+1 -1
View File
@@ -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
@@ -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))
@@ -56,7 +56,7 @@
for(var/organ in has_limbs) //Copy important organ data generated by species.
var/list/organ_data = has_limbs[organ]
new_copy.has_limbs[organ] = organ_data.Copy()
new_copy.traits = traits
//If you had traits, apply them
if(new_copy.traits)
for(var/trait in new_copy.traits)
@@ -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]
@@ -46,8 +46,8 @@
var/datum/species/real = GLOB.all_species[base_species]
return real.race_key
/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)
if(selects_bodytype && custom_base)
var/datum/species/S = GLOB.all_species[custom_base]
S.copy_variables(., copy_vars)
@@ -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)."