From 5f4af85af985227e1dbfca34438760fd53a4fd5c Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Thu, 5 Nov 2015 08:14:22 +0100 Subject: [PATCH] Refactors diona split code for maximum reuse. --- .../mob/living/carbon/human/human_powers.dm | 9 ++++++--- .../living/carbon/human/species/station/station.dm | 14 +------------- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index 8ddd6bb1a6a..bcb4dd2c33b 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -224,7 +224,9 @@ set name = "Split" set desc = "Split your humanoid form into its constituent nymphs." set category = "Abilities" + diona_split_into_nymphs(5, 1) // Separate proc to void argments being supplied when used as a verb +/mob/living/carbon/human/proc/diona_split_into_nymphs(var/number_of_resulting_nymphs, var/delete_self = 1) var/turf/T = get_turf(src) var/mob/living/carbon/alien/diona/S = new(T) @@ -243,8 +245,8 @@ D.loc = T D.set_dir(pick(NORTH, SOUTH, EAST, WEST)) - if(nymphs < 5) - for(var/i in nymphs to 4) + if(nymphs < number_of_resulting_nymphs) + for(var/i in nymphs to (number_of_resulting_nymphs - 1)) var/mob/M = new /mob/living/carbon/alien/diona(T) M.set_dir(pick(NORTH, SOUTH, EAST, WEST)) @@ -254,4 +256,5 @@ visible_message("\The [src] quivers slightly, then splits apart with a wet slithering noise.") - qdel(src) + if(delete_self) + qdel(src) diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index 010cfae341a..54b7c322052 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -221,19 +221,7 @@ return ..() /datum/species/diona/handle_death(var/mob/living/carbon/human/H) - - var/mob/living/carbon/alien/diona/S = new(get_turf(H)) - - if(H.mind) - H.mind.transfer_to(S) - - for(var/mob/living/carbon/alien/diona/D in H.contents) - if(D.client) - D.loc = H.loc - else - qdel(D) - - H.visible_message("\red[H] splits apart with a wet slithering noise!") + diona_split_into_nymphs(0, 0) /datum/species/machine name = "Machine"