mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-19 20:15:47 +01:00
Merge branch 'master' of https://github.com/tgstation/-tg-station into warnstandardization
Conflicts: code/_onclick/telekinesis.dm code/game/sound.dm
This commit is contained in:
@@ -1,95 +1,95 @@
|
||||
/obj/structure/closet/crate/bin
|
||||
desc = "A trash bin, place your trash here for the janitor to collect."
|
||||
name = "trash bin"
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "largebins"
|
||||
density = 1
|
||||
anchored = 1
|
||||
icon_opened = "largebinsopen"
|
||||
icon_closed = "largebins"
|
||||
sound_effect_open = 'sound/effects/bin_open.ogg'
|
||||
sound_effect_close = 'sound/effects/bin_close.ogg'
|
||||
var/animation = "animate_largebins"
|
||||
var/redlight = "largebinr"
|
||||
var/greenlight = "largebing"
|
||||
var/orangelight = "largebino"
|
||||
|
||||
|
||||
/obj/structure/closet/crate/bin/New()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/structure/closet/crate/bin/update_icon()
|
||||
..()
|
||||
overlays.Cut()
|
||||
if(contents.len == 0)
|
||||
overlays += greenlight
|
||||
else if(contents.len >= storage_capacity)
|
||||
overlays += redlight
|
||||
else
|
||||
overlays += orangelight
|
||||
|
||||
/obj/structure/closet/crate/bin/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/storage/bag/trash))
|
||||
var/obj/item/weapon/storage/bag/trash/T = W
|
||||
user << "\blue You fill the bag."
|
||||
for(var/obj/item/O in src)
|
||||
if(T.can_be_inserted(O, 1))
|
||||
O.loc = T
|
||||
T.update_icon()
|
||||
do_animate()
|
||||
else if(istype(W, /obj/item/weapon/wrench))
|
||||
anchored = !anchored
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
|
||||
else if(istype(W, /obj/item/weapon/grab))
|
||||
var/obj/item/weapon/grab/G = W
|
||||
src.MouseDrop_T(G.affecting, user) //act like they were dragged onto the closet
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/structure/closet/crate/bin/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
|
||||
. = ..(O, user, 0, 0, 0)
|
||||
if(.)
|
||||
if(O != user)
|
||||
user.visible_message("<span class='danger'>[user] tries to stuff [O] into the [src].</span>", \
|
||||
"<span class='danger'>You try to stuff [O] into the [src].</span>", \
|
||||
"<span class='danger'>You hear clanging.</span>")
|
||||
if (!do_after(user, 40))
|
||||
return
|
||||
if(!..(O, user, 0, 0))
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] stuffs [O] into the [src].</span>", \
|
||||
"<span class='notice'>You stuff [O] into the [src].</span>", \
|
||||
"<span class='notice'>You hear a loud metal bang.</span>")
|
||||
insert(O, 1, !opened)
|
||||
if(opened)
|
||||
close()
|
||||
|
||||
/obj/structure/closet/crate/bin/open()
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/structure/closet/crate/bin/close()
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/structure/closet/crate/bin/proc/do_animate()
|
||||
playsound(src.loc, sound_effect_open, 15, 1, -3)
|
||||
flick(animation, src)
|
||||
spawn(13)
|
||||
playsound(src.loc, sound_effect_close, 15, 1, -3)
|
||||
update_icon()
|
||||
|
||||
/obj/structure/closet/crate/bin/insert(var/obj/item/I, var/include_mobs = 0, var/animate = 0)
|
||||
. = ..(I, include_mobs)
|
||||
if(animate && .)
|
||||
do_animate()
|
||||
|
||||
/obj/structure/closet/crate/bin/place(var/mob/user, var/obj/item/I)
|
||||
if(contents.len >= storage_capacity)
|
||||
return 1
|
||||
if(!opened)
|
||||
user.drop_item()
|
||||
insert(I, 0, 1)
|
||||
return 1
|
||||
/obj/structure/closet/crate/bin
|
||||
desc = "A trash bin, place your trash here for the janitor to collect."
|
||||
name = "trash bin"
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "largebins"
|
||||
density = 1
|
||||
anchored = 1
|
||||
icon_opened = "largebinsopen"
|
||||
icon_closed = "largebins"
|
||||
sound_effect_open = 'sound/effects/bin_open.ogg'
|
||||
sound_effect_close = 'sound/effects/bin_close.ogg'
|
||||
var/animation = "animate_largebins"
|
||||
var/redlight = "largebinr"
|
||||
var/greenlight = "largebing"
|
||||
var/orangelight = "largebino"
|
||||
|
||||
|
||||
/obj/structure/closet/crate/bin/New()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/structure/closet/crate/bin/update_icon()
|
||||
..()
|
||||
overlays.Cut()
|
||||
if(contents.len == 0)
|
||||
overlays += greenlight
|
||||
else if(contents.len >= storage_capacity)
|
||||
overlays += redlight
|
||||
else
|
||||
overlays += orangelight
|
||||
|
||||
/obj/structure/closet/crate/bin/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/weapon/storage/bag/trash))
|
||||
var/obj/item/weapon/storage/bag/trash/T = W
|
||||
user << "\blue You fill the bag."
|
||||
for(var/obj/item/O in src)
|
||||
if(T.can_be_inserted(O, 1))
|
||||
O.loc = T
|
||||
T.update_icon()
|
||||
do_animate()
|
||||
else if(istype(W, /obj/item/weapon/wrench))
|
||||
anchored = !anchored
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
|
||||
else if(istype(W, /obj/item/weapon/grab))
|
||||
var/obj/item/weapon/grab/G = W
|
||||
src.MouseDrop_T(G.affecting, user) //act like they were dragged onto the closet
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/structure/closet/crate/bin/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
|
||||
. = ..(O, user, 0, 0, 0)
|
||||
if(.)
|
||||
if(O != user)
|
||||
user.visible_message("<span class='danger'>[user] tries to stuff [O] into the [src].</span>", \
|
||||
"<span class='danger'>You try to stuff [O] into the [src].</span>", \
|
||||
"<span class='danger'>You hear clanging.</span>")
|
||||
if (!do_after(user, 40))
|
||||
return
|
||||
if(!..(O, user, 0, 0))
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] stuffs [O] into the [src].</span>", \
|
||||
"<span class='notice'>You stuff [O] into the [src].</span>", \
|
||||
"<span class='notice'>You hear a loud metal bang.</span>")
|
||||
insert(O, 1, !opened)
|
||||
if(opened)
|
||||
close()
|
||||
|
||||
/obj/structure/closet/crate/bin/open()
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/structure/closet/crate/bin/close()
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/structure/closet/crate/bin/proc/do_animate()
|
||||
playsound(src.loc, sound_effect_open, 15, 1, -3)
|
||||
flick(animation, src)
|
||||
spawn(13)
|
||||
playsound(src.loc, sound_effect_close, 15, 1, -3)
|
||||
update_icon()
|
||||
|
||||
/obj/structure/closet/crate/bin/insert(var/obj/item/I, var/include_mobs = 0, var/animate = 0)
|
||||
. = ..(I, include_mobs)
|
||||
if(animate && .)
|
||||
do_animate()
|
||||
|
||||
/obj/structure/closet/crate/bin/place(var/mob/user, var/obj/item/I)
|
||||
if(contents.len >= storage_capacity)
|
||||
return 1
|
||||
if(!opened)
|
||||
user.drop_item()
|
||||
insert(I, 0, 1)
|
||||
return 1
|
||||
return 0
|
||||
@@ -310,7 +310,7 @@
|
||||
return //Door's open, not locked or welded, no point in resisting.
|
||||
|
||||
//okay, so the closet is either welded or locked... resist!!!
|
||||
user.next_move = world.time + 100
|
||||
user.changeNext_move(100)
|
||||
user.last_special = world.time + 100
|
||||
user << "<span class='notice'>You lean on the back of [src] and start pushing the door open. (this will take about [breakout_time] minutes.)</span>"
|
||||
for(var/mob/O in viewers(src))
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
else
|
||||
new /obj/item/weapon/storage/backpack/satchel_cap(src)
|
||||
new /obj/item/clothing/suit/captunic(src)
|
||||
new /obj/item/clothing/under/captainformal(src)
|
||||
new /obj/item/clothing/head/helmet/cap(src)
|
||||
new /obj/item/clothing/under/rank/captain(src)
|
||||
new /obj/item/clothing/suit/armor/vest/capcarapace(src)
|
||||
@@ -25,8 +26,6 @@
|
||||
new /obj/item/device/radio/headset/heads/captain(src)
|
||||
new /obj/item/clothing/gloves/captain(src)
|
||||
new /obj/item/weapon/gun/energy/gun(src)
|
||||
new /obj/item/clothing/under/captainformal(src)
|
||||
new /obj/item/clothing/head/helmet/HoS/dermal(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -73,19 +72,12 @@
|
||||
New()
|
||||
..()
|
||||
sleep(2)
|
||||
if(prob(50))
|
||||
new /obj/item/weapon/storage/backpack/security(src)
|
||||
else
|
||||
new /obj/item/weapon/storage/backpack/satchel_sec(src)
|
||||
new /obj/item/clothing/suit/armor/vest(src)
|
||||
new /obj/item/clothing/under/rank/head_of_security/jensen(src)
|
||||
new /obj/item/clothing/suit/armor/hos/jensen(src)
|
||||
new /obj/item/clothing/head/helmet/HoS/dermal(src)
|
||||
new /obj/item/weapon/cartridge/hos(src)
|
||||
new /obj/item/device/radio/headset/heads/hos(src)
|
||||
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
|
||||
new /obj/item/weapon/shield/riot(src)
|
||||
new /obj/item/clothing/mask/gas/sechailer(src)
|
||||
new /obj/item/clothing/mask/gas/sechailer/hos(src)
|
||||
new /obj/item/weapon/storage/lockbox/loyalty(src)
|
||||
new /obj/item/weapon/storage/box/flashbangs(src)
|
||||
@@ -93,12 +85,9 @@
|
||||
new /obj/item/weapon/melee/baton/loaded(src)
|
||||
new /obj/item/weapon/gun/energy/gun(src)
|
||||
new /obj/item/weapon/storage/belt/security(src)
|
||||
new /obj/item/clothing/under/hosformalfem(src)
|
||||
new /obj/item/clothing/under/hosformalmale(src)
|
||||
return
|
||||
|
||||
|
||||
|
||||
/obj/structure/closet/secure_closet/warden
|
||||
name = "warden's locker"
|
||||
req_access = list(access_armory)
|
||||
@@ -113,10 +102,6 @@
|
||||
New()
|
||||
..()
|
||||
sleep(2)
|
||||
if(prob(50))
|
||||
new /obj/item/weapon/storage/backpack/security(src)
|
||||
else
|
||||
new /obj/item/weapon/storage/backpack/satchel_sec(src)
|
||||
new /obj/item/clothing/suit/armor/vest(src)
|
||||
new /obj/item/clothing/under/rank/warden(src)
|
||||
new /obj/item/clothing/suit/armor/vest/warden(src)
|
||||
@@ -147,10 +132,6 @@
|
||||
New()
|
||||
..()
|
||||
sleep(2)
|
||||
if(prob(50))
|
||||
new /obj/item/weapon/storage/backpack/security(src)
|
||||
else
|
||||
new /obj/item/weapon/storage/backpack/satchel_sec(src)
|
||||
new /obj/item/clothing/suit/armor/vest(src)
|
||||
new /obj/item/clothing/head/helmet(src)
|
||||
new /obj/item/device/radio/headset/headset_sec(src)
|
||||
@@ -198,7 +179,7 @@
|
||||
/obj/structure/closet/secure_closet/security/med
|
||||
|
||||
New()
|
||||
new /obj/item/clothing/tie/armband/medgreen(src)
|
||||
new /obj/item/clothing/tie/armband/medblue(src)
|
||||
new /obj/item/device/encryptionkey/headset_med(src)
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -61,6 +61,17 @@
|
||||
|
||||
/obj/structure/closet/statue/dump_contents()
|
||||
|
||||
if(istype(src.loc, /mob/living/simple_animal/hostile/statue))
|
||||
var/mob/living/simple_animal/hostile/statue/S = src.loc
|
||||
src.loc = S.loc
|
||||
if(S.mind)
|
||||
for(var/mob/M in contents)
|
||||
S.mind.transfer_to(M)
|
||||
M << "As the animating magic wears off you feel yourself coming back to your senses. You are yourself again!"
|
||||
break
|
||||
qdel(S)
|
||||
|
||||
|
||||
for(var/obj/O in src)
|
||||
O.loc = src.loc
|
||||
|
||||
|
||||
@@ -20,6 +20,10 @@
|
||||
icon_closed = "red"
|
||||
|
||||
/obj/structure/closet/wardrobe/red/New()
|
||||
new /obj/item/weapon/storage/backpack/security(src)
|
||||
new /obj/item/weapon/storage/backpack/security(src)
|
||||
new /obj/item/weapon/storage/backpack/satchel_sec(src)
|
||||
new /obj/item/weapon/storage/backpack/satchel_sec(src)
|
||||
new /obj/item/clothing/under/rank/security(src)
|
||||
new /obj/item/clothing/under/rank/security(src)
|
||||
new /obj/item/clothing/under/rank/security(src)
|
||||
@@ -34,6 +38,16 @@
|
||||
new /obj/item/clothing/head/beret/sec(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/wardrobe/hos
|
||||
name = "head of security wardrobe"
|
||||
icon_state = "red"
|
||||
icon_closed = "red"
|
||||
|
||||
/obj/structure/closet/wardrobe/hos/New()
|
||||
new /obj/item/clothing/under/hosformalfem(src)
|
||||
new /obj/item/clothing/under/hosformalmale(src)
|
||||
new /obj/item/clothing/under/rank/head_of_security/jensen(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/wardrobe/pink
|
||||
name = "pink wardrobe"
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
/obj/structure/dresser
|
||||
name = "dresser"
|
||||
desc = "A nicely-crafted wooden dresser. It's filled with lots of undies."
|
||||
icon = 'icons/obj/stationobjs.dmi'
|
||||
icon_state = "dresser"
|
||||
density = 1
|
||||
anchored = 1
|
||||
|
||||
/obj/structure/dresser/attack_hand(mob/user as mob)
|
||||
if(!Adjacent(user))//no tele-grooming
|
||||
return
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
|
||||
var/new_undies = input(user, "Select your underwear", "Changing") as null|anything in underwear_all
|
||||
if(!Adjacent(user))//no tele-grooming
|
||||
return
|
||||
if(new_undies)
|
||||
H.underwear = new_undies
|
||||
|
||||
add_fingerprint(H)
|
||||
/obj/structure/dresser
|
||||
name = "dresser"
|
||||
desc = "A nicely-crafted wooden dresser. It's filled with lots of undies."
|
||||
icon = 'icons/obj/stationobjs.dmi'
|
||||
icon_state = "dresser"
|
||||
density = 1
|
||||
anchored = 1
|
||||
|
||||
/obj/structure/dresser/attack_hand(mob/user as mob)
|
||||
if(!Adjacent(user))//no tele-grooming
|
||||
return
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
|
||||
var/new_undies = input(user, "Select your underwear", "Changing") as null|anything in underwear_all
|
||||
if(!Adjacent(user))//no tele-grooming
|
||||
return
|
||||
if(new_undies)
|
||||
H.underwear = new_undies
|
||||
|
||||
add_fingerprint(H)
|
||||
H.update_body()
|
||||
@@ -30,6 +30,7 @@
|
||||
attack_hand(user)
|
||||
|
||||
/obj/structure/grille/attack_hand(mob/user as mob)
|
||||
user.changeNext_move(8)
|
||||
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
|
||||
user.visible_message("<span class='warning'>[user] kicks [src].</span>", \
|
||||
"<span class='warning'>You kick [src].</span>", \
|
||||
@@ -45,7 +46,7 @@
|
||||
|
||||
/obj/structure/grille/attack_alien(mob/user as mob)
|
||||
if(istype(user, /mob/living/carbon/alien/larva)) return
|
||||
|
||||
user.changeNext_move(8)
|
||||
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
|
||||
user.visible_message("<span class='warning'>[user] mangles [src].</span>", \
|
||||
"<span class='warning'>You mangle [src].</span>", \
|
||||
@@ -57,6 +58,7 @@
|
||||
return
|
||||
|
||||
/obj/structure/grille/attack_slime(mob/living/carbon/slime/user as mob)
|
||||
user.changeNext_move(8)
|
||||
if(!user.is_adult) return
|
||||
|
||||
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
|
||||
@@ -69,6 +71,7 @@
|
||||
return
|
||||
|
||||
/obj/structure/grille/attack_animal(var/mob/living/simple_animal/M as mob)
|
||||
M.changeNext_move(8)
|
||||
if(M.melee_damage_upper == 0) return
|
||||
|
||||
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
|
||||
@@ -101,6 +104,7 @@
|
||||
return
|
||||
|
||||
/obj/structure/grille/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
user.changeNext_move(8)
|
||||
if(istype(W, /obj/item/weapon/wirecutters))
|
||||
if(!shock(user, 100))
|
||||
playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
|
||||
|
||||
@@ -12,21 +12,33 @@
|
||||
|
||||
/obj/structure/morgue
|
||||
name = "morgue"
|
||||
desc = "Used to keep bodies in untill someone fetches them."
|
||||
desc = "Used to keep bodies in until someone fetches them."
|
||||
icon = 'icons/obj/stationobjs.dmi'
|
||||
icon_state = "morgue1"
|
||||
density = 1
|
||||
var/obj/structure/m_tray/connected = null
|
||||
anchored = 1.0
|
||||
|
||||
/obj/structure/morgue/on_log()
|
||||
update()
|
||||
/obj/structure/morgue/New()
|
||||
connected = new(src)
|
||||
connected.connected = src
|
||||
..()
|
||||
|
||||
/obj/structure/morgue/proc/update()
|
||||
if (src.connected)
|
||||
/obj/structure/morgue/Destroy()
|
||||
open()
|
||||
if(connected)
|
||||
qdel(connected)
|
||||
connected = null
|
||||
..()
|
||||
|
||||
/obj/structure/morgue/on_log()
|
||||
update_icon()
|
||||
|
||||
/obj/structure/morgue/update_icon()
|
||||
if (!connected || connected.loc != src) //open or the tray broke off somehow
|
||||
src.icon_state = "morgue0"
|
||||
else
|
||||
if(!src.contents.len)
|
||||
if(src.contents.len == 1) //empty except for the tray
|
||||
src.icon_state = "morgue1"
|
||||
else
|
||||
|
||||
@@ -43,31 +55,6 @@
|
||||
src.icon_state = "morgue4"//clone that mofo
|
||||
break
|
||||
|
||||
|
||||
/obj/structure/morgue/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.loc = src.loc
|
||||
ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if (prob(50))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.loc = src.loc
|
||||
ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if (prob(5))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.loc = src.loc
|
||||
ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
return
|
||||
|
||||
/obj/structure/morgue/alter_health()
|
||||
return src.loc
|
||||
|
||||
@@ -75,31 +62,14 @@
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/structure/morgue/attack_hand(mob/user as mob)
|
||||
if (src.connected)
|
||||
for(var/atom/movable/A as mob|obj in src.connected.loc)
|
||||
if (!( A.anchored ))
|
||||
A.loc = src
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
//src.connected = null
|
||||
qdel(src.connected)
|
||||
if(!connected)
|
||||
user << "That doesn't appear to have a tray."
|
||||
return
|
||||
if(connected.loc == src)
|
||||
open()
|
||||
else
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
src.connected = new /obj/structure/m_tray( src.loc )
|
||||
step(src.connected, EAST)
|
||||
src.connected.layer = OBJ_LAYER
|
||||
var/turf/T = get_step(src, EAST)
|
||||
if (T.contents.Find(src.connected))
|
||||
src.connected.connected = src
|
||||
src.icon_state = "morgue0"
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.loc = src.connected.loc
|
||||
src.connected.icon_state = "morguet"
|
||||
else
|
||||
//src.connected = null
|
||||
qdel(src.connected)
|
||||
src.add_fingerprint(user)
|
||||
update()
|
||||
return
|
||||
close()
|
||||
add_fingerprint(user)
|
||||
|
||||
/obj/structure/morgue/attackby(P as obj, mob/user as mob)
|
||||
if (istype(P, /obj/item/weapon/pen))
|
||||
@@ -113,25 +83,24 @@
|
||||
src.name = text("Morgue- '[]'", t)
|
||||
else
|
||||
src.name = "Morgue"
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
add_fingerprint(user)
|
||||
|
||||
/obj/structure/morgue/container_resist()
|
||||
src.connected = new /obj/structure/m_tray( src.loc )
|
||||
step(src.connected, EAST)
|
||||
src.connected.layer = OBJ_LAYER
|
||||
open()
|
||||
|
||||
/obj/structure/morgue/proc/open()
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
var/turf/T = get_step(src, EAST)
|
||||
if (T.contents.Find(src.connected))
|
||||
src.connected.connected = src
|
||||
src.icon_state = "morgue0"
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.loc = src.connected.loc
|
||||
//Foreach goto(106)
|
||||
src.connected.icon_state = "morguet"
|
||||
else
|
||||
//src.connected = null
|
||||
qdel(src.connected)
|
||||
return
|
||||
for(var/atom/movable/A in src)
|
||||
A.loc = T
|
||||
update_icon()
|
||||
|
||||
/obj/structure/morgue/proc/close()
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
for(var/atom/movable/A in connected.loc)
|
||||
if(!A.anchored || A == connected)
|
||||
A.loc = src
|
||||
update_icon()
|
||||
|
||||
|
||||
/*
|
||||
@@ -148,22 +117,22 @@
|
||||
anchored = 1.0
|
||||
throwpass = 1
|
||||
|
||||
/obj/structure/m_tray/Destroy()
|
||||
if(connected)
|
||||
connected.connected = null
|
||||
connected.update_icon()
|
||||
connected = null
|
||||
..()
|
||||
|
||||
/obj/structure/m_tray/attack_paw(mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/structure/m_tray/attack_hand(mob/user as mob)
|
||||
if (src.connected)
|
||||
for(var/atom/movable/A as mob|obj in src.loc)
|
||||
if (!( A.anchored ))
|
||||
A.loc = src.connected
|
||||
//Foreach goto(26)
|
||||
src.connected.connected = null
|
||||
src.connected.update()
|
||||
connected.close()
|
||||
add_fingerprint(user)
|
||||
//SN src = null
|
||||
qdel(src)
|
||||
return
|
||||
return
|
||||
else
|
||||
user << "That's not connected to anything."
|
||||
|
||||
/obj/structure/m_tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
|
||||
if ((!( istype(O, /atom/movable) ) || O.anchored || get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src) || user.contents.Find(O)))
|
||||
@@ -196,12 +165,24 @@
|
||||
var/id = 1
|
||||
var/locked = 0
|
||||
|
||||
/obj/structure/crematorium/proc/update()
|
||||
if (src.connected)
|
||||
src.icon_state = "crema0"
|
||||
/obj/structure/crematorium/New()
|
||||
connected = new(src)
|
||||
connected.connected = src
|
||||
..()
|
||||
|
||||
/obj/structure/crematorium/Destroy()
|
||||
open()
|
||||
if(connected)
|
||||
qdel(connected)
|
||||
connected = null
|
||||
..()
|
||||
|
||||
/obj/structure/crematorium/update_icon()
|
||||
if(!connected || connected.loc != src)
|
||||
icon_state = "crema0"
|
||||
else
|
||||
|
||||
if(src.contents.len)
|
||||
if(src.contents.len > 1)
|
||||
src.icon_state = "crema2"
|
||||
else
|
||||
src.icon_state = "crema1"
|
||||
@@ -212,31 +193,6 @@
|
||||
return
|
||||
|
||||
|
||||
|
||||
/obj/structure/crematorium/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.loc = src.loc
|
||||
ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(2.0)
|
||||
if (prob(50))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.loc = src.loc
|
||||
ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
if(3.0)
|
||||
if (prob(5))
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.loc = src.loc
|
||||
ex_act(severity)
|
||||
qdel(src)
|
||||
return
|
||||
return
|
||||
|
||||
/obj/structure/crematorium/alter_health()
|
||||
return src.loc
|
||||
|
||||
@@ -244,39 +200,17 @@
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/structure/crematorium/attack_hand(mob/user as mob)
|
||||
// if (cremating) AWW MAN! THIS WOULD BE SO MUCH MORE FUN ... TO WATCH
|
||||
// user.show_message("\red Uh-oh, that was a bad idea.", 1)
|
||||
// //usr << "Uh-oh, that was a bad idea."
|
||||
// src:loc:poison += 20000000
|
||||
// src:loc:firelevel = src:loc:poison
|
||||
// return
|
||||
if (cremating)
|
||||
usr << "\red It's locked."
|
||||
if (cremating || locked)
|
||||
user << "\red It's locked."
|
||||
return
|
||||
if ((src.connected) && (src.locked == 0))
|
||||
for(var/atom/movable/A as mob|obj in src.connected.loc)
|
||||
if (!( A.anchored ))
|
||||
A.loc = src
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
//src.connected = null
|
||||
qdel(src.connected)
|
||||
else if (src.locked == 0)
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
src.connected = new /obj/structure/c_tray( src.loc )
|
||||
step(src.connected, SOUTH)
|
||||
src.connected.layer = OBJ_LAYER
|
||||
var/turf/T = get_step(src, SOUTH)
|
||||
if (T.contents.Find(src.connected))
|
||||
src.connected.connected = src
|
||||
src.icon_state = "crema0"
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.loc = src.connected.loc
|
||||
src.connected.icon_state = "cremat"
|
||||
else
|
||||
//src.connected = null
|
||||
qdel(src.connected)
|
||||
src.add_fingerprint(user)
|
||||
update()
|
||||
if (!connected)
|
||||
user << "That doesn't appear to have a tray."
|
||||
return
|
||||
if(connected.loc == src)
|
||||
open()
|
||||
else
|
||||
close()
|
||||
add_fingerprint(user)
|
||||
|
||||
/obj/structure/crematorium/attackby(P as obj, mob/user as mob)
|
||||
if (istype(P, /obj/item/weapon/pen))
|
||||
@@ -294,30 +228,13 @@
|
||||
return
|
||||
|
||||
/obj/structure/crematorium/container_resist()
|
||||
src.connected = new /obj/structure/c_tray( src.loc )
|
||||
step(src.connected, SOUTH)
|
||||
src.connected.layer = OBJ_LAYER
|
||||
var/turf/T = get_step(src, SOUTH)
|
||||
if (T.contents.Find(src.connected))
|
||||
src.connected.connected = src
|
||||
src.icon_state = "crema0"
|
||||
for(var/atom/movable/A as mob|obj in src)
|
||||
A.loc = src.connected.loc
|
||||
//Foreach goto(106)
|
||||
src.connected.icon_state = "cremat"
|
||||
else
|
||||
//src.connected = null
|
||||
qdel(src.connected)
|
||||
return
|
||||
open()
|
||||
|
||||
/obj/structure/crematorium/proc/cremate(atom/A, mob/user as mob)
|
||||
// for(var/obj/machinery/crema_switch/O in src) //trying to figure a way to call the switch, too drunk to sort it out atm
|
||||
// if(var/on == 1)
|
||||
// return
|
||||
/obj/structure/crematorium/proc/cremate(mob/user as mob)
|
||||
if(cremating)
|
||||
return //don't let you cremate something twice or w/e
|
||||
|
||||
if(contents.len <= 0)
|
||||
if(contents.len <= 1)
|
||||
for (var/mob/M in viewers(src))
|
||||
M.show_message("\red You hear a hollow crackle.", 1)
|
||||
return
|
||||
@@ -332,30 +249,43 @@
|
||||
|
||||
cremating = 1
|
||||
locked = 1
|
||||
update()
|
||||
update_icon()
|
||||
|
||||
for(var/mob/living/M in contents)
|
||||
if (M.stat!=2)
|
||||
M.emote("scream")
|
||||
//Logging for this causes runtimes resulting in the cremator locking up. Commenting it out until that's figured out.
|
||||
//M.attack_log += "\[[time_stamp()]\] Has been cremated by <b>[user]/[user.ckey]</b>" //No point in this when the mob's about to be deleted
|
||||
//user.attack_log +="\[[time_stamp()]\] Cremated <b>[M]/[M.ckey]</b>"
|
||||
//log_attack("\[[time_stamp()]\] <b>[user]/[user.ckey]</b> cremated <b>[M]/[M.ckey]</b>")
|
||||
user.attack_log +="\[[time_stamp()]\] Cremated <b>[M]/[M.ckey]</b>"
|
||||
log_attack("\[[time_stamp()]\] <b>[user]/[user.ckey]</b> cremated <b>[M]/[M.ckey]</b>")
|
||||
M.death(1)
|
||||
M.ghostize()
|
||||
qdel(M)
|
||||
|
||||
for(var/obj/O in contents) //obj instead of obj/item so that bodybags and ashes get destroyed. We dont want tons and tons of ash piling up
|
||||
qdel(O)
|
||||
if(O != connected) //Creamtorium does not burn hot enough to destroy the tray
|
||||
qdel(O)
|
||||
|
||||
new /obj/effect/decal/cleanable/ash(src)
|
||||
sleep(30)
|
||||
cremating = 0
|
||||
locked = 0
|
||||
update()
|
||||
update_icon()
|
||||
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
|
||||
return
|
||||
|
||||
/obj/structure/crematorium/proc/open()
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
var/turf/T = get_step(src, SOUTH)
|
||||
for(var/atom/movable/A in src)
|
||||
A.loc = T
|
||||
update_icon()
|
||||
|
||||
/obj/structure/crematorium/proc/close()
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
for(var/atom/movable/A in connected.loc)
|
||||
if(!A.anchored || A == connected)
|
||||
A.loc = src
|
||||
update_icon()
|
||||
|
||||
/*
|
||||
* Crematorium tray
|
||||
@@ -371,22 +301,22 @@
|
||||
anchored = 1.0
|
||||
throwpass = 1
|
||||
|
||||
/obj/structure/c_tray/Destroy()
|
||||
if(connected)
|
||||
connected.connected = null
|
||||
connected.update_icon()
|
||||
connected = null
|
||||
..()
|
||||
|
||||
/obj/structure/c_tray/attack_paw(mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/structure/c_tray/attack_hand(mob/user as mob)
|
||||
if (src.connected)
|
||||
for(var/atom/movable/A as mob|obj in src.loc)
|
||||
if (!( A.anchored ))
|
||||
A.loc = src.connected
|
||||
//Foreach goto(26)
|
||||
src.connected.connected = null
|
||||
src.connected.update()
|
||||
connected.close()
|
||||
add_fingerprint(user)
|
||||
//SN src = null
|
||||
qdel(src)
|
||||
return
|
||||
return
|
||||
else
|
||||
user << "That's not connected to anything."
|
||||
|
||||
/obj/structure/c_tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob)
|
||||
if ((!( istype(O, /atom/movable) ) || O.anchored || get_dist(user, src) > 1 || get_dist(user, O) > 1 || user.contents.Find(src) || user.contents.Find(O)))
|
||||
|
||||
@@ -87,15 +87,15 @@
|
||||
desc = "A warning sign which reads 'NO SMOKING'"
|
||||
icon_state = "nosmoking2"
|
||||
|
||||
/obj/structure/sign/redcross
|
||||
/obj/structure/sign/bluecross
|
||||
name = "medbay"
|
||||
desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here.'"
|
||||
icon_state = "redcross"
|
||||
icon_state = "bluecross"
|
||||
|
||||
/obj/structure/sign/greencross
|
||||
/obj/structure/sign/bluecross_2
|
||||
name = "medbay"
|
||||
desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here.'"
|
||||
icon_state = "greencross"
|
||||
icon_state = "bluecross2"
|
||||
|
||||
/obj/structure/sign/goldenplaque
|
||||
name = "The Most Robust Men Award for Robustness"
|
||||
|
||||
@@ -558,6 +558,7 @@
|
||||
|
||||
if (istype(I, /obj/item/weapon/wrench))
|
||||
table_destroy(2, user)
|
||||
return
|
||||
|
||||
if(isrobot(user))
|
||||
return
|
||||
@@ -569,6 +570,7 @@
|
||||
playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1)
|
||||
playsound(src.loc, "sparks", 50, 1)
|
||||
table_destroy(1, user)
|
||||
return
|
||||
|
||||
if(!(I.flags & ABSTRACT)) //rip more parems rip in peace ;_;
|
||||
if(user.drop_item())
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -114,6 +114,7 @@
|
||||
R.add_fingerprint(user)
|
||||
qdel(src)
|
||||
else
|
||||
user.changeNext_move(8)
|
||||
user.visible_message("<span class='notice'>[user] knocks on [src].</span>")
|
||||
add_fingerprint(user)
|
||||
playsound(loc, 'sound/effects/Glasshit.ogg', 50, 1)
|
||||
@@ -126,6 +127,7 @@
|
||||
/obj/structure/window/proc/attack_generic(mob/user as mob, damage = 0) //used by attack_alien, attack_animal, and attack_slime
|
||||
if(!can_be_reached(user))
|
||||
return
|
||||
user.changeNext_move(8)
|
||||
health -= damage
|
||||
if(health <= 0)
|
||||
user.visible_message("<span class='danger'>[user] smashes through [src]!</span>")
|
||||
@@ -193,6 +195,7 @@
|
||||
qdel(src)
|
||||
else
|
||||
if(I.damtype == BRUTE || I.damtype == BURN)
|
||||
user.changeNext_move(8)
|
||||
hit(I.force)
|
||||
if(health <= 7)
|
||||
anchored = 0
|
||||
|
||||
Reference in New Issue
Block a user