mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 21:18:37 +01:00
Merge branch 'master' of https://github.com/tgstation/-tg-station into readdjanikart
Conflicts: code/game/objects/structures/janicart.dm
This commit is contained in:
@@ -16,7 +16,6 @@
|
||||
new /obj/item/clothing/gloves/fingerless(src)
|
||||
new /obj/item/clothing/head/soft(src)
|
||||
// new /obj/item/weapon/cartridge/quartermaster(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/cargo(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/secure_closet/quartermaster
|
||||
@@ -31,6 +30,7 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/quartermaster/New()
|
||||
..()
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/cargo(src)
|
||||
new /obj/item/clothing/under/rank/cargo(src)
|
||||
new /obj/item/clothing/shoes/sneakers/brown(src)
|
||||
new /obj/item/device/radio/headset/headset_cargo(src)
|
||||
@@ -41,5 +41,4 @@
|
||||
new /obj/item/clothing/mask/gas(src)
|
||||
new /obj/item/clothing/glasses/meson(src)
|
||||
new /obj/item/clothing/head/soft(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/cargo(src)
|
||||
return
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_chief/New()
|
||||
..()
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/engineering(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/engineering/atmos(src)
|
||||
if(prob(50))
|
||||
new /obj/item/weapon/storage/backpack/industrial(src)
|
||||
else
|
||||
@@ -30,7 +32,6 @@
|
||||
new /obj/item/clothing/mask/gas(src)
|
||||
new /obj/item/device/multitool(src)
|
||||
new /obj/item/device/flash/handheld(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/engineering(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_electrical
|
||||
@@ -109,7 +110,6 @@
|
||||
new /obj/item/clothing/suit/hazardvest(src)
|
||||
new /obj/item/clothing/mask/gas(src)
|
||||
new /obj/item/clothing/glasses/meson(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/engineering(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/secure_closet/atmospherics
|
||||
@@ -133,5 +133,4 @@
|
||||
new /obj/item/weapon/watertank/atmos(src)
|
||||
new /obj/item/clothing/suit/fire/atmos(src)
|
||||
new /obj/item/clothing/head/hardhat/atmos(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/engineering/atmos(src)
|
||||
return
|
||||
@@ -11,6 +11,7 @@
|
||||
|
||||
New()
|
||||
..()
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/hydro(src)
|
||||
switch(rand(1,2))
|
||||
if(1)
|
||||
new /obj/item/clothing/suit/apron(src)
|
||||
@@ -23,5 +24,4 @@
|
||||
new /obj/item/clothing/mask/bandana(src)
|
||||
new /obj/item/weapon/minihoe(src)
|
||||
new /obj/item/weapon/hatchet(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/hydro(src)
|
||||
return
|
||||
@@ -17,10 +17,10 @@
|
||||
new /obj/item/weapon/reagent_containers/dropper(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/antitoxin(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/antitoxin(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/charcoal(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -73,7 +73,6 @@
|
||||
new /obj/item/clothing/gloves/color/latex/nitrile(src)
|
||||
new /obj/item/weapon/storage/belt/medical(src)
|
||||
new /obj/item/clothing/glasses/hud/health(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/medical(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -90,6 +89,7 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/CMO/New()
|
||||
..()
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/medical(src)
|
||||
if(prob(50))
|
||||
new /obj/item/weapon/storage/backpack/medic(src)
|
||||
else
|
||||
@@ -105,7 +105,6 @@
|
||||
new /obj/item/clothing/gloves/color/latex/nitrile(src)
|
||||
new /obj/item/weapon/storage/belt/medical(src)
|
||||
new /obj/item/device/flash/handheld(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/medical(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/CMO(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -51,8 +51,6 @@
|
||||
contents = list()
|
||||
new /obj/item/weapon/storage/backpack/satchel/withwallet( src )
|
||||
new /obj/item/device/radio/headset( src )
|
||||
new /obj/item/clothing/suit/toggle/wintercoat(src)
|
||||
new /obj/item/clothing/head/santa(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/secure_closet/personal/attackby(obj/item/W as obj, mob/user as mob)
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
new /obj/item/device/radio/headset/headset_sci(src)
|
||||
new /obj/item/weapon/tank/air(src)
|
||||
new /obj/item/clothing/mask/gas(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/science(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -34,6 +33,7 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/RD/New()
|
||||
..()
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/science(src)
|
||||
new /obj/item/clothing/suit/bio_suit/scientist(src)
|
||||
new /obj/item/clothing/head/bio_hood/scientist(src)
|
||||
new /obj/item/clothing/suit/toggle/labcoat(src)
|
||||
@@ -49,5 +49,4 @@
|
||||
new /obj/item/clothing/suit/armor/reactive(src)
|
||||
new /obj/item/device/flash/handheld(src)
|
||||
new /obj/item/device/laser_pointer(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/science(src)
|
||||
return
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/captains/New()
|
||||
..()
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/captain(src)
|
||||
if(prob(50))
|
||||
new /obj/item/weapon/storage/backpack/captain(src)
|
||||
else
|
||||
@@ -23,8 +24,6 @@
|
||||
new /obj/item/clothing/shoes/sneakers/brown(src)
|
||||
new /obj/item/device/radio/headset/heads/captain/alt(src)
|
||||
new /obj/item/clothing/gloves/color/captain(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/captain(src)
|
||||
new /obj/item/clothing/head/santa(src)
|
||||
new /obj/item/weapon/gun/energy/gun(src)
|
||||
return
|
||||
|
||||
@@ -40,6 +39,7 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/hop/New()
|
||||
..()
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/cargo(src)
|
||||
new /obj/item/clothing/under/rank/head_of_personnel(src)
|
||||
new /obj/item/clothing/head/hopcap(src)
|
||||
new /obj/item/weapon/cartridge/hop(src)
|
||||
@@ -52,8 +52,6 @@
|
||||
new /obj/item/device/flash/handheld(src)
|
||||
new /obj/item/clothing/glasses/sunglasses(src)
|
||||
new /obj/item/weapon/mining_voucher(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/cargo(src)
|
||||
new /obj/item/clothing/head/hardhat/reindeer()
|
||||
return
|
||||
|
||||
|
||||
@@ -70,6 +68,7 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/hos/New()
|
||||
..()
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/security(src)
|
||||
new /obj/item/weapon/cartridge/hos(src)
|
||||
new /obj/item/device/radio/headset/heads/hos(src)
|
||||
new /obj/item/clothing/under/hosparadefem(src)
|
||||
@@ -83,8 +82,7 @@
|
||||
new /obj/item/weapon/shield/riot/tele(src)
|
||||
new /obj/item/weapon/melee/baton/loaded(src)
|
||||
new /obj/item/weapon/gun/energy/gun/advtaser(src)
|
||||
new /obj/item/weapon/storage/belt/security(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/security(src)
|
||||
new /obj/item/weapon/storage/belt/security/full(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -113,8 +111,7 @@
|
||||
new /obj/item/weapon/reagent_containers/spray/pepper(src)
|
||||
new /obj/item/weapon/melee/baton/loaded(src)
|
||||
new /obj/item/weapon/gun/energy/gun/advtaser(src)
|
||||
new /obj/item/weapon/storage/belt/security(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/security(src)
|
||||
new /obj/item/weapon/storage/belt/security/full(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -137,9 +134,8 @@
|
||||
new /obj/item/weapon/reagent_containers/spray/pepper(src)
|
||||
new /obj/item/device/flash/handheld(src)
|
||||
new /obj/item/weapon/grenade/flashbang(src)
|
||||
new /obj/item/weapon/storage/belt/security(src)
|
||||
new /obj/item/weapon/storage/belt/security/full(src)
|
||||
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/security(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -209,9 +205,9 @@
|
||||
new /obj/item/device/radio/headset/headset_sec/alt(src)
|
||||
new /obj/item/device/detective_scanner(src)
|
||||
new /obj/item/clothing/suit/armor/vest/det_suit(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat(src)
|
||||
new /obj/item/ammo_box/c38(src)
|
||||
new /obj/item/ammo_box/c38(src)
|
||||
new /obj/item/weapon/storage/belt/holster(src)
|
||||
new /obj/item/weapon/gun/projectile/revolver/detective(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -5,6 +5,36 @@
|
||||
icon_closed = "syndicate"
|
||||
icon_opened = "syndicateopen"
|
||||
|
||||
/obj/structure/closet/syndicate/ertCom/New()
|
||||
name = "commanders closet"
|
||||
desc = "Emergency Response Team equipment locker"
|
||||
new /obj/item/weapon/card/id/ertsCommand(src)
|
||||
new /obj/item/weapon/storage/backpack/security(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/syndicate/ertSec/New()
|
||||
name = "security closet"
|
||||
desc = "Emergency Response Team equipment locker"
|
||||
new /obj/item/weapon/gun/energy/pulse_rifle/pulse_pistol(src)
|
||||
new /obj/item/weapon/card/id/ertsSecurity(src)
|
||||
new /obj/item/weapon/storage/backpack/security(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/syndicate/ertMed/New()
|
||||
name = "medical closet"
|
||||
desc = "Emergency Response Team equipment locker"
|
||||
new /obj/item/weapon/gun/energy/pulse_rifle/pulse_pistol(src)
|
||||
new /obj/item/weapon/card/id/ertsMedical(src)
|
||||
new /obj/item/weapon/storage/backpack/medic(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/syndicate/ertEngi/New()
|
||||
name = "engineer closet"
|
||||
desc = "Emergency Response Team equipment locker"
|
||||
new /obj/item/weapon/gun/energy/pulse_rifle/pulse_pistol(src)
|
||||
new /obj/item/weapon/card/id/ertsEngineer(src)
|
||||
new /obj/item/weapon/storage/backpack/industrial(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/syndicate/personal
|
||||
desc = "It's a personal storage unit for operative gear."
|
||||
|
||||
@@ -273,7 +273,6 @@
|
||||
new /obj/item/clothing/gloves/fingerless(src)
|
||||
new /obj/item/clothing/head/soft/black(src)
|
||||
new /obj/item/clothing/head/soft/black(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/science(src)
|
||||
if(prob(40))
|
||||
new /obj/item/clothing/mask/bandana/skull(src)
|
||||
if(prob(40))
|
||||
@@ -293,7 +292,6 @@
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
new /obj/item/clothing/suit/toggle/labcoat/chemist(src)
|
||||
new /obj/item/clothing/suit/toggle/labcoat/chemist(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/medical(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -309,7 +307,6 @@
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
new /obj/item/clothing/suit/toggle/labcoat/genetics(src)
|
||||
new /obj/item/clothing/suit/toggle/labcoat/genetics(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/medical(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -327,7 +324,6 @@
|
||||
new /obj/item/clothing/suit/toggle/labcoat/virologist(src)
|
||||
new /obj/item/clothing/mask/surgical(src)
|
||||
new /obj/item/clothing/mask/surgical(src)
|
||||
new /obj/item/clothing/suit/toggle/wintercoat/medical(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -353,10 +349,9 @@
|
||||
new /obj/item/clothing/under/assistantformal(src)
|
||||
if(prob(40))
|
||||
new /obj/item/clothing/under/assistantformal(src)
|
||||
if(prob(50))
|
||||
if(prob(30))
|
||||
new /obj/item/clothing/suit/toggle/wintercoat(src)
|
||||
new /obj/item/clothing/shoes/winterboots(src)
|
||||
new /obj/item/clothing/head/santa(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -394,8 +389,7 @@
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/shoes/sneakers/brown(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
if(prob(50))
|
||||
if(prob(30))
|
||||
new /obj/item/clothing/suit/toggle/wintercoat(src)
|
||||
new /obj/item/clothing/shoes/winterboots(src)
|
||||
new /obj/item/clothing/head/santa(src)
|
||||
return
|
||||
|
||||
@@ -228,7 +228,7 @@
|
||||
|
||||
/obj/structure/stool/bed/chair/janicart/relaymove(mob/user, direction)
|
||||
if(user.stat || user.stunned || user.weakened || user.paralysis)
|
||||
unbuckle()
|
||||
unbuckle_mob()
|
||||
if(istype(user.l_hand, keytype) || istype(user.r_hand, keytype))
|
||||
if(!Process_Spacemove(direction) || !has_gravity(src.loc) || move_delay)
|
||||
return
|
||||
@@ -241,7 +241,7 @@
|
||||
playsound(src, 'sound/misc/slip.ogg', 50, 1, -3)
|
||||
buckled_mob.Stun(7)
|
||||
buckled_mob.Weaken(7)
|
||||
unbuckle()
|
||||
unbuckle_mob()
|
||||
step(src, dir)
|
||||
move_delay = 1
|
||||
spawn(2)
|
||||
@@ -250,15 +250,16 @@
|
||||
user << "<span class='notice'>You'll need the keys in one of your hands to drive this [callme].</span>"
|
||||
|
||||
|
||||
/obj/structure/stool/bed/chair/janicart/buckle_mob(mob/M, mob/user)
|
||||
/obj/structure/stool/bed/chair/janicart/user_buckle_mob(mob/M, mob/user)
|
||||
if(M != user || !ismob(M) || get_dist(src, user) > 1 || user.restrained() || user.lying || user.stat || M.buckled || istype(user, /mob/living/silicon))
|
||||
return
|
||||
|
||||
unbuckle()
|
||||
unbuckle_mob()
|
||||
|
||||
M.visible_message(\
|
||||
"<span class='notice'>[M] climbs onto the [callme]!</span>",\
|
||||
"<span class='notice'>You climb onto the [callme]!</span>")
|
||||
|
||||
M.buckled = src
|
||||
M.loc = loc
|
||||
M.dir = dir
|
||||
@@ -267,7 +268,7 @@
|
||||
update_mob()
|
||||
add_fingerprint(user)
|
||||
|
||||
/obj/structure/stool/bed/chair/janicart/unbuckle()
|
||||
/obj/structure/stool/bed/chair/janicart/unbuckle_mob()
|
||||
if(buckled_mob)
|
||||
buckled_mob.pixel_x = 0
|
||||
buckled_mob.pixel_y = 0
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
icon_state = "nest"
|
||||
var/health = 100
|
||||
|
||||
/*
|
||||
/obj/structure/stool/bed/nest/unbuckle_other(mob/user as mob)
|
||||
buckled_mob.visible_message(\
|
||||
"<span class='notice'>[user.name] pulls [buckled_mob.name] free from the sticky nest!</span>",\
|
||||
@@ -22,8 +23,9 @@
|
||||
spawn(600)
|
||||
if(user && buckled_mob && user.buckled == src)
|
||||
unbuckle()
|
||||
*/
|
||||
|
||||
/obj/structure/stool/bed/nest/buckle_mob(mob/M as mob, mob/user as mob)
|
||||
/obj/structure/stool/bed/nest/user_buckle_mob(mob/M as mob, mob/user as mob)
|
||||
if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || user.restrained() || usr.stat || M.buckled || istype(user, /mob/living/silicon/pai) )
|
||||
return
|
||||
|
||||
@@ -32,7 +34,7 @@
|
||||
if(!istype(user,/mob/living/carbon/alien/humanoid))
|
||||
return
|
||||
|
||||
unbuckle()
|
||||
unbuckle_mob()
|
||||
|
||||
if(M == usr)
|
||||
return
|
||||
@@ -41,24 +43,19 @@
|
||||
"<span class='notice'>[user.name] secretes a thick vile goo, securing [M.name] into [src]!</span>",\
|
||||
"<span class='warning'>[user.name] drenches you in a foul-smelling resin, trapping you in [src]!</span>",\
|
||||
"<span class='notice'>You hear squelching...</span>")
|
||||
M.buckled = src
|
||||
M.loc = src.loc
|
||||
M.dir = src.dir
|
||||
M.update_canmove()
|
||||
M.pixel_y += 1
|
||||
M.pixel_x += 2
|
||||
M.anchored = anchored
|
||||
src.buckled_mob = M
|
||||
src.add_fingerprint(user)
|
||||
src.overlays += image('icons/mob/alien.dmi', "nestoverlay", layer=6)
|
||||
return
|
||||
|
||||
/obj/structure/stool/bed/nest/unbuckle()
|
||||
if(buckled_mob)
|
||||
/obj/structure/stool/bed/nest/post_buckle_mob(mob/living/M)
|
||||
if(M == buckled_mob)
|
||||
M.pixel_y += 1
|
||||
M.pixel_x += 2
|
||||
overlays += image('icons/mob/alien.dmi', "nestoverlay", layer=6)
|
||||
else
|
||||
buckled_mob.pixel_y -= 1
|
||||
buckled_mob.pixel_x -= 2
|
||||
overlays.Cut()
|
||||
..()
|
||||
overlays.Cut()
|
||||
|
||||
|
||||
|
||||
/obj/structure/stool/bed/nest/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
var/aforce = W.force
|
||||
|
||||
@@ -11,17 +11,14 @@
|
||||
name = "bed"
|
||||
desc = "This is used to lie in, sleep in or strap on."
|
||||
icon_state = "bed"
|
||||
var/mob/living/buckled_mob
|
||||
can_buckle = 1
|
||||
buckle_lying = 1
|
||||
|
||||
/obj/structure/stool/bed/alien
|
||||
name = "resting contraption"
|
||||
desc = "This looks similar to contraptions from earth. Could aliens be stealing our technology?"
|
||||
icon_state = "abed"
|
||||
|
||||
/obj/structure/stool/bed/Destroy()
|
||||
unbuckle()
|
||||
..()
|
||||
|
||||
/obj/structure/stool/bed/Move(atom/newloc, direct) //Some bed children move
|
||||
. = ..()
|
||||
if(buckled_mob)
|
||||
@@ -47,99 +44,12 @@
|
||||
/obj/structure/stool/bed/attack_paw(mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/structure/stool/bed/attack_hand(mob/user as mob)
|
||||
manual_unbuckle(user)
|
||||
return
|
||||
|
||||
/obj/structure/stool/bed/attack_animal(var/mob/living/simple_animal/M)//No more buckling hostile mobs to chairs to render them immobile forever
|
||||
if(M.environment_smash)
|
||||
new /obj/item/stack/sheet/metal(src.loc)
|
||||
qdel(src)
|
||||
return
|
||||
manual_unbuckle(M)
|
||||
|
||||
/obj/structure/stool/bed/MouseDrop_T(mob/M as mob, mob/user as mob)
|
||||
if(!istype(M)) return
|
||||
buckle_mob(M, user)
|
||||
return
|
||||
|
||||
/obj/structure/stool/bed/proc/afterbuckle(mob/M as mob) // Called after somebody buckled / unbuckled
|
||||
return
|
||||
|
||||
/obj/structure/stool/bed/proc/unbuckle()
|
||||
if(buckled_mob)
|
||||
if(buckled_mob.buckled == src) //this is probably unneccesary, but it doesn't hurt
|
||||
buckled_mob.buckled = null
|
||||
buckled_mob.anchored = initial(buckled_mob.anchored)
|
||||
buckled_mob.update_canmove()
|
||||
|
||||
var/mob/M = buckled_mob
|
||||
buckled_mob = null
|
||||
|
||||
M.newtonian_move(inertia_dir)
|
||||
afterbuckle(M)
|
||||
return
|
||||
|
||||
/obj/structure/stool/bed/proc/manual_unbuckle(mob/user as mob)
|
||||
if(buckled_mob)
|
||||
if(buckled_mob.buckled == src)
|
||||
if(buckled_mob != user)
|
||||
if(!(user.buckled))
|
||||
unbuckle_other(user)
|
||||
else
|
||||
user << "<span class='notice'>You can't reach [src]!</span>"
|
||||
else
|
||||
unbuckle_myself(user)
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
/obj/structure/stool/bed/proc/unbuckle_other(mob/user as mob)
|
||||
buckled_mob.visible_message(\
|
||||
"<span class='notice'>[buckled_mob.name] was unbuckled by [user.name]!</span>",\
|
||||
"You were unbuckled from [src] by [user.name].",\
|
||||
"You hear metal clanking.")
|
||||
unbuckle()
|
||||
|
||||
|
||||
/obj/structure/stool/bed/proc/unbuckle_myself(mob/user as mob)
|
||||
buckled_mob.visible_message(\
|
||||
"<span class='notice'>[buckled_mob.name] unbuckled!</span>",\
|
||||
"You unbuckle yourself from [src].",\
|
||||
"You hear metal clanking.")
|
||||
unbuckle()
|
||||
|
||||
/obj/structure/stool/bed/proc/buckle_mob(mob/M as mob, mob/user as mob)
|
||||
if (!ticker)
|
||||
user << "You can't buckle anyone in before the game starts."
|
||||
if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || user.restrained() || user.lying || user.stat || M.buckled || istype(user, /mob/living/silicon/pai) || M.anchored)
|
||||
return
|
||||
|
||||
if (istype(M, /mob/living/carbon/slime) || istype(M, /mob/living/simple_animal/slime))
|
||||
user << "\The [M] is too squishy to buckle in."
|
||||
return
|
||||
|
||||
unbuckle()
|
||||
|
||||
if (M == usr)
|
||||
M.visible_message(\
|
||||
"<span class='notice'>[M.name] buckles in!</span>",\
|
||||
"You buckle yourself to [src].",\
|
||||
"You hear metal clanking")
|
||||
else
|
||||
M.visible_message(\
|
||||
"<span class='notice'>[M.name] is buckled in to [src] by [user.name]!</span>",\
|
||||
"You are buckled in to [src] by [user.name].",\
|
||||
"You hear metal clanking")
|
||||
M.buckled = src
|
||||
M.anchored = anchored
|
||||
M.loc = src.loc
|
||||
M.dir = src.dir
|
||||
M.update_canmove()
|
||||
src.buckled_mob = M
|
||||
src.add_fingerprint(user)
|
||||
|
||||
afterbuckle(M)
|
||||
return
|
||||
|
||||
/*
|
||||
* Roller beds
|
||||
@@ -151,18 +61,19 @@
|
||||
anchored = 0
|
||||
var/const/buckled_pixel_y_offset = 6 //Mobs buckled will have their pixel_y offset by this much
|
||||
|
||||
/obj/structure/stool/bed/roller/afterbuckle(mob/M as mob)
|
||||
if(buckled_mob)
|
||||
|
||||
/obj/structure/stool/bed/roller/post_buckle_mob(mob/M)
|
||||
if(M == buckled_mob)
|
||||
density = 1
|
||||
icon_state = "up"
|
||||
M.pixel_y = initial(M.pixel_y)
|
||||
else
|
||||
density = 0
|
||||
icon_state = "down"
|
||||
M.pixel_y = initial(M.pixel_y)
|
||||
if(M.lying)
|
||||
M.pixel_y -= buckled_pixel_y_offset
|
||||
|
||||
if(buckled_mob)
|
||||
buckled_mob.pixel_y = initial(buckled_mob.pixel_y)
|
||||
if(buckled_mob.lying)
|
||||
buckled_mob.pixel_y -= buckled_pixel_y_offset
|
||||
|
||||
|
||||
/obj/item/roller
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "chair"
|
||||
desc = "You sit in this. Either by will or force."
|
||||
icon_state = "chair"
|
||||
buckle_lying = 0 //you sit in a chair, not lay
|
||||
|
||||
/obj/structure/stool/bed/chair/New()
|
||||
..()
|
||||
@@ -68,10 +69,6 @@
|
||||
return
|
||||
spin()
|
||||
|
||||
/obj/structure/stool/bed/chair/MouseDrop_T(mob/M as mob, mob/user as mob)
|
||||
if(!istype(M)) return
|
||||
buckle_mob(M, user)
|
||||
return
|
||||
|
||||
// Chair types
|
||||
/obj/structure/stool/bed/chair/wood/normal
|
||||
@@ -105,12 +102,13 @@
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/structure/stool/bed/chair/comfy/afterbuckle()
|
||||
/obj/structure/stool/bed/chair/comfy/post_buckle_mob(mob/living/M)
|
||||
if(buckled_mob)
|
||||
overlays += armrest
|
||||
else
|
||||
overlays -= armrest
|
||||
|
||||
|
||||
/obj/structure/stool/bed/chair/comfy/brown
|
||||
color = rgb(255,113,0)
|
||||
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
density = 0
|
||||
anchored = 0
|
||||
layer = 2.8
|
||||
var/framestack = /obj/item/stack/rods
|
||||
var/framestackamount = 2
|
||||
|
||||
/obj/structure/table_frame/attackby(var/obj/item/I, mob/user)
|
||||
if(istype(I, /obj/item/weapon/wrench))
|
||||
@@ -24,7 +26,8 @@
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
if(do_after(user, 30))
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
new /obj/item/stack/rods(src.loc)
|
||||
for(var/i = 1, i <= framestackamount, i++)
|
||||
new framestack(get_turf(src))
|
||||
qdel(src)
|
||||
return
|
||||
if(istype(I, /obj/item/stack/sheet/plasteel))
|
||||
@@ -60,16 +63,12 @@
|
||||
name = "wooden table frame"
|
||||
desc = "Four wooden legs with four framing wooden rods for a wooden table. You could easily pass through this."
|
||||
icon_state = "wood_frame"
|
||||
framestack = /obj/item/stack/sheet/mineral/wood
|
||||
framestackamount = 2
|
||||
|
||||
/obj/structure/table_frame/wood/attackby(var/obj/item/I, mob/user)
|
||||
if(istype(I, /obj/item/weapon/wrench))
|
||||
user << "<span class='notice'>Now disassembling [src].</span>"
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
if(do_after(user, 30))
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
new /obj/item/stack/sheet/mineral/wood(src.loc)
|
||||
qdel(src)
|
||||
return
|
||||
..()
|
||||
if(istype(I, /obj/item/stack/sheet/mineral/wood))
|
||||
var/obj/item/stack/sheet/mineral/wood/W = I
|
||||
user << "<span class='notice'>Now adding [W] to [src].</span>"
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
var/framestack = /obj/item/stack/rods
|
||||
var/buildstack = /obj/item/stack/sheet/metal
|
||||
var/busy = 0
|
||||
var/buildstackamount = 1
|
||||
var/framestackamount = 2
|
||||
|
||||
/obj/structure/table/New()
|
||||
..()
|
||||
@@ -333,8 +335,10 @@
|
||||
/obj/structure/table/proc/table_destroy(var/destroy_type, var/mob/user)
|
||||
|
||||
if(destroy_type == TBL_DESTROY)
|
||||
new framestack(src.loc)
|
||||
new buildstack(src.loc)
|
||||
for(var/i = 1, i <= framestackamount, i++)
|
||||
new framestack(get_turf(src))
|
||||
for(var/i = 1, i <= buildstackamount, i++)
|
||||
new buildstack(get_turf(src))
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -343,7 +347,8 @@
|
||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
new frame(src.loc)
|
||||
new buildstack(src.loc)
|
||||
for(var/i = 1, i <= buildstackamount, i++)
|
||||
new buildstack(get_turf(src))
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -351,8 +356,10 @@
|
||||
user << "<span class='notice'>Now deconstructing [src].</span>"
|
||||
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
|
||||
if(do_after(user, 40))
|
||||
new framestack(src.loc)
|
||||
new buildstack(src.loc)
|
||||
for(var/i = 1, i <= framestackamount, i++)
|
||||
new framestack(get_turf(src))
|
||||
for(var/i = 1, i <= buildstackamount, i++)
|
||||
new buildstack(get_turf(src))
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -112,6 +112,7 @@
|
||||
update_nearby_icons()
|
||||
|
||||
/obj/structure/window/attack_tk(mob/user as mob)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.visible_message("<span class='notice'>Something knocks on [src].</span>")
|
||||
add_fingerprint(user)
|
||||
playsound(loc, 'sound/effects/Glassknock.ogg', 50, 1)
|
||||
|
||||
Reference in New Issue
Block a user