mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Therapy Couch (#26369)
This commit is contained in:
@@ -60,6 +60,9 @@ client/proc/handle_ambience()
|
||||
src << sound(last_ambient_noise, 0, 0, CHANNEL_AMBIENCE, prefs.ambience_volume)
|
||||
|
||||
/client/proc/get_ambience()
|
||||
var/list/personal = mob.get_personal_ambience()
|
||||
if(personal.len)
|
||||
return personal
|
||||
var/area/A = get_area(mob)//other overrides can go in here. eg: overrides for weather. or for cult.
|
||||
if(A)
|
||||
return A.get_ambience_list()
|
||||
|
||||
@@ -210,6 +210,12 @@
|
||||
sound = 'sound/ambience/spookyspace2.ogg'
|
||||
length = 42 SECONDS + 1 MINUTES
|
||||
|
||||
//Personal ambience
|
||||
/datum/ambience/beach
|
||||
//Attribution: SoundSilk.com, Stephen Geisel
|
||||
sound = 'sound/ambience/Soundsilk-Ambient-waves.ogg'
|
||||
length = 36 SECONDS
|
||||
prob_fire = 100
|
||||
|
||||
//Music - TODO, refactor this once the background music part of the Subsystem is done.
|
||||
|
||||
|
||||
@@ -3079,6 +3079,7 @@ var/global/num_vending_terminals = 1
|
||||
/obj/item/weapon/storage/bag/gadgets/part_replacer/injector = 10,
|
||||
/obj/item/weapon/storage/bag/gadgets/part_replacer/injector/super = 4,
|
||||
/obj/structure/wetdryvac = 1,
|
||||
/obj/structure/bed/therapy = 1,
|
||||
)
|
||||
prices = list(
|
||||
/obj/item/clothing/suit/storage/trader = 100,
|
||||
@@ -3114,6 +3115,7 @@ var/global/num_vending_terminals = 1
|
||||
/obj/item/weapon/storage/bag/gadgets/part_replacer/injector = 15,
|
||||
/obj/item/weapon/storage/bag/gadgets/part_replacer/injector/super = 50,
|
||||
/obj/structure/wetdryvac = 50,
|
||||
/obj/structure/bed/therapy = 50,
|
||||
)
|
||||
|
||||
/obj/machinery/vending/trader/New()
|
||||
|
||||
@@ -169,16 +169,63 @@
|
||||
|
||||
/obj/structure/bed/attackby(obj/item/weapon/W, mob/user)
|
||||
if(W.is_wrench(user))
|
||||
W.playtoolsound(src, 50)
|
||||
drop_stack(sheet_type, loc, 2, user)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
. = ..()
|
||||
|
||||
wrench_act(W,user)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/structure/bed/proc/wrench_act(obj/item/weapon/W,mob/user)
|
||||
W.playtoolsound(src, 50)
|
||||
drop_stack(sheet_type, loc, 2, user)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/bed/alien
|
||||
name = "resting contraption"
|
||||
desc = "This looks similar to contraptions from earth. Could aliens be stealing our technology?"
|
||||
icon_state = "abed"
|
||||
|
||||
|
||||
//therapy couch
|
||||
//beach ambience found in ambience_datums.dm
|
||||
//ambience granted in human.dm L1979
|
||||
/obj/structure/bed/therapy
|
||||
name = "therapy couch"
|
||||
desc = "A relaxing couch that will make the troubles melt away as you tell a stranger about your father."
|
||||
icon_state = "psychcouch"
|
||||
anchored = FALSE
|
||||
|
||||
/obj/structure/bed/therapy/New()
|
||||
..()
|
||||
processing_objects += src
|
||||
|
||||
/obj/structure/bed/therapy/Destroy()
|
||||
processing_objects -= src
|
||||
..()
|
||||
|
||||
/obj/structure/bed/therapy/process()
|
||||
for(var/mob/living/carbon/human/H in get_locked(mob_lock_type))
|
||||
//Only humanoids are emotionally complex enough to benefit from this bench
|
||||
H.AdjustDizzy(rand(-2,-4))
|
||||
H.stuttering = max(0,H.stuttering-rand(2,4))
|
||||
H.jitteriness = max(0,H.jitteriness-rand(2,4))
|
||||
H.hallucination = max(0,H.hallucination-rand(2,4))
|
||||
H.remove_confused(rand(2, 4))
|
||||
H.drowsyness = max(0, H.drowsyness-rand(2,4))
|
||||
H.pain_shock_stage = max(0, H.pain_shock_stage-rand(2,3))
|
||||
H.dir = 8 //face up on couch
|
||||
|
||||
/obj/structure/bed/therapy/wrench_act(obj/item/weapon/W,mob/user)
|
||||
if(wrenchAnchor(user,W) && !anchored)
|
||||
var/mob/living/locked = get_locked(mob_lock_type)[1]
|
||||
if(locked)
|
||||
unlock_atom(locked)
|
||||
to_chat(locked,"<span class='warning'>You are forced off \the [src] as it is unanchored.</span>")
|
||||
|
||||
/obj/structure/bed/therapy/buckle_mob(mob/M as mob, mob/user as mob)
|
||||
if(!anchored)
|
||||
//note .name is used here to avoid "the" appearing
|
||||
to_chat(user,"<span class='warning'>You need the stability of an anchored [src.name] to really benefit from that.</span>")
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/structure/bed/therapy/cultify()
|
||||
return //tell me about this "papa" you keep chanting about
|
||||
@@ -1975,3 +1975,9 @@ mob/living/carbon/human/isincrit()
|
||||
active_hand = 0
|
||||
|
||||
update_hands_icons()
|
||||
|
||||
/mob/living/carbon/human/get_personal_ambience()
|
||||
if(istype(locked_to, /obj/structure/bed/therapy))
|
||||
return list(/datum/ambience/beach)
|
||||
else
|
||||
return ..()
|
||||
@@ -2267,5 +2267,8 @@ mob/proc/on_foot()
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/mob/proc/get_personal_ambience()
|
||||
return list()
|
||||
|
||||
#undef MOB_SPACEDRUGS_HALLUCINATING
|
||||
#undef MOB_MINDBREAKER_HALLUCINATING
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 64 KiB |
BIN
sound/ambience/Soundsilk-Ambient-waves.ogg
Normal file
BIN
sound/ambience/Soundsilk-Ambient-waves.ogg
Normal file
Binary file not shown.
Reference in New Issue
Block a user