diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm
index 1b3348aca73..a90dc194025 100644
--- a/code/game/machinery/deployable.dm
+++ b/code/game/machinery/deployable.dm
@@ -218,6 +218,7 @@
desc = "A folded and unloaded heavy machine gun, ready to be deployed and used."
icon = 'icons/obj/weapons/turrets.dmi'
icon_state = "folded_hmg"
+ inhand_icon_state = "folded_hmg"
max_integrity = 250
w_class = WEIGHT_CLASS_BULKY
slot_flags = ITEM_SLOT_BACK
diff --git a/code/game/machinery/newscaster/newspaper.dm b/code/game/machinery/newscaster/newspaper.dm
index ec4d1a35ba6..2571117a409 100644
--- a/code/game/machinery/newscaster/newspaper.dm
+++ b/code/game/machinery/newscaster/newspaper.dm
@@ -3,6 +3,7 @@
desc = "An issue of The Griffon, the newspaper circulating aboard Nanotrasen Space Stations."
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "newspaper"
+ inhand_icon_state = "newspaper"
lefthand_file = 'icons/mob/inhands/items/books_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items/books_righthand.dmi'
w_class = WEIGHT_CLASS_SMALL
diff --git a/code/game/machinery/telecomms/machines/message_server.dm b/code/game/machinery/telecomms/machines/message_server.dm
index ef10ad4c7c8..f578f5e7ece 100644
--- a/code/game/machinery/telecomms/machines/message_server.dm
+++ b/code/game/machinery/telecomms/machines/message_server.dm
@@ -60,6 +60,7 @@
desc = "A strange relic, capable of recording data on extradimensional vertices. It lives inside the blackbox recorder for safe keeping."
icon = 'icons/obj/stationobjs.dmi'
icon_state = "blackcube"
+ inhand_icon_state = "blackcube"
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
w_class = WEIGHT_CLASS_BULKY
diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm
index ac6413c2eb5..79596211dce 100644
--- a/code/game/objects/items/blueprints.dm
+++ b/code/game/objects/items/blueprints.dm
@@ -7,6 +7,7 @@
name = "area modification item"
icon = 'icons/obj/weapons/items_and_weapons.dmi'
icon_state = "blueprints"
+ inhand_icon_state = "blueprints"
attack_verb_continuous = list("attacks", "baps", "hits")
attack_verb_simple = list("attack", "bap", "hit")
var/fluffnotice = "Nobody's gonna read this stuff!"
diff --git a/code/game/objects/items/bouquets.dm b/code/game/objects/items/bouquets.dm
index c1f4188733b..8a01e2a4602 100644
--- a/code/game/objects/items/bouquets.dm
+++ b/code/game/objects/items/bouquets.dm
@@ -19,3 +19,4 @@
name = "rose bouquet"
desc = "A bouquet of roses. A bundle of love."
icon_state = "rosebouquet"
+ inhand_icon_state = "rosebouquet"
diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm
index 1559db65f7f..7fe6479e60c 100644
--- a/code/game/objects/items/clown_items.dm
+++ b/code/game/objects/items/clown_items.dm
@@ -16,6 +16,7 @@
gender = PLURAL
icon = 'icons/obj/weapons/items_and_weapons.dmi'
icon_state = "soap"
+ inhand_icon_state = "soap"
worn_icon_state = "soap"
lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi'
@@ -57,6 +58,7 @@
desc = "A homemade bar of soap. Smells of... well...."
grind_results = list(/datum/reagent/liquidgibs = 9, /datum/reagent/lye = 9)
icon_state = "soapgibs"
+ inhand_icon_state = "soapgibs"
worn_icon_state = "soapgibs"
cleanspeed = 3 SECONDS // faster than base soap to reward chemists for going to the effort
@@ -64,6 +66,7 @@
desc = "A heavy duty bar of Nanotrasen brand soap. Smells of plasma."
grind_results = list(/datum/reagent/toxin/plasma = 10, /datum/reagent/lye = 10)
icon_state = "soapnt"
+ inhand_icon_state = "soapnt"
worn_icon_state = "soapnt"
cleanspeed = 2.8 SECONDS //janitor gets this
uses = 300
@@ -74,6 +77,7 @@
desc = "A deluxe Waffle Co. brand bar of soap. Smells of high-class luxury."
grind_results = list(/datum/reagent/consumable/aloejuice = 10, /datum/reagent/lye = 10)
icon_state = "soapdeluxe"
+ inhand_icon_state = "soapdeluxe"
worn_icon_state = "soapdeluxe"
cleanspeed = 2 SECONDS //captain gets one of these
@@ -81,6 +85,7 @@
desc = "An untrustworthy bar of soap made of strong chemical agents that dissolve blood faster."
grind_results = list(/datum/reagent/toxin/acid = 10, /datum/reagent/lye = 10)
icon_state = "soapsyndie"
+ inhand_icon_state = "soapsyndie"
worn_icon_state = "soapsyndie"
cleanspeed = 0.5 SECONDS //faster than mops so it's useful for traitors who want to clean crime scenes
@@ -89,6 +94,7 @@
desc = "The most advanced soap known to mankind. The beginning of the end for germs."
grind_results = list(/datum/reagent/consumable/potato_juice = 9, /datum/reagent/consumable/ethanol/lizardwine = 9, /datum/reagent/monkey_powder = 9, /datum/reagent/drug/krokodil = 9, /datum/reagent/toxin/acid/nitracid = 9, /datum/reagent/baldium = 9, /datum/reagent/consumable/ethanol/hooch = 9, /datum/reagent/bluespace = 9, /datum/reagent/drug/pumpup = 9, /datum/reagent/consumable/space_cola = 9)
icon_state = "soapomega"
+ inhand_icon_state = "soapomega"
worn_icon_state = "soapomega"
cleanspeed = 0.3 SECONDS //Only the truest of mind soul and body get one of these
uses = 800 //In the Greek numeric system, Omega has a value of 800
diff --git a/code/game/objects/items/cosmetics.dm b/code/game/objects/items/cosmetics.dm
index 731dc548660..dae8eab25d5 100644
--- a/code/game/objects/items/cosmetics.dm
+++ b/code/game/objects/items/cosmetics.dm
@@ -4,12 +4,38 @@
desc = "A generic brand of lipstick."
icon = 'icons/obj/weapons/items_and_weapons.dmi'
icon_state = "lipstick"
+ inhand_icon_state = "lipstick"
w_class = WEIGHT_CLASS_TINY
var/colour = "red"
var/open = FALSE
/// A trait that's applied while someone has this lipstick applied, and is removed when the lipstick is removed
var/lipstick_trait
+/obj/item/lipstick/Initialize(mapload)
+ . = ..()
+ AddElement(/datum/element/update_icon_updates_onmob)
+ update_appearance(UPDATE_ICON)
+
+/obj/item/lipstick/vv_edit_var(vname, vval)
+ . = ..()
+ if(vname == NAMEOF(src, open))
+ update_appearance(UPDATE_ICON)
+
+/obj/item/lipstick/update_icon_state()
+ icon_state = "lipstick[open ? "_uncap" : null]"
+ inhand_icon_state = "lipstick[open ? "open" : null]"
+ return ..()
+
+
+/obj/item/lipstick/update_overlays()
+ . = ..()
+ if(!open)
+ return
+ var/mutable_appearance/colored_overlay = mutable_appearance(icon, "lipstick_uncap_color")
+ colored_overlay.color = colour
+ . += colored_overlay
+
+
/obj/item/lipstick/purple
name = "purple lipstick"
colour = "purple"
@@ -39,16 +65,9 @@
name = "[colour] lipstick"
/obj/item/lipstick/attack_self(mob/user)
- cut_overlays()
- to_chat(user, span_notice("You twist \the [src] [open ? "closed" : "open"]."))
+ to_chat(user, span_notice("You twist [src] [open ? "closed" : "open"]."))
open = !open
- if(open)
- var/mutable_appearance/colored_overlay = mutable_appearance(icon, "lipstick_uncap_color")
- colored_overlay.color = colour
- icon_state = "lipstick_uncap"
- add_overlay(colored_overlay)
- else
- icon_state = "lipstick"
+ update_appearance(UPDATE_ICON)
/obj/item/lipstick/attack(mob/M, mob/user)
if(!open || !ismob(M))
@@ -106,6 +125,7 @@
desc = "The latest and greatest power razor born from the science of shaving."
icon = 'icons/obj/weapons/items_and_weapons.dmi'
icon_state = "razor"
+ inhand_icon_state = "razor"
flags_1 = CONDUCT_1
w_class = WEIGHT_CLASS_TINY
diff --git a/code/game/objects/items/door_seal.dm b/code/game/objects/items/door_seal.dm
index 8619d19fe41..6074fb31d21 100644
--- a/code/game/objects/items/door_seal.dm
+++ b/code/game/objects/items/door_seal.dm
@@ -3,6 +3,7 @@
desc = "A brace used to seal and reinforce an airlock. Useful for making areas inaccessible to those without opposable thumbs."
icon = 'icons/obj/weapons/items_and_weapons.dmi'
icon_state = "pneumatic_seal"
+ inhand_icon_state = "pneumatic_seal"
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
flags_1 = CONDUCT_1
diff --git a/code/game/objects/items/food/burgers.dm b/code/game/objects/items/food/burgers.dm
index 304ad4b9e5c..2fd8c41a64f 100644
--- a/code/game/objects/items/food/burgers.dm
+++ b/code/game/objects/items/food/burgers.dm
@@ -1,6 +1,7 @@
/obj/item/food/burger
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "hburger"
+ inhand_icon_state = "burger"
bite_consumption = 3
food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("bun" = 2, "beef patty" = 4)
diff --git a/code/game/objects/items/food/egg.dm b/code/game/objects/items/food/egg.dm
index 94c1897ad1b..4c3a8e8547f 100644
--- a/code/game/objects/items/food/egg.dm
+++ b/code/game/objects/items/food/egg.dm
@@ -17,6 +17,7 @@
desc = "An egg!"
icon = 'icons/obj/food/egg.dmi'
icon_state = "egg"
+ inhand_icon_state = "egg"
food_reagents = list(/datum/reagent/consumable/eggyolk = 2, /datum/reagent/consumable/eggwhite = 4)
microwaved_type = /obj/item/food/boiledegg
foodtypes = MEAT | RAW
@@ -110,27 +111,32 @@
/obj/item/food/egg/blue
icon_state = "egg-blue"
-
+ inhand_icon_state = "egg-blue"
/obj/item/food/egg/green
icon_state = "egg-green"
-
+ inhand_icon_state = "egg-green"
/obj/item/food/egg/mime
icon_state = "egg-mime"
-
+ inhand_icon_state = "egg-mime"
/obj/item/food/egg/orange
icon_state = "egg-orange"
+ inhand_icon_state = "egg-orange"
/obj/item/food/egg/purple
icon_state = "egg-purple"
+ inhand_icon_state = "egg-purple"
/obj/item/food/egg/rainbow
icon_state = "egg-rainbow"
+ inhand_icon_state = "egg-rainbow"
/obj/item/food/egg/red
icon_state = "egg-red"
+ inhand_icon_state = "egg-red"
/obj/item/food/egg/yellow
icon_state = "egg-yellow"
+ inhand_icon_state = "egg-yellow"
/obj/item/food/friedegg
name = "fried egg"
@@ -164,6 +170,7 @@
desc = "A hard boiled egg."
icon = 'icons/obj/food/egg.dmi'
icon_state = "egg"
+ inhand_icon_state = "egg"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 3, /datum/reagent/consumable/nutriment/vitamin = 1)
tastes = list("egg" = 1)
foodtypes = MEAT | BREAKFAST
diff --git a/code/game/objects/items/food/misc.dm b/code/game/objects/items/food/misc.dm
index 8ee5e68d57c..cc93f37d14a 100644
--- a/code/game/objects/items/food/misc.dm
+++ b/code/game/objects/items/food/misc.dm
@@ -350,6 +350,7 @@
name = "Powercrepe"
desc = "With great power, comes great crepes. It looks like a pancake filled with jelly but packs quite a punch."
icon_state = "powercrepe"
+ inhand_icon_state = "powercrepe"
food_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/consumable/cherryjelly = 5)
force = 30
throwforce = 15
diff --git a/code/game/objects/items/food/pie.dm b/code/game/objects/items/food/pie.dm
index 234865cac72..a6870ac81af 100644
--- a/code/game/objects/items/food/pie.dm
+++ b/code/game/objects/items/food/pie.dm
@@ -1,6 +1,7 @@
/obj/item/food/pie
icon = 'icons/obj/food/piecake.dmi'
+ inhand_icon_state = "pie"
bite_consumption = 3
w_class = WEIGHT_CLASS_NORMAL
diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm
index 5c068e780e5..f3935a17cca 100644
--- a/code/game/objects/items/melee/energy.dm
+++ b/code/game/objects/items/melee/energy.dm
@@ -225,7 +225,7 @@
// The colored energy swords we all know and love.
/obj/item/melee/energy/sword/saber
- /// Assoc list of all possible saber colors to color define.
+ /// Assoc list of all possible saber colors to color define. If you add a new color, make sure to update /obj/item/toy/sword too!
var/list/possible_sword_colors = list(
"red" = COLOR_SOFT_RED,
"blue" = LIGHT_COLOR_LIGHT_CYAN,
diff --git a/code/game/objects/items/signs.dm b/code/game/objects/items/signs.dm
index d4af671465a..2d16aa3aa51 100644
--- a/code/game/objects/items/signs.dm
+++ b/code/game/objects/items/signs.dm
@@ -1,5 +1,6 @@
/obj/item/picket_sign
icon_state = "picket"
+ inhand_icon_state = "picket"
name = "blank picket sign"
desc = "It's blank."
force = 5
diff --git a/code/game/objects/items/stacks/wrap.dm b/code/game/objects/items/stacks/wrap.dm
index b009c0f2d68..eaf5dab6d9b 100644
--- a/code/game/objects/items/stacks/wrap.dm
+++ b/code/game/objects/items/stacks/wrap.dm
@@ -9,6 +9,7 @@
desc = "Wrap packages with this festive paper to make gifts."
icon = 'icons/obj/stack_objects.dmi'
icon_state = "wrap_paper"
+ inhand_icon_state = "wrap_paper"
greyscale_config = /datum/greyscale_config/wrap_paper
item_flags = NOBLUDGEON
amount = 25
@@ -194,6 +195,7 @@
desc = "A tube... of cardboard."
icon = 'icons/obj/stack_objects.dmi'
icon_state = "c_tube"
+ inhand_icon_state = "c_tube"
throwforce = 0
w_class = WEIGHT_CLASS_TINY
throw_speed = 3
diff --git a/code/game/objects/items/storage/briefcase.dm b/code/game/objects/items/storage/briefcase.dm
index 63188876bc0..2c61cb9199a 100644
--- a/code/game/objects/items/storage/briefcase.dm
+++ b/code/game/objects/items/storage/briefcase.dm
@@ -2,6 +2,7 @@
name = "briefcase"
desc = "It's made of AUTHENTIC faux-leather and has a price-tag still attached. Its owner must be a real professional."
icon_state = "briefcase"
+ inhand_icon_state = "briefcase"
lefthand_file = 'icons/mob/inhands/equipment/briefcase_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/briefcase_righthand.dmi'
flags_1 = CONDUCT_1
diff --git a/code/game/objects/items/storage/medkit.dm b/code/game/objects/items/storage/medkit.dm
index cc120effe46..cb7ccd4edf5 100644
--- a/code/game/objects/items/storage/medkit.dm
+++ b/code/game/objects/items/storage/medkit.dm
@@ -12,6 +12,7 @@
name = "medkit"
desc = "It's an emergency medical kit for those serious boo-boos."
icon_state = "medkit"
+ inhand_icon_state = "medkit"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
throw_speed = 3
diff --git a/code/game/objects/items/tanks/tank_types.dm b/code/game/objects/items/tanks/tank_types.dm
index cd9eb15add2..4e7ed2205f2 100644
--- a/code/game/objects/items/tanks/tank_types.dm
+++ b/code/game/objects/items/tanks/tank_types.dm
@@ -15,6 +15,7 @@
name = "oxygen tank"
desc = "A tank of oxygen, this one is blue."
icon_state = "oxygen"
+ inhand_icon_state = "oxygen_tank"
tank_holder_icon_state = "holder_oxygen"
distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE
force = 10
@@ -29,12 +30,14 @@
/obj/item/tank/internals/oxygen/yellow
desc = "A tank of oxygen, this one is yellow."
icon_state = "oxygen_f"
+ inhand_icon_state = "oxygen_f_tank"
tank_holder_icon_state = "holder_oxygen_f"
dog_fashion = null
/obj/item/tank/internals/oxygen/red
desc = "A tank of oxygen, this one is red."
icon_state = "oxygen_fr"
+ inhand_icon_state = "oxygen_fr_tank"
tank_holder_icon_state = "holder_oxygen_fr"
dog_fashion = null
@@ -64,6 +67,7 @@
name = "plasma tank"
desc = "Contains dangerous plasma. Do not inhale. Warning: extremely flammable."
icon_state = "plasma"
+ inhand_icon_state = "plasma_tank"
worn_icon_state = "plasmatank"
tank_holder_icon_state = null
flags_1 = CONDUCT_1
@@ -144,6 +148,7 @@
name = "emergency oxygen tank"
desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it."
icon_state = "emergency"
+ inhand_icon_state = "emergency_tank"
worn_icon_state = "emergency"
tank_holder_icon_state = "holder_emergency"
worn_icon = null
@@ -166,6 +171,7 @@
/obj/item/tank/internals/emergency_oxygen/engi
name = "extended-capacity emergency oxygen tank"
icon_state = "emergency_engi"
+ inhand_icon_state = "emergency_engi_tank"
worn_icon_state = "emergency_engi"
tank_holder_icon_state = "holder_emergency_engi"
worn_icon = null
@@ -192,6 +198,7 @@
name = "gas tank"
desc = "A generic tank used for storing and transporting gasses. Can be used for internals."
icon_state = "generic"
+ inhand_icon_state = "generic_tank"
distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE
force = 10
dog_fashion = /datum/dog_fashion/back
diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm
index 1a88c4d9744..a034883b8ea 100644
--- a/code/game/objects/items/tanks/tanks.dm
+++ b/code/game/objects/items/tanks/tanks.dm
@@ -11,6 +11,7 @@
name = "tank"
icon = 'icons/obj/atmospherics/tank.dmi'
icon_state = "generic"
+ inhand_icon_state = "generic_tank"
lefthand_file = 'icons/mob/inhands/equipment/tanks_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tanks_righthand.dmi'
flags_1 = CONDUCT_1
diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm
index c45fbb386b1..3c9cb9bc958 100644
--- a/code/game/objects/items/theft_tools.dm
+++ b/code/game/objects/items/theft_tools.dm
@@ -288,6 +288,10 @@
damtype = BURN
var/obj/item/nuke_core/supermatter_sliver/sliver
+/obj/item/hemostat/supermatter/Initialize(mapload)
+ . = ..()
+ AddElement(/datum/element/update_icon_updates_onmob)
+
/obj/item/hemostat/supermatter/Destroy()
QDEL_NULL(sliver)
return ..()
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 9b34c9a8ff9..7ceaca8e5a1 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -381,6 +381,7 @@
name = "toy sword"
desc = "A cheap, plastic replica of an energy sword. Realistic sounds! Ages 8 and up."
icon_state = "e_sword"
+ inhand_icon_state = "e_sword"
icon = 'icons/obj/weapons/transforming_energy.dmi'
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
@@ -399,6 +400,7 @@
hitsound_on = hitsound, \
clumsy_check = FALSE)
RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, .proc/on_transform)
+ AddElement(/datum/element/update_icon_updates_onmob)
/*
* Signal proc for [COMSIG_TRANSFORMING_ON_TRANSFORM].
@@ -407,14 +409,34 @@
*/
/obj/item/toy/sword/proc/on_transform(obj/item/source, mob/user, active)
SIGNAL_HANDLER
-
- if(active)
- icon_state = "[icon_state]_[saber_color]"
-
balloon_alert(user, "[active ? "flicked out":"pushed in"] [src]")
playsound(user ? user : src, active ? 'sound/weapons/saberon.ogg' : 'sound/weapons/saberoff.ogg', 20, TRUE)
+ update_appearance(UPDATE_ICON)
return COMPONENT_NO_DEFAULT_MESSAGE
+/obj/item/toy/sword/vv_edit_var(vname, vval)
+ . = ..()
+ if(vname == NAMEOF(src, saber_color))
+ update_appearance(UPDATE_ICON)
+
+/obj/item/toy/sword/update_icon_state()
+ . = ..()
+ var/datum/component/transforming/transforming_comp = GetComponent(/datum/component/transforming)
+ var/active = transforming_comp?.active
+ var/last_part = active ? "_on[saber_color ? "_[saber_color]" : null]" : null
+ icon_state = "[initial(icon_state)][last_part]"
+ inhand_icon_state = "[initial(inhand_icon_state)][last_part]"
+
+/obj/item/toy/sword/multitool_act(mob/living/user, obj/item/tool)
+ if(hacked)
+ to_chat(user, span_warning("It's already fabulous!"))
+ return
+ hacked = TRUE
+ saber_color = "rainbow"
+ to_chat(user, span_warning("RNBW_ENGAGE"))
+ update_appearance(UPDATE_ICON)
+
+
// Copied from /obj/item/melee/energy/sword/attackby
/obj/item/toy/sword/attackby(obj/item/weapon, mob/living/user, params)
if(istype(weapon, /obj/item/toy/sword))
@@ -434,13 +456,6 @@
qdel(weapon)
qdel(src)
user.put_in_hands(new_saber)
- else if(weapon.tool_behaviour == TOOL_MULTITOOL)
- if(hacked)
- to_chat(user, span_warning("It's already fabulous!"))
- else
- hacked = TRUE
- saber_color = "rainbow"
- to_chat(user, span_warning("RNBW_ENGAGE"))
else
return ..()
@@ -768,6 +783,7 @@
desc = "Relive the excitement of a meteor shower! SweetMeat-eor Co. is not responsible for any injuries, headaches or hearing loss caused by Mini-Meteor."
icon = 'icons/obj/toys/toy.dmi'
icon_state = "minimeteor"
+ inhand_icon_state = "minimeteor"
w_class = WEIGHT_CLASS_SMALL
/obj/item/toy/minimeteor/emag_act(mob/user)
diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm
index 703c02e2dee..3907acd1036 100644
--- a/code/game/objects/items/weaponry.dm
+++ b/code/game/objects/items/weaponry.dm
@@ -494,6 +494,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
desc = "Apparently a staff used by the wizard."
icon = 'icons/obj/wizard.dmi'
icon_state = "staff"
+ inhand_icon_state = "staff"
lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi'
force = 3
@@ -511,6 +512,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
desc = "Used for sweeping, and flying into the night while cackling. Black cat not included."
icon = 'icons/obj/wizard.dmi'
icon_state = "broom"
+ inhand_icon_state = "broom"
resistance_flags = FLAMMABLE
/obj/item/staff/stick
diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm
index b9e40dabd60..5726d7a5dc5 100644
--- a/code/modules/hydroponics/grown/flowers.dm
+++ b/code/modules/hydroponics/grown/flowers.dm
@@ -179,6 +179,7 @@
name = "sunflower"
desc = "It's beautiful! A certain person might beat you to death if you trample these."
icon_state = "sunflower"
+ inhand_icon_state = "sunflower"
lefthand_file = 'icons/mob/inhands/weapons/plants_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/plants_righthand.dmi'
foodtypes = VEGETABLES
@@ -217,6 +218,7 @@
name = "moonflower"
desc = "Store in a location at least 50 yards away from werewolves."
icon_state = "moonflower"
+ inhand_icon_state = "moonflower"
slot_flags = ITEM_SLOT_HEAD
alternate_worn_layer = ABOVE_BODY_FRONT_HEAD_LAYER
distill_reagent = /datum/reagent/consumable/ethanol/absinthe //It's made from flowers.
@@ -283,6 +285,7 @@
desc = "The classic fleur d'amour - flower of love. Watch for its thorns!"
base_icon_state = "rose"
icon_state = "rose"
+ inhand_icon_state = "rose"
worn_icon_state = "rose"
lefthand_file = 'icons/mob/inhands/items/food_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items/food_righthand.dmi'
diff --git a/code/modules/hydroponics/grown/weeds/nettle.dm b/code/modules/hydroponics/grown/weeds/nettle.dm
index 32b2ba739f5..e0326db78a2 100644
--- a/code/modules/hydroponics/grown/weeds/nettle.dm
+++ b/code/modules/hydroponics/grown/weeds/nettle.dm
@@ -37,6 +37,7 @@
desc = "It's probably not wise to touch it with bare hands..."
icon = 'icons/obj/weapons/items_and_weapons.dmi'
icon_state = "nettle"
+ inhand_icon_state = "nettle"
bite_consumption_mod = 2
lefthand_file = 'icons/mob/inhands/weapons/plants_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/plants_righthand.dmi'
@@ -59,6 +60,7 @@
name = "\improper deathnettle"
desc = "The glowing nettle incites rage in you just from looking at it!"
icon_state = "deathnettle"
+ inhand_icon_state = "deathnettle"
bite_consumption_mod = 4 // I guess if you really wanted to
force = 30
wound_bonus = CANT_WOUND
diff --git a/code/modules/mapfluff/ruins/lavalandruin_code/biodome_winter.dm b/code/modules/mapfluff/ruins/lavalandruin_code/biodome_winter.dm
index 395c529debd..5aac6cf3180 100644
--- a/code/modules/mapfluff/ruins/lavalandruin_code/biodome_winter.dm
+++ b/code/modules/mapfluff/ruins/lavalandruin_code/biodome_winter.dm
@@ -8,6 +8,7 @@
Somehow, it does not transfer its freezing temperatures until it comes into contact with a living creature."
icon = 'icons/obj/lavaland/artefacts.dmi'
icon_state = "freeze_cube"
+ inhand_icon_state = "freeze_cube"
throwforce = 10
damtype = BURN
var/cooldown_time = 5 SECONDS
diff --git a/code/modules/projectiles/guns/ballistic/bow.dm b/code/modules/projectiles/guns/ballistic/bow.dm
index 4b71292e44e..4795c2eda17 100644
--- a/code/modules/projectiles/guns/ballistic/bow.dm
+++ b/code/modules/projectiles/guns/ballistic/bow.dm
@@ -68,6 +68,7 @@
name = "arrow"
desc = "Stabby Stabman!"
icon_state = "arrow"
+ inhand_icon_state = "arrow"
flags_1 = NONE
throwforce = 1
projectile_type = /obj/projectile/bullet/reusable/arrow
diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm
index a0fc5ff7e7f..486da26b9a4 100644
--- a/code/modules/reagents/reagent_containers/dropper.dm
+++ b/code/modules/reagents/reagent_containers/dropper.dm
@@ -3,6 +3,7 @@
desc = "A dropper. Holds up to 5 units."
icon = 'icons/obj/medical/chemical.dmi'
icon_state = "dropper0"
+ inhand_icon_state = "dropper"
worn_icon_state = "pen"
amount_per_transfer_from_this = 5
possible_transfer_amounts = list(1, 2, 3, 4, 5)
diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm
index e8d28714909..eb94290471e 100644
--- a/code/modules/recycling/sortingmachinery.dm
+++ b/code/modules/recycling/sortingmachinery.dm
@@ -1,5 +1,6 @@
/obj/item/delivery
icon = 'icons/obj/storage/storage.dmi'
+ inhand_icon_state = "deliverypackage"
var/giftwrapped = 0
var/sort_tag = 0
var/obj/item/paper/note
diff --git a/icons/mob/inhands/equipment/tanks_lefthand.dmi b/icons/mob/inhands/equipment/tanks_lefthand.dmi
index fdb9bcbacfd..300d3c4740d 100644
Binary files a/icons/mob/inhands/equipment/tanks_lefthand.dmi and b/icons/mob/inhands/equipment/tanks_lefthand.dmi differ
diff --git a/icons/mob/inhands/equipment/tanks_righthand.dmi b/icons/mob/inhands/equipment/tanks_righthand.dmi
index bb098e73af3..3b19be62598 100644
Binary files a/icons/mob/inhands/equipment/tanks_righthand.dmi and b/icons/mob/inhands/equipment/tanks_righthand.dmi differ