mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 03:02:54 +00:00
Diona 'split' command, plus bugfix
This commit is contained in:
@@ -319,7 +319,7 @@ In most cases it makes more sense to use apply_damage() instead! And make sure t
|
|||||||
This function restores the subjects blood to max.
|
This function restores the subjects blood to max.
|
||||||
*/
|
*/
|
||||||
/mob/living/carbon/human/proc/restore_blood()
|
/mob/living/carbon/human/proc/restore_blood()
|
||||||
if(!species.flags & NO_BLOOD)
|
if(!(species.flags & NO_BLOOD))
|
||||||
var/blood_volume = vessel.get_reagent_amount("blood")
|
var/blood_volume = vessel.get_reagent_amount("blood")
|
||||||
vessel.add_reagent("blood",560.0-blood_volume)
|
vessel.add_reagent("blood",560.0-blood_volume)
|
||||||
|
|
||||||
|
|||||||
@@ -218,4 +218,41 @@
|
|||||||
log_say("PsychicWhisper: [key_name(src)]->[M.key] : [msg]")
|
log_say("PsychicWhisper: [key_name(src)]->[M.key] : [msg]")
|
||||||
M << "\green You hear a strange, alien voice in your head... \italic [msg]"
|
M << "\green You hear a strange, alien voice in your head... \italic [msg]"
|
||||||
src << "\green You said: \"[msg]\" to [M]"
|
src << "\green You said: \"[msg]\" to [M]"
|
||||||
return
|
return
|
||||||
|
|
||||||
|
/mob/living/carbon/human/proc/diona_split_nymph()
|
||||||
|
set name = "Split"
|
||||||
|
set desc = "Split your humanoid form into its constituent nymphs."
|
||||||
|
set category = "Abilities"
|
||||||
|
|
||||||
|
var/turf/T = get_turf(src)
|
||||||
|
|
||||||
|
var/mob/living/carbon/alien/diona/S = new(T)
|
||||||
|
S.set_dir(dir)
|
||||||
|
if(mind)
|
||||||
|
mind.transfer_to(S)
|
||||||
|
|
||||||
|
message_admins("\The [src] has split into nymphs; player now controls [key_name_admin(S)]")
|
||||||
|
log_admin("\The [src] has split into nymphs; player now controls [key_name(S)]")
|
||||||
|
|
||||||
|
var/nymphs = 1
|
||||||
|
|
||||||
|
for(var/mob/living/carbon/alien/diona/D in src)
|
||||||
|
nymphs++
|
||||||
|
D.loc = T
|
||||||
|
D.set_dir(pick(NORTH, SOUTH, EAST, WEST))
|
||||||
|
|
||||||
|
if(nymphs < 5)
|
||||||
|
for(var/i in nymphs to 4)
|
||||||
|
var/mob/M = new /mob/living/carbon/alien/diona(T)
|
||||||
|
M.set_dir(pick(NORTH, SOUTH, EAST, WEST))
|
||||||
|
|
||||||
|
|
||||||
|
for(var/obj/item/W in src)
|
||||||
|
drop_from_inventory(W)
|
||||||
|
|
||||||
|
visible_message("<span class='warning'>\The [src] quivers slightly, then splits apart with a wet slithering noise.</span>")
|
||||||
|
|
||||||
|
del(src)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -168,6 +168,10 @@
|
|||||||
"r_foot" = list("path" = /obj/item/organ/external/diona/foot/right)
|
"r_foot" = list("path" = /obj/item/organ/external/diona/foot/right)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
inherent_verbs = list(
|
||||||
|
/mob/living/carbon/human/proc/diona_split_nymph
|
||||||
|
)
|
||||||
|
|
||||||
warning_low_pressure = 50
|
warning_low_pressure = 50
|
||||||
hazard_low_pressure = -1
|
hazard_low_pressure = -1
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user