mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Secondary diona nymphs now get non-restricted/whitelisted languages on split.
This commit is contained in:
@@ -188,8 +188,10 @@
|
|||||||
else
|
else
|
||||||
return ..()
|
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)
|
for(var/datum/language/L in source.languages)
|
||||||
|
if(L.flags & except_flags)
|
||||||
|
continue
|
||||||
target.add_language(L.name)
|
target.add_language(L.name)
|
||||||
|
|
||||||
#undef SCRAMBLE_CACHE_LEN
|
#undef SCRAMBLE_CACHE_LEN
|
||||||
|
|||||||
@@ -224,9 +224,9 @@
|
|||||||
set name = "Split"
|
set name = "Split"
|
||||||
set desc = "Split your humanoid form into its constituent nymphs."
|
set desc = "Split your humanoid form into its constituent nymphs."
|
||||||
set category = "Abilities"
|
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/turf/T = get_turf(src)
|
||||||
|
|
||||||
var/mob/living/carbon/alien/diona/S = new(T)
|
var/mob/living/carbon/alien/diona/S = new(T)
|
||||||
@@ -242,19 +242,18 @@
|
|||||||
|
|
||||||
for(var/mob/living/carbon/alien/diona/D in src)
|
for(var/mob/living/carbon/alien/diona/D in src)
|
||||||
nymphs++
|
nymphs++
|
||||||
D.loc = T
|
D.forceMove(T)
|
||||||
|
transfer_languages(src, D, WHITELISTED|RESTRICTED)
|
||||||
D.set_dir(pick(NORTH, SOUTH, EAST, WEST))
|
D.set_dir(pick(NORTH, SOUTH, EAST, WEST))
|
||||||
|
|
||||||
if(nymphs < number_of_resulting_nymphs)
|
if(nymphs < number_of_resulting_nymphs)
|
||||||
for(var/i in nymphs to (number_of_resulting_nymphs - 1))
|
for(var/i in nymphs to (number_of_resulting_nymphs - 1))
|
||||||
var/mob/M = new /mob/living/carbon/alien/diona(T)
|
var/mob/M = new /mob/living/carbon/alien/diona(T)
|
||||||
|
transfer_languages(src, M, WHITELISTED|RESTRICTED)
|
||||||
M.set_dir(pick(NORTH, SOUTH, EAST, WEST))
|
M.set_dir(pick(NORTH, SOUTH, EAST, WEST))
|
||||||
|
|
||||||
|
|
||||||
for(var/obj/item/W in src)
|
for(var/obj/item/W in src)
|
||||||
drop_from_inventory(W)
|
drop_from_inventory(W)
|
||||||
|
|
||||||
visible_message("<span class='warning'>\The [src] quivers slightly, then splits apart with a wet slithering noise.</span>")
|
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)
|
|
||||||
|
|||||||
@@ -221,7 +221,7 @@
|
|||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/datum/species/diona/handle_death(var/mob/living/carbon/human/H)
|
/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
|
/datum/species/machine
|
||||||
name = "Machine"
|
name = "Machine"
|
||||||
|
|||||||
Reference in New Issue
Block a user