diff --git a/code/game/objects/structures/crates_lockers/__closets.dm b/code/game/objects/structures/crates_lockers/__closets.dm index f56c0269a4..46a3226464 100644 --- a/code/game/objects/structures/crates_lockers/__closets.dm +++ b/code/game/objects/structures/crates_lockers/__closets.dm @@ -40,6 +40,7 @@ var/is_animating_door = FALSE /// Our visual object for the closet door, if we're animating var/obj/effect/overlay/closet_door/door_obj + var/vore_sound = 'sound/effects/metalscrape2.ogg' /obj/structure/closet/Initialize() ..() @@ -543,3 +544,49 @@ M.Multiply(matrix(cos(angle), 0, 0, -sin(angle) * closet_appearance.door_anim_squish, 1, 0)) M.Translate(closet_appearance.door_hinge, 0) return M + +//verb to eat people in the same closet as yourself + +/obj/structure/closet/verb/hidden_vore() + set src in oview(1) + set category = "Object" + set name = "Vore Occupants" + + if(!istype(usr, /mob/living)) //no ghosts + return + + if(!(usr in src.contents)) + to_chat(usr, "You need to be inside \the [src] to do this.") + return + + var/list/targets = list() //IF IT IS NOT BROKEN. DO NOT FIX IT. + + for(var/mob/living/L in src.contents) + if(!istype(L, /mob/living)) //Don't eat anything that isn't mob/living. Failsafe. + continue + if(L == usr) //no eating yourself. 1984. + continue + if(L.devourable) + targets += L + + if(targets == 0) + to_chat(src, "No eligible targets found.") + return + + var/mob/living/target = tgui_input_list(usr, "Please select a target.", "Victim", targets) + + if(!target) + return + + if(!istype(target, /mob/living)) //Safety. + to_chat(src, "You need to select a living target!") + return + + if (get_dist(src,target) >= 1 || get_dist(src,usr) >= 1) //in case they leave the locker + to_chat(src, "You are no longer both in \the [src].") + return + + playsound(src, vore_sound, 25) + + var/mob/living/M = usr + M.perform_the_nom(usr,target,usr,usr.vore_selected,1) diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm index f79d770f74..48bea9205b 100644 --- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm +++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm @@ -6,6 +6,7 @@ open_sound = 'sound/effects/wooden_closet_open.ogg' close_sound = 'sound/effects/wooden_closet_close.ogg' + vore_sound = 'sound/effects/woodhit.ogg' /obj/structure/closet/acloset name = "strange closet" @@ -82,3 +83,34 @@ icon = 'icons/obj/closets/abductor.dmi' anchored = TRUE closet_appearance = null // special icons + +/obj/structure/closet/tent + name = "tent" + desc = "An old fashioned tent that can easily fit a couple of people." + icon = 'icons/obj/closets/tent.dmi' + closet_appearance = null + anchored = 1 + open_sound = 'sound/effects/rustle3.ogg' + close_sound = 'sound/effects/rustle4.ogg' + vore_sound = 'sound/effects/rustle1.ogg' + +/obj/structure/closet/tent/B + icon = 'icons/obj/closets/tentB.dmi' + +/datum/crafting_recipe/tent + name = "tent (green)" + result = /obj/structure/closet/tent + reqs = list( + list(/obj/item/stack/material/cloth = 10) + ) + time = 60 + category = CAT_MISC + +/datum/crafting_recipe/tentb + name = "tent (tan)" + result = /obj/structure/closet/tent/B + reqs = list( + list(/obj/item/stack/material/cloth = 10) + ) + time = 60 + category = CAT_MISC diff --git a/icons/obj/closets/tent.dmi b/icons/obj/closets/tent.dmi new file mode 100644 index 0000000000..939557b190 Binary files /dev/null and b/icons/obj/closets/tent.dmi differ diff --git a/icons/obj/closets/tentB.dmi b/icons/obj/closets/tentB.dmi new file mode 100644 index 0000000000..a1446d2737 Binary files /dev/null and b/icons/obj/closets/tentB.dmi differ