diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 6c6ccefd541..5bbe774ed37 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -731,8 +731,12 @@ obj/item/toy/cards/deck/MouseDrop(atom/over_object) else if(istype(over_object, /obj/screen)) switch(over_object.name) if("l_hand") + if(!remove_item_from_storage(M)) + M.unEquip(src) M.put_in_l_hand(src) else if("r_hand") + if(!remove_item_from_storage(M)) + M.unEquip(src) M.put_in_r_hand(src) usr << "You pick up the deck." else diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index fc6636b6561..03bd60d66e7 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -131,7 +131,8 @@ var/last_chew = 0 var/obj/item/stack/rods/R = I if (R.use(1)) var/obj/item/weapon/wirerod/W = new /obj/item/weapon/wirerod - user.unEquip(src) + if(!remove_item_from_storage(user)) + user.unEquip(src) user.put_in_hands(W) user << "You wrap the cable restraint around the top of the rod." qdel(src) diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index ca627bbdc8c..b1efb1168ff 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -84,10 +84,10 @@ New() ..() - new /obj/item/weapon/screwdriver(src) + new /obj/item/weapon/screwdriver(src, "red") new /obj/item/weapon/wrench(src) new /obj/item/weapon/weldingtool/largetank(src) - new /obj/item/weapon/crowbar(src) - new /obj/item/weapon/wirecutters(src) + new /obj/item/weapon/crowbar/red(src) + new /obj/item/weapon/wirecutters(src, "red") new /obj/item/device/multitool(src) new /obj/item/clothing/gloves/combat(src) \ No newline at end of file diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 15e221910d3..ca44c514a61 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -112,8 +112,9 @@ sharp = 1 edge = 1 -/obj/item/weapon/wirecutters/New() - if(prob(50)) +/obj/item/weapon/wirecutters/New(loc, var/param_color = null) + ..() + if((!param_color && prob(50)) || param_color == "yellow") icon_state = "cutters-y" item_state = "cutters_yellow" diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index e80dd1d04a1..520de21301c 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -159,9 +159,10 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob, params) ..() if(istype(I, /obj/item/weapon/shard)) var/obj/item/weapon/twohanded/spear/S = new /obj/item/weapon/twohanded/spear - + + if(!remove_item_from_storage(user)) + user.unEquip(src) user.unEquip(I) - user.unEquip(src) user.put_in_hands(S) user << "You fasten the glass shard to the top of the rod with the cable." @@ -171,8 +172,9 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob, params) else if(istype(I, /obj/item/weapon/wirecutters)) var/obj/item/weapon/melee/baton/cattleprod/P = new /obj/item/weapon/melee/baton/cattleprod + if(!remove_item_from_storage(user)) + user.unEquip(src) user.unEquip(I) - user.unEquip(src) user.put_in_hands(P) user << "You fasten the wirecutters to the top of the rod with the cable, prongs outward." diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index d562098cc21..a37eeabcd9b 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -35,13 +35,16 @@ if((!D)||(!D2)) return 0 if((!isassembly(D))||(!isassembly(D2))) return 0 if((D:secured)||(D2:secured)) return 0 - if(user) - user.remove_from_mob(D) - user.remove_from_mob(D2) + if(!D.remove_item_from_storage(src)) + if(user) + user.remove_from_mob(D) + D.loc = src + if(!D2.remove_item_from_storage(src)) + if(user) + user.remove_from_mob(D2) + D2.loc = src D:holder = src D2:holder = src - D.loc = src - D2.loc = src a_left = D a_right = D2 name = "[D.name]-[D2.name] assembly" diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index 71e64b61823..552f55051d1 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -36,12 +36,12 @@ else if(istype(over_object, /obj/screen)) switch(over_object.name) if("r_hand") - if(!M.unEquip(src)) - return + if(!remove_item_from_storage(M)) + M.unEquip(src) M.put_in_r_hand(src) if("l_hand") - if(!M.unEquip(src)) - return + if(!remove_item_from_storage(M)) + M.unEquip(src) M.put_in_l_hand(src) add_fingerprint(M)