diff --git a/code/modules/mob/living/carbon/monkey/diona.dm b/code/modules/mob/living/carbon/monkey/diona.dm index b3666a82f2c..523ccca7530 100644 --- a/code/modules/mob/living/carbon/monkey/diona.dm +++ b/code/modules/mob/living/carbon/monkey/diona.dm @@ -2,6 +2,38 @@ Tiny babby plant critter plus procs. */ +//Helper object for picking dionaea up. +/obj/item/weapon/diona_holder + + name = "diona nymph" + desc = "It's a tiny plant critter." + icon = 'icons/obj/objects.dmi' + icon_state = "nymph" + slot_flags = SLOT_HEAD + origin_tech = "magnets=3;biotech=5" + +/obj/item/weapon/diona_holder/New() + ..() + processing_objects.Add(src) + + +/obj/item/weapon/diona_holder/Del() + processing_objects.Remove(src) + ..() + +/obj/item/weapon/diona_holder/process() + if(!loc) return + + if(!istype(loc,/mob/living)) + for(var/mob/M in contents) + M.loc = get_turf(src) + del(src) + +/obj/item/weapon/diona_holder/attackby(obj/item/weapon/W as obj, mob/user as mob) + for(var/mob/M in src.contents) + M.attackby(W,user) + +//Mob defines. /mob/living/carbon/monkey/diona name = "diona nymph" voice_name = "diona nymph" @@ -19,6 +51,20 @@ add_language("Rootspeak") verbs -= /mob/living/carbon/monkey/verb/ventcrawl +/mob/living/carbon/monkey/diona/attack_hand(mob/living/carbon/human/M as mob) + + //Let people pick the little buggers up. + if(M.a_intent == "help") + var/obj/item/weapon/diona_holder/D = new(loc) + src.loc = D + D.name = loc.name + D.attack_hand(M) + M << "You scoop up [src]." + src << "[M] scoops you up." + return + + ..() + //Verbs after this point. /mob/living/carbon/monkey/diona/verb/dionaventcrawl() set name = "Crawl through Vent" @@ -81,6 +127,12 @@ src.visible_message("\red [src] begins to shift and quiver, and erupts in a shower of shed bark and twigs!","\red You begin to shift and quiver, then erupt in a shower of shed bark and twigs, attaining your adult form!") var/mob/living/carbon/human/adult = new(loc) adult.set_species("Diona") + + if(istype(loc,/obj/item/weapon/diona_holder/)) + var/obj/item/weapon/diona_holder/L = loc + src.loc = L.loc + del(L) + for(var/datum/language/L in languages) adult.add_language(L.name) adult.regenerate_icons() diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index a55a87bb5ed..92a3263df16 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -19,7 +19,7 @@ if(loc) environment = loc.return_air() - if (stat != DEAD) //still breathing + if (stat != DEAD && !istype(src,/mob/living/carbon/monkey/diona)) //still breathing //First, resolve location and get a breath if(air_master.current_cycle%4==2) //Only try to take a breath every 4 seconds, unless suffocating diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index fe4ff0cfb73..f00a4ce99e1 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi index a81024208d7..d734133bc98 100644 Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi index c265f10d756..42ed51483a6 100644 Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index 7def4bd6e94..c4415d02334 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ