diff --git a/code/modules/xenobio2/mob/xeno procs.dm b/code/modules/xenobio2/mob/xeno procs.dm index b72b1567fb..03fde9efc8 100644 --- a/code/modules/xenobio2/mob/xeno procs.dm +++ b/code/modules/xenobio2/mob/xeno procs.dm @@ -6,6 +6,7 @@ Proc for metabolism Proc for mutating Procs for copying speech, if applicable Procs for targeting +Divergence proc, used in mutation to make unique datums. */ /mob/living/simple_animal/xeno/proc/ProcessTraits() if(maleable >= MAX_MALEABLE) @@ -84,8 +85,14 @@ Procs for targeting return 1 //Everything worked out okay. return 0 + +/mob/living/simple_animal/xeno/proc/diverge() + var/datum/xeno/traits/newtraits = new() + newtraits.copy_traits(traitdat) + return newtraits /mob/living/simple_animal/xeno/proc/Mutate() + traitdat = diverge() nameVar = "mutated" if((COLORMUT & mutable)) traitdat.traits[TRAIT_XENO_COLOR] = "#" diff --git a/html/changelogs/Datraen-XenobioUniqueTraitdat.yml b/html/changelogs/Datraen-XenobioUniqueTraitdat.yml new file mode 100644 index 0000000000..08c1a932a1 --- /dev/null +++ b/html/changelogs/Datraen-XenobioUniqueTraitdat.yml @@ -0,0 +1,4 @@ +author: Datraen +delete-after: True +changes: + - bugfix: "Xenobiological traits are made unique on each mutate, avoiding mutating other mobs with same trait data."