diff --git a/code/modules/mob/language/language.dm b/code/modules/mob/language/language.dm index c6d9756c9b..2d058e3b78 100644 --- a/code/modules/mob/language/language.dm +++ b/code/modules/mob/language/language.dm @@ -188,8 +188,10 @@ else return ..() -/proc/transfer_languages(var/mob/source, var/mob/target) +/proc/transfer_languages(var/mob/source, var/mob/target, var/except_flags) for(var/datum/language/L in source.languages) + if(L.flags & except_flags) + continue target.add_language(L.name) #undef SCRAMBLE_CACHE_LEN diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index bcb4dd2c33..1728b61008 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -224,9 +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 + diona_split_into_nymphs(5) // 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) +/mob/living/carbon/human/proc/diona_split_into_nymphs(var/number_of_resulting_nymphs) var/turf/T = get_turf(src) var/mob/living/carbon/alien/diona/S = new(T) @@ -242,19 +242,18 @@ for(var/mob/living/carbon/alien/diona/D in src) nymphs++ - D.loc = T + D.forceMove(T) + transfer_languages(src, D, WHITELISTED|RESTRICTED) D.set_dir(pick(NORTH, SOUTH, EAST, WEST)) 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) + transfer_languages(src, M, WHITELISTED|RESTRICTED) M.set_dir(pick(NORTH, SOUTH, EAST, WEST)) - for(var/obj/item/W in src) drop_from_inventory(W) visible_message("\The [src] quivers slightly, then splits apart with a wet slithering noise.") - - if(delete_self) - qdel(src) + 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 54b7c32205..9ba341ff4a 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -221,7 +221,7 @@ return ..() /datum/species/diona/handle_death(var/mob/living/carbon/human/H) - diona_split_into_nymphs(0, 0) + H.diona_split_into_nymphs(0) /datum/species/machine name = "Machine"