Refactors diona split code for maximum reuse.

This commit is contained in:
PsiOmegaDelta
2015-11-05 08:14:22 +01:00
parent daa9b0e0bc
commit 5f4af85af9
2 changed files with 7 additions and 16 deletions

View File

@@ -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("<span class='warning'>\The [src] quivers slightly, then splits apart with a wet slithering noise.</span>")
qdel(src)
if(delete_self)
qdel(src)

View File

@@ -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"