Merge branch 'master' into cleanupTwo

This commit is contained in:
Kelenius
2016-04-21 11:41:32 +03:00
386 changed files with 7149 additions and 4820 deletions
+18 -1
View File
@@ -10,6 +10,7 @@ LINEN BINS
icon = 'icons/obj/items.dmi'
icon_state = "sheet"
item_state = "bedsheet"
slot_flags = SLOT_BACK
layer = 4.0
throwforce = 1
throw_speed = 1
@@ -19,7 +20,7 @@ LINEN BINS
/obj/item/weapon/bedsheet/attack_self(mob/user as mob)
user.drop_item()
if(layer == initial(layer))
layer = 5
layer = MOB_LAYER + 0.1
else
layer = initial(layer)
add_fingerprint(user)
@@ -38,51 +39,67 @@ LINEN BINS
/obj/item/weapon/bedsheet/blue
icon_state = "sheetblue"
item_state = "sheetblue"
/obj/item/weapon/bedsheet/green
icon_state = "sheetgreen"
item_state = "sheetgreen"
/obj/item/weapon/bedsheet/orange
icon_state = "sheetorange"
item_state = "sheetorange"
/obj/item/weapon/bedsheet/purple
icon_state = "sheetpurple"
item_state = "sheetpurple"
/obj/item/weapon/bedsheet/rainbow
icon_state = "sheetrainbow"
item_state = "sheetrainbow"
/obj/item/weapon/bedsheet/red
icon_state = "sheetred"
item_state = "sheetred"
/obj/item/weapon/bedsheet/yellow
icon_state = "sheetyellow"
item_state = "sheetyellow"
/obj/item/weapon/bedsheet/mime
icon_state = "sheetmime"
item_state = "sheetmime"
/obj/item/weapon/bedsheet/clown
icon_state = "sheetclown"
item_state = "sheetclown"
/obj/item/weapon/bedsheet/captain
icon_state = "sheetcaptain"
item_state = "sheetcaptain"
/obj/item/weapon/bedsheet/rd
icon_state = "sheetrd"
item_state = "sheetrd"
/obj/item/weapon/bedsheet/medical
icon_state = "sheetmedical"
item_state = "sheetmedical"
/obj/item/weapon/bedsheet/hos
icon_state = "sheethos"
item_state = "sheethos"
/obj/item/weapon/bedsheet/hop
icon_state = "sheethop"
item_state = "sheethop"
/obj/item/weapon/bedsheet/ce
icon_state = "sheetce"
item_state = "sheetce"
/obj/item/weapon/bedsheet/brown
icon_state = "sheetbrown"
item_state = "sheetbrown"
/obj/structure/bedsheetbin
@@ -79,6 +79,7 @@
new /obj/item/weapon/caution(src)
new /obj/item/device/lightreplacer(src)
new /obj/item/weapon/storage/bag/trash(src)
new /obj/item/weapon/storage/belt/janitor(src)
new /obj/item/clothing/shoes/galoshes(src)
/*
@@ -114,3 +115,7 @@
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/laceup(src)
new /obj/item/clothing/shoes/laceup(src)
new /obj/item/clothing/glasses/sunglasses/big(src)
new /obj/item/clothing/glasses/sunglasses/big(src)
new /obj/item/clothing/under/lawyer/blue(src)
new /obj/item/clothing/under/lawyer/blue(src)
@@ -12,8 +12,8 @@
/obj/structure/closet/l3closet/general/New()
..()
new /obj/item/clothing/suit/bio_suit/general( src )
new /obj/item/clothing/head/bio_hood/general( src )
new /obj/item/clothing/suit/bio_suit/general(src)
new /obj/item/clothing/head/bio_hood/general(src)
/obj/structure/closet/l3closet/virology
@@ -23,9 +23,9 @@
/obj/structure/closet/l3closet/virology/New()
..()
new /obj/item/clothing/suit/bio_suit/virology( src )
new /obj/item/clothing/head/bio_hood/virology( src )
new /obj/item/clothing/mask/breath(src)
new /obj/item/clothing/suit/bio_suit/virology(src)
new /obj/item/clothing/head/bio_hood/virology(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/weapon/tank/oxygen(src)
@@ -36,8 +36,8 @@
/obj/structure/closet/l3closet/security/New()
..()
new /obj/item/clothing/suit/bio_suit/security( src )
new /obj/item/clothing/head/bio_hood/security( src )
new /obj/item/clothing/suit/bio_suit/security(src)
new /obj/item/clothing/head/bio_hood/security(src)
/obj/structure/closet/l3closet/janitor
@@ -47,8 +47,14 @@
/obj/structure/closet/l3closet/janitor/New()
..()
new /obj/item/clothing/suit/bio_suit/janitor( src )
new /obj/item/clothing/head/bio_hood/janitor( src )
new /obj/item/clothing/suit/bio_suit/janitor(src)
new /obj/item/clothing/suit/bio_suit/janitor(src)
new /obj/item/clothing/head/bio_hood/janitor(src)
new /obj/item/clothing/head/bio_hood/janitor(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/weapon/tank/emergency_oxygen/engi(src)
new /obj/item/weapon/tank/emergency_oxygen/engi(src)
/obj/structure/closet/l3closet/scientist
@@ -58,5 +64,23 @@
/obj/structure/closet/l3closet/scientist/New()
..()
new /obj/item/clothing/suit/bio_suit/scientist( src )
new /obj/item/clothing/head/bio_hood/scientist( src )
new /obj/item/clothing/suit/bio_suit/scientist(src)
new /obj/item/clothing/head/bio_hood/scientist(src)
/obj/structure/closet/l3closet/medical
icon_state = "bio_scientist"
icon_closed = "bio_scientist"
icon_opened = "bio_scientistopen"
/obj/structure/closet/l3closet/medical/New()
..()
new /obj/item/clothing/suit/bio_suit/general(src)
new /obj/item/clothing/suit/bio_suit/general(src)
new /obj/item/clothing/suit/bio_suit/general(src)
new /obj/item/clothing/head/bio_hood/general(src)
new /obj/item/clothing/head/bio_hood/general(src)
new /obj/item/clothing/head/bio_hood/general(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/mask/gas(src)
@@ -17,10 +17,7 @@
new /obj/item/weapon/storage/backpack/satchel_eng(src)
if(prob(50))
new /obj/item/weapon/storage/backpack/dufflebag/eng(src)
if (prob(70))
new /obj/item/clothing/accessory/storage/brown_vest(src)
else
new /obj/item/clothing/accessory/storage/webbing(src)
new /obj/item/clothing/accessory/storage/brown_vest(src)
new /obj/item/blueprints(src)
new /obj/item/clothing/under/rank/chief_engineer(src)
new /obj/item/clothing/under/rank/chief_engineer/skirt(src)
@@ -38,6 +35,7 @@
new /obj/item/device/flash(src)
new /obj/item/taperoll/engineering(src)
new /obj/item/clothing/suit/storage/hooded/wintercoat/engineering(src)
new /obj/item/weapon/tank/emergency_oxygen/engi(src)
return
@@ -92,6 +90,9 @@
new /obj/item/weapon/weldpack(src)
new /obj/item/weapon/weldpack(src)
new /obj/item/weapon/weldpack(src)
new /obj/item/clothing/glasses/welding(src)
new /obj/item/clothing/glasses/welding(src)
new /obj/item/clothing/glasses/welding(src)
return
@@ -115,10 +116,7 @@
new /obj/item/weapon/storage/backpack/satchel_eng(src)
if(prob(50))
new /obj/item/weapon/storage/backpack/dufflebag/eng(src)
if (prob(70))
new /obj/item/clothing/accessory/storage/brown_vest(src)
else
new /obj/item/clothing/accessory/storage/webbing(src)
new /obj/item/clothing/accessory/storage/brown_vest(src)
new /obj/item/weapon/storage/toolbox/mechanical(src)
new /obj/item/device/radio/headset/headset_eng(src)
new /obj/item/device/radio/headset/headset_eng/alt(src)
@@ -128,7 +126,11 @@
new /obj/item/weapon/cartridge/engineering(src)
new /obj/item/taperoll/engineering(src)
new /obj/item/clothing/suit/storage/hooded/wintercoat/engineering(src)
new /obj/item/weapon/tank/emergency_oxygen/engi(src)
return
/obj/structure/closet/secure_closet/atmos_personal
name = "technician's locker"
req_access = list(access_atmospherics)
@@ -148,10 +150,7 @@
new /obj/item/weapon/storage/backpack/satchel_eng(src)
if(prob(50))
new /obj/item/weapon/storage/backpack/dufflebag/eng(src)
if (prob(70))
new /obj/item/clothing/accessory/storage/brown_vest(src)
else
new /obj/item/clothing/accessory/storage/webbing(src)
new /obj/item/clothing/accessory/storage/brown_vest(src)
new /obj/item/clothing/suit/fire/firefighter(src)
new /obj/item/device/flashlight(src)
new /obj/item/weapon/extinguisher(src)
@@ -162,4 +161,5 @@
new /obj/item/weapon/cartridge/atmos(src)
new /obj/item/taperoll/atmos(src)
new /obj/item/clothing/suit/storage/hooded/wintercoat/engineering/atmos(src)
new /obj/item/weapon/tank/emergency_oxygen/engi(src)
return
@@ -70,7 +70,7 @@
new /obj/item/weapon/storage/backpack/dufflebag/med(src)
new /obj/item/clothing/under/rank/nursesuit (src)
new /obj/item/clothing/head/nursehat (src)
switch(pick("blue", "green", "purple", "black"))
switch(pick("blue", "green", "purple", "black", "navyblue"))
if ("blue")
new /obj/item/clothing/under/rank/medical/blue(src)
new /obj/item/clothing/head/surgery/blue(src)
@@ -83,7 +83,10 @@
if ("black")
new /obj/item/clothing/under/rank/medical/black(src)
new /obj/item/clothing/head/surgery/black(src)
switch(pick("blue", "green", "purple", "black"))
if ("navyblue")
new /obj/item/clothing/under/rank/medical/navyblue(src)
new /obj/item/clothing/head/surgery/navyblue(src)
switch(pick("blue", "green", "purple", "black", "navyblue"))
if ("blue")
new /obj/item/clothing/under/rank/medical/blue(src)
new /obj/item/clothing/head/surgery/blue(src)
@@ -96,6 +99,9 @@
if ("black")
new /obj/item/clothing/under/rank/medical/black(src)
new /obj/item/clothing/head/surgery/black(src)
if ("navyblue")
new /obj/item/clothing/under/rank/medical/navyblue(src)
new /obj/item/clothing/head/surgery/navyblue(src)
new /obj/item/clothing/under/rank/medical(src)
new /obj/item/clothing/under/rank/nurse(src)
new /obj/item/clothing/under/rank/orderly(src)
@@ -144,6 +150,7 @@
new /obj/item/weapon/crowbar(src)
new /obj/item/weapon/extinguisher/mini(src)
new /obj/item/weapon/storage/box/freezer(src)
new /obj/item/clothing/accessory/storage/white_vest(src)
return
/obj/structure/closet/secure_closet/CMO
@@ -167,7 +174,7 @@
new /obj/item/clothing/suit/bio_suit/cmo(src)
new /obj/item/clothing/head/bio_hood/cmo(src)
new /obj/item/clothing/shoes/white(src)
switch(pick("blue", "green", "purple", "black"))
switch(pick("blue", "green", "purple", "black", "navyblue"))
if ("blue")
new /obj/item/clothing/under/rank/medical/blue(src)
new /obj/item/clothing/head/surgery/blue(src)
@@ -180,6 +187,9 @@
if ("black")
new /obj/item/clothing/under/rank/medical/black(src)
new /obj/item/clothing/head/surgery/black(src)
if ("navyblue")
new /obj/item/clothing/under/rank/medical/navyblue(src)
new /obj/item/clothing/head/surgery/navyblue(src)
new /obj/item/clothing/under/rank/chief_medical_officer(src)
new /obj/item/clothing/under/rank/chief_medical_officer/skirt(src)
new /obj/item/clothing/suit/storage/toggle/labcoat/cmo(src)
@@ -193,6 +203,7 @@
new /obj/item/weapon/reagent_containers/hypospray(src)
new /obj/item/clothing/suit/storage/hooded/wintercoat/medical(src)
new /obj/item/weapon/storage/box/freezer(src)
new /obj/item/clothing/mask/gas(src)
return
@@ -10,31 +10,16 @@
New()
..()
if(prob(50))
new /obj/item/weapon/storage/backpack/captain(src)
else
new /obj/item/weapon/storage/backpack/satchel_cap(src)
if(prob(50))
new /obj/item/weapon/storage/backpack/dufflebag/captain(src)
new /obj/item/clothing/suit/captunic(src)
new /obj/item/clothing/suit/captunic/capjacket(src)
new /obj/item/clothing/head/caphat/cap(src)
new /obj/item/clothing/under/rank/captain(src)
new /obj/item/weapon/storage/backpack/dufflebag/captain(src)
new /obj/item/clothing/suit/storage/vest(src)
new /obj/item/weapon/cartridge/captain(src)
new /obj/item/clothing/head/helmet/swat(src)
new /obj/item/weapon/storage/lockbox/medal(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/device/radio/headset/heads/captain(src)
new /obj/item/device/radio/headset/heads/captain/alt(src)
new /obj/item/clothing/gloves/captain(src)
new /obj/item/weapon/gun/energy/gun(src)
new /obj/item/clothing/suit/armor/captain(src)
new /obj/item/weapon/melee/telebaton(src)
new /obj/item/clothing/under/dress/dress_cap(src)
new /obj/item/clothing/head/caphat/formal(src)
new /obj/item/clothing/under/captainformal(src)
new /obj/item/clothing/suit/storage/hooded/wintercoat/captain(src)
return
@@ -51,7 +36,6 @@
New()
..()
new /obj/item/clothing/glasses/sunglasses(src)
new /obj/item/clothing/suit/storage/vest(src)
new /obj/item/clothing/head/helmet(src)
new /obj/item/weapon/cartridge/hop(src)
@@ -89,6 +73,8 @@
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/under/rank/head_of_personnel_whimsy(src)
new /obj/item/clothing/head/caphat/hop(src)
new /obj/item/clothing/under/gimmick/rank/head_of_personnel/suit(src)
new /obj/item/clothing/glasses/sunglasses(src)
return
@@ -273,20 +259,8 @@
New()
..()
new /obj/item/clothing/under/det(src)
new /obj/item/clothing/under/det/grey(src)
new /obj/item/clothing/under/det/black(src)
new /obj/item/clothing/under/det/waistcoat(src)
new /obj/item/clothing/under/det/grey/waistcoat(src)
new /obj/item/clothing/suit/storage/det_trench(src)
new /obj/item/clothing/suit/storage/det_trench/grey(src)
new /obj/item/clothing/suit/storage/forensics/blue(src)
new /obj/item/clothing/suit/storage/forensics/red(src)
new /obj/item/clothing/accessory/badge/holo/detective(src)
new /obj/item/clothing/gloves/black(src)
new /obj/item/clothing/head/det(src)
new /obj/item/clothing/head/det/grey(src)
new /obj/item/clothing/shoes/laceup(src)
new /obj/item/weapon/storage/belt/detective(src)
new /obj/item/weapon/storage/box/evidence(src)
new /obj/item/device/radio/headset/headset_sec(src)
@@ -297,6 +271,9 @@
new /obj/item/taperoll/police(src)
new /obj/item/weapon/gun/projectile/colt/detective(src)
new /obj/item/clothing/accessory/holster/armpit(src)
new /obj/item/device/flashlight/maglight(src)
new /obj/item/weapon/reagent_containers/food/drinks/flask/detflask(src)
new /obj/item/weapon/storage/briefcase/crimekit(src)
return
/obj/structure/closet/secure_closet/detective/update_icon()
@@ -66,18 +66,32 @@
..()
new /obj/item/clothing/head/det(src)
new /obj/item/clothing/head/det(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/under/det(src)
new /obj/item/clothing/under/det(src)
new /obj/item/clothing/head/det/grey(src)
new /obj/item/clothing/head/det/grey(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/laceup(src)
new /obj/item/clothing/shoes/laceup(src)
new /obj/item/clothing/under/det(src)
new /obj/item/clothing/under/det(src)
new /obj/item/clothing/under/det/waistcoat(src)
new /obj/item/clothing/under/det/waistcoat(src)
new /obj/item/clothing/under/det/grey(src)
new /obj/item/clothing/under/det/grey(src)
new /obj/item/clothing/under/det/grey/waistcoat(src)
new /obj/item/clothing/under/det/grey/waistcoat(src)
new /obj/item/clothing/under/det/black(src)
new /obj/item/clothing/under/det/black(src)
new /obj/item/clothing/under/det/corporate(src)
new /obj/item/clothing/under/det/corporate(src)
new /obj/item/clothing/suit/storage/det_trench(src)
new /obj/item/clothing/suit/storage/det_trench(src)
new /obj/item/clothing/suit/storage/det_trench/grey(src)
new /obj/item/clothing/suit/storage/det_trench/grey(src)
new /obj/item/clothing/suit/storage/forensics/blue(src)
new /obj/item/clothing/suit/storage/forensics/blue(src)
new /obj/item/clothing/suit/storage/forensics/red(src)
new /obj/item/clothing/suit/storage/forensics/red(src)
return
/obj/structure/closet/wardrobe/pink
@@ -280,6 +294,9 @@
new /obj/item/clothing/suit/storage/hooded/wintercoat/engineering(src)
new /obj/item/clothing/suit/storage/hooded/wintercoat/engineering(src)
new /obj/item/clothing/suit/storage/hooded/wintercoat/engineering(src)
new /obj/item/clothing/shoes/workboots(src)
new /obj/item/clothing/shoes/workboots(src)
new /obj/item/clothing/shoes/workboots(src)
return
@@ -453,6 +470,8 @@
new /obj/item/clothing/under/rank/medical/green(src)
new /obj/item/clothing/under/rank/medical/purple(src)
new /obj/item/clothing/under/rank/medical/black(src)
new /obj/item/clothing/under/rank/medical/navyblue(src)
new /obj/item/clothing/head/surgery/navyblue(src)
new /obj/item/clothing/head/surgery/purple(src)
new /obj/item/clothing/head/surgery/blue(src)
new /obj/item/clothing/head/surgery/green(src)
@@ -516,7 +535,7 @@
new /obj/item/clothing/under/pants/black(src)
new /obj/item/clothing/under/pants/tan(src)
new /obj/item/clothing/under/pants/track(src)
new /obj/item/clothing/under/pants/jeans(src)
new /obj/item/clothing/under/pants(src)
new /obj/item/clothing/under/pants/khaki(src)
new /obj/item/clothing/mask/bandana/blue(src)
new /obj/item/clothing/mask/bandana/blue(src)
@@ -589,3 +608,29 @@
new /obj/item/clothing/under/scratch(src)
new /obj/item/weapon/storage/backpack/satchel(src)
new /obj/item/weapon/storage/backpack/satchel(src)
return
/obj/structure/closet/wardrobe/captain
name = "captain's wardrobe"
icon_state = "cabinet_closed"
icon_closed = "cabinet_closed"
icon_opened = "cabinet_open"
/obj/structure/closet/wardrobe/captain/New()
..()
new /obj/item/weapon/storage/backpack/captain(src)
new /obj/item/clothing/suit/captunic(src)
new /obj/item/clothing/suit/captunic/capjacket(src)
new /obj/item/clothing/head/caphat/cap(src)
new /obj/item/clothing/under/rank/captain(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/gloves/captain(src)
new /obj/item/clothing/under/dress/dress_cap(src)
new /obj/item/weapon/storage/backpack/satchel_cap(src)
new /obj/item/clothing/head/caphat/formal(src)
new /obj/item/clothing/under/captainformal(src)
new /obj/item/clothing/suit/storage/hooded/wintercoat/captain(src)
new /obj/item/clothing/head/beret/centcom/captain(src)
new /obj/item/clothing/under/gimmick/rank/captain/suit(src)
new /obj/item/clothing/glasses/sunglasses(src)
return
+16 -1
View File
@@ -1,5 +1,5 @@
#define SHOWER_OPEN_LAYER OBJ_LAYER + 0.4
#define SHOWER_CLOSED_LAYER MOB_LAYER + 0.1
#define SHOWER_CLOSED_LAYER MOB_LAYER + 0.2
/obj/structure/curtain
name = "curtain"
@@ -35,6 +35,21 @@
icon_state = "open"
layer = SHOWER_OPEN_LAYER
/obj/structure/curtain/attackby(obj/item/P, mob/user)
if(istype(P, /obj/item/weapon/wirecutters))
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
user << "<span class='notice'>You start to cut the shower curtains.</span>"
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 10))
user << "<span class='notice'>You cut the shower curtains.</span>"
var/obj/item/stack/material/plastic/A = new /obj/item/stack/material/plastic( src.loc )
A.amount = 3
qdel(src)
return
else
src.attack_hand(user)
return
/obj/structure/curtain/black
name = "black curtain"
color = "#222222"
+21 -2
View File
@@ -8,9 +8,19 @@
var/obj/item/weapon/extinguisher/has_extinguisher
var/opened = 0
/obj/structure/extinguisher_cabinet/New()
/obj/structure/extinguisher_cabinet/New(var/loc, var/dir, var/building = 0)
..()
has_extinguisher = new/obj/item/weapon/extinguisher(src)
if(building)
if(loc)
src.loc = loc
pixel_x = (dir & 3)? 0 : (dir == 4 ? -27 : 27)
pixel_y = (dir & 3)? (dir ==1 ? -27 : 27) : 0
update_icon()
return
else
has_extinguisher = new/obj/item/weapon/extinguisher(src)
/obj/structure/extinguisher_cabinet/attackby(obj/item/O, mob/user)
if(isrobot(user))
@@ -22,6 +32,15 @@
user << "<span class='notice'>You place [O] in [src].</span>"
else
opened = !opened
if(istype(O, /obj/item/weapon/wrench))
if(!has_extinguisher)
user << "<span class='notice'>You start to unwrench the extinguisher cabinet.</span>"
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 15))
user << "<span class='notice'>You unwrench the extinguisher cabinet.</span>"
new /obj/item/frame/extinguisher_cabinet( src.loc )
qdel(src)
return
else
opened = !opened
update_icon()
+2 -1
View File
@@ -40,7 +40,7 @@
/obj/structure/inflatable/bullet_act(var/obj/item/projectile/Proj)
var/proj_damage = Proj.get_structure_damage()
if(!proj_damage) return
health -= proj_damage
..()
if(health <= 0)
@@ -248,6 +248,7 @@
desc = "Contains inflatable walls and doors."
icon_state = "inf_box"
item_state = "syringe_kit"
w_class = 3
max_storage_space = 28
can_hold = list(/obj/item/inflatable)
+56 -6
View File
@@ -8,9 +8,18 @@
anchored = 1
var/shattered = 0
var/list/ui_users = list()
var/glass = 1
/obj/structure/mirror/New(var/loc, var/dir, var/building = 0, mob/user as mob)
if(building)
glass = 0
icon_state = "mirror_frame"
pixel_x = (dir & 3)? 0 : (dir == 4 ? -28 : 28)
pixel_y = (dir & 3)? (dir == 1 ? -30 : 30) : 0
return
/obj/structure/mirror/attack_hand(mob/user as mob)
if(!glass) return
if(shattered) return
if(ishuman(user))
@@ -22,6 +31,7 @@
AC.ui_interact(user)
/obj/structure/mirror/proc/shatter()
if(!glass) return
if(shattered) return
shattered = 1
icon_state = "mirror_broke"
@@ -34,18 +44,57 @@
if(prob(Proj.get_structure_damage() * 2))
if(!shattered)
shatter()
else
else if(glass)
playsound(src, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
..()
/obj/structure/mirror/attackby(obj/item/I as obj, mob/user as mob)
if(shattered)
if(istype(I, /obj/item/weapon/wrench))
if(!glass)
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 20))
user << "<span class='notice'>You unfasten the frame.</span>"
new /obj/item/frame/mirror( src.loc )
qdel(src)
return
if(istype(I, /obj/item/weapon/crowbar))
if(shattered && glass)
user << "<span class='notice'>The broken glass falls out.</span>"
icon_state = "mirror_frame"
glass = !glass
new /obj/item/weapon/material/shard( src.loc )
return
if(!shattered && glass)
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
user << "<span class='notice'>You remove the glass.</span>"
glass = !glass
icon_state = "mirror_frame"
new /obj/item/stack/material/glass( src.loc, 2 )
return
if(istype(I, /obj/item/stack/material/glass))
if(!glass)
var/obj/item/stack/material/glass/G = I
if (G.get_amount() < 2)
user << "<span class='warning'>You need two sheets of glass to add them to the frame.</span>"
return
user << "<span class='notice'>You start to add the glass to the frame.</span>"
if(do_after(user, 20))
if (G.use(2))
shattered = 0
glass = 1
icon_state = "mirror"
user << "<span class='notice'>You add the glass to the frame.</span>"
return
if(shattered && glass)
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
return
if(prob(I.force * 2))
visible_message("<span class='warning'>[user] smashes [src] with [I]!</span>")
shatter()
if(glass)
shatter()
else
visible_message("<span class='warning'>[user] hits [src] with [I]!</span>")
playsound(src.loc, 'sound/effects/Glasshit.ogg', 70, 1)
@@ -53,13 +102,14 @@
/obj/structure/mirror/attack_generic(var/mob/user, var/damage)
user.do_attack_animation(src)
if(shattered)
if(shattered && glass)
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
return 0
if(damage)
user.visible_message("<span class='danger'>[user] smashes [src]!</span>")
shatter()
if(glass)
shatter()
else
user.visible_message("<span class='danger'>[user] hits [src] and bounces off!</span>")
return 1
@@ -7,6 +7,18 @@
anchored = 1
var/notices = 0
/obj/structure/noticeboard/New(var/loc, var/dir, var/building = 0)
..()
if(building)
if(loc)
src.loc = loc
pixel_x = (dir & 3)? 0 : (dir == 4 ? -32 : 32)
pixel_y = (dir & 3)? (dir ==1 ? -27 : 27) : 0
update_icon()
return
/obj/structure/noticeboard/initialize()
for(var/obj/item/I in loc)
if(notices > 4) break
@@ -27,6 +39,14 @@
user << "<span class='notice'>You pin the paper to the noticeboard.</span>"
else
user << "<span class='notice'>You reach to pin your paper to the board but hesitate. You are certain your paper will not be seen among the many others already attached.</span>"
if(istype(O, /obj/item/weapon/wrench))
user << "<span class='notice'>You start to unwrench the noticeboard.</span>"
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 15))
user << "<span class='notice'>You unwrench the noticeboard.</span>"
new /obj/item/frame/noticeboard( src.loc )
qdel(src)
return
/obj/structure/noticeboard/attack_hand(var/mob/user)
examine(user)