diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 6b53310261a..3651735ddfd 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -415,20 +415,21 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) //SKYRAT EDIT REMOVAL END //Please use add_mutation or activate_mutation instead -/datum/dna/proc/force_give(datum/mutation/human/HM) - if(holder && HM) - if(HM.class == MUT_NORMAL) - set_se(1, HM) - . = HM.on_acquiring(holder) +/datum/dna/proc/force_give(datum/mutation/human/human_mutation) + if(holder && human_mutation) + if(human_mutation.class == MUT_NORMAL) + set_se(1, human_mutation) + . = human_mutation.on_acquiring(holder) if(.) - qdel(HM) + qdel(human_mutation) update_instability() //Use remove_mutation instead -/datum/dna/proc/force_lose(datum/mutation/human/HM) - if(holder && (HM in mutations)) - set_se(0, HM) - . = HM.on_losing(holder) +/datum/dna/proc/force_lose(datum/mutation/human/human_mutation) + if(holder && (human_mutation in mutations)) + set_se(0, human_mutation) + . = human_mutation.on_losing(holder) + qdel(human_mutation) // qdel mutations on removal update_instability(FALSE) return diff --git a/code/datums/mutations/_mutations.dm b/code/datums/mutations/_mutations.dm index bb9b37fd03e..cc99917c746 100644 --- a/code/datums/mutations/_mutations.dm +++ b/code/datums/mutations/_mutations.dm @@ -147,7 +147,6 @@ mut_overlay.Remove(get_visual_indicator()) owner.overlays_standing[layer_used] = mut_overlay owner.apply_overlay(layer_used) - qdel(src) /mob/living/carbon/proc/update_mutations_overlay() return diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index 1049e5660af..a76adac10ac 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -82,6 +82,7 @@ if(owner.health < owner.crit_threshold) on_losing(owner) to_chat(owner, span_danger("You suddenly feel very weak.")) + qdel(src) /datum/mutation/human/hulk/on_losing(mob/living/carbon/human/owner) if(..())