mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-16 01:25:10 +01:00
Closet vore and Tents (#15808)
* Closet vore and Tents Added a new verb to the ability tab when interacting with closets called "Vore Occupants". This allows you to eat another person when both of you are inside of the same closet. Added tents as a subtype of closets. * Crafting Added the ability to craft tents with 10 cloth. * Ghost check and change category Added a check to make sure user is /mob/living. Changed category from Abilities to Object because having no abilities means that your tab changes every time you move past a locker.
This commit is contained in:
@@ -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, "<span class='warning'>You need to be inside \the [src] to do this.</span>")
|
||||
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, "<span class='notice'>No eligible targets found.</span>")
|
||||
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, "<span class='warning'>You need to select a living target!</span>")
|
||||
return
|
||||
|
||||
if (get_dist(src,target) >= 1 || get_dist(src,usr) >= 1) //in case they leave the locker
|
||||
to_chat(src, "<span class='warning'>You are no longer both in \the [src].</span>")
|
||||
return
|
||||
|
||||
playsound(src, vore_sound, 25)
|
||||
|
||||
var/mob/living/M = usr
|
||||
M.perform_the_nom(usr,target,usr,usr.vore_selected,1)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user