diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index cef464bf17b..d714298e1c0 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -236,3 +236,36 @@ #define AMBIENT_OCCLUSION filter(type="drop_shadow", x=0, y=-2, size=4, color="#04080FAA") /// Icon filter that creates gaussian blur #define GAUSSIAN_BLUR(filter_size) filter(type="blur", size=filter_size) + +#define CABLE_COLOR_BLUE "blue" + #define CABLE_HEX_COLOR_BLUE COLOR_STRONG_BLUE +#define CABLE_COLOR_BROWN "brown" + #define CABLE_HEX_COLOR_BROWN COLOR_ORANGE_BROWN +#define CABLE_COLOR_CYAN "cyan" + #define CABLE_HEX_COLOR_CYAN COLOR_CYAN +#define CABLE_COLOR_GREEN "green" + #define CABLE_HEX_COLOR_GREEN COLOR_DARK_LIME +#define CABLE_COLOR_ORANGE "orange" + #define CABLE_HEX_COLOR_ORANGE COLOR_MOSTLY_PURE_ORANGE +#define CABLE_COLOR_PINK "pink" + #define CABLE_HEX_COLOR_PINK COLOR_LIGHT_PINK +#define CABLE_COLOR_RED "red" + #define CABLE_HEX_COLOR_RED COLOR_RED +#define CABLE_COLOR_WHITE "white" + #define CABLE_HEX_COLOR_WHITE COLOR_WHITE +#define CABLE_COLOR_YELLOW "yellow" + #define CABLE_HEX_COLOR_YELLOW COLOR_YELLOW + + + +GLOBAL_LIST_INIT(cable_colors, list( + CABLE_COLOR_BLUE = CABLE_HEX_COLOR_BLUE, + CABLE_COLOR_CYAN = CABLE_HEX_COLOR_CYAN, + CABLE_COLOR_GREEN = CABLE_HEX_COLOR_GREEN, + CABLE_COLOR_ORANGE = CABLE_HEX_COLOR_ORANGE, + CABLE_COLOR_PINK = CABLE_HEX_COLOR_PINK, + CABLE_COLOR_RED = CABLE_HEX_COLOR_RED, + CABLE_COLOR_WHITE = CABLE_HEX_COLOR_WHITE, + CABLE_COLOR_YELLOW = CABLE_HEX_COLOR_YELLOW, + CABLE_COLOR_BROWN = CABLE_HEX_COLOR_BROWN + )) diff --git a/code/datums/components/transforming.dm b/code/datums/components/transforming.dm index a3217395582..218127b30e4 100644 --- a/code/datums/components/transforming.dm +++ b/code/datums/components/transforming.dm @@ -140,7 +140,8 @@ * user - the mob transforming the item */ /datum/component/transforming/proc/default_transform_message(obj/item/source, mob/user) - source.balloon_alert(user, "[active ? "enabled" : "disabled"] [source]") + if(user) + source.balloon_alert(user, "[active ? "enabled" : "disabled"] [source]") playsound(user ? user : source.loc, 'sound/weapons/batonextend.ogg', 50, TRUE) /* @@ -180,6 +181,10 @@ source.hitsound = hitsound_on source.w_class = w_class_on source.icon_state = "[source.icon_state]_on" + source.inhand_icon_state = "[source.inhand_icon_state]_on" + if(ismob(source.loc)) + var/mob/loc_mob = source.loc + loc_mob.update_held_items() /* * Set our transformed item into its inactive state. @@ -205,6 +210,10 @@ source.hitsound = initial(source.hitsound) source.w_class = initial(source.w_class) source.icon_state = initial(source.icon_state) + source.inhand_icon_state = initial(source.inhand_icon_state) + if(ismob(source.loc)) + var/mob/loc_mob = source.loc + loc_mob.update_held_items() /* * If [clumsy_check] is set to TRUE, attempt to cause a side effect for clumsy people activating this item. diff --git a/code/datums/greyscale/config_types/greyscale_configs.dm b/code/datums/greyscale/config_types/greyscale_configs.dm index 5825d5be73a..7892c1b8791 100644 --- a/code/datums/greyscale/config_types/greyscale_configs.dm +++ b/code/datums/greyscale/config_types/greyscale_configs.dm @@ -47,6 +47,21 @@ icon_file = 'icons/obj/tools.dmi' json_config = 'code/datums/greyscale/json_configs/wirecutters.json' +/datum/greyscale_config/wirecutters_belt_overlay + name = "Belt Worn Icon" + icon_file = 'icons/obj/clothing/belt_overlays.dmi' + json_config = 'code/datums/greyscale/json_configs/wirecutters.json' + +/datum/greyscale_config/wirecutter_inhand_left + name = "Held Wirecutter, Left" + icon_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' + json_config = 'code/datums/greyscale/json_configs/wirecutter_worn.json' + +/datum/greyscale_config/wirecutter_inhand_right + name = "Held Wirecutter, Right" + icon_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' + json_config = 'code/datums/greyscale/json_configs/wirecutter_worn.json' + /datum/greyscale_config/screwdriver name = "Screwdriver" icon_file = 'icons/obj/tools.dmi' @@ -67,6 +82,16 @@ icon_file = 'icons/obj/clothing/belt_overlays.dmi' json_config = 'code/datums/greyscale/json_configs/screwdriver_worn.json' +/datum/greyscale_config/gloves_inhand_left + name = "Held Gloves, Left" + icon_file = 'icons/mob/inhands/clothing/gloves_lefthand.dmi' + json_config = 'code/datums/greyscale/json_configs/gloves_inhand.json' + +/datum/greyscale_config/gloves_inhand_right + name = "Held Gloves, Right" + icon_file = 'icons/mob/inhands/clothing/gloves_righthand.dmi' + json_config = 'code/datums/greyscale/json_configs/gloves_inhand.json' + /datum/greyscale_config/jumpsuit name = "Jumpsuit" icon_file = 'icons/obj/clothing/under/color.dmi' @@ -154,6 +179,16 @@ icon_file = 'icons/mob/clothing/feet.dmi' json_config = 'code/datums/greyscale/json_configs/sneakers_worn.json' +/datum/greyscale_config/sneakers_inhand_left + name = "Held Sneakers, Left" + icon_file = 'icons/mob/inhands/clothing/shoes_lefthand.dmi' + json_config = 'code/datums/greyscale/json_configs/sneakers_inhand.json' + +/datum/greyscale_config/sneakers_inhand_right + name = "Held Sneakers, Right" + icon_file = 'icons/mob/inhands/clothing/shoes_righthand.dmi' + json_config = 'code/datums/greyscale/json_configs/sneakers_inhand.json' + /datum/greyscale_config/sneakers_orange name = "Orange Sneakers" icon_file = 'icons/obj/clothing/shoes.dmi' @@ -164,6 +199,16 @@ icon_file = 'icons/mob/clothing/feet.dmi' json_config = 'code/datums/greyscale/json_configs/sneakers_orange_worn.json' +/datum/greyscale_config/sneakers_orange_inhand_left + name = "Held Orange Sneakers, Left" + icon_file = 'icons/mob/inhands/clothing/shoes_lefthand.dmi' + json_config = 'code/datums/greyscale/json_configs/sneakers_orange_inhand.json' + +/datum/greyscale_config/sneakers_orange_inhand_right + name = "Held Orange Sneakers, Right" + icon_file = 'icons/mob/inhands/clothing/shoes_righthand.dmi' + json_config = 'code/datums/greyscale/json_configs/sneakers_orange_inhand.json' + /datum/greyscale_config/sneakers_wheelys name = "Wheeled Sneakers" icon_file = 'icons/obj/clothing/shoes.dmi' @@ -478,61 +523,61 @@ icon_file = 'icons/obj/clothing/masks.dmi' json_config = 'code/datums/greyscale/json_configs/bandana.json' -/datum/greyscale_config/bandana_up - name = "Bandana Up" - icon_file = 'icons/obj/clothing/masks.dmi' - json_config = 'code/datums/greyscale/json_configs/bandana_up.json' - /datum/greyscale_config/bandana_worn name = "Worn Bandana" icon_file = 'icons/mob/clothing/mask.dmi' json_config = 'code/datums/greyscale/json_configs/bandana_worn.json' -/datum/greyscale_config/bandana_worn_up - name = "Worn Bandana Up" - icon_file = 'icons/mob/clothing/mask.dmi' - json_config = 'code/datums/greyscale/json_configs/bandana_worn_up.json' +/datum/greyscale_config/bandana_inhands_left + name = "Held Bandana, Left" + icon_file = 'icons/mob/inhands/clothing/masks_lefthand.dmi' + json_config = 'code/datums/greyscale/json_configs/bandana_inhands.json' + +/datum/greyscale_config/bandana_inhands_right + name = "Held Bandana, Left" + icon_file = 'icons/mob/inhands/clothing/masks_righthand.dmi' + json_config = 'code/datums/greyscale/json_configs/bandana_inhands.json' /datum/greyscale_config/bandstriped name = "Striped Bandana" icon_file = 'icons/obj/clothing/masks.dmi' json_config = 'code/datums/greyscale/json_configs/bandstriped.json' -/datum/greyscale_config/bandstriped_up - name = "Striped Bandana Up" - icon_file = 'icons/obj/clothing/masks.dmi' - json_config = 'code/datums/greyscale/json_configs/bandstriped_up.json' - /datum/greyscale_config/bandstriped_worn name = "Worn Striped Bandana" icon_file = 'icons/mob/clothing/mask.dmi' json_config = 'code/datums/greyscale/json_configs/bandstriped_worn.json' -/datum/greyscale_config/bandstriped_worn_up - name = "Worn Striped Bandana Up" - icon_file = 'icons/mob/clothing/mask.dmi' - json_config = 'code/datums/greyscale/json_configs/bandstriped_worn_up.json' +/datum/greyscale_config/bandana_striped_inhands_left + name = "Held Striped Bandana, Left" + icon_file = 'icons/mob/inhands/clothing/masks_lefthand.dmi' + json_config = 'code/datums/greyscale/json_configs/bandanastriped_inhands.json' + +/datum/greyscale_config/bandana_striped_inhands_right + name = "Held Striped Bandana, Left" + icon_file = 'icons/mob/inhands/clothing/masks_righthand.dmi' + json_config = 'code/datums/greyscale/json_configs/bandanastriped_inhands.json' /datum/greyscale_config/bandskull name = "Skull Bandana" icon_file = 'icons/obj/clothing/masks.dmi' json_config = 'code/datums/greyscale/json_configs/bandskull.json' -/datum/greyscale_config/bandskull_up - name = "Skull Bandana Up" - icon_file = 'icons/obj/clothing/masks.dmi' - json_config = 'code/datums/greyscale/json_configs/bandskull_up.json' +/datum/greyscale_config/bandana_skull_inhands_left + name = "Held Skull Bandana, Left" + icon_file = 'icons/mob/inhands/clothing/masks_lefthand.dmi' + json_config = 'code/datums/greyscale/json_configs/bandanaskull_inhands.json' + +/datum/greyscale_config/bandana_skull_inhands_right + name = "Held Skull Bandana, Left" + icon_file = 'icons/mob/inhands/clothing/masks_righthand.dmi' + json_config = 'code/datums/greyscale/json_configs/bandanaskull_inhands.json' /datum/greyscale_config/bandskull_worn name = "Worn Skull Bandana" icon_file = 'icons/mob/clothing/mask.dmi' json_config = 'code/datums/greyscale/json_configs/bandskull_worn.json' -/datum/greyscale_config/bandskull_worn_up - name = "Worn Skull Bandana Up" - icon_file = 'icons/mob/clothing/mask.dmi' - json_config = 'code/datums/greyscale/json_configs/bandskull_worn_up.json' - /datum/greyscale_config/material_airlock name = "Material Airlock" icon_file = 'icons/obj/doors/airlocks/material/material.dmi' diff --git a/code/datums/greyscale/json_configs/bandana.json b/code/datums/greyscale/json_configs/bandana.json index a56d9b18265..268266fc0d6 100644 --- a/code/datums/greyscale/json_configs/bandana.json +++ b/code/datums/greyscale/json_configs/bandana.json @@ -6,5 +6,13 @@ "blend_mode": "overlay", "color_ids": [ 1 ] } + ], + "bandana_up": [ + { + "type": "icon_state", + "icon_state": "bandana_cloth_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } ] } diff --git a/code/datums/greyscale/json_configs/bandana_inhands.json b/code/datums/greyscale/json_configs/bandana_inhands.json new file mode 100644 index 00000000000..0948b930bb0 --- /dev/null +++ b/code/datums/greyscale/json_configs/bandana_inhands.json @@ -0,0 +1,10 @@ +{ + "greyscale_bandana": [ + { + "type": "icon_state", + "icon_state": "greyscale_bandana", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/code/datums/greyscale/json_configs/bandana_up.json b/code/datums/greyscale/json_configs/bandana_up.json deleted file mode 100644 index 393d7b0710f..00000000000 --- a/code/datums/greyscale/json_configs/bandana_up.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "bandana_up": [ - { - "type": "icon_state", - "icon_state": "bandana_cloth_up", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/bandana_worn.json b/code/datums/greyscale/json_configs/bandana_worn.json index bc0e6c002d5..a3347c34c1a 100644 --- a/code/datums/greyscale/json_configs/bandana_worn.json +++ b/code/datums/greyscale/json_configs/bandana_worn.json @@ -6,5 +6,13 @@ "blend_mode": "overlay", "color_ids": [ 1 ] } + ], + "bandana_worn_up": [ + { + "type": "icon_state", + "icon_state": "bandana_cloth_worn_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } ] } diff --git a/code/datums/greyscale/json_configs/bandana_worn_up.json b/code/datums/greyscale/json_configs/bandana_worn_up.json deleted file mode 100644 index b5375d5dfa0..00000000000 --- a/code/datums/greyscale/json_configs/bandana_worn_up.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "bandana_worn_up": [ - { - "type": "icon_state", - "icon_state": "bandana_cloth_worn_up", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/bandstriped_up.json b/code/datums/greyscale/json_configs/bandanaskull_inhands.json similarity index 66% rename from code/datums/greyscale/json_configs/bandstriped_up.json rename to code/datums/greyscale/json_configs/bandanaskull_inhands.json index da464432cd4..b7067cf3c2e 100644 --- a/code/datums/greyscale/json_configs/bandstriped_up.json +++ b/code/datums/greyscale/json_configs/bandanaskull_inhands.json @@ -1,14 +1,14 @@ { - "bandstriped_up": [ + "greyscale_bandana": [ { "type": "icon_state", - "icon_state": "bandana_cloth_up", + "icon_state": "greyscale_bandana", "blend_mode": "overlay", "color_ids": [ 1 ] }, { "type": "icon_state", - "icon_state": "bandana_stripe_up", + "icon_state": "greyscale_bandana_skull", "blend_mode": "overlay", "color_ids": [ 2 ] } diff --git a/code/datums/greyscale/json_configs/bandskull_up.json b/code/datums/greyscale/json_configs/bandanastriped_inhands.json similarity index 66% rename from code/datums/greyscale/json_configs/bandskull_up.json rename to code/datums/greyscale/json_configs/bandanastriped_inhands.json index c01dc7bcf43..106dce4db58 100644 --- a/code/datums/greyscale/json_configs/bandskull_up.json +++ b/code/datums/greyscale/json_configs/bandanastriped_inhands.json @@ -1,14 +1,14 @@ { - "bandskull_up": [ + "greyscale_bandana": [ { "type": "icon_state", - "icon_state": "bandana_cloth_up", + "icon_state": "greyscale_bandana", "blend_mode": "overlay", "color_ids": [ 1 ] }, { "type": "icon_state", - "icon_state": "bandana_skull_up", + "icon_state": "greyscale_bandana_stripe", "blend_mode": "overlay", "color_ids": [ 2 ] } diff --git a/code/datums/greyscale/json_configs/bandskull.json b/code/datums/greyscale/json_configs/bandskull.json index 18344d5d13a..46dc76d9034 100644 --- a/code/datums/greyscale/json_configs/bandskull.json +++ b/code/datums/greyscale/json_configs/bandskull.json @@ -12,5 +12,19 @@ "blend_mode": "overlay", "color_ids": [ 2 ] } + ], + "bandskull_up": [ + { + "type": "icon_state", + "icon_state": "bandana_cloth_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bandana_skull_up", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } ] } diff --git a/code/datums/greyscale/json_configs/bandskull_worn.json b/code/datums/greyscale/json_configs/bandskull_worn.json index 3d2e34688c9..ef48106be99 100644 --- a/code/datums/greyscale/json_configs/bandskull_worn.json +++ b/code/datums/greyscale/json_configs/bandskull_worn.json @@ -12,5 +12,19 @@ "blend_mode": "overlay", "color_ids": [ 2 ] } + ], + "bandskull_worn_up": [ + { + "type": "icon_state", + "icon_state": "bandana_cloth_worn_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bandana_skull_worn_up", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } ] } diff --git a/code/datums/greyscale/json_configs/bandskull_worn_up.json b/code/datums/greyscale/json_configs/bandskull_worn_up.json deleted file mode 100644 index be37d2ee2b8..00000000000 --- a/code/datums/greyscale/json_configs/bandskull_worn_up.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "bandskull_worn_up": [ - { - "type": "icon_state", - "icon_state": "bandana_cloth_worn_up", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "bandana_skull_worn_up", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/bandstriped.json b/code/datums/greyscale/json_configs/bandstriped.json index e31fb50309f..370ec6722c7 100644 --- a/code/datums/greyscale/json_configs/bandstriped.json +++ b/code/datums/greyscale/json_configs/bandstriped.json @@ -12,5 +12,19 @@ "blend_mode": "overlay", "color_ids": [ 2 ] } + ], + "bandstriped_up": [ + { + "type": "icon_state", + "icon_state": "bandana_cloth_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bandana_stripe_up", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } ] } diff --git a/code/datums/greyscale/json_configs/bandstriped_worn.json b/code/datums/greyscale/json_configs/bandstriped_worn.json index 89d729aa4c9..a9d25f9737a 100644 --- a/code/datums/greyscale/json_configs/bandstriped_worn.json +++ b/code/datums/greyscale/json_configs/bandstriped_worn.json @@ -12,5 +12,19 @@ "blend_mode": "overlay", "color_ids": [ 2 ] } + ], + "bandstriped_worn_up": [ + { + "type": "icon_state", + "icon_state": "bandana_cloth_worn_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "bandana_stripe_worn_up", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } ] } diff --git a/code/datums/greyscale/json_configs/bandstriped_worn_up.json b/code/datums/greyscale/json_configs/bandstriped_worn_up.json deleted file mode 100644 index 7d08ea651ac..00000000000 --- a/code/datums/greyscale/json_configs/bandstriped_worn_up.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "bandstriped_worn_up": [ - { - "type": "icon_state", - "icon_state": "bandana_cloth_worn_up", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "bandana_stripe_worn_up", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/gloves_inhand.json b/code/datums/greyscale/json_configs/gloves_inhand.json new file mode 100644 index 00000000000..7b1bb5100f4 --- /dev/null +++ b/code/datums/greyscale/json_configs/gloves_inhand.json @@ -0,0 +1,10 @@ +{ + "greyscale_gloves": [ + { + "type": "icon_state", + "icon_state": "greyscale_gloves", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/code/datums/greyscale/json_configs/sneakers_inhand.json b/code/datums/greyscale/json_configs/sneakers_inhand.json new file mode 100644 index 00000000000..f6d712ff181 --- /dev/null +++ b/code/datums/greyscale/json_configs/sneakers_inhand.json @@ -0,0 +1,16 @@ +{ + "sneakers_back": [ + { + "type": "icon_state", + "icon_state": "sneakers_back", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "sneakers_front", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/code/datums/greyscale/json_configs/sneakers_orange_inhand.json b/code/datums/greyscale/json_configs/sneakers_orange_inhand.json new file mode 100644 index 00000000000..de2cae90e03 --- /dev/null +++ b/code/datums/greyscale/json_configs/sneakers_orange_inhand.json @@ -0,0 +1,35 @@ +{ + "sneakers_back": [ + { + "type": "icon_state", + "icon_state": "sneakers_back", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "sneakers_front", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ], + "sneakers_chained": [ + { + "type": "icon_state", + "icon_state": "sneakers_back", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "sneakers_front", + "blend_mode": "overlay", + "color_ids": [ 2 ] + }, + { + "type": "icon_state", + "icon_state": "sneakers_chained", + "blend_mode": "overlay" + } + ] +} diff --git a/code/datums/greyscale/json_configs/wirecutter_worn.json b/code/datums/greyscale/json_configs/wirecutter_worn.json new file mode 100644 index 00000000000..a5158a3b389 --- /dev/null +++ b/code/datums/greyscale/json_configs/wirecutter_worn.json @@ -0,0 +1,15 @@ +{ + "cutters": [ + { + "type": "icon_state", + "icon_state": "cutters", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "cutters_cutty_thingy", + "blend_mode": "overlay" + } + ] +} diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm index b35e0fd3798..d6cfaab3339 100644 --- a/code/datums/martial/krav_maga.dm +++ b/code/datums/martial/krav_maga.dm @@ -182,7 +182,7 @@ name = "krav maga gloves" desc = "These gloves can teach you to perform Krav Maga using nanochips." icon_state = "fightgloves" - inhand_icon_state = "fightgloves" + greyscale_colors = "#c41e0d" cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT heat_protection = HANDS @@ -193,7 +193,7 @@ name = "combat gloves plus" desc = "These tactical gloves are fireproof and electrically insulated, and through the use of nanochip technology will teach you the martial art of krav maga." icon_state = "black" - inhand_icon_state = "blackgloves" + greyscale_colors = "#2f2e31" siemens_coefficient = 0 strip_delay = 80 cold_protection = HANDS diff --git a/code/game/atoms.dm b/code/game/atoms.dm index a1cee72a469..005000a410b 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -241,7 +241,7 @@ SET_PLANE_IMPLICIT(src, plane) - if(greyscale_config && greyscale_colors) + if(greyscale_config && greyscale_colors) //we'll check again at item/init for inhand/belt/worn configs. update_greyscale() //atom color stuff @@ -1228,6 +1228,7 @@ switch(var_name) if(NAMEOF(src, color)) add_atom_colour(color, ADMIN_COLOUR_PRIORITY) + update_appearance() /** diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index 23e15d1206f..e848dee1dae 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -280,7 +280,7 @@ desc = "A powerful secondary explosive of syndicate design and unknown composition, it should be stable under normal conditions..." icon = 'icons/obj/assemblies/assemblies.dmi' icon_state = "bombcore" - inhand_icon_state = "eshield0" + inhand_icon_state = "eshield" lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi' w_class = WEIGHT_CLASS_NORMAL diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index bd1875c4822..d67d9c113a5 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -296,12 +296,9 @@ GLOBAL_LIST_INIT(dye_registry, list( ..() held_mob.machine_wash(washer) -/obj/item/clothing/shoes/sneakers/machine_wash(obj/machinery/washing_machine/washer) - if(chained) - chained = FALSE - slowdown = SHOES_SLOWDOWN - new /obj/item/restraints/handcuffs(loc) - ..() +/obj/item/clothing/shoes/sneakers/orange/machine_wash(obj/machinery/washing_machine/washer) + attached_cuffs?.forceMove(loc) + return ..() /obj/machinery/washing_machine/relaymove(mob/living/user, direction) container_resist_act(user) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 53a61235f3f..a961604885e 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -224,6 +224,9 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons if(sharpness && force > 5) //give sharp objects butchering functionality, for consistency AddComponent(/datum/component/butchering, speed = 8 SECONDS * toolspeed) + if(!greyscale_config && greyscale_colors && (greyscale_config_worn || greyscale_config_belt || greyscale_config_inhand_right || greyscale_config_inhand_left)) + update_greyscale() + . = ..() // Handle adding item associated actions diff --git a/code/game/objects/items/RCL.dm b/code/game/objects/items/RCL.dm index c288927a6b8..76ea341aaae 100644 --- a/code/game/objects/items/RCL.dm +++ b/code/game/objects/items/RCL.dm @@ -205,7 +205,7 @@ return //If we've run out, display message and exit else last = null - loaded.color = GLOB.pipe_cleaner_colors[colors[current_color_index]] + loaded.color = GLOB.cable_colors[colors[current_color_index]] loaded.update_appearance() last = loaded.place_turf(get_turf(src), user, turn(user.dir, 180)) is_empty(user) //If we've run out, display message @@ -225,7 +225,7 @@ for(var/obj/structure/pipe_cleaner/C in T) if(!C) continue - if(C.color != GLOB.pipe_cleaner_colors[colors[current_color_index]]) + if(C.color != GLOB.cable_colors[colors[current_color_index]]) continue if(C.d1 == 0) return C @@ -243,7 +243,7 @@ if(fromdir == dirnum) //pipe_cleaners can't loop back on themselves pipe_cleanersuffix = "invalid" var/image/img = image(icon = 'icons/hud/radial.dmi', icon_state = "cable_[pipe_cleanersuffix]") - img.color = GLOB.pipe_cleaner_colors[colors[current_color_index]] + img.color = GLOB.cable_colors[colors[current_color_index]] wiredirs[icondir] = img return wiredirs @@ -278,7 +278,7 @@ if(!T.can_have_cabling()) return - loaded.color = GLOB.pipe_cleaner_colors[colors[current_color_index]] + loaded.color = GLOB.cable_colors[colors[current_color_index]] loaded.update_appearance() var/obj/structure/pipe_cleaner/linkingCable = findLinkingCable(user) @@ -312,7 +312,7 @@ var/cwname = colors[current_color_index] to_chat(user, "Color changed to [cwname]!") if(loaded) - loaded.color = GLOB.pipe_cleaner_colors[colors[current_color_index]] + loaded.color = GLOB.cable_colors[colors[current_color_index]] loaded.update_appearance() if(wiring_gui_menu) wiringGuiUpdate(user) diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm index d159ca971c2..76097726905 100644 --- a/code/game/objects/items/candle.dm +++ b/code/game/objects/items/candle.dm @@ -5,7 +5,7 @@ humankind. The jewelry he kept for himself." icon = 'icons/obj/candle.dmi' icon_state = "candle1" - inhand_icon_state = "candle1" + inhand_icon_state = null w_class = WEIGHT_CLASS_TINY light_color = LIGHT_COLOR_FIRE heat = 1000 diff --git a/code/game/objects/items/choice_beacon.dm b/code/game/objects/items/choice_beacon.dm index f9e707e6893..1a9fae99019 100644 --- a/code/game/objects/items/choice_beacon.dm +++ b/code/game/objects/items/choice_beacon.dm @@ -4,6 +4,8 @@ icon = 'icons/obj/device.dmi' icon_state = "gangtool-blue" inhand_icon_state = "radio" + lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' var/uses = 1 /obj/item/choice_beacon/attack_self(mob/user) diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 2fd5f2cfb88..0012e1719df 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -128,6 +128,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM name = "cigarette" desc = "A roll of tobacco and nicotine." icon_state = "cigoff" + inhand_icon_state = "cigon" //gets overriden during intialize(), just have it for unit test sanity. throw_speed = 0.5 w_class = WEIGHT_CLASS_TINY body_parts_covered = null @@ -529,6 +530,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM icon_state = "cigaroff" icon_on = "cigaron" icon_off = "cigaroff" //make sure to add positional sprites in icons/obj/cigarettes.dmi if you add more. + inhand_icon_state = "cigaron" //gets overriden during intialize(), just have it for unit test sanity. inhand_icon_on = "cigaron" inhand_icon_off = "cigaroff" type_butt = /obj/item/cigbutt/cigarbutt @@ -580,6 +582,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM icon_state = "pipeoff" icon_on = "pipeon" //Note - these are in masks.dmi icon_off = "pipeoff" + inhand_icon_state = null inhand_icon_on = null inhand_icon_off = null smoketime = 0 diff --git a/code/game/objects/items/debug_items.dm b/code/game/objects/items/debug_items.dm index bab3db586d8..01eaa136069 100644 --- a/code/game/objects/items/debug_items.dm +++ b/code/game/objects/items/debug_items.dm @@ -30,6 +30,8 @@ icon = 'icons/obj/device.dmi' icon_state = "hypertool" inhand_icon_state = "hypertool" + lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' toolspeed = 0.1 tool_behaviour = null @@ -44,6 +46,7 @@ return FALSE return TRUE + /obj/item/debug/omnitool/attack_self(mob/user) if(!user) return @@ -119,4 +122,32 @@ else RemoveElement(/datum/element/eyestab) +/obj/item/debug/omnitool/item_spawner/attack_self(mob/user) + if(!user || !user.client) + return + var/path = text2path(tgui_input_text(user, "Insert an item typepath to spawn", "ADMINS ONLY. FUCK AROUND AND FIND OUT.")) + if(!path) + return + var/choice = tgui_alert(user, "Subtypes only?",, list("Yes", "No")) + if(!choice) + return + if(!user.client.holder) + if(!isliving(user)) + return + var/mob/living/living_user = user + to_chat(user, span_warning("As you try to use [src], you hear strange tearing sounds, as if the coder gods were attempting to reach out and choke you themselves.")) + playsound(src, 'sound/effects/dimensional_rend.ogg') + sleep(4 SECONDS) + var/confirmation = tgui_alert(user, "Are you certain you want to do that?", "Admins Only. Last Chance.", list("Yes", "No")) + if(!confirmation || confirmation == ("No")) + return + if(!user.client.holder) //safety if the admin readmined to save their ass lol. + to_chat(user, span_reallybig("You shouldn't have done that...")) + playsound(src, 'sound/voice/borg_deathsound.ogg') + sleep(3 SECONDS) + living_user.gib() + return + var/turf/loc_turf = get_turf(src) + for(var/spawn_atom in (choice == "No" ? typesof(path) : subtypesof(path))) + new spawn_atom(loc_turf) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 24f09c244af..5ae4baf3b3b 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -268,7 +268,7 @@ name = "compact defibrillator" desc = "A belt-equipped defibrillator that can be rapidly deployed." icon_state = "defibcompact" - inhand_icon_state = "defibcompact" + inhand_icon_state = null worn_icon_state = "defibcompact" w_class = WEIGHT_CLASS_NORMAL slot_flags = ITEM_SLOT_BELT @@ -291,7 +291,7 @@ name = "combat defibrillator" desc = "A belt-equipped blood-red defibrillator. Can revive through thick clothing, has an experimental self-recharging battery, and can be utilized in combat via applying the paddles in a disarming or aggressive manner." icon_state = "defibcombat" //needs defib inhand sprites - inhand_icon_state = "defibcombat" + inhand_icon_state = null worn_icon_state = "defibcombat" combat = TRUE safety = FALSE @@ -315,7 +315,7 @@ name = "elite Nanotrasen defibrillator" desc = "A belt-equipped state-of-the-art defibrillator. Can revive through thick clothing, has an experimental self-recharging battery, and can be utilized in combat via applying the paddles in a disarming or aggressive manner." icon_state = "defibnt" //needs defib inhand sprites - inhand_icon_state = "defibnt" + inhand_icon_state = null worn_icon_state = "defibnt" paddle_type = /obj/item/shockpaddles/syndicate/nanotrasen paddle_state = "defibnt-paddles" diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 5912e9e09dd..f16c964d044 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -261,7 +261,7 @@ name = "banana lamp" desc = "Only a clown would think to make a ghetto banana-shaped lamp. Even has a goofy pullstring." icon_state = "bananalamp" - inhand_icon_state = "bananalamp" + inhand_icon_state = null // FLARES @@ -369,7 +369,7 @@ name = "suspicious lantern" desc = "A suspicious looking lantern." icon_state = "syndilantern" - inhand_icon_state = "syndilantern" + inhand_icon_state = null light_range = 10 /obj/item/flashlight/lantern/jade @@ -384,7 +384,7 @@ desc = "Extract from a yellow slime. It emits a strong light when squeezed." icon = 'icons/obj/lighting.dmi' icon_state = "slime" - inhand_icon_state = "slime" + inhand_icon_state = null w_class = WEIGHT_CLASS_SMALL slot_flags = ITEM_SLOT_BELT custom_materials = null @@ -457,7 +457,7 @@ color = LIGHT_COLOR_GREEN icon_state = "glowstick" base_icon_state = "glowstick" - inhand_icon_state = "glowstick" + inhand_icon_state = null worn_icon_state = "lightstick" grind_results = list(/datum/reagent/phenol = 15, /datum/reagent/hydrogen = 10, /datum/reagent/oxygen = 5) //Meth-in-a-stick /// How many seconds of fuel we have left diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index 6af2fd40b3e..96976eeb82b 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -6,6 +6,8 @@ icon_state = "gps-c" inhand_icon_state = "electronic" worn_icon_state = "electronic" + lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' w_class = WEIGHT_CLASS_SMALL slot_flags = ITEM_SLOT_BELT obj_flags = UNIQUE_RENAME diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm index ddae7360feb..ce8e6a71536 100644 --- a/code/game/objects/items/devices/pipe_painter.dm +++ b/code/game/objects/items/devices/pipe_painter.dm @@ -3,7 +3,7 @@ desc = "Used for coloring pipes, unsurprisingly." icon = 'icons/obj/bureaucracy.dmi' icon_state = "labeler1" - inhand_icon_state = "flight" + inhand_icon_state = null item_flags = NOBLUDGEON var/paint_color = "grey" diff --git a/code/game/objects/items/devices/pressureplates.dm b/code/game/objects/items/devices/pressureplates.dm index 707e07a0d5a..34895911f35 100644 --- a/code/game/objects/items/devices/pressureplates.dm +++ b/code/game/objects/items/devices/pressureplates.dm @@ -2,7 +2,9 @@ name = "pressure plate" desc = "An electronic device that triggers when stepped on. Ctrl-Click to toggle the pressure plate off and on." icon = 'icons/obj/puzzle_small.dmi' - inhand_icon_state = "flash" + inhand_icon_state = "flashtool" + lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' icon_state = "pressureplate" layer = LOW_OBJ_LAYER var/trigger_mob = TRUE diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 9420cfa8d10..ee062f30fa7 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -19,6 +19,8 @@ GLOBAL_LIST_INIT(channel_tokens, list( desc = "An updated, modular intercom that fits over the head. Takes encryption keys." icon_state = "headset" inhand_icon_state = "headset" + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' worn_icon_state = "headset" custom_materials = list(/datum/material/iron=75) subspace_transmission = TRUE @@ -115,7 +117,6 @@ GLOBAL_LIST_INIT(channel_tokens, list( name = "syndicate headset" desc = "A syndicate headset that can be used to hear all radio frequencies. Protects ears from flashbangs." icon_state = "syndie_headset" - inhand_icon_state = "syndie_headset" /obj/item/radio/headset/syndicate/alt/Initialize(mapload) . = ..() @@ -138,7 +139,6 @@ GLOBAL_LIST_INIT(channel_tokens, list( name = "security bowman headset" desc = "This is used by your elite security force. Protects ears from flashbangs." icon_state = "sec_headset_alt" - inhand_icon_state = "sec_headset_alt" /obj/item/radio/headset/headset_sec/alt/Initialize(mapload) . = ..() @@ -205,7 +205,6 @@ GLOBAL_LIST_INIT(channel_tokens, list( name = "\proper the captain's bowman headset" desc = "The headset of the boss. Protects ears from flashbangs." icon_state = "com_headset_alt" - inhand_icon_state = "com_headset_alt" /obj/item/radio/headset/heads/captain/alt/Initialize(mapload) . = ..() @@ -227,7 +226,6 @@ GLOBAL_LIST_INIT(channel_tokens, list( name = "\proper the head of security's bowman headset" desc = "The headset of the man in charge of keeping order and protecting the station. Protects ears from flashbangs." icon_state = "com_headset_alt" - inhand_icon_state = "com_headset_alt" /obj/item/radio/headset/heads/hos/alt/Initialize(mapload) . = ..() @@ -293,7 +291,6 @@ GLOBAL_LIST_INIT(channel_tokens, list( name = "\improper CentCom bowman headset" desc = "A headset especially for emergency response personnel. Protects ears from flashbangs." icon_state = "cent_headset_alt" - inhand_icon_state = "cent_headset_alt" keyslot = null /obj/item/radio/headset/headset_cent/alt/Initialize(mapload) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 9ddf57190bf..a23a1caed8c 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -4,7 +4,9 @@ icon = 'icons/obj/radio.dmi' name = "station bounced radio" icon_state = "walkietalkie" - inhand_icon_state = "walkietalkie" + inhand_icon_state = "radio" + lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' worn_icon_state = "radio" desc = "A basic handheld radio that communicates with local telecommunication networks." dog_fashion = /datum/dog_fashion/back diff --git a/code/game/objects/items/devices/sensor_device.dm b/code/game/objects/items/devices/sensor_device.dm index 325dccbd3fb..dc45521532e 100644 --- a/code/game/objects/items/devices/sensor_device.dm +++ b/code/game/objects/items/devices/sensor_device.dm @@ -5,6 +5,8 @@ icon_state = "scanner" inhand_icon_state = "electronic" worn_icon_state = "electronic" + lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' w_class = WEIGHT_CLASS_SMALL slot_flags = ITEM_SLOT_BELT custom_price = PAYCHECK_CREW * 5 diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 345fdbcf179..53e2726093d 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -207,6 +207,8 @@ effective or pretty fucking useless. icon = 'icons/obj/clothing/belts.dmi' icon_state = "utility" inhand_icon_state = "utility" + lefthand_file = 'icons/mob/inhands/equipment/belt_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/belt_righthand.dmi' worn_icon_state = "utility" slot_flags = ITEM_SLOT_BELT attack_verb_continuous = list("whips", "lashes", "disciplines") diff --git a/code/game/objects/items/dna_injector.dm b/code/game/objects/items/dna_injector.dm index fecdad49e2d..73ef14aecef 100644 --- a/code/game/objects/items/dna_injector.dm +++ b/code/game/objects/items/dna_injector.dm @@ -3,6 +3,7 @@ desc = "A cheap single use autoinjector that injects the user with DNA." icon = 'icons/obj/medical/syringe.dmi' icon_state = "dnainjector" + inhand_icon_state = "dnainjector" worn_icon_state = "pen" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' @@ -17,6 +18,24 @@ var/used = FALSE +/obj/item/dnainjector/Initialize(mapload) + . = ..() + AddElement(/datum/element/update_icon_updates_onmob) + if(used) + update_appearance() + +/obj/item/dnainjector/vv_edit_var(vname, vval) + . = ..() + if(vname == NAMEOF(src, used)) + update_appearance() + +/obj/item/dnainjector/update_icon_state() + . = ..() + icon_state = inhand_icon_state = "[initial(icon_state)][used ? "0" : null]" + +/obj/item/dnainjector/update_desc(updates) + . = ..() + desc = "[initial(desc)][used ? "This one is used up." : null]" /obj/item/dnainjector/attack_paw(mob/user, list/modifiers) return attack_hand(user, modifiers) @@ -77,8 +96,7 @@ to_chat(user, span_notice("It appears that [target] does not have compatible DNA.")) used = TRUE - icon_state = "dnainjector0" - desc += " This one is used up." + update_appearance() /obj/item/dnainjector/timed var/duration = 600 diff --git a/code/game/objects/items/dualsaber.dm b/code/game/objects/items/dualsaber.dm index a7d004dbfb3..26aad7ed001 100644 --- a/code/game/objects/items/dualsaber.dm +++ b/code/game/objects/items/dualsaber.dm @@ -4,6 +4,7 @@ /obj/item/dualsaber icon = 'icons/obj/weapons/transforming_energy.dmi' icon_state = "dualsaber0" + inhand_icon_state = "dualsaber0" lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' name = "double-bladed energy sword" @@ -71,7 +72,7 @@ return HAS_TRAIT(src, TRAIT_WIELDED) && sharpness /obj/item/dualsaber/update_icon_state() - icon_state = HAS_TRAIT(src, TRAIT_WIELDED) ? "dualsaber[saber_color][HAS_TRAIT(src, TRAIT_WIELDED)]" : "dualsaber0" + icon_state = inhand_icon_state = HAS_TRAIT(src, TRAIT_WIELDED) ? "dualsaber[saber_color][HAS_TRAIT(src, TRAIT_WIELDED)]" : "dualsaber0" return ..() /obj/item/dualsaber/suicide_act(mob/living/carbon/user) diff --git a/code/game/objects/items/food/bread.dm b/code/game/objects/items/food/bread.dm index 93e95b14f21..b87861c3836 100644 --- a/code/game/objects/items/food/bread.dm +++ b/code/game/objects/items/food/bread.dm @@ -249,7 +249,7 @@ desc = "Bon appetit!" icon = 'icons/obj/food/burgerbread.dmi' icon_state = "baguette" - inhand_icon_state = "baguette" + inhand_icon_state = null worn_icon_state = "baguette" food_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 3) bite_consumption = 3 @@ -332,7 +332,7 @@ desc = "Alas, it is limited." icon = 'icons/obj/food/burgerbread.dmi' icon_state = "garlicbread" - inhand_icon_state = "garlicbread" + inhand_icon_state = null food_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/consumable/garlic = 2) bite_consumption = 3 tastes = list("bread" = 1, "garlic" = 1, "butter" = 1) diff --git a/code/game/objects/items/food/misc.dm b/code/game/objects/items/food/misc.dm index 7d9373b6ee7..8ee5e68d57c 100644 --- a/code/game/objects/items/food/misc.dm +++ b/code/game/objects/items/food/misc.dm @@ -367,7 +367,7 @@ desc = "A delicious lollipop. Makes for a great Valentine's present." icon = 'icons/obj/food/lollipop.dmi' icon_state = "lollipop_stick" - inhand_icon_state = "lollipop_stick" + inhand_icon_state = null food_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/iron = 10, /datum/reagent/consumable/sugar = 5, /datum/reagent/medicine/omnizine = 2) //Honk tastes = list("candy" = 1) foodtypes = JUNKFOOD | SUGAR @@ -402,7 +402,7 @@ name = "bubblegum" desc = "A rubbery strip of gum. Not exactly filling, but it keeps you busy." icon_state = "bubblegum" - inhand_icon_state = "bubblegum" + inhand_icon_state = null color = "#E48AB5" // craftable custom gums someday? food_reagents = list(/datum/reagent/consumable/sugar = 5) tastes = list("candy" = 1) diff --git a/code/game/objects/items/food/pancakes.dm b/code/game/objects/items/food/pancakes.dm index d6e2a06a1ef..b40e66a673f 100644 --- a/code/game/objects/items/food/pancakes.dm +++ b/code/game/objects/items/food/pancakes.dm @@ -4,7 +4,7 @@ name = "pancake" desc = "A fluffy pancake. The softer, superior relative of the waffle." icon_state = "pancakes_1" - inhand_icon_state = "pancakes" + inhand_icon_state = null food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("pancakes" = 1) foodtypes = GRAIN | SUGAR | BREAKFAST @@ -16,7 +16,6 @@ name = "goopy pancake" desc = "A barely cooked mess that some may mistake for a pancake. It longs for the griddle." icon_state = "rawpancakes_1" - inhand_icon_state = "rawpancakes" food_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("milky batter" = 1) burns_on_grill = FALSE @@ -56,7 +55,6 @@ name = "blueberry pancake" desc = "A fluffy and delicious blueberry pancake." icon_state = "bbpancakes_1" - inhand_icon_state = "bbpancakes" food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("pancakes" = 1, "blueberries" = 1) @@ -64,7 +62,6 @@ name = "chocolate chip pancake" desc = "A fluffy and delicious chocolate chip pancake." icon_state = "ccpancakes_1" - inhand_icon_state = "ccpancakes" food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("pancakes" = 1, "chocolate" = 1) diff --git a/code/game/objects/items/food/pie.dm b/code/game/objects/items/food/pie.dm index e17de92fa66..234865cac72 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' + bite_consumption = 3 w_class = WEIGHT_CLASS_NORMAL max_volume = 80 diff --git a/code/game/objects/items/grenades/spawnergrenade.dm b/code/game/objects/items/grenades/spawnergrenade.dm index ac71011023a..9a3b888a765 100644 --- a/code/game/objects/items/grenades/spawnergrenade.dm +++ b/code/game/objects/items/grenades/spawnergrenade.dm @@ -54,7 +54,7 @@ name = "C.L.U.W.N.E." desc = "A sleek device often given to clowns on their 10th birthdays for protection. You can hear faint scratching coming from within." icon_state = "clown_ball" - inhand_icon_state = "clown_ball" + inhand_icon_state = null spawner_type = list(/mob/living/simple_animal/hostile/retaliate/clown/fleshclown, /mob/living/simple_animal/hostile/retaliate/clown/clownhulk, /mob/living/simple_animal/hostile/retaliate/clown/longface, /mob/living/simple_animal/hostile/retaliate/clown/clownhulk/chlown, /mob/living/simple_animal/hostile/retaliate/clown/clownhulk/honcmunculus, /mob/living/simple_animal/hostile/retaliate/clown/mutant/glutton, /mob/living/simple_animal/hostile/retaliate/clown/banana, /mob/living/simple_animal/hostile/retaliate/clown/honkling, /mob/living/simple_animal/hostile/retaliate/clown/lube) deliveryamt = 1 @@ -62,6 +62,6 @@ name = "stuffed C.L.U.W.N.E." desc = "A sleek device often given to clowns on their 10th birthdays for protection. While a typical C.L.U.W.N.E only holds one creature, sometimes foolish young clowns try to cram more in, often to disasterous effect." icon_state = "clown_broken" - inhand_icon_state = "clown_broken" + inhand_icon_state = null spawner_type = /mob/living/simple_animal/hostile/retaliate/clown/mutant deliveryamt = 5 diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 7b358c1e677..f4e109f22ba 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -29,6 +29,7 @@ gender = PLURAL icon_state = "handcuff" worn_icon_state = "handcuff" + inhand_icon_state = "handcuff" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' flags_1 = CONDUCT_1 @@ -137,15 +138,17 @@ name = "cable restraints" desc = "Looks like some cables tied together. Could be used to tie something up." icon_state = "cuff" - inhand_icon_state = "coil" - color = "#ff0000" + inhand_icon_state = "coil_red" + color = CABLE_HEX_COLOR_RED + ///for generating the correct icons based off the original cable's color. + var/cable_color = CABLE_COLOR_RED lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' custom_materials = list(/datum/material/iron=150, /datum/material/glass=75) breakouttime = 30 SECONDS cuffsound = 'sound/weapons/cablecuff.ogg' -/obj/item/restraints/handcuffs/cable/Initialize(mapload) +/obj/item/restraints/handcuffs/cable/Initialize(mapload, new_color) . = ..() var/static/list/hovering_item_typechecks = list( @@ -159,6 +162,29 @@ ) AddElement(/datum/element/contextual_screentip_item_typechecks, hovering_item_typechecks) + AddElement(/datum/element/update_icon_updates_onmob, (slot_flags|ITEM_SLOT_HANDCUFFED)) + + if(new_color) + set_cable_color(new_color) + +/obj/item/restraints/handcuffs/cable/proc/set_cable_color(new_color) + color = GLOB.cable_colors[new_color] + cable_color = new_color + update_appearance(UPDATE_ICON) + +/obj/item/restraints/handcuffs/cable/vv_edit_var(vname, vval) + if(vname == NAMEOF(src, cable_color)) + set_cable_color(vval) + datum_flags |= DF_VAR_EDITED + return TRUE + return ..() + +/obj/item/restraints/handcuffs/cable/update_icon_state() + . = ..() + if(cable_color) + var/new_inhand_icon = "coil_[cable_color]" + if(new_inhand_icon != inhand_icon_state) + inhand_icon_state = new_inhand_icon //small memory optimization. /** * # Sinew restraints @@ -171,7 +197,8 @@ name = "sinew restraints" desc = "A pair of restraints fashioned from long strands of flesh." icon_state = "sinewcuff" - inhand_icon_state = "sinewcuff" + inhand_icon_state = null + cable_color = null custom_materials = null color = null @@ -179,49 +206,65 @@ * Red cable restraints */ /obj/item/restraints/handcuffs/cable/red - color = "#ff0000" + color = CABLE_HEX_COLOR_RED + cable_color = CABLE_COLOR_RED + inhand_icon_state = "coil_red" /** * Yellow cable restraints */ /obj/item/restraints/handcuffs/cable/yellow - color = "#ffff00" + color = CABLE_HEX_COLOR_YELLOW + cable_color = CABLE_COLOR_YELLOW + inhand_icon_state = "coil_yellow" /** * Blue cable restraints */ /obj/item/restraints/handcuffs/cable/blue - color = "#1919c8" + color =CABLE_HEX_COLOR_BLUE + cable_color = CABLE_COLOR_BLUE + inhand_icon_state = "coil_blue" /** * Green cable restraints */ /obj/item/restraints/handcuffs/cable/green - color = "#00aa00" + color = CABLE_HEX_COLOR_GREEN + cable_color = CABLE_COLOR_GREEN + inhand_icon_state = "coil_green" /** * Pink cable restraints */ /obj/item/restraints/handcuffs/cable/pink - color = "#ff3ccd" + color = CABLE_HEX_COLOR_PINK + cable_color = CABLE_COLOR_PINK + inhand_icon_state = "coil_pink" /** * Orange (the color) cable restraints */ /obj/item/restraints/handcuffs/cable/orange - color = "#ff8000" + color = CABLE_HEX_COLOR_ORANGE + cable_color = CABLE_COLOR_ORANGE + inhand_icon_state = "coil_orange" /** * Cyan cable restraints */ /obj/item/restraints/handcuffs/cable/cyan - color = "#00ffff" + color = CABLE_HEX_COLOR_CYAN + cable_color = CABLE_COLOR_CYAN + inhand_icon_state = "coil_cyan" /** * White cable restraints */ /obj/item/restraints/handcuffs/cable/white - color = null + color = CABLE_HEX_COLOR_WHITE + cable_color = CABLE_COLOR_WHITE + inhand_icon_state = "coil_white" /obj/item/restraints/handcuffs/cable/attackby(obj/item/I, mob/user, params) //Slapcrafting if(istype(I, /obj/item/stack/rods)) @@ -262,12 +305,14 @@ name = "zipties" desc = "Plastic, disposable zipties that can be used to restrain temporarily but are destroyed after use." icon_state = "cuff" + inhand_icon_state = "cuff_white" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' custom_materials = null breakouttime = 45 SECONDS trashtype = /obj/item/restraints/handcuffs/cable/zipties/used color = null + cable_color = null /** * # Used zipties @@ -277,7 +322,6 @@ /obj/item/restraints/handcuffs/cable/zipties/used desc = "A pair of broken zipties." icon_state = "cuff_used" - inhand_icon_state = "cuff" /obj/item/restraints/handcuffs/cable/zipties/used/attack() return @@ -295,7 +339,6 @@ /obj/item/restraints/handcuffs/cable/zipties/fake/used desc = "A pair of broken fake zipties." icon_state = "cuff_used" - inhand_icon_state = "cuff" /** * # Generic leg cuffs @@ -307,6 +350,7 @@ desc = "Use this to keep prisoners in line." gender = PLURAL icon_state = "handcuff" + inhand_icon_state = "handcuff" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' flags_1 = CONDUCT_1 diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index 3efd8e8550b..63fcc1b42b5 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -363,7 +363,9 @@ desc = "Used for absolutely hilarious sacrifices." icon = 'icons/obj/wizard.dmi' icon_state = "clownrender" - inhand_icon_state = "render" + inhand_icon_state = "cultdagger" + lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' worn_icon_state = "render" hitsound = 'sound/items/bikehorn.ogg' sharpness = SHARP_EDGED @@ -423,6 +425,8 @@ inhand_icon_state = "fedora" slot_flags = ITEM_SLOT_HEAD icon = 'icons/obj/clothing/hats.dmi' + lefthand_file = 'icons/mob/inhands/clothing/hats_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/hats_righthand.dmi' force = 0 throw_speed = 4 throw_range = 7 diff --git a/code/game/objects/items/inspector.dm b/code/game/objects/items/inspector.dm index 5fb1763c333..538e9a373a7 100644 --- a/code/game/objects/items/inspector.dm +++ b/code/game/objects/items/inspector.dm @@ -10,6 +10,8 @@ icon_state = "inspector" worn_icon_state = "salestagger" inhand_icon_state = "electronic" + lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' throwforce = 0 w_class = WEIGHT_CLASS_TINY throw_range = 1 diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index 70493a52c6e..bb8f0cb1a75 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -103,6 +103,7 @@ desc = "Used to knock out the Bartender." icon_state = "rolling_pin" worn_icon_state = "rolling_pin" + inhand_icon_state = "rolling_pin" force = 8 throwforce = 5 throw_speed = 3 @@ -118,6 +119,7 @@ name = "metal rolling pin" desc = "A heavy metallic rolling pin used to bash in those annoying ingredients." icon_state = "metal_rolling_pin" + inhand_icon_state = "metal_rolling_pin" force = 12 flags_1 = CONDUCT_1 custom_materials = list(/datum/material/iron = MINERAL_MATERIAL_AMOUNT * 1.5, /datum/material/plastic = MINERAL_MATERIAL_AMOUNT * 1.5) diff --git a/code/game/objects/items/latexballoon.dm b/code/game/objects/items/latexballoon.dm index 78df10ab7c3..b0d5590e7be 100644 --- a/code/game/objects/items/latexballoon.dm +++ b/code/game/objects/items/latexballoon.dm @@ -2,7 +2,9 @@ name = "latex glove" desc = "Sterile and airtight." icon_state = "latexballon" - inhand_icon_state = "lgloves" + inhand_icon_state = "greyscale_gloves" + lefthand_file = 'icons/mob/inhands/clothing/gloves_righthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/gloves_lefthand.dmi' force = 0 throwforce = 0 w_class = WEIGHT_CLASS_TINY @@ -19,6 +21,8 @@ if (icon_state == "latexballon_bursted") return icon_state = "latexballon_blow" + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' inhand_icon_state = "latexballon" user.update_held_items() to_chat(user, span_notice("You blow up [src] with [tank].")) @@ -35,7 +39,9 @@ return playsound(src, 'sound/weapons/gun/pistol/shot.ogg', 100, TRUE) icon_state = "latexballon_bursted" - inhand_icon_state = "lgloves" + inhand_icon_state = initial(inhand_icon_state) + lefthand_file = initial(lefthand_file) + righthand_file = initial(righthand_file) if(isliving(loc)) var/mob/living/user = src.loc user.update_held_items() diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index c75a06c9642..5c068e780e5 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -100,6 +100,10 @@ if(active) if(sword_color_icon) icon_state = "[icon_state]_[sword_color_icon]" + inhand_icon_state = "[inhand_icon_state]_[sword_color_icon]" + if(ismob(loc)) + var/mob/loc_mob = loc + loc_mob.update_held_items() if(embedding) updateEmbedding() heat = active_heat @@ -111,7 +115,8 @@ STOP_PROCESSING(SSobj, src) tool_behaviour = (active ? TOOL_SAW : NONE) //Lets energy weapons cut trees. Also lets them do bonecutting surgery, which is kinda metal! - balloon_alert(user, "[name] [active ? "enabled":"disabled"]") + if(user) + balloon_alert(user, "[name] [active ? "enabled":"disabled"]") playsound(user ? user : src, active ? 'sound/weapons/saberon.ogg' : 'sound/weapons/saberoff.ogg', 35, TRUE) set_light_on(active) return COMPONENT_NO_DEFAULT_MESSAGE @@ -121,6 +126,7 @@ name = "energy axe" desc = "An energized battle axe." icon_state = "axe" + inhand_icon_state = "axe" lefthand_file = 'icons/mob/inhands/weapons/axes_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/axes_righthand.dmi' hitsound = 'sound/weapons/bladeslice.ogg' @@ -158,6 +164,7 @@ name = "energy sword" desc = "May the force be within you." icon_state = "e_sword" + inhand_icon_state = "e_sword" lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' hitsound = SFX_SWING_HIT @@ -219,7 +226,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. - var/list/possible_colors = list( + var/list/possible_sword_colors = list( "red" = COLOR_SOFT_RED, "blue" = LIGHT_COLOR_LIGHT_CYAN, "green" = LIGHT_COLOR_GREEN, @@ -227,19 +234,30 @@ ) /// Whether this saber has been multitooled. var/hacked = FALSE + var/hacked_color /obj/item/melee/energy/sword/saber/Initialize(mapload) . = ..() - if(!sword_color_icon && LAZYLEN(possible_colors)) - sword_color_icon = pick(possible_colors) + if(!sword_color_icon && LAZYLEN(possible_sword_colors)) + sword_color_icon = pick(possible_sword_colors) if(sword_color_icon) - set_light_color(possible_colors[sword_color_icon]) + set_light_color(possible_sword_colors[sword_color_icon]) /obj/item/melee/energy/sword/saber/process() . = ..() - if(hacked) - set_light_color(possible_colors[pick(possible_colors)]) + if(blade_active && hacked) + if(!LAZYLEN(possible_sword_colors)) + possible_sword_colors = list( + "red" = COLOR_SOFT_RED, + "blue" = LIGHT_COLOR_LIGHT_CYAN, + "green" = LIGHT_COLOR_GREEN, + "purple" = LIGHT_COLOR_LAVENDER, + ) + possible_sword_colors -= hacked_color + hacked_color = pick(possible_sword_colors) + set_light_color(possible_sword_colors[hacked_color]) + possible_sword_colors -= hacked_color /obj/item/melee/energy/sword/saber/red sword_color_icon = "red" @@ -262,12 +280,14 @@ to_chat(user, span_warning("RNBW_ENGAGE")) if(force >= active_force) icon_state = "[initial(icon_state)]_on_rainbow" + inhand_icon_state = "[initial(inhand_icon_state)]_on_rainbow" user.update_held_items() /obj/item/melee/energy/sword/pirate name = "energy cutlass" desc = "Arrrr matey." icon_state = "e_cutlass" + inhand_icon_state = "e_cutlass" lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' light_color = COLOR_RED diff --git a/code/game/objects/items/mop.dm b/code/game/objects/items/mop.dm index d328d557b9d..4cce6b8e815 100644 --- a/code/game/objects/items/mop.dm +++ b/code/game/objects/items/mop.dm @@ -3,6 +3,7 @@ name = "mop" icon = 'icons/obj/janitor.dmi' icon_state = "mop" + inhand_icon_state = "mop" lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' force = 8 @@ -72,7 +73,6 @@ name = "advanced mop" max_reagent_volume = 10 icon_state = "advmop" - inhand_icon_state = "mop" lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' force = 12 diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 63b9912abbb..40fa897c7c2 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -533,7 +533,7 @@ name = "space lizard plushie" desc = "An adorable stuffed toy that resembles a very determined spacefaring lizardperson. To infinity and beyond, little guy." icon_state = "plushie_spacelizard" - inhand_icon_state = "plushie_spacelizard" + inhand_icon_state = null // space lizards can't hit people with their tail, it's stuck in their suit attack_verb_continuous = list("claws", "hisses", "bops") attack_verb_simple = list("claw", "hiss", "bops") @@ -543,7 +543,7 @@ name = "snake plushie" desc = "An adorable stuffed toy that resembles a snake. Not to be mistaken for the real thing." icon_state = "plushie_snake" - inhand_icon_state = "plushie_snake" + inhand_icon_state = null attack_verb_continuous = list("bites", "hisses", "tail slaps") attack_verb_simple = list("bite", "hiss", "tail slap") squeak_override = list('sound/weapons/bite.ogg' = 1) @@ -552,7 +552,7 @@ name = "operative plushie" desc = "A stuffed toy that resembles a syndicate nuclear operative. The tag claims operatives to be purely fictitious." icon_state = "plushie_nuke" - inhand_icon_state = "plushie_nuke" + inhand_icon_state = null attack_verb_continuous = list("shoots", "nukes", "detonates") attack_verb_simple = list("shoot", "nuke", "detonate") squeak_override = list('sound/effects/hit_punch.ogg' = 1) @@ -561,7 +561,7 @@ name = "plasmaman plushie" desc = "A stuffed toy that resembles your purple coworkers. Mmm, yeah, in true plasmaman fashion, it's not cute at all despite the designer's best efforts." icon_state = "plushie_pman" - inhand_icon_state = "plushie_pman" + inhand_icon_state = null attack_verb_continuous = list("burns", "space beasts", "fwooshes") attack_verb_simple = list("burn", "space beast", "fwoosh") squeak_override = list('sound/effects/extinguish.ogg' = 1) @@ -570,7 +570,7 @@ name = "slime plushie" desc = "An adorable stuffed toy that resembles a slime. It is practically just a hacky sack." icon_state = "plushie_slime" - inhand_icon_state = "plushie_slime" + inhand_icon_state = null attack_verb_continuous = list("blorbles", "slimes", "absorbs") attack_verb_simple = list("blorble", "slime", "absorb") squeak_override = list('sound/effects/blobattack.ogg' = 1) @@ -580,7 +580,7 @@ name = "awakened plushie" desc = "An ancient plushie that has grown enlightened to the true nature of reality." icon_state = "plushie_awake" - inhand_icon_state = "plushie_awake" + inhand_icon_state = null /obj/item/toy/plush/awakenedplushie/Initialize(mapload) . = ..() @@ -590,7 +590,7 @@ name = "bee plushie" desc = "A cute toy that resembles an even cuter bee." icon_state = "plushie_h" - inhand_icon_state = "plushie_h" + inhand_icon_state = null attack_verb_continuous = list("stings") attack_verb_simple = list("sting") gender = FEMALE @@ -658,7 +658,7 @@ name = "moth plushie" desc = "A plushie depicting an adorable mothperson. It's a huggable bug!" icon_state = "moffplush" - inhand_icon_state = "moffplush" + inhand_icon_state = null attack_verb_continuous = list("flutters", "flaps") attack_verb_simple = list("flutter", "flap") squeak_override = list('sound/voice/moth/scream_moth.ogg'=1) @@ -686,7 +686,6 @@ name = "peacekeeper plushie" desc = "A plushie depicting a peacekeeper cyborg. Only you can prevent human harm!" icon_state = "pkplush" - inhand_icon_state = "pkplush" attack_verb_continuous = list("hugs", "squeezes") attack_verb_simple = list("hug", "squeeze") squeak_override = list('sound/weapons/thudswoosh.ogg'=1) @@ -695,7 +694,7 @@ name = "runner plushie" desc = "A plushie depicting a xenomorph runner, made to commemorate the centenary of the Battle of LV-426. Much cuddlier than the real thing." icon_state = "rouny" - inhand_icon_state = "rouny" + inhand_icon_state = null attack_verb_continuous = list("slashes", "bites", "charges") attack_verb_simple = list("slash", "bite", "charge") squeak_override = list('sound/items/intents/Help.ogg' = 1) @@ -704,7 +703,7 @@ name = "abductor plushie" desc = "A plushie depicting an alien abductor. The tag on it is in an indecipherable language." icon_state = "abductor" - inhand_icon_state = "abductor" + inhand_icon_state = null attack_verb_continuous = list("abducts", "probes") attack_verb_continuous = list("abduct", "probe") squeak_override = list('sound/weather/ashstorm/inside/weak_end.ogg' = 1) //very faint sound since abductors are silent as far as "speaking" is concerned. @@ -713,7 +712,7 @@ name = "abductor agent plushie" desc = "A plushie depicting an alien abductor agent. The stun baton is attached to the hand of the plushie, and appears to be inert. I wouldn't stay alone with it." icon_state = "abductor_agent" - inhand_icon_state = "abductor_agent" + inhand_icon_state = null attack_verb_continuous = list("abducts", "probes", "stuns") attack_verb_continuous = list("abduct", "probe", "stun") squeak_override = list( @@ -725,7 +724,7 @@ name = "cucumber greek" desc = "A plushie depicting a large cucumber with eyes, it seems that according to the manufacturer of the toy, the human race will look like in the future." icon_state = "cucumber" - inhand_icon_state = "cucumber" + inhand_icon_state = null attack_verb_continuous = list("squishуы", "creakes", "crunches") attack_verb_simple = list("squish", "creak", "crunch") squeak_override = list( diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm index 836a684f74e..e935cf171fd 100644 --- a/code/game/objects/items/religion.dm +++ b/code/game/objects/items/religion.dm @@ -272,30 +272,36 @@ name = "Crusader's Hood" desc = "A brownish hood." icon_state = "crusader" + inhand_icon_state = null w_class = WEIGHT_CLASS_NORMAL flags_inv = HIDEHAIR|HIDEEARS|HIDEFACE armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 60, BIO = 0, FIRE = 60, ACID = 60) /obj/item/clothing/head/helmet/plate/crusader/blue icon_state = "crusader-blue" + inhand_icon_state = null /obj/item/clothing/head/helmet/plate/crusader/red icon_state = "crusader-red" + inhand_icon_state = null //Prophet helmet /obj/item/clothing/head/helmet/plate/crusader/prophet name = "Prophet's Hat" desc = "A religious-looking hat." icon_state = null + inhand_icon_state = null flags_1 = 0 armor = list(MELEE = 60, BULLET = 60, LASER = 60, ENERGY = 60, BOMB = 70, BIO = 50, FIRE = 60, ACID = 60) //religion protects you from disease, honk. worn_y_offset = 6 /obj/item/clothing/head/helmet/plate/crusader/prophet/red icon_state = "prophet-red" + inhand_icon_state = null /obj/item/clothing/head/helmet/plate/crusader/prophet/blue icon_state = "prophet-blue" + inhand_icon_state = null //Structure conversion staff /obj/item/godstaff diff --git a/code/game/objects/items/stacks/bscrystal.dm b/code/game/objects/items/stacks/bscrystal.dm index 8f2b25a79f2..5576f378f30 100644 --- a/code/game/objects/items/stacks/bscrystal.dm +++ b/code/game/objects/items/stacks/bscrystal.dm @@ -66,7 +66,7 @@ name = "bluespace polycrystal" icon = 'icons/obj/telescience.dmi' icon_state = "polycrystal" - inhand_icon_state = "sheet-polycrystal" + inhand_icon_state = null singular_name = "bluespace polycrystal" desc = "A stable polycrystal, made of fused-together bluespace crystals. You could probably break one off." mats_per_unit = list(/datum/material/bluespace=MINERAL_MATERIAL_AMOUNT) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index bd7c9e6e236..e373e3194d0 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -368,6 +368,7 @@ icon = 'icons/obj/medical/surgery_tools.dmi' icon_state = "bone-gel" + inhand_icon_state = "bone-gel" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' diff --git a/code/game/objects/items/stacks/sheets/hot_ice.dm b/code/game/objects/items/stacks/sheets/hot_ice.dm index 142d6c586f8..69b96bc541f 100644 --- a/code/game/objects/items/stacks/sheets/hot_ice.dm +++ b/code/game/objects/items/stacks/sheets/hot_ice.dm @@ -1,7 +1,7 @@ /obj/item/stack/sheet/hot_ice name = "hot ice" icon_state = "hot-ice" - inhand_icon_state = "hot-ice" + inhand_icon_state = null singular_name = "hot ice piece" icon = 'icons/obj/stack_objects.dmi' mats_per_unit = list(/datum/material/hot_ice=MINERAL_MATERIAL_AMOUNT) diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index 98d65b26a72..6503b655f05 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -2,7 +2,7 @@ name = "hide" desc = "Something went wrong." icon_state = "sheet-hide" - inhand_icon_state = "sheet-hide" + inhand_icon_state = null novariants = TRUE merge_type = /obj/item/stack/sheet/animalhide @@ -34,7 +34,7 @@ GLOBAL_LIST_INIT(human_recipes, list( \ desc = "The by-product of corgi farming." singular_name = "corgi hide piece" icon_state = "sheet-corgi" - inhand_icon_state = "sheet-corgi" + inhand_icon_state = null merge_type = /obj/item/stack/sheet/animalhide/corgi GLOBAL_LIST_INIT(gondola_recipes, list ( \ @@ -47,7 +47,7 @@ GLOBAL_LIST_INIT(gondola_recipes, list ( \ desc = "A thin layer of mothroach hide." singular_name = "mothroach hide piece" icon_state = "sheet-mothroach" - inhand_icon_state = "sheet-mothroach" + inhand_icon_state = null merge_type = /obj/item/stack/sheet/animalhide/mothroach /obj/item/stack/sheet/animalhide/gondola @@ -55,7 +55,7 @@ GLOBAL_LIST_INIT(gondola_recipes, list ( \ desc = "The extremely valuable product of gondola hunting." singular_name = "gondola hide piece" icon_state = "sheet-gondola" - inhand_icon_state = "sheet-gondola" + inhand_icon_state = null merge_type = /obj/item/stack/sheet/animalhide/gondola /obj/item/stack/sheet/animalhide/gondola/get_main_recipes() @@ -75,7 +75,7 @@ GLOBAL_LIST_INIT(corgi_recipes, list ( \ desc = "The by-product of cat farming." singular_name = "cat hide piece" icon_state = "sheet-cat" - inhand_icon_state = "sheet-cat" + inhand_icon_state = null merge_type = /obj/item/stack/sheet/animalhide/cat /obj/item/stack/sheet/animalhide/monkey @@ -83,7 +83,7 @@ GLOBAL_LIST_INIT(corgi_recipes, list ( \ desc = "The by-product of monkey farming." singular_name = "monkey hide piece" icon_state = "sheet-monkey" - inhand_icon_state = "sheet-monkey" + inhand_icon_state = null merge_type = /obj/item/stack/sheet/animalhide/monkey GLOBAL_LIST_INIT(monkey_recipes, list ( \ @@ -100,7 +100,7 @@ GLOBAL_LIST_INIT(monkey_recipes, list ( \ desc = "Sssssss..." singular_name = "lizard skin piece" icon_state = "sheet-lizard" - inhand_icon_state = "sheet-lizard" + inhand_icon_state = null merge_type = /obj/item/stack/sheet/animalhide/lizard /obj/item/stack/sheet/animalhide/xeno @@ -108,7 +108,7 @@ GLOBAL_LIST_INIT(monkey_recipes, list ( \ desc = "The skin of a terrible creature." singular_name = "alien hide piece" icon_state = "sheet-xeno" - inhand_icon_state = "sheet-xeno" + inhand_icon_state = null merge_type = /obj/item/stack/sheet/animalhide/xeno GLOBAL_LIST_INIT(xeno_recipes, list ( \ @@ -147,7 +147,7 @@ GLOBAL_LIST_INIT(xeno_recipes, list ( \ desc = "This hide was stripped of its hair, but still needs washing and tanning." singular_name = "hairless hide piece" icon_state = "sheet-hairlesshide" - inhand_icon_state = "sheet-hairlesshide" + inhand_icon_state = null merge_type = /obj/item/stack/sheet/hairlesshide /obj/item/stack/sheet/wethide @@ -155,7 +155,7 @@ GLOBAL_LIST_INIT(xeno_recipes, list ( \ desc = "This hide has been cleaned but still needs to be dried." singular_name = "wet hide piece" icon_state = "sheet-wetleather" - inhand_icon_state = "sheet-wetleather" + inhand_icon_state = null merge_type = /obj/item/stack/sheet/wethide /// Reduced when exposed to high temperatures var/wetness = 30 @@ -182,7 +182,7 @@ GLOBAL_LIST_INIT(xeno_recipes, list ( \ desc = "The by-product of mob grinding." singular_name = "leather piece" icon_state = "sheet-leather" - inhand_icon_state = "sheet-leather" + inhand_icon_state = null merge_type = /obj/item/stack/sheet/leather GLOBAL_LIST_INIT(leather_recipes, list ( \ @@ -307,7 +307,7 @@ GLOBAL_LIST_INIT(sinew_recipes, list ( \ desc = "The scaly skin of a space carp. It looks quite beatiful when detached from the foul creature who once wore it." singular_name = "carp scale" icon_state = "sheet-carp" - inhand_icon_state = "sheet-carp" + inhand_icon_state = null merge_type = /obj/item/stack/sheet/animalhide/carp GLOBAL_LIST_INIT(carp_recipes, list ( \ diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 3c661a4b6d1..0d9076ff7c1 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -34,7 +34,7 @@ GLOBAL_LIST_INIT(sandstone_recipes, list ( \ desc = "This appears to be a combination of both sand and stone." singular_name = "sandstone brick" icon_state = "sheet-sandstone" - inhand_icon_state = "sheet-sandstone" + inhand_icon_state = null throw_speed = 3 throw_range = 5 mats_per_unit = list(/datum/material/sandstone=MINERAL_MATERIAL_AMOUNT) @@ -240,7 +240,7 @@ GLOBAL_LIST_INIT(silver_recipes, list ( \ /obj/item/stack/sheet/mineral/bananium name = "bananium" icon_state = "sheet-bananium" - inhand_icon_state = "sheet-bananium" + inhand_icon_state = null singular_name = "bananium sheet" sheettype = "bananium" mats_per_unit = list(/datum/material/bananium=MINERAL_MATERIAL_AMOUNT) @@ -331,7 +331,7 @@ GLOBAL_LIST_INIT(plastitanium_recipes, list ( \ /obj/item/stack/sheet/mineral/snow name = "snow" icon_state = "sheet-snow" - inhand_icon_state = "sheet-snow" + inhand_icon_state = null mats_per_unit = list(/datum/material/snow = MINERAL_MATERIAL_AMOUNT) singular_name = "snow block" force = 1 @@ -475,7 +475,7 @@ GLOBAL_LIST_INIT(metalhydrogen_recipes, list( /obj/item/stack/sheet/mineral/metal_hydrogen name = "metal hydrogen" icon_state = "sheet-metalhydrogen" - inhand_icon_state = "sheet-metalhydrogen" + inhand_icon_state = null singular_name = "metal hydrogen sheet" w_class = WEIGHT_CLASS_NORMAL resistance_flags = FIRE_PROOF | LAVA_PROOF | ACID_PROOF | INDESTRUCTIBLE diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 891a7113a27..ee94ba4938e 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -434,7 +434,7 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ desc = "Is it cotton? Linen? Denim? Burlap? Canvas? You can't tell." singular_name = "cloth roll" icon_state = "sheet-cloth" - inhand_icon_state = "sheet-cloth" + inhand_icon_state = null resistance_flags = FLAMMABLE force = 0 throwforce = 0 @@ -465,7 +465,7 @@ GLOBAL_LIST_INIT(durathread_recipes, list ( \ desc = "A fabric sown from incredibly durable threads, known for its usefulness in armor production." singular_name = "durathread roll" icon_state = "sheet-durathread" - inhand_icon_state = "sheet-cloth" + inhand_icon_state = null resistance_flags = FLAMMABLE force = 0 throwforce = 0 @@ -674,7 +674,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ desc = "Rare kind of gems which are only gained by blood sacrifice to minor deities. They are needed in crafting powerful objects." singular_name = "lesser gem" icon_state = "sheet-lessergem" - inhand_icon_state = "sheet-lessergem" + inhand_icon_state = null novariants = TRUE merge_type = /obj/item/stack/sheet/lessergem @@ -683,7 +683,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ desc = "Rare kind of gems which are only gained by blood sacrifice to minor deities. They are needed in crafting powerful objects." singular_name = "greater gem" icon_state = "sheet-greatergem" - inhand_icon_state = "sheet-greatergem" + inhand_icon_state = null novariants = TRUE merge_type = /obj/item/stack/sheet/greatergem @@ -694,7 +694,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ name = "bones" icon = 'icons/obj/stack_objects.dmi' icon_state = "bone" - inhand_icon_state = "sheet-bone" + inhand_icon_state = null mats_per_unit = list(/datum/material/bone = MINERAL_MATERIAL_AMOUNT) singular_name = "bone" desc = "Someone's been drinking their milk." diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 78f6362863f..f627aadacfa 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -119,7 +119,7 @@ singular_name = "fairygrass floor tile" desc = "A patch of odd, glowing blue grass." icon_state = "tile_fairygrass" - inhand_icon_state = "tile-fairygrass" + inhand_icon_state = null turf_type = /turf/open/floor/grass/fairy resistance_flags = FLAMMABLE merge_type = /obj/item/stack/tile/fairygrass diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 6ccb8784e9c..de2120c26be 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -671,7 +671,7 @@ name = "wings" desc = "Granted to the henchmen who deserve it. This probably doesn't include you." icon_state = "henchmen" - inhand_icon_state = "henchmen" + inhand_icon_state = null /obj/item/storage/backpack/duffelbag/cops name = "police bag" diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 592473d6f21..d6cc550ecb1 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -511,7 +511,7 @@ name = "harpoon quiver" desc = "A quiver for holding harpoons." icon_state = "quiver" - inhand_icon_state = "quiver" + inhand_icon_state = null worn_icon_state = "harpoon_quiver" /obj/item/storage/bag/harpoon_quiver/Initialize(mapload) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index c23c69750ee..bbfa614151f 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -475,7 +475,7 @@ name = "cummerbund" desc = "A pleated sash that pairs well with a suit jacket." icon_state = "cummerbund" - inhand_icon_state = "cummerbund" + inhand_icon_state = null worn_icon_state = "cummerbund" /obj/item/storage/belt/military @@ -699,7 +699,7 @@ name = "fannypack" desc = "A dorky fannypack for keeping small items in." icon_state = "fannypack_leather" - inhand_icon_state = "fannypack_leather" + inhand_icon_state = null worn_icon_state = "fannypack_leather" dying_key = DYE_REGISTRY_FANNYPACK custom_price = PAYCHECK_CREW * 2 @@ -712,68 +712,58 @@ /obj/item/storage/belt/fannypack/black name = "black fannypack" icon_state = "fannypack_black" - inhand_icon_state = "fannypack_black" worn_icon_state = "fannypack_black" /obj/item/storage/belt/fannypack/red name = "red fannypack" icon_state = "fannypack_red" - inhand_icon_state = "fannypack_red" worn_icon_state = "fannypack_red" /obj/item/storage/belt/fannypack/purple name = "purple fannypack" icon_state = "fannypack_purple" - inhand_icon_state = "fannypack_purple" worn_icon_state = "fannypack_purple" /obj/item/storage/belt/fannypack/blue name = "blue fannypack" icon_state = "fannypack_blue" - inhand_icon_state = "fannypack_blue" worn_icon_state = "fannypack_blue" /obj/item/storage/belt/fannypack/orange name = "orange fannypack" icon_state = "fannypack_orange" - inhand_icon_state = "fannypack_orange" worn_icon_state = "fannypack_orange" /obj/item/storage/belt/fannypack/white name = "white fannypack" icon_state = "fannypack_white" - inhand_icon_state = "fannypack_white" worn_icon_state = "fannypack_white" /obj/item/storage/belt/fannypack/green name = "green fannypack" icon_state = "fannypack_green" - inhand_icon_state = "fannypack_green" worn_icon_state = "fannypack_green" /obj/item/storage/belt/fannypack/pink name = "pink fannypack" icon_state = "fannypack_pink" - inhand_icon_state = "fannypack_pink" worn_icon_state = "fannypack_pink" /obj/item/storage/belt/fannypack/cyan name = "cyan fannypack" icon_state = "fannypack_cyan" - inhand_icon_state = "fannypack_cyan" worn_icon_state = "fannypack_cyan" /obj/item/storage/belt/fannypack/yellow name = "yellow fannypack" icon_state = "fannypack_yellow" - inhand_icon_state = "fannypack_yellow" worn_icon_state = "fannypack_yellow" /obj/item/storage/belt/sabre name = "sabre sheath" desc = "An ornate sheath designed to hold an officer's blade." icon_state = "sheath" - inhand_icon_state = "sheath" + inhand_icon_state = null worn_icon_state = "sheath" w_class = WEIGHT_CLASS_BULKY @@ -824,7 +814,7 @@ name = "botanical belt" desc = "A belt used to hold most hydroponics supplies. Suprisingly, not green." icon_state = "plantbelt" - inhand_icon_state = "plantbelt" + inhand_icon_state = "championbelt" worn_icon_state = "plantbelt" content_overlays = TRUE diff --git a/code/game/objects/items/storage/boxes/food_boxes.dm b/code/game/objects/items/storage/boxes/food_boxes.dm index 785d5c55b26..e66130ee805 100644 --- a/code/game/objects/items/storage/boxes/food_boxes.dm +++ b/code/game/objects/items/storage/boxes/food_boxes.dm @@ -50,7 +50,7 @@ name = "paper sack" desc = "A sack neatly crafted out of paper." icon_state = "paperbag_None" - inhand_icon_state = "paperbag_None" + inhand_icon_state = null illustration = null resistance_flags = FLAMMABLE foldable = null diff --git a/code/game/objects/items/storage/boxes/service_boxes.dm b/code/game/objects/items/storage/boxes/service_boxes.dm index bbb6a935003..a0b8869d56b 100644 --- a/code/game/objects/items/storage/boxes/service_boxes.dm +++ b/code/game/objects/items/storage/boxes/service_boxes.dm @@ -76,6 +76,8 @@ icon = 'icons/obj/cigarettes.dmi' icon_state = "matchbox" inhand_icon_state = "zippo" + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' worn_icon_state = "lighter" w_class = WEIGHT_CLASS_TINY slot_flags = ITEM_SLOT_BELT diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index a6b42d23826..99e83d4b244 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -154,7 +154,7 @@ icon = 'icons/obj/candle.dmi' icon_state = "candlebox5" base_icon_state = "candlebox" - inhand_icon_state = "candlebox5" + inhand_icon_state = null worn_icon_state = "cigpack" throwforce = 2 slot_flags = ITEM_SLOT_BELT @@ -480,11 +480,11 @@ SHOULD_CALL_PARENT(FALSE) if(!contents.len) icon_state = "[base_icon_state]_empty" - else + else if(contents.len < 5) icon_state = "[base_icon_state]_[contents.len]" - else + else icon_state = base_icon_state return - + diff --git a/code/game/objects/items/storage/sixpack.dm b/code/game/objects/items/storage/sixpack.dm index 82f528c1380..f73970be2a7 100644 --- a/code/game/objects/items/storage/sixpack.dm +++ b/code/game/objects/items/storage/sixpack.dm @@ -4,8 +4,8 @@ icon = 'icons/obj/storage/storage.dmi' icon_state = "canholder" inhand_icon_state = "cola" - lefthand_file = 'icons/mob/inhands/items/food_lefthand.dmi' - righthand_file = 'icons/mob/inhands/items/food_righthand.dmi' + lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' custom_materials = list(/datum/material/plastic = 1200) max_integrity = 500 diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 27471897f42..afc2e605a32 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -146,17 +146,20 @@ material_flags = NONE /obj/item/storage/toolbox/electrical/PopulateContents() - var/pickedcolor = pick("red","yellow","green","blue","pink","orange","cyan","white") + var/pickedcolor = pick(GLOB.cable_colors) new /obj/item/screwdriver(src) new /obj/item/wirecutters(src) new /obj/item/t_scanner(src) new /obj/item/crowbar(src) - new /obj/item/stack/cable_coil(src,MAXCOIL,pickedcolor) - new /obj/item/stack/cable_coil(src,MAXCOIL,pickedcolor) + var/obj/item/stack/cable_coil/new_cable_one = new(src, MAXCOIL) + new_cable_one.set_cable_color(pickedcolor) + var/obj/item/stack/cable_coil/new_cable_two = new(src, MAXCOIL) + new_cable_two.set_cable_color(pickedcolor) if(prob(5)) new /obj/item/clothing/gloves/color/yellow(src) else - new /obj/item/stack/cable_coil(src,MAXCOIL,pickedcolor) + var/obj/item/stack/cable_coil/new_cable_three = new(src, MAXCOIL) + new_cable_three.set_cable_color(pickedcolor) /obj/item/storage/toolbox/syndicate name = "suspicious looking toolbox" @@ -206,7 +209,7 @@ /obj/item/storage/toolbox/artistic/Initialize(mapload) . = ..() atom_storage.max_total_storage = 20 - atom_storage.max_slots = 10 + atom_storage.max_slots = 11 /obj/item/storage/toolbox/artistic/PopulateContents() new /obj/item/storage/crayons(src) @@ -219,6 +222,7 @@ new /obj/item/stack/pipe_cleaner_coil/orange(src) new /obj/item/stack/pipe_cleaner_coil/cyan(src) new /obj/item/stack/pipe_cleaner_coil/white(src) + new /obj/item/stack/pipe_cleaner_coil/brown(src) /obj/item/storage/toolbox/ammo name = "ammo box" diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm index 5639d70fd8e..102d6ace895 100644 --- a/code/game/objects/items/tanks/jetpack.dm +++ b/code/game/objects/items/tanks/jetpack.dm @@ -166,7 +166,7 @@ name = "jet harness (oxygen)" desc = "A lightweight tactical harness, used by those who don't want to be weighed down by traditional jetpacks." icon_state = "jetpack-mini" - inhand_icon_state = "jetpack-mini" + inhand_icon_state = "jetpack-black" volume = 40 throw_range = 7 w_class = WEIGHT_CLASS_NORMAL diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm index c5cd3de9d79..c45fbb386b1 100644 --- a/code/game/objects/items/theft_tools.dm +++ b/code/game/objects/items/theft_tools.dm @@ -161,7 +161,7 @@ name = "supermatter sliver" desc = "A tiny, highly volatile sliver of a supermatter crystal. Do not handle without protection!" icon_state = "supermatter_sliver" - inhand_icon_state = "supermattersliver" + inhand_icon_state = null //touching it dusts you, so no need for an inhand icon. pulseicon = "supermatter_sliver_pulse" layer = ABOVE_MOB_LAYER plane = GAME_PLANE_UPPER diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm index dccd8c3a708..613c7f6571b 100644 --- a/code/game/objects/items/tools/crowbar.dm +++ b/code/game/objects/items/tools/crowbar.dm @@ -3,6 +3,7 @@ desc = "A small crowbar. This handy tool is useful for lots of things, such as prying floor tiles or opening unpowered doors." icon = 'icons/obj/tools.dmi' icon_state = "crowbar" + inhand_icon_state = "crowbar" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' usesound = 'sound/items/crowbar.ogg' @@ -30,6 +31,7 @@ /obj/item/crowbar/red icon_state = "crowbar_red" + inhand_icon_state = "crowbar_red" force = 8 /obj/item/crowbar/abductor diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm index f8402111f25..6d43fa5efa9 100644 --- a/code/game/objects/items/tools/wirecutters.dm +++ b/code/game/objects/items/tools/wirecutters.dm @@ -9,6 +9,9 @@ righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' greyscale_config = /datum/greyscale_config/wirecutters + greyscale_config_belt = /datum/greyscale_config/wirecutters_belt_overlay + greyscale_config_inhand_left = /datum/greyscale_config/wirecutter_inhand_left + greyscale_config_inhand_right = /datum/greyscale_config/wirecutter_inhand_right flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BELT diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm index 874b979c80c..adc26bab293 100644 --- a/code/game/objects/items/tools/wrench.dm +++ b/code/game/objects/items/tools/wrench.dm @@ -3,6 +3,7 @@ desc = "A wrench with common uses. Can be found in your hand." icon = 'icons/obj/tools.dmi' icon_state = "wrench" + inhand_icon_state = "wrench" worn_icon_state = "wrench" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' @@ -32,7 +33,6 @@ name = "alien wrench" desc = "A polarized wrench. It causes anything placed between the jaws to turn." icon = 'icons/obj/abductor.dmi' - icon_state = "wrench" belt_icon_state = "wrench_alien" custom_materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 2000, /datum/material/diamond = 2000) usesound = 'sound/effects/empulse.ogg' @@ -43,6 +43,7 @@ name = "medical wrench" desc = "A medical wrench with common(medical?) uses. Can be found in your hand." icon_state = "wrench_medical" + inhand_icon_state = "wrench_medical" force = 2 //MEDICAL throwforce = 4 attack_verb_continuous = list("heals", "medicals", "taps", "pokes", "analyzes") //"cobbyed" @@ -85,6 +86,7 @@ name = "combat wrench" desc = "It's like a normal wrench but edgier. Can be found on the battlefield." icon_state = "wrench_combat" + inhand_icon_state = "wrench_combat" belt_icon_state = "wrench_combat" attack_verb_continuous = list("devastates", "brutalizes", "commits a war crime against", "obliterates", "humiliates") attack_verb_simple = list("devastate", "brutalize", "commit a war crime against", "obliterate", "humiliate") diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 2d32292c872..703c02e2dee 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -223,11 +223,13 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 if(10) user.visible_message(span_warning("[user]'s eyes light up with a vengeful fire!"), \ span_userdanger("YOU FEEL THE POWER OF VALHALLA FLOWING THROUGH YOU! THERE CAN BE ONLY ONE!!!")) - user.update_icons() new_name = "GORE-DRENCHED CLAYMORE OF [pick("THE WHIMSICAL SLAUGHTER", "A THOUSAND SLAUGHTERED CATTLE", "GLORY AND VALHALLA", "ANNIHILATION", "OBLITERATION")]" icon_state = "claymore_gold" inhand_icon_state = "cultblade" + lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi' + righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' remove_atom_colour(ADMIN_COLOUR_PRIORITY) + user.update_held_items() name = new_name playsound(user, 'sound/items/screwdriver2.ogg', 50, TRUE) @@ -342,7 +344,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 name = "throwing star" desc = "An ancient weapon still used to this day, due to its ease of lodging itself into its victim's body parts." icon_state = "throwingstar" - inhand_icon_state = "eshield0" + inhand_icon_state = "eshield" lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi' force = 2 diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 98317ba3b7f..2819e3ba2dc 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -841,6 +841,7 @@ desc = "Parts of a rack." icon = 'icons/obj/weapons/items_and_weapons.dmi' icon_state = "rack_parts" + inhand_icon_state = "rack_parts" flags_1 = CONDUCT_1 custom_materials = list(/datum/material/iron=2000) var/building = FALSE diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index a701fe39896..9f8e6dd3a8e 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -248,6 +248,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/urinal, 32) icon = 'icons/obj/watercloset.dmi' icon_state = "rubberducky" inhand_icon_state = "rubberducky" + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' worn_icon_state = "duck" /obj/structure/sink diff --git a/code/modules/admin/verbs/BrokenInhands.dm b/code/modules/admin/verbs/BrokenInhands.dm deleted file mode 100644 index ebdeb24ebcb..00000000000 --- a/code/modules/admin/verbs/BrokenInhands.dm +++ /dev/null @@ -1,35 +0,0 @@ -/proc/getbrokeninhands() - var/text - for(var/A in typesof(/obj/item)) - var/obj/item/O = new A( locate(1,1,1) ) - if(!O) - continue - var/icon/IL = new(O.lefthand_file) - var/list/Lstates = IL.IconStates() - var/icon/IR = new(O.righthand_file) - var/list/Rstates = IR.IconStates() - var/icon/J = new(O.icon) - var/list/istates = J.IconStates() - if(!Lstates.Find(O.icon_state) && !Lstates.Find(O.inhand_icon_state)) - if(O.icon_state) - text += "[O.type] WANTS IN LEFT HAND CALLED\n\"[O.icon_state]\".\n" - if(!Rstates.Find(O.icon_state) && !Rstates.Find(O.inhand_icon_state)) - if(O.icon_state) - text += "[O.type] WANTS IN RIGHT HAND CALLED\n\"[O.icon_state]\".\n" - - - if(O.icon_state) - if(!istates.Find(O.icon_state)) - text += "[O.type] MISSING NORMAL ICON CALLED\n\"[O.icon_state]\" IN \"[O.icon]\"\n" - if(O.inhand_icon_state) - if(!istates.Find(O.inhand_icon_state)) - text += "[O.type] MISSING NORMAL ICON CALLED\n\"[O.inhand_icon_state]\" IN \"[O.icon]\"\n" - text+="\n" - qdel(O) - if(text) - var/F = file("broken_icons.txt") - fdel(F) - WRITE_FILE(F, text) - to_chat(world, "Completely successfully and written to [F]", confidential = TRUE) - - diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 1ad80f39d9b..0be54a14f70 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -642,7 +642,6 @@ Congratulations! You are now trained for invasive xenobiology research!"} desc = "An advanced alien headset designed to monitor communications of human space stations. Why does it have a microphone? No one knows." icon = 'icons/obj/abductor.dmi' icon_state = "abductor_headset" - inhand_icon_state = "abductor_headset" keyslot2 = /obj/item/encryptionkey/heads/captain /obj/item/radio/headset/abductor/Initialize(mapload) @@ -730,7 +729,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} name = "agent headgear" desc = "Abduct with style - spiky style. Prevents digital tracking." icon_state = "alienhelmet" - inhand_icon_state = "alienhelmet" + inhand_icon_state = null flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT /obj/item/clothing/head/helmet/abductor/equipped(mob/living/user, slot) diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index ba8081ade33..36c480dfcbe 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -502,6 +502,7 @@ /obj/item/clothing/head/helmet/space/changeling name = "flesh mass" icon_state = "lingspacehelmet" + inhand_icon_state = null desc = "A covering of pressure and temperature-resistant organic tissue with a glass-like chitin front." item_flags = DROPDEL clothing_flags = STOPSPRESSUREDAMAGE @@ -534,6 +535,7 @@ name = "chitinous mass" desc = "A tough, hard covering of black chitin." icon_state = "lingarmor" + inhand_icon_state = null item_flags = DROPDEL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS armor = list(MELEE = 40, BULLET = 40, LASER = 40, ENERGY = 50, BOMB = 10, BIO = 10, FIRE = 90, ACID = 90) @@ -551,6 +553,7 @@ name = "chitinous mass" desc = "A tough, hard covering of black chitin with transparent chitin in front." icon_state = "lingarmorhelmet" + inhand_icon_state = null item_flags = DROPDEL armor = list(MELEE = 40, BULLET = 40, LASER = 40, ENERGY = 50, BOMB = 10, BIO = 10, FIRE = 90, ACID = 90) flags_inv = HIDEEARS|HIDEHAIR|HIDEEYES|HIDEFACIALHAIR|HIDEFACE|HIDESNOUT diff --git a/code/modules/antagonists/cult/cult_bastard_sword.dm b/code/modules/antagonists/cult/cult_bastard_sword.dm index dd640725d00..8401adc8620 100644 --- a/code/modules/antagonists/cult/cult_bastard_sword.dm +++ b/code/modules/antagonists/cult/cult_bastard_sword.dm @@ -16,6 +16,7 @@ attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "rend") icon = 'icons/obj/cult/items_and_weapons.dmi' icon_state = "cultbastard" + inhand_icon_state = "cultbastard" hitsound = 'sound/weapons/bladeslice.ogg' lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi' righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' @@ -40,7 +41,7 @@ start_spin_message = span_danger("%USER begins swinging the sword around with inhuman strength!"), \ end_spin_message = span_warning("%USER's inhuman strength dissipates and the sword's runes grow cold!") \ ) - + /obj/item/cult_bastard/proc/on_spin(mob/living/user, duration) var/oldcolor = user.color user.color = "#ff0000" diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index 2e89b416ec8..f0de743e91c 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -174,6 +174,7 @@ Striking a noncultist, however, will tear their flesh."} /obj/item/clothing/head/hooded/cult_hoodie name = "ancient cultist hood" icon_state = "culthood" + inhand_icon_state = "culthood" desc = "A torn, dust-caked hood. Strange letters line the inside." flags_inv = HIDEFACE|HIDEHAIR|HIDEEARS flags_cover = HEADCOVERSEYES @@ -205,13 +206,13 @@ Striking a noncultist, however, will tear their flesh."} name = "cultist hood" desc = "An armored hood worn by the followers of Nar'Sie." icon_state = "cult_hoodalt" - inhand_icon_state = "cult_hoodalt" + inhand_icon_state = null /obj/item/clothing/suit/hooded/cultrobes/alt name = "cultist robes" desc = "An armored set of robes worn by the followers of Nar'Sie." icon_state = "cultrobesalt" - inhand_icon_state = "cultrobesalt" + inhand_icon_state = null hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/alt /obj/item/clothing/suit/hooded/cultrobes/alt/ghost @@ -225,7 +226,7 @@ Striking a noncultist, however, will tear their flesh."} /obj/item/clothing/head/magus name = "magus helm" icon_state = "magus" - inhand_icon_state = "magus" + inhand_icon_state = null desc = "A helm worn by the followers of Nar'Sie." flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEARS|HIDEEYES|HIDESNOUT armor = list(MELEE = 50, BULLET = 30, LASER = 50,ENERGY = 50, BOMB = 25, BIO = 10, FIRE = 10, ACID = 10) @@ -237,7 +238,7 @@ Striking a noncultist, however, will tear their flesh."} icon_state = "magusred" icon = 'icons/obj/clothing/suits/wizard.dmi' worn_icon = 'icons/mob/clothing/suits/wizard.dmi' - inhand_icon_state = "magusred" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|ARMS allowed = list(/obj/item/tome, /obj/item/melee/cultblade) armor = list(MELEE = 50, BULLET = 30, LASER = 50,ENERGY = 50, BOMB = 25, BIO = 10, FIRE = 10, ACID = 10) @@ -247,7 +248,7 @@ Striking a noncultist, however, will tear their flesh."} name = "\improper Nar'Sien hardened armor" desc = "A heavily-armored exosuit worn by warriors of the Nar'Sien cult. It can withstand hard vacuum." icon_state = "cult_armor" - inhand_icon_state = "cult_armor" + inhand_icon_state = null w_class = WEIGHT_CLASS_BULKY allowed = list(/obj/item/tome, /obj/item/melee/cultblade, /obj/item/tank/internals) armor = list(MELEE = 50, BULLET = 40, LASER = 50, ENERGY = 60, BOMB = 50, BIO = 100, FIRE = 100, ACID = 100) @@ -262,7 +263,7 @@ Striking a noncultist, however, will tear their flesh."} name = "\improper Nar'Sien hardened helmet" desc = "A heavily-armored helmet worn by warriors of the Nar'Sien cult. It can withstand hard vacuum." icon_state = "cult_helmet" - inhand_icon_state = "cult_helmet" + inhand_icon_state = null armor = list(MELEE = 50, BULLET = 40, LASER = 50, ENERGY = 60, BOMB = 50, BIO = 100, FIRE = 100, ACID = 100) clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT | PLASMAMAN_HELMET_EXEMPT flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT @@ -289,7 +290,7 @@ Striking a noncultist, however, will tear their flesh."} name = "empowered cultist armor" desc = "Empowered armor which creates a powerful shield around the user." icon_state = "cult_armor" - inhand_icon_state = "cult_armor" + inhand_icon_state = null w_class = WEIGHT_CLASS_BULKY armor = list(MELEE = 50, BULLET = 40, LASER = 50,ENERGY = 50, BOMB = 50, BIO = 30, FIRE = 50, ACID = 60) hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/cult_shield @@ -506,6 +507,8 @@ Striking a noncultist, however, will tear their flesh."} light_range = 1 icon_state = "torch" inhand_icon_state = "torch" + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' color = "#ff0000" on_damage = 15 slot_flags = null diff --git a/code/modules/antagonists/heretic/items/heretic_armor.dm b/code/modules/antagonists/heretic/items/heretic_armor.dm index 55d42e0b48c..255919f30b1 100644 --- a/code/modules/antagonists/heretic/items/heretic_armor.dm +++ b/code/modules/antagonists/heretic/items/heretic_armor.dm @@ -15,7 +15,7 @@ name = "ominous armor" desc = "A ragged, dusty set of robes. Strange eyes line the inside." icon_state = "eldritch_armor" - inhand_icon_state = "eldritch_armor" + inhand_icon_state = null flags_inv = HIDESHOES|HIDEJUMPSUIT body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS allowed = list(/obj/item/melee/sickly_blade) @@ -53,7 +53,7 @@ desc = "Black like tar, doesn't reflect any light. Runic symbols line the outside, \ with each flash you loose comprehension of what you are seeing." icon_state = "void_cloak" - inhand_icon_state = "void_cloak" + inhand_icon_state = null allowed = list(/obj/item/melee/sickly_blade) hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/void flags_inv = NONE @@ -61,10 +61,10 @@ // slightly worse than normal cult robes armor = list(MELEE = 30, BULLET = 30, LASER = 30,ENERGY = 30, BOMB = 15, BIO = 0, FIRE = 0, ACID = 0) alternative_mode = TRUE - + /obj/item/clothing/suit/hooded/cultrobes/void/Initialize(mapload) . = ..() - + create_storage(type = /datum/storage/pockets/void_cloak) /obj/item/clothing/suit/hooded/cultrobes/void/Initialize(mapload) diff --git a/code/modules/antagonists/heretic/items/madness_mask.dm b/code/modules/antagonists/heretic/items/madness_mask.dm index e620a95c01d..36cbb426c6f 100644 --- a/code/modules/antagonists/heretic/items/madness_mask.dm +++ b/code/modules/antagonists/heretic/items/madness_mask.dm @@ -3,7 +3,7 @@ name = "Abyssal Mask" desc = "A mask created from the suffering of existance. Looking down it's eyes, you notice something gazing back at you." icon_state = "mad_mask" - inhand_icon_state = "mad_mask" + inhand_icon_state = null w_class = WEIGHT_CLASS_SMALL flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 7f1cc05f09e..e4dcc9132c6 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -329,7 +329,12 @@ /datum/outfit/traitor/post_equip(mob/living/carbon/human/H, visualsOnly) var/obj/item/melee/energy/sword/sword = locate() in H.held_items - sword.icon_state = "e_sword_on_red" - sword.worn_icon_state = "e_sword_on_red" + if(sword.flags_1 & INITIALIZED_1) + sword.attack_self() + else //Atoms aren't initialized during the screenshots unit test, so we can't call attack_self for it as the sword doesn't have the transforming weapon component to handle the icon changes. The below part is ONLY for the antag screenshots unit test. + sword.icon_state = "e_sword_on_red" + sword.inhand_icon_state = "e_sword_on_red" + sword.worn_icon_state = "e_sword_on_red" + + H.update_held_items() - H.update_held_items() diff --git a/code/modules/balloon_alert/balloon_alert.dm b/code/modules/balloon_alert/balloon_alert.dm index 9464959e31a..ad7832ca735 100644 --- a/code/modules/balloon_alert/balloon_alert.dm +++ b/code/modules/balloon_alert/balloon_alert.dm @@ -33,6 +33,7 @@ // I would've made the maptext_height update on its own, but I don't know // if this would look bad on laggy clients. /atom/proc/balloon_alert_perform(mob/viewer, text) + var/client/viewer_client = viewer.client if (isnull(viewer_client)) return diff --git a/code/modules/capture_the_flag/ctf_equipment.dm b/code/modules/capture_the_flag/ctf_equipment.dm index 598ac1c7986..844e0931bd5 100644 --- a/code/modules/capture_the_flag/ctf_equipment.dm +++ b/code/modules/capture_the_flag/ctf_equipment.dm @@ -485,14 +485,14 @@ // Regular /obj/item/clothing/suit/armor/vest/ctf/red name = "red shielded vest" - inhand_icon_state = "ert_security" + inhand_icon_state = null team_shield_icon = "shield-red" greyscale_colors = COLOR_VIVID_RED // Light /obj/item/clothing/suit/armor/vest/ctf/light/red name = "light red shielded vest" - inhand_icon_state = "ert_security" + inhand_icon_state = null team_shield_icon = "shield-red" greyscale_colors = COLOR_VIVID_RED @@ -501,14 +501,14 @@ // Regular /obj/item/clothing/suit/armor/vest/ctf/blue name = "blue shielded vest" - inhand_icon_state = "ert_command" + inhand_icon_state = null team_shield_icon = "shield-old" greyscale_colors = COLOR_DARK_CYAN // Light /obj/item/clothing/suit/armor/vest/ctf/light/blue name = "light blue shielded vest" - inhand_icon_state = "ert_command" + inhand_icon_state = null team_shield_icon = "shield-old" greyscale_colors = COLOR_DARK_CYAN @@ -517,14 +517,14 @@ // Regular /obj/item/clothing/suit/armor/vest/ctf/green name = "green shielded vest" - inhand_icon_state = "ert_green" + inhand_icon_state = null team_shield_icon = "shield-green" greyscale_colors = COLOR_LIME // Light /obj/item/clothing/suit/armor/vest/ctf/light/green name = "light green shielded vest" - inhand_icon_state = "ert_green" + inhand_icon_state = null team_shield_icon = "shield-green" greyscale_colors = COLOR_LIME @@ -533,13 +533,13 @@ // Regular /obj/item/clothing/suit/armor/vest/ctf/yellow name = "yellow shielded vest" - inhand_icon_state = "ert_engineer" + inhand_icon_state = null team_shield_icon = "shield-yellow" greyscale_colors = COLOR_VIVID_YELLOW // Light /obj/item/clothing/suit/armor/vest/ctf/light/yellow name = "light yellow shielded vest" - inhand_icon_state = "ert_engineer" + inhand_icon_state = null team_shield_icon = "shield-yellow" greyscale_colors = COLOR_VIVID_YELLOW diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 88f556e459d..b01809d2901 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -468,6 +468,7 @@ name = "insulated gloves" icon_state = "yellow" inhand_icon_state = "ygloves" + greyscale_colors = null resistance_flags = NONE armor = list(MELEE = 10, BULLET = 10, LASER = 10, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50) @@ -598,6 +599,7 @@ /obj/item/clothing/shoes/chameleon name = "black shoes" icon_state = "sneakers" + inhand_icon_state = "sneakers_back" greyscale_colors = "#545454#ffffff" greyscale_config = /datum/greyscale_config/sneakers greyscale_config_worn = /datum/greyscale_config/sneakers_worn diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 8167fff5906..2aed402c10f 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -182,13 +182,15 @@ name = "eyepatch" desc = "Yarr." icon_state = "eyepatch" - inhand_icon_state = "eyepatch" + inhand_icon_state = null /obj/item/clothing/glasses/monocle name = "monocle" desc = "Such a dapper eyepiece!" icon_state = "monocle" inhand_icon_state = "headset" // lol + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' /obj/item/clothing/glasses/material name = "optical material scanner" @@ -284,13 +286,13 @@ name = "prescription glasses" desc = "Made by Uncool. Co." icon_state = "hipster_glasses" - inhand_icon_state = "hipster_glasses" + inhand_icon_state = null /obj/item/clothing/glasses/regular/circle name = "circle glasses" desc = "Why would you wear something so controversial yet so brave?" icon_state = "circle_glasses" - inhand_icon_state = "circle_glasses" + inhand_icon_state = null //Here lies green glasses, so ugly they died. RIP @@ -401,7 +403,7 @@ name = "blind personnel blindfold" desc = "Indicates that the wearer suffers from blindness." icon_state = "blindfoldwhite" - inhand_icon_state = "blindfoldwhite" + inhand_icon_state = null var/colored_before = FALSE /obj/item/clothing/glasses/blindfold/white/visual_equipped(mob/living/carbon/human/user, slot) @@ -430,7 +432,7 @@ /obj/item/clothing/glasses/sunglasses/big desc = "Strangely ancient technology used to help provide rudimentary eye cover. Larger than average enhanced shielding blocks flashes." icon_state = "bigsunglasses" - inhand_icon_state = "bigsunglasses" + inhand_icon_state = null /obj/item/clothing/glasses/thermal name = "optical thermal scanner" @@ -502,32 +504,32 @@ name = "optical thermal eyepatch" desc = "An eyepatch with built-in thermal optics." icon_state = "eyepatch" - inhand_icon_state = "eyepatch" + inhand_icon_state = null /obj/item/clothing/glasses/cold name = "cold goggles" desc = "A pair of goggles meant for low temperatures." icon_state = "cold" - inhand_icon_state = "cold" + inhand_icon_state = null /obj/item/clothing/glasses/heat name = "heat goggles" desc = "A pair of goggles meant for high temperatures." icon_state = "heat" - inhand_icon_state = "heat" + inhand_icon_state = null /obj/item/clothing/glasses/orange name = "orange glasses" desc = "A sweet pair of orange shades." icon_state = "orangeglasses" - inhand_icon_state = "orangeglasses" + inhand_icon_state = null glass_colour_type = /datum/client_colour/glass_colour/lightorange /obj/item/clothing/glasses/red name = "red glasses" desc = "Hey, you're looking good, senpai!" icon_state = "redglasses" - inhand_icon_state = "redglasses" + inhand_icon_state = null glass_colour_type = /datum/client_colour/glass_colour/red /obj/item/clothing/glasses/geist_gazers @@ -597,7 +599,7 @@ name = "binoclard lenses" desc = "Shows you know how to sew a lapel and center a back vent." icon_state = "binoclard_lenses" - inhand_icon_state = "binoclard_lenses" + inhand_icon_state = null /obj/item/clothing/glasses/salesman name = "colored glasses" @@ -644,10 +646,10 @@ name = "O.S.I. Sunglasses" desc = "There's no such thing as good news! Just bad news and... weird news.." icon_state = "osi_glasses" - inhand_icon_state = "osi_glasses" + inhand_icon_state = null /obj/item/clothing/glasses/phantom name = "Phantom Thief Mask" desc = "Lookin' cool." icon_state = "phantom_glasses" - inhand_icon_state = "phantom_glasses" + inhand_icon_state = null diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm index ecf518b319c..1a7428017d3 100644 --- a/code/modules/clothing/gloves/_gloves.dm +++ b/code/modules/clothing/gloves/_gloves.dm @@ -3,8 +3,12 @@ gender = PLURAL //Carn: for grammarically correct text-parsing w_class = WEIGHT_CLASS_SMALL icon = 'icons/obj/clothing/gloves.dmi' + inhand_icon_state = "greyscale_gloves" lefthand_file = 'icons/mob/inhands/clothing/gloves_lefthand.dmi' righthand_file = 'icons/mob/inhands/clothing/gloves_righthand.dmi' + greyscale_colors = null + greyscale_config_inhand_left = /datum/greyscale_config/gloves_inhand_left + greyscale_config_inhand_right = /datum/greyscale_config/gloves_inhand_right siemens_coefficient = 0.5 body_parts_covered = HANDS slot_flags = ITEM_SLOT_GLOVES diff --git a/code/modules/clothing/gloves/bone.dm b/code/modules/clothing/gloves/bone.dm index e2b0cfe0760..a03faa0fa88 100644 --- a/code/modules/clothing/gloves/bone.dm +++ b/code/modules/clothing/gloves/bone.dm @@ -2,7 +2,7 @@ name = "bone bracers" desc = "For when you're expecting to get slapped on the wrist. Offers modest protection to your arms." icon_state = "bracers" - inhand_icon_state = "bracers" + inhand_icon_state = null strip_delay = 40 equip_delay_other = 20 body_parts_covered = ARMS diff --git a/code/modules/clothing/gloves/botany.dm b/code/modules/clothing/gloves/botany.dm index 84ee42e0724..681c3d67153 100644 --- a/code/modules/clothing/gloves/botany.dm +++ b/code/modules/clothing/gloves/botany.dm @@ -2,7 +2,8 @@ name = "botanist's leather gloves" desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin. They're also quite warm." icon_state = "leather" - inhand_icon_state = "ggloves" + inhand_icon_state = null + greyscale_colors = null cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT heat_protection = HANDS diff --git a/code/modules/clothing/gloves/boxing.dm b/code/modules/clothing/gloves/boxing.dm index 4522a70bfcf..deed90b1696 100644 --- a/code/modules/clothing/gloves/boxing.dm +++ b/code/modules/clothing/gloves/boxing.dm @@ -2,19 +2,19 @@ name = "boxing gloves" desc = "Because you really needed another excuse to punch your crewmates." icon_state = "boxing" - inhand_icon_state = "boxing" + greyscale_colors = "#f32110" equip_delay_other = 60 species_exception = list(/datum/species/golem) // now you too can be a golem boxing champion clothing_traits = list(TRAIT_CHUNKYFINGERS) /obj/item/clothing/gloves/boxing/green icon_state = "boxinggreen" - inhand_icon_state = "boxinggreen" + greyscale_colors = "#00a500" /obj/item/clothing/gloves/boxing/blue icon_state = "boxingblue" - inhand_icon_state = "boxingblue" + greyscale_colors = "#0074fa" /obj/item/clothing/gloves/boxing/yellow icon_state = "boxingyellow" - inhand_icon_state = "boxingyellow" + greyscale_colors = "#d2a800" diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index 5eb48aaba35..b138b01a9d7 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -1,5 +1,6 @@ /obj/item/clothing/gloves/color dying_key = DYE_REGISTRY_GLOVES + greyscale_colors = null /obj/item/clothing/gloves/color/yellow desc = "These gloves provide protection against electric shock. The thickness of the rubber makes your fingers seem bigger." @@ -43,7 +44,7 @@ desc = "How're you gonna get 'em off, nerd?" name = "spray-on insulated gloves" icon_state = "sprayon" - inhand_icon_state = "sprayon" + inhand_icon_state = null item_flags = DROPDEL armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0) resistance_flags = ACID_PROOF @@ -72,6 +73,7 @@ name = "budget insulated gloves" icon_state = "yellow" inhand_icon_state = "ygloves" + greyscale_colors = null siemens_coefficient = 1 //Set to a default of 1, gets overridden in Initialize() armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 25, FIRE = 0, ACID = 0) resistance_flags = NONE @@ -94,6 +96,7 @@ name = "fingerless insulated gloves" icon_state = "yellowcut" inhand_icon_state = "ygloves" + greyscale_colors = null clothing_traits = list(TRAIT_FINGERPRINT_PASSTHROUGH) /obj/item/clothing/gloves/cut/heirloom @@ -103,7 +106,7 @@ desc = "These gloves are fire-resistant." name = "black gloves" icon_state = "black" - inhand_icon_state = "blackgloves" + greyscale_colors = "#2f2e31" cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT heat_protection = HANDS @@ -115,7 +118,7 @@ name = "fingerless gloves" desc = "Plain black gloves without fingertips for the hard working." icon_state = "fingerless" - inhand_icon_state = "fingerless" + greyscale_colors = "#2f2e31" strip_delay = 40 equip_delay_other = 20 cold_protection = HANDS @@ -128,13 +131,13 @@ name = "orange gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "orange" - inhand_icon_state = "orangegloves" + greyscale_colors = "#ff9300" /obj/item/clothing/gloves/color/red name = "red gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "red" - inhand_icon_state = "redgloves" + greyscale_colors = "#da0000" /obj/item/clothing/gloves/color/red/insulated @@ -148,31 +151,32 @@ name = "rainbow gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "rainbow" - inhand_icon_state = "rainbowgloves" + inhand_icon_state = "rainbow_gloves" + greyscale_colors = null /obj/item/clothing/gloves/color/blue name = "blue gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "blue" - inhand_icon_state = "bluegloves" + greyscale_colors = "#00b7ef" /obj/item/clothing/gloves/color/purple name = "purple gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "purple" - inhand_icon_state = "purplegloves" + greyscale_colors = "#cc33ff" /obj/item/clothing/gloves/color/green name = "green gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "green" - inhand_icon_state = "greengloves" + greyscale_colors = "#a8e61d" /obj/item/clothing/gloves/color/grey name = "grey gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "gray" - inhand_icon_state = "graygloves" + greyscale_colors = "#999999" // Grey gloves intended to be paired with winter coats (specifically EVA winter coats) /obj/item/clothing/gloves/color/grey/protects_cold @@ -188,19 +192,20 @@ name = "light brown gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "lightbrown" - inhand_icon_state = "lightbrowngloves" + greyscale_colors = "#c09f72" /obj/item/clothing/gloves/color/brown name = "brown gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "brown" - inhand_icon_state = "browngloves" + greyscale_colors = "#83613d" /obj/item/clothing/gloves/color/captain desc = "Regal blue gloves, with a nice gold trim, a diamond anti-shock coating, and an integrated thermal barrier. Swanky." name = "captain's gloves" icon_state = "captain" - inhand_icon_state = "egloves" + inhand_icon_state = null + greyscale_colors = null siemens_coefficient = 0 cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT @@ -214,7 +219,8 @@ desc = "These gloves provide excellent heat and electric insulation. They are so thin you can barely feel them." name = "advanced insulated gloves" icon_state = "ce_insuls" - inhand_icon_state = "lgloves" + inhand_icon_state = null + greyscale_colors = null siemens_coefficient = 0 cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT @@ -226,7 +232,8 @@ name = "latex gloves" desc = "Cheap sterile gloves made from latex. Provides quicker carrying from a good grip." icon_state = "latex" - inhand_icon_state = "latex" + inhand_icon_state = "latex_gloves" + greyscale_colors = null siemens_coefficient = 0.3 armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 0, ACID = 0) clothing_traits = list(TRAIT_QUICK_CARRY, TRAIT_FINGERPRINT_PASSTHROUGH) @@ -236,14 +243,16 @@ name = "nitrile gloves" desc = "Pricy sterile gloves that are thicker than latex. Excellent grip ensures very fast carrying of patients along with the faster use time of various chemical related items." icon_state = "nitrile" - inhand_icon_state = "nitrilegloves" + inhand_icon_state = "greyscale_gloves" + greyscale_colors = "#99eeff" clothing_traits = list(TRAIT_QUICKER_CARRY, TRAIT_FASTMED) /obj/item/clothing/gloves/color/infiltrator name = "infiltrator gloves" desc = "Specialized tactical gloves for carrying people around. Has tactical rubber grips for tactical ease of kidnapping. Tactically." icon_state = "infiltrator" - inhand_icon_state = "infiltrator" + inhand_icon_state = null + greyscale_colors = null siemens_coefficient = 0 armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 70, FIRE = 0, ACID = 0) clothing_traits = list(TRAIT_QUICKER_CARRY) @@ -253,8 +262,9 @@ name = "tinker's gloves" desc = "Overdesigned engineering gloves that have automated construction subrutines dialed in, allowing for faster construction while worn." icon = 'icons/obj/clothing/gloves.dmi' + inhand_icon_state = "greyscale_gloves" icon_state = "clockwork_gauntlets" - inhand_icon_state = "clockwork_gauntlets" + greyscale_colors = "#db6f05" siemens_coefficient = 0.8 armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 70, FIRE = 0, ACID = 0) clothing_traits = list(TRAIT_QUICK_BUILD) @@ -264,16 +274,18 @@ name = "white gloves" desc = "These look pretty fancy." icon_state = "white" - inhand_icon_state = "wgloves" + greyscale_colors = "#ffffff" custom_price = PAYCHECK_CREW /obj/item/clothing/gloves/kim name = "aerostatic gloves" desc = "Breathable red gloves for expert handling of a pen and notebook." icon_state = "aerostatic_gloves" - inhand_icon_state = "aerostatic_gloves" + greyscale_colors = "#a63814" /obj/item/clothing/gloves/maid name = "maid arm covers" desc = "Cylindrical looking tubes that go over your arm, weird." icon_state = "maid_arms" + inhand_icon_state = null + greyscale_colors = null diff --git a/code/modules/clothing/gloves/combat.dm b/code/modules/clothing/gloves/combat.dm index 3c30a8c1dc9..82177444a30 100644 --- a/code/modules/clothing/gloves/combat.dm +++ b/code/modules/clothing/gloves/combat.dm @@ -2,7 +2,7 @@ name = "combat gloves" desc = "These tactical gloves are fireproof and electrically insulated." icon_state = "black" - inhand_icon_state = "blackgloves" + greyscale_colors = "#2f2e31" siemens_coefficient = 0 strip_delay = 80 cold_protection = HANDS @@ -11,3 +11,10 @@ max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT resistance_flags = NONE armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 90, FIRE = 80, ACID = 50) + +/obj/item/clothing/gloves/combat/wizard + name = "enchanted gloves" + desc = "These gloves have been enchanted with a spell that makes them electrically insulated and fireproof." + icon_state = "wizard" + greyscale_colors = null + inhand_icon_state = null diff --git a/code/modules/clothing/gloves/plasmaman.dm b/code/modules/clothing/gloves/plasmaman.dm index 9be23483f47..65c99ec34db 100644 --- a/code/modules/clothing/gloves/plasmaman.dm +++ b/code/modules/clothing/gloves/plasmaman.dm @@ -2,7 +2,7 @@ desc = "Covers up those scandalous boney hands." name = "plasma envirogloves" icon_state = "plasmaman" - inhand_icon_state = "bgloves" + greyscale_colors = "#913b00" cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT heat_protection = HANDS @@ -13,90 +13,106 @@ /obj/item/clothing/gloves/color/plasmaman/black name = "black envirogloves" icon_state = "blackplasma" + greyscale_colors = "#2f2e31" /obj/item/clothing/gloves/color/plasmaman/plasmanitrile name = "nitrile envirogloves" desc = "Pricy nitrile gloves made for plasmamen." icon_state = "nitrile" + greyscale_colors = "#913b00" clothing_traits = list(TRAIT_QUICKER_CARRY, TRAIT_FASTMED) /obj/item/clothing/gloves/color/plasmaman/white name = "white envirogloves" icon_state = "whiteplasma" + greyscale_colors = "#ffffff" /obj/item/clothing/gloves/color/plasmaman/robot name = "roboticist envirogloves" icon_state = "robotplasma" + greyscale_colors = "#932500" /obj/item/clothing/gloves/color/plasmaman/janny name = "janitor envirogloves" icon_state = "jannyplasma" + greyscale_colors = "#883391" /obj/item/clothing/gloves/color/plasmaman/cargo name = "cargo envirogloves" icon_state = "cargoplasma" + greyscale_colors = "#bb9042" /obj/item/clothing/gloves/color/plasmaman/engineer name = "engineering envirogloves" icon_state = "engieplasma" + greyscale_colors = "#d75600" siemens_coefficient = 0 /obj/item/clothing/gloves/color/plasmaman/atmos name = "atmos envirogloves" icon_state = "atmosplasma" + greyscale_colors = "#00a5ff" /obj/item/clothing/gloves/color/plasmaman/explorer name = "explorer envirogloves" icon_state = "explorerplasma" + greyscale_colors = "#47453d" /obj/item/clothing/gloves/color/plasmaman/botanic_leather name = "botany envirogloves" desc = "These leather gloves protect your boney hands against thorns, barbs, prickles, spikes and other harmful objects of floral origin." icon_state = "botanyplasma" + greyscale_colors = "#3164ff" clothing_traits = list(TRAIT_PLANT_SAFE) /obj/item/clothing/gloves/color/plasmaman/prototype name = "prototype envirogloves" icon_state = "protoplasma" + greyscale_colors = "#911801" /obj/item/clothing/gloves/color/plasmaman/clown name = "clown envirogloves" icon_state = "clownplasma" - -/obj/item/clothing/gloves/combat/wizard - name = "enchanted gloves" - desc = "These gloves have been enchanted with a spell that makes them electrically insulated and fireproof." - icon_state = "wizard" + greyscale_colors = "#ff0000" /obj/item/clothing/gloves/color/plasmaman/head_of_personnel name = "head of personnel's envirogloves" desc = "Covers up those scandalous, bony hands. Appears to be an attempt at making a replica of the captain's gloves." icon_state = "hopplasma" + inhand_icon_state = null + greyscale_colors = null /obj/item/clothing/gloves/color/plasmaman/chief_engineer name = "chief engineer's envirogloves" icon_state = "ceplasma" + greyscale_colors = "#45ff00" siemens_coefficient = 0 /obj/item/clothing/gloves/color/plasmaman/research_director name = "research director's envirogloves" icon_state = "rdplasma" + greyscale_colors = "#64008a" /obj/item/clothing/gloves/color/plasmaman/centcom_commander name = "CentCom commander envirogloves" icon_state = "commanderplasma" + greyscale_colors = "#009100" /obj/item/clothing/gloves/color/plasmaman/centcom_official name = "CentCom official envirogloves" icon_state = "officialplasma" + greyscale_colors = "#10af77" /obj/item/clothing/gloves/color/plasmaman/centcom_intern name = "CentCom intern envirogloves" icon_state = "internplasma" + greyscale_colors = "#00974b" /obj/item/clothing/gloves/color/plasmaman/radio name = "translation envirogloves" desc = "Allows the less vocally-capable plasmamen to use sign language over comms." icon_state = "radio_gplasma" + inhand_icon_state = null + greyscale_colors = null worn_icon_state = "radio_g" clothing_traits = list(TRAIT_CAN_SIGN_ON_COMMS) diff --git a/code/modules/clothing/gloves/special.dm b/code/modules/clothing/gloves/special.dm index 926d339ff15..d5a54d88339 100644 --- a/code/modules/clothing/gloves/special.dm +++ b/code/modules/clothing/gloves/special.dm @@ -3,7 +3,7 @@ name = "\improper H.A.U.L. gauntlets" desc = "These clunky gauntlets allow you to drag things with more confidence on them not getting nabbed from you." icon_state = "haul_gauntlet" - inhand_icon_state = "bgloves" + greyscale_colors = "#2f2e31" equip_delay_self = 3 SECONDS equip_delay_other = 4 SECONDS clothing_traits = list(TRAIT_CHUNKYFINGERS) @@ -53,7 +53,7 @@ name = "Gloves of the North Star" desc = "Just looking at these fills you with an urge to beat the shit out of people." icon_state = "rapid" - inhand_icon_state = "rapid" + inhand_icon_state = null clothing_traits = list(TRAIT_FINGERPRINT_PASSTHROUGH) /obj/item/clothing/gloves/rapid/Initialize(mapload) @@ -64,7 +64,7 @@ name = "translation gloves" desc = "A pair of electronic gloves which connect to nearby radios wirelessly. Allows for sign language users to 'speak' over comms." icon_state = "radio_g" - inhand_icon_state = "radio_g" + inhand_icon_state = null clothing_traits = list(TRAIT_CAN_SIGN_ON_COMMS) /obj/item/clothing/gloves/race @@ -72,4 +72,4 @@ desc = "Extremely finely made gloves meant for use by sportsmen in speed-shooting competitions." clothing_traits = list(TRAIT_DOUBLE_TAP) icon_state = "black" - inhand_icon_state = "blackgloves" + greyscale_colors = "#2f2e31" diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm index 16af9af1404..a94cf06a612 100644 --- a/code/modules/clothing/gloves/tacklers.dm +++ b/code/modules/clothing/gloves/tacklers.dm @@ -2,7 +2,7 @@ name = "gripper gloves" desc = "Special gloves that manipulate the blood vessels in the wearer's hands, granting them the ability to launch headfirst into walls." icon_state = "tackle" - inhand_icon_state = "tackle" + inhand_icon_state = null cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT resistance_flags = NONE @@ -47,7 +47,7 @@ name = "dolphin gloves" desc = "Sleek, aerodynamic gripper gloves that are less effective at actually performing takedowns, but more effective at letting the user sail through the hallways and cause accidents." icon_state = "tackledolphin" - inhand_icon_state = "tackledolphin" + inhand_icon_state = null tackle_stam_cost = 15 base_knockdown = 0.5 SECONDS @@ -60,7 +60,8 @@ name = "gorilla gloves" desc = "Premium quality combative gloves, heavily reinforced to give the user an edge in close combat tackles, though they are more taxing to use than normal gripper gloves. Fireproof to boot!" icon_state = "black" - inhand_icon_state = "blackgloves" + inhand_icon_state = "greyscale_gloves" + greyscale_colors = "#2f2e31" tackle_stam_cost = 30 base_knockdown = 1.25 SECONDS @@ -83,7 +84,7 @@ name = "rocket gloves" desc = "The ultimate in high risk, high reward, perfect for when you need to stop a criminal from fifty feet away or die trying. Banned in most Spinward gridiron football and rugby leagues." icon_state = "tacklerocket" - inhand_icon_state = "tacklerocket" + inhand_icon_state = null tackle_stam_cost = 50 base_knockdown = 2 SECONDS @@ -96,7 +97,7 @@ name = "improvised gripper gloves" desc = "Ratty looking fingerless gloves wrapped with sticky tape. Beware anyone wearing these, for they clearly have no shame and nothing to lose." icon_state = "fingerless" - inhand_icon_state = "fingerless" + inhand_icon_state = null tackle_stam_cost = 30 base_knockdown = 1.75 SECONDS @@ -107,4 +108,4 @@ name = "football gloves" desc = "Gloves for football players! Teaches them how to tackle like a pro." icon_state = "tackle_gloves" - inhand_icon_state = "tackle_gloves" + inhand_icon_state = null diff --git a/code/modules/clothing/head/cakehat.dm b/code/modules/clothing/head/cakehat.dm index efcc07c886c..5cf4b736e54 100644 --- a/code/modules/clothing/head/cakehat.dm +++ b/code/modules/clothing/head/cakehat.dm @@ -6,12 +6,6 @@ hat_type = "cakehat" lefthand_file = 'icons/mob/inhands/clothing/hats_lefthand.dmi' righthand_file = 'icons/mob/inhands/clothing/hats_righthand.dmi' - hitsound = 'sound/weapons/tap.ogg' - var/hitsound_on = 'sound/weapons/sear.ogg' //so we can differentiate between cakehat and energyhat - var/hitsound_off = 'sound/weapons/tap.ogg' - var/force_on = 15 - var/throwforce_on = 15 - var/damtype_on = BURN flags_inv = HIDEEARS|HIDEHAIR armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0) light_range = 2 //luminosity when on @@ -20,9 +14,15 @@ heat = 999 dog_fashion = /datum/dog_fashion/head + hitsound = 'sound/weapons/tap.ogg' + var/hitsound_on = 'sound/weapons/sear.ogg' //so we can differentiate between cakehat and energyhat + var/hitsound_off = 'sound/weapons/tap.ogg' + var/force_on = 15 + var/throwforce_on = 15 + var/damtype_on = BURN /obj/item/clothing/head/hardhat/cakehat/process() - var/turf/location = src.loc + var/turf/location = loc if(ishuman(location)) var/mob/living/carbon/human/wearer = location if(wearer.is_holding(src) || wearer.head == src) @@ -65,11 +65,11 @@ heat = 0 /obj/item/clothing/head/hardhat/cakehat/energycake/turn_on(mob/living/user) - playsound(user, 'sound/weapons/saberon.ogg', 5, TRUE) + playsound(src, 'sound/weapons/saberon.ogg', 5, TRUE) to_chat(user, span_warning("You turn on \the [src].")) - ..() + return ..() /obj/item/clothing/head/hardhat/cakehat/energycake/turn_off(mob/living/user) - playsound(user, 'sound/weapons/saberoff.ogg', 5, TRUE) + playsound(src, 'sound/weapons/saberoff.ogg', 5, TRUE) to_chat(user, span_warning("You turn off \the [src].")) - ..() + return ..() diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm index b0f375ee152..76799889c41 100644 --- a/code/modules/clothing/head/collectable.dm +++ b/code/modules/clothing/head/collectable.dm @@ -25,7 +25,7 @@ name = "collectable chef's hat" desc = "A rare chef's hat meant for hat collectors!" icon_state = "chef" - inhand_icon_state = "chef" + inhand_icon_state = "chefhat" dog_fashion = /datum/dog_fashion/head/chef @@ -46,7 +46,7 @@ name = "collectable captain's hat" desc = "A collectable hat that'll make you look just like a real comdom!" icon_state = "captain" - inhand_icon_state = "caphat" + inhand_icon_state = null dog_fashion = /datum/dog_fashion/head/captain @@ -72,13 +72,15 @@ desc = "A collectable welding helmet. Now with 80% less lead! Not for actual welding. Any welding done while wearing this helmet is done so at the owner's own risk!" icon_state = "welding" inhand_icon_state = "welding" + lefthand_file = 'icons/mob/inhands/clothing/masks_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/masks_righthand.dmi' clothing_flags = SNUG_FIT /obj/item/clothing/head/collectable/slime name = "collectable slime hat" desc = "Just like a real brain slug!" icon_state = "headslime" - inhand_icon_state = "headslime" + inhand_icon_state = null clothing_flags = SNUG_FIT @@ -89,13 +91,13 @@ greyscale_config = /datum/greyscale_config/beret greyscale_config_worn = /datum/greyscale_config/beret/worn greyscale_colors = "#8F7654" - inhand_icon_state = "detective" + inhand_icon_state = null /obj/item/clothing/head/collectable/pirate name = "collectable pirate hat" desc = "You'd make a great Dread Syndie Roberts!" icon_state = "pirate" - inhand_icon_state = "pirate" + inhand_icon_state = null dog_fashion = /datum/dog_fashion/head/pirate @@ -103,7 +105,7 @@ name = "collectable kitty ears" desc = "The fur feels... a bit too realistic." icon_state = "kitty" - inhand_icon_state = "kitty" + inhand_icon_state = null dog_fashion = /datum/dog_fashion/head/kitty @@ -112,7 +114,7 @@ name = "collectable rabbit ears" desc = "Not as lucky as the feet!" icon_state = "bunny" - inhand_icon_state = "bunny" + inhand_icon_state = null dog_fashion = /datum/dog_fashion/head/rabbit @@ -129,7 +131,7 @@ desc = "WARNING! Offers no real protection, or luminosity, but damn, is it fancy!" clothing_flags = SNUG_FIT icon_state = "hardhat0_yellow" - inhand_icon_state = "hardhat0_yellow" + inhand_icon_state = null dog_fashion = /datum/dog_fashion/head @@ -149,14 +151,14 @@ name = "collectable Thunderdome helmet" desc = "Go Red! I mean Green! I mean Red! No Green!" icon_state = "thunderdome" - inhand_icon_state = "thunderdome" + inhand_icon_state = "thunderdome_helmet" clothing_flags = SNUG_FIT - flags_inv = HIDEHAIR + flags_inv = HIDEHAIR|HIDEHAIR /obj/item/clothing/head/collectable/swat name = "collectable SWAT helmet" desc = "That's not real blood. That's red paint." //Reference to the actual description - icon_state = "swat" - inhand_icon_state = "swat" + icon_state = "swatsyndie" + inhand_icon_state = "swatsyndie_helmet" clothing_flags = SNUG_FIT flags_inv = HIDEHAIR diff --git a/code/modules/clothing/head/cone.dm b/code/modules/clothing/head/cone.dm index 62179f47e30..01caef21d42 100644 --- a/code/modules/clothing/head/cone.dm +++ b/code/modules/clothing/head/cone.dm @@ -3,7 +3,7 @@ name = "warning cone" icon = 'icons/obj/janitor.dmi' icon_state = "cone" - inhand_icon_state = "cone" + inhand_icon_state = null force = 1 throwforce = 3 throw_speed = 2 diff --git a/code/modules/clothing/head/costume.dm b/code/modules/clothing/head/costume.dm index be7d643dd46..2fe390485f1 100644 --- a/code/modules/clothing/head/costume.dm +++ b/code/modules/clothing/head/costume.dm @@ -23,7 +23,7 @@ name = "cueball helmet" desc = "A large, featureless white orb meant to be worn on your head. How do you even see out of this thing?" icon_state = "cueball" - inhand_icon_state="cueball" + inhand_icon_state = null clothing_flags = SNUG_FIT flags_cover = HEADCOVERSEYES|HEADCOVERSMOUTH flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT @@ -32,7 +32,7 @@ name = "snowman head" desc = "A ball of white styrofoam. So festive." icon_state = "snowman_h" - inhand_icon_state = "snowman_h" + inhand_icon_state = null clothing_flags = SNUG_FIT flags_cover = HEADCOVERSEYES flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT @@ -41,7 +41,7 @@ name = "witch costume wig" desc = "Eeeee~heheheheheheh!" icon_state = "witch" - inhand_icon_state = "witch" + inhand_icon_state = null flags_inv = HIDEHAIR /obj/item/clothing/head/maidheadband @@ -53,7 +53,7 @@ name = "chicken suit head" desc = "Bkaw!" icon_state = "chickenhead" - inhand_icon_state = "chickensuit" + inhand_icon_state = "chicken_head" clothing_flags = SNUG_FIT flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT @@ -61,7 +61,7 @@ name = "griffon head" desc = "Why not 'eagle head'? Who knows." icon_state = "griffinhat" - inhand_icon_state = "griffinhat" + inhand_icon_state = null clothing_flags = SNUG_FIT flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT @@ -92,7 +92,7 @@ desc = "Purify in style!" flags_inv = HIDEHAIR //bald icon_state = "shrine_wig" - inhand_icon_state = "shrine_wig" + inhand_icon_state = null worn_y_offset = 1 @@ -169,26 +169,26 @@ /obj/item/clothing/head/irs name = "internal revenue service cap" icon_state = "irs_hat" - inhand_icon_state = "irs_hat" + inhand_icon_state = null /obj/item/clothing/head/tmc name = "Lost M.C. bandana" icon_state = "tmc_hat" - inhand_icon_state = "tmc_hat" + inhand_icon_state = null /obj/item/clothing/head/deckers name = "Decker headphones" icon_state = "decker_hat" - inhand_icon_state = "decker_hat" + inhand_icon_state = null /obj/item/clothing/head/yuri name = "yuri initiate helmet" icon_state = "yuri_helmet" - inhand_icon_state = "yuri_helmet" + inhand_icon_state = null clothing_flags = SNUG_FIT flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT /obj/item/clothing/head/allies name = "allies helmet" icon_state = "allies_helmet" - inhand_icon_state = "allies_helmet" + inhand_icon_state = null diff --git a/code/modules/clothing/head/fedora.dm b/code/modules/clothing/head/fedora.dm index c3f7074841c..7ffc93270f2 100644 --- a/code/modules/clothing/head/fedora.dm +++ b/code/modules/clothing/head/fedora.dm @@ -6,18 +6,18 @@ /obj/item/clothing/head/fedora/Initialize(mapload) . = ..() - + create_storage(type = /datum/storage/pockets/small/fedora) /obj/item/clothing/head/fedora/white name = "white fedora" icon_state = "fedora_white" - inhand_icon_state = "fedora_white" + inhand_icon_state = null /obj/item/clothing/head/fedora/beige name = "beige fedora" icon_state = "fedora_beige" - inhand_icon_state = "fedora_beige" + inhand_icon_state = null /obj/item/clothing/head/fedora/suicide_act(mob/user) if(user.gender == FEMALE) @@ -32,4 +32,4 @@ /obj/item/clothing/head/fedora/carpskin name = "carpskin fedora" icon_state = "fedora_carpskin" - inhand_icon_state = "fedora_carpskin" + inhand_icon_state = null diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 5fe0b11929e..e2205722733 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -2,7 +2,7 @@ name = "hard hat" desc = "A piece of headgear used in dangerous working conditions to protect the head. Comes with a built-in flashlight." icon_state = "hardhat0_yellow" - inhand_icon_state = "hardhat0_yellow" + inhand_icon_state = null armor = list(MELEE = 15, BULLET = 5, LASER = 20, ENERGY = 10, BOMB = 20, BIO = 50, FIRE = 100, ACID = 50, WOUND = 10) // surprisingly robust against head trauma flags_inv = 0 actions_types = list(/datum/action/item_action/toggle_helmet_light) @@ -48,13 +48,13 @@ /obj/item/clothing/head/hardhat/orange icon_state = "hardhat0_orange" - inhand_icon_state = "hardhat0_orange" + inhand_icon_state = null hat_type = "orange" dog_fashion = null /obj/item/clothing/head/hardhat/red icon_state = "hardhat0_red" - inhand_icon_state = "hardhat0_red" + inhand_icon_state = null hat_type = "red" dog_fashion = null name = "firefighter helmet" @@ -68,7 +68,7 @@ name = "workplace-ready firefighter helmet" desc = "By applying state of the art lighting technology to a fire helmet, and using photo-chemical hardening methods, this hardhat will protect you from robust workplace hazards." icon_state = "hardhat0_purple" - inhand_icon_state = "hardhat0_purple" + inhand_icon_state = null light_range = 5 resistance_flags = FIRE_PROOF | ACID_PROOF custom_materials = list(/datum/material/iron = 4000, /datum/material/glass = 1000, /datum/material/plastic = 3000, /datum/material/silver = 500) @@ -76,7 +76,7 @@ /obj/item/clothing/head/hardhat/white icon_state = "hardhat0_white" - inhand_icon_state = "hardhat0_white" + inhand_icon_state = null hat_type = "white" clothing_flags = STOPSPRESSUREDAMAGE | PLASMAMAN_HELMET_EXEMPT heat_protection = HEAD @@ -87,13 +87,13 @@ /obj/item/clothing/head/hardhat/dblue icon_state = "hardhat0_dblue" - inhand_icon_state = "hardhat0_dblue" + inhand_icon_state = null hat_type = "dblue" dog_fashion = null /obj/item/clothing/head/hardhat/atmos icon_state = "hardhat0_atmos" - inhand_icon_state = "hardhat0_atmos" + inhand_icon_state = null hat_type = "atmos" dog_fashion = null name = "atmospheric technician's firefighting helmet" @@ -164,13 +164,13 @@ /obj/item/clothing/head/hardhat/weldhat/orange icon_state = "hardhat0_orange" - inhand_icon_state = "hardhat0_orange" + inhand_icon_state = null hat_type = "orange" /obj/item/clothing/head/hardhat/weldhat/white desc = "A piece of headgear used in dangerous working conditions to protect the head. Comes with a built-in flashlight AND welding shield!" //This bulb is not smaller icon_state = "hardhat0_white" - inhand_icon_state = "hardhat0_white" + inhand_icon_state = null light_range = 4 //Boss always takes the best stuff hat_type = "white" clothing_flags = STOPSPRESSUREDAMAGE | PLASMAMAN_HELMET_EXEMPT @@ -181,14 +181,14 @@ /obj/item/clothing/head/hardhat/weldhat/dblue icon_state = "hardhat0_dblue" - inhand_icon_state = "hardhat0_dblue" + inhand_icon_state = null hat_type = "dblue" /obj/item/clothing/head/hardhat/pumpkinhead name = "carved pumpkin" desc = "A jack o' lantern! Believed to ward off evil spirits." icon_state = "hardhat0_pumpkin" - inhand_icon_state = "hardhat0_pumpkin" + inhand_icon_state = null hat_type = "pumpkin" clothing_flags = SNUG_FIT | PLASMAMAN_HELMET_EXEMPT flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT @@ -227,7 +227,7 @@ name = "carved blumpkin" desc = "A very blue jack o' lantern! Believed to ward off vengeful chemists." icon_state = "hardhat0_blumpkin" - inhand_icon_state = "hardhat0_blumpkin" + inhand_icon_state = null hat_type = "blumpkin" light_color = "#76ff8e" dog_fashion = /datum/dog_fashion/head/blumpkin/unlit @@ -244,7 +244,7 @@ name = "novelty reindeer hat" desc = "Some fake antlers and a very fake red nose." icon_state = "hardhat0_reindeer" - inhand_icon_state = "hardhat0_reindeer" + inhand_icon_state = null hat_type = "reindeer" flags_inv = 0 armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0) diff --git a/code/modules/clothing/head/hat.dm b/code/modules/clothing/head/hat.dm index b56e326f6d1..91f01e3dbbe 100644 --- a/code/modules/clothing/head/hat.dm +++ b/code/modules/clothing/head/hat.dm @@ -11,7 +11,7 @@ name = "constable helmet" desc = "A british looking helmet." icon_state = "constable" - inhand_icon_state = "constable" + inhand_icon_state = null custom_price = PAYCHECK_COMMAND * 1.5 worn_y_offset = 4 @@ -19,13 +19,13 @@ name = "space police cap" desc = "A blue cap for patrolling the daily beat." icon_state = "policecap_families" - inhand_icon_state = "policecap_families" + inhand_icon_state = null /obj/item/clothing/head/canada name = "striped red tophat" desc = "It smells like fresh donut holes. / Il sent comme des trous de beignets frais." icon_state = "canada" - inhand_icon_state = "canada" + inhand_icon_state = null /obj/item/clothing/head/redcoat name = "redcoat's hat" @@ -53,13 +53,13 @@ name = "bowler-hat" desc = "Gentleman, elite aboard!" icon_state = "bowler" - inhand_icon_state = "bowler" + inhand_icon_state = null /obj/item/clothing/head/bearpelt name = "bear pelt hat" desc = "Fuzzy." icon_state = "bearpelt" - inhand_icon_state = "bearpelt" + inhand_icon_state = null /obj/item/clothing/head/flatcap name = "flat cap" @@ -68,14 +68,14 @@ greyscale_config = /datum/greyscale_config/beret greyscale_config_worn = /datum/greyscale_config/beret/worn greyscale_colors = "#8F7654" - inhand_icon_state = "detective" + inhand_icon_state = null /obj/item/clothing/head/hunter name = "bounty hunting hat" desc = "Ain't nobody gonna cheat the hangman in my town." icon_state = "cowboy" worn_icon_state = "hunter" - inhand_icon_state = "hunter" + inhand_icon_state = null armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 15, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0) resistance_flags = FIRE_PROOF | ACID_PROOF @@ -146,7 +146,7 @@ name = "pharaoh hat" desc = "Walk like an Egyptian." icon_state = "pharoah_hat" - inhand_icon_state = "pharoah_hat" + inhand_icon_state = null /obj/item/clothing/head/nemes name = "headdress of Nemes" @@ -162,7 +162,7 @@ name = "\improper CentCom Head Intern beancap" desc = "A horrifying mix of beanie and softcap in CentCom green. You'd have to be pretty desperate for power over your peers to agree to wear this." icon_state = "intern_hat" - inhand_icon_state = "intern_hat" + inhand_icon_state = null /obj/item/clothing/head/coordinator name = "coordinator cap" @@ -175,13 +175,13 @@ name = "frosty hat" desc = "Hee-ho!" icon_state = "JackFrostHat" - inhand_icon_state = "JackFrostHat" + inhand_icon_state = null /obj/item/clothing/head/weddingveil name = "wedding veil" desc = "A gauzy white veil." icon_state = "weddingveil" - inhand_icon_state = "weddingveil" + inhand_icon_state = null /obj/item/clothing/head/centcom_cap name = "\improper CentCom commander cap" @@ -196,13 +196,13 @@ name = "human skin hat" desc = "This will scare them. All will know my power." icon_state = "human_leather" - inhand_icon_state = "human_leather" + inhand_icon_state = null /obj/item/clothing/head/ushanka name = "ushanka" desc = "Perfect for winter in Siberia, da?" icon_state = "ushankadown" - inhand_icon_state = "ushankadown" + inhand_icon_state = null flags_inv = HIDEEARS|HIDEHAIR cold_protection = HEAD min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index f1e4ddf9564..cf9b5d64879 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -53,7 +53,7 @@ name = "bulletproof helmet" desc = "A bulletproof combat helmet that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent." icon_state = "helmetalt" - inhand_icon_state = "helmetalt" + inhand_icon_state = "swat_helmet" armor = list(MELEE = 15, BULLET = 60, LASER = 10, ENERGY = 10, BOMB = 40, BIO = 0, FIRE = 50, ACID = 50, WOUND = 5) dog_fashion = null @@ -65,7 +65,7 @@ name = "tactical combat helmet" desc = "A tactical black helmet, sealed from outside hazards with a plate of glass and not much else." icon_state = "marine_command" - inhand_icon_state = "helmetalt" + inhand_icon_state = "marine_helmet" armor = list(MELEE = 50, BULLET = 50, LASER = 30, ENERGY = 25, BOMB = 50, BIO = 100, FIRE = 40, ACID = 50, WOUND = 20) min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT clothing_flags = STOPSPRESSUREDAMAGE | PLASMAMAN_HELMET_EXEMPT @@ -97,14 +97,14 @@ name = "blue helmet" desc = "A reliable, blue tinted helmet reminding you that you still owe that engineer a beer." icon_state = "blueshift" - inhand_icon_state = "blueshift" + inhand_icon_state = "blueshift_helmet" custom_premium_price = PAYCHECK_COMMAND /obj/item/clothing/head/helmet/riot name = "riot helmet" desc = "It's a helmet specifically designed to protect against close range attacks." icon_state = "riot" - inhand_icon_state = "helmet" + inhand_icon_state = "riot_helmet" toggle_message = "You pull the visor down on" alt_toggle_message = "You push the visor up on" can_toggle = 1 @@ -145,6 +145,7 @@ name = "helmet of justice" desc = "WEEEEOOO. WEEEEEOOO. WEEEEOOOO." icon_state = "justice" + inhand_icon_state = "justice_helmet" toggle_message = "You turn off the lights on" alt_toggle_message = "You turn on the lights on" actions_types = list(/datum/action/item_action/toggle_helmet_light) @@ -180,7 +181,7 @@ name = "\improper SWAT helmet" desc = "An extremely robust, space-worthy helmet in a nefarious red and black stripe pattern." icon_state = "swatsyndie" - inhand_icon_state = "swatsyndie" + inhand_icon_state = "swatsyndie_helmet" armor = list(MELEE = 40, BULLET = 30, LASER = 30,ENERGY = 40, BOMB = 50, BIO = 90, FIRE = 100, ACID = 100, WOUND = 15) cold_protection = HEAD min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT @@ -195,7 +196,7 @@ name = "\improper SWAT helmet" desc = "An extremely robust helmet with the Nanotrasen logo emblazoned on the top." icon_state = "swat" - inhand_icon_state = "swat" + inhand_icon_state = "swat_helmet" clothing_flags = PLASMAMAN_HELMET_EXEMPT cold_protection = HEAD min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT @@ -209,7 +210,7 @@ desc = "'Let the battle commence!'" flags_inv = HIDEEARS|HIDEHAIR icon_state = "thunderdome" - inhand_icon_state = "thunderdome" + inhand_icon_state = "thunderdome_helmet" armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 50, BOMB = 100, BIO = 100, FIRE = 90, ACID = 90) cold_protection = HEAD min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT @@ -231,7 +232,7 @@ armor = list(MELEE = 25, BULLET = 0, LASER = 25, ENERGY = 10, BOMB = 10, BIO = 0, FIRE = 100, ACID = 50, WOUND = 5) resistance_flags = FIRE_PROOF icon_state = "roman" - inhand_icon_state = "roman" + inhand_icon_state = "roman_helmet" strip_delay = 100 dog_fashion = null @@ -243,7 +244,6 @@ name = "\improper Roman legionnaire helmet" desc = "An ancient helmet made of bronze and leather. Has a red crest on top of it." icon_state = "roman_c" - inhand_icon_state = "roman_c" /obj/item/clothing/head/helmet/roman/legionnaire/fake desc = "An ancient helmet made of plastic and leather. Has a red crest on top of it." @@ -253,7 +253,7 @@ name = "gladiator helmet" desc = "Ave, Imperator, morituri te salutant." icon_state = "gladiator" - inhand_icon_state = "gladiator" + inhand_icon_state = "gladiator_helmet" flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR flags_cover = HEADCOVERSEYES dog_fashion = null @@ -263,7 +263,7 @@ desc = "They have chosen their own end." icon_state = "redtaghelm" flags_cover = HEADCOVERSEYES - inhand_icon_state = "redtaghelm" + inhand_icon_state = "redtag_helmet" armor = list(MELEE = 15, BULLET = 10, LASER = 20,ENERGY = 10, BOMB = 20, BIO = 0, FIRE = 0, ACID = 50) // Offer about the same protection as a hardhat. dog_fashion = null @@ -273,7 +273,7 @@ desc = "They'll need more men." icon_state = "bluetaghelm" flags_cover = HEADCOVERSEYES - inhand_icon_state = "bluetaghelm" + inhand_icon_state = "bluetag_helmet" armor = list(MELEE = 15, BULLET = 10, LASER = 20,ENERGY = 10, BOMB = 20, BIO = 0, FIRE = 0, ACID = 50) // Offer about the same protection as a hardhat. dog_fashion = null @@ -282,7 +282,7 @@ name = "medieval helmet" desc = "A classic metal helmet." icon_state = "knight_green" - inhand_icon_state = "knight_green" + inhand_icon_state = "knight_helmet" armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 0, BIO = 0, FIRE = 80, ACID = 80) // no wound armor cause getting domed in a bucket head sounds like concussion city flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH @@ -291,21 +291,18 @@ /obj/item/clothing/head/helmet/knight/blue icon_state = "knight_blue" - inhand_icon_state = "knight_blue" /obj/item/clothing/head/helmet/knight/yellow icon_state = "knight_yellow" - inhand_icon_state = "knight_yellow" /obj/item/clothing/head/helmet/knight/red icon_state = "knight_red" - inhand_icon_state = "knight_red" /obj/item/clothing/head/helmet/knight/greyscale name = "knight helmet" desc = "A classic medieval helmet, if you hold it upside down you could see that it's actually a bucket." icon_state = "knight_greyscale" - inhand_icon_state = "knight_greyscale" + inhand_icon_state = null armor = list(MELEE = 35, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 10, BIO = 10, FIRE = 40, ACID = 40) material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Can change color and add prefix @@ -316,14 +313,14 @@ flags_cover = HEADCOVERSEYES armor = list(MELEE = 35, BULLET = 25, LASER = 25, ENERGY = 35, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50) icon_state = "skull" - inhand_icon_state = "skull" + inhand_icon_state = null strip_delay = 100 /obj/item/clothing/head/helmet/durathread name = "durathread helmet" desc = "A helmet made from durathread and leather." icon_state = "durathread" - inhand_icon_state = "durathread" + inhand_icon_state = "durathread_helmet" resistance_flags = FLAMMABLE armor = list(MELEE = 20, BULLET = 10, LASER = 30, ENERGY = 40, BOMB = 15, BIO = 0, FIRE = 40, ACID = 50, WOUND = 5) strip_delay = 60 @@ -354,7 +351,7 @@ name = "infiltrator helmet" desc = "The galaxy isn't big enough for the two of us." icon_state = "infiltrator" - inhand_icon_state = "infiltrator" + inhand_icon_state = "infiltrator_helmet" armor = list(MELEE = 40, BULLET = 40, LASER = 30, ENERGY = 40, BOMB = 70, BIO = 0, FIRE = 100, ACID = 100) resistance_flags = FIRE_PROOF | ACID_PROOF flash_protect = FLASH_PROTECTION_WELDER @@ -366,7 +363,7 @@ name = "\improper Elder Atmosian Helmet" desc = "A superb helmet made with the toughest and rarest materials available to man." icon_state = "h2helmet" - inhand_icon_state = "h2helmet" + inhand_icon_state = "h2_helmet" armor = list(MELEE = 25, BULLET = 20, LASER = 30, ENERGY = 30, BOMB = 85, BIO = 10, FIRE = 65, ACID = 40, WOUND = 15) material_flags = MATERIAL_EFFECTS | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Can change color and add prefix flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index d82ccce130f..1a0a3b36ea1 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -7,7 +7,7 @@ //Chef /obj/item/clothing/head/chefhat name = "chef's hat" - inhand_icon_state = "chef" + inhand_icon_state = "chefhat" icon_state = "chef" desc = "The commander in chef's head wear." strip_delay = 10 @@ -97,6 +97,7 @@ desc = "There's only one man who can sniff out the dirty stench of crime, and he's likely wearing this hat." armor = list(MELEE = 25, BULLET = 5, LASER = 25, ENERGY = 35, BOMB = 0, BIO = 0, FIRE = 30, ACID = 50, WOUND = 5) icon_state = "detective" + inhand_icon_state = "det_hat" var/candy_cooldown = 0 dog_fashion = /datum/dog_fashion/head/detective @@ -193,7 +194,7 @@ name = "warden's campaign hat" desc = "A special armored campaign hat with the security insignia emblazoned on it. Uses reinforced fabric to offer sufficient protection." icon_state = "wardendrill" - inhand_icon_state = "wardendrill" + inhand_icon_state = null dog_fashion = null var/mode = DRILL_DEFAULT diff --git a/code/modules/clothing/head/justice.dm b/code/modules/clothing/head/justice.dm index 0b224d1e196..0402be4f757 100644 --- a/code/modules/clothing/head/justice.dm +++ b/code/modules/clothing/head/justice.dm @@ -2,23 +2,23 @@ name = "justice hat" desc = "Fight for what's righteous!" icon_state = "justicered" - inhand_icon_state = "justicered" + inhand_icon_state = null clothing_flags = SNUG_FIT flags_inv = HIDEHAIR|HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT flags_cover = HEADCOVERSEYES /obj/item/clothing/head/justice/blue icon_state = "justiceblue" - inhand_icon_state = "justiceblue" + inhand_icon_state = null /obj/item/clothing/head/justice/yellow icon_state = "justiceyellow" - inhand_icon_state = "justiceyellow" + inhand_icon_state = null /obj/item/clothing/head/justice/green icon_state = "justicegreen" - inhand_icon_state = "justicegreen" + inhand_icon_state = null /obj/item/clothing/head/justice/pink icon_state = "justicepink" - inhand_icon_state = "justicepink" + inhand_icon_state = null diff --git a/code/modules/clothing/head/mind_monkey_helmet.dm b/code/modules/clothing/head/mind_monkey_helmet.dm index ec442dc50d8..d600ff0bec7 100644 --- a/code/modules/clothing/head/mind_monkey_helmet.dm +++ b/code/modules/clothing/head/mind_monkey_helmet.dm @@ -6,7 +6,7 @@ desc = "A fragile, circuitry embedded helmet for boosting the intelligence of a monkey to a higher level. You see several warning labels..." icon_state = "monkeymind" - inhand_icon_state = "monkeymind" + inhand_icon_state = null strip_delay = 100 var/mob/living/carbon/human/magnification = null ///if the helmet is on a valid target (just works like a normal helmet if not (cargo please stop)) var/polling = FALSE///if the helmet is currently polling for targets (special code for removal) diff --git a/code/modules/clothing/head/pirate.dm b/code/modules/clothing/head/pirate.dm index dece685062c..551e5f0db34 100644 --- a/code/modules/clothing/head/pirate.dm +++ b/code/modules/clothing/head/pirate.dm @@ -2,7 +2,7 @@ name = "pirate hat" desc = "Yarr." icon_state = "pirate" - inhand_icon_state = "pirate" + inhand_icon_state = null dog_fashion = /datum/dog_fashion/head/pirate /obj/item/clothing/head/pirate @@ -33,13 +33,13 @@ /obj/item/clothing/head/pirate/captain name = "pirate captain hat" icon_state = "hgpiratecap" - inhand_icon_state = "hgpiratecap" + inhand_icon_state = null /obj/item/clothing/head/bandana name = "pirate bandana" desc = "Yarr." icon_state = "bandana" - inhand_icon_state = "bandana" + inhand_icon_state = null /obj/item/clothing/head/bandana/armored diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index c81fdcf0cfd..71da30db98b 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -2,7 +2,7 @@ name = "cargo cap" desc = "It's a baseball hat in a tasteful brown colour." icon_state = "cargosoft" - inhand_icon_state = "helmet" + inhand_icon_state = "greyscale_softcap" //todo wip var/soft_type = "cargo" dog_fashion = /datum/dog_fashion/head/cargo_tech @@ -118,6 +118,7 @@ name = "rainbow cap" desc = "It's a baseball hat in a bright rainbow of colors." icon_state = "rainbowsoft" + inhand_icon_state = "rainbow_softcap" soft_type = "rainbow" dog_fashion = null diff --git a/code/modules/clothing/head/sombrero.dm b/code/modules/clothing/head/sombrero.dm index 5c74378f167..a5febec39c0 100644 --- a/code/modules/clothing/head/sombrero.dm +++ b/code/modules/clothing/head/sombrero.dm @@ -23,7 +23,6 @@ /obj/item/clothing/head/sombrero/shamebrero name = "shamebrero" icon_state = "shamebrero" - inhand_icon_state = "shamebrero" desc = "Once it's on, it never comes off." dog_fashion = null greyscale_colors = "#d565d3#f8db18" diff --git a/code/modules/clothing/head/tinfoilhat.dm b/code/modules/clothing/head/tinfoilhat.dm index 9520731f455..3f47081a22e 100644 --- a/code/modules/clothing/head/tinfoilhat.dm +++ b/code/modules/clothing/head/tinfoilhat.dm @@ -2,7 +2,7 @@ name = "tinfoil hat" desc = "Thought control rays, psychotronic scanning. Don't mind that, I'm protected cause I made this hat." icon_state = "foilhat" - inhand_icon_state = "foilhat" + inhand_icon_state = null armor = list(MELEE = 0, BULLET = 0, LASER = -5,ENERGY = -15, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0) equip_delay_other = 140 clothing_flags = ANTI_TINFOIL_MANEUVER diff --git a/code/modules/clothing/head/welding.dm b/code/modules/clothing/head/welding.dm index b953e085661..0e7f489581b 100644 --- a/code/modules/clothing/head/welding.dm +++ b/code/modules/clothing/head/welding.dm @@ -4,6 +4,8 @@ icon_state = "welding" flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH inhand_icon_state = "welding" + lefthand_file = 'icons/mob/inhands/clothing/masks_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/masks_righthand.dmi' custom_materials = list(/datum/material/iron=1750, /datum/material/glass=400) flash_protect = FLASH_PROTECTION_WELDER tint = 2 @@ -17,3 +19,8 @@ /obj/item/clothing/head/welding/attack_self(mob/user) weldingvisortoggle(user) + +/obj/item/clothing/head/welding/visor_toggling() + . = ..() + inhand_icon_state = "[initial(inhand_icon_state)][up ? "off" : ""]" + diff --git a/code/modules/clothing/masks/animal_masks.dm b/code/modules/clothing/masks/animal_masks.dm index 1c7bbcae78a..ba4fed2917f 100644 --- a/code/modules/clothing/masks/animal_masks.dm +++ b/code/modules/clothing/masks/animal_masks.dm @@ -109,7 +109,7 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( desc = "A rubber pig mask with a built-in voice modulator." animal_type = "pig" icon_state = "pig" - inhand_icon_state = "pig" + inhand_icon_state = null animal_sounds = list("Oink!","Squeeeeeeee!","Oink Oink!") curse_spawn_sound = 'sound/magic/pighead_curse.ogg' flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT @@ -122,7 +122,7 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( name = "frog mask" desc = "An ancient mask carved in the shape of a frog.
Sanity is like gravity, all it needs is a push." icon_state = "frog" - inhand_icon_state = "frog" + inhand_icon_state = null animal_sounds = list("Ree!!", "Reee!!","REEE!!","REEEEE!!") animal_sounds_alt_probability = 5 animal_sounds_alt = list("HUUUUU!!","SMOOOOOKIN'!!","Hello my baby, hello my honey, hello my rag-time gal.", "Feels bad, man.", "GIT DIS GUY OFF ME!!" ,"SOMEBODY STOP ME!!", "NORMIES, GET OUT!!") @@ -134,7 +134,7 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( /obj/item/clothing/mask/animal/cowmask name = "cow mask" icon_state = "cowmask" - inhand_icon_state = "cowmask" + inhand_icon_state = null flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT curse_spawn_sound = 'sound/magic/cowhead_curse.ogg' animal_sounds = list("Moooooooo!","Moo!","Moooo!") @@ -147,7 +147,7 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( desc = "A mask made of soft vinyl and latex, representing the head of a horse." animal_type = "horse" icon_state = "horsehead" - inhand_icon_state = "horsehead" + inhand_icon_state = null animal_sounds = list("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!") flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEYES|HIDEEARS|HIDESNOUT curse_spawn_sound = 'sound/magic/horsehead_curse.ogg' @@ -169,7 +169,7 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( desc = "A mask made of soft vinyl and latex, representing the head of a rat." animal_type = "rat" icon_state = "rat" - inhand_icon_state = "rat" + inhand_icon_state = null animal_sounds = list("Skree!","SKREEE!","Squeak!") /obj/item/clothing/mask/animal/small/rat/cursed @@ -180,7 +180,7 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( desc = "A mask made of soft vinyl and latex, representing the head of a fox." animal_type = "fox" icon_state = "fox" - inhand_icon_state = "fox" + inhand_icon_state = null animal_sounds = list("Ack-Ack!","Ack-Ack-Ack-Ackawoooo!","Geckers!","AWOO!","TCHOFF!") /obj/item/clothing/mask/animal/small/fox/cursed @@ -191,7 +191,7 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( desc = "A mask made of soft vinyl and latex, representing the head of a bee." animal_type = "bee" icon_state = "bee" - inhand_icon_state = "bee" + inhand_icon_state = null animal_sounds = list("BZZT!", "BUZZZ!", "B-zzzz!", "Bzzzzzzttttt!") /obj/item/clothing/mask/animal/small/bee/cursed @@ -202,7 +202,7 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( desc = "A mask made of soft vinyl and latex, representing the head of a bear." animal_type = "bear" icon_state = "bear" - inhand_icon_state = "bear" + inhand_icon_state = null animal_sounds = list("RAWR!","Rawr!","GRR!","Growl!") /obj/item/clothing/mask/animal/small/bear/cursed @@ -213,7 +213,7 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( desc = "A mask made of soft vinyl and latex, representing the head of a bat." animal_type = "bat" icon_state = "bat" - inhand_icon_state = "bat" + inhand_icon_state = null /obj/item/clothing/mask/animal/small/bat/cursed cursed = TRUE @@ -223,7 +223,7 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( name = "raven mask" desc = "A mask made of soft vinyl and latex, representing the head of a raven." icon_state = "raven" - inhand_icon_state = "raven" + inhand_icon_state = null animal_type = "raven" animal_sounds = list("CAW!", "C-CAWW!", "Squawk!") animal_sounds_alt = list("Nevermore...") @@ -237,7 +237,7 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( desc = "A mask made of soft vinyl and latex, representing the head of a jackal." animal_type = "jackal" icon_state = "jackal" - inhand_icon_state = "jackal" + inhand_icon_state = null animal_sounds = list("YAP!", "Woof!", "Bark!", "AUUUUUU!") /obj/item/clothing/mask/animal/small/jackal/cursed @@ -248,7 +248,7 @@ GLOBAL_LIST_INIT(cursed_animal_masks, list( desc = "A mask carved out of wood, detailed carefully by hand." animal_type = "tribal" //honk. icon_state = "bumba" - inhand_icon_state = "bumba" + inhand_icon_state = null animal_sounds = list("Bad juju, mon!", "Da Iwa be praised!", "Sum bad mojo, dat!", "You do da voodoo, mon!") animal_sounds_alt = list("Eekum-bokum!", "Oomenacka!", "In mah head..... Zombi.... Zombi!") animal_sounds_alt_probability = 5 diff --git a/code/modules/clothing/masks/bandana.dm b/code/modules/clothing/masks/bandana.dm index 5b702027319..1488711749f 100644 --- a/code/modules/clothing/masks/bandana.dm +++ b/code/modules/clothing/masks/bandana.dm @@ -12,11 +12,12 @@ name = "bandana" desc = "A fine bandana with nanotech lining." icon_state = "bandana" + inhand_icon_state = "greyscale_bandana" worn_icon_state = "bandana_worn" greyscale_config = /datum/greyscale_config/bandana greyscale_config_worn = /datum/greyscale_config/bandana_worn - var/greyscale_config_up = /datum/greyscale_config/bandana_up - var/greyscale_config_worn_up = /datum/greyscale_config/bandana_worn_up + greyscale_config_inhand_left = /datum/greyscale_config/bandana_inhands_left + greyscale_config_inhand_right = /datum/greyscale_config/bandana_inhands_right greyscale_colors = "#2e2e2e" /obj/item/clothing/mask/bandana/attack_self(mob/user) @@ -24,20 +25,16 @@ to_chat(user, span_warning("You must undo [src] in order to push it into a hat!")) return adjustmask(user) - if(greyscale_config == initial(greyscale_config) && greyscale_config_worn == initial(greyscale_config_worn)) + +/obj/item/clothing/mask/bandana/adjustmask(mob/living/user) + . = ..() + if(mask_adjusted) worn_icon_state += "_up" undyeable = TRUE - set_greyscale( - new_config = greyscale_config_up, - new_worn_config = greyscale_config_worn_up - ) else + inhand_icon_state = initial(inhand_icon_state) worn_icon_state = initial(worn_icon_state) undyeable = initial(undyeable) - set_greyscale( - new_config = initial(greyscale_config), - new_worn_config = initial(greyscale_config_worn) - ) /obj/item/clothing/mask/bandana/AltClick(mob/user) . = ..() @@ -128,8 +125,8 @@ worn_icon_state = "bandstriped_worn" greyscale_config = /datum/greyscale_config/bandstriped greyscale_config_worn = /datum/greyscale_config/bandstriped_worn - greyscale_config_up = /datum/greyscale_config/bandstriped_up - greyscale_config_worn_up = /datum/greyscale_config/bandstriped_worn_up + greyscale_config_inhand_left = /datum/greyscale_config/bandana_striped_inhands_left + greyscale_config_inhand_right = /datum/greyscale_config/bandana_striped_inhands_right greyscale_colors = "#2e2e2e#C6C6C6" undyeable = TRUE @@ -182,8 +179,8 @@ worn_icon_state = "bandskull_worn" greyscale_config = /datum/greyscale_config/bandskull greyscale_config_worn = /datum/greyscale_config/bandskull_worn - greyscale_config_up = /datum/greyscale_config/bandskull_up - greyscale_config_worn_up = /datum/greyscale_config/bandskull_worn_up + greyscale_config_inhand_left = /datum/greyscale_config/bandana_skull_inhands_left + greyscale_config_inhand_right = /datum/greyscale_config/bandana_skull_inhands_right greyscale_colors = "#2e2e2e#C6C6C6" undyeable = TRUE diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index 819449a7a30..6f7593f61b1 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -15,7 +15,7 @@ name = "infiltrator balaclava" desc = "It makes you feel safe in your anonymity, but for a stealth outfit you sure do look obvious that you're up to no good. It seems to have a built in heads-up display." icon_state = "syndicate_balaclava" - inhand_icon_state = "syndicate_balaclava" + inhand_icon_state = "balaclava" clothing_flags = MASKINTERNALS flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT visor_flags_inv = HIDEFACE|HIDEFACIALHAIR|HIDESNOUT @@ -47,7 +47,7 @@ name = "Luchador Mask" desc = "Worn by robust fighters, flying high to defeat their foes!" icon_state = "luchag" - inhand_icon_state = "luchag" + inhand_icon_state = null flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT w_class = WEIGHT_CLASS_SMALL modifies_speech = TRUE @@ -80,19 +80,17 @@ name = "Tecnicos Mask" desc = "Worn by robust fighters who uphold justice and fight honorably." icon_state = "luchador" - inhand_icon_state = "luchador" /obj/item/clothing/mask/luchador/rudos name = "Rudos Mask" desc = "Worn by robust fighters who are willing to do anything to win." icon_state = "luchar" - inhand_icon_state = "luchar" /obj/item/clothing/mask/russian_balaclava name = "russian balaclava" desc = "Protects your face from snow." icon_state = "rus_balaclava" - inhand_icon_state = "rus_balaclava" + inhand_icon_state = "balaclava" flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT visor_flags_inv = HIDEFACE|HIDEFACIALHAIR|HIDESNOUT w_class = WEIGHT_CLASS_SMALL diff --git a/code/modules/clothing/masks/costume.dm b/code/modules/clothing/masks/costume.dm index 59f83fe80b6..7eb5da57743 100644 --- a/code/modules/clothing/masks/costume.dm +++ b/code/modules/clothing/masks/costume.dm @@ -30,12 +30,12 @@ name = "mummy mask" desc = "Ancient bandages." icon_state = "mummy_mask" - inhand_icon_state = "mummy_mask" + inhand_icon_state = null flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT /obj/item/clothing/mask/scarecrow name = "sack mask" desc = "A burlap sack with eyeholes." icon_state = "scarecrow_sack" - inhand_icon_state = "scarecrow_sack" + inhand_icon_state = null flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 393d10f838e..0e6611a88e6 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -107,7 +107,7 @@ name = "captain's gas mask" desc = "Nanotrasen cut corners and repainted a spare atmospheric gas mask, but don't tell anyone." icon_state = "gas_cap" - inhand_icon_state = "gas_cap" + inhand_icon_state = "gasmask_captain" resistance_flags = FIRE_PROOF | ACID_PROOF /obj/item/clothing/mask/gas/atmos/centcom @@ -161,6 +161,7 @@ name = "syndicate mask" desc = "A close-fitting tactical mask that can be connected to an air supply." icon_state = "syndicate" + inhand_icon_state = "syndicate_gasmask" resistance_flags = FIRE_PROOF | ACID_PROOF strip_delay = 60 w_class = WEIGHT_CLASS_SMALL @@ -172,6 +173,8 @@ clothing_flags = MASKINTERNALS icon_state = "clown" inhand_icon_state = "clown_hat" + lefthand_file = 'icons/mob/inhands/clothing/hats_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/hats_righthand.dmi' dye_color = DYE_CLOWN w_class = WEIGHT_CLASS_SMALL flags_cover = MASKCOVERSEYES @@ -223,7 +226,9 @@ desc = "A feminine clown mask for the dabbling crossdressers or female entertainers." clothing_flags = MASKINTERNALS icon_state = "sexyclown" - inhand_icon_state = "sexyclown" + inhand_icon_state = "sexyclown_hat" + lefthand_file = 'icons/mob/inhands/clothing/hats_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/hats_righthand.dmi' flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE species_exception = list(/datum/species/golem/bananium) @@ -234,7 +239,7 @@ desc = "The traditional mime's mask. It has an eerie facial posture." clothing_flags = MASKINTERNALS icon_state = "mime" - inhand_icon_state = "mime" + inhand_icon_state = null w_class = WEIGHT_CLASS_SMALL flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE @@ -281,7 +286,7 @@ desc = "A mask used when acting as a monkey." clothing_flags = MASKINTERNALS icon_state = "monkeymask" - inhand_icon_state = "monkeymask" + inhand_icon_state = "owl_mask" flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE has_fov = FALSE @@ -291,7 +296,7 @@ desc = "A traditional female mime's mask." clothing_flags = MASKINTERNALS icon_state = "sexymime" - inhand_icon_state = "sexymime" + inhand_icon_state = null flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE species_exception = list(/datum/species/golem) @@ -319,6 +324,7 @@ name = "carp mask" desc = "Gnash gnash." icon_state = "carp_mask" + inhand_icon_state = null has_fov = FALSE flags_cover = MASKCOVERSEYES @@ -326,7 +332,7 @@ name = "tiki mask" desc = "A creepy wooden mask. Surprisingly expressive for a poorly carved bit of wood." icon_state = "tiki_eyebrow" - inhand_icon_state = "tiki_eyebrow" + inhand_icon_state = null custom_materials = list(/datum/material/wood = MINERAL_MATERIAL_AMOUNT * 1.25) resistance_flags = FLAMMABLE has_fov = FALSE @@ -373,7 +379,7 @@ name = "bounty hunting mask" desc = "A custom tactical mask with decals added." icon_state = "hunter" - inhand_icon_state = "hunter" + inhand_icon_state = "gas_atmos" resistance_flags = FIRE_PROOF | ACID_PROOF flags_inv = HIDEFACIALHAIR|HIDEFACE|HIDEEYES|HIDEEARS|HIDEHAIR|HIDESNOUT has_fov = FALSE @@ -405,4 +411,4 @@ icon_state = "driscoll_mask" flags_inv = HIDEFACIALHAIR w_class = WEIGHT_CLASS_NORMAL - inhand_icon_state = "driscoll_mask" + inhand_icon_state = null diff --git a/code/modules/clothing/masks/gondola.dm b/code/modules/clothing/masks/gondola.dm index 683b8a07d31..7a8283293de 100644 --- a/code/modules/clothing/masks/gondola.dm +++ b/code/modules/clothing/masks/gondola.dm @@ -2,7 +2,7 @@ name = "gondola mask" desc = "Genuine gondola fur." icon_state = "gondola" - inhand_icon_state = "gondola" + inhand_icon_state = null flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT w_class = WEIGHT_CLASS_SMALL modifies_speech = TRUE diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index 395ccd20821..b85ce26e4f0 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -80,7 +80,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list( name = "spacepol mask" desc = "A close-fitting tactical mask created in cooperation with a certain megacorporation, comes with an especially aggressive Compli-o-nator 3000." icon_state = "spacepol" - inhand_icon_state = "spacepol" + inhand_icon_state = "spacepol_mask" tint = 1.5 flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES | PEPPERPROOF visor_flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES | PEPPERPROOF @@ -189,7 +189,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list( name = "police whistle" desc = "A police whistle for when you need to make sure the criminals hear you." icon_state = "whistle" - inhand_icon_state = "whistle" + inhand_icon_state = null slot_flags = ITEM_SLOT_MASK|ITEM_SLOT_NECK custom_price = PAYCHECK_COMMAND * 1.5 w_class = WEIGHT_CLASS_SMALL diff --git a/code/modules/clothing/masks/muzzle.dm b/code/modules/clothing/masks/muzzle.dm index 7f4544810f7..acf43ad503a 100644 --- a/code/modules/clothing/masks/muzzle.dm +++ b/code/modules/clothing/masks/muzzle.dm @@ -3,6 +3,8 @@ desc = "To stop that awful noise." icon_state = "muzzle" inhand_icon_state = "blindfold" + lefthand_file = 'icons/mob/inhands/clothing/glasses_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/glasses_righthand.dmi' clothing_flags = BLOCKS_SPEECH flags_cover = MASKCOVERSMOUTH w_class = WEIGHT_CLASS_SMALL @@ -21,6 +23,8 @@ desc = "To silence those pesky patients before putting them under." icon_state = "breathmuzzle" inhand_icon_state = "breathmuzzle" + lefthand_file = 'icons/mob/inhands/clothing/masks_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/masks_righthand.dmi' body_parts_covered = NONE clothing_flags = MASKINTERNALS | BLOCKS_SPEECH armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 0, ACID = 0) diff --git a/code/modules/clothing/masks/surgical.dm b/code/modules/clothing/masks/surgical.dm index aedb1bfacee..44434cdb6ce 100644 --- a/code/modules/clothing/masks/surgical.dm +++ b/code/modules/clothing/masks/surgical.dm @@ -2,7 +2,7 @@ name = "sterile mask" desc = "A sterile mask designed to help prevent the spread of diseases." icon_state = "sterile" - inhand_icon_state = "sterile" + inhand_icon_state = "s_mask" w_class = WEIGHT_CLASS_TINY flags_inv = HIDEFACE|HIDESNOUT flags_cover = MASKCOVERSMOUTH diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index 7c9a1de6b19..0c7f6e51bad 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -5,7 +5,6 @@ righthand_file = 'icons/mob/inhands/clothing/shoes_righthand.dmi' desc = "Comfortable-looking shoes." gender = PLURAL //Carn: for grammarically correct text-parsing - var/chained = FALSE body_parts_covered = FEET slot_flags = ITEM_SLOT_FEET diff --git a/code/modules/clothing/shoes/boots.dm b/code/modules/clothing/shoes/boots.dm index 0b8435a6395..7f3b6a6dd3c 100644 --- a/code/modules/clothing/shoes/boots.dm +++ b/code/modules/clothing/shoes/boots.dm @@ -3,8 +3,6 @@ desc = "High speed, low drag combat boots." icon_state = "jackboots" inhand_icon_state = "jackboots" - lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 90, FIRE = 70, ACID = 50) strip_delay = 40 resistance_flags = NONE @@ -19,7 +17,7 @@ name = "sneakboots" desc = "These boots have special noise cancelling soles. Perfect for stealth, if it wasn't for the color scheme." icon_state = "sneakboots" - inhand_icon_state = "sneakboots" + inhand_icon_state = null w_class = WEIGHT_CLASS_SMALL resistance_flags = FIRE_PROOF | ACID_PROOF clothing_traits = list(TRAIT_SILENT_FOOTSTEPS) @@ -35,8 +33,6 @@ desc = "Nanotrasen-issue Security combat boots for combat scenarios or combat situations. All combat, all the time." icon_state = "jackboots" inhand_icon_state = "jackboots" - lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' strip_delay = 30 equip_delay_other = 50 resistance_flags = NONE @@ -58,7 +54,7 @@ name = "winter boots" desc = "Boots lined with 'synthetic' animal fur." icon_state = "winterboots" - inhand_icon_state = "winterboots" + inhand_icon_state = null armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 80, FIRE = 0, ACID = 0) cold_protection = FEET|LEGS min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT @@ -75,7 +71,7 @@ name = "ice hiking boots" desc = "A pair of winter boots with special grips on the bottom, designed to prevent slipping on frozen surfaces." icon_state = "iceboots" - inhand_icon_state = "iceboots" + inhand_icon_state = null clothing_flags = NOSLIP_ICE // A pair of ice boots intended for general crew EVA use - see EVA winter coat for comparison. @@ -96,8 +92,6 @@ desc = "Nanotrasen-issue Engineering lace-up work boots for the especially blue-collar." icon_state = "workboots" inhand_icon_state = "jackboots" - lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 80, FIRE = 0, ACID = 0) strip_delay = 20 equip_delay_other = 40 @@ -119,7 +113,7 @@ name = "russian boots" desc = "Comfy shoes." icon_state = "rus_shoes" - inhand_icon_state = "rus_shoes" + inhand_icon_state = null lace_time = 8 SECONDS /obj/item/clothing/shoes/russian/Initialize(mapload) @@ -131,10 +125,10 @@ name = "green lizardskin shoes" desc = "They may have lost some of their lustre over the years, but these green lizardskin shoes fit you perfectly." icon_state = "lizardskin_shoes" - inhand_icon_state = "lizardskin_shoes" + inhand_icon_state = null /obj/item/clothing/shoes/kim name = "aerostatic boots" desc = "A crisp, clean set of boots for working long hours on the beat." icon_state = "aerostatic_boots" - inhand_icon_state = "aerostatic_boots" + inhand_icon_state = null diff --git a/code/modules/clothing/shoes/costume.dm b/code/modules/clothing/shoes/costume.dm index 21189069a7d..4ba306b2f12 100644 --- a/code/modules/clothing/shoes/costume.dm +++ b/code/modules/clothing/shoes/costume.dm @@ -2,7 +2,7 @@ name = "roman sandals" desc = "Sandals with buckled leather straps on it." icon_state = "roman" - inhand_icon_state = "roman" + inhand_icon_state = "wizshoe" strip_delay = 100 equip_delay_other = 100 armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 0, ACID = 0) @@ -12,7 +12,7 @@ name = "griffon boots" desc = "A pair of costume boots fashioned after bird talons." icon_state = "griffinboots" - inhand_icon_state = "griffinboots" + inhand_icon_state = null lace_time = 8 SECONDS /obj/item/clothing/shoes/griffin/Initialize(mapload) @@ -47,6 +47,7 @@ desc = "All this talk of antags, greytiding, and griefing... I just wanna grill for god's sake!" name = "grilling sandals" icon_state = "cookflops" + inhand_icon_state = "cookflops" can_be_tied = FALSE species_exception = list(/datum/species/golem) @@ -54,28 +55,28 @@ name = "frosty boots" desc = "For when you're stepping on up to the plate." icon_state = "JackFrostShoes" - inhand_icon_state = "JackFrostShoes_worn" + inhand_icon_state = null /obj/item/clothing/shoes/swagshoes name = "swag shoes" desc = "They got me for my foams!" icon_state = "SwagShoes" - inhand_icon_state = "SwagShoes" + inhand_icon_state = null /obj/item/clothing/shoes/glow name = "glow shoes" desc = "t3h c00L3st sh03z j00'LL 3v3r f1nd." icon_state = "glow_shoes" - inhand_icon_state = "glow_shoes" + inhand_icon_state = null /obj/item/clothing/shoes/jackbros name = "frosty boots" desc = "For when you're stepping on up to the plate." icon_state = "JackFrostShoes" - inhand_icon_state = "JackFrostShoes_worn" + inhand_icon_state = null /obj/item/clothing/shoes/saints name = "saints sneakers" desc = "Officially branded Saints sneakers. Incredibly valuable!" icon_state = "saints_shoes" - inhand_icon_state = "saints_shoes" + inhand_icon_state = null diff --git a/code/modules/clothing/shoes/cult.dm b/code/modules/clothing/shoes/cult.dm index f7077a7b97d..80d03d3a09e 100644 --- a/code/modules/clothing/shoes/cult.dm +++ b/code/modules/clothing/shoes/cult.dm @@ -2,7 +2,7 @@ name = "\improper Nar'Sien invoker boots" desc = "A pair of boots worn by the followers of Nar'Sie." icon_state = "cult" - inhand_icon_state = "cult" + inhand_icon_state = null cold_protection = FEET min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT heat_protection = FEET diff --git a/code/modules/clothing/shoes/galoshes.dm b/code/modules/clothing/shoes/galoshes.dm index afb257a8058..2682af0e7fe 100644 --- a/code/modules/clothing/shoes/galoshes.dm +++ b/code/modules/clothing/shoes/galoshes.dm @@ -2,6 +2,7 @@ desc = "A pair of yellow rubber boots, designed to prevent slipping on wet surfaces." name = "galoshes" icon_state = "galoshes" + inhand_icon_state = "galoshes" clothing_flags = NOSLIP slowdown = SHOES_SLOWDOWN+1 strip_delay = 30 diff --git a/code/modules/clothing/shoes/gunboots.dm b/code/modules/clothing/shoes/gunboots.dm index 02220ec2b61..5edb0589d7f 100644 --- a/code/modules/clothing/shoes/gunboots.dm +++ b/code/modules/clothing/shoes/gunboots.dm @@ -3,8 +3,6 @@ desc = "This is what all those research points added up to, the ultimate workplace hazard." icon_state = "jackboots" inhand_icon_state = "jackboots" - lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' /// What projectile do we shoot? var/projectile_type = /obj/projectile/bullet/c10mm /// Each step, this is the chance we fire a shot diff --git a/code/modules/clothing/shoes/jumpboots.dm b/code/modules/clothing/shoes/jumpboots.dm index f3a77ac5e7f..5d4e3654c60 100644 --- a/code/modules/clothing/shoes/jumpboots.dm +++ b/code/modules/clothing/shoes/jumpboots.dm @@ -2,7 +2,7 @@ name = "jump boots" desc = "A specialized pair of combat boots with a built-in propulsion system for rapid foward movement." icon_state = "jetboots" - inhand_icon_state = "jetboots" + inhand_icon_state = null resistance_flags = FIRE_PROOF actions_types = list(/datum/action/item_action/bhop) armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 90, FIRE = 0, ACID = 0) @@ -14,7 +14,7 @@ /obj/item/clothing/shoes/bhop/Initialize(mapload) . = ..() - + create_storage(type = /datum/storage/pockets/shoes) /obj/item/clothing/shoes/bhop/ui_action_click(mob/user, action) @@ -39,7 +39,7 @@ name = "rocket boots" desc = "Very special boots with built-in rocket thrusters! SHAZBOT!" icon_state = "rocketboots" - inhand_icon_state = "rocketboots" + inhand_icon_state = null actions_types = list(/datum/action/item_action/bhop/brocket) jumpdistance = 20 //great for throwing yourself into walls and people at high speeds jumpspeed = 5 diff --git a/code/modules/clothing/shoes/kindlekicks.dm b/code/modules/clothing/shoes/kindlekicks.dm index 0d35641aa01..0b8a65e0d33 100644 --- a/code/modules/clothing/shoes/kindlekicks.dm +++ b/code/modules/clothing/shoes/kindlekicks.dm @@ -2,7 +2,7 @@ name = "Kindle Kicks" desc = "They'll sure kindle something in you, and it's not childhood nostalgia..." icon_state = "kindleKicks" - inhand_icon_state = "kindleKicks" + inhand_icon_state = null actions_types = list(/datum/action/item_action/kindle_kicks) light_system = MOVABLE_LIGHT light_range = 2 diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index f8df5dbe1c3..282ca61861a 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -2,6 +2,7 @@ desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle." name = "magboots" icon_state = "magboots0" + inhand_icon_state = "magboots" var/magboot_state = "magboots" var/magpulse = FALSE var/slowdown_active = 2 diff --git a/code/modules/clothing/shoes/sandals.dm b/code/modules/clothing/shoes/sandals.dm index 9172b0b0627..54bd8f75891 100644 --- a/code/modules/clothing/shoes/sandals.dm +++ b/code/modules/clothing/shoes/sandals.dm @@ -2,6 +2,7 @@ desc = "A pair of rather plain wooden sandals." name = "sandals" icon_state = "wizard" + inhand_icon_state = "wizshoe" custom_materials = list(/datum/material/wood = MINERAL_MATERIAL_AMOUNT * 0.5) strip_delay = 5 equip_delay_other = 50 diff --git a/code/modules/clothing/shoes/sneakers.dm b/code/modules/clothing/shoes/sneakers.dm index c802e1cd37c..0469cf98f64 100644 --- a/code/modules/clothing/shoes/sneakers.dm +++ b/code/modules/clothing/shoes/sneakers.dm @@ -1,9 +1,14 @@ /obj/item/clothing/shoes/sneakers dying_key = DYE_REGISTRY_SNEAKERS icon_state = "sneakers" + inhand_icon_state = "sneakers_back" + lefthand_file = 'icons/mob/inhands/clothing/shoes_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/shoes_righthand.dmi' greyscale_colors = "#2d2d33#ffffff" greyscale_config = /datum/greyscale_config/sneakers greyscale_config_worn = /datum/greyscale_config/sneakers_worn + greyscale_config_inhand_left = /datum/greyscale_config/sneakers_inhand_left + greyscale_config_inhand_right = /datum/greyscale_config/sneakers_inhand_right flags_1 = IS_PLAYER_COLORABLE_1 /obj/item/clothing/shoes/sneakers/black @@ -52,6 +57,7 @@ name = "rainbow shoes" desc = "Very gay shoes." icon_state = "rain_bow" + inhand_icon_state = "rainbow_sneakers" greyscale_colors = null greyscale_config = null @@ -65,30 +71,72 @@ greyscale_colors = "#d15b1b#ffffff" greyscale_config = /datum/greyscale_config/sneakers_orange greyscale_config_worn = /datum/greyscale_config/sneakers_orange_worn + greyscale_config_inhand_left = /datum/greyscale_config/sneakers_orange_inhand_left + greyscale_config_inhand_right = /datum/greyscale_config/sneakers_orange_inhand_right flags_1 = NONE + var/obj/item/restraints/handcuffs/attached_cuffs + +/obj/item/clothing/shoes/sneakers/orange/Initialize(mapload) + . = ..() + AddElement(/datum/element/update_icon_updates_onmob, (slot_flags|ITEM_SLOT_HANDCUFFED)) + +/obj/item/clothing/shoes/sneakers/orange/handle_atom_del(atom/deleting_atom) + if(deleting_atom == attached_cuffs) + moveToNullspace(attached_cuffs) + return ..() + +/obj/item/clothing/shoes/sneakers/orange/Destroy() + QDEL_NULL(attached_cuffs) + return ..() + +/obj/item/clothing/shoes/sneakers/orange/Exited(atom/movable/gone, direction) + if(gone == attached_cuffs) + attached_cuffs = null + slowdown = SHOES_SLOWDOWN + update_appearance(UPDATE_ICON) + return ..() + +/obj/item/clothing/shoes/sneakers/orange/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs) + if(arrived.type == /obj/item/restraints/handcuffs) + attached_cuffs = arrived + slowdown = 15 + update_appearance(UPDATE_ICON) + return ..() + +/obj/item/clothing/shoes/sneakers/orange/update_icon_state() + . = ..() + if(attached_cuffs) + icon_state = inhand_icon_state = "sneakers_chained" + else + icon_state = initial(icon_state) + inhand_icon_state = initial(inhand_icon_state) + update_greyscale() /obj/item/clothing/shoes/sneakers/orange/attack_self(mob/user) - if (chained) - chained = FALSE - slowdown = SHOES_SLOWDOWN - new /obj/item/restraints/handcuffs( user.loc ) - icon_state = initial(icon_state) - return + if(attached_cuffs) + to_chat(user, span_notice("You remove [attached_cuffs] from [src].")) + if(Adjacent(user)) //tk is love, tk is life. + user.put_in_hands(attached_cuffs) + else + attached_cuffs.forceMove(drop_location()) + return + return ..() -/obj/item/clothing/shoes/sneakers/orange/attackby(obj/H, loc, params) - ..() - // Note: not using istype here because we want to ignore all subtypes - if (H.type == /obj/item/restraints/handcuffs && !chained) - qdel(H) - chained = TRUE - slowdown = 15 - icon_state = "sneakers_chained" - return +/obj/item/clothing/shoes/sneakers/orange/pre_attack(atom/movable/attacking_movable, mob/living/user, params) + if(attached_cuffs || attacking_movable.type != /obj/item/restraints/handcuffs) + return ..() + attacking_movable.forceMove(src) + return TRUE + +/obj/item/clothing/shoes/sneakers/orange/attackby(obj/item/attacking_item, mob/user, params) + if(attached_cuffs || attacking_item.type != /obj/item/restraints/handcuffs) // Note: not using istype here because we want to ignore all subtypes + return ..() + attacking_item.forceMove(src) /obj/item/clothing/shoes/sneakers/orange/allow_attack_hand_drop(mob/user) if(ishuman(user)) var/mob/living/carbon/human/C = user - if(C.shoes == src && chained == 1) + if(C.shoes == src && attached_cuffs) to_chat(user, span_warning("You need help taking these off!")) return FALSE return ..() @@ -97,7 +145,7 @@ var/mob/m = usr if(ishuman(m)) var/mob/living/carbon/human/c = m - if(c.shoes == src && chained == 1) + if(c.shoes == src && attached_cuffs) to_chat(c, span_warning("You need help taking these off!")) return return ..() diff --git a/code/modules/clothing/shoes/wheelys.dm b/code/modules/clothing/shoes/wheelys.dm index 29dfe19c256..055c463c44b 100644 --- a/code/modules/clothing/shoes/wheelys.dm +++ b/code/modules/clothing/shoes/wheelys.dm @@ -5,7 +5,9 @@ greyscale_colors = "#545454#ffffff" icon_state = "sneakers" greyscale_config = /datum/greyscale_config/sneakers_wheelys - inhand_icon_state = "wheelys" + inhand_icon_state = "sneakers_back" + greyscale_config_inhand_left = /datum/greyscale_config/sneakers_inhand_left + greyscale_config_inhand_right = /datum/greyscale_config/sneakers_inhand_right worn_icon = 'icons/mob/large-worn-icons/64x64/feet.dmi' worn_x_dimension = 64 worn_y_dimension = 64 @@ -60,6 +62,7 @@ name = "roller skates" desc = "An EightO brand pair of roller skates. The wheels are retractable, though're quite bulky to walk in." icon_state = "rollerskates" + inhand_icon_state = null greyscale_colors = null greyscale_config = null worn_icon_state = "rollerskates" @@ -72,6 +75,7 @@ name = "ski shoes" desc = "A pair of shoes equipped with foldable skis! Very handy to move in snowy environments unimpeded." icon_state = "skishoes" + inhand_icon_state = null greyscale_colors = null greyscale_config = null worn_icon_state = "skishoes" diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm index 02fb8c90931..e69e235f67d 100644 --- a/code/modules/clothing/spacesuits/_spacesuits.dm +++ b/code/modules/clothing/spacesuits/_spacesuits.dm @@ -5,9 +5,9 @@ /obj/item/clothing/head/helmet/space name = "space helmet" icon_state = "spaceold" + inhand_icon_state = "space_helmet" desc = "A special helmet with solar UV shielding to protect your eyes from harmful rays." clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT | PLASMAMAN_HELMET_EXEMPT - inhand_icon_state = "spaceold" armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 80, ACID = 70) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT diff --git a/code/modules/clothing/spacesuits/freedom.dm b/code/modules/clothing/spacesuits/freedom.dm index 426c8360834..9a05b743a53 100644 --- a/code/modules/clothing/spacesuits/freedom.dm +++ b/code/modules/clothing/spacesuits/freedom.dm @@ -2,7 +2,7 @@ name = "eagle helmet" desc = "An advanced, space-proof helmet. It appears to be modeled after an old-world eagle." icon_state = "griffinhat" - inhand_icon_state = "griffinhat" + inhand_icon_state = null armor = list(MELEE = 20, BULLET = 40, LASER = 30, ENERGY = 40, BOMB = 100, BIO = 100, FIRE = 80, ACID = 80) strip_delay = 130 max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT @@ -12,7 +12,7 @@ name = "eagle suit" desc = "An advanced, light suit, fabricated from a mixture of synthetic feathers and space-resistant material. A gun holster appears to be integrated into the suit and the wings appear to be stuck in 'freedom' mode." icon_state = "freedom" - inhand_icon_state = "freedom" + inhand_icon_state = null allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals) armor = list(MELEE = 20, BULLET = 40, LASER = 30,ENERGY = 40, BOMB = 100, BIO = 100, FIRE = 80, ACID = 80) strip_delay = 130 diff --git a/code/modules/clothing/spacesuits/pirate.dm b/code/modules/clothing/spacesuits/pirate.dm index 93149f4fdbd..e345531c629 100644 --- a/code/modules/clothing/spacesuits/pirate.dm +++ b/code/modules/clothing/spacesuits/pirate.dm @@ -2,14 +2,14 @@ name = "modified EVA helmet" desc = "A modified helmet to allow space pirates to intimidate their customers whilst staying safe from the void. Comes with some additional protection." icon_state = "spacepirate" - inhand_icon_state = "spacepiratehelmet" + inhand_icon_state = "space_pirate_helmet" armor = list(MELEE = 30, BULLET = 50, LASER = 30,ENERGY = 40, BOMB = 30, BIO = 30, FIRE = 60, ACID = 75) strip_delay = 40 equip_delay_other = 20 /obj/item/clothing/head/helmet/space/pirate/bandana icon_state = "spacebandana" - inhand_icon_state = "spacepiratehelmet" + inhand_icon_state = "space_bandana_helmet" /obj/item/clothing/suit/space/pirate name = "modified EVA suit" diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index 55c96a6547d..1a32edb6325 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -178,94 +178,94 @@ name = "security plasma envirosuit helmet" desc = "A plasmaman containment helmet designed for security officers, protecting them from burning alive, alongside other undesirables." icon_state = "security_envirohelm" - inhand_icon_state = "security_envirohelm" + inhand_icon_state = null armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 100, ACID = 75) /obj/item/clothing/head/helmet/space/plasmaman/security/warden name = "warden's plasma envirosuit helmet" desc = "A plasmaman containment helmet designed for the warden. A pair of white stripes being added to differeciate them from other members of security." icon_state = "warden_envirohelm" - inhand_icon_state = "warden_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/security/head_of_security name = "head of security's plasma envirosuit helmet" desc = "A special containment helmet designed for the Head of Security. A pair of gold stripes are added to differentiate them from other members of security." icon_state = "hos_envirohelm" - inhand_icon_state = "hos_envirohelm" + inhand_icon_state = null armor = list(MELEE = 20, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 10, BIO = 100, FIRE = 100, ACID = 75, WOUND = 10) /obj/item/clothing/head/helmet/space/plasmaman/prisoner name = "prisoner's plasma envirosuit helmet" desc = "A plasmaman containment helmet for prisoners." icon_state = "prisoner_envirohelm" - inhand_icon_state = "prisoner_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/medical name = "medical doctor's plasma envirosuit helmet" desc = "An envirohelmet designed for plasmaman medical doctors, having two stripes down its length to denote as much." icon_state = "doctor_envirohelm" - inhand_icon_state = "doctor_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/paramedic name = "paramedic plasma envirosuit helmet" desc = "An envirohelmet designed for plasmaman paramedics, with darker blue stripes compared to the medical model." icon_state = "paramedic_envirohelm" - inhand_icon_state = "paramedic_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/viro name = "virology plasma envirosuit helmet" desc = "The helmet worn by the safest people on the station, those who are completely immune to the monstrosities they create." icon_state = "virologist_envirohelm" - inhand_icon_state = "virologist_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/chemist name = "chemistry plasma envirosuit helmet" desc = "A plasmaman envirosuit designed for chemists, two orange stripes going down its face." icon_state = "chemist_envirohelm" - inhand_icon_state = "chemist_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/chief_medical_officer name = "chief medical officer's plasma envirosuit helmet" desc = "A special containment helmet designed for the Chief Medical Officer. A gold stripe applied to differentiate them from other medical staff." icon_state = "cmo_envirohelm" - inhand_icon_state = "cmo_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/science name = "science plasma envirosuit helmet" desc = "A plasmaman envirohelmet designed for scientists." icon_state = "scientist_envirohelm" - inhand_icon_state = "scientist_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/robotics name = "robotics plasma envirosuit helmet" desc = "A plasmaman envirohelmet designed for roboticists." icon_state = "roboticist_envirohelm" - inhand_icon_state = "roboticist_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/genetics name = "geneticist's plasma envirosuit helmet" desc = "A plasmaman envirohelmet designed for geneticists." icon_state = "geneticist_envirohelm" - inhand_icon_state = "geneticist_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/research_director name = "research director's plasma envirosuit helmet" desc = "A special containment helmet designed for the Research Director. A light brown design is applied to differentiate them from other scientists." icon_state = "rd_envirohelm" - inhand_icon_state = "rd_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/engineering name = "engineering plasma envirosuit helmet" desc = "A space-worthy helmet specially designed for engineer plasmamen, the usual purple stripes being replaced by engineering's orange." icon_state = "engineer_envirohelm" - inhand_icon_state = "engineer_envirohelm" + inhand_icon_state = null armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 100, ACID = 75) /obj/item/clothing/head/helmet/space/plasmaman/atmospherics name = "atmospherics plasma envirosuit helmet" desc = "A space-worthy helmet specially designed for atmos technician plasmamen, the usual purple stripes being replaced by atmos' blue. Has improved thermal shielding." icon_state = "atmos_envirohelm" - inhand_icon_state = "atmos_envirohelm" + inhand_icon_state = null armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 100, ACID = 75) max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT // Same protection as the Atmospherics Hardhat @@ -273,7 +273,7 @@ name = "chief engineer's plasma envirosuit helmet" desc = "A special containment helmet designed for the Chief Engineer, the usual purple stripes being replaced by the chief's green. Has improved thermal shielding." icon_state = "ce_envirohelm" - inhand_icon_state = "ce_envirohelm" + inhand_icon_state = null armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 100, ACID = 75) max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT // Same protection as the Atmospherics Hardhat @@ -282,32 +282,32 @@ name = "cargo plasma envirosuit helmet" desc = "A plasmaman envirohelmet designed for cargo techs and quartermasters." icon_state = "cargo_envirohelm" - inhand_icon_state = "cargo_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/mining name = "mining plasma envirosuit helmet" desc = "A khaki helmet given to plasmamen miners operating on lavaland." icon_state = "explorer_envirohelm" - inhand_icon_state = "explorer_envirohelm" + inhand_icon_state = null visor_icon = "explorer_envisor" /obj/item/clothing/head/helmet/space/plasmaman/chaplain name = "chaplain's plasma envirosuit helmet" desc = "An envirohelmet specially designed for only the most pious of plasmamen." icon_state = "chap_envirohelm" - inhand_icon_state = "chap_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/white name = "white plasma envirosuit helmet" desc = "A generic white envirohelm." icon_state = "white_envirohelm" - inhand_icon_state = "white_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/curator name = "curator's plasma envirosuit helmet" desc = "A slight modification on a traditional voidsuit helmet, this helmet was Nanotrasen's first solution to the *logistical problems* that come with employing plasmamen. Despite their limitations, these helmets still see use by historians and old-school plasmamen alike." icon_state = "prototype_envirohelm" - inhand_icon_state = "prototype_envirohelm" + inhand_icon_state = "void_helmet" actions_types = list(/datum/action/item_action/toggle_welding_screen) smile_state = "prototype_smile" visor_icon = "prototype_envisor" @@ -316,26 +316,26 @@ name = "botany plasma envirosuit helmet" desc = "A green and blue envirohelmet designating its wearer as a botanist. While not specifically designed for it, it would protect against minor plant-related injuries." icon_state = "botany_envirohelm" - inhand_icon_state = "botany_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/janitor name = "janitor's plasma envirosuit helmet" desc = "A grey helmet bearing a pair of purple stripes, designating the wearer as a janitor." icon_state = "janitor_envirohelm" - inhand_icon_state = "janitor_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/mime name = "mime envirosuit helmet" desc = "The make-up is painted on, it's a miracle it doesn't chip. It's not very colourful." icon_state = "mime_envirohelm" - inhand_icon_state = "mime_envirohelm" + inhand_icon_state = null visor_icon = "mime_envisor" /obj/item/clothing/head/helmet/space/plasmaman/clown name = "clown envirosuit helmet" desc = "The make-up is painted on, it's a miracle it doesn't chip. 'HONK!'" icon_state = "clown_envirohelm" - inhand_icon_state = "clown_envirohelm" + inhand_icon_state = null visor_icon = "clown_envisor" smile_state = "clown_smile" @@ -343,29 +343,29 @@ name = "head of personnel's envirosuit helmet" desc = "A special containment helmet designed for the Head of Personnel. Embarrassingly enough, it looks way too much like the captain's design save for the red stripes." icon_state = "hop_envirohelm" - inhand_icon_state = "hop_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/captain name = "captain's plasma envirosuit helmet" desc = "A special containment helmet designed for the Captain. Embarrassingly enough, it looks way too much like the Head of Personnel's design save for the gold stripes. I mean, come on. Gold stripes can fix anything." icon_state = "captain_envirohelm" - inhand_icon_state = "captain_envirohelm" + inhand_icon_state = null armor = list(MELEE = 20, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 10, BIO = 100, FIRE = 100, ACID = 75, WOUND = 10) /obj/item/clothing/head/helmet/space/plasmaman/centcom_commander name = "CentCom commander plasma envirosuit helmet" desc = "A special containment helmet designed for the Higher Central Command Staff. Not many of these exist, as CentCom does not usually employ plasmamen to higher staff positions due to their complications." icon_state = "commander_envirohelm" - inhand_icon_state = "commander_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/centcom_official name = "CentCom official plasma envirosuit helmet" desc = "A special containment helmet designed for CentCom Staff. They sure do love their green." icon_state = "official_envirohelm" - inhand_icon_state = "official_envirohelm" + inhand_icon_state = null /obj/item/clothing/head/helmet/space/plasmaman/centcom_intern name = "CentCom intern plasma envirosuit helmet" desc = "A special containment helmet designed for CentCom Staff. You know, so any coffee spills don't kill the poor sod." icon_state = "intern_envirohelm" - inhand_icon_state = "intern_envirohelm" + inhand_icon_state = null diff --git a/code/modules/clothing/spacesuits/santa.dm b/code/modules/clothing/spacesuits/santa.dm index c67b2e5d745..d7ffc91acec 100644 --- a/code/modules/clothing/spacesuits/santa.dm +++ b/code/modules/clothing/spacesuits/santa.dm @@ -2,6 +2,7 @@ name = "Santa's hat" desc = "Ho ho ho. Merrry X-mas!" icon_state = "santahat" + inhand_icon_state = "santahat" flags_cover = HEADCOVERSEYES dog_fashion = /datum/dog_fashion/head/santa diff --git a/code/modules/clothing/spacesuits/softsuit.dm b/code/modules/clothing/spacesuits/softsuit.dm index b383e25d418..7958bfc9cc2 100644 --- a/code/modules/clothing/spacesuits/softsuit.dm +++ b/code/modules/clothing/spacesuits/softsuit.dm @@ -3,12 +3,12 @@ name = "NASA Void Helmet" desc = "An old, NASA CentCom branch designed, dark red space suit helmet." icon_state = "void" - inhand_icon_state = "void" + inhand_icon_state = "void_helmet" /obj/item/clothing/suit/space/nasavoid name = "NASA Voidsuit" icon_state = "void" - inhand_icon_state = "void" + inhand_icon_state = null desc = "An old, NASA CentCom branch designed, dark red space suit." allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/multitool) @@ -16,12 +16,11 @@ name = "Engineering Void Helmet" desc = "A CentCom engineering dark red space suit helmet. While old and dusty, it still gets the job done." icon_state = "void" - inhand_icon_state = "void" /obj/item/clothing/suit/space/nasavoid/old name = "Engineering Voidsuit" icon_state = "void" - inhand_icon_state = "void" + inhand_icon_state = null desc = "A CentCom engineering dark red space suit. Age has degraded the suit making it difficult to move around in." slowdown = 4 allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/multitool) @@ -37,7 +36,7 @@ /obj/item/clothing/head/helmet/space/eva name = "EVA helmet" icon_state = "space" - inhand_icon_state = "space" + inhand_icon_state = "space_helmet" desc = "A lightweight space helmet with the basic ability to protect the wearer from the vacuum of space during emergencies." flash_protect = FLASH_PROTECTION_NONE armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 50, ACID = 65) @@ -65,7 +64,7 @@ name = "emergency space helmet" desc = "A bulky, air-tight helmet meant to protect the user during emergency situations. It doesn't look very durable." icon_state = "syndicate-helm-orange" - inhand_icon_state = "syndicate-helm-orange" + inhand_icon_state = "syndicate-helm-orange" //resprite? armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0) strip_delay = 65 diff --git a/code/modules/clothing/spacesuits/specialops.dm b/code/modules/clothing/spacesuits/specialops.dm index bc6e081ff7c..c656f4516c2 100644 --- a/code/modules/clothing/spacesuits/specialops.dm +++ b/code/modules/clothing/spacesuits/specialops.dm @@ -4,6 +4,7 @@ greyscale_config = /datum/greyscale_config/beret_badge greyscale_config_worn = /datum/greyscale_config/beret_badge/worn icon_state = "beret_badge" + inhand_icon_state = null greyscale_colors = "#397F3F#FFCE5B" flags_inv = 0 diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index c31e95f244d..f9d388f4259 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -2,7 +2,7 @@ /obj/item/clothing/head/helmet/space/syndicate name = "red space helmet" icon_state = "syndicate" - inhand_icon_state = "syndicate" + inhand_icon_state = "space_syndicate" desc = "Has a tag on it: Totally not property of an enemy corporation, honest!" armor = list(MELEE = 40, BULLET = 50, LASER = 30,ENERGY = 40, BOMB = 30, BIO = 30, FIRE = 80, ACID = 85) @@ -20,7 +20,7 @@ /obj/item/clothing/head/helmet/space/syndicate/green name = "green space helmet" icon_state = "syndicate-helm-green" - inhand_icon_state = "syndicate-helm-green" + inhand_icon_state = "space_helmet_syndicate" /obj/item/clothing/suit/space/syndicate/green name = "green space suit" @@ -140,7 +140,7 @@ desc = "A specialised black and gold helmet that's more compact than its standard Syndicate counterpart. Can be ultra-compressed into even the tightest of spaces." w_class = WEIGHT_CLASS_SMALL icon_state = "syndicate-contract-helm" - inhand_icon_state = "syndicate-contract-helm" + inhand_icon_state = "contractor_helmet" /obj/item/clothing/suit/space/syndicate/contract name = "contractor space suit" @@ -148,7 +148,7 @@ slowdown = 1 w_class = WEIGHT_CLASS_SMALL icon_state = "syndicate-contract" - inhand_icon_state = "syndicate-contract" + inhand_icon_state = null //Black with yellow/red engineering syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/black/engie diff --git a/code/modules/clothing/suits/ablativecoat.dm b/code/modules/clothing/suits/ablativecoat.dm index 9db23eb3a00..be67f80b5bb 100644 --- a/code/modules/clothing/suits/ablativecoat.dm +++ b/code/modules/clothing/suits/ablativecoat.dm @@ -18,7 +18,7 @@ icon = 'icons/obj/clothing/suits/armor.dmi' icon_state = "ablativecoat" worn_icon = 'icons/mob/clothing/suits/armor.dmi' - inhand_icon_state = "ablativecoat" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|ARMS armor = list(MELEE = 10, BULLET = 10, LASER = 60, ENERGY = 60, BOMB = 0, BIO = 0, FIRE = 100, ACID = 100) hoodtype = /obj/item/clothing/head/hooded/ablative diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index a8e4cc4185c..5ae286968a6 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -22,7 +22,7 @@ name = "armor vest" desc = "A slim Type I armored vest that provides decent protection against most types of damage." icon_state = "armoralt" - inhand_icon_state = "armoralt" + inhand_icon_state = "armor" blood_overlay_type = "armor" dog_fashion = /datum/dog_fashion/back @@ -71,7 +71,7 @@ name = "large armor vest" desc = "A large, yet comfortable piece of armor, protecting you from some threats." icon_state = "blueshift" - inhand_icon_state = "blueshift" + inhand_icon_state = null custom_premium_price = PAYCHECK_COMMAND /obj/item/clothing/suit/armor/vest/cuirass @@ -162,7 +162,7 @@ name = "captain's parade coat" desc = "For when an armoured vest isn't fashionable enough." icon_state = "capformal" - inhand_icon_state = "capspacesuit" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS /obj/item/clothing/suit/armor/vest/capcarapace/captains_formal/Initialize(mapload) @@ -186,7 +186,7 @@ name = "bone armor" desc = "A tribal armor plate, crafted from animal bone." icon_state = "bonearmor" - inhand_icon_state = "bonearmor" + inhand_icon_state = null blood_overlay_type = "armor" armor = list(MELEE = 35, BULLET = 25, LASER = 25, ENERGY = 35, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50, WOUND = 10) body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS @@ -235,7 +235,7 @@ name = "infiltrator vest" desc = "This vest appears to be made of of highly flexible materials that absorb impacts with ease." icon_state = "infiltrator" - inhand_icon_state = "infiltrator" + inhand_icon_state = null armor = list(MELEE = 40, BULLET = 40, LASER = 30, ENERGY = 40, BOMB = 70, BIO = 0, FIRE = 100, ACID = 100) resistance_flags = FIRE_PROOF | ACID_PROOF strip_delay = 80 @@ -310,26 +310,26 @@ name = "plate armour" desc = "A classic suit of plate armour, highly effective at stopping melee attacks." icon_state = "knight_green" - inhand_icon_state = "knight_green" + inhand_icon_state = null allowed = list(/obj/item/nullrod, /obj/item/claymore, /obj/item/banner, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) /obj/item/clothing/suit/armor/riot/knight/yellow icon_state = "knight_yellow" - inhand_icon_state = "knight_yellow" + inhand_icon_state = null /obj/item/clothing/suit/armor/riot/knight/blue icon_state = "knight_blue" - inhand_icon_state = "knight_blue" + inhand_icon_state = null /obj/item/clothing/suit/armor/riot/knight/red icon_state = "knight_red" - inhand_icon_state = "knight_red" + inhand_icon_state = null /obj/item/clothing/suit/armor/riot/knight/greyscale name = "knight armour" desc = "A classic suit of armour, able to be made from many different materials." icon_state = "knight_greyscale" - inhand_icon_state = "knight_greyscale" + inhand_icon_state = null material_flags = MATERIAL_EFFECTS | MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS//Can change color and add prefix armor = list(MELEE = 35, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 10, BIO = 10, FIRE = 40, ACID = 40, WOUND = 15) @@ -337,7 +337,7 @@ name = "durathread vest" desc = "A vest made of durathread with strips of leather acting as trauma plates." icon_state = "durathread" - inhand_icon_state = "durathread" + inhand_icon_state = null strip_delay = 60 equip_delay_other = 40 max_integrity = 200 @@ -348,14 +348,14 @@ name = "russian vest" desc = "A bulletproof vest with forest camo. Good thing there's plenty of forests to hide in around here, right?" icon_state = "rus_armor" - inhand_icon_state = "rus_armor" + inhand_icon_state = null armor = list(MELEE = 25, BULLET = 30, LASER = 0, ENERGY = 10, BOMB = 10, BIO = 0, FIRE = 20, ACID = 50, WOUND = 10) /obj/item/clothing/suit/armor/vest/russian_coat name = "russian battle coat" desc = "Used in extremly cold fronts, made out of real bears." icon_state = "rus_coat" - inhand_icon_state = "rus_coat" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT @@ -365,7 +365,7 @@ name = "\improper Elder Atmosian Armor" desc = "A superb armor made with the toughest and rarest materials available to man." icon_state = "h2armor" - inhand_icon_state = "h2armor" + inhand_icon_state = null material_flags = MATERIAL_EFFECTS | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS//Can change color and add prefix armor = list(MELEE = 25, BULLET = 20, LASER = 30, ENERGY = 30, BOMB = 85, BIO = 10, FIRE = 65, ACID = 40, WOUND = 15) body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 72d6b7b3446..0aba4fb2961 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -2,6 +2,7 @@ /obj/item/clothing/head/bio_hood name = "bio hood" icon_state = "bio" + inhand_icon_state = "bio_hood" desc = "A hood that protects the head and face from biological contaminants." clothing_flags = THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT | SNUG_FIT | PLASMAMAN_HELMET_EXEMPT armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 30, ACID = 100) diff --git a/code/modules/clothing/suits/chaplainsuits.dm b/code/modules/clothing/suits/chaplainsuits.dm index c6acf66d02c..32a467e96a0 100644 --- a/code/modules/clothing/suits/chaplainsuits.dm +++ b/code/modules/clothing/suits/chaplainsuits.dm @@ -46,14 +46,14 @@ name = "student robe" desc = "The uniform of a bygone institute of learning." icon_state = "studentuni" - inhand_icon_state = "studentuni" + inhand_icon_state = null body_parts_covered = ARMS|CHEST /obj/item/clothing/suit/chaplainsuit/armor/witchhunter name = "witchunter garb" desc = "This worn outfit saw much use back in the day." icon_state = "witchhunter" - inhand_icon_state = "witchhunter" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|ARMS /obj/item/clothing/suit/hooded/chaplainsuit/monkhabit @@ -70,7 +70,7 @@ name = "monk's hood" desc = "For when a man wants to cover up his tonsure." icon_state = "monkhood" - inhand_icon_state = "monkhood" + inhand_icon_state = null body_parts_covered = HEAD flags_inv = HIDEHAIR|HIDEEARS @@ -78,7 +78,7 @@ name = "eastern monk's robes" desc = "Best combined with a shaved head." icon_state = "monkrobeeast" - inhand_icon_state = "monkrobeeast" + inhand_icon_state = null body_parts_covered = GROIN|LEGS flags_inv = HIDEJUMPSUIT @@ -86,7 +86,7 @@ name = "white robe" desc = "Good for clerics and sleepy crewmembers." icon_state = "whiterobe" - inhand_icon_state = "whiterobe" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|ARMS flags_inv = HIDEJUMPSUIT @@ -103,7 +103,7 @@ name = "forgotten helmet" desc = "It has the unyielding gaze of a god eternally forgotten." icon_state = "clockwork_helmet" - inhand_icon_state = "clockwork_helmet_inhand" + inhand_icon_state = null armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 0, BIO = 0, FIRE = 80, ACID = 80) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH @@ -114,7 +114,7 @@ name = "forgotten armour" desc = "It sounds like hissing steam, ticking cogs, gone silent, It looks like a dead machine, trying to tick with life." icon_state = "clockwork_cuirass" - inhand_icon_state = "clockwork_cuirass_inhand" + inhand_icon_state = null allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/cup/glass/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) slowdown = 0 clothing_flags = NONE @@ -123,7 +123,7 @@ name = "crusader helmet" desc = "Deus Vult." icon_state = "knight_templar" - inhand_icon_state = "knight_templar" + inhand_icon_state = null armor = list(MELEE = 50, BULLET = 10, LASER = 10, ENERGY = 10, BOMB = 0, BIO = 0, FIRE = 80, ACID = 80) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH @@ -134,7 +134,7 @@ name = "crusader armour" desc = "God wills it!" icon_state = "knight_templar" - inhand_icon_state = "knight_templar" + inhand_icon_state = null allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/cup/glass/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) slowdown = 0 clothing_flags = NONE @@ -144,26 +144,26 @@ desc = "A cage that restrains the will of the self, allowing one to see the profane world for what it is." flags_inv = NONE icon_state = "cage" - inhand_icon_state = "cage" + inhand_icon_state = null worn_y_offset = 7 /obj/item/clothing/head/helmet/chaplain/ancient name = "ancient helmet" desc = "None may pass!" icon_state = "knight_ancient" - inhand_icon_state = "knight_ancient" + inhand_icon_state = null /obj/item/clothing/suit/chaplainsuit/armor/ancient name = "ancient armour" desc = "Defend the treasure..." icon_state = "knight_ancient" - inhand_icon_state = "knight_ancient" + inhand_icon_state = null /obj/item/clothing/head/helmet/chaplain/witchunter_hat name = "witchunter hat" desc = "This hat saw much use back in the day." icon_state = "witchhunterhat" - inhand_icon_state = "witchhunterhat" + inhand_icon_state = null flags_cover = HEADCOVERSEYES flags_inv = HIDEEYES @@ -171,7 +171,7 @@ name = "adept hood" desc = "Its only heretical when others do it." icon_state = "crusader" - inhand_icon_state = "crusader" + inhand_icon_state = null flags_cover = HEADCOVERSEYES flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS @@ -179,7 +179,7 @@ name = "adept robes" desc = "The ideal outfit for burning the unfaithful." icon_state = "crusader" - inhand_icon_state = "crusader" + inhand_icon_state = null /obj/item/clothing/suit/chaplainsuit/armor/crusader name = "Crusader's Armour" @@ -202,7 +202,7 @@ icon_state = "chaplain_hoodie" icon = 'icons/obj/clothing/suits/chaplain.dmi' worn_icon = 'icons/mob/clothing/suits/chaplain.dmi' - inhand_icon_state = "chaplain_hoodie" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|ARMS allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/cup/glass/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) hoodtype = /obj/item/clothing/head/hooded/chaplain_hood @@ -218,7 +218,7 @@ name = "leader hoodie" desc = "Now you're ready for some 50 dollar bling water." icon_state = "chaplain_hoodie_leader" - inhand_icon_state = "chaplain_hoodie_leader" + inhand_icon_state = null hoodtype = /obj/item/clothing/head/hooded/chaplain_hood/leader /obj/item/clothing/head/hooded/chaplain_hood/leader diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index ee3f01ab9d5..1374551829b 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -5,7 +5,7 @@ desc = "It's a cape that can be worn around your neck." icon = 'icons/obj/clothing/cloaks.dmi' icon_state = "qmcloak" - inhand_icon_state = "qmcloak" + inhand_icon_state = null w_class = WEIGHT_CLASS_SMALL body_parts_covered = CHEST|GROIN|LEGS|ARMS flags_inv = HIDESUITSTORAGE diff --git a/code/modules/clothing/suits/costume.dm b/code/modules/clothing/suits/costume.dm index 251cd2b1b7e..c1212ec98aa 100644 --- a/code/modules/clothing/suits/costume.dm +++ b/code/modules/clothing/suits/costume.dm @@ -23,7 +23,7 @@ name = "pirate coat" desc = "Yarr." icon_state = "pirate" - inhand_icon_state = "pirate" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS allowed = list(/obj/item/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/reagent_containers/cup/glass/bottle/rum) species_exception = list(/datum/species/golem) @@ -38,7 +38,7 @@ name = "pirate captain coat" desc = "Yarr." icon_state = "hgpirate" - inhand_icon_state = "hgpirate" + inhand_icon_state = null /obj/item/clothing/suit/costume/pirate/armored armor = list(MELEE = 30, BULLET = 50, LASER = 30,ENERGY = 40, BOMB = 30, BIO = 30, FIRE = 60, ACID = 75) @@ -50,7 +50,7 @@ name = "cyborg suit" desc = "Suit for a cyborg costume." icon_state = "death" - inhand_icon_state = "death" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS|LEGS|FEET flags_1 = CONDUCT_1 fire_resist = T0C+5200 @@ -60,7 +60,7 @@ name = "justice suit" desc = "this pretty much looks ridiculous" //Needs no fixing icon_state = "justice" - inhand_icon_state = "justice" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS|LEGS flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT armor = list(MELEE = 35, BULLET = 30, LASER = 30, ENERGY = 40, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50) @@ -86,7 +86,7 @@ name = "purple bartender apron" desc = "A fancy purple apron for a stylish person." icon_state = "purplebartenderapron" - inhand_icon_state = "purplebartenderapron" + inhand_icon_state = null body_parts_covered = CHEST|GROIN /obj/item/clothing/suit/syndicatefake @@ -106,7 +106,7 @@ name = "\improper Hastur's robe" desc = "Robes not meant to be worn by man." icon_state = "hastur" - inhand_icon_state = "hastur" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|ARMS flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT @@ -131,7 +131,7 @@ name = "monkey suit" desc = "A suit that looks like a primate." icon_state = "monkeysuit" - inhand_icon_state = "monkeysuit" + inhand_icon_state = null body_parts_covered = CHEST|ARMS|GROIN|LEGS|FEET|HANDS flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT @@ -141,7 +141,7 @@ icon_state = "owl_wings" icon = 'icons/obj/clothing/suits/costume.dmi' worn_icon = 'icons/mob/clothing/suits/costume.dmi' - inhand_icon_state = "owl_wings" + inhand_icon_state = null toggle_noun = "wings" body_parts_covered = ARMS|CHEST @@ -153,7 +153,7 @@ name = "griffon cloak" desc = "A plush white cloak made of synthetic feathers. Soft to the touch, stylish, and a 2 meter wing span that will drive your captives mad." icon_state = "griffin_wings" - inhand_icon_state = "griffin_wings" + inhand_icon_state = null /obj/item/clothing/suit/costume/cardborg name = "cardborg suit" @@ -187,7 +187,7 @@ name = "snowman outfit" desc = "Two white spheres covered in white glitter. 'Tis the season." icon_state = "snowman" - inhand_icon_state = "snowman" + inhand_icon_state = null body_parts_covered = CHEST|GROIN flags_inv = HIDEJUMPSUIT @@ -195,26 +195,26 @@ name = "poncho" desc = "Your classic, non-racist poncho." icon_state = "classicponcho" - inhand_icon_state = "classicponcho" + inhand_icon_state = null species_exception = list(/datum/species/golem) /obj/item/clothing/suit/costume/poncho/green name = "green poncho" desc = "Your classic, non-racist poncho. This one is green." icon_state = "greenponcho" - inhand_icon_state = "greenponcho" + inhand_icon_state = null /obj/item/clothing/suit/costume/poncho/red name = "red poncho" desc = "Your classic, non-racist poncho. This one is red." icon_state = "redponcho" - inhand_icon_state = "redponcho" + inhand_icon_state = null /obj/item/clothing/suit/costume/poncho/ponchoshame name = "poncho of shame" desc = "Forced to live on your shameful acting as a fake Mexican, you and your poncho have grown inseparable. Literally." icon_state = "ponchoshame" - inhand_icon_state = "ponchoshame" + inhand_icon_state = null /obj/item/clothing/suit/costume/poncho/ponchoshame/Initialize(mapload) . = ..() @@ -370,7 +370,7 @@ name = "shrine maiden's outfit" desc = "Makes you want to exterminate some troublesome youkai." icon_state = "shrine_maiden" - inhand_icon_state = "shrine_maiden" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|ARMS flags_inv = HIDEJUMPSUIT @@ -378,31 +378,31 @@ name = "striped sweater" desc = "Reminds you of someone, but you just can't put your finger on it..." icon_state = "waldo_shirt" - inhand_icon_state = "waldo_shirt" + inhand_icon_state = null /obj/item/clothing/suit/costume/dracula name = "dracula coat" desc = "Looks like this belongs in a very old movie set." icon_state = "draculacoat" - inhand_icon_state = "draculacoat" + inhand_icon_state = null /obj/item/clothing/suit/costume/drfreeze_coat name = "doctor freeze's labcoat" desc = "A labcoat imbued with the power of features and freezes." icon_state = "drfreeze_coat" - inhand_icon_state = "drfreeze_coat" + inhand_icon_state = null /obj/item/clothing/suit/costume/gothcoat name = "gothic coat" desc = "Perfect for those who want to stalk around a corner of a bar." icon_state = "gothcoat" - inhand_icon_state = "gothcoat" + inhand_icon_state = null /obj/item/clothing/suit/costume/xenos name = "xenos suit" desc = "A suit made out of chitinous alien hide." icon_state = "xenos" - inhand_icon_state = "xenos_helm" + inhand_icon_state = "xenos_suit" body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT allowed = list(/obj/item/clothing/mask/facehugger/toy) @@ -411,35 +411,35 @@ name = "pharoah tunic" desc = "Lavish space tomb not included." icon_state = "pharoah" - inhand_icon_state = "pharoah" + inhand_icon_state = null body_parts_covered = CHEST|GROIN /obj/item/clothing/suit/costume/changshan_red name = "red changshan" desc = "A gorgeously embroidered silk shirt." icon_state = "changshan_red" - inhand_icon_state = "changshan_red" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS|LEGS /obj/item/clothing/suit/costume/changshan_blue name = "blue changshan" desc = "A gorgeously embroidered silk shirt." icon_state = "changshan_blue" - inhand_icon_state = "changshan_blue" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS|LEGS /obj/item/clothing/suit/costume/cheongsam_red name = "red cheongsam" desc = "A gorgeously embroidered silk dress." icon_state = "cheongsam_red" - inhand_icon_state = "cheongsam_red" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS|LEGS /obj/item/clothing/suit/costume/cheongsam_blue name = "blue cheongsam" desc = "A gorgeously embroidered silk dress." icon_state = "cheongsam_blue" - inhand_icon_state = "cheongsam_blue" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS|LEGS /obj/item/clothing/suit/costume/bronze @@ -464,7 +464,7 @@ name = "mystic's hood" desc = "The balance of reality tips towards order." icon_state = "mystichood" - inhand_icon_state = "mystichood" + inhand_icon_state = null body_parts_covered = HEAD flags_inv = HIDEHAIR|HIDEEARS|HIDEFACIALHAIR|HIDEFACE|HIDEMASK @@ -474,14 +474,14 @@ icon_state = "capformal" icon = 'icons/obj/clothing/suits/armor.dmi' worn_icon = 'icons/mob/clothing/suits/armor.dmi' - inhand_icon_state = "capspacesuit" + inhand_icon_state = null armor = list(MELEE = 25, BULLET = 15, LASER = 25, ENERGY = 35, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50) /obj/item/clothing/suit/costume/hawaiian name = "hawaiian overshirt" desc = "A cool shirt for chilling on the beach." icon_state = "hawaiian_blue" - inhand_icon_state = "hawaiian_blue" + inhand_icon_state = null species_exception = list(/datum/species/golem) /obj/item/clothing/suit/costume/football_armor @@ -503,7 +503,7 @@ name = "decker hoodie" desc = "Based? Based on what?" icon_state = "decker_suit" - inhand_icon_state = "decker_suit" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|ARMS supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON @@ -511,21 +511,21 @@ name = "soviet armored coat" desc = "Conscript reporting! Sponsored by DonkSoft Co. for historical reenactment of the Third World War!" icon_state = "soviet_suit" - inhand_icon_state = "soviet_suit" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|ARMS /obj/item/clothing/suit/costume/yuri name = "yuri initiate coat" desc = "Yuri is master! Sponsored by DonkSoft Co. for historical reenactment of the Third World War!" icon_state = "yuri_coat" - inhand_icon_state = "yuri_coat" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS /obj/item/clothing/suit/costume/tmc name = "\improper Lost M.C. cut" desc = "Making sure everyone knows you're in the best biker gang this side of Alderney." icon_state = "tmc_suit" - inhand_icon_state = "tmc_suit" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|ARMS supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON @@ -533,6 +533,6 @@ name = "powder ganger jacket" desc = "Remind Security of their mistakes in giving prisoners blasting charges." icon_state = "pg_suit" - inhand_icon_state = "pg_suit" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|ARMS supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON diff --git a/code/modules/clothing/suits/ghostsheet.dm b/code/modules/clothing/suits/ghostsheet.dm index 52ff8b7ff1d..46538931f32 100644 --- a/code/modules/clothing/suits/ghostsheet.dm +++ b/code/modules/clothing/suits/ghostsheet.dm @@ -2,7 +2,7 @@ name = "ghost sheet" desc = "The hands float by themselves, so it's extra spooky." icon_state = "ghost_sheet" - inhand_icon_state = "ghost_sheet" + inhand_icon_state = null throwforce = 0 throw_speed = 1 throw_range = 2 diff --git a/code/modules/clothing/suits/jacket.dm b/code/modules/clothing/suits/jacket.dm index f5a910d47c8..f4acf74356a 100644 --- a/code/modules/clothing/suits/jacket.dm +++ b/code/modules/clothing/suits/jacket.dm @@ -84,33 +84,33 @@ name = "military jacket" desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable." icon_state = "militaryjacket" - inhand_icon_state = "militaryjacket" + inhand_icon_state = null allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/radio) /obj/item/clothing/suit/jacket/letterman name = "letterman jacket" desc = "A classic brown letterman jacket. Looks pretty hot and heavy." icon_state = "letterman" - inhand_icon_state = "letterman" + inhand_icon_state = null species_exception = list(/datum/species/golem) /obj/item/clothing/suit/jacket/letterman_red name = "red letterman jacket" desc = "A letterman jacket in a sick red color. Radical." icon_state = "letterman_red" - inhand_icon_state = "letterman_red" + inhand_icon_state = null species_exception = list(/datum/species/golem) /obj/item/clothing/suit/jacket/letterman_syndie name = "blood-red letterman jacket" desc = "Oddly, this jacket seems to have a large S on the back..." icon_state = "letterman_s" - inhand_icon_state = "letterman_s" + inhand_icon_state = null species_exception = list(/datum/species/golem) /obj/item/clothing/suit/jacket/letterman_nanotrasen name = "blue letterman jacket" desc = "A blue letterman jacket with a proud Nanotrasen N on the back. The tag says that it was made in Space China." icon_state = "letterman_n" - inhand_icon_state = "letterman_n" + inhand_icon_state = null species_exception = list(/datum/species/golem) diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 110ce27ba52..96db8ae76b8 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -9,7 +9,7 @@ icon_state = "apron" icon = 'icons/obj/clothing/suits/utility.dmi' worn_icon = 'icons/mob/clothing/suits/utility.dmi' - inhand_icon_state = "apron" + inhand_icon_state = null blood_overlay_type = "armor" body_parts_covered = CHEST|GROIN allowed = list( @@ -33,7 +33,7 @@ name = "horticultural waders" desc = "A pair of heavy duty leather waders, perfect for insulating your soft flesh from spills, soil and thorns." icon_state = "hort_waders" - inhand_icon_state = "hort_waders" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS //Captain @@ -63,9 +63,9 @@ name = "chef's apron" desc = "An apron-jacket used by a high class chef." icon_state = "chef" + inhand_icon_state = "chef" icon = 'icons/obj/clothing/suits/jacket.dmi' worn_icon = 'icons/mob/clothing/suits/jacket.dmi' - inhand_icon_state = "chef" armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 50, FIRE = 0, ACID = 0) body_parts_covered = CHEST|GROIN|ARMS allowed = list( @@ -81,7 +81,7 @@ name = "cook's apron" desc = "A basic, dull, white chef's apron." icon_state = "apronchef" - inhand_icon_state = "apronchef" + inhand_icon_state = null blood_overlay_type = "armor" body_parts_covered = CHEST|GROIN allowed = list( @@ -110,25 +110,25 @@ name = "noir trenchcoat" desc = "A hard-boiled private investigator's dark trenchcoat." icon_state = "noirdet" - inhand_icon_state = "greydet" + inhand_icon_state = null /obj/item/clothing/suit/jacket/det_suit/noir name = "noir suit coat" desc = "A dapper private investigator's dark suit coat." icon_state = "detsuit" - inhand_icon_state = "detsuit" + inhand_icon_state = null /obj/item/clothing/suit/jacket/det_suit/kim name = "aerostatic bomber jacket" desc = "A jacket once worn by the revolutionary air brigades during the Antecentennial Revolution. There are quite a few pockets on the inside, mostly for storing notebooks and compasses." icon_state = "aerostatic_bomber_jacket" - inhand_icon_state = "aerostatic_bomber_jacket" + inhand_icon_state = null /obj/item/clothing/suit/jacket/det_suit/disco name = "disco ass blazer" desc = "Looks like someone skinned this blazer off some long extinct disco-animal. It has an enigmatic white rectangle on the back and the right sleeve." icon_state = "jamrock_blazer" - inhand_icon_state = "jamrock_blazer" + inhand_icon_state = null //Engineering /obj/item/clothing/suit/hazardvest @@ -137,7 +137,7 @@ icon_state = "hazard" icon = 'icons/obj/clothing/suits/utility.dmi' worn_icon = 'icons/mob/clothing/suits/utility.dmi' - inhand_icon_state = "hazard" + inhand_icon_state = null blood_overlay_type = "armor" allowed = list( /obj/item/fireaxe/metal_h2_axe, @@ -164,7 +164,7 @@ icon_state = "suitjacket_blue" icon = 'icons/obj/clothing/suits/jacket.dmi' worn_icon = 'icons/mob/clothing/suits/jacket.dmi' - inhand_icon_state = "suitjacket_blue" + inhand_icon_state = null blood_overlay_type = "coat" body_parts_covered = CHEST|ARMS species_exception = list(/datum/species/golem) @@ -173,7 +173,7 @@ name = "purple suit jacket" desc = "A foppish dress jacket." icon_state = "suitjacket_purp" - inhand_icon_state = "suitjacket_purp" + inhand_icon_state = null /obj/item/clothing/suit/toggle/lawyer/black name = "black suit jacket" @@ -202,42 +202,42 @@ name = "security officer's jacket" desc = "This jacket is for those special occasions when a security officer isn't required to wear their armor." icon_state = "officerbluejacket" - inhand_icon_state = "officerbluejacket" + inhand_icon_state = null body_parts_covered = CHEST|ARMS /obj/item/clothing/suit/jacket/officer/tan name = "security officer's jacket" desc = "This jacket is for those special occasions when a security officer isn't required to wear their armor." icon_state = "officertanjacket" - inhand_icon_state = "officertanjacket" + inhand_icon_state = null body_parts_covered = CHEST|ARMS /obj/item/clothing/suit/jacket/warden/blue name = "warden's jacket" desc = "Perfectly suited for the warden that wants to leave an impression of style on those who visit the brig." icon_state = "wardenbluejacket" - inhand_icon_state = "wardenbluejacket" + inhand_icon_state = null body_parts_covered = CHEST|ARMS /obj/item/clothing/suit/jacket/warden/tan name = "warden's jacket" desc = "Perfectly suited for the warden that wants to leave an impression of style on those who visit the brig." icon_state = "wardentanjacket" - inhand_icon_state = "wardentanjacket" + inhand_icon_state = null body_parts_covered = CHEST|ARMS /obj/item/clothing/suit/jacket/hos/blue name = "head of security's jacket" desc = "This piece of clothing was specifically designed for asserting superior authority." icon_state = "hosbluejacket" - inhand_icon_state = "hosbluejacket" + inhand_icon_state = null body_parts_covered = CHEST|ARMS /obj/item/clothing/suit/jacket/hos/tan name = "head of security's jacket" desc = "This piece of clothing was specifically designed for asserting superior authority." icon_state = "hostanjacket" - inhand_icon_state = "hostanjacket" + inhand_icon_state = null body_parts_covered = CHEST|ARMS //Surgeon @@ -268,7 +268,7 @@ name = "treasure hunter's coat" desc = "Both fashionable and lightly armoured, this jacket is favoured by treasure hunters the galaxy over." icon_state = "curator" - inhand_icon_state = "curator" + inhand_icon_state = null blood_overlay_type = "coat" body_parts_covered = CHEST|ARMS allowed = list( @@ -287,7 +287,7 @@ icon_state = "techpriest" icon = 'icons/obj/clothing/suits/costume.dmi' worn_icon = 'icons/mob/clothing/suits/costume.dmi' - inhand_icon_state = "techpriest" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|ARMS hoodtype = /obj/item/clothing/head/hooded/techpriest @@ -295,6 +295,6 @@ name = "techpriest's hood" desc = "A hood for those who REALLY love their toasters." icon_state = "techpriesthood" - inhand_icon_state = "techpriesthood" + inhand_icon_state = null body_parts_covered = HEAD flags_inv = HIDEHAIR|HIDEEARS diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index e09686629ed..0e16e95b504 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -35,7 +35,7 @@ name = "chief medical officer's labcoat" desc = "Bluer than the standard model." icon_state = "labcoat_cmo" - inhand_icon_state = "labcoat_cmo" + inhand_icon_state = null /obj/item/clothing/suit/toggle/labcoat/cmo/Initialize(mapload) . = ..() @@ -47,13 +47,13 @@ name = "paramedic's jacket" desc = "A dark blue jacket for paramedics with reflective stripes." icon_state = "labcoat_paramedic" - inhand_icon_state = "labcoat_paramedic" + inhand_icon_state = null /obj/item/clothing/suit/toggle/labcoat/mad name = "\proper The Mad's labcoat" desc = "It makes you look capable of konking someone on the noggin and shooting them into space." icon_state = "labgreen" - inhand_icon_state = "labgreen" + inhand_icon_state = null /obj/item/clothing/suit/toggle/labcoat/genetics name = "geneticist labcoat" diff --git a/code/modules/clothing/suits/lasertag.dm b/code/modules/clothing/suits/lasertag.dm index 9af3e48923e..5bea86ea312 100644 --- a/code/modules/clothing/suits/lasertag.dm +++ b/code/modules/clothing/suits/lasertag.dm @@ -4,7 +4,7 @@ icon_state = "bluetag" icon = 'icons/obj/clothing/suits/costume.dmi' worn_icon = 'icons/mob/clothing/suits/costume.dmi' - inhand_icon_state = "bluetag" + inhand_icon_state = null blood_overlay_type = "armor" body_parts_covered = CHEST allowed = list (/obj/item/gun/energy/laser/bluetag) @@ -16,7 +16,7 @@ icon_state = "redtag" icon = 'icons/obj/clothing/suits/costume.dmi' worn_icon = 'icons/mob/clothing/suits/costume.dmi' - inhand_icon_state = "redtag" + inhand_icon_state = null blood_overlay_type = "armor" body_parts_covered = CHEST allowed = list (/obj/item/gun/energy/laser/redtag) diff --git a/code/modules/clothing/suits/reactive_armour.dm b/code/modules/clothing/suits/reactive_armour.dm index 9b27f192f46..4abe44ed1c5 100644 --- a/code/modules/clothing/suits/reactive_armour.dm +++ b/code/modules/clothing/suits/reactive_armour.dm @@ -31,7 +31,7 @@ name = "reactive armor" desc = "Doesn't seem to do much for some reason." icon_state = "reactiveoff" - inhand_icon_state = "reactiveoff" + inhand_icon_state = null blood_overlay_type = "armor" armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 100) actions_types = list(/datum/action/item_action/toggle) @@ -50,19 +50,13 @@ ///The cooldown itself of the reactive armor for when it can activate again. var/reactivearmor_cooldown = 0 - /obj/item/clothing/suit/armor/reactive/Initialize(mapload) . = ..() AddElement(/datum/element/update_icon_updates_onmob, ITEM_SLOT_OCLOTHING) /obj/item/clothing/suit/armor/reactive/update_icon_state() . = ..() - if(active) - icon_state = "reactive" - inhand_icon_state = "reactive" - else - icon_state = "reactiveoff" - inhand_icon_state = "reactiveoff" + icon_state = "reactive[active ? null : "off"]" /obj/item/clothing/suit/armor/reactive/attack_self(mob/user) active = !active diff --git a/code/modules/clothing/suits/shirt.dm b/code/modules/clothing/suits/shirt.dm index e034958bc95..b2c2e9057fb 100644 --- a/code/modules/clothing/suits/shirt.dm +++ b/code/modules/clothing/suits/shirt.dm @@ -2,7 +2,7 @@ name = "worn shirt" desc = "A worn out, curiously comfortable t-shirt with a picture of Ian. You wouldn't go so far as to say it feels like being hugged when you wear it, but it's pretty close. Good for sleeping in." icon_state = "ianshirt" - inhand_icon_state = "ianshirt" + inhand_icon_state = null species_exception = list(/datum/species/golem) ///How many times has this shirt been washed? (In an ideal world this is just the determinant of the transform matrix.) var/wash_count = 0 @@ -21,5 +21,5 @@ name = "gamer shirt" desc = "A baggy shirt with vintage game character Phanic the Weasel. Why would anyone wear this?" icon_state = "nerdshirt" - inhand_icon_state = "nerdshirt" + inhand_icon_state = null species_exception = list(/datum/species/golem) diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 5d751623c06..78b5dbb8594 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -59,7 +59,7 @@ name = "firesuit" desc = "An expensive firesuit that protects against even the most deadly of station fires. Designed to protect even if the wearer is set aflame." icon_state = "atmos_firesuit" - inhand_icon_state = "firesuit_atmos" + inhand_icon_state = null max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT /* @@ -87,7 +87,7 @@ name = "bomb suit" desc = "A suit designed for safety when handling explosives." icon_state = "bombsuit" - inhand_icon_state = "bombsuit" + inhand_icon_state = null w_class = WEIGHT_CLASS_BULKY clothing_flags = THICKMATERIAL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -105,21 +105,21 @@ /obj/item/clothing/head/bomb_hood/security icon_state = "bombsuit_sec" - inhand_icon_state = "bombsuit_sec" + inhand_icon_state = null /obj/item/clothing/suit/utility/bomb_suit/security icon_state = "bombsuit_sec" - inhand_icon_state = "bombsuit_sec" + inhand_icon_state = null allowed = list(/obj/item/gun/energy, /obj/item/melee/baton, /obj/item/restraints/handcuffs) /obj/item/clothing/head/bomb_hood/white icon_state = "bombsuit_white" - inhand_icon_state = "bombsuit_white" + inhand_icon_state = null /obj/item/clothing/suit/utility/bomb_suit/white icon_state = "bombsuit_white" - inhand_icon_state = "bombsuit_white" + inhand_icon_state = null /* * Radiation protection diff --git a/code/modules/clothing/suits/wintercoats.dm b/code/modules/clothing/suits/wintercoats.dm index 2f1699bb853..38950e4ebb5 100644 --- a/code/modules/clothing/suits/wintercoats.dm +++ b/code/modules/clothing/suits/wintercoats.dm @@ -75,7 +75,7 @@ name = "centcom winter coat" desc = "A luxurious winter coat woven in the bright green and gold colours of Central Command. It has a small pin in the shape of the Nanotrasen logo for a zipper." icon_state = "coatcentcom" - inhand_icon_state = "coatcentcom" + inhand_icon_state = null armor = list(MELEE = 35, BULLET = 40, LASER = 40, ENERGY = 50, BOMB = 35, BIO = 10, FIRE = 10, ACID = 60) hoodtype = /obj/item/clothing/head/hooded/winterhood/centcom @@ -111,7 +111,7 @@ name = "head of personnel's winter coat" desc = "A cozy winter coat, covered in thick fur. The breast features a proud yellow chevron, reminding everyone that you're the second banana." icon_state = "coathop" - inhand_icon_state = "coathop" + inhand_icon_state = null armor = list(MELEE = 10, BULLET = 15, LASER = 15, ENERGY = 25, BOMB = 10, BIO = 0, FIRE = 0, ACID = 35) allowed = list( /obj/item/melee/baton/telescopic, @@ -148,7 +148,7 @@ name = "janitors winter coat" desc = "A purple-and-beige winter coat that smells of space cleaner." icon_state = "coatjanitor" - inhand_icon_state = "coatjanitor" + inhand_icon_state = null allowed = list( /obj/item/grenade/chem_grenade, /obj/item/holosign_creator, @@ -212,7 +212,7 @@ name = "chief medical officer's winter coat" desc = "A winter coat in a vibrant shade of blue with a small silver caduceus instead of a plastic zipper tab. The normal liner is replaced with an exceptionally thick, soft layer of fur." icon_state = "coatcmo" - inhand_icon_state = "coatcmo" + inhand_icon_state = null armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 50, FIRE = 20, ACID = 30) hoodtype = /obj/item/clothing/head/hooded/winterhood/medical/cmo @@ -232,7 +232,7 @@ name = "chemistry winter coat" desc = "A lab-grade winter coat made with acid resistant polymers. For the enterprising chemist who was exiled to a frozen wasteland on the go." icon_state = "coatchemistry" - inhand_icon_state = "coatchemistry" + inhand_icon_state = null hoodtype = /obj/item/clothing/head/hooded/winterhood/medical/chemistry /obj/item/clothing/suit/hooded/wintercoat/medical/chemistry/Initialize(mapload) @@ -248,7 +248,7 @@ name = "virology winter coat" desc = "A white winter coat with green markings. Warm, but wont fight off the common cold or any other disease. Might make people stand far away from you in the hallway. The zipper tab looks like an oversized bacteriophage." icon_state = "coatviro" - inhand_icon_state = "coatviro" + inhand_icon_state = null hoodtype = /obj/item/clothing/head/hooded/winterhood/medical/viro /obj/item/clothing/suit/hooded/wintercoat/medical/viro/Initialize(mapload) @@ -264,7 +264,7 @@ name = "paramedic winter coat" desc = "A winter coat with blue markings. Warm, but probably won't protect from biological agents. For the cozy doctor on the go." icon_state = "coatparamed" - inhand_icon_state = "coatparamed" + inhand_icon_state = null hoodtype = /obj/item/clothing/head/hooded/winterhood/medical/paramedic /obj/item/clothing/head/hooded/winterhood/medical/paramedic @@ -304,7 +304,7 @@ name = "research director's winter coat" desc = "A thick arctic winter coat with an outdated atomic model instead of a plastic zipper tab. Most in the know are heavily aware that Bohr's model of the atom was outdated by the time of the 1930s when the Heisenbergian and Schrodinger models were generally accepted for true. Nevertheless, we still see its use in anachronism, roleplaying, and, in this case, as a zipper tab. At least it should keep you warm on your ivory pillar." icon_state = "coatrd" - inhand_icon_state = "coatrd" + inhand_icon_state = null armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 20, BIO = 0, FIRE = 30, ACID = 0) hoodtype = /obj/item/clothing/head/hooded/winterhood/science/rd @@ -324,7 +324,7 @@ name = "robotics winter coat" desc = "A black winter coat with a badass flaming robotic skull for the zipper tab. This one has bright red designs and a few useless buttons." icon_state = "coatrobotics" - inhand_icon_state = "coatrobotics" + inhand_icon_state = null hoodtype = /obj/item/clothing/head/hooded/winterhood/science/robotics /obj/item/clothing/head/hooded/winterhood/science/robotics @@ -336,7 +336,7 @@ name = "genetics winter coat" desc = "A white winter coat with a DNA helix for the zipper tab." icon_state = "coatgenetics" - inhand_icon_state = "coatgenetics" + inhand_icon_state = null hoodtype = /obj/item/clothing/head/hooded/winterhood/science/genetics /obj/item/clothing/head/hooded/winterhood/science/genetics @@ -381,7 +381,7 @@ name = "chief engineer's winter coat" desc = "A white winter coat with reflective green and yellow stripes. Stuffed with asbestos, treated with fire retardant PBDE, lined with a micro thin sheet of lead foil and snugly fitted to your body's measurements. This baby's ready to save you from anything except the thyroid cancer and systemic fibrosis you'll get from wearing it. The zipper tab is a tiny golden wrench." icon_state = "coatce" - inhand_icon_state = "coatce" + inhand_icon_state = null armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 30, ACID = 10) hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering/ce @@ -426,7 +426,7 @@ name = "quartermaster's winter coat" desc = "A dark brown winter coat that has a golden crate pin for its zipper pully." icon_state = "coatqm" - inhand_icon_state = "coatqm" + inhand_icon_state = null hoodtype = /obj/item/clothing/head/hooded/winterhood/cargo/qm /obj/item/clothing/suit/hooded/wintercoat/cargo/qm/Initialize(mapload) diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index cac7b8f8abe..fe71d63f5b0 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -46,13 +46,14 @@ name = "\improper Magus helm" desc = "A mysterious helmet that hums with an unearthly power." icon_state = "magus" - inhand_icon_state = "magus" + inhand_icon_state = null dog_fashion = null /obj/item/clothing/head/wizard/santa name = "Santa's hat" desc = "Ho ho ho. Merrry X-mas!" icon_state = "santahat" + inhand_icon_state = "santahat" flags_inv = HIDEHAIR|HIDEFACIALHAIR dog_fashion = null @@ -76,37 +77,37 @@ name = "red wizard robe" desc = "A magnificent red gem-lined robe that seems to radiate power." icon_state = "redwizard" - inhand_icon_state = "redwizrobe" + inhand_icon_state = null /obj/item/clothing/suit/wizrobe/yellow name = "yellow wizard robe" desc = "A magnificent yellow gem-lined robe that seems to radiate power." icon_state = "yellowwizard" - inhand_icon_state = "yellowwizrobe" + inhand_icon_state = null /obj/item/clothing/suit/wizrobe/black name = "black wizard robe" desc = "An unnerving black gem-lined robe that reeks of death and decay." icon_state = "blackwizard" - inhand_icon_state = "blackwizrobe" + inhand_icon_state = null /obj/item/clothing/suit/wizrobe/marisa name = "witch robe" desc = "Magic is all about the spell power, ZE!" icon_state = "marisa" - inhand_icon_state = "marisarobe" + inhand_icon_state = null /obj/item/clothing/suit/wizrobe/magusblue name = "\improper Magus robe" desc = "A set of armored robes that seem to radiate a dark power." icon_state = "magusblue" - inhand_icon_state = "magusblue" + inhand_icon_state = null /obj/item/clothing/suit/wizrobe/magusred name = "\improper Magus robe" desc = "A set of armored robes that seem to radiate a dark power." icon_state = "magusred" - inhand_icon_state = "magusred" + inhand_icon_state = null /obj/item/clothing/suit/wizrobe/santa @@ -134,7 +135,7 @@ name = "witch robe" desc = "Magic is all about the spell power, ZE!" icon_state = "marisa" - inhand_icon_state = "marisarobe" + inhand_icon_state = null armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0) resistance_flags = FLAMMABLE @@ -142,7 +143,7 @@ name = "papier-mache robe" // no non-latin characters! desc = "A robe held together by various bits of clear-tape and paste." icon_state = "wizard-paper" - inhand_icon_state = "wizard-paper" + inhand_icon_state = null var/robe_charge = TRUE actions_types = list(/datum/action/item_action/stickmen) diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 34fef42caab..6c87c18c384 100755 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -92,7 +92,9 @@ name = "waistcoat" desc = "For some classy, murderous fun." icon_state = "waistcoat" - inhand_icon_state = "waistcoat" + inhand_icon_state = "wcoat" + lefthand_file = 'icons/mob/inhands/clothing/suits_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/suits_righthand.dmi' minimize_when_attached = FALSE attachment_slot = null greyscale_config = /datum/greyscale_config/waistcoat @@ -115,6 +117,8 @@ desc = "The final touch that holds it all together." icon_state = "maidcorset" inhand_icon_state = "maidapron" + lefthand_file = 'icons/mob/inhands/clothing/suits_lefthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/suits_righthand.dmi' minimize_when_attached = FALSE attachment_slot = null diff --git a/code/modules/clothing/under/costume.dm b/code/modules/clothing/under/costume.dm index 446efbf634b..d8f81652b9b 100644 --- a/code/modules/clothing/under/costume.dm +++ b/code/modules/clothing/under/costume.dm @@ -15,13 +15,14 @@ name = "jabroni outfit" desc = "The leather club is two sectors down." icon_state = "darkholme" - inhand_icon_state = "darkholme" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/costume/owl name = "owl uniform" desc = "A soft brown jumpsuit made of synthetic feathers and strong conviction." icon_state = "owl" + inhand_icon_state = "owl" can_adjust = FALSE /obj/item/clothing/under/costume/griffin @@ -34,7 +35,7 @@ name = "blue schoolgirl uniform" desc = "It's just like one of my Japanese animes!" icon_state = "schoolgirl" - inhand_icon_state = "schoolgirl" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY can_adjust = FALSE @@ -42,37 +43,37 @@ /obj/item/clothing/under/costume/schoolgirl/red name = "red schoolgirl uniform" icon_state = "schoolgirlred" - inhand_icon_state = "schoolgirlred" + inhand_icon_state = null /obj/item/clothing/under/costume/schoolgirl/green name = "green schoolgirl uniform" icon_state = "schoolgirlgreen" - inhand_icon_state = "schoolgirlgreen" + inhand_icon_state = null /obj/item/clothing/under/costume/schoolgirl/orange name = "orange schoolgirl uniform" icon_state = "schoolgirlorange" - inhand_icon_state = "schoolgirlorange" + inhand_icon_state = null /obj/item/clothing/under/costume/pirate name = "pirate outfit" desc = "Yarr." icon_state = "pirate" - inhand_icon_state = "pirate" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/costume/soviet name = "soviet uniform" desc = "For the Motherland!" icon_state = "soviet" - inhand_icon_state = "soviet" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/costume/redcoat name = "redcoat uniform" desc = "Looks old." icon_state = "redcoat" - inhand_icon_state = "redcoat" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/costume/kilt @@ -95,7 +96,7 @@ name = "gladiator uniform" desc = "Are you not entertained? Is that not why you are here?" icon_state = "gladiator" - inhand_icon_state = "gladiator" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS female_sprite_flags = NO_FEMALE_UNIFORM supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON @@ -150,20 +151,20 @@ /obj/item/clothing/under/costume/singer/yellow name = "yellow performer's outfit" icon_state = "ysing" - inhand_icon_state = "ysing" + inhand_icon_state = null female_sprite_flags = NO_FEMALE_UNIFORM /obj/item/clothing/under/costume/singer/blue name = "blue performer's outfit" icon_state = "bsing" - inhand_icon_state = "bsing" + inhand_icon_state = null female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY /obj/item/clothing/under/costume/mummy name = "mummy wrapping" desc = "Return the slab or suffer my stale references." icon_state = "mummy" - inhand_icon_state = "mummy" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS|LEGS female_sprite_flags = NO_FEMALE_UNIFORM can_adjust = FALSE @@ -173,7 +174,7 @@ name = "scarecrow clothes" desc = "Perfect camouflage for hiding in botany." icon_state = "scarecrow" - inhand_icon_state = "scarecrow" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS|LEGS female_sprite_flags = NO_FEMALE_UNIFORM can_adjust = FALSE @@ -183,7 +184,7 @@ name = "draculass coat" desc = "A dress inspired by the ancient \"Victorian\" era." icon_state = "draculass" - inhand_icon_state = "draculass" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY can_adjust = FALSE @@ -192,14 +193,14 @@ name = "doctor freeze's jumpsuit" desc = "A modified scientist jumpsuit to look extra cool." icon_state = "drfreeze" - inhand_icon_state = "drfreeze" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/costume/lobster name = "foam lobster suit" desc = "Who beheaded the college mascot?" icon_state = "lobster" - inhand_icon_state = "lobster" + inhand_icon_state = null female_sprite_flags = NO_FEMALE_UNIFORM can_adjust = FALSE @@ -214,7 +215,7 @@ name = "skeleton jumpsuit" desc = "A black jumpsuit with a white bone pattern printed on it. Spooky!" icon_state = "skeleton" - inhand_icon_state = "skeleton" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS|LEGS female_sprite_flags = NO_FEMALE_UNIFORM can_adjust = FALSE @@ -224,7 +225,7 @@ name = "mech pilot's suit" desc = "A mech pilot's suit. Might make your butt look big." icon_state = "red_mech_suit" - inhand_icon_state = "red_mech_suit" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS female_sprite_flags = NO_FEMALE_UNIFORM @@ -243,7 +244,7 @@ desc = "The latest in fashionable russian outfits." icon = 'icons/obj/clothing/under/security.dmi' icon_state = "hostanclothes" - inhand_icon_state = "hostanclothes" + inhand_icon_state = null worn_icon = 'icons/mob/clothing/under/security.dmi' alt_covers_chest = TRUE armor = list(MELEE = 10, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 30, ACID = 30) @@ -283,13 +284,13 @@ name = "jack bros outfit" desc = "For when it's time to hee some hos." icon_state = "JackFrostUniform" - inhand_icon_state = "JackFrostUniform" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/costume/deckers name = "deckers outfit" icon_state = "decker_jumpsuit" - inhand_icon_state = "decker_jumpsuit" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/costume/football_suit @@ -305,14 +306,14 @@ name = "Swag outfit" desc = "Why don't you go secure some bitches?" icon_state = "SwagOutfit" - inhand_icon_state = "SwagOutfit" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/costume/referee name = "referee uniform" desc = "A standard black and white striped uniform to signal authority." icon_state = "referee" - inhand_icon_state = "referee" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/costume/joker @@ -324,25 +325,25 @@ /obj/item/clothing/under/costume/yuri name = "yuri initiate jumpsuit" icon_state = "yuri_uniform" - inhand_icon_state = "yuri_uniform" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/costume/dutch name = "dutch's suit" desc = "You can feel a god damn plan coming on." icon_state = "DutchUniform" - inhand_icon_state = "DutchUniform" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/costume/osi name = "O.S.I. jumpsuit" icon_state = "osi_jumpsuit" - inhand_icon_state = "osi_jumpsuit" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/costume/tmc name = "Lost MC clothing" icon_state = "tmc_jumpsuit" - inhand_icon_state = "tmc_jumpsuit" + inhand_icon_state = null can_adjust = FALSE diff --git a/code/modules/clothing/under/jobs/Plasmaman/centcom.dm b/code/modules/clothing/under/jobs/Plasmaman/centcom.dm index cbab4e8c6dd..c2717e0d0dc 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/centcom.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/centcom.dm @@ -2,16 +2,16 @@ name = "CentCom commander plasma envirosuit" desc = "It's an envirosuit worn by CentCom's highest-tier Commanders." icon_state = "commander_envirosuit" - inhand_icon_state = "commander_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/centcom_official name = "CentCom official plasma envirosuit" desc = "It's an envirosuit worn by CentCom Officers." icon_state = "official_envirosuit" - inhand_icon_state = "official_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/centcom_intern name = "CentCom intern plasma envirosuit" desc = "It's an envirosuit worn by those interning for CentCom. The top is styled after a polo shirt for easy identification." icon_state = "intern_envirosuit" - inhand_icon_state = "intern_envirosuit" + inhand_icon_state = null diff --git a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm index 660b6befbbf..b5583748984 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm @@ -54,67 +54,67 @@ name = "cargo plasma envirosuit" desc = "A joint envirosuit used by plasmamen quartermasters and cargo techs alike, due to the logistical problems of differenciating the two with the length of their pant legs." icon_state = "cargo_envirosuit" - inhand_icon_state = "cargo_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/mining name = "mining plasma envirosuit" desc = "An air-tight khaki suit designed for operations on lavaland by plasmamen." icon_state = "explorer_envirosuit" - inhand_icon_state = "explorer_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/chef name = "chef's plasma envirosuit" desc = "A white plasmaman envirosuit designed for cullinary practices. One might question why a member of a species that doesn't need to eat would become a chef." icon_state = "chef_envirosuit" - inhand_icon_state = "chef_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/enviroslacks name = "enviroslacks" desc = "The pet project of a particularly posh plasmaman, this custom suit was quickly appropriated by Nanotrasen for its detectives, lawyers, and bartenders alike." icon_state = "enviroslacks" - inhand_icon_state = "enviroslacks" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/chaplain name = "chaplain's plasma envirosuit" desc = "An envirosuit specially designed for only the most pious of plasmamen." icon_state = "chap_envirosuit" - inhand_icon_state = "chap_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/curator name = "curator's plasma envirosuit" desc = "Made out of a modified voidsuit, this suit was Nanotrasen's first solution to the *logistical problems* that come with employing plasmamen. Due to the modifications, the suit is no longer space-worthy. Despite their limitations, these suits are still in used by historian and old-styled plasmamen alike." icon_state = "prototype_envirosuit" - inhand_icon_state = "prototype_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/janitor name = "janitor's plasma envirosuit" desc = "A grey and purple envirosuit designated for plasmamen janitors." icon_state = "janitor_envirosuit" - inhand_icon_state = "janitor_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/botany name = "botany envirosuit" desc = "A green and blue envirosuit designed to protect plasmamen from minor plant-related injuries." icon_state = "botany_envirosuit" - inhand_icon_state = "botany_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/mime name = "mime envirosuit" desc = "It's not very colourful." icon_state = "mime_envirosuit" - inhand_icon_state = "mime_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/clown name = "clown envirosuit" desc = "'HONK!'" icon_state = "clown_envirosuit" - inhand_icon_state = "clown_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/prisoner name = "prisoner envirosuit" desc = "An orange envirosuit identifying and protecting a criminal plasmaman. Its suit sensors are stuck in the \"Fully On\" position." icon_state = "prisoner_envirosuit" - inhand_icon_state = "prisoner_envirosuit" + inhand_icon_state = null has_sensor = LOCKED_SENSORS sensor_mode = SENSOR_COORDS random_sensor = FALSE diff --git a/code/modules/clothing/under/jobs/Plasmaman/command.dm b/code/modules/clothing/under/jobs/Plasmaman/command.dm index 797d596bf4e..05648fc8518 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/command.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/command.dm @@ -2,7 +2,7 @@ name = "captain's plasma envirosuit" desc = "It's a blue envirosuit with some gold markings denoting the rank of \"Captain\"." icon_state = "captain_envirosuit" - inhand_icon_state = "captain_envirosuit" + inhand_icon_state = null sensor_mode = SENSOR_COORDS random_sensor = FALSE armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 95, ACID = 95, WOUND = 15) @@ -11,13 +11,13 @@ name = "head of personnel's plasma envirosuit" desc = "It's an envirosuit worn by someone who works in the position of \"Head of Personnel\"." icon_state = "hop_envirosuit" - inhand_icon_state = "hop_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/security/head_of_security name = "head of security's envirosuit" desc = "A plasmaman containment suit decorated for those few with the dedication to achieve the position of Head of Security." icon_state = "hos_envirosuit" - inhand_icon_state = "hos_envirosuit" + inhand_icon_state = null armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 95, ACID = 95, WOUND = 10) sensor_mode = SENSOR_COORDS random_sensor = FALSE @@ -26,19 +26,19 @@ name = "chief engineer's plasma envirosuit" desc = "An air-tight suit designed to be used by plasmamen insane enough to achieve the rank of \"Chief Engineer\"." icon_state = "ce_envirosuit" - inhand_icon_state = "ce_envirosuit" + inhand_icon_state = null armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 95, ACID = 95) /obj/item/clothing/under/plasmaman/chief_medical_officer name = "chief medical officer's plasma envirosuit" desc = "It's an envirosuit worn by those with the experience to be \"Chief Medical Officer\"." icon_state = "cmo_envirosuit" - inhand_icon_state = "cmo_envirosuit" + inhand_icon_state = null armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 95, ACID = 95) /obj/item/clothing/under/plasmaman/research_director name = "research director's plasma envirosuit" desc = "It's an envirosuit worn by those with the know-how to achieve the position of \"Research Director\"." icon_state = "rd_envirosuit" - inhand_icon_state = "rd_envirosuit" + inhand_icon_state = null armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 95, ACID = 95) diff --git a/code/modules/clothing/under/jobs/Plasmaman/engineering.dm b/code/modules/clothing/under/jobs/Plasmaman/engineering.dm index 4a7d162be4f..e0774ea09ed 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/engineering.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/engineering.dm @@ -2,13 +2,13 @@ name = "engineering plasma envirosuit" desc = "An air-tight suit designed to be used by plasmamen employed as engineers, the usual purple stripes being replaced by engineering's orange. It protects the user from fire and acid damage." icon_state = "engineer_envirosuit" - inhand_icon_state = "engineer_envirosuit" + inhand_icon_state = null armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 95, ACID = 95) /obj/item/clothing/under/plasmaman/atmospherics name = "atmospherics plasma envirosuit" desc = "An air-tight suit designed to be used by plasmamen employed as atmos technicians, the usual purple stripes being replaced by atmos' blue." icon_state = "atmos_envirosuit" + inhand_icon_state = null armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 95, ACID = 95) - inhand_icon_state = "atmos_envirosuit" diff --git a/code/modules/clothing/under/jobs/Plasmaman/medsci.dm b/code/modules/clothing/under/jobs/Plasmaman/medsci.dm index 5c57f0f4b04..2159d7f2f2e 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/medsci.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/medsci.dm @@ -2,40 +2,40 @@ name = "medical plasma envirosuit" desc = "A suit designed for the station's more plasma-based doctors." icon_state = "doctor_envirosuit" - inhand_icon_state = "doctor_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/paramedic name = "paramedic envirosuit" desc = "A suit designed for the station's plasmaman paramedics." icon_state = "paramedic_envirosuit" - inhand_icon_state = "paramedic_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/science name = "science plasma envirosuit" desc = "A plasmaman envirosuit designed for scientists." icon_state = "scientist_envirosuit" - inhand_icon_state = "scientist_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/robotics name = "robotics plasma envirosuit" desc = "A plasmaman envirosuit designed for roboticists." icon_state = "roboticist_envirosuit" - inhand_icon_state = "roboticist_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/viro name = "virology plasma envirosuit" desc = "The suit worn by the safest people on the station, those who are completely immune to the monstrosities they create." icon_state = "virologist_envirosuit" - inhand_icon_state = "virologist_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/genetics name = "genetics plasma envirosuit" desc = "A plasmaman envirosuit designed for geneticists." icon_state = "geneticist_envirosuit" - inhand_icon_state = "geneticist_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/chemist name = "chemistry plasma envirosuit" desc = "A plasmaman envirosuit designed for chemists." icon_state = "chemist_envirosuit" - inhand_icon_state = "chemist_envirosuit" + inhand_icon_state = null diff --git a/code/modules/clothing/under/jobs/Plasmaman/security.dm b/code/modules/clothing/under/jobs/Plasmaman/security.dm index 12b0671e61e..99bcb8ab948 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/security.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/security.dm @@ -2,7 +2,7 @@ name = "security plasma envirosuit" desc = "A plasmaman containment suit designed for security officers, offering a limited amount of extra protection." icon_state = "security_envirosuit" - inhand_icon_state = "security_envirosuit" + inhand_icon_state = null armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 95, ACID = 95) sensor_mode = SENSOR_COORDS random_sensor = FALSE @@ -11,4 +11,4 @@ name = "warden plasma envirosuit" desc = "A plasmaman containment suit designed for the warden, white stripes being added to differentiate them from other members of security." icon_state = "warden_envirosuit" - inhand_icon_state = "warden_envirosuit" + inhand_icon_state = null diff --git a/code/modules/clothing/under/jobs/cargo.dm b/code/modules/clothing/under/jobs/cargo.dm index ae00027810e..3324a346174 100644 --- a/code/modules/clothing/under/jobs/cargo.dm +++ b/code/modules/clothing/under/jobs/cargo.dm @@ -42,7 +42,7 @@ desc = "It's a snappy jumpsuit with a sturdy set of overalls. It is very dirty." name = "shaft miner's jumpsuit" icon_state = "miner" - inhand_icon_state = "miner" + inhand_icon_state = null armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 80, ACID = 0, WOUND = 10) resistance_flags = NONE @@ -50,4 +50,4 @@ desc = "A green uniform for operating in hazardous environments." name = "shaft miner's jumpsuit" icon_state = "explorer" - inhand_icon_state = "explorer" + inhand_icon_state = null diff --git a/code/modules/clothing/under/jobs/civilian/civilian.dm b/code/modules/clothing/under/jobs/civilian/civilian.dm index 396b4c8b812..10745c5c026 100644 --- a/code/modules/clothing/under/jobs/civilian/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian/civilian.dm @@ -48,6 +48,7 @@ name = "cook's suit" desc = "A suit which is given only to the most hardcore cooks in space." icon_state = "chef" + inhand_icon_state = "chef" alt_covers_chest = TRUE /obj/item/clothing/under/rank/civilian/chef/skirt @@ -113,6 +114,7 @@ desc = "It's the official uniform of the station's janitor. It has minor protection from biohazards." name = "janitor's jumpsuit" icon_state = "janitor" + inhand_icon_state = "janitor" armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 0, ACID = 0) /obj/item/clothing/under/rank/civilian/janitor/skirt @@ -251,5 +253,6 @@ name = "grilling shorts" desc = "For when all you want in life is to grill for god's sake!" icon_state = "cookjorts" + inhand_icon_state = "cookjorts" can_adjust = FALSE female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY diff --git a/code/modules/clothing/under/jobs/civilian/clown_mime.dm b/code/modules/clothing/under/jobs/civilian/clown_mime.dm index b779d7504f0..b0acdfed475 100644 --- a/code/modules/clothing/under/jobs/civilian/clown_mime.dm +++ b/code/modules/clothing/under/jobs/civilian/clown_mime.dm @@ -3,13 +3,13 @@ name = "mime's outfit" desc = "It's not very colourful." icon_state = "mime" - inhand_icon_state = "mime" + inhand_icon_state = null /obj/item/clothing/under/rank/civilian/mime/skirt name = "mime's skirt" desc = "It's not very colourful." icon_state = "mime_skirt" - inhand_icon_state = "mime" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS dying_key = DYE_REGISTRY_JUMPSKIRT female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY @@ -19,7 +19,7 @@ name = "sexy mime outfit" desc = "Pretty inappropriate for a circus." icon_state = "sexymime" - inhand_icon_state = "sexymime" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY can_adjust = FALSE @@ -86,4 +86,4 @@ name = "sexy-clown suit" desc = "It makes you look HONKable!" icon_state = "sexyclown" - inhand_icon_state = "sexyclown" + inhand_icon_state = null diff --git a/code/modules/clothing/under/jobs/civilian/curator.dm b/code/modules/clothing/under/jobs/civilian/curator.dm index bf5c8c6110c..aaf000afa49 100644 --- a/code/modules/clothing/under/jobs/civilian/curator.dm +++ b/code/modules/clothing/under/jobs/civilian/curator.dm @@ -3,7 +3,7 @@ desc = "It's very... sensible." icon = 'icons/obj/clothing/under/suits.dmi' icon_state = "red_suit" - inhand_icon_state = "red_suit" + inhand_icon_state = null worn_icon = 'icons/mob/clothing/under/suits.dmi' can_adjust = FALSE @@ -12,7 +12,7 @@ desc = "It's very... sensible." icon = 'icons/obj/clothing/under/suits.dmi' icon_state = "red_suit_skirt" - inhand_icon_state = "red_suit" + inhand_icon_state = null worn_icon = 'icons/mob/clothing/under/suits.dmi' body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE @@ -25,7 +25,7 @@ desc = "A rugged uniform suitable for treasure hunting." icon = 'icons/obj/clothing/under/civilian.dmi' icon_state = "curator" - inhand_icon_state = "curator" + inhand_icon_state = null worn_icon = 'icons/mob/clothing/under/civilian.dmi' /obj/item/clothing/under/rank/civilian/curator/nasa diff --git a/code/modules/clothing/under/jobs/command.dm b/code/modules/clothing/under/jobs/command.dm index 71da7147de5..4ec9ac2688f 100644 --- a/code/modules/clothing/under/jobs/command.dm +++ b/code/modules/clothing/under/jobs/command.dm @@ -40,5 +40,5 @@ name = "captain's parade uniform" desc = "A captain's luxury-wear, for special occasions." icon_state = "captain_parade" - inhand_icon_state = "by_suit" + inhand_icon_state = null can_adjust = FALSE diff --git a/code/modules/clothing/under/jobs/engineering.dm b/code/modules/clothing/under/jobs/engineering.dm index f889e741b6f..34cf02dff87 100644 --- a/code/modules/clothing/under/jobs/engineering.dm +++ b/code/modules/clothing/under/jobs/engineering.dm @@ -50,7 +50,7 @@ name = "engineer's hazard jumpsuit" desc = "A high visibility jumpsuit. Made from fire resistant materials." icon_state = "hazard" - inhand_icon_state = "suit-orange" + inhand_icon_state = "syndicate-orange" alt_covers_chest = TRUE /obj/item/clothing/under/rank/engineering/engineer/skirt diff --git a/code/modules/clothing/under/jobs/rnd.dm b/code/modules/clothing/under/jobs/rnd.dm index 512787f98f9..b4b7b73aa0d 100644 --- a/code/modules/clothing/under/jobs/rnd.dm +++ b/code/modules/clothing/under/jobs/rnd.dm @@ -82,14 +82,14 @@ desc = "It's a slimming black with reinforced seams; great for industrial work." name = "roboticist's jumpsuit" icon_state = "robotics" - inhand_icon_state = "robotics" + inhand_icon_state = null resistance_flags = NONE /obj/item/clothing/under/rank/rnd/roboticist/skirt name = "roboticist's jumpskirt" desc = "It's a slimming black with reinforced seams; great for industrial work." icon_state = "robotics_skirt" - inhand_icon_state = "robotics" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS dying_key = DYE_REGISTRY_JUMPSKIRT female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 38c8b44237d..0e109e2e99d 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -43,21 +43,21 @@ name = "blue shirt and tie" desc = "I'm a little busy right now, Calhoun." icon_state = "blueshift" - inhand_icon_state = "blueshift" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/rank/security/officer/formal name = "security officer's formal uniform" desc = "The latest in fashionable security outfits." icon_state = "officerblueclothes" - inhand_icon_state = "officerblueclothes" + inhand_icon_state = null alt_covers_chest = TRUE /obj/item/clothing/under/rank/security/constable name = "constable outfit" desc = "A british looking outfit." icon_state = "constable" - inhand_icon_state = "constable" + inhand_icon_state = null can_adjust = FALSE custom_price = PAYCHECK_COMMAND @@ -88,7 +88,7 @@ desc = "The insignia on this uniform tells you that this uniform belongs to the Warden." name = "warden's formal uniform" icon_state = "wardenblueclothes" - inhand_icon_state = "wardenblueclothes" + inhand_icon_state = null alt_covers_chest = TRUE /* @@ -116,14 +116,14 @@ name = "noir suit" desc = "A hard-boiled private investigator's dark suit, complete with tie clip." icon_state = "noirdet" - inhand_icon_state = "greydet" + inhand_icon_state = null alt_covers_chest = TRUE /obj/item/clothing/under/rank/security/detective/noir/skirt name = "noir suitskirt" desc = "A hard-boiled private investigator's grey suitskirt, complete with tie clip." icon_state = "noirdet_skirt" - inhand_icon_state = "greydet" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS dying_key = DYE_REGISTRY_JUMPSKIRT female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY @@ -194,7 +194,7 @@ desc = "The insignia on this uniform tells you that this uniform belongs to the Head of Security." name = "head of security's formal uniform" icon_state = "hosblueclothes" - inhand_icon_state = "hosblueclothes" + inhand_icon_state = null alt_covers_chest = TRUE /* @@ -205,7 +205,7 @@ name = "police uniform" desc = "Space not controlled by megacorporations, planets, or pirates is under the jurisdiction of Spacepol." icon_state = "spacepol" - inhand_icon_state = "spacepol" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/rank/prisoner @@ -240,19 +240,19 @@ name = "space police uniform" desc = "A police uniform often found in the lines at donut shops." icon_state = "spacepolice_families" - inhand_icon_state = "spacepolice_families" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/rank/security/detective/disco name = "superstar cop uniform" desc = "Flare cut trousers and a dirty shirt that might have been classy before someone took a piss in the armpits. It's the dress of a superstar." icon_state = "jamrock_suit" - inhand_icon_state = "jamrock_suit" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/rank/security/detective/kim name = "aerostatic suit" desc = "A crisp and well-pressed suit; professional, comfortable and curiously authoritative." icon_state = "aerostatic_suit" - inhand_icon_state = "aerostatic_suit" + inhand_icon_state = null can_adjust = FALSE diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index b9dbd0e97fa..d55a9288d10 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -18,7 +18,7 @@ name = "Patriotic Suit" desc = "Motorcycle not included." icon_state = "ek" - inhand_icon_state = "ek" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/misc/mailman @@ -60,7 +60,7 @@ name = "burial garments" desc = "Traditional burial garments from the early 22nd century." icon_state = "burial" - inhand_icon_state = "burial" + inhand_icon_state = null can_adjust = FALSE has_sensor = NO_SENSORS @@ -83,7 +83,7 @@ name = "durathread jumpsuit" desc = "A jumpsuit made from durathread, its resilient fibres provide some protection to the wearer." icon_state = "durathread" - inhand_icon_state = "durathread" + inhand_icon_state = null can_adjust = FALSE armor = list(MELEE = 10, LASER = 10, FIRE = 40, ACID = 10, BOMB = 5, BIO = 10, FIRE = 0, ACID = 0) @@ -91,7 +91,7 @@ name = "bouncer uniform" desc = "A uniform made from a little bit more resistant fibers, makes you seem like a cool guy." icon_state = "bouncer" - inhand_icon_state = "bouncer" + inhand_icon_state = null can_adjust = FALSE armor = list(MELEE = 5, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 10, FIRE = 30, ACID = 30) @@ -101,7 +101,7 @@ icon = 'icons/obj/clothing/under/captain.dmi' worn_icon = 'icons/mob/clothing/under/captain.dmi' icon_state = "captain_parade" - inhand_icon_state = "by_suit" + inhand_icon_state = null can_adjust = FALSE /obj/item/clothing/under/misc/syndicate_souvenir diff --git a/code/modules/clothing/under/skirt_dress.dm b/code/modules/clothing/under/skirt_dress.dm index a8f0caba159..62dd8182353 100644 --- a/code/modules/clothing/under/skirt_dress.dm +++ b/code/modules/clothing/under/skirt_dress.dm @@ -10,20 +10,20 @@ name = "striped dress" desc = "Fashion in space." icon_state = "striped_dress" - inhand_icon_state = "striped_dress" + inhand_icon_state = null female_sprite_flags = FEMALE_UNIFORM_FULL /obj/item/clothing/under/dress/sailor name = "sailor dress" desc = "Formal wear for a leading lady." icon_state = "sailor_dress" - inhand_icon_state = "sailor_dress" + inhand_icon_state = null /obj/item/clothing/under/dress/wedding_dress name = "wedding dress" desc = "A luxurious gown for once-in-a-lifetime occasions." icon_state = "wedding_dress" - inhand_icon_state = "wedding_dress" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS flags_cover = HIDESHOES @@ -31,12 +31,13 @@ name = "red evening gown" desc = "Fancy dress for space bar singers." icon_state = "red_evening_gown" - inhand_icon_state = "red_evening_gown" + inhand_icon_state = null /obj/item/clothing/under/dress/skirt name = "black skirt" desc = "A black skirt, very fancy!" icon_state = "blackskirt" + inhand_icon_state = "blackskirt" /obj/item/clothing/under/dress/skirt/plaid name = "plaid skirt" diff --git a/code/modules/clothing/under/suits.dm b/code/modules/clothing/under/suits.dm index d486812a16b..775a37d77d6 100644 --- a/code/modules/clothing/under/suits.dm +++ b/code/modules/clothing/under/suits.dm @@ -8,13 +8,13 @@ name = "white suit" desc = "A white suit, suitable for an excellent host." icon_state = "scratch" - inhand_icon_state = "scratch" + inhand_icon_state = null /obj/item/clothing/under/suit/white/skirt name = "white suitskirt" desc = "A white suitskirt, suitable for an excellent host." icon_state = "white_suit_skirt" - inhand_icon_state = "scratch" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS dying_key = DYE_REGISTRY_JUMPSKIRT female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY|FEMALE_UNIFORM_NO_BREASTS @@ -36,13 +36,13 @@ name = "black two piece suit" desc = "A black suit and red tie. Very formal." icon_state = "black_suit" - inhand_icon_state = "black_suit" + inhand_icon_state = null /obj/item/clothing/under/suit/black name = "black suit" desc = "A professional looking black suit. Ready for some serious law." icon_state = "blacksuit" - inhand_icon_state = "blacksuit" + inhand_icon_state = null can_adjust = TRUE alt_covers_chest = TRUE @@ -61,13 +61,13 @@ name = "executive suit" desc = "A formal black suit, intended for the station's finest." icon_state = "really_black_suit" - inhand_icon_state = "really_black_suit" + inhand_icon_state = null /obj/item/clothing/under/suit/black_really/skirt name = "executive suitskirt" desc = "A formal black suitskirt, intended for the station's finest." icon_state = "really_black_suit_skirt" - inhand_icon_state = "really_black_suit_skirt" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|ARMS dying_key = DYE_REGISTRY_JUMPSKIRT female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY|FEMALE_UNIFORM_NO_BREASTS @@ -91,25 +91,25 @@ name = "charcoal suit" desc = "A charcoal suit and red tie. Very professional." icon_state = "charcoal_suit" - inhand_icon_state = "charcoal_suit" + inhand_icon_state = null /obj/item/clothing/under/suit/navy name = "navy suit" desc = "A navy suit and red tie, intended for the station's finest." icon_state = "navy_suit" - inhand_icon_state = "navy_suit" + inhand_icon_state = null /obj/item/clothing/under/suit/burgundy name = "burgundy suit" desc = "A burgundy suit and black tie. Somewhat formal." icon_state = "burgundy_suit" - inhand_icon_state = "burgundy_suit" + inhand_icon_state = null /obj/item/clothing/under/suit/checkered name = "checkered suit" desc = "That's a very nice suit you have there. Shame if something were to happen to it, eh?" icon_state = "checkered_suit" - inhand_icon_state = "checkered_suit" + inhand_icon_state = null /obj/item/clothing/under/suit/tan name = "tan suit" @@ -127,7 +127,7 @@ name = "beige suit" desc = "An excellent light colored suit, experts in the field stress that it should not to be confused with the inferior tan suit." icon_state = "beige_suit" - inhand_icon_state = "beige_suit" + inhand_icon_state = null /obj/item/clothing/under/suit/henchmen name = "henchmen jumpsuit" @@ -135,7 +135,7 @@ icon = 'icons/obj/clothing/under/syndicate.dmi' worn_icon = 'icons/mob/clothing/under/syndicate.dmi' icon_state = "henchmen" - inhand_icon_state = "henchmen" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS|HEAD flags_inv = HIDEGLOVES|HIDESHOES|HIDEEARS|HIDEEYES|HIDEHAIR @@ -143,10 +143,10 @@ name = "tuxedo" desc = "A formal black tuxedo. It exudes classiness." icon_state = "tuxedo" - inhand_icon_state = "tuxedo" + inhand_icon_state = null /obj/item/clothing/under/suit/carpskin name = "carpskin suit" desc = "An luxurious suit made with only the finest scales, perfect for conducting dodgy business deals." icon_state = "carpskin_suit" - inhand_icon_state = "carpskin_suit" + inhand_icon_state = null diff --git a/code/modules/events/holiday/easter.dm b/code/modules/events/holiday/easter.dm index 6d6e7027c52..9248bd33a43 100644 --- a/code/modules/events/holiday/easter.dm +++ b/code/modules/events/holiday/easter.dm @@ -59,7 +59,7 @@ /obj/item/clothing/head/bunnyhead name = "Easter Bunny Head" icon_state = "bunnyhead" - inhand_icon_state = "bunnyhead" + inhand_icon_state = null desc = "Considerably more cute than 'Frank'." slowdown = -0.3 clothing_flags = THICKMATERIAL | SNUG_FIT @@ -71,7 +71,7 @@ icon_state = "bunnysuit" icon = 'icons/obj/clothing/suits/costume.dmi' worn_icon = 'icons/mob/clothing/suits/costume.dmi' - inhand_icon_state = "bunnysuit" + inhand_icon_state = null slowdown = -0.3 clothing_flags = THICKMATERIAL body_parts_covered = CHEST|GROIN|LEGS|ARMS @@ -82,7 +82,7 @@ name = "Easter Bunny Satchel" desc = "Good for your eyes." icon_state = "satchel_carrot" - inhand_icon_state = "satchel_carrot" + inhand_icon_state = null //Egg prizes and egg spawns! /obj/item/surprise_egg diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index c208ab3a92b..b209f4b3765 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -2,7 +2,7 @@ name = "pizza bomb" desc = "Special delivery!" icon_state = "pizzabomb_inactive" - inhand_icon_state = "eshield0" + inhand_icon_state = "eshield" lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi' diff --git a/code/modules/hydroponics/beekeeping/beekeeper_suit.dm b/code/modules/hydroponics/beekeeping/beekeeper_suit.dm index a9f188fc1dc..83603e5ad84 100644 --- a/code/modules/hydroponics/beekeeping/beekeeper_suit.dm +++ b/code/modules/hydroponics/beekeeping/beekeeper_suit.dm @@ -3,7 +3,7 @@ name = "beekeeper hat" desc = "Keeps the lil buzzing buggers out of your eyes." icon_state = "beekeeper" - inhand_icon_state = "beekeeper" + inhand_icon_state = null clothing_flags = THICKMATERIAL | SNUG_FIT @@ -11,7 +11,7 @@ name = "beekeeper suit" desc = "Keeps the lil buzzing buggers away from your squishy bits." icon_state = "beekeeper" - inhand_icon_state = "beekeeper" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|ARMS clothing_flags = THICKMATERIAL allowed = list(/obj/item/melee/flyswatter, /obj/item/reagent_containers/spray/plantbgone, /obj/item/plant_analyzer, /obj/item/seeds, /obj/item/reagent_containers/cup/bottle, /obj/item/reagent_containers/cup/beaker, /obj/item/cultivator, /obj/item/reagent_containers/spray/pestspray, /obj/item/hatchet, /obj/item/storage/bag/plants) diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index b997cf9a556..62224feb74c 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -21,7 +21,7 @@ name = "banana" desc = "It's an excellent prop for a clown." icon_state = "banana" - inhand_icon_state = "banana" + inhand_icon_state = "banana_peel" trash_type = /obj/item/grown/bananapeel bite_consumption_mod = 3 foodtypes = FRUIT @@ -141,6 +141,7 @@ name = "bluespace banana peel" desc = "A peel from a bluespace banana." icon_state = "bluenana_peel" + inhand_icon_state = "bluespace_peel" // Other /obj/item/grown/bananapeel/specialpeel //used by /obj/item/clothing/shoes/clown_shoes/banana_shoes diff --git a/code/modules/hydroponics/grown/corn.dm b/code/modules/hydroponics/grown/corn.dm index de65b879280..d363e8d1106 100644 --- a/code/modules/hydroponics/grown/corn.dm +++ b/code/modules/hydroponics/grown/corn.dm @@ -37,7 +37,7 @@ name = "corn cob" desc = "A reminder of meals gone by." icon_state = "corncob" - inhand_icon_state = "corncob" + inhand_icon_state = null w_class = WEIGHT_CLASS_TINY throwforce = 0 throw_speed = 3 @@ -68,7 +68,7 @@ name = "snap corn" desc = "A cob with snap pops." icon_state = "snapcorn" - inhand_icon_state = "corncob" + inhand_icon_state = null w_class = WEIGHT_CLASS_TINY throwforce = 0 throw_speed = 3 diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm index 24d2a72376d..b9e40dabd60 100644 --- a/code/modules/hydroponics/grown/flowers.dm +++ b/code/modules/hydroponics/grown/flowers.dm @@ -241,6 +241,7 @@ name = "\improper novaflower" desc = "These beautiful flowers have a crisp smokey scent, like a summer bonfire." icon_state = "novaflower" + inhand_icon_state = "novaflower" lefthand_file = 'icons/mob/inhands/weapons/plants_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/plants_righthand.dmi' damtype = BURN diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 70b694ba321..8c9be1f995f 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -505,6 +505,7 @@ /obj/item/scythe icon_state = "scythe0" + inhand_icon_state = "scythe0" lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi' name = "scythe" @@ -559,7 +560,7 @@ desc = "It's a tool for cutting grafts off plants." icon = 'icons/obj/hydroponics/equipment.dmi' icon_state = "secateurs" - inhand_icon_state = "secateurs" + inhand_icon_state = null worn_icon_state = "cutters" lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi' @@ -609,7 +610,7 @@ desc = "A high tech, high fidelity pair of plant shears, capable of cutting genetic traits out of a plant." icon = 'icons/obj/hydroponics/equipment.dmi' icon_state = "genesheers" - inhand_icon_state = "secateurs" + inhand_icon_state = null worn_icon_state = "cutters" lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi' diff --git a/code/modules/instruments/piano_synth.dm b/code/modules/instruments/piano_synth.dm index 4b07533926f..d911671038d 100644 --- a/code/modules/instruments/piano_synth.dm +++ b/code/modules/instruments/piano_synth.dm @@ -55,7 +55,7 @@ name = "\improper Nanotrasen space pods" desc = "Flex your money, AND ignore what everyone else says, all at once!" icon_state = "spacepods" - inhand_icon_state = "spacepods" + inhand_icon_state = null slot_flags = ITEM_SLOT_EARS strip_delay = 100 //air pods don't fall out instrument_range = 0 //you're paying for quality here diff --git a/code/modules/mapfluff/ruins/icemoonruin_code/wrath.dm b/code/modules/mapfluff/ruins/icemoonruin_code/wrath.dm index c2f187b3258..f5db91dad01 100644 --- a/code/modules/mapfluff/ruins/icemoonruin_code/wrath.dm +++ b/code/modules/mapfluff/ruins/icemoonruin_code/wrath.dm @@ -2,7 +2,7 @@ name = "butchering gloves" desc = "These gloves allow the user to rip apart bodies with precision and ease." icon_state = "black" - inhand_icon_state = "blackgloves" + greyscale_colors = "#2f2e31" cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT heat_protection = HANDS diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index b590685fc7e..c08085c9dc7 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -5,7 +5,7 @@ icon_state = "explorer" icon = 'icons/obj/clothing/suits/utility.dmi' worn_icon = 'icons/mob/clothing/suits/utility.dmi' - inhand_icon_state = "explorer" + inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|ARMS cold_protection = CHEST|GROIN|LEGS|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT @@ -50,6 +50,7 @@ name = "explorer gas mask" desc = "A military-grade gas mask that can be connected to an air supply." icon_state = "gas_mining" + inhand_icon_state = "explorer_gasmask" flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH visor_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS visor_flags_inv = HIDEFACIALHAIR @@ -62,10 +63,14 @@ /obj/item/clothing/mask/gas/explorer/attack_self(mob/user) adjustmask(user) -/obj/item/clothing/mask/gas/explorer/adjustmask(user) +/obj/item/clothing/mask/gas/explorer/adjustmask(mob/user) . = ..() // adjusted = out of the way = smaller = can fit in boxes w_class = mask_adjusted ? WEIGHT_CLASS_SMALL : WEIGHT_CLASS_NORMAL + inhand_icon_state = mask_adjusted ? "[initial(inhand_icon_state)]_up" : initial(inhand_icon_state) + if(user) + user.update_held_items() + /obj/item/clothing/mask/gas/explorer/examine(mob/user) . = ..() diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm index 33ffb701ef0..76c9a56405f 100644 --- a/code/modules/mining/equipment/mining_tools.dm +++ b/code/modules/mining/equipment/mining_tools.dm @@ -3,6 +3,7 @@ name = "pickaxe" icon = 'icons/obj/mining.dmi' icon_state = "pickaxe" + inhand_icon_state = "pickaxe" flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK force = 15 @@ -37,7 +38,6 @@ name = "compact pickaxe" desc = "A smaller, compact version of the standard pickaxe." icon_state = "minipick" - inhand_icon_state = "pickaxe" worn_icon_state = "pickaxe" force = 10 throwforce = 7 @@ -48,6 +48,7 @@ /obj/item/pickaxe/silver name = "silver-plated pickaxe" icon_state = "spickaxe" + inhand_icon_state = "spickaxe" toolspeed = 0.5 //mines faster than a normal pickaxe, bought from mining vendor desc = "A silver-plated pickaxe that mines slightly faster than standard-issue." force = 17 @@ -55,6 +56,7 @@ /obj/item/pickaxe/diamond name = "diamond-tipped pickaxe" icon_state = "dpickaxe" + inhand_icon_state = "dpickaxe" toolspeed = 0.3 desc = "A pickaxe with a diamond pick head. Extremely robust at cracking rock walls and digging up dirt." force = 19 @@ -62,6 +64,7 @@ /obj/item/pickaxe/drill name = "mining drill" icon_state = "handdrill" + inhand_icon_state = "handdrill" slot_flags = ITEM_SLOT_BELT toolspeed = 0.6 //available from roundstart, faster than a pickaxe. usesound = 'sound/weapons/drill.ogg' @@ -80,17 +83,20 @@ /obj/item/pickaxe/drill/diamonddrill name = "diamond-tipped mining drill" icon_state = "diamonddrill" + inhand_icon_state = "diamonddrill" toolspeed = 0.2 desc = "Yours is the drill that will pierce the heavens!" /obj/item/pickaxe/drill/cyborg/diamond //This is the BORG version! name = "diamond-tipped cyborg mining drill" //To inherit the NODROP_1 flag, and easier to change borg specific drill mechanics. icon_state = "diamonddrill" + inhand_icon_state = "diamonddrill" toolspeed = 0.2 /obj/item/pickaxe/drill/jackhammer name = "sonic jackhammer" icon_state = "jackhammer" + inhand_icon_state = "jackhammer" toolspeed = 0.1 //the epitome of powertools. extremely fast mining usesound = 'sound/weapons/sonic_jackhammer.ogg' hitsound = 'sound/weapons/sonic_jackhammer.ogg' @@ -100,6 +106,7 @@ name = "improvised pickaxe" desc = "A pickaxe made with a knife and crowbar taped together, how does it not break?" icon_state = "ipickaxe" + inhand_icon_state = "ipickaxe" worn_icon_state = "pickaxe" force = 10 throwforce = 7 @@ -113,6 +120,7 @@ desc = "A large tool for digging and moving dirt." icon = 'icons/obj/mining.dmi' icon_state = "shovel" + inhand_icon_state = "shovel" lefthand_file = 'icons/mob/inhands/equipment/mining_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/mining_righthand.dmi' flags_1 = CONDUCT_1 @@ -147,6 +155,7 @@ name = "spade" desc = "A small tool for digging and moving dirt." icon_state = "spade" + inhand_icon_state = "spade" lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi' force = 5 @@ -173,6 +182,7 @@ desc = "The multi-purpose tool you always needed." icon = 'icons/obj/mining.dmi' icon_state = "trench_tool" + inhand_icon_state = "trench_tool" lefthand_file = 'icons/mob/inhands/equipment/mining_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/mining_righthand.dmi' flags_1 = CONDUCT_1 @@ -186,11 +196,25 @@ attack_verb_simple = list("bash", "bludgeon", "thrash", "whack") wound_bonus = 10 +/obj/item/trench_tool/Initialize(mapload) + . = ..() + AddElement(/datum/element/update_icon_updates_onmob) + /obj/item/trench_tool/examine(mob/user) . = ..() . += span_notice("Use in hand to switch configuration.") . += span_notice("It functions as a [tool_behaviour] tool.") +/obj/item/trench_tool/update_icon_state() + . = ..() + switch(tool_behaviour) + if(TOOL_WRENCH) + icon_state = inhand_icon_state = initial(icon_state) + if(TOOL_SHOVEL) + icon_state = inhand_icon_state = "[initial(icon_state)]_shovel" + if(TOOL_MINING) + icon_state = inhand_icon_state = "[initial(icon_state)]_pick" + /obj/item/trench_tool/attack_self(mob/user, modifiers) . = ..() if(!user) @@ -205,7 +229,6 @@ return switch(tool_result) if("Wrench") - icon_state = "trench_tool" tool_behaviour = TOOL_WRENCH sharpness = NONE toolspeed = 0.75 @@ -214,7 +237,6 @@ attack_verb_continuous = list("bashes", "bludgeons", "thrashes", "whacks") attack_verb_simple = list("bash", "bludgeon", "thrash", "whack") if("Shovel") - icon_state = "trench_tool_shovel" tool_behaviour = TOOL_SHOVEL sharpness = SHARP_EDGED toolspeed = 0.25 @@ -223,7 +245,6 @@ attack_verb_continuous = list("slashes", "impales", "stabs", "slices") attack_verb_simple = list("slash", "impale", "stab", "slice") if("Pick") - icon_state = "trench_tool_pick" tool_behaviour = TOOL_MINING sharpness = SHARP_POINTY toolspeed = 0.5 @@ -232,7 +253,7 @@ attack_verb_continuous = list("hits", "pierces", "slices", "attacks") attack_verb_simple = list("hit", "pierce", "slice", "attack") playsound(src, 'sound/items/ratchet.ogg', 50, vary = TRUE) - user.update_held_items() + update_appearance(UPDATE_ICON) /obj/item/trench_tool/proc/check_menu(mob/user) if(!istype(user)) diff --git a/code/modules/mining/lavaland/megafauna_loot.dm b/code/modules/mining/lavaland/megafauna_loot.dm index 82bda58357e..d53efe876b6 100644 --- a/code/modules/mining/lavaland/megafauna_loot.dm +++ b/code/modules/mining/lavaland/megafauna_loot.dm @@ -341,6 +341,7 @@ desc = "An old relic of hell created by devils to establish themselves as the leadership of hell over the demons. It grows stronger while it possesses a powerful soul." icon = 'icons/obj/lavaland/artefacts.dmi' icon_state = "soulscythe" + inhand_icon_state = "soulscythe" lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi' righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' attack_verb_continuous = list("chops", "slices", "cuts", "reaps") @@ -741,6 +742,7 @@ name = "staff of lava" desc = "The ability to fill the emergency shuttle with lava. What more could you want out of life?" icon_state = "lavastaff" + inhand_icon_state = "lavastaff" lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' icon = 'icons/obj/weapons/guns/magic.dmi' @@ -934,6 +936,7 @@ name = "staff of storms" desc = "An ancient staff retrieved from the remains of Legion. The wind stirs as you move it." icon_state = "staffofstorms" + inhand_icon_state = "staffofstorms" icon = 'icons/obj/weapons/guns/magic.dmi' lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' diff --git a/code/modules/mining/lavaland/tendril_loot.dm b/code/modules/mining/lavaland/tendril_loot.dm index 9898622b474..a498dea077e 100644 --- a/code/modules/mining/lavaland/tendril_loot.dm +++ b/code/modules/mining/lavaland/tendril_loot.dm @@ -73,8 +73,25 @@ lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' icon_state = "asclepius_dormant" + inhand_icon_state = "asclepius_dormant" var/activated = FALSE - var/usedHand + +/obj/item/rod_of_asclepius/Initialize(mapload) + . = ..() + AddElement(/datum/element/update_icon_updates_onmob) + +/obj/item/rod_of_asclepius/update_desc(updates) + . = ..() + desc = activated ? "A short wooden rod with a mystical snake inseparably gripping itself and the rod to your forearm. It flows with a healing energy that disperses amongst yourself and those around you." : initial(desc) + +/obj/item/rod_of_asclepius/update_icon_state() + . = ..() + icon_state = inhand_icon_state = "ascelpius_[activated ? "active" : "dormant"]" + +/obj/item/rod_of_asclepius/vv_edit_var(vname, vval) + . = ..() + if(vname == NAMEOF(src, activated) && activated) + activated() /obj/item/rod_of_asclepius/attack_self(mob/user) if(activated) @@ -83,7 +100,7 @@ to_chat(user, span_warning("The snake carving seems to come alive, if only for a moment, before returning to its dormant state, almost as if it finds you incapable of holding its oath.")) return var/mob/living/carbon/itemUser = user - usedHand = itemUser.get_held_index_of_item(src) + var/usedHand = itemUser.get_held_index_of_item(src) if(itemUser.has_status_effect(/datum/status_effect/hippocratic_oath)) to_chat(user, span_warning("You can't possibly handle the responsibility of more than one rod!")) return @@ -117,9 +134,8 @@ /obj/item/rod_of_asclepius/proc/activated() item_flags = DROPDEL ADD_TRAIT(src, TRAIT_NODROP, CURSED_ITEM_TRAIT(type)) - desc = "A short wooden rod with a mystical snake inseparably gripping itself and the rod to your forearm. It flows with a healing energy that disperses amongst yourself and those around you. " - icon_state = "asclepius_active" activated = TRUE + update_appearance() //Memento Mori /obj/item/clothing/neck/necklace/memento_mori @@ -557,7 +573,7 @@ name = "concussive gauntlets" desc = "Pickaxes... for your hands!" icon_state = "concussive_gauntlets" - inhand_icon_state = "concussive_gauntlets" + inhand_icon_state = null toolspeed = 0.1 strip_delay = 40 equip_delay_other = 20 @@ -713,7 +729,7 @@ name = "eye of god" desc = "A strange eye, said to have been torn from an omniscient creature that used to roam the wastes." icon_state = "godeye" - inhand_icon_state = "godeye" + inhand_icon_state = null vision_flags = SEE_TURFS darkness_view = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index be97f76bc16..cb557223b6a 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -11,7 +11,7 @@ name = "rock" icon = 'icons/obj/ore.dmi' icon_state = "ore" - inhand_icon_state = "ore" + inhand_icon_state = null full_w_class = WEIGHT_CLASS_BULKY singular_name = "ore chunk" material_flags = MATERIAL_EFFECTS @@ -73,7 +73,6 @@ /obj/item/stack/ore/uranium name = "uranium ore" icon_state = "Uranium ore" - inhand_icon_state = "Uranium ore" singular_name = "uranium ore chunk" points = 30 material_flags = NONE @@ -87,7 +86,6 @@ /obj/item/stack/ore/iron name = "iron ore" icon_state = "Iron ore" - inhand_icon_state = "Iron ore" singular_name = "iron ore chunk" points = 1 mats_per_unit = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT) @@ -100,7 +98,6 @@ /obj/item/stack/ore/glass name = "sand pile" icon_state = "Glass ore" - inhand_icon_state = "Glass ore" singular_name = "sand pile" points = 1 mats_per_unit = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT) @@ -138,7 +135,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ /obj/item/stack/ore/glass/basalt name = "volcanic ash" icon_state = "volcanic_sand" - inhand_icon_state = "volcanic_sand" singular_name = "volcanic ash pile" mine_experience = 0 merge_type = /obj/item/stack/ore/glass/basalt @@ -146,7 +142,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ /obj/item/stack/ore/plasma name = "plasma ore" icon_state = "Plasma ore" - inhand_icon_state = "Plasma ore" singular_name = "plasma ore chunk" points = 15 mats_per_unit = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT) @@ -163,7 +158,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ /obj/item/stack/ore/silver name = "silver ore" icon_state = "Silver ore" - inhand_icon_state = "Silver ore" singular_name = "silver ore chunk" points = 16 mine_experience = 3 @@ -176,7 +170,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ /obj/item/stack/ore/gold name = "gold ore" icon_state = "Gold ore" - inhand_icon_state = "Gold ore" singular_name = "gold ore chunk" points = 18 mine_experience = 5 @@ -189,7 +182,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ /obj/item/stack/ore/diamond name = "diamond ore" icon_state = "Diamond ore" - inhand_icon_state = "Diamond ore" singular_name = "diamond ore chunk" points = 50 mats_per_unit = list(/datum/material/diamond=MINERAL_MATERIAL_AMOUNT) @@ -201,7 +193,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ /obj/item/stack/ore/bananium name = "bananium ore" icon_state = "Bananium ore" - inhand_icon_state = "Bananium ore" singular_name = "bananium ore chunk" points = 60 mats_per_unit = list(/datum/material/bananium=MINERAL_MATERIAL_AMOUNT) @@ -213,7 +204,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ /obj/item/stack/ore/titanium name = "titanium ore" icon_state = "Titanium ore" - inhand_icon_state = "Titanium ore" singular_name = "titanium ore chunk" points = 50 mats_per_unit = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT) @@ -227,7 +217,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ name = "slag" desc = "Completely useless." icon_state = "slag" - inhand_icon_state = "slag" singular_name = "slag chunk" merge_type = /obj/item/stack/ore/slag diff --git a/code/modules/mob/living/basic/lavaland/bileworm/bileworm_instrument.dm b/code/modules/mob/living/basic/lavaland/bileworm/bileworm_instrument.dm index fcfde8707d4..23d765e63a1 100644 --- a/code/modules/mob/living/basic/lavaland/bileworm/bileworm_instrument.dm +++ b/code/modules/mob/living/basic/lavaland/bileworm/bileworm_instrument.dm @@ -5,7 +5,7 @@ icon = 'icons/mob/simple/lavaland/bileworm.dmi' icon_state = "bilehorn" allowed_instrument_ids = "bilehorn" - inhand_icon_state = "bilehorn" + inhand_icon_state = null /datum/crafting_recipe/bilehorn name = "Bilehorn" diff --git a/code/modules/mob/living/basic/lavaland/bileworm/bileworm_loot.dm b/code/modules/mob/living/basic/lavaland/bileworm/bileworm_loot.dm index fa5f99ee70c..7c04ed65a61 100644 --- a/code/modules/mob/living/basic/lavaland/bileworm/bileworm_loot.dm +++ b/code/modules/mob/living/basic/lavaland/bileworm/bileworm_loot.dm @@ -7,7 +7,7 @@ singular_name = "bileworm skin piece" icon = 'icons/mob/simple/lavaland/bileworm.dmi' icon_state = "sheet-bileworm" - inhand_icon_state = "sheet-bileworm" + inhand_icon_state = null merge_type = /obj/item/stack/sheet/animalhide/bileworm //trophy diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index a27817a0284..9d7359dd7f2 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -276,7 +276,7 @@ /obj/item/clothing/mask/facehugger/impregnated icon_state = "facehugger_impregnated" - inhand_icon_state = "facehugger_impregnated" + inhand_icon_state = null worn_icon_state = "facehugger_impregnated" stat = DEAD diff --git a/code/modules/mob/living/carbon/human/species_types/snail.dm b/code/modules/mob/living/carbon/human/species_types/snail.dm index 997de61c46c..247e557a24d 100644 --- a/code/modules/mob/living/carbon/human/species_types/snail.dm +++ b/code/modules/mob/living/carbon/human/species_types/snail.dm @@ -57,7 +57,7 @@ name = "snail shell" desc = "Worn by snails as armor and storage compartment." icon_state = "snailshell" - inhand_icon_state = "snailshell" + inhand_icon_state = null lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi' armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 0, FIRE = 0, ACID = 50) diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm index 840d266def1..4e0dd06e553 100644 --- a/code/modules/mob/living/simple_animal/bot/construction.dm +++ b/code/modules/mob/living/simple_animal/bot/construction.dm @@ -66,7 +66,7 @@ name = "incomplete ED-209 assembly" desc = "Some sort of bizarre assembly." icon_state = "ed209_frame" - inhand_icon_state = "ed209_frame" + inhand_icon_state = null created_name = "ED-209 Security Robot" //To preserve the name if it's a unique securitron I guess var/lasercolor = "" var/vest_type = /obj/item/clothing/suit/armor/vest @@ -311,6 +311,8 @@ desc = "Some sort of bizarre assembly made from a proximity sensor, helmet, and signaler." icon_state = "helmet_signaler" inhand_icon_state = "helmet" + lefthand_file = 'icons/mob/inhands/clothing/hats_righthand.dmi' + righthand_file = 'icons/mob/inhands/clothing/hats_lefthand.dmi' created_name = "Securitron" //To preserve the name if it's a unique securitron I guess var/swordamt = 0 //If you're converting it into a grievousbot, how many swords have you attached var/toyswordamt = 0 //honk diff --git a/code/modules/ninja/ninja_clothing.dm b/code/modules/ninja/ninja_clothing.dm index b093aa80016..54ed46c9c3e 100644 --- a/code/modules/ninja/ninja_clothing.dm +++ b/code/modules/ninja/ninja_clothing.dm @@ -10,6 +10,7 @@ name = "ninja mask" desc = "A close-fitting nano-enhanced mask that acts both as an air filter and a post-modern fashion statement." icon_state = "ninja" + inhand_icon_state = "sechailer" strip_delay = 12 SECONDS resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF flags_inv = HIDEFACIALHAIR | HIDEFACE | HIDESNOUT diff --git a/code/modules/paperwork/handlabeler.dm b/code/modules/paperwork/handlabeler.dm index 5b80981dc2d..d575eb58d93 100644 --- a/code/modules/paperwork/handlabeler.dm +++ b/code/modules/paperwork/handlabeler.dm @@ -3,7 +3,7 @@ desc = "A combined label printer, applicator, and remover, all in a single portable device. Designed to be easy to operate and use." icon = 'icons/obj/bureaucracy.dmi' icon_state = "labeler0" - inhand_icon_state = "flight" + inhand_icon_state = null var/label = null var/labels_left = 30 var/mode = 0 diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index 5e82e82b6ce..1a50f4cbace 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -202,9 +202,8 @@ var/obj/item/stack/cable_coil/binding_cable /obj/item/paper_bin/bundlenatural/Initialize(mapload) - binding_cable = new /obj/item/stack/cable_coil(src, 2) - binding_cable.color = COLOR_ORANGE_BROWN - binding_cable.cable_color = "brown" + binding_cable = new(src, 2) + binding_cable.set_cable_color(CABLE_COLOR_BROWN) binding_cable.desc += " Non-natural." return ..() diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index a84f2287c6d..b21f2523715 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -16,7 +16,7 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri desc = "A flexible, superconducting insulated cable for heavy-duty power transfer." icon = 'icons/obj/power_cond/layer_cable.dmi' icon_state = "l2-1-2-4-8-node" - color = "yellow" + color = CABLE_HEX_COLOR_YELLOW layer = WIRE_LAYER //Above hidden pipes, GAS_PIPE_HIDDEN_LAYER anchored = TRUE obj_flags = CAN_BE_HIT @@ -25,16 +25,19 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri var/cable_layer = CABLE_LAYER_2 //bitflag var/machinery_layer = MACHINERY_LAYER_1 //bitflag var/datum/powernet/powernet + var/cable_color = CABLE_COLOR_YELLOW /obj/structure/cable/layer1 - color = "red" + color = CABLE_HEX_COLOR_RED + cable_color = CABLE_COLOR_RED cable_layer = CABLE_LAYER_1 machinery_layer = null layer = WIRE_LAYER - 0.01 icon_state = "l1-1-2-4-8-node" /obj/structure/cable/layer3 - color = "blue" + color = CABLE_HEX_COLOR_BLUE + cable_color = CABLE_COLOR_BLUE cable_layer = CABLE_LAYER_3 machinery_layer = null layer = WIRE_LAYER + 0.01 @@ -125,7 +128,8 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri /obj/structure/cable/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) - new /obj/item/stack/cable_coil(drop_location(), 1) + var/obj/item/stack/cable_coil/cable = new(drop_location(), 1) + cable.set_cable_color(cable_color) qdel(src) /////////////////////////////////// @@ -411,7 +415,7 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri gender = NEUTER //That's a cable coil sounds better than that's some cable coils icon = 'icons/obj/power.dmi' icon_state = "coil" - inhand_icon_state = "coil" + inhand_icon_state = "coil_yellow" base_icon_state = "coil" novariants = FALSE lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' @@ -419,7 +423,7 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri max_amount = MAXCOIL amount = MAXCOIL merge_type = /obj/item/stack/cable_coil // This is here to let its children merge between themselves - color = "yellow" + color = CABLE_HEX_COLOR_YELLOW desc = "A coil of insulated power cable." throwforce = 0 w_class = WEIGHT_CLASS_SMALL @@ -436,7 +440,7 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri usesound = 'sound/items/deconstruct.ogg' cost = 1 source = /datum/robot_energy_storage/wire - var/cable_color = "yellow" + var/cable_color = CABLE_COLOR_YELLOW var/obj/structure/cable/target_type = /obj/structure/cable var/target_layer = CABLE_LAYER_2 @@ -444,6 +448,9 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri . = ..() pixel_x = base_pixel_x + rand(-2, 2) pixel_y = base_pixel_y + rand(-2, 2) + + AddElement(/datum/element/update_icon_updates_onmob, slot_flags) + update_appearance() /obj/item/stack/cable_coil/examine(mob/user) @@ -458,11 +465,17 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri . = ..() desc = "A [(amount < 3) ? "piece" : "coil"] of insulated power cable." +/obj/item/stack/cable_coil/proc/set_cable_color(new_color) + color = GLOB.cable_colors[new_color] + cable_color = new_color + update_appearance(UPDATE_ICON) + /obj/item/stack/cable_coil/update_icon_state() if(novariants) return . = ..() icon_state = "[base_icon_state][amount < 3 ? amount : ""]" + inhand_icon_state = "coil_[cable_color]" /obj/item/stack/cable_coil/suicide_act(mob/user) if(locate(/obj/structure/chair/stool) in get_turf(user)) @@ -487,6 +500,7 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri var/image/restraints_icon = image(icon = 'icons/obj/restraints.dmi', icon_state = "cuff") restraints_icon.maptext = MAPTEXT("= CABLE_RESTRAINTS_COST ? "" : "style='color: red'"]>[CABLE_RESTRAINTS_COST]") + restraints_icon.color = color var/list/radial_menu = list( "Layer 1" = image(icon = 'icons/hud/radial.dmi', icon_state = "coil-red"), @@ -502,17 +516,17 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri return switch(layer_result) if("Layer 1") - color = "red" + set_cable_color(CABLE_COLOR_RED) target_type = /obj/structure/cable/layer1 target_layer = CABLE_LAYER_1 novariants = FALSE if("Layer 2") - color = "yellow" + set_cable_color(CABLE_COLOR_YELLOW) target_type = /obj/structure/cable target_layer = CABLE_LAYER_2 novariants = FALSE if("Layer 3") - color = "blue" + set_cable_color(CABLE_COLOR_BLUE) target_type = /obj/structure/cable/layer3 target_layer = CABLE_LAYER_3 novariants = FALSE @@ -520,7 +534,7 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri name = "multilayer cable hub" desc = "A multilayer cable hub." icon_state = "cable_bridge" - color = "white" + set_cable_color(CABLE_COLOR_WHITE) target_type = /obj/structure/cable/multilayer target_layer = CABLE_LAYER_2 novariants = TRUE @@ -528,15 +542,14 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri name = "multi z layer cable hub" desc = "A multi-z layer cable hub." icon_state = "cablerelay-broken-cable" - color = "white" + set_cable_color(CABLE_COLOR_WHITE) target_type = /obj/structure/cable/multilayer/multiz target_layer = CABLE_LAYER_2 novariants = TRUE if("Cable restraints") if (amount >= CABLE_RESTRAINTS_COST) if(use(CABLE_RESTRAINTS_COST)) - var/obj/item/restraints/handcuffs/cable/restraints = new - restraints.color = color + var/obj/item/restraints/handcuffs/cable/restraints = new(null, cable_color) user.put_in_hands(restraints) update_appearance() @@ -636,7 +649,7 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri cable_layer = CABLE_LAYER_2 machinery_layer = MACHINERY_LAYER_1 layer = WIRE_LAYER - 0.02 //Below all cables Disabled layers can lay over hub - color = "white" + color = CABLE_COLOR_WHITE /obj/structure/cable/multilayer/update_icon_state() SHOULD_CALL_PARENT(FALSE) @@ -646,22 +659,22 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri . = ..() underlays.Cut() var/mutable_appearance/cable_node_3 = mutable_appearance('icons/obj/power_cond/layer_cable.dmi', "l4-1-2-4-8-node") - cable_node_3.color = "blue" + cable_node_3.color = CABLE_COLOR_BLUE cable_node_3?.alpha = cable_layer & CABLE_LAYER_3 ? 255 : 0 underlays += cable_node_3 var/mutable_appearance/cable_node_2 = mutable_appearance('icons/obj/power_cond/layer_cable.dmi', "l2-1-2-4-8-node") - cable_node_2.color = "yellow" + cable_node_2.color = CABLE_COLOR_YELLOW cable_node_2?.alpha = cable_layer & CABLE_LAYER_2 ? 255 : 0 underlays += cable_node_2 var/mutable_appearance/cable_node_1 = mutable_appearance('icons/obj/power_cond/layer_cable.dmi', "l1-1-2-4-8-node") - cable_node_1.color = "red" + cable_node_1.color = CABLE_COLOR_RED cable_node_1?.alpha = cable_layer & CABLE_LAYER_1 ? 255 : 0 underlays += cable_node_1 var/mutable_appearance/machinery_node = mutable_appearance('icons/obj/power_cond/layer_cable.dmi', "l2-noconnection") machinery_node.color = "black" machinery_node?.alpha = machinery_layer & MACHINERY_LAYER_1 ? 255 : 0 underlays += machinery_node - + /obj/structure/cable/multilayer/Initialize(mapload) . = ..() var/turf/T = get_turf(src) diff --git a/code/modules/power/pipecleaners.dm b/code/modules/power/pipecleaners.dm index 61b93f89ad1..55ab3196723 100644 --- a/code/modules/power/pipecleaners.dm +++ b/code/modules/power/pipecleaners.dm @@ -1,14 +1,3 @@ -GLOBAL_LIST_INIT(pipe_cleaner_colors, list( - "blue" = COLOR_STRONG_BLUE, - "cyan" = COLOR_CYAN, - "green" = COLOR_DARK_LIME, - "orange" = COLOR_MOSTLY_PURE_ORANGE, - "pink" = COLOR_LIGHT_PINK, - "red" = COLOR_RED, - "white" = COLOR_WHITE, - "yellow" = COLOR_YELLOW - )) - //This is the old cable code, but minus any actual powernet logic //Wireart is fun @@ -42,7 +31,9 @@ By design, d1 is the smallest direction and d2 is the highest layer = WIRE_LAYER //Above hidden pipes, GAS_PIPE_HIDDEN_LAYER anchored = TRUE obj_flags = CAN_BE_HIT - color = COLOR_RED + color = CABLE_HEX_COLOR_RED + ///For updating inhand icons. + var/pipecleaner_color = CABLE_COLOR_RED /// Pipe_cleaner direction 1 (see above) var/d1 = 0 /// pipe_cleaner direction 2 (see above) @@ -51,25 +42,37 @@ By design, d1 is the smallest direction and d2 is the highest var/obj/item/stack/pipe_cleaner_coil/stored /obj/structure/pipe_cleaner/yellow - color = COLOR_YELLOW + color = CABLE_HEX_COLOR_YELLOW + pipecleaner_color = CABLE_COLOR_YELLOW /obj/structure/pipe_cleaner/green - color = COLOR_DARK_LIME + color = CABLE_HEX_COLOR_GREEN + pipecleaner_color = CABLE_COLOR_GREEN /obj/structure/pipe_cleaner/blue - color = COLOR_STRONG_BLUE + color = CABLE_HEX_COLOR_BLUE + pipecleaner_color = CABLE_COLOR_BLUE /obj/structure/pipe_cleaner/pink - color = COLOR_LIGHT_PINK + color = CABLE_HEX_COLOR_PINK + pipecleaner_color = CABLE_COLOR_YELLOW /obj/structure/pipe_cleaner/orange - color = COLOR_MOSTLY_PURE_ORANGE + color = CABLE_HEX_COLOR_ORANGE + pipecleaner_color = CABLE_COLOR_ORANGE /obj/structure/pipe_cleaner/cyan - color = COLOR_CYAN + color = CABLE_HEX_COLOR_CYAN + pipecleaner_color = CABLE_COLOR_CYAN /obj/structure/pipe_cleaner/white - color = COLOR_WHITE + color = CABLE_HEX_COLOR_WHITE + pipecleaner_color = CABLE_COLOR_WHITE + +/obj/structure/pipe_cleaner/brown + color = CABLE_HEX_COLOR_BROWN + pipecleaner_color = CABLE_COLOR_BROWN + // the power pipe_cleaner object /obj/structure/pipe_cleaner/Initialize(mapload, param_color) @@ -81,16 +84,23 @@ By design, d1 is the smallest direction and d2 is the highest d2 = text2num(copytext(icon_state, dash + length(icon_state[dash]))) if(d1) - stored = new/obj/item/stack/pipe_cleaner_coil(null, 2, null, null, null, color) + stored = new/obj/item/stack/pipe_cleaner_coil(null, 2, null, null, null) else - stored = new/obj/item/stack/pipe_cleaner_coil(null, 1, null, null, null, color) + stored = new/obj/item/stack/pipe_cleaner_coil(null, 1, null, null, null) + + if(param_color) + color = GLOB.cable_colors[param_color] + pipecleaner_color = param_color - color = param_color || color if(!color) - var/list/pipe_cleaner_colors = GLOB.pipe_cleaner_colors + var/list/pipe_cleaner_colors = GLOB.cable_colors var/random_color = pick(pipe_cleaner_colors) color = pipe_cleaner_colors[random_color] + pipecleaner_color = random_color + update_appearance() + stored?.set_pipecleaner_color(pipecleaner_color) + if(isturf(loc)) var/turf/turf_loc = loc turf_loc.add_blueprints_preround(src) @@ -181,7 +191,7 @@ By design, d1 is the smallest direction and d2 is the highest gender = NEUTER //That's a pipe_cleaner coil sounds better than that's some pipe_cleaner coils icon = 'icons/obj/power.dmi' icon_state = "pipecleaner" - inhand_icon_state = "pipecleaner" + inhand_icon_state = "coil_red" worn_icon_state = "coil" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' @@ -203,10 +213,12 @@ By design, d1 is the smallest direction and d2 is the highest usesound = 'sound/items/deconstruct.ogg' cost = 1 source = /datum/robot_energy_storage/pipe_cleaner - color = COLOR_RED + color = CABLE_HEX_COLOR_RED + ///For updating inhand icons. + var/pipecleaner_color = CABLE_COLOR_RED /obj/item/stack/pipe_cleaner_coil/cyborg/attack_self(mob/user) - var/list/pipe_cleaner_colors = GLOB.pipe_cleaner_colors + var/list/pipe_cleaner_colors = GLOB.cable_colors var/list/possible_colors = list() for(var/color in pipe_cleaner_colors) var/image/pipe_icon = image(icon = src.icon, icon_state = src.icon_state) @@ -216,8 +228,7 @@ By design, d1 is the smallest direction and d2 is the highest var/selected_color = show_radial_menu(user, src, possible_colors, custom_check = CALLBACK(src, .proc/check_menu, user), radius = 40, require_near = TRUE) if(!selected_color) return - color = pipe_cleaner_colors[selected_color] - update_appearance() + set_pipecleaner_color(selected_color) /** * Checks if we are allowed to interact with a radial menu @@ -234,6 +245,11 @@ By design, d1 is the smallest direction and d2 is the highest return FALSE return TRUE +/obj/item/stack/pipe_cleaner_coil/proc/set_pipecleaner_color(new_color) + color = GLOB.cable_colors[new_color] + pipecleaner_color = new_color + update_appearance() + /obj/item/stack/pipe_cleaner_coil/suicide_act(mob/user) if(locate(/obj/structure/chair/stool) in get_turf(user)) user.visible_message(span_suicide("[user] is making a noose with [src]! It looks like [user.p_theyre()] trying to commit suicide!")) @@ -244,12 +260,13 @@ By design, d1 is the smallest direction and d2 is the highest /obj/item/stack/pipe_cleaner_coil/Initialize(mapload, new_amount = null, list/mat_override=null, mat_amt=1, param_color = null) . = ..() + AddElement(/datum/element/update_icon_updates_onmob, slot_flags) if(param_color) - color = param_color + set_pipecleaner_color(param_color) if(!color) - var/list/pipe_cleaner_colors = GLOB.pipe_cleaner_colors + var/list/pipe_cleaner_colors = GLOB.cable_colors var/random_color = pick(pipe_cleaner_colors) - color = pipe_cleaner_colors[random_color] + set_pipecleaner_color(random_color) pixel_x = base_pixel_x + rand(-2, 2) pixel_y = base_pixel_y + rand(-2, 2) @@ -266,6 +283,7 @@ By design, d1 is the smallest direction and d2 is the highest /obj/item/stack/pipe_cleaner_coil/update_icon_state() . = ..() icon_state = "[initial(inhand_icon_state)][amount < 3 ? amount : ""]" + inhand_icon_state = "coil_[pipecleaner_color]" /obj/item/stack/pipe_cleaner_coil/update_icon() . = ..() @@ -277,8 +295,7 @@ By design, d1 is the smallest direction and d2 is the highest return var/obj/item/stack/pipe_cleaner_coil/new_pipe_cleaner = ..() if(istype(new_pipe_cleaner)) - new_pipe_cleaner.color = color - new_pipe_cleaner.update_appearance() + new_pipe_cleaner.set_pipecleaner_color(pipecleaner_color) //add pipe_cleaners to the stack /obj/item/stack/pipe_cleaner_coil/proc/give(extra) @@ -293,8 +310,7 @@ By design, d1 is the smallest direction and d2 is the highest ////////////////////////////////////////////// /obj/item/stack/pipe_cleaner_coil/proc/get_new_pipe_cleaner(location) - var/path = /obj/structure/pipe_cleaner - return new path(location, color) + return new /obj/structure/pipe_cleaner(location, pipecleaner_color) // called when pipe_cleaner_coil is clicked on a turf /obj/item/stack/pipe_cleaner_coil/proc/place_turf(turf/T, mob/user, dirnew) @@ -435,28 +451,40 @@ By design, d1 is the smallest direction and d2 is the highest ///////////////////////////// /obj/item/stack/pipe_cleaner_coil/red - color = COLOR_RED + color = CABLE_HEX_COLOR_RED + pipecleaner_color = CABLE_COLOR_RED /obj/item/stack/pipe_cleaner_coil/yellow - color = COLOR_YELLOW + color = CABLE_HEX_COLOR_YELLOW + pipecleaner_color = CABLE_COLOR_YELLOW /obj/item/stack/pipe_cleaner_coil/blue - color = COLOR_STRONG_BLUE + color = CABLE_HEX_COLOR_BLUE + pipecleaner_color = CABLE_COLOR_BLUE /obj/item/stack/pipe_cleaner_coil/green - color = COLOR_DARK_LIME + color = CABLE_HEX_COLOR_GREEN + pipecleaner_color = CABLE_COLOR_GREEN /obj/item/stack/pipe_cleaner_coil/pink - color = COLOR_LIGHT_PINK + color = CABLE_HEX_COLOR_PINK + pipecleaner_color = CABLE_COLOR_PINK /obj/item/stack/pipe_cleaner_coil/orange - color = COLOR_MOSTLY_PURE_ORANGE + color =CABLE_HEX_COLOR_ORANGE + pipecleaner_color = CABLE_COLOR_ORANGE /obj/item/stack/pipe_cleaner_coil/cyan - color = COLOR_CYAN + color = CABLE_HEX_COLOR_CYAN + pipecleaner_color = CABLE_COLOR_CYAN /obj/item/stack/pipe_cleaner_coil/white - color = COLOR_WHITE + color = CABLE_HEX_COLOR_WHITE + pipecleaner_color = CABLE_COLOR_WHITE + +/obj/item/stack/pipe_cleaner_coil/brown + color = CABLE_HEX_COLOR_BROWN + pipecleaner_color = CABLE_COLOR_BROWN /obj/item/stack/pipe_cleaner_coil/random color = null @@ -477,28 +505,40 @@ By design, d1 is the smallest direction and d2 is the highest update_appearance() /obj/item/stack/pipe_cleaner_coil/cut/red - color = COLOR_RED + color = CABLE_HEX_COLOR_RED + pipecleaner_color = CABLE_COLOR_RED /obj/item/stack/pipe_cleaner_coil/cut/yellow - color = COLOR_YELLOW + color = CABLE_HEX_COLOR_YELLOW + pipecleaner_color = CABLE_COLOR_YELLOW /obj/item/stack/pipe_cleaner_coil/cut/blue - color = COLOR_STRONG_BLUE + color = CABLE_HEX_COLOR_BLUE + pipecleaner_color = CABLE_COLOR_BLUE /obj/item/stack/pipe_cleaner_coil/cut/green - color = COLOR_DARK_LIME + color = CABLE_HEX_COLOR_GREEN + pipecleaner_color = CABLE_COLOR_GREEN /obj/item/stack/pipe_cleaner_coil/cut/pink - color = COLOR_LIGHT_PINK + color = CABLE_HEX_COLOR_PINK + pipecleaner_color = CABLE_COLOR_PINK /obj/item/stack/pipe_cleaner_coil/cut/orange - color = COLOR_MOSTLY_PURE_ORANGE + color = CABLE_HEX_COLOR_ORANGE + pipecleaner_color = CABLE_COLOR_ORANGE /obj/item/stack/pipe_cleaner_coil/cut/cyan - color = COLOR_CYAN + color = CABLE_HEX_COLOR_CYAN + pipecleaner_color = CABLE_COLOR_CYAN /obj/item/stack/pipe_cleaner_coil/cut/white - color = COLOR_WHITE + color = CABLE_HEX_COLOR_WHITE + pipecleaner_color = CABLE_COLOR_WHITE + +/obj/item/stack/pipe_cleaner_coil/cut/brown + color = CABLE_HEX_COLOR_BROWN + pipecleaner_color = CABLE_COLOR_BROWN /obj/item/stack/pipe_cleaner_coil/cut/random color = null diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index 9ce3ac9a2c0..9e22996ac3f 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -249,7 +249,7 @@ name = "\improper L6 SAW" desc = "A heavily modified 7.12x82mm light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation." icon_state = "l6" - inhand_icon_state = "l6" + inhand_icon_state = "l6closedmag" base_icon_state = "l6" w_class = WEIGHT_CLASS_HUGE slot_flags = 0 diff --git a/code/modules/projectiles/guns/ballistic/bow.dm b/code/modules/projectiles/guns/ballistic/bow.dm index eb807348d8f..4b71292e44e 100644 --- a/code/modules/projectiles/guns/ballistic/bow.dm +++ b/code/modules/projectiles/guns/ballistic/bow.dm @@ -97,7 +97,7 @@ name = "quiver" desc = "Holds arrows for your bow. Good, because while pocketing arrows is possible, it surely can't be pleasant." icon_state = "quiver" - inhand_icon_state = "quiver" + inhand_icon_state = null worn_icon_state = "harpoon_quiver" var/arrow_path = /obj/item/ammo_casing/caseless/arrow diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 6b365affeaf..0a68ee6060c 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -70,6 +70,8 @@ desc = "An advanced shotgun with two separate magazine tubes, allowing you to quickly toggle between ammo types." icon_state = "cycler" inhand_icon_state = "bulldog" + lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' worn_icon_state = "cshotgun" w_class = WEIGHT_CLASS_HUGE semi_auto = TRUE diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm index 3a604d37624..9d10bf9d3bb 100644 --- a/code/modules/projectiles/guns/ballistic/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -61,6 +61,8 @@ icon = 'icons/obj/toys/toy.dmi' icon_state = "foamcrossbow" inhand_icon_state = "crossbow" + lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' worn_icon_state = "gun" worn_icon = null mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/crossbow diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index 486ed08b59d..97eb494af3c 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -4,8 +4,8 @@ icon = 'icons/obj/weapons/guns/magic.dmi' icon_state = "staffofnothing" inhand_icon_state = "staff" - lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' //not really a gun and some toys use these inhands - righthand_file = 'icons/mob/inhands/items_righthand.dmi' + lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' //not really a gun and some toys use these inhands + righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' fire_sound = 'sound/weapons/emitter.ogg' flags_1 = CONDUCT_1 w_class = WEIGHT_CLASS_HUGE diff --git a/code/modules/projectiles/guns/magic/wand.dm b/code/modules/projectiles/guns/magic/wand.dm index 9d781f89590..2798fd04791 100644 --- a/code/modules/projectiles/guns/magic/wand.dm +++ b/code/modules/projectiles/guns/magic/wand.dm @@ -4,6 +4,8 @@ ammo_type = /obj/item/ammo_casing/magic icon_state = "nothingwand" inhand_icon_state = "wand" + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' base_icon_state = "nothingwand" w_class = WEIGHT_CLASS_SMALL can_charge = FALSE diff --git a/code/modules/reagents/reagent_containers/condiment.dm b/code/modules/reagents/reagent_containers/condiment.dm index cc719d275ce..139d86e784d 100644 --- a/code/modules/reagents/reagent_containers/condiment.dm +++ b/code/modules/reagents/reagent_containers/condiment.dm @@ -11,8 +11,8 @@ icon = 'icons/obj/food/containers.dmi' icon_state = "emptycondiment" inhand_icon_state = "beer" //Generic held-item sprite until unique ones are made. - lefthand_file = 'icons/mob/inhands/items/food_lefthand.dmi' - righthand_file = 'icons/mob/inhands/items/food_righthand.dmi' + lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' reagent_flags = OPENCONTAINER obj_flags = UNIQUE_RENAME possible_transfer_amounts = list(1, 5, 10, 15, 20, 25, 30, 50) @@ -114,8 +114,8 @@ desc = "Tasty spacey sugar!" icon_state = "sugar" inhand_icon_state = "carton" - lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' + lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' list_reagents = list(/datum/reagent/consumable/sugar = 50) fill_icon_thresholds = null @@ -178,8 +178,8 @@ desc = "It's milk. White and nutritious goodness!" icon_state = "milk" inhand_icon_state = "carton" - lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' + lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' list_reagents = list(/datum/reagent/consumable/milk = 50) fill_icon_thresholds = null @@ -196,8 +196,8 @@ desc = "A big bag of flour. Good for baking!" icon_state = "flour" inhand_icon_state = "carton" - lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' + lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' list_reagents = list(/datum/reagent/consumable/flour = 30) fill_icon_thresholds = null @@ -219,8 +219,8 @@ desc = "It's soy milk. White and nutritious goodness!" icon_state = "soymilk" inhand_icon_state = "carton" - lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' + lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' list_reagents = list(/datum/reagent/consumable/soymilk = 50) fill_icon_thresholds = null @@ -229,8 +229,8 @@ desc = "A big bag of rice. Good for cooking!" icon_state = "rice" inhand_icon_state = "carton" - lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' + lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' list_reagents = list(/datum/reagent/consumable/rice = 30) fill_icon_thresholds = null @@ -239,8 +239,8 @@ desc = "A big box of cornmeal. Great for southern style cooking." icon_state = "cornmeal" inhand_icon_state = "carton" - lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' + lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' list_reagents = list(/datum/reagent/consumable/cornmeal = 30) fill_icon_thresholds = null diff --git a/code/modules/reagents/reagent_containers/cups/_cup.dm b/code/modules/reagents/reagent_containers/cups/_cup.dm index ba668dc30d5..c0cdcf02a17 100644 --- a/code/modules/reagents/reagent_containers/cups/_cup.dm +++ b/code/modules/reagents/reagent_containers/cups/_cup.dm @@ -204,6 +204,8 @@ icon = 'icons/obj/medical/chemical.dmi' icon_state = "beaker" inhand_icon_state = "beaker" + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' worn_icon_state = "beaker" custom_materials = list(/datum/material/glass=500) fill_icon_thresholds = list(0, 1, 20, 40, 60, 80, 100) diff --git a/code/modules/reagents/reagent_containers/cups/drinks.dm b/code/modules/reagents/reagent_containers/cups/drinks.dm index 9a6ce550d7d..883e366301b 100644 --- a/code/modules/reagents/reagent_containers/cups/drinks.dm +++ b/code/modules/reagents/reagent_containers/cups/drinks.dm @@ -57,6 +57,7 @@ name = "gold cup" desc = "You're winner!" icon_state = "golden_cup" + inhand_icon_state = "golden_cup" w_class = WEIGHT_CLASS_BULKY force = 14 throwforce = 10 @@ -176,7 +177,7 @@ desc = "A bottle of water filled at an old Earth bottling facility." icon = 'icons/obj/drinks.dmi' icon_state = "smallbottle" - inhand_icon_state = "bottle" + inhand_icon_state = null list_reagents = list(/datum/reagent/water = 49.5, /datum/reagent/fluorine = 0.5)//see desc, don't think about it too hard custom_materials = list(/datum/material/plastic=1000) volume = 50 diff --git a/code/modules/reagents/reagent_containers/cups/glassbottle.dm b/code/modules/reagents/reagent_containers/cups/glassbottle.dm index b23b20e6911..e1e111c106a 100644 --- a/code/modules/reagents/reagent_containers/cups/glassbottle.dm +++ b/code/modules/reagents/reagent_containers/cups/glassbottle.dm @@ -17,6 +17,8 @@ throwforce = 15 demolition_mod = 0.25 inhand_icon_state = "beer" //Generic held-item sprite until unique ones are made. + lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' drink_type = ALCOHOL age_restricted = TRUE // wrryy can't set an init value to see if drink_type contains ALCOHOL so here we go ///Directly relates to the 'knockdown' duration. Lowered by armor (i.e. helmets) @@ -117,6 +119,8 @@ demolition_mod = 0.25 w_class = WEIGHT_CLASS_TINY inhand_icon_state = "broken_beer" + lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' hitsound = 'sound/weapons/bladeslice.ogg' attack_verb_continuous = list("stabs", "slashes", "attacks") attack_verb_simple = list("stab", "slash", "attack") @@ -689,6 +693,8 @@ /obj/item/reagent_containers/cup/glass/bottle/juice custom_price = PAYCHECK_CREW inhand_icon_state = "carton" + lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' isGlass = FALSE age_restricted = FALSE diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm index 1c5f3843689..c6f9061316b 100644 --- a/code/modules/reagents/reagent_containers/patch.dm +++ b/code/modules/reagents/reagent_containers/patch.dm @@ -3,7 +3,7 @@ desc = "A chemical patch for touch based applications." icon = 'icons/obj/medical/chemical.dmi' icon_state = "bandaid" - inhand_icon_state = "bandaid" + inhand_icon_state = null possible_transfer_amounts = list() volume = 40 apply_type = PATCH diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 4c3c33aadf3..a819ff9d9c7 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -229,6 +229,8 @@ icon = 'icons/obj/hydroponics/harvest.dmi' 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' amount_per_transfer_from_this = 1 possible_transfer_amounts = list(1) can_toggle_range = FALSE diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index fab8f29cb8e..6b37d95a66f 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -6,6 +6,7 @@ lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' icon_state = "syringe_0" + inhand_icon_state = "syringe_0" worn_icon_state = "pen" amount_per_transfer_from_this = 5 possible_transfer_amounts = list(5, 10, 15) @@ -136,7 +137,7 @@ /obj/item/reagent_containers/syringe/update_icon_state() var/rounded_vol = get_rounded_vol() - icon_state = "[base_icon_state]_[rounded_vol]" + icon_state = inhand_icon_state = "[base_icon_state]_[rounded_vol]" return ..() /obj/item/reagent_containers/syringe/update_overlays() @@ -217,6 +218,7 @@ name = "bluespace syringe" desc = "An advanced syringe that can hold 60 units of chemicals." icon_state = "bluespace_0" + inhand_icon_state = "bluespace_0" base_icon_state = "bluespace" amount_per_transfer_from_this = 20 possible_transfer_amounts = list(10, 20, 30, 40, 50, 60) @@ -226,6 +228,7 @@ name = "piercing syringe" desc = "A diamond-tipped syringe that pierces armor when launched at high velocity. It can hold up to 10 units." icon_state = "piercing_0" + inhand_icon_state = "piercing_0" base_icon_state = "piercing" volume = 10 possible_transfer_amounts = list(5, 10) diff --git a/code/modules/research/xenobiology/crossbreeding/_clothing.dm b/code/modules/research/xenobiology/crossbreeding/_clothing.dm index 5d7fec3f8e2..14faefa54f8 100644 --- a/code/modules/research/xenobiology/crossbreeding/_clothing.dm +++ b/code/modules/research/xenobiology/crossbreeding/_clothing.dm @@ -9,7 +9,7 @@ Slimecrossing Armor name = "rebreather mask" desc = "A transparent mask, resembling a conventional breath mask, but made of bluish slime. Seems to lack any air supply tube, though." icon_state = "slime" - inhand_icon_state = "slime" + inhand_icon_state = "b_mask" body_parts_covered = NONE w_class = WEIGHT_CLASS_SMALL clothing_traits = list(TRAIT_NOBREATH) @@ -97,7 +97,7 @@ Slimecrossing Armor desc = "An extremely addictive flower, full of peace magic." icon = 'icons/obj/xenobiology/slimecrossing.dmi' icon_state = "peaceflower" - inhand_icon_state = "peaceflower" + inhand_icon_state = null slot_flags = ITEM_SLOT_HEAD clothing_traits = list(TRAIT_PACIFISM) body_parts_covered = NONE @@ -132,7 +132,7 @@ Slimecrossing Armor icon_state = "adamsuit" icon = 'icons/obj/clothing/suits/armor.dmi' worn_icon = 'icons/mob/clothing/suits/armor.dmi' - inhand_icon_state = "adamsuit" + inhand_icon_state = null flags_inv = NONE obj_flags = IMMUTABLE_SLOW slowdown = 4 diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index 4c285946bd3..596d2392f5e 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -3,6 +3,7 @@ desc = "Retracts stuff." icon = 'icons/obj/medical/surgery_tools.dmi' icon_state = "retractor" + inhand_icon_state = "retractor" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' custom_materials = list(/datum/material/iron = 6000, /datum/material/glass = 3000, /datum/material/silver = 3000) @@ -22,6 +23,7 @@ desc = "You think you have seen this before." icon = 'icons/obj/medical/surgery_tools.dmi' icon_state = "hemostat" + inhand_icon_state = "hemostat" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' custom_materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500, /datum/material/silver = 2500) @@ -43,6 +45,7 @@ desc = "This stops bleeding." icon = 'icons/obj/medical/surgery_tools.dmi' icon_state = "cautery" + inhand_icon_state = "cautery" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' custom_materials = list(/datum/material/iron = 2500, /datum/material/glass = 750, /datum/material/silver = 1250) @@ -66,6 +69,7 @@ desc = "It projects a high power laser used for medical applications." icon = 'icons/obj/medical/surgery_tools.dmi' icon_state = "e_cautery" + inhand_icon_state = "e_cautery" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' custom_materials = list(/datum/material/iron = 4000, /datum/material/glass = 2000, /datum/material/plasma = 2000, /datum/material/uranium = 3000, /datum/material/titanium = 3000) @@ -108,6 +112,7 @@ desc = "You can drill using this item. You dig?" icon = 'icons/obj/medical/surgery_tools.dmi' icon_state = "drill" + inhand_icon_state = "drill" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' hitsound = 'sound/weapons/circsawhit.ogg' @@ -148,6 +153,7 @@ desc = "Cut, cut, and once more cut." icon = 'icons/obj/medical/surgery_tools.dmi' icon_state = "scalpel" + inhand_icon_state = "scalpel" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' flags_1 = CONDUCT_1 @@ -191,6 +197,7 @@ desc = "For heavy duty cutting." icon = 'icons/obj/medical/surgery_tools.dmi' icon_state = "saw" + inhand_icon_state = "saw" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' hitsound = 'sound/weapons/circsawhit.ogg' @@ -296,6 +303,7 @@ name = "laser scalpel" desc = "An advanced scalpel which uses laser technology to cut." icon_state = "e_scalpel" + inhand_icon_state = "e_scalpel" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' custom_materials = list(/datum/material/iron = 6000, /datum/material/glass = 1500, /datum/material/silver = 2000, /datum/material/gold = 1500, /datum/material/diamond = 200, /datum/material/titanium = 4000) @@ -349,6 +357,7 @@ icon = 'icons/obj/medical/surgery_tools.dmi' custom_materials = list(/datum/material/iron = 12000, /datum/material/glass = 4000, /datum/material/silver = 4000, /datum/material/titanium = 5000) icon_state = "adv_retractor" + inhand_icon_state = "adv_retractor" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' w_class = WEIGHT_CLASS_NORMAL diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 23a80f57ede..be49809e53f 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -110,6 +110,7 @@ #include "hydroponics_harvest.dm" #include "hydroponics_self_mutations.dm" #include "hydroponics_validate_genes.dm" +#include "inhands.dm" #include "keybinding_init.dm" #include "knockoff_component.dm" #include "limbsanity.dm" diff --git a/code/modules/unit_tests/dummy_spawn.dm b/code/modules/unit_tests/dummy_spawn.dm index f708cd181da..ed359f962b7 100644 --- a/code/modules/unit_tests/dummy_spawn.dm +++ b/code/modules/unit_tests/dummy_spawn.dm @@ -18,7 +18,7 @@ for(var/datum/job/one_two_three as anything in subtypesof(/datum/job)) var/datum/job/can_you_hear_this = SSjob.GetJobType(one_two_three) if(!can_you_hear_this) - log_world("Job type [one_two_three] could not be retrieved from SSjob") + log_test("\tJob type [one_two_three] could not be retrieved from SSjob") continue lad.job = can_you_hear_this lad.dress_up_as_job(can_you_hear_this, TRUE) diff --git a/code/modules/unit_tests/greyscale_config.dm b/code/modules/unit_tests/greyscale_config.dm index 625c1efcdc2..9c5106be5b0 100644 --- a/code/modules/unit_tests/greyscale_config.dm +++ b/code/modules/unit_tests/greyscale_config.dm @@ -3,6 +3,8 @@ /datum/unit_test/greyscale_item_icon_states/Run() for(var/obj/item/item_path as anything in subtypesof(/obj/item)) + if(isnull(initial(item_path.greyscale_colors))) + continue //All configs depend on greyscale_colors being defined. var/held_icon_state = initial(item_path.inhand_icon_state) || initial(item_path.icon_state) var/datum/greyscale_config/lefthand = SSgreyscale.configurations["[initial(item_path.greyscale_config_inhand_left)]"] diff --git a/code/modules/unit_tests/inhands.dm b/code/modules/unit_tests/inhands.dm new file mode 100644 index 00000000000..6dd002846c1 --- /dev/null +++ b/code/modules/unit_tests/inhands.dm @@ -0,0 +1,91 @@ +/// Makes sure items with defined inhand_icon_states... actually have icons that exist! +/datum/unit_test/defined_inhand_icon_states + var/static/list/possible_icon_states = list() + var/fallback_log_message + var/unset_inhand_var_message + +/datum/unit_test/defined_inhand_icon_states/proc/generate_possible_icon_states_list(directory_path) + if(!directory_path) + directory_path = "icons/mob/inhands/" + for(var/file_path in flist(directory_path)) + if(findtext(file_path, ".dmi")) + for(var/sprite_icon in icon_states("[directory_path][file_path]", 1)) //2nd arg = 1 enables 64x64+ icon support, otherwise you'll end up with "sword0_1" instead of "sword" + possible_icon_states[sprite_icon] += list("[directory_path][file_path]") + else + possible_icon_states += generate_possible_icon_states_list("[directory_path][file_path]") + +/datum/unit_test/defined_inhand_icon_states/Run() + generate_possible_icon_states_list() + + for(var/obj/item/item_path as anything in subtypesof(/obj/item)) + if(initial(item_path.item_flags) & ABSTRACT) + continue + + var/skip_left + var/skip_right + if(initial(item_path.greyscale_colors)) //greyscale stuff has it's own unit test. + skip_left = initial(item_path.greyscale_config_inhand_left) + skip_right = initial(item_path.greyscale_config_inhand_right) + if(skip_left && skip_right) + continue + + var/lefthand_file = initial(item_path.lefthand_file) + var/righthand_file = initial(item_path.righthand_file) + + var/held_icon_state = initial(item_path.inhand_icon_state) + if(!held_icon_state) + var/base_icon_state = initial(item_path.icon_state) + if(!isnull(base_icon_state) && lefthand_file && righthand_file) //Suggest inhand icons that match with the icon_state var. + var/missing_var_message + if(base_icon_state in possible_icon_states) + for(var/file_place in possible_icon_states[base_icon_state]) + missing_var_message += (missing_var_message ? " & '[file_place]'" : " - Possible matching sprites for \"[base_icon_state]\" found in: '[file_place]'") + unset_inhand_var_message += "\n\t[item_path] does not have an inhand_icon_state value[missing_var_message]" + continue + + var/match_message = (held_icon_state in possible_icon_states) ? TRUE : null + if(match_message) + match_message = null + for(var/file_place in possible_icon_states[held_icon_state]) + match_message += (match_message ? " & '[file_place]'" : " - Matching sprite found in: '[file_place]'") + + if(!(skip_left || skip_right) && !lefthand_file && !righthand_file) + TEST_FAIL("Missing both icon files for [item_path].\n\tinhand_icon_state = \"[held_icon_state]\"[match_message]") + continue + + var/missing_left + var/left_fallback + if(!skip_left) + if(!lefthand_file) + TEST_FAIL("Missing left inhand icon file for [item_path].\n\tinhand_icon_state = \"[held_icon_state]\"[match_message]") + else + missing_left = !("[lefthand_file]" in possible_icon_states[held_icon_state]) + if(missing_left && ("[lefthand_file]" in possible_icon_states[""])) + left_fallback = TRUE + + var/missing_right + var/right_fallback + if(!skip_right) + if(!righthand_file) + TEST_FAIL("Missing right inhand icon file for [item_path].\n\tinhand_icon_state = \"[held_icon_state]\"[match_message]") + else + missing_right = !("[righthand_file]" in possible_icon_states[held_icon_state]) + if(missing_right && ("[righthand_file]" in possible_icon_states[""])) + right_fallback = TRUE + + if(missing_right && missing_left) + if(!match_message && right_fallback && left_fallback) + fallback_log_message += "\n\t[item_path] has invalid value, using fallback icon.\n\tinhand_icon_state = \"[held_icon_state]\"" + continue + TEST_FAIL("Missing inhand sprites for [item_path] in both '[lefthand_file]' & '[righthand_file]'.\n\tinhand_icon_state = \"[held_icon_state]\"[match_message]") + else if(missing_left) + TEST_FAIL("Missing left inhand sprite for [item_path] in '[lefthand_file]'[left_fallback ? ", using fallback icon" : null].\n\tinhand_icon_state = \"[held_icon_state]\"[match_message]") + else if(missing_right) + TEST_FAIL("Missing right inhand sprite for [item_path] in '[righthand_file]'[right_fallback ? ", using fallback icon" : null].\n\tinhand_icon_state = \"[held_icon_state]\"[match_message]") + + if(fallback_log_message) + TEST_FAIL("Invalid inhand_icon_state values should be set to null if there isn't a valid icon.[fallback_log_message]") + + if(unset_inhand_var_message) + log_test("\tNotice - Possible inhand icon matches found. It is best to be explicit with inhand sprite values.[unset_inhand_var_message]") + diff --git a/code/modules/unit_tests/unit_test.dm b/code/modules/unit_tests/unit_test.dm index 6b525d7b9dc..f7585804a26 100644 --- a/code/modules/unit_tests/unit_test.dm +++ b/code/modules/unit_tests/unit_test.dm @@ -97,7 +97,7 @@ GLOBAL_LIST_EMPTY(unit_test_mapping_logs) if (fexists(filename)) var/data_filename = "data/screenshots/[path_prefix]_[name].png" fcopy(icon, data_filename) - log_test("[path_prefix]_[name] was found, putting in data/screenshots") + log_test("\t[path_prefix]_[name] was found, putting in data/screenshots") else if (fexists("code")) // We are probably running in a local build fcopy(icon, filename) @@ -106,7 +106,7 @@ GLOBAL_LIST_EMPTY(unit_test_mapping_logs) // We are probably running in real CI, so just pretend it worked and move on fcopy(icon, "data/screenshots_new/[path_prefix]_[name].png") - log_test("[path_prefix]_[name] was put in data/screenshots_new") + log_test("\t[path_prefix]_[name] was put in data/screenshots_new") /// Logs a test message. Will use GitHub action syntax found at https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions /datum/unit_test/proc/log_for_test(text, priority, file, line) diff --git a/code/modules/uplink/uplink_devices.dm b/code/modules/uplink/uplink_devices.dm index 5189ac5efa0..c9c2fa3174d 100644 --- a/code/modules/uplink/uplink_devices.dm +++ b/code/modules/uplink/uplink_devices.dm @@ -7,7 +7,7 @@ name = "station bounced radio" icon = 'icons/obj/radio.dmi' icon_state = "radio" - inhand_icon_state = "walkietalkie" + inhand_icon_state = "radio" worn_icon_state = "radio" desc = "A basic handheld radio that communicates with local telecommunication networks." lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' diff --git a/code/modules/wiremod/core/component.dm b/code/modules/wiremod/core/component.dm index d9e2dbb92dd..19ad27da45a 100644 --- a/code/modules/wiremod/core/component.dm +++ b/code/modules/wiremod/core/component.dm @@ -12,6 +12,8 @@ icon = 'icons/obj/module.dmi' icon_state = "component" inhand_icon_state = "electronic" + lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' /// The name of the component shown on the UI var/display_name = "Generic" diff --git a/code/modules/wiremod/core/integrated_circuit.dm b/code/modules/wiremod/core/integrated_circuit.dm index 2f69de6313e..9caf07da840 100644 --- a/code/modules/wiremod/core/integrated_circuit.dm +++ b/code/modules/wiremod/core/integrated_circuit.dm @@ -14,6 +14,8 @@ GLOBAL_LIST_EMPTY_TYPED(integrated_circuits, /obj/item/integrated_circuit) icon = 'icons/obj/module.dmi' icon_state = "integrated_circuit" inhand_icon_state = "electronic" + lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' /// The name that appears on the shell. var/display_name = "" diff --git a/code/modules/wiremod/core/usb_cable.dm b/code/modules/wiremod/core/usb_cable.dm index ed0f1053a3d..e0f0a82a4c3 100644 --- a/code/modules/wiremod/core/usb_cable.dm +++ b/code/modules/wiremod/core/usb_cable.dm @@ -4,7 +4,9 @@ desc = "A cable that can connect integrated circuits to anything with a USB port, such as computers and machines." icon = 'icons/obj/wiremod.dmi' icon_state = "usb_cable" - inhand_icon_state = "coil" + inhand_icon_state = "coil_yellow" + lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' base_icon_state = "coil" w_class = WEIGHT_CLASS_TINY custom_materials = list(/datum/material/iron = 75) diff --git a/icons/mob/clothing/belt_mirror.dmi b/icons/mob/clothing/belt_mirror.dmi index 42c4aff8cf7..27504d8ea34 100644 Binary files a/icons/mob/clothing/belt_mirror.dmi and b/icons/mob/clothing/belt_mirror.dmi differ diff --git a/icons/mob/inhands/clothing/glasses_lefthand.dmi b/icons/mob/inhands/clothing/glasses_lefthand.dmi index a6fa6121cf3..76eb0131be2 100644 Binary files a/icons/mob/inhands/clothing/glasses_lefthand.dmi and b/icons/mob/inhands/clothing/glasses_lefthand.dmi differ diff --git a/icons/mob/inhands/clothing/glasses_righthand.dmi b/icons/mob/inhands/clothing/glasses_righthand.dmi index b4de970ff2b..d080230eb9e 100644 Binary files a/icons/mob/inhands/clothing/glasses_righthand.dmi and b/icons/mob/inhands/clothing/glasses_righthand.dmi differ diff --git a/icons/mob/inhands/clothing/gloves_lefthand.dmi b/icons/mob/inhands/clothing/gloves_lefthand.dmi index bcf74323bbf..9ffc8a03cfe 100644 Binary files a/icons/mob/inhands/clothing/gloves_lefthand.dmi and b/icons/mob/inhands/clothing/gloves_lefthand.dmi differ diff --git a/icons/mob/inhands/clothing/gloves_righthand.dmi b/icons/mob/inhands/clothing/gloves_righthand.dmi index f7bfae8e0c7..70c6e6fd1f0 100644 Binary files a/icons/mob/inhands/clothing/gloves_righthand.dmi and b/icons/mob/inhands/clothing/gloves_righthand.dmi differ diff --git a/icons/mob/inhands/clothing/hats_lefthand.dmi b/icons/mob/inhands/clothing/hats_lefthand.dmi index fccb54acd0d..4d0904ba1f2 100644 Binary files a/icons/mob/inhands/clothing/hats_lefthand.dmi and b/icons/mob/inhands/clothing/hats_lefthand.dmi differ diff --git a/icons/mob/inhands/clothing/hats_righthand.dmi b/icons/mob/inhands/clothing/hats_righthand.dmi index 90cee0d22f3..2e048ba28db 100644 Binary files a/icons/mob/inhands/clothing/hats_righthand.dmi and b/icons/mob/inhands/clothing/hats_righthand.dmi differ diff --git a/icons/mob/inhands/clothing/masks_lefthand.dmi b/icons/mob/inhands/clothing/masks_lefthand.dmi index 42c74be1b36..64fcf4d70bd 100644 Binary files a/icons/mob/inhands/clothing/masks_lefthand.dmi and b/icons/mob/inhands/clothing/masks_lefthand.dmi differ diff --git a/icons/mob/inhands/clothing/masks_righthand.dmi b/icons/mob/inhands/clothing/masks_righthand.dmi index afc02b6d6d1..99f45bd1b17 100644 Binary files a/icons/mob/inhands/clothing/masks_righthand.dmi and b/icons/mob/inhands/clothing/masks_righthand.dmi differ diff --git a/icons/mob/inhands/clothing/shoes_lefthand.dmi b/icons/mob/inhands/clothing/shoes_lefthand.dmi index d5b1b042fce..705e588bd04 100644 Binary files a/icons/mob/inhands/clothing/shoes_lefthand.dmi and b/icons/mob/inhands/clothing/shoes_lefthand.dmi differ diff --git a/icons/mob/inhands/clothing/shoes_righthand.dmi b/icons/mob/inhands/clothing/shoes_righthand.dmi index 2fa3f218689..b4d074ef7bd 100644 Binary files a/icons/mob/inhands/clothing/shoes_righthand.dmi and b/icons/mob/inhands/clothing/shoes_righthand.dmi differ diff --git a/icons/mob/inhands/clothing/suits_lefthand.dmi b/icons/mob/inhands/clothing/suits_lefthand.dmi index 705b3587a16..9cc065f4290 100644 Binary files a/icons/mob/inhands/clothing/suits_lefthand.dmi and b/icons/mob/inhands/clothing/suits_lefthand.dmi differ diff --git a/icons/mob/inhands/clothing/suits_righthand.dmi b/icons/mob/inhands/clothing/suits_righthand.dmi index 52835b9711f..9d1bb1cf75b 100644 Binary files a/icons/mob/inhands/clothing/suits_righthand.dmi and b/icons/mob/inhands/clothing/suits_righthand.dmi differ diff --git a/icons/mob/inhands/equipment/belt_lefthand.dmi b/icons/mob/inhands/equipment/belt_lefthand.dmi index 0a5a460a910..108dd919a3f 100644 Binary files a/icons/mob/inhands/equipment/belt_lefthand.dmi and b/icons/mob/inhands/equipment/belt_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/belt_righthand.dmi b/icons/mob/inhands/equipment/belt_righthand.dmi index 568aa3d08e3..ad1e692cbe0 100644 Binary files a/icons/mob/inhands/equipment/belt_righthand.dmi and b/icons/mob/inhands/equipment/belt_righthand.dmi differ diff --git a/icons/mob/inhands/equipment/jetpacks_lefthand.dmi b/icons/mob/inhands/equipment/jetpacks_lefthand.dmi index c360f5d3314..310f8763d24 100644 Binary files a/icons/mob/inhands/equipment/jetpacks_lefthand.dmi and b/icons/mob/inhands/equipment/jetpacks_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/jetpacks_righthand.dmi b/icons/mob/inhands/equipment/jetpacks_righthand.dmi index dc045431efc..c4ba1f356c0 100644 Binary files a/icons/mob/inhands/equipment/jetpacks_righthand.dmi and b/icons/mob/inhands/equipment/jetpacks_righthand.dmi differ diff --git a/icons/mob/inhands/equipment/medical_lefthand.dmi b/icons/mob/inhands/equipment/medical_lefthand.dmi index 83ae1987697..e7965575bd0 100644 Binary files a/icons/mob/inhands/equipment/medical_lefthand.dmi and b/icons/mob/inhands/equipment/medical_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/medical_righthand.dmi b/icons/mob/inhands/equipment/medical_righthand.dmi index fb21cef0b6f..918e465493e 100644 Binary files a/icons/mob/inhands/equipment/medical_righthand.dmi and b/icons/mob/inhands/equipment/medical_righthand.dmi differ diff --git a/icons/mob/inhands/equipment/security_lefthand.dmi b/icons/mob/inhands/equipment/security_lefthand.dmi index 0acc816664d..17bd1d3fc10 100644 Binary files a/icons/mob/inhands/equipment/security_lefthand.dmi and b/icons/mob/inhands/equipment/security_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/security_righthand.dmi b/icons/mob/inhands/equipment/security_righthand.dmi index 351c1b38c5b..04136c3cc39 100644 Binary files a/icons/mob/inhands/equipment/security_righthand.dmi and b/icons/mob/inhands/equipment/security_righthand.dmi differ diff --git a/icons/mob/inhands/equipment/tools_lefthand.dmi b/icons/mob/inhands/equipment/tools_lefthand.dmi index aa47817fc26..ffd03a36648 100644 Binary files a/icons/mob/inhands/equipment/tools_lefthand.dmi and b/icons/mob/inhands/equipment/tools_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/tools_righthand.dmi b/icons/mob/inhands/equipment/tools_righthand.dmi index 41b6b151a7f..00749175946 100644 Binary files a/icons/mob/inhands/equipment/tools_righthand.dmi and b/icons/mob/inhands/equipment/tools_righthand.dmi differ diff --git a/icons/mob/inhands/items/devices_lefthand.dmi b/icons/mob/inhands/items/devices_lefthand.dmi index bd1f1fcfdc0..79228d50b77 100644 Binary files a/icons/mob/inhands/items/devices_lefthand.dmi and b/icons/mob/inhands/items/devices_lefthand.dmi differ diff --git a/icons/mob/inhands/items/devices_righthand.dmi b/icons/mob/inhands/items/devices_righthand.dmi index 81a21c2356d..7232c0b1bab 100644 Binary files a/icons/mob/inhands/items/devices_righthand.dmi and b/icons/mob/inhands/items/devices_righthand.dmi differ diff --git a/icons/mob/inhands/items/drinks_lefthand.dmi b/icons/mob/inhands/items/drinks_lefthand.dmi index c4fb929d527..4c0a6f22e15 100644 Binary files a/icons/mob/inhands/items/drinks_lefthand.dmi and b/icons/mob/inhands/items/drinks_lefthand.dmi differ diff --git a/icons/mob/inhands/items/drinks_righthand.dmi b/icons/mob/inhands/items/drinks_righthand.dmi index 4f01313df37..08e69d0e64a 100644 Binary files a/icons/mob/inhands/items/drinks_righthand.dmi and b/icons/mob/inhands/items/drinks_righthand.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index 93960307164..e7488be76fb 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index 1bd1d3edd83..a148b65149b 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi index fa2b7256965..f62424cc0fd 100644 Binary files a/icons/mob/inhands/weapons/guns_lefthand.dmi and b/icons/mob/inhands/weapons/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi b/icons/mob/inhands/weapons/guns_righthand.dmi index c9bfafef1a0..719e9af5e45 100644 Binary files a/icons/mob/inhands/weapons/guns_righthand.dmi and b/icons/mob/inhands/weapons/guns_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/swords_lefthand.dmi b/icons/mob/inhands/weapons/swords_lefthand.dmi index 13666b6ebce..0546e5adfa9 100644 Binary files a/icons/mob/inhands/weapons/swords_lefthand.dmi and b/icons/mob/inhands/weapons/swords_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/swords_righthand.dmi b/icons/mob/inhands/weapons/swords_righthand.dmi index 93a2814ceea..fdf3cce8510 100644 Binary files a/icons/mob/inhands/weapons/swords_righthand.dmi and b/icons/mob/inhands/weapons/swords_righthand.dmi differ diff --git a/icons/obj/clothing/belt_overlays.dmi b/icons/obj/clothing/belt_overlays.dmi index 21f0e9dbd43..3e276fdf52a 100644 Binary files a/icons/obj/clothing/belt_overlays.dmi and b/icons/obj/clothing/belt_overlays.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 0688b2ad6a2..7b4333e8db0 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/weapons/transforming_energy.dmi b/icons/obj/weapons/transforming_energy.dmi index 3c3f0ca1060..6fcedfaef46 100644 Binary files a/icons/obj/weapons/transforming_energy.dmi and b/icons/obj/weapons/transforming_energy.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 1aa5e25946a..330643cc63d 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2103,7 +2103,6 @@ #include "code\modules\admin\verbs\atmosdebug.dm" #include "code\modules\admin\verbs\beakerpanel.dm" #include "code\modules\admin\verbs\borgpanel.dm" -#include "code\modules\admin\verbs\BrokenInhands.dm" #include "code\modules\admin\verbs\cinematic.dm" #include "code\modules\admin\verbs\color_blind_test.dm" #include "code\modules\admin\verbs\commandreport.dm" diff --git a/tools/deploy.sh b/tools/deploy.sh index 75300b0aaf2..18e6155855b 100755 --- a/tools/deploy.sh +++ b/tools/deploy.sh @@ -11,6 +11,7 @@ fi mkdir -p \ $1/_maps \ + $1/icons/mob/inhands \ $1/icons/runtime \ $1/sound/runtime \ $1/strings \ @@ -24,6 +25,7 @@ fi cp tgstation.dmb tgstation.rsc $1/ cp -r _maps/* $1/_maps/ +cp -r icons/mob/inhands/* $1/icons/mob/inhands/ cp -r icons/runtime/* $1/icons/runtime/ cp -r sound/runtime/* $1/sound/runtime/ cp -r strings/* $1/strings/