diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 5ed91f87b64..7c62c80529f 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -104,6 +104,10 @@ new /obj/item/weapon/storage/backpack/industrial(src) else new /obj/item/weapon/storage/backpack/satchel_eng(src) + if (prob(70)) + new /obj/item/clothing/tie/storage/brown_vest(src) + else + new /obj/item/clothing/tie/storage/webbing(src) new /obj/item/clothing/under/rank/engineer(src) new /obj/item/clothing/shoes/orange(src) new /obj/item/weapon/storage/toolbox/mechanical(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index b19a4cdf724..93b46ef959f 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -187,6 +187,7 @@ new /obj/item/clothing/glasses/sunglasses/sechud(src) new /obj/item/taperoll/police(src) new /obj/item/device/hailer(src) + new /obj/item/clothing/tie/storage/black_vest(src) return diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index f476e60c255..2d13a0ce92f 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -167,9 +167,13 @@ BLIND // can't see anything hastie = I I.loc = src user << "You attach [I] to [src]." + if (istype(hastie,/obj/item/clothing/tie/holster)) verbs += /obj/item/clothing/under/proc/holster + if (istype(hastie,/obj/item/clothing/tie/storage)) + verbs += /obj/item/clothing/under/proc/storage + if(istype(loc, /mob/living/carbon/human)) var/mob/living/carbon/human/H = loc H.update_inv_w_uniform() @@ -230,9 +234,16 @@ BLIND // can't see anything if(hastie) usr.put_in_hands(hastie) hastie = null + if (istype(hastie,/obj/item/clothing/tie/holster)) verbs -= /obj/item/clothing/under/proc/holster + if (istype(hastie,/obj/item/clothing/tie/storage)) + verbs -= /obj/item/clothing/under/proc/storage + var/obj/item/clothing/tie/storage/W = hastie + if (W.hold) + W.hold.loc = hastie + if(istype(loc, /mob/living/carbon/human)) var/mob/living/carbon/human/H = loc H.update_inv_w_uniform() @@ -277,3 +288,23 @@ BLIND // can't see anything "\blue You draw \the [H.holstered], pointing it at the ground.") usr.put_in_hands(H.holstered) H.holstered = null + +/obj/item/clothing/under/proc/storage() + set name = "Look in storage" + set category = "Object" + set src in usr + if(!istype(usr, /mob/living)) return + if(usr.stat) return + + if (!hastie || !istype(hastie,/obj/item/clothing/tie/storage)) + usr << "\red You need something to store items in for that!" + return + var/obj/item/clothing/tie/storage/W = hastie + + if (!istype(W.hold)) + return + + W.hold.loc = usr + W.hold.attack_hand(usr) + + diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm index 703b492163e..71a8e01c667 100644 --- a/code/modules/clothing/under/ties.dm +++ b/code/modules/clothing/under/ties.dm @@ -174,3 +174,56 @@ desc = "A handgun holster. Made of expensive leather." icon_state = "holster" color = "holster_low" + +/obj/item/clothing/tie/storage + name = "load beearing equipment" + desc = "Used to hold things when you don't have enough hands for that." + icon_state = "webbing" + color = "webbing" + var/slots = 3 + var/obj/item/weapon/storage/pockets/hold + +/obj/item/clothing/tie/storage/New() + hold = new /obj/item/weapon/storage/pockets(src) + hold.master_item = src + hold.storage_slots = slots + +/obj/item/clothing/tie/storage/attack_self(mob/user as mob) + user << "You empty [src]." + var/turf/T = get_turf(src) + hold.hide_from(usr) + for(var/obj/item/I in hold.contents) + hold.remove_from_storage(I, T) + src.add_fingerprint(user) + +/obj/item/clothing/tie/storage/attackby(obj/item/weapon/W as obj, mob/user as mob) + hold.attackby(W,user) + src.add_fingerprint(user) + +/obj/item/weapon/storage/pockets + name = "webbing pockets" + var/master_item //item it belongs to + +/obj/item/weapon/storage/pockets/close(mob/user as mob) + ..() + loc = master_item + +/obj/item/clothing/tie/storage/webbing + name = "webbing" + desc = "Strudy mess of synthcotton belts and buckles, ready to share your burden." + icon_state = "webbing" + color = "webbing" + +/obj/item/clothing/tie/storage/black_vest + name = "black webbing vest" + desc = "Robust black synthcotton vest with lots of pockets to hold whatever you need, but cannot hold in hands." + icon_state = "vest_black" + color = "vest_black" + slots = 5 + +/obj/item/clothing/tie/storage/brown_vest + name = "black webbing vest" + desc = "Worn brownish synthcotton vest with lots of pockets to unload your hands." + icon_state = "vest_brown" + color = "vest_brown" + slots = 5 \ No newline at end of file diff --git a/code/modules/mob/screen.dm b/code/modules/mob/screen.dm index b9767c3a299..15d1cb20cba 100644 --- a/code/modules/mob/screen.dm +++ b/code/modules/mob/screen.dm @@ -62,9 +62,11 @@ name = "storage" master = null -/obj/screen/storage/attackby(W, mob/user as mob) - src.master.attackby(W, user) - return +/obj/screen/storage/attack_hand(mob/user) + if(master) + var/obj/item/I = user.get_active_hand() + if(I) + master.attackby(I, user) /obj/screen/zone_sel name = "Damage Zone" diff --git a/html/changelog.html b/html/changelog.html index d9afbcc3559..4a8171a7594 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -129,6 +129,25 @@ should be listed in the changelog upon commit though. Thanks. --> +