diff --git a/code/game/dna/dna2_domutcheck.dm b/code/game/dna/dna2_domutcheck.dm index df5fba64aa7..8428723cebc 100644 --- a/code/game/dna/dna2_domutcheck.dm +++ b/code/game/dna/dna2_domutcheck.dm @@ -23,22 +23,24 @@ // Prior state var/gene_prior_status = (gene.type in M.active_genes) + var/changed = gene_active != gene_prior_status || (gene.flags & GENE_ALWAYS_ACTIVATE) - if((gene_active && !gene_prior_status) || (gene.flags & GENE_ALWAYS_ACTIVATE)) - testing("[gene.name] activated!") - gene.activate(M,connected,flags) - if(M) - if(!(gene.flags & GENE_ALWAYS_ACTIVATE)) + // If gene state has changed: + if(changed) + // Gene active (or ALWAYS ACTIVATE) + if(gene_active || (gene.flags & GENE_ALWAYS_ACTIVATE)) + testing("[gene.name] activated!") + gene.activate(M,connected,flags) + if(M) M.active_genes |= gene.type - M.update_icon=1 - else if(!gene_active && gene_prior_status) - testing("[gene.name] deactivated!") - gene.deactivate(M,connected,flags) - if(M) - M.active_genes -= gene.type - M.update_icon=1 - //else - // testing("[M] - Failed to activate [gene.name] - [gene_active?"+":"-"]active, [gene_prior_status?"+":"-"]prior") + M.update_icon = 1 + // If Gene is NOT active: + else + testing("[gene.name] deactivated!") + gene.deactivate(M,connected,flags) + if(M) + M.active_genes -= gene.type + M.update_icon = 1 /* Old, inflexibile /proc/domutcheck(var/mob/living/M, var/connected, var/flags) diff --git a/code/game/dna/genes/monkey.dm b/code/game/dna/genes/monkey.dm index 1ceea87b43c..ebb15a714ad 100644 --- a/code/game/dna/genes/monkey.dm +++ b/code/game/dna/genes/monkey.dm @@ -9,6 +9,7 @@ /datum/dna/gene/monkey/activate(var/mob/living/M, var/connected, var/flags) if(!istype(M,/mob/living/carbon/human)) + testing("Cannot monkey-ify [M], type is [M.type].") return var/mob/living/carbon/human/H = M H.monkeyizing = 1 @@ -86,6 +87,7 @@ /datum/dna/gene/monkey/deactivate(var/mob/living/M, var/connected, var/flags) if(!istype(M,/mob/living/carbon/monkey)) + testing("Cannot humanize [M], type is [M.type].") return var/mob/living/carbon/monkey/Mo = M Mo.monkeyizing = 1