diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 0d6704207629..78af76796650 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -914,8 +914,8 @@ cases. Override_icon_state should be a list.*/
SEND_SIGNAL(src, COMSIG_ITEM_ZOOM, user)
var/zoom_device = zoomdevicename ? "\improper [zoomdevicename] of [src]" : "\improper [src]"
- user.visible_message(SPAN_NOTICE("[user] peers through \the [zoom_device]."),
- SPAN_NOTICE("You peer through \the [zoom_device]."))
+ user.visible_message(SPAN_NOTICE("[user] peers through [zoom_device]."),
+ SPAN_NOTICE("You peer through [zoom_device]."))
zoom = !zoom
/obj/item/proc/get_icon_state(mob/user_mob, slot)
diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm
index 9b0cf37299eb..d6db8811d1ae 100644
--- a/code/game/objects/items/bodybag.dm
+++ b/code/game/objects/items/bodybag.dm
@@ -5,6 +5,7 @@
desc = "A folded bag designed for the storage and transportation of cadavers."
icon = 'icons/obj/bodybag.dmi'
icon_state = "bodybag_folded"
+ item_state = "bodybag"
w_class = SIZE_SMALL
var/unfolded_path = /obj/structure/closet/bodybag
@@ -33,6 +34,7 @@
desc = "A folded, reusable bag designed to prevent additional damage to an occupant."
icon = 'icons/obj/cryobag.dmi'
icon_state = "bodybag_folded"
+ item_state = "cryobag"
unfolded_path = /obj/structure/closet/bodybag/cryobag
matter = list("plastic" = 7500)
var/used = 0
diff --git a/code/game/objects/items/books/book.dm b/code/game/objects/items/books/book.dm
index effcb7524b83..b44c6a2cea34 100644
--- a/code/game/objects/items/books/book.dm
+++ b/code/game/objects/items/books/book.dm
@@ -5,6 +5,10 @@
name = "book"
icon = 'icons/obj/items/books.dmi'
icon_state ="book"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
throw_speed = SPEED_FAST
throw_range = 5
/// upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever)
diff --git a/code/game/objects/items/books/manuals.dm b/code/game/objects/items/books/manuals.dm
index 3140d0e30ca9..e7a9aa988c04 100644
--- a/code/game/objects/items/books/manuals.dm
+++ b/code/game/objects/items/books/manuals.dm
@@ -11,7 +11,8 @@
/obj/item/book/manual/engineering_construction
name = "Station Repairs and Construction"
- icon_state ="bookEngineering"
+ icon_state = "book_engineering"
+ item_state = "book_engineering"
author = "Engineering Encyclopedia"
title = "Station Repairs and Construction"
@@ -31,7 +32,8 @@
/obj/item/book/manual/engineering_hacking
name = "Hacking"
- icon_state ="bookHacking"
+ icon_state = "book_hacking"
+ item_state = "book_hacking"
author = "Engineering Encyclopedia"
title = "Hacking"
@@ -51,7 +53,8 @@
/obj/item/book/manual/ripley_build_and_repair
name = "APLU \"Ripley\" Construction and Operation Manual"
- icon_state ="book"
+ icon_state = "book_dark"
+ item_state = "book_dark"
author = "Randall Varn, Einstein Engines Senior Mechanic"
title = "APLU \"Ripley\" Construction and Operation Manual"
@@ -128,7 +131,8 @@
/obj/item/book/manual/research_and_development
name = "Research and Development 101"
- icon_state = "rdbook"
+ icon_state = "book_white"
+ item_state = "book_white"
author = "Dr. L. Ight"
title = "Research and Development 101"
@@ -149,7 +153,8 @@
/obj/item/book/manual/security_space_law
name = "Standard Operating Procedure"
desc = "A set of USCM guidelines for keeping law and order on their vessels."
- icon_state = "bookSpaceLaw"
+ icon_state = "book_sop"
+ item_state = "book_sop"
author = "USCM High Command"
title = "Standard Operating Procedure"
@@ -170,7 +175,8 @@
/obj/item/book/manual/marine_law
name = "Marine Law"
desc = "A set of guidelines for keeping law and order on military vessels."
- icon_state = "bookSpaceLaw"
+ icon_state = "book_law"
+ item_state = "book_law"
author = "USCM High Command"
title = "Marine Law"
@@ -191,7 +197,8 @@
/obj/item/book/manual/surgery
name = "Surgical Reference Manual"
desc = "A quick reference manual for surgical procedures."
- icon_state = "bookMedical"
+ icon_state = "book_medical"
+ item_state = "book_medical"
author = "Weyland-Yutani Medicine Department"
title = "Surgical Reference Manual"
@@ -212,7 +219,8 @@
/obj/item/book/manual/medical_diagnostics_manual
name = "WY Medical Diagnostics Manual"
desc = "First, do no harm. A detailed medical practitioner's guide."
- icon_state = "bookMedical"
+ icon_state = "book_medical"
+ item_state = "book_medical"
author = "Weyland-Yutani Medicine Department"
title = "WY Medical Diagnostics Manual"
@@ -257,7 +265,8 @@
/obj/item/book/manual/engineering_guide
name = "Engineering Textbook"
- icon_state ="bookEngineering2"
+ icon_state = "book_engineering"
+ item_state = "book_engineering"
author = "Engineering Encyclopedia"
title = "Engineering Textbook"
@@ -276,7 +285,8 @@
/obj/item/book/manual/chef_recipes
name = "Chef Recipes"
- icon_state = "cooked_book"
+ icon_state = "book_green"
+ item_state = "book_green"
author = "Victoria Ponsonby"
title = "Chef Recipes"
@@ -335,7 +345,8 @@
/obj/item/book/manual/barman_recipes
name = "Barman Recipes"
- icon_state = "barbook"
+ icon_state = "book_red"
+ item_state = "book_red"
author = "Sir John Rose"
title = "Barman Recipes"
@@ -434,7 +445,8 @@
/obj/item/book/manual/nuclear
name = "Fission Mailed: Nuclear Sabotage 101"
- icon_state ="bookNuclear"
+ icon_state = "book_particle"
+ item_state = "book_particle"
author = "The Colonial Liberation Front"
title = "Fission Mailed: Nuclear Sabotage 101"
@@ -486,7 +498,8 @@
/obj/item/book/manual/atmospipes
name = "Pipes and You: Getting To Know Your Scary Tools"
- icon_state = "pipingbook"
+ icon_state = "book_piping"
+ item_state = "book_piping"
author = "Maria Crash, Senior Atmospherics Technician"
title = "Pipes and You: Getting To Know Your Scary Tools"
dat = {"
@@ -594,7 +607,8 @@
/obj/item/book/manual/evaguide
name = "EVA Gear and You: Not Spending All Day Inside"
- icon_state = "evabook"
+ icon_state = "book_blue"
+ item_state = "book_blue"
author = "Maria Crash, Senior Atmospherics Technician"
title = "EVA Gear and You: Not Spending All Day Inside"
dat = {"
@@ -666,7 +680,8 @@
/obj/item/book/manual/hydroponics_beekeeping
name = "The Ins and Outs of Apiculture - A Precise Art"
- icon_state ="bookHydroponicsBees"
+ icon_state = "book_green"
+ item_state = "book_green"
author = "Beekeeper Dave"
title = "The Ins and Outs of Apiculture - A Precise Art"
dat = {"
@@ -698,7 +713,8 @@
/obj/item/book/manual/orbital_cannon_manual
name = "USCM Orbital Bombardment System Manual"
- icon_state = "bookEngineering"
+ icon_state = "book_engineering"
+ item_state = "book_engineering"
author = "USCM R&D"
title = "USCM Orbital Bombardment System Manual"
diff --git a/code/game/objects/items/devices/binoculars.dm b/code/game/objects/items/devices/binoculars.dm
index dd8b417f8e69..c04f37796600 100644
--- a/code/game/objects/items/devices/binoculars.dm
+++ b/code/game/objects/items/devices/binoculars.dm
@@ -4,6 +4,7 @@
desc = "A military-issued pair of binoculars."
icon = 'icons/obj/items/binoculars.dmi'
icon_state = "binoculars"
+ item_state = "binoculars"
pickup_sound = 'sound/handling/wirecutter_pickup.ogg'
drop_sound = 'sound/handling/wirecutter_drop.ogg'
flags_atom = FPRINT|CONDUCT
@@ -14,6 +15,7 @@
throw_speed = SPEED_VERY_FAST
/// If FALSE won't change icon_state to a camo marine bino.
var/uses_camo = TRUE
+ var/raised = FALSE
//matter = list("metal" = 50,"glass" = 50)
@@ -30,8 +32,29 @@
if(SEND_SIGNAL(user, COMSIG_BINOCULAR_ATTACK_SELF, src))
return
+ if(raised)
+ set_raised(FALSE, user)
+ else
+ set_raised(TRUE, user)
+
zoom(user, 11, 12)
+/obj/item/device/binoculars/proc/set_raised(to_raise, mob/living/carbon/human/user)
+ if(!istype(user))
+ return
+
+ if(!to_raise)
+ raised = FALSE
+ item_state = icon_state
+ else if(!COOLDOWN_FINISHED(user, zoom_cooldown))
+ item_state = icon_state
+ else
+ raised = TRUE
+ item_state = item_state + "_eyes"
+
+ user.update_inv_r_hand()
+ user.update_inv_l_hand()
+
/obj/item/device/binoculars/dropped(/obj/item/item, mob/user)
. = ..()
on_unset_interaction(user)
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index de2a328de370..29d7537a467b 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -3,7 +3,7 @@
desc = "A hand-held emergency light."
icon = 'icons/obj/items/lighting.dmi'
icon_state = "flashlight"
- item_state = "flashlight"
+ item_state = ""
w_class = SIZE_SMALL
flags_atom = FPRINT|CONDUCT
flags_equip_slot = SLOT_WAIST
@@ -518,8 +518,13 @@
/obj/item/device/flashlight/lantern
name = "lantern"
icon_state = "lantern"
+ item_state = ""
desc = "A mining lantern."
light_range = 6 // luminosity when on
+ light_color = "#d69c46"
+
+/obj/item/device/flashlight/lantern/on
+ on = TRUE
//Signal Flare
/obj/item/device/flashlight/flare/signal
diff --git a/code/game/objects/items/explosives/explosive.dm b/code/game/objects/items/explosives/explosive.dm
index 0be81ba8a0ed..97172f5648d3 100644
--- a/code/game/objects/items/explosives/explosive.dm
+++ b/code/game/objects/items/explosives/explosive.dm
@@ -29,6 +29,10 @@
var/use_dir = FALSE
var/angle = 360
var/has_blast_wave_dampener = FALSE; //Whether or not the casing can be toggle between different falloff_mode
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
/obj/item/explosive/Initialize()
. = ..()
diff --git a/code/game/objects/items/explosives/grenades/grenade.dm b/code/game/objects/items/explosives/grenades/grenade.dm
index b2f95646a966..9a4fa354b20f 100644
--- a/code/game/objects/items/explosives/grenades/grenade.dm
+++ b/code/game/objects/items/explosives/grenades/grenade.dm
@@ -5,6 +5,10 @@
icon = 'icons/obj/items/weapons/grenade.dmi'
icon_state = "grenade"
item_state = "grenade"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
throw_speed = SPEED_VERY_FAST
throw_range = 7
flags_atom = FPRINT|CONDUCT
diff --git a/code/game/objects/items/explosives/plastic.dm b/code/game/objects/items/explosives/plastic.dm
index c6a3dfaed5f9..dc0ac548ed44 100644
--- a/code/game/objects/items/explosives/plastic.dm
+++ b/code/game/objects/items/explosives/plastic.dm
@@ -316,6 +316,7 @@
name = "breaching charge"
desc = "An explosive device used to break into areas while protecting the user from the blast as well as deploying deadly shrapnel on the other side."
icon_state = "satchel-charge"
+ item_state = "satchel-charge"
overlay_image = "satchel-active"
w_class = SIZE_SMALL
angle = 55
diff --git a/code/game/objects/items/frames/table_rack.dm b/code/game/objects/items/frames/table_rack.dm
index 95ab43869774..61ce5fa8eacf 100644
--- a/code/game/objects/items/frames/table_rack.dm
+++ b/code/game/objects/items/frames/table_rack.dm
@@ -81,6 +81,7 @@
desc = "A kit for a table, including a large, flat metal surface and four legs. This kit has side panels. Some assembly required."
icon = 'icons/obj/items/items.dmi'
icon_state = "reinf_tableparts"
+ item_state = "reinf_tableparts"
matter = list("metal" = 15000) //A reinforced table. Two sheets of metal and four rods
table_type = /obj/structure/surface/table/reinforced
@@ -102,6 +103,7 @@
name = "wooden table parts"
desc = "A kit for a table, including a large, flat wooden surface and four legs. Some assembly required."
icon_state = "wood_tableparts"
+ item_state = "wood_tableparts"
flags_atom = FPRINT
matter = null
table_type = /obj/structure/surface/table/woodentable
@@ -127,12 +129,14 @@
name = "poor wooden table parts"
desc = "A kit for a poorly crafted table, including a large, flat wooden surface and four legs. Some assembly required."
icon_state = "pwood_tableparts"
+ item_state = "pwood_tableparts"
table_type = /obj/structure/surface/table/woodentable/poor
/obj/item/frame/table/wood/fancy
name = "fancy wooden table parts"
desc = "A kit for a finely crafted mahogany table, including a large, flat wooden surface and four legs. Some assembly required."
icon_state = "fwood_tableparts"
+ item_state = "fwood_tableparts"
table_type = /obj/structure/surface/table/woodentable/fancy
/*
@@ -143,6 +147,7 @@
name = "gamble table parts"
desc = "A kit for a table, including a large, flat wooden and carpet surface and four legs. Some assembly required."
icon_state = "gamble_tableparts"
+ item_state = "gamble_tableparts"
flags_atom = null
matter = null
table_type = /obj/structure/surface/table/gamblingtable
@@ -169,6 +174,7 @@
/obj/item/frame/table/almayer
name = "gray table parts"
icon_state = "table_parts"
+ item_state = "tableparts"
table_type = /obj/structure/surface/table/almayer
diff --git a/code/game/objects/items/reagent_containers/dropper.dm b/code/game/objects/items/reagent_containers/dropper.dm
index f36145e285cd..7f0ef977b2b5 100644
--- a/code/game/objects/items/reagent_containers/dropper.dm
+++ b/code/game/objects/items/reagent_containers/dropper.dm
@@ -65,6 +65,7 @@
if (src.reagents.total_volume<=0)
filled = 0
icon_state = "dropper[filled]"
+ item_state = "dropper0"
return
for(var/mob/O in viewers(GLOB.world_view_size, user))
@@ -86,6 +87,7 @@
if (src.reagents.total_volume<=0)
filled = 0
icon_state = "dropper[filled]"
+ item_state = "dropper0"
else
@@ -107,6 +109,7 @@
filled = 1
icon_state = "dropper[filled]"
+ item_state = "dropper1"
return
diff --git a/code/game/objects/items/reagent_containers/food/drinks.dm b/code/game/objects/items/reagent_containers/food/drinks.dm
index 0a350aa851e2..68cef79cb3d7 100644
--- a/code/game/objects/items/reagent_containers/food/drinks.dm
+++ b/code/game/objects/items/reagent_containers/food/drinks.dm
@@ -146,7 +146,7 @@
name = "Space Milk"
desc = "It's milk. White and nutritious goodness!"
icon_state = "milk"
- item_state = "carton"
+ item_state = "milk"
center_of_mass = "x=16;y=9"
/obj/item/reagent_container/food/drinks/milk/Initialize()
@@ -172,7 +172,7 @@
name = "soy milk"
desc = "It's soy milk. White and nutritious goodness!"
icon_state = "soymilk"
- item_state = "carton"
+ item_state = "soymilk"
center_of_mass = "x=16;y=9"
/obj/item/reagent_container/food/drinks/soymilk/Initialize()
@@ -183,6 +183,7 @@
name = "\improper Coffee"
desc = "Careful, the beverage you're about to enjoy is extremely hot."
icon_state = "coffee"
+ item_state = "coffee"
center_of_mass = "x=15;y=10"
/obj/item/reagent_container/food/drinks/coffee/Initialize()
@@ -196,7 +197,7 @@
name = "\improper Duke Purple Tea"
desc = "An insult to Duke Purple is an insult to the Space Queen! Any proper gentleman will fight you, if you sully this tea."
icon_state = "tea"
- item_state = "coffee"
+ item_state = "tea"
center_of_mass = "x=16;y=14"
/obj/item/reagent_container/food/drinks/tea/Initialize()
@@ -218,7 +219,7 @@
name = "\improper Dutch hot coco"
desc = "Made in Space South America."
icon_state = "hot_coco"
- item_state = "coffee"
+ item_state = "hot_coco"
center_of_mass = "x=15;y=13"
/obj/item/reagent_container/food/drinks/h_chocolate/Initialize()
@@ -240,6 +241,7 @@
name = "paper cup"
desc = "A paper water cup."
icon_state = "water_cup_e"
+ item_state = "water_cup_e"
possible_transfer_amounts = null
volume = 10
center_of_mass = "x=16;y=12"
@@ -302,6 +304,7 @@
name = "metal flask"
desc = "A metal flask with a decent liquid capacity."
icon_state = "flask"
+ item_state = "flask"
volume = 60
center_of_mass = "x=17;y=8"
@@ -309,6 +312,7 @@
name = "\improper USCM flask"
desc = "A metal flask embossed with the USCM logo and probably filled with a slurry of water, motor oil, and medicinal alcohol."
icon_state = "flask_uscm"
+ item_state = "flask_uscm"
volume = 60
center_of_mass = "x=17;y=8"
@@ -321,6 +325,7 @@
name = "\improper Weyland-Yutani flask"
desc = "A metal flask embossed with Weyland-Yutani's signature logo that some corporate bootlicker probably ordered to be stocked in USS military vessels' canteen vendors."
icon_state = "flask_wy"
+ item_state = "flask_wy"
volume = 60
center_of_mass = "x=17;y=8"
@@ -332,6 +337,7 @@
name = "canteen"
desc = "You take a sip from your trusty USCM canteen..."
icon_state = "canteen"
+ item_state = "canteen"
volume = 60
center_of_mass = "x=17;y=8"
@@ -343,6 +349,7 @@
name = "brown leather flask"
desc = "A flask with a leather band around the sides, often seen filled with whiskey and carried by rugged, gritty detectives."
icon_state = "brownflask"
+ item_state = "brownflask"
volume = 60
center_of_mass = "x=17;y=8"
@@ -355,6 +362,7 @@
name = "black leather flask"
desc = "A flask with a slick black leather band around the sides. For those who can't be bothered to hang out at the bar to drink."
icon_state = "blackflask"
+ item_state = "blackflask"
volume = 60
center_of_mass = "x=17;y=7"
@@ -369,6 +377,7 @@
name = "coffee mug"
desc = "A ceramic coffee mug. Practically guaranteed to fall and spill scalding-hot drink onto your brand-new shirt. Ouch."
icon_state = "coffeecup"
+ item_state = "coffecup"
volume = 30
center_of_mass = "x=15;y=13"
@@ -376,9 +385,11 @@
name = "USCM coffee mug"
desc = "A red, white and blue coffee mug depicting the emblem of the USCM. Patriotic and bold, and commonly seen among veterans as a novelty."
icon_state = "uscmcup"
+ item_state = "uscmcup"
/obj/item/reagent_container/food/drinks/coffeecup/wy
name = "Weyland-Yutani coffee mug"
desc = "A matte gray coffee mug bearing the Weyland-Yutani logo on its front. Either issued as corporate standard, or bought as a souvenir for people who love the Company oh so dearly. Probably the former."
icon_state = "wycup"
+ item_state = "wycup"
diff --git a/code/game/objects/items/reagent_containers/food/drinks/bottle.dm b/code/game/objects/items/reagent_containers/food/drinks/bottle.dm
index 75b5aadfc43b..63c7f3fa7f8c 100644
--- a/code/game/objects/items/reagent_containers/food/drinks/bottle.dm
+++ b/code/game/objects/items/reagent_containers/food/drinks/bottle.dm
@@ -123,6 +123,7 @@
name = "\improper Griffeater Gin"
desc = "A bottle of high-quality gin, produced in the New London Space Station."
icon_state = "ginbottle"
+
center_of_mass = "x=16;y=4"
/obj/item/reagent_container/food/drinks/bottle/gin/Initialize()
@@ -133,6 +134,7 @@
name = "\improper Uncle Git's Special Reserve"
desc = "A premium single-malt whiskey, gently matured for four years by hillbillies in the backwaters of Alabama."
icon_state = "whiskeybottle"
+ item_state = "whiskeybottle"
center_of_mass = "x=16;y=3"
/obj/item/reagent_container/food/drinks/bottle/whiskey/Initialize()
@@ -143,6 +145,7 @@
name = "\improper Weyland-Yutani Sake"
desc = "Sake made with ancient techniques passed down for thousands of years. Fermented in Iowa by the Weyland-Yutani Corporation."
icon_state = "sakebottle"
+ item_state = "sakebottle"
center_of_mass = "x=17;y=7"
/obj/item/reagent_container/food/drinks/bottle/sake/Initialize()
@@ -266,6 +269,7 @@
name = "Captain Pete's Cuban Spiced Rum"
desc = "Named after the famed Captain 'Cuban' Pete, this rum is about as volatile as his final mission."
icon_state = "rumbottle"
+ item_state = "rumbottle"
center_of_mass = "x=16;y=8"
/obj/item/reagent_container/food/drinks/bottle/rum/Initialize()
@@ -296,6 +300,7 @@
name = "Robert Robust's Coffee Liqueur"
desc = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936, HONK"
icon_state = "kahluabottle"
+ item_state = "kahluabottle"
center_of_mass = "x=17;y=3"
/obj/item/reagent_container/food/drinks/bottle/kahlua/Initialize()
@@ -445,7 +450,6 @@
name = "Orange Juice"
desc = "Full of vitamins and deliciousness!"
icon_state = "orangejuice"
- item_state = "carton"
center_of_mass = "x=16;y=7"
isGlass = 0
@@ -465,7 +469,6 @@
name = "Milk Cream"
desc = "It's cream. Made from milk. What else did you think you'd find in there?"
icon_state = "cream"
- item_state = "carton"
center_of_mass = "x=16;y=8"
isGlass = 0
@@ -477,7 +480,6 @@
name = "Tomato Juice"
desc = "Well, at least it LOOKS like tomato juice. You can't tell with all that redness."
icon_state = "tomatojuice"
- item_state = "carton"
center_of_mass = "x=16;y=8"
isGlass = 0
@@ -489,7 +491,6 @@
name = "Lime Juice"
desc = "Sweet-sour goodness."
icon_state = "limejuice"
- item_state = "carton"
center_of_mass = "x=16;y=8"
isGlass = 0
diff --git a/code/game/objects/items/reagent_containers/food/snacks.dm b/code/game/objects/items/reagent_containers/food/snacks.dm
index 4e00f32a9b13..4f22d5d5f1a4 100644
--- a/code/game/objects/items/reagent_containers/food/snacks.dm
+++ b/code/game/objects/items/reagent_containers/food/snacks.dm
@@ -357,6 +357,7 @@
name = "cookie"
desc = "A delicious and crumbly chocolate chip cookie. Don't feed to parrots."
icon_state = "COOKIE!!!"
+ item_state = "COOKIE!!!"
filling_color = "#DBC94F"
/obj/item/reagent_container/food/snacks/cookie/Initialize()
@@ -3132,6 +3133,7 @@
name = "Packaged Burrito"
desc = "A hard microwavable burrito. There's no time given for how long to cook it. Packaged by the Weyland-Yutani Corporation."
icon_state = "packaged-burrito"
+ item_state = "pburrito"
bitesize = 2
package = 1
flags_obj = OBJ_NO_HELMET_BAND|OBJ_IS_HELMET_GARB
@@ -3149,11 +3151,13 @@
to_chat(user, SPAN_NOTICE("You pull off the wrapping from the squishy burrito!"))
package = 0
icon_state = "open-burrito"
+ item_state = "burrito"
/obj/item/reagent_container/food/snacks/packaged_burger
name = "Packaged Cheeseburger"
desc = "A soggy microwavable burger. There's no time given for how long to cook it. Packaged by the Weyland-Yutani Corporation."
icon_state = "burger"
+ item_state = "pburger"
bitesize = 3
package = 1
@@ -3178,6 +3182,7 @@
name = "Packaged Hotdog"
desc = "A singular squishy, room temperature, hot dog. There's no time given for how long to cook it, so you assume its probably good to go. Packaged by the Weyland-Yutani Corporation."
icon_state = "packaged-hotdog"
+ item_state = "photdog"
flags_obj = OBJ_NO_HELMET_BAND|OBJ_IS_HELMET_GARB
bitesize = 2
package = 1
@@ -3196,6 +3201,7 @@
to_chat(user, SPAN_NOTICE("You pull off the wrapping from the squishy hotdog!"))
package = 0
icon_state = "open-hotdog"
+ item_state = "hotdog"
/obj/item/reagent_container/food/snacks/upp
name = "\improper UPP ration"
@@ -3243,6 +3249,7 @@
name = "Kepler Crisps"
desc = "'They're disturbingly good!' Now with 0% trans fat and added genuine sea salts."
icon_state = "kepler"
+ item_state = "kepler"
bitesize = 2
trash = /obj/item/trash/kepler
@@ -3255,6 +3262,7 @@
name = "Kepler Flamehot"
desc = "'They're disturbingly good!' Due to an exceptionally well-timed ad campaign with the release of Kepler Flamehot in 2165, the Kepler brand was able to overtake other confectionary Weyland products by quarter three of that year. Contains 0% trans fat."
icon_state = "flamehotkepler"
+ item_state = "flamehotkepler"
bitesize = 2
trash = /obj/item/trash/kepler/flamehot
@@ -3281,6 +3289,7 @@
new wrapper (user.loc)
icon_state = "[initial(icon_state)]-o"
+ item_state = "[initial(item_state)]-o"
package = 0
//CM SNACKS
@@ -3288,6 +3297,7 @@
name = "Boonie Bars"
desc = "Two delicious bars of minty chocolate. \"Sometimes things are just... out of reach.\""
icon_state = "boonie"
+ item_state = "boonie"
wrapper = /obj/item/trash/boonie
/obj/item/reagent_container/food/snacks/wrapped/booniebars/Initialize()
@@ -3299,6 +3309,7 @@
name = "CHUNK box"
desc = "A bar of \"The CHUNK\" brand chocolate. \"The densest chocolate permitted to exist according to federal law. We are legally required to ask you not to use this blunt object for anything other than nutrition.\""
icon_state = "chunk"
+ item_state = "chunk"
hitsound = "swing_hit"
force = 15
throwforce = 10
@@ -3316,6 +3327,7 @@
name = "HUNK crate"
desc = "A 'crate', as the marketing called it, of \"The HUNK\" brand chocolate. An early version of the CHUNK box, the HUNK bar was hit by a class action lawsuit and forced to go into bankruptcy and get bought out by the Company when hundreds of customers had their teeth crack from simply attempting to eat the bar."
icon_state = "hunk"
+ item_state = "hunk"
w_class = SIZE_MEDIUM
force = 35
throwforce = 50
@@ -3332,6 +3344,7 @@
name = "Barcardine Bars"
desc = "A bar of chocolate, it smells like the medical bay. \"Chocolate always helps the pain go away.\""
icon_state = "barcardine"
+ item_state = "barcardine"
wrapper = /obj/item/trash/barcardine
/obj/item/reagent_container/food/snacks/wrapped/barcardine/Initialize()
diff --git a/code/game/objects/items/reagent_containers/glass.dm b/code/game/objects/items/reagent_containers/glass.dm
index 0ffcb30bf89d..7aae76eedbd7 100644
--- a/code/game/objects/items/reagent_containers/glass.dm
+++ b/code/game/objects/items/reagent_containers/glass.dm
@@ -319,6 +319,7 @@
name = "large beaker"
desc = "A large beaker. Can hold up to 120 units."
icon_state = "beakerlarge"
+ item_state = "beakerlarge"
matter = list("glass" = 5000)
volume = 120
amount_per_transfer_from_this = 10
@@ -328,6 +329,7 @@
name = "large silver beaker"
desc = "A large silver beaker. Can hold up to 240 units. The beaker itself acts as a silver catalyst."
icon_state = "beakersilver"
+ item_state = "beakersilver"
volume = 240
matter = list("silver" = 5000)
amount_per_transfer_from_this = 10
@@ -347,6 +349,7 @@
name = "high-capacity beaker"
desc = "A beaker with an enlarged holding capacity, made with blue-tinted plexiglass in order to withstand greater pressure. Can hold up to 300 units."
icon_state = "beakerbluespace"
+ item_state = "beakerbluespace"
matter = list("glass" = 10000)
volume = 300
amount_per_transfer_from_this = 10
@@ -357,6 +360,7 @@
name = "vial"
desc = "A small glass vial. Can hold up to 30 units."
icon_state = "vial"
+ item_state = "vial"
volume = 30
amount_per_transfer_from_this = 10
matter = list()
@@ -486,7 +490,7 @@
desc = "A canister containing pressurized hydrogen. Can be used to refill storage tanks."
icon = 'icons/obj/items/tank.dmi'
icon_state = "canister_hydrogen"
- item_state = "anesthetic"
+ item_state = "canister_hydrogen"
amount_per_transfer_from_this = 100
possible_transfer_amounts = list(50,100,200,300,400)
volume = 400
@@ -506,24 +510,28 @@
name = "Ammonia canister"
desc = "A canister containing pressurized ammonia. Can be used to refill storage tanks."
icon_state = "canister_ammonia"
+ item_state = "canister_ammonia"
reagent = "ammonia"
/obj/item/reagent_container/glass/canister/methane
name = "Methane canister"
desc = "A canister containing pressurized methane. Can be used to refill storage tanks."
icon_state = "canister_methane"
+ item_state = "canister_methane"
reagent = "methane"
/obj/item/reagent_container/glass/canister/pacid
name = "Polytrinic acid canister"
desc = "A canister containing pressurized polytrinic acid. Can be used to refill storage tanks."
icon_state = "canister_pacid"
+ item_state = "canister_pacid"
reagent = "pacid"
/obj/item/reagent_container/glass/canister/oxygen
name = "Oxygen canister"
desc = "A canister containing pressurized oxygen. Can be used to refill storage tanks."
icon_state = "canister_oxygen"
+ item_state = "canister_oxygen"
reagent = "oxygen"
/obj/item/reagent_container/glass/pressurized_canister // See the Pressurized Reagent Canister Pouch
@@ -632,6 +640,7 @@
name = "mop bucket"
desc = "A larger bucket, typically used with a mop. Holds 240 units"
icon_state = "mopbucket"
+ item_state = "mopbucket"
matter = list("metal" = 4000)
w_class = SIZE_LARGE
amount_per_transfer_from_this = 20
@@ -643,6 +652,7 @@
name = "janitorial bucket"
desc = "It's a large bucket that fits in a janitorial cart. Holds 500 units."
icon_state = "janibucket"
+ item_state = "janibucket"
matter = list("metal" = 8000)
volume = 500
diff --git a/code/game/objects/items/reagent_containers/glass/bottle.dm b/code/game/objects/items/reagent_containers/glass/bottle.dm
index f1eab588fd20..29fa82aacdae 100644
--- a/code/game/objects/items/reagent_containers/glass/bottle.dm
+++ b/code/game/objects/items/reagent_containers/glass/bottle.dm
@@ -5,7 +5,7 @@
desc = "A small bottle."
icon = 'icons/obj/items/chemistry.dmi'
icon_state = "bottle-1"
- item_state = "atoxinbottle"
+ item_state = "bottle-1"
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5, 10, 15, 25, 30, 40, 60)
flags_atom = FPRINT|OPENCONTAINER
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index c4a496a12366..5fe2ecaaee86 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -149,6 +149,7 @@
singular_name = "trauma kit"
desc = "A trauma kit for severe injuries."
icon_state = "traumakit"
+ item_state = "brutekit"
heal_brute = 12
stack_id = "advanced bruise pack"
@@ -216,6 +217,7 @@
singular_name = "burn kit"
desc = "A treatment kit for severe burns."
icon_state = "burnkit"
+ item_state = "burnkit"
heal_burn = 12
stack_id = "burn kit"
@@ -265,6 +267,7 @@
singular_name = "medical splint"
desc = "A collection of different splints and securing gauze. What, did you think we only broke legs out here?"
icon_state = "splint"
+ item_state = "splint"
amount = 5
max_amount = 5
stack_id = "splint"
diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm
index 805f0ecf4030..3b785e71c5be 100644
--- a/code/game/objects/items/storage/backpack.dm
+++ b/code/game/objects/items/storage/backpack.dm
@@ -593,8 +593,10 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r
if(internal_transmitter.caller)
icon_state = "[base_icon]_ring"
+ item_state = "rto_backpack_ring"
else
icon_state = base_icon
+ item_state = "rto_backpack"
/obj/item/storage/backpack/marine/satchel/rto/forceMove(atom/dest)
. = ..()
diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm
index 256210b69f4c..d1a4a0f97897 100644
--- a/code/game/objects/items/storage/bags.dm
+++ b/code/game/objects/items/storage/bags.dm
@@ -27,7 +27,6 @@
desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"
icon = 'icons/obj/janitor.dmi'
icon_state = "trashbag0"
- item_state = "trashbag"
w_class = SIZE_LARGE
max_w_class = SIZE_MEDIUM
@@ -39,19 +38,24 @@
storage_flags = STORAGE_GATHER_SIMULTAENOUSLY|STORAGE_QUICK_GATHER|STORAGE_CLICK_GATHER
flags_equip_slot = NONE
-/obj/item/storage/bag/trash/update_icon()
+/obj/item/storage/bag/trash/update_icon(mob/living/carbon/human/user)
var/sum_storage_cost = 0
for(var/obj/item/item in contents)
sum_storage_cost += item.get_storage_cost()
if(!sum_storage_cost)
icon_state = "trashbag0"
+ item_state = "trashbag0"
else if(sum_storage_cost < floor(max_storage_space * 0.35))
icon_state = "trashbag1"
+ item_state = "trashbag1"
else if(sum_storage_cost < floor(max_storage_space * 0.7))
icon_state = "trashbag2"
+ item_state = "trashbag2"
else
icon_state = "trashbag3"
+ item_state = "trashbag3"
+
// -----------------------------
// Plastic Bag
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index 0647d214be97..90c4be0a433f 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -487,7 +487,11 @@
desc = "A small box of 'Space-Proof' premium matches."
icon = 'icons/obj/items/cigarettes.dmi'
icon_state = "matchbox"
- item_state = "zippo"
+ item_state = "matchbox"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
w_class = SIZE_TINY
flags_equip_slot = SLOT_WAIST
flags_obj = parent_type::flags_obj|OBJ_IS_HELMET_GARB
@@ -799,6 +803,7 @@
name = "\improper USCM MRE"
desc = "A Meal, Ready-to-Eat. A single-meal combat ration designed to provide a soldier with enough nutrients for a day of strenuous work. Its expiration date is at least 20 years ahead of your combat life expectancy."
icon_state = "mealpack"
+ item_state = "mealpack"
icon = 'icons/obj/items/storage/mre.dmi'
w_class = SIZE_SMALL
can_hold = list()
diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm
index 79d38603dc7e..fea683d0527f 100644
--- a/code/game/objects/items/storage/fancy.dm
+++ b/code/game/objects/items/storage/fancy.dm
@@ -26,6 +26,7 @@
/obj/item/storage/fancy/update_icon()
icon_state = "[icon_type]box[length(contents)]"
+ item_state = "[icon_type]box[length(contents)]"
/obj/item/storage/fancy/remove_from_storage(obj/item/W, atom/new_location)
. = ..()
@@ -326,7 +327,6 @@
name = "\improper Lucky Strikes matchbook"
desc = "A small book of cheap paper matches. Good luck getting them to light. Made by Lucky Strikes, but you'll be anything but lucky when you burn your hand trying to light a match on this."
icon_state = "mpacket"
- item_state = "zippo"
storage_slots = 6
can_hold = list()
icon_type = "match"
@@ -382,6 +382,7 @@
/obj/item/storage/fancy/vials
icon = 'icons/obj/items/vialbox.dmi'
icon_state = "vialbox0"
+ item_state = "vialbox0"
icon_type = "vial"
name = "vial storage box"
desc = "A place to store your fragile vials when you are not using them."
@@ -428,7 +429,7 @@
desc = "A locked box for keeping things away from children."
icon = 'icons/obj/items/vialbox.dmi'
icon_state = "vialbox0"
- item_state = "syringe_kit"
+ item_state = "vialbox0"
max_w_class = SIZE_MEDIUM
can_hold = list(/obj/item/reagent_container/glass/beaker/vial)
max_storage_space = 14 //The sum of the w_classes of all the items in this storage item.
diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm
index a684586675a6..3f5a3cca74e6 100644
--- a/code/game/objects/items/storage/firstaid.dm
+++ b/code/game/objects/items/storage/firstaid.dm
@@ -337,7 +337,7 @@
desc = "It's an airtight container for storing medication."
icon_state = "pill_canister"
icon = 'icons/obj/items/chemistry.dmi'
- item_state = "contsolid"
+ item_state = "pill_canister"
w_class = SIZE_SMALL
matter = list("plastic" = 500)
can_hold = list(
@@ -559,6 +559,7 @@
/obj/item/storage/pill_bottle/kelotane
name = "\improper Kelotane pill bottle"
icon_state = "pill_canister2"
+ item_state = "pill_canister2"
pill_type_to_fill = /obj/item/reagent_container/pill/kelotane
maptext_label = "Kl"
@@ -568,6 +569,7 @@
/obj/item/storage/pill_bottle/antitox
name = "\improper Dylovene pill bottle"
icon_state = "pill_canister6"
+ item_state = "pill_canister6"
pill_type_to_fill = /obj/item/reagent_container/pill/antitox
maptext_label = "Dy"
@@ -578,6 +580,7 @@
/obj/item/storage/pill_bottle/inaprovaline
name = "\improper Inaprovaline pill bottle"
icon_state = "pill_canister3"
+ item_state = "pill_canister3"
pill_type_to_fill = /obj/item/reagent_container/pill/inaprovaline
maptext_label = "In"
@@ -587,6 +590,7 @@
/obj/item/storage/pill_bottle/tramadol
name = "\improper Tramadol pill bottle"
icon_state = "pill_canister5"
+ item_state = "pill_canister5"
pill_type_to_fill = /obj/item/reagent_container/pill/tramadol
maptext_label = "Tr"
@@ -596,6 +600,7 @@
/obj/item/storage/pill_bottle/spaceacillin
name = "\improper Spaceacillin pill bottle"
icon_state = "pill_canister4"
+ item_state = "pill_canister4"
pill_type_to_fill = /obj/item/reagent_container/pill/spaceacillin
maptext_label = "Sp"
@@ -605,6 +610,7 @@
/obj/item/storage/pill_bottle/bicaridine
name = "\improper Bicaridine pill bottle"
icon_state = "pill_canister11"
+ item_state = "pill_canister11"
pill_type_to_fill = /obj/item/reagent_container/pill/bicaridine
maptext_label = "Bi"
@@ -614,6 +620,7 @@
/obj/item/storage/pill_bottle/dexalin
name = "\improper Dexalin pill bottle"
icon_state = "pill_canister1"
+ item_state = "píll_canister1"
pill_type_to_fill = /obj/item/reagent_container/pill/dexalin
maptext_label = "Dx"
@@ -624,6 +631,7 @@
/obj/item/storage/pill_bottle/alkysine
name = "\improper Alkysine pill bottle"
icon_state = "pill_canister7"
+ item_state = "pill_canister7"
pill_type_to_fill = /obj/item/reagent_container/pill/alkysine
maptext_label = "Al"
@@ -634,6 +642,7 @@
/obj/item/storage/pill_bottle/imidazoline
name = "\improper Imidazoline pill bottle"
icon_state = "pill_canister9"
+ item_state = "pill_canister9"
pill_type_to_fill = /obj/item/reagent_container/pill/imidazoline
maptext_label = "Im"
@@ -644,6 +653,7 @@
/obj/item/storage/pill_bottle/peridaxon
name = "\improper Peridaxon pill bottle"
icon_state = "pill_canister10"
+ item_state = "pill_canister10"
pill_type_to_fill = /obj/item/reagent_container/pill/peridaxon
maptext_label = "Pr"
@@ -654,6 +664,7 @@
/obj/item/storage/pill_bottle/russianRed
name = "\improper Russian red pill bottle"
icon_state = "pill_canister"
+ item_state = "pill_canister"
pill_type_to_fill = /obj/item/reagent_container/pill/russianRed
maptext_label = "Rr"
@@ -664,6 +675,7 @@
/obj/item/storage/pill_bottle/ultrazine
name = "pill bottle"
icon_state = "pill_canister11"
+ item_state = "pill_canister11"
max_storage_space = 5
skilllock = SKILL_MEDICAL_DEFAULT //CL can open it
var/idlock = TRUE
@@ -734,6 +746,7 @@
/obj/item/storage/pill_bottle/stimulant
name = "\improper Stimulant pill bottle"
icon_state = "pill_canister12"
+ item_state = "píll_canister12"
pill_type_to_fill = /obj/item/reagent_container/pill/stimulant
maptext_label = "ST"
diff --git a/code/game/objects/items/storage/toolkit.dm b/code/game/objects/items/storage/toolkit.dm
index d54201f73650..6e68f4adae5b 100644
--- a/code/game/objects/items/storage/toolkit.dm
+++ b/code/game/objects/items/storage/toolkit.dm
@@ -3,7 +3,7 @@
desc = "An combat engineering toolkit intended to carry electrical and mechanical supplies into combat. With engineering training you can fit this in a backpack."
icon = 'icons/obj/items/storage/kits.dmi'
icon_state = "toolkit"
- item_state = "fulton"
+ item_state = "toolkit"
throw_speed = SPEED_FAST
throw_range = 8
use_sound = "toolbox"
diff --git a/code/game/objects/items/tools/cleaning_tools.dm b/code/game/objects/items/tools/cleaning_tools.dm
index 9fab254a7153..a1bf1db0392c 100644
--- a/code/game/objects/items/tools/cleaning_tools.dm
+++ b/code/game/objects/items/tools/cleaning_tools.dm
@@ -155,9 +155,11 @@
/obj/item/tool/soap/weyland_yutani
desc = "A Weyland-Yutani brand bar of soap. Smells of phoron."
icon_state = "soapnt"
+ item_state = "soapnt"
/obj/item/tool/soap/deluxe
icon_state = "soapdeluxe"
+ item_state = "soapdeluxe"
/obj/item/tool/soap/deluxe/Initialize()
. = ..()
@@ -166,3 +168,4 @@
/obj/item/tool/soap/syndie
desc = "An untrustworthy bar of soap. Smells of fear."
icon_state = "soapsyndie"
+ item_state = "soapsyndie"
diff --git a/code/game/objects/items/tools/flame_tools.dm b/code/game/objects/items/tools/flame_tools.dm
index 8af7d15e0ff3..a03b9e48a280 100644
--- a/code/game/objects/items/tools/flame_tools.dm
+++ b/code/game/objects/items/tools/flame_tools.dm
@@ -38,6 +38,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
i = 2
else i = 3
icon_state = "candle[i][heat_source ? "_lit" : ""]"
+ item_state = "candle[i][heat_source ? "_lit" : ""]"
/obj/item/tool/candle/Destroy()
if(heat_source)
@@ -93,7 +94,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
name = "match"
desc = "A simple match stick, used for lighting fine smokables."
icon = 'icons/obj/items/cigarettes.dmi'
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
icon_state = "match"
+ item_state = "match"
var/burnt = 0
var/smoketime = 10 SECONDS
var/burnt_name = "burnt match"
@@ -143,6 +149,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
playsound(src.loc,"match",15, 1, 3)
damtype = "burn"
icon_state = "[initial(icon_state)]_lit"
+ item_state = "[initial(item_state)]_lit"
turn_light(toggle_on = TRUE)
START_PROCESSING(SSobj, src)
update_icon()
@@ -153,7 +160,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
burnt = 1
damtype = "brute"
icon_state = "[initial(icon_state)]_burnt"
- item_state = "cigoff"
+ item_state = "[initial(item_state)]_burnt"
turn_light(toggle_on = FALSE)
name = burnt_name
desc = "A match. This one has seen better days."
@@ -163,6 +170,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
name = "paper match"
desc = "A simple match stick, used for lighting fine smokables."
icon_state = "papermatch"
+ item_state = "papermatch"
burnt_name = "burnt paper match"
//////////////////
@@ -172,8 +180,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
name = "cigarette"
desc = "A roll of tobacco and fillers, wrapped in paper with a filter at the end. Apparently, inhaling the smoke makes you feel happier."
icon_state = "cigoff"
- throw_speed = SPEED_AVERAGE
item_state = "cigoff"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
+ throw_speed = SPEED_AVERAGE
w_class = SIZE_TINY
flags_armor_protection = 0
flags_equip_slot = SLOT_EAR | SLOT_FACE
@@ -686,6 +698,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon = 'icons/obj/items/items.dmi'
icon_state = "lighter_g"
item_state = "lighter_g"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
light_color = LIGHT_COLOR_LAVA
var/icon_on = "lighter_g_on"
var/icon_off = "lighter_g"
diff --git a/code/game/objects/items/tools/kitchen_tools.dm b/code/game/objects/items/tools/kitchen_tools.dm
index a29bf97cacd3..929ade331071 100644
--- a/code/game/objects/items/tools/kitchen_tools.dm
+++ b/code/game/objects/items/tools/kitchen_tools.dm
@@ -69,22 +69,26 @@
name = "fork"
desc = "It's a fork. Sure is pointy."
icon_state = "fork"
+ item_state = "fork"
/obj/item/tool/kitchen/utensil/pfork
name = "plastic fork"
desc = "Yay, no washing up to do."
icon_state = "pfork"
+ item_state = "pfork"
/obj/item/tool/kitchen/utensil/spoon
name = "spoon"
desc = "It's a spoon. You can see your own upside-down face in it."
icon_state = "spoon"
+ item_state = "spoon"
attack_verb = list("attacked", "poked")
/obj/item/tool/kitchen/utensil/pspoon
name = "plastic spoon"
desc = "It's a plastic spoon. How dull."
icon_state = "pspoon"
+ item_state = "pspoon"
attack_verb = list("attacked", "poked")
/*
diff --git a/code/game/objects/items/tools/misc_tools.dm b/code/game/objects/items/tools/misc_tools.dm
index b016f0e67b33..b81a5f524d3a 100644
--- a/code/game/objects/items/tools/misc_tools.dm
+++ b/code/game/objects/items/tools/misc_tools.dm
@@ -58,10 +58,10 @@
if(isturf(A))
to_chat(user, SPAN_WARNING("The label won't stick to that."))
return
- if(istype(A, /obj/item/storage/pill_bottle))
+ if(istype(A, /obj/item/storage/pill_bottle))
var/obj/item/storage/pill_bottle/target_pill_bottle = A
target_pill_bottle.choose_color(user)
-
+
if(!label || !length(label))
remove_label(A, user)
return
@@ -157,6 +157,10 @@
icon = 'icons/obj/items/paper.dmi'
icon_state = "pen"
item_state = "pen"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
flags_equip_slot = SLOT_WAIST|SLOT_EAR|SLOT_SUIT_STORE
throwforce = 0
w_class = SIZE_TINY
diff --git a/code/game/objects/items/tools/surgery_tools.dm b/code/game/objects/items/tools/surgery_tools.dm
index 0c5b3925ca34..360e6a53d9c2 100644
--- a/code/game/objects/items/tools/surgery_tools.dm
+++ b/code/game/objects/items/tools/surgery_tools.dm
@@ -218,7 +218,7 @@
///How much bone gel is needed to mend bones
var/mend_bones_fix_cost = 5
-/obj/item/tool/surgery/bonegel/update_icon()
+/obj/item/tool/surgery/bonegel/update_icon(mob/user)
. = ..()
if(remaining_gel >= 100)
icon_state = base_icon_state
@@ -321,6 +321,7 @@
name = "\proper surgical line"
desc = "A roll of military-grade surgical line, able to seamlessly sew up any wound. Also works as a robust fishing line for maritime deployments."
icon_state = "line_brute"
+ item_state = "line_brute"
force = 0
throwforce = 1
w_class = SIZE_SMALL
@@ -339,6 +340,7 @@
desc = "An applicator for synthetic skin field grafts. The stuff reeks, itches like the dickens, hurts going on, and the color is \
a perfectly averaged multiethnic tone that doesn't blend with anyone's complexion. But at least you don't have to stay in sickbay."
icon_state = "line_burn"
+ item_state = "line_burn"
force = 0
throwforce = 1
w_class = SIZE_SMALL
diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm
index 3b415cf0f9e8..b085da5471e6 100644
--- a/code/modules/clothing/suits/utility.dm
+++ b/code/modules/clothing/suits/utility.dm
@@ -55,7 +55,7 @@
/obj/item/clothing/suit/fire/firefighter
icon_state = "firesuit"
- item_state = "firefighter"
+ item_state = "fire_suit"
/*
* Bomb protection
diff --git a/code/modules/cm_marines/equipment/gear.dm b/code/modules/cm_marines/equipment/gear.dm
index 6e11181e249e..3dda2d741e95 100644
--- a/code/modules/cm_marines/equipment/gear.dm
+++ b/code/modules/cm_marines/equipment/gear.dm
@@ -7,7 +7,7 @@
desc = "A Flashlight designed to be held in the hand, or attached to a rifle, has better bulb compared to a normal flashlight."
icon_state = "combat_flashlight"
item_state = "flashlight"
- light_range = 5 //Pretty luminous, but still a flashlight that fits in a pocket
+ light_range = 6 //Pretty luminous, but still a flashlight that fits in a pocket
//MARINE SNIPER TARPS
diff --git a/code/modules/cm_marines/equipment/guncases.dm b/code/modules/cm_marines/equipment/guncases.dm
index 33cfeed00307..65130eafcc7c 100644
--- a/code/modules/cm_marines/equipment/guncases.dm
+++ b/code/modules/cm_marines/equipment/guncases.dm
@@ -3,6 +3,7 @@
desc = "It has space for firearm(s). Sometimes magazines or other munitions as well."
icon = 'icons/obj/items/storage/kits.dmi'
icon_state = "guncase"
+ item_state = "guncase"
w_class = SIZE_HUGE
max_w_class = SIZE_HUGE //shouldn't be a problem since we can only store the guns and ammo.
storage_slots = 1
@@ -313,6 +314,7 @@
name = "\improper M707 anti-materiel rifle case"
desc = "A gun case containing the M707 \"Vulture\" anti-materiel rifle and its requisite spotting tools."
icon_state = "guncase_blue"
+ item_state = "guncase_blue"
storage_slots = 7
can_hold = list(
/obj/item/weapon/gun/boltaction/vulture,
diff --git a/code/modules/cm_marines/equipment/mortar/mortar_shells.dm b/code/modules/cm_marines/equipment/mortar/mortar_shells.dm
index 1d6cb3be0a3c..61053531c404 100644
--- a/code/modules/cm_marines/equipment/mortar/mortar_shells.dm
+++ b/code/modules/cm_marines/equipment/mortar/mortar_shells.dm
@@ -3,6 +3,10 @@
desc = "An unlabeled 80mm mortar shell, probably a casing."
icon = 'icons/obj/structures/mortar.dmi'
icon_state = "mortar_ammo_cas"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
w_class = SIZE_HUGE
flags_atom = FPRINT|CONDUCT
var/datum/cause_data/cause_data
@@ -29,6 +33,7 @@
name = "\improper 80mm high explosive mortar shell"
desc = "An 80mm mortar shell, loaded with a high explosive charge."
icon_state = "mortar_ammo_he"
+ item_state = "mortar_ammo_he"
/obj/item/mortar_shell/he/detonate(turf/T)
explosion(T, 0, 3, 5, 7, explosion_cause_data = cause_data)
@@ -37,6 +42,7 @@
name = "\improper 80mm fragmentation mortar shell"
desc = "An 80mm mortar shell, loaded with a fragmentation charge."
icon_state = "mortar_ammo_frag"
+ item_state = "mortar_ammo_frag"
/obj/item/mortar_shell/frag/detonate(turf/T)
create_shrapnel(T, 60, cause_data = cause_data)
@@ -47,6 +53,7 @@
name = "\improper 80mm incendiary mortar shell"
desc = "An 80mm mortar shell, loaded with a Type B napalm charge. Perfect for long-range area denial."
icon_state = "mortar_ammo_inc"
+ item_state = "mortar_ammo_inc"
var/radius = 5
var/flame_level = BURN_TIME_TIER_5 + 5 //Type B standard, 50 base + 5 from chemfire code.
var/burn_level = BURN_LEVEL_TIER_2
@@ -62,6 +69,7 @@
name = "\improper 80mm flare/camera mortar shell"
desc = "An 80mm mortar shell, loaded with an illumination flare / camera combo, attached to a parachute."
icon_state = "mortar_ammo_flr"
+ item_state = "mortar_ammo_flr"
/obj/item/mortar_shell/flare/detonate(turf/T)
new /obj/item/device/flashlight/flare/on/illumination(T)
@@ -72,6 +80,7 @@
name = "\improper 80mm custom mortar shell"
desc = "An 80mm mortar shell."
icon_state = "mortar_ammo_custom"
+ item_state = "mortar_ammo_custom_locked"
matter = list("metal" = 18750) //5 sheets
var/obj/item/explosive/warhead/mortar/warhead
var/obj/item/reagent_container/glass/fuel
@@ -168,7 +177,7 @@
/obj/item/mortar_shell/flamer_fire_act(dam, datum/cause_data/flame_cause_data)
addtimer(VARSET_CALLBACK(src, burning, FALSE), 5 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_DELETE_ME)
-
+
if(burning)
return
burning = TRUE
@@ -200,7 +209,7 @@
addtimer(CALLBACK(src, PROC_REF(explode), cause_data), 5 SECONDS)
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), (src)), 5.5 SECONDS)
-
+
/obj/item/mortar_shell/proc/explode(flame_cause_data)
cell_explosion(src, 100, 25, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, flame_cause_data)
diff --git a/code/modules/cm_marines/equipment/mortar/mortars.dm b/code/modules/cm_marines/equipment/mortar/mortars.dm
index 161be4813832..96a3fc3059b3 100644
--- a/code/modules/cm_marines/equipment/mortar/mortars.dm
+++ b/code/modules/cm_marines/equipment/mortar/mortars.dm
@@ -408,6 +408,11 @@
desc = "A manual, crew-operated mortar system intended to rain down 80mm goodness on anything it's aimed at. Needs to be set down first"
icon = 'icons/obj/structures/mortar.dmi'
icon_state = "mortar_m402_carry"
+ item_state = "mortar_m402_carry"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
unacidable = TRUE
w_class = SIZE_HUGE //No dumping this in a backpack. Carry it, fatso
diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm
index 9f00aa3a659a..2dd2d548eb1c 100644
--- a/code/modules/paperwork/clipboard.dm
+++ b/code/modules/paperwork/clipboard.dm
@@ -3,6 +3,10 @@
icon = 'icons/obj/items/paper.dmi'
icon_state = "clipboard"
item_state = "clipboard"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
throwforce = 0
w_class = SIZE_SMALL
throw_speed = SPEED_VERY_FAST
diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm
index 0250b9c7d41e..797b3a05d9b4 100644
--- a/code/modules/paperwork/folders.dm
+++ b/code/modules/paperwork/folders.dm
@@ -3,6 +3,10 @@
desc = "A folder."
icon = 'icons/obj/items/paper.dmi'
icon_state = "folder"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
w_class = SIZE_SMALL
var/updateicon = 0//If they spawn with premade papers, update icon
diff --git a/code/modules/paperwork/notepad.dm b/code/modules/paperwork/notepad.dm
index bbfec5428830..39f2a8b9dad3 100644
--- a/code/modules/paperwork/notepad.dm
+++ b/code/modules/paperwork/notepad.dm
@@ -3,7 +3,10 @@
gender = PLURAL
icon = 'icons/obj/items/notepads.dmi'
icon_state = "notebook"
- item_state = "paper"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
throwforce = 0
w_class = SIZE_TINY
throw_range = 2
@@ -22,6 +25,7 @@
if(!cover_color)
cover_color = pick(cover_colors)
icon_state = initial(icon_state) + "_[cover_color]"
+ item_state = initial(icon_state) + "_[cover_color]"
for(var/i = 1 to paper_left)
new /obj/item/paper(src)
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index e1610fb3401a..6b69924475aa 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -11,6 +11,10 @@
icon = 'icons/obj/items/paper.dmi'
icon_state = "paper"
item_state = "paper"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
pickup_sound = 'sound/handling/paper_pickup.ogg'
drop_sound = 'sound/handling/paper_drop.ogg'
throwforce = 0
diff --git a/code/modules/projectiles/guns/flamer/flamer.dm b/code/modules/projectiles/guns/flamer/flamer.dm
index 64592044006f..95cf16df819b 100644
--- a/code/modules/projectiles/guns/flamer/flamer.dm
+++ b/code/modules/projectiles/guns/flamer/flamer.dm
@@ -68,11 +68,12 @@
else
. += "There's no tank in [src]!"
-/obj/item/weapon/gun/flamer/update_icon()
+/obj/item/weapon/gun/flamer/update_icon(mob/user)
..()
// Have to redo this here because we don't want the empty sprite when the tank is empty (just when it's not in the gun)
var/new_icon_state = base_gun_icon
+
if(has_empty_icon && !current_mag)
new_icon_state += "_e"
icon_state = new_icon_state
diff --git a/code/modules/projectiles/magazines/flamer.dm b/code/modules/projectiles/magazines/flamer.dm
index 2bdc0546c2c9..d806245c6295 100644
--- a/code/modules/projectiles/magazines/flamer.dm
+++ b/code/modules/projectiles/magazines/flamer.dm
@@ -8,6 +8,10 @@
icon = 'icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi'
icon_state = "flametank_custom"
item_state = "flametank"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
max_rounds = 100
default_ammo = /datum/ammo/flamethrower //doesn't actually need bullets. But we'll get null ammo error messages if we don't
w_class = SIZE_MEDIUM //making sure you can't sneak this onto your belt.
diff --git a/code/modules/projectiles/magazines/revolvers.dm b/code/modules/projectiles/magazines/revolvers.dm
index f4dfea4e20fb..ad8433fc5dfa 100644
--- a/code/modules/projectiles/magazines/revolvers.dm
+++ b/code/modules/projectiles/magazines/revolvers.dm
@@ -10,6 +10,10 @@
icon = 'icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi'
icon_state = "m44"
item_state = "generic_speedloader"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
w_class = SIZE_SMALL
max_rounds = 7
gun_type = /obj/item/weapon/gun/revolver/m44
diff --git a/code/modules/projectiles/magazines/rifles.dm b/code/modules/projectiles/magazines/rifles.dm
index 60be8ed6c1ad..93d855ff9bf1 100644
--- a/code/modules/projectiles/magazines/rifles.dm
+++ b/code/modules/projectiles/magazines/rifles.dm
@@ -11,6 +11,10 @@
icon = 'icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi'
icon_state = "m41a"
item_state = "generic_mag"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
w_class = SIZE_MEDIUM
default_ammo = /datum/ammo/bullet/rifle
max_rounds = 40
diff --git a/code/modules/projectiles/magazines/shotguns.dm b/code/modules/projectiles/magazines/shotguns.dm
index 61070690e9ac..11028d7b03c5 100644
--- a/code/modules/projectiles/magazines/shotguns.dm
+++ b/code/modules/projectiles/magazines/shotguns.dm
@@ -20,6 +20,10 @@ GLOBAL_LIST_INIT(shotgun_boxes_12g, list(
icon = 'icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi'
icon_state = "slugs"
item_state = "slugs"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
default_ammo = /datum/ammo/bullet/shotgun/slug
caliber = "12g"
gun_type = /obj/item/weapon/gun/shotgun
diff --git a/code/modules/projectiles/magazines/smgs.dm b/code/modules/projectiles/magazines/smgs.dm
index b89aee06f6be..176c2756988d 100644
--- a/code/modules/projectiles/magazines/smgs.dm
+++ b/code/modules/projectiles/magazines/smgs.dm
@@ -2,6 +2,10 @@
name = "\improper default SMG magazine"
desc = "A submachinegun magazine."
item_state = "generic_mag"
+ item_icons = list(
+ WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_1.dmi',
+ WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_1.dmi'
+ )
default_ammo = /datum/ammo/bullet/smg
max_rounds = 30
diff --git a/icons/mob/humans/onmob/back.dmi b/icons/mob/humans/onmob/back.dmi
index f7dffb722a89..bcc66457c954 100644
Binary files a/icons/mob/humans/onmob/back.dmi and b/icons/mob/humans/onmob/back.dmi differ
diff --git a/icons/mob/humans/onmob/head_0.dmi b/icons/mob/humans/onmob/head_0.dmi
index 862953a27be3..74563ea78bb6 100644
Binary files a/icons/mob/humans/onmob/head_0.dmi and b/icons/mob/humans/onmob/head_0.dmi differ
diff --git a/icons/mob/humans/onmob/items_lefthand_0.dmi b/icons/mob/humans/onmob/items_lefthand_0.dmi
index f949062be7b7..2e7d3bf0a681 100644
Binary files a/icons/mob/humans/onmob/items_lefthand_0.dmi and b/icons/mob/humans/onmob/items_lefthand_0.dmi differ
diff --git a/icons/mob/humans/onmob/items_lefthand_1.dmi b/icons/mob/humans/onmob/items_lefthand_1.dmi
index bc243d0228c3..9d035c23ebf7 100644
Binary files a/icons/mob/humans/onmob/items_lefthand_1.dmi and b/icons/mob/humans/onmob/items_lefthand_1.dmi differ
diff --git a/icons/mob/humans/onmob/items_righthand_0.dmi b/icons/mob/humans/onmob/items_righthand_0.dmi
index 1f70077321ee..d0b52f7448b6 100644
Binary files a/icons/mob/humans/onmob/items_righthand_0.dmi and b/icons/mob/humans/onmob/items_righthand_0.dmi differ
diff --git a/icons/mob/humans/onmob/items_righthand_1.dmi b/icons/mob/humans/onmob/items_righthand_1.dmi
index 29f8cd8e1043..aa3072ea3676 100644
Binary files a/icons/mob/humans/onmob/items_righthand_1.dmi and b/icons/mob/humans/onmob/items_righthand_1.dmi differ
diff --git a/icons/obj/items/books.dmi b/icons/obj/items/books.dmi
index 9b53dc652807..0a7e26b7db74 100644
Binary files a/icons/obj/items/books.dmi and b/icons/obj/items/books.dmi differ
diff --git a/icons/obj/items/items.dmi b/icons/obj/items/items.dmi
index 81a0e526f1b7..398ad5d683a0 100644
Binary files a/icons/obj/items/items.dmi and b/icons/obj/items/items.dmi differ
diff --git a/icons/obj/items/notepads.dmi b/icons/obj/items/notepads.dmi
index 007be4dc0e71..286037e21a96 100644
Binary files a/icons/obj/items/notepads.dmi and b/icons/obj/items/notepads.dmi differ
diff --git a/icons/obj/items/paper.dmi b/icons/obj/items/paper.dmi
index b15d4be6076d..ee6cbcb05f92 100644
Binary files a/icons/obj/items/paper.dmi and b/icons/obj/items/paper.dmi differ