diff --git a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm
index 5aff7b4501b5..cda541385b56 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm
@@ -165,7 +165,7 @@
/turf/open/floor/mineral/plastitanium/red/brig,
/area/overmap_encounter/planetoid/cave/explored)
"bh" = (
-/obj/item/clothing/under/rank/civilian/cookjorts,
+/obj/item/clothing/under/shorts/cookjorts,
/turf/closed/mineral/random/jungle,
/area/overmap_encounter/planetoid/cave/explored)
"bj" = (
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_SPOOKYCRASH.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_SPOOKYCRASH.dmm
index 8b39b0a6faa8..dfb41a5b9121 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_SPOOKYCRASH.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_SPOOKYCRASH.dmm
@@ -241,7 +241,6 @@
},
/obj/effect/mob_spawn/human/corpse/damaged,
/obj/item/clothing/under/rank/civilian/chaplain,
-/obj/item/clothing/suit/chaplainsuit/witchhunter,
/obj/item/clothing/head/helmet/chaplain/witchunter_hat,
/obj/effect/decal/cleanable/blood,
/obj/effect/decal/cleanable/glass,
diff --git a/_maps/outpost/nanotrasen_asteroid.dmm b/_maps/outpost/nanotrasen_asteroid.dmm
index 987c9f970948..1bfabc5ee6c5 100644
--- a/_maps/outpost/nanotrasen_asteroid.dmm
+++ b/_maps/outpost/nanotrasen_asteroid.dmm
@@ -14592,7 +14592,7 @@
dir = 8;
pixel_x = 28
},
-/obj/item/clothing/under/rank/civilian/cookjorts,
+/obj/item/clothing/under/shorts/cookjorts,
/obj/item/clothing/shoes/cookflops,
/obj/item/clothing/suit/toggle/chef,
/obj/item/clothing/under/rank/civilian/chef,
diff --git a/_maps/shuttles/minutemen/minutemen_vela.dmm b/_maps/shuttles/minutemen/minutemen_vela.dmm
index d46365996e2e..200a677ea101 100644
--- a/_maps/shuttles/minutemen/minutemen_vela.dmm
+++ b/_maps/shuttles/minutemen/minutemen_vela.dmm
@@ -7779,9 +7779,9 @@
/obj/effect/turf_decal/corner_steel_grid{
dir = 9
},
-/obj/item/clothing/under/rank/civilian/cookjorts,
-/obj/item/clothing/under/rank/civilian/cookjorts,
-/obj/item/clothing/under/rank/civilian/cookjorts,
+/obj/item/clothing/under/shorts/cookjorts,
+/obj/item/clothing/under/shorts/cookjorts,
+/obj/item/clothing/under/shorts/cookjorts,
/turf/open/floor/pod/dark,
/area/ship/cargo)
"Qg" = (
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm
index eb0b34fcf3d7..24e603883385 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm
@@ -4155,7 +4155,7 @@
dir = 8;
pixel_x = 28
},
-/obj/item/clothing/under/rank/civilian/cookjorts,
+/obj/item/clothing/under/shorts/cookjorts,
/obj/item/clothing/shoes/cookflops,
/obj/item/clothing/suit/toggle/chef,
/obj/item/clothing/under/rank/civilian/chef,
diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm
index ffee85cbf529..ab3a76d2ddff 100644
--- a/code/datums/martial/krav_maga.dm
+++ b/code/datums/martial/krav_maga.dm
@@ -203,7 +203,6 @@
name = "krav maga gloves"
desc = "These gloves can teach you to perform Krav Maga using nanochips."
icon_state = "fightgloves"
- item_state = "fightgloves"
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
@@ -214,7 +213,6 @@
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"
- item_state = "blackgloves"
siemens_coefficient = 0
permeability_coefficient = 0.05
strip_delay = 80
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 8dbc880f740a..eb23f1060be3 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -1,7 +1,7 @@
/obj/machinery/door
name = "door"
desc = "It opens and closes."
- icon = 'icons/obj/doors/Doorint.dmi'
+ icon = 'icons/obj/doors/doorf.dmi'
icon_state = "door1"
base_icon_state = "door"
opacity = TRUE
diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm
index d54bc3c476af..dbf055d98079 100644
--- a/code/game/machinery/droneDispenser.dm
+++ b/code/game/machinery/droneDispenser.dm
@@ -109,12 +109,12 @@
/obj/machinery/droneDispenser/swarmer
name = "swarmer fabricator"
desc = "An alien machine of unknown origin. It whirs and hums with green-blue light, the air above it shimmering."
- icon = 'icons/obj/machines/gateway.dmi'
- icon_state = "toffcenter"
- icon_off = "toffcenter"
- icon_on = "toffcenter"
- icon_recharging = "toffcenter"
- icon_creating = "offcenter"
+ icon = 'icons/obj/objects.dmi'
+ icon_state = "hivebot_fab"
+ icon_off = "hivebot_fab"
+ icon_on = "hivebot_fab"
+ icon_recharging = "hivebot_fab"
+ icon_creating = "hivebot_fab_on"
metal_cost = 0
glass_cost = 0
cooldownTime = 300 //30 seconds
diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm
index a50e72d9fcb7..678f1e4d4766 100644
--- a/code/game/objects/effects/contraband.dm
+++ b/code/game/objects/effects/contraband.dm
@@ -72,6 +72,7 @@
var/original_name
desc = "A large piece of space-resistant printed paper."
icon = 'icons/obj/contraband.dmi'
+ icon_state = "poster_ripped"
anchored = TRUE
var/ruined = FALSE
/// how do we want to handle the random poster pool? POSTER_SUBTYPES chooses randomly from subtypes, AKA how it was handled before
diff --git a/code/game/objects/effects/decals/cleanable/robots.dm b/code/game/objects/effects/decals/cleanable/robots.dm
index f283de309cc8..798eeeb9b166 100644
--- a/code/game/objects/effects/decals/cleanable/robots.dm
+++ b/code/game/objects/effects/decals/cleanable/robots.dm
@@ -35,12 +35,12 @@
random_icon_states = list("gibarm", "gibleg")
/obj/effect/decal/cleanable/robot_debris/up
- icon_state = "gibup1"
- random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7","gibup1","gibup1")
+ icon_state = "gibup"
+ random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7","gibup","gibup")
/obj/effect/decal/cleanable/robot_debris/down
- icon_state = "gibdown1"
- random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7","gibdown1","gibdown1")
+ icon_state = "gibdown"
+ random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7","gibdown","gibdown")
/obj/effect/decal/cleanable/oil
name = "motor oil"
diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm
index 173764fdf198..c14086ff0f3b 100644
--- a/code/game/objects/effects/decals/crayon.dm
+++ b/code/game/objects/effects/decals/crayon.dm
@@ -37,6 +37,7 @@ GLOBAL_LIST(gang_tags)
name = "Leet Like Jeff K gang tag"
desc = "Looks like someone's claimed this area for Leet Like Jeff K."
icon = 'icons/obj/gang/tags.dmi'
+ icon_state = "B_tag"
layer = BELOW_MOB_LAYER
var/datum/team/gang/my_gang
diff --git a/code/game/objects/effects/decals/decal.dm b/code/game/objects/effects/decals/decal.dm
index a3ad1f1af13d..975f94102ecf 100644
--- a/code/game/objects/effects/decals/decal.dm
+++ b/code/game/objects/effects/decals/decal.dm
@@ -40,7 +40,7 @@
/obj/effect/turf_decal
icon = 'icons/turf/decals.dmi'
- icon_state = "warningline"
+ icon_state = "warningfulltile"
plane = FLOOR_PLANE
layer = TURF_DECAL_LAYER
var/detail_overlay
diff --git a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm
index b5c6f9fe0eec..58aebbc598ba 100644
--- a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm
+++ b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm
@@ -416,14 +416,6 @@ TURF_DECAL_COLOR_HELPER(transparent/inteqbrown, "#4b2a18", 140)
icon_state = "plaque"
icon = 'icons/turf/decals.dmi'
-/obj/effect/turf_decal/asteroid
- name = "random asteroid rubble"
- icon_state = "asteroid0"
-
-/obj/effect/turf_decal/asteroid/New()
- icon_state = "asteroid[rand(0,9)]"
- ..()
-
/obj/effect/turf_decal/chapel
name = "chapel"
icon_state = "chapel"
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index c8332e1dd0cd..b08d7bf6737c 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -187,7 +187,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
/obj/effect/landmark/start/psychologist
name = "Psychologist"
- icon_state = "Psychologist"
+ icon_state = "Curator"
/obj/effect/landmark/start/chaplain
name = "Chaplain"
diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm
index b21c0b7073d5..73b96c29768c 100644
--- a/code/game/objects/effects/misc.dm
+++ b/code/game/objects/effects/misc.dm
@@ -1,12 +1,3 @@
-//The effect when you wrap a dead body in gift wrap
-/obj/effect/spresent
- name = "strange present"
- desc = "It's a ... present?"
- icon = 'icons/obj/items_and_weapons.dmi'
- icon_state = "strangepresent"
- density = TRUE
- anchored = FALSE
-
/obj/effect/beam
name = "beam"
var/def_zone
@@ -83,7 +74,6 @@
/obj/effect/abstract/marker/at
name = "active turf marker"
-
/obj/effect/dummy/lighting_obj
name = "lighting fx obj"
desc = "Tell a coder if you're seeing this."
diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm
index 8c8c8f900aab..4913f9b835ce 100644
--- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm
+++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm
@@ -115,17 +115,14 @@
/obj/effect/temp_visual/dir_setting/wraith
name = "shadow"
icon = 'icons/mob/mob.dmi'
- icon_state = "phase_shift2"
+ icon_state = "revenant_idle"
duration = 6
/obj/effect/temp_visual/dir_setting/wraith/angelic
- icon_state = "phase_shift2_angelic"
/obj/effect/temp_visual/dir_setting/wraith/out
- icon_state = "phase_shift"
/obj/effect/temp_visual/dir_setting/wraith/out/angelic
- icon_state = "phase_shift_angelic"
/obj/effect/temp_visual/dir_setting/tailsweep
icon_state = "tailsweep"
@@ -157,7 +154,7 @@
fades = TRUE
/obj/effect/temp_visual/dir_setting/curse/hand
- icon_state = "cursehand"
+ icon_state = "cursehand0"
/obj/effect/temp_visual/dir_setting/space_wind
icon = 'icons/effects/atmospherics.dmi'
@@ -174,7 +171,7 @@
name = "\improper Bluespace energy wave"
desc = "A massive, rippling wave of bluepace energy, all rapidly exhausting itself the moment it leaves the concentrated beam of light."
icon = 'icons/effects/beam_splash.dmi'
- icon_state = "beam_splash_l"
+ icon_state = "beam_splash_e"
layer = ABOVE_ALL_MOB_LAYER
pixel_y = -16
duration = 50
diff --git a/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm b/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm
index 8fe5e7cf5340..b850681c713f 100644
--- a/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm
+++ b/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm
@@ -6,7 +6,7 @@
icon_state = "muzzle_laser"
/obj/effect/projectile/muzzle/laser/blue
- icon_state = "muzzle_laser_blue"
+ icon_state = "muzzle_blue"
/obj/effect/projectile/muzzle/laser/emitter
name = "emitter flash"
diff --git a/code/game/objects/items/binoculars.dm b/code/game/objects/items/binoculars.dm
index 6d04e2e505ff..d7fca8e0048c 100644
--- a/code/game/objects/items/binoculars.dm
+++ b/code/game/objects/items/binoculars.dm
@@ -3,8 +3,6 @@
desc = "Used for long-distance surveillance."
item_state = "binoculars"
icon_state = "binoculars"
- lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/items_righthand.dmi'
slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
var/mob/listeningTo
diff --git a/code/game/objects/items/chrono_eraser.dm b/code/game/objects/items/chrono_eraser.dm
index 888bebac8095..f63a5e9dd45a 100644
--- a/code/game/objects/items/chrono_eraser.dm
+++ b/code/game/objects/items/chrono_eraser.dm
@@ -147,7 +147,7 @@
/obj/item/ammo_casing/energy/chrono_beam
name = "eradication beam"
projectile_type = /obj/projectile/energy/chrono_beam
- icon_state = "chronobolt"
+ icon_state = "caseless"
e_cost = 0
var/obj/item/gun/energy/chrono_gun/gun
diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm
index a60600b3661f..0258e86e8a7f 100644
--- a/code/game/objects/items/cigs_lighters.dm
+++ b/code/game/objects/items/cigs_lighters.dm
@@ -45,7 +45,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
damtype = "fire"
force = 3
hitsound = 'sound/items/welder.ogg'
- item_state = "cigon"
name = "lit [initial(name)]"
desc = "A [initial(name)]. This one is lit."
attack_verb = list("burnt","singed")
@@ -59,7 +58,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
damtype = "brute"
force = initial(force)
icon_state = "match_burnt"
- item_state = "cigoff"
name = "burnt [initial(name)]"
desc = "A [initial(name)]. This one has seen better days."
attack_verb = list("flicked")
@@ -116,7 +114,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
desc = "A roll of tobacco and nicotine."
icon_state = "cigoff"
throw_speed = 0.5
- item_state = "cigoff"
w_class = WEIGHT_CLASS_TINY
body_parts_covered = null
grind_results = list()
@@ -418,7 +415,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_off = "cigaroff" //make sure to add positional sprites in icons/obj/cigarettes.dmi if you add more.
type_butt = /obj/item/cigbutt/cigarbutt
throw_speed = 0.5
- item_state = "cigaroff"
smoketime = 300 // 11 minutes
chem_volume = 40
list_reagents = list(/datum/reagent/drug/nicotine = 25)
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 584bbcc1227f..6528ef4851c7 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -253,7 +253,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"
- item_state = "bananalamp"
+ item_state = "lampgreen"
// FLARES
diff --git a/code/game/objects/items/devices/pressureplates.dm b/code/game/objects/items/devices/pressureplates.dm
index 60cfe4eb89b3..6fa07cf3f8ce 100644
--- a/code/game/objects/items/devices/pressureplates.dm
+++ b/code/game/objects/items/devices/pressureplates.dm
@@ -2,7 +2,6 @@
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'
- item_state = "flash"
icon_state = "pressureplate"
layer = LOW_OBJ_LAYER
var/trigger_mob = TRUE
diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm
index 0904cdef3676..554206bf4453 100644
--- a/code/game/objects/items/devices/radio/encryptionkey.dm
+++ b/code/game/objects/items/devices/radio/encryptionkey.dm
@@ -42,7 +42,7 @@
/obj/item/encryptionkey/minutemen
name = "minutemen encryption key"
- icon_state = "clip_cypherkey"
+ icon_state = "cmm_cypherkey"
channels = list(RADIO_CHANNEL_MINUTEMEN = 1)
/obj/item/encryptionkey/inteq
@@ -57,7 +57,7 @@
/obj/item/encryptionkey/headset_com
name = "command radio encryption key"
- icon_state = "comm_cypherkey"
+ icon_state = "com_cypherkey"
channels = list(RADIO_CHANNEL_COMMAND = 1)
/obj/item/encryptionkey/heads/captain
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index 574dd88e5cc4..68d9fd81b34c 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -79,7 +79,6 @@ GLOBAL_LIST_INIT(channel_tokens, list(
name = "bowman headset"
desc = "An updated, modular intercom that fits over the head. Protects ears from flashbangs."
icon_state = "headset_alt"
- item_state = "headset_alt"
/obj/item/radio/headset/alt/ComponentInitialize()
. = ..()
@@ -90,7 +89,6 @@ GLOBAL_LIST_INIT(channel_tokens, list(
name = "syndicate headset"
desc = "A headset worn by members of the various Syndicate splinters on the frontier."
icon_state = "syndie_headset"
- item_state = "syndie_headset"
keyslot = new /obj/item/encryptionkey/syndicate
/obj/item/radio/headset/syndicate/captain
@@ -103,7 +101,6 @@ GLOBAL_LIST_INIT(channel_tokens, list(
name = "syndicate bowman headset"
desc = "A headset worn by members of the various Syndicate splinters on the frontier. Protects ears from flashbangs."
icon_state = "syndie_headset_alt"
- item_state = "syndie_headset_alt"
/obj/item/radio/headset/syndicate/alt/captain
name = "syndicate leader bowman headset"
@@ -136,7 +133,6 @@ GLOBAL_LIST_INIT(channel_tokens, list(
name = "nanotrasen bowman headset"
desc = "Worn proudly by the battered remnants of Nanotrasen's frontier holdings. Protects ears from flashbangs."
icon_state = "nanotrasen_headset_alt"
- item_state = "nanotrasen_headset_alt"
/obj/item/radio/headset/nanotrasen/alt/captain
name = "nanotrasen captain's bowman headset"
@@ -163,9 +159,8 @@ GLOBAL_LIST_INIT(channel_tokens, list(
/obj/item/radio/headset/clip/alt
name = "minutemen bowman headset"
- desc = "Used by militias flying the five stars of the CLIP Minutemen. Protects ears from flashbangs."
- icon_state = "clip_headset_alt"
- item_state = "clip_headset_alt"
+ desc = "Used by militias flying the five stars of the Colonial Minutemen. Protects ears from flashbangs."
+ mob_overlay_state = "cmm_headset_alt"
/obj/item/radio/headset/clip/alt/captain
name = "minuteman officer bowman headset"
@@ -194,7 +189,6 @@ GLOBAL_LIST_INIT(channel_tokens, list(
name = "inteq bowman headset"
desc = "This is used by Inteq Risk Management Group's mercenaries. Protects ears from flashbangs."
icon_state = "inteq_headset_alt"
- item_state = "inteq_headset_alt"
/obj/item/radio/headset/inteq/alt/captain
name = "vanguard bowman headset"
@@ -223,7 +217,6 @@ GLOBAL_LIST_INIT(channel_tokens, list(
name = "pirate bowman headset"
desc = "Used to sing shanties across the vast emptiness of space, and complain about Minuteman patrols. Protects ears from flashbangs."
icon_state = "pirate_headset_alt"
- item_state = "pirate_headset_alt"
/obj/item/radio/headset/pirate/alt/captain
name = "pirate captain bowman headset"
@@ -274,7 +267,6 @@ GLOBAL_LIST_INIT(channel_tokens, list(
name = "command bowman headset"
desc = "An officer's headset. Protects ears from flashbangs."
icon_state = "com_headset_alt"
- item_state = "com_headset_alt"
/obj/item/radio/headset/headset_com/alt/ComponentInitialize()
. = ..()
@@ -294,7 +286,6 @@ GLOBAL_LIST_INIT(channel_tokens, list(
name = "captain's bowman headset"
desc = "Dresses the ears of independent ship captains across the frontier. Protects ears from flashbangs."
icon_state = "com_headset_alt"
- item_state = "com_headset_alt"
/obj/item/radio/headset/heads/captain/alt/ComponentInitialize()
. = ..()
@@ -326,7 +317,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"
- item_state = "cent_headset_alt"
keyslot = null
/obj/item/radio/headset/headset_cent/alt/ComponentInitialize()
@@ -354,7 +344,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"
- item_state = "sec_headset_alt"
/obj/item/radio/headset/headset_sec/alt/ComponentInitialize()
. = ..()
@@ -423,7 +412,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 innocent. Protects ears from flashbangs."
icon_state = "com_headset_alt"
- item_state = "com_headset_alt"
/obj/item/radio/headset/heads/hos/ComponentInitialize()
. = ..()
diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm
index a91789c542cd..2c7262139b17 100644
--- a/code/game/objects/items/devices/radio/intercom.dm
+++ b/code/game/objects/items/devices/radio/intercom.dm
@@ -152,6 +152,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom, 31)
/obj/item/wallframe/intercom/table
icon_state = "intercom-table"
+ icon = 'icons/obj/radio.dmi'
result_path = /obj/item/radio/intercom/table
pixel_shift = 0
@@ -197,5 +198,6 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom/wideband, 26)
/obj/item/wallframe/intercom/wideband/table
icon_state = "intercom-wideband-table"
+ icon = 'icons/obj/radio.dmi'
result_path = /obj/item/radio/intercom/wideband/table
pixel_shift = 0
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index e95ab85cda9d..dc35bebb1e30 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -2,7 +2,9 @@
icon = 'icons/obj/radio.dmi'
name = "shortwave radio"
icon_state = "walkietalkie"
- item_state = "walkietalkie"
+ item_state = "radio"
+ lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
desc = "A basic handheld radio that communicates with local telecommunication networks."
pickup_sound = 'sound/items/handling/device_pickup.ogg'
drop_sound = 'sound/items/handling/device_drop.ogg'
diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm
index 4f034824e2f4..b25cc10636e2 100644
--- a/code/game/objects/items/devices/traitordevices.dm
+++ b/code/game/objects/items/devices/traitordevices.dm
@@ -185,7 +185,7 @@ effective or pretty fucking useless.
name = "cloaker belt"
desc = "Makes you invisible for short periods of time. Recharges in darkness."
icon = 'icons/obj/clothing/belts.dmi'
- icon_state = "utilitybelt"
+ icon_state = "utility"
item_state = "utility"
slot_flags = ITEM_SLOT_BELT
attack_verb = list("whipped", "lashed", "disciplined")
diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm
index 01f147a1b1d0..496fc07288ec 100644
--- a/code/game/objects/items/handcuffs.dm
+++ b/code/game/objects/items/handcuffs.dm
@@ -217,7 +217,7 @@
desc = "Use this to keep prisoners in line."
gender = PLURAL
icon = 'icons/obj/items_and_weapons.dmi'
- icon_state = "legcuff"
+ 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/implants/implant.dm b/code/game/objects/items/implants/implant.dm
index fd79c112c9b1..871f8f8a133d 100644
--- a/code/game/objects/items/implants/implant.dm
+++ b/code/game/objects/items/implants/implant.dm
@@ -1,7 +1,7 @@
/obj/item/implant
name = "implant"
icon = 'icons/obj/implants.dmi'
- icon_state = "generic" //Shows up as the action button icon
+ icon_state = "lighting_bolt" //Idk seemes liek the best option, Needs a generic icon but this works
actions_types = list(/datum/action/item_action/hands_free/activate)
var/activated = TRUE //1 for implant types that can be activated, 0 for ones that are "always on" like mindshield implants
var/mob/living/imp_in = null
diff --git a/code/game/objects/items/implants/implant_misc.dm b/code/game/objects/items/implants/implant_misc.dm
index cd22652120d7..c4c832209bac 100644
--- a/code/game/objects/items/implants/implant_misc.dm
+++ b/code/game/objects/items/implants/implant_misc.dm
@@ -1,7 +1,6 @@
/obj/item/implant/weapons_auth
name = "firearms authentication implant"
desc = "Lets you shoot your guns."
- icon_state = "auth"
activated = 0
/obj/item/implant/weapons_auth/get_data()
diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm
index 3865f961950c..0ba32f33099a 100644
--- a/code/game/objects/items/religion.dm
+++ b/code/game/objects/items/religion.dm
@@ -276,51 +276,6 @@
/obj/item/clothing/head/helmet/plate/crusader/red
icon_state = "crusader-red"
-//Prophet helmet
-/obj/item/clothing/head/helmet/plate/crusader/prophet
- name = "Prophet's Hat"
- desc = "A religious-looking hat."
- mob_overlay_icon = 'icons/mob/large-worn-icons/64x64/head.dmi'
- flags_1 = 0
- armor = list("melee" = 60, "bullet" = 60, "laser" = 60, "energy" = 60, "bomb" = 70, "bio" = 50, "rad" = 50, "fire" = 60, "acid" = 60) //religion protects you from disease and radiation, honk.
- worn_x_dimension = 64
- worn_y_dimension = 64
-
-/obj/item/clothing/head/helmet/plate/crusader/prophet/red
- icon_state = "prophet-red"
-
-/obj/item/clothing/head/helmet/plate/crusader/prophet/blue
- icon_state = "prophet-blue"
-
-//Structure conversion staff
-/obj/item/godstaff
- name = "godstaff"
- desc = "It's a stick..?"
- icon_state = "godstaff-red"
- lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi'
- var/conversion_color = "#ffffff"
- var/staffcooldown = 0
- var/staffwait = 30
-
-
-/obj/item/godstaff/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
- . = ..()
- if(staffcooldown + staffwait > world.time)
- return
- user.visible_message("[user] chants deeply and waves [user.p_their()] staff!")
- if(do_after(user, 20,1,src))
- target.add_atom_colour(conversion_color, WASHABLE_COLOUR_PRIORITY) //wololo
- staffcooldown = world.time
-
-/obj/item/godstaff/red
- icon_state = "godstaff-red"
- conversion_color = "#ff0000"
-
-/obj/item/godstaff/blue
- icon_state = "godstaff-blue"
- conversion_color = "#0000ff"
-
/obj/item/clothing/gloves/plate
name = "Plate Gauntlets"
icon_state = "crusader"
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index c5ebe82f90e9..a0e5865e1528 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -4,7 +4,6 @@
/obj/item/borg
icon = 'icons/mob/robot_items.dmi'
-
/obj/item/borg/stun
name = "electrically-charged arm"
icon_state = "elecarm"
@@ -543,7 +542,7 @@
name = "\improper Hyperkinetic Dampening projector"
desc = "A device that projects a dampening field that weakens kinetic energy above a certain threshold. Projects a field that drains power per second while active, that will weaken and slow damaging projectiles inside its field. Still being a prototype, it tends to induce a charge on ungrounded metallic surfaces."
icon = 'icons/obj/device.dmi'
- icon_state = "shield"
+ icon_state = "shield0"
var/maxenergy = 1500
var/energy = 1500
var/energy_recharge = 7.5
@@ -710,7 +709,7 @@
/obj/item/borg/sight/material
name = "\proper material vision"
sight_mode = BORGMATERIAL
- icon_state = "material"
+ icon_state = "meson"
/obj/item/borg/sight/hud
name = "hud"
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 46d92aa9b6f8..09b2338b244f 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -785,7 +785,7 @@ new /datum/stack_recipe("paper frame door", /obj/structure/mineral_door/paperfra
name = "pepperoni sheetzzas"
desc = "It's a delicious pepperoni sheetzza!"
singular_name = "pepperoni sheetzza"
- icon_state = "sheet-pizza"
+ icon_state = "sheet-meat" //This needs a pizza sheet but we also i dont think anyone will ever make this.
custom_materials = list(/datum/material/pizza = MINERAL_MATERIAL_AMOUNT)
merge_type = /obj/item/stack/sheet/pizza
material_type = /datum/material/pizza
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index 5b1b0e78ab41..10451a4983db 100644
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -521,7 +521,7 @@
name = "agent belt"
desc = "A belt used by abductor agents."
icon = 'icons/obj/abductor.dmi'
- icon_state = "grenadebeltnew"
+ icon_state = "belt"
item_state = "grenadebeltnew"
unique_reskin = null
diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm
index a0ce4670c0bf..45fee1d67660 100644
--- a/code/game/objects/items/storage/book.dm
+++ b/code/game/objects/items/storage/book.dm
@@ -246,12 +246,6 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning",
item_state = "koran"
deity_name = "Allah"
-/obj/item/storage/book/bible/torah
- name = "Torah"
- icon_state = "torah"
- item_state = "torah"
- deity_name = "YHWH"
-
/obj/item/storage/book/bible/booze
desc = "To be applied to the head repeatedly."
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index e9bc325bef88..3c9395208fad 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -99,7 +99,7 @@
for(var/i in 1 to 7)
new /obj/item/disk/data(src)
-
+//guys why are my tests failing
/obj/item/storage/box/disks_plantgene
name = "plant data disks box"
illustration = "disk_kit"
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index f53674195d42..00c619da8353 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -731,7 +731,7 @@
name = "hand of cards"
desc = "A number of cards not in a deck, customarily held in ones hand."
icon = 'icons/obj/toy.dmi'
- icon_state = "none"
+ icon_state = "nothing"
w_class = WEIGHT_CLASS_TINY
var/list/currenthand = list()
var/choice = null
diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm
index 3bf8d8bd0dbd..15cbb9481f35 100644
--- a/code/game/objects/structures/artstuff.dm
+++ b/code/game/objects/structures/artstuff.dm
@@ -39,7 +39,7 @@
name = "canvas"
desc = "Draw out your soul on this canvas!"
icon = 'icons/obj/artstuff.dmi'
- icon_state = "square"
+ icon_state = "11x11"
resistance_flags = FLAMMABLE
var/width = 11
var/height = 11
diff --git a/code/game/objects/structures/fluff.dm b/code/game/objects/structures/fluff.dm
index b53379b4d0c4..6a53024a81a0 100644
--- a/code/game/objects/structures/fluff.dm
+++ b/code/game/objects/structures/fluff.dm
@@ -74,6 +74,7 @@
/obj/structure/fluff/bus
name = "bus"
desc = "GO TO SCHOOL. READ A BOOK."
+ icon_state = "backseat"
icon = 'icons/obj/bus.dmi'
density = TRUE
anchored = TRUE
@@ -126,6 +127,7 @@
/obj/structure/fluff/divine
name = "Miracle"
+ icon_state = "trap_rand"
icon = 'icons/obj/hand_of_god_structures.dmi'
anchored = TRUE
density = TRUE
@@ -179,15 +181,6 @@
density = TRUE
deconstructible = FALSE
-/obj/structure/fluff/beach_towel
- name = "beach towel"
- desc = "A towel decorated in various beach-themed designs."
- icon = 'icons/obj/fluff.dmi'
- icon_state = "railing"
- density = FALSE
- anchored = TRUE
- deconstructible = FALSE
-
/obj/structure/fluff/beach_umbrella
name = "beach umbrella"
desc = "A fancy umbrella designed to keep the sun off beach-goers."
@@ -215,6 +208,7 @@
/obj/structure/fluff/clockwork
name = "Clockwork Fluff"
icon = 'icons/obj/clockwork_objects.dmi'
+ icon_state = "rare_pepe" //This should never be seen and i just found out that its in this file for some reason
deconstructible = FALSE
/obj/structure/fluff/clockwork/alloy_shards
diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm
index 04aa590de74c..abc67e252d52 100644
--- a/code/game/objects/structures/ghost_role_spawners.dm
+++ b/code/game/objects/structures/ghost_role_spawners.dm
@@ -212,11 +212,14 @@
/obj/effect/mob_spawn/human/pirate/gunner
rank = "Gunner"
+/datum/outfit/syndicatespace
+ name = "Syndicate Spacer"
+ uniform = /obj/item/clothing/under/syndicate/combat
+ mask = /obj/item/clothing/mask/gas/syndicate
+
/datum/outfit/syndicatespace/syndicrew
name = "Syndicate Ship Crew Member"
- uniform = /obj/item/clothing/under/syndicate/combat
glasses = /obj/item/clothing/glasses/night
- mask = /obj/item/clothing/mask/gas/syndicate
ears = /obj/item/radio/headset/syndicate/alt
shoes = /obj/item/clothing/shoes/combat
gloves = /obj/item/clothing/gloves/combat
@@ -229,10 +232,8 @@
/datum/outfit/syndicatespace/syndicaptain
name = "Syndicate Ship Captain"
- uniform = /obj/item/clothing/under/syndicate/combat
suit = /obj/item/clothing/suit/armor/vest/capcarapace/syndicate
glasses = /obj/item/clothing/glasses/night
- mask = /obj/item/clothing/mask/gas/syndicate
head = /obj/item/clothing/head/HoS/beret/syndicate
ears = /obj/item/radio/headset/syndicate/alt/captain
shoes = /obj/item/clothing/shoes/combat
diff --git a/code/game/objects/structures/icemoon/cave_entrance.dm b/code/game/objects/structures/icemoon/cave_entrance.dm
index 9fc83f9ddc88..07ecef04afac 100644
--- a/code/game/objects/structures/icemoon/cave_entrance.dm
+++ b/code/game/objects/structures/icemoon/cave_entrance.dm
@@ -27,8 +27,6 @@ GLOBAL_LIST_INIT(ore_probability, list(
/obj/structure/spawner/ice_moon
name = "cave entrance"
desc = "A hole in the ground, filled with monsters ready to defend it."
- icon = 'icons/mob/nest.dmi'
- icon_state = "hole"
faction = list("mining")
max_mobs = 3
max_integrity = 250
@@ -316,7 +314,7 @@ GLOBAL_LIST_INIT(ore_probability, list(
new /obj/item/reagent_containers/glass/bottle/potion/flight(loc)
new /mob/living/simple_animal/hostile/skeleton/templar(loc)
else
- new /obj/item/clothing/neck/necklace/memento_mori(loc)
+ new /obj/item/clothing/neck/memento_mori(loc)
new /mob/living/simple_animal/hostile/skeleton(loc)
new /mob/living/simple_animal/hostile/skeleton/templar(loc)
if(prob(35))
diff --git a/code/game/objects/structures/lavaland/necropolis_tendril.dm b/code/game/objects/structures/lavaland/necropolis_tendril.dm
index 7a57d1d5ac3a..b3c9a8cbf230 100644
--- a/code/game/objects/structures/lavaland/necropolis_tendril.dm
+++ b/code/game/objects/structures/lavaland/necropolis_tendril.dm
@@ -3,7 +3,6 @@
name = "necropolis tendril"
desc = "A vile tendril of corruption, originating deep underground. Terrible monsters are pouring out of it."
- icon = 'icons/mob/nest.dmi'
icon_state = "tendril"
faction = list("mining")
diff --git a/code/game/objects/structures/salvaging.dm b/code/game/objects/structures/salvaging.dm
index 4f3bee0cff60..fa5c49260738 100644
--- a/code/game/objects/structures/salvaging.dm
+++ b/code/game/objects/structures/salvaging.dm
@@ -368,6 +368,7 @@
/obj/item/stack/ore/salvage
name = "salvage"
icon = 'icons/obj/salvage_structure.dmi'
+ icon_state = "smetal"
/obj/item/stack/ore/salvage/examine(mob/user)
. = ..()
@@ -376,8 +377,6 @@
/obj/item/stack/ore/salvage/scrapmetal
name = "scrap metal"
desc = "A collection of metal parts and pieces."
- icon_state = "smetal"
- item_state = "smetal"
points = 1
material_flags = MATERIAL_NO_EFFECTS
custom_materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT)
@@ -396,7 +395,6 @@
name = "scrap titanium"
desc = "Lightweight, rust-resistant parts and pieces from high-performance equipment."
icon_state = "stitanium"
- item_state = "stitanium"
points = 50
material_flags = MATERIAL_NO_EFFECTS
custom_materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT)
@@ -409,7 +407,6 @@
name = "worn crt"
desc = "An old CRT display with the letters 'STANDBY' burnt into the screen."
icon_state = "ssilver"
- item_state = "ssilver"
points = 16
material_flags = MATERIAL_NO_EFFECTS
custom_materials = list(/datum/material/silver=MINERAL_MATERIAL_AMOUNT)
@@ -422,7 +419,6 @@
name = "scrap electronics"
desc = "Various bits of electrical components."
icon_state = "sgold"
- item_state = "sgold"
points = 18
material_flags = MATERIAL_NO_EFFECTS
custom_materials = list(/datum/material/gold=MINERAL_MATERIAL_AMOUNT)
@@ -435,7 +431,6 @@
name = "junk plasma cell"
desc = "A nonfunctional plasma cell, once used as portable power generation."
icon_state = "splasma"
- item_state = "splasma"
points = 15
material_flags = MATERIAL_NO_EFFECTS
custom_materials = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT)
@@ -448,7 +443,6 @@
name = "broken detector"
desc = "The label on the side warns the reader of radioactive elements."
icon_state = "suranium"
- item_state = "suranium"
points = 30
material_flags = MATERIAL_NO_EFFECTS
custom_materials = list(/datum/material/uranium=MINERAL_MATERIAL_AMOUNT)
@@ -461,7 +455,6 @@
name = "damaged bluespace circuit"
desc = "It's damaged beyond repair, but the crystal inside its housing looks fine."
icon_state = "sbluespace"
- item_state = "sbluespace"
points = 50
material_flags = MATERIAL_NO_EFFECTS
custom_materials = list(/datum/material/bluespace=MINERAL_MATERIAL_AMOUNT)
diff --git a/code/game/objects/structures/signs/signs_maps.dm b/code/game/objects/structures/signs/signs_maps.dm
index d9e715e38ca6..3f224abacbe8 100644
--- a/code/game/objects/structures/signs/signs_maps.dm
+++ b/code/game/objects/structures/signs/signs_maps.dm
@@ -3,6 +3,7 @@
/obj/structure/sign/map
name = "station map"
desc = "A navigational chart of the station."
+ icon_state = "map-left"
icon = 'icons/obj/structures/signs/directions.dmi'
max_integrity = 500
diff --git a/code/game/objects/structures/spawner.dm b/code/game/objects/structures/spawner.dm
index 6929bb46cf19..9773221f0c22 100644
--- a/code/game/objects/structures/spawner.dm
+++ b/code/game/objects/structures/spawner.dm
@@ -26,7 +26,7 @@ GLOBAL_LIST_INIT(astroloot, list(
/obj/structure/spawner
name = "monster nest"
- icon = 'icons/mob/animal.dmi'
+ icon = 'icons/mob/nest.dmi'
icon_state = "hole"
max_integrity = 100
@@ -65,8 +65,6 @@ GLOBAL_LIST_INIT(astroloot, list(
/obj/structure/spawner/skeleton
name = "bone pit"
desc = "A pit full of bones, and some still seem to be moving..."
- icon_state = "hole"
- icon = 'icons/mob/nest.dmi'
max_integrity = 150
max_mobs = 15
spawn_time = 150
@@ -105,9 +103,7 @@ GLOBAL_LIST_INIT(astroloot, list(
/obj/structure/spawner/mining
name = "monster den"
desc = "A hole dug into the ground, harboring all kinds of monsters found within most caves or mining asteroids."
- icon_state = "hole"
max_mobs = 3
- icon = 'icons/mob/nest.dmi'
spawn_text = "crawls out of"
mob_types = list(/mob/living/simple_animal/hostile/asteroid/goldgrub, /mob/living/simple_animal/hostile/asteroid/goliath, /mob/living/simple_animal/hostile/asteroid/hivelord, /mob/living/simple_animal/hostile/asteroid/basilisk, /mob/living/simple_animal/hostile/asteroid/fugu)
faction = list("mining")
diff --git a/code/game/objects/structures/table_flipped.dm b/code/game/objects/structures/table_flipped.dm
index 5047e0f3e2a9..c006695a7df0 100644
--- a/code/game/objects/structures/table_flipped.dm
+++ b/code/game/objects/structures/table_flipped.dm
@@ -2,7 +2,7 @@
name = "flipped table"
desc = "A flipped table."
icon = 'icons/obj/flipped_tables.dmi'
- icon_state = "metal-flipped"
+ icon_state = "table"
anchored = TRUE
density = TRUE
layer = ABOVE_MOB_LAYER
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 5882d5c382cd..2257a3c10c3a 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -465,61 +465,51 @@
icon = smooth_icon
/obj/structure/table/wood/fancy/black
- icon_state = "fancy_table_black"
base_icon_state = "fancy_table_black"
buildstack = /obj/item/stack/tile/carpet/black
smooth_icon = 'icons/obj/smooth_structures/fancy_table_black.dmi'
/obj/structure/table/wood/fancy/blue
- icon_state = "fancy_table_blue"
base_icon_state = "fancy_table_blue"
buildstack = /obj/item/stack/tile/carpet/blue
smooth_icon = 'icons/obj/smooth_structures/fancy_table_blue.dmi'
/obj/structure/table/wood/fancy/cyan
- icon_state = "fancy_table_cyan"
base_icon_state = "fancy_table_cyan"
buildstack = /obj/item/stack/tile/carpet/cyan
smooth_icon = 'icons/obj/smooth_structures/fancy_table_cyan.dmi'
/obj/structure/table/wood/fancy/green
- icon_state = "fancy_table_green"
base_icon_state = "fancy_table_green"
buildstack = /obj/item/stack/tile/carpet/green
smooth_icon = 'icons/obj/smooth_structures/fancy_table_green.dmi'
/obj/structure/table/wood/fancy/orange
- icon_state = "fancy_table_orange"
base_icon_state = "fancy_table_orange"
buildstack = /obj/item/stack/tile/carpet/orange
smooth_icon = 'icons/obj/smooth_structures/fancy_table_orange.dmi'
/obj/structure/table/wood/fancy/purple
- icon_state = "fancy_table_purple"
base_icon_state = "fancy_table_purple"
buildstack = /obj/item/stack/tile/carpet/purple
smooth_icon = 'icons/obj/smooth_structures/fancy_table_purple.dmi'
/obj/structure/table/wood/fancy/red
- icon_state = "fancy_table_red"
base_icon_state = "fancy_table_red"
buildstack = /obj/item/stack/tile/carpet/red
smooth_icon = 'icons/obj/smooth_structures/fancy_table_red.dmi'
/obj/structure/table/wood/fancy/royalblack
- icon_state = "fancy_table_royalblack"
base_icon_state = "fancy_table_royalblack"
buildstack = /obj/item/stack/tile/carpet/royalblack
smooth_icon = 'icons/obj/smooth_structures/fancy_table_royalblack.dmi'
/obj/structure/table/wood/fancy/royalblue
- icon_state = "fancy_table_royalblue"
base_icon_state = "fancy_table_royalblue"
buildstack = /obj/item/stack/tile/carpet/royalblue
smooth_icon = 'icons/obj/smooth_structures/fancy_table_royalblue.dmi'
/obj/structure/table/wood/fancy/red_gold
- icon_state = "fancy_table_red"
base_icon_state = "fancy_table_red"
buildstack = /obj/item/stack/tile/carpet/red_gold
smooth_icon = 'icons/obj/smooth_structures/fancy_table_red.dmi'
diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm
index 77cb9c3a7b67..0d1407167472 100644
--- a/code/game/objects/structures/transit_tubes/station.dm
+++ b/code/game/objects/structures/transit_tubes/station.dm
@@ -269,7 +269,6 @@
/obj/structure/transit_tube/station/dispenser/reverse
tube_construction = /obj/structure/c_transit_tube/station/dispenser/reverse
reverse_launch = TRUE
- icon_state = "closed_terminusdispenser0"
base_icon = "terminusdispenser0"
/obj/structure/transit_tube/station/dispenser/reverse/init_tube_dirs()
@@ -285,7 +284,6 @@
boarding_dir = turn(dir, 180)
/obj/structure/transit_tube/station/dispenser/reverse/flipped
- icon_state = "closed_terminusdispenser1"
base_icon = "terminusdispenser1"
tube_construction = /obj/structure/c_transit_tube/station/dispenser/reverse/flipped
diff --git a/code/game/objects/structures/transit_tubes/transit_tube_construction.dm b/code/game/objects/structures/transit_tubes/transit_tube_construction.dm
index f3ea6d55a1da..b74ba4fce82d 100644
--- a/code/game/objects/structures/transit_tubes/transit_tube_construction.dm
+++ b/code/game/objects/structures/transit_tubes/transit_tube_construction.dm
@@ -85,13 +85,11 @@
//all the dispenser stations
/obj/structure/c_transit_tube/station/dispenser
- icon_state = "closed_dispenser0"
name = "unattached dispenser station"
build_type = /obj/structure/transit_tube/station/dispenser
flipped_build_type = /obj/structure/transit_tube/station/dispenser/flipped
/obj/structure/c_transit_tube/station/dispenser/flipped
- icon_state = "closed_station1"
flipped = 1
build_type = /obj/structure/transit_tube/station/dispenser/flipped
flipped_build_type = /obj/structure/transit_tube/station/dispenser
@@ -100,13 +98,11 @@
/obj/structure/c_transit_tube/station/dispenser/reverse
name = "unattached terminus dispenser station"
- icon_state = "closed_terminus0"
build_type = /obj/structure/transit_tube/station/dispenser/reverse
flipped_build_type = /obj/structure/transit_tube/station/dispenser/reverse/flipped
base_icon = "closed_terminus"
/obj/structure/c_transit_tube/station/dispenser/reverse/flipped
- icon_state = "closed_terminus1"
flipped = 1
build_type = /obj/structure/transit_tube/station/dispenser/reverse/flipped
flipped_build_type = /obj/structure/transit_tube/station/dispenser/reverse
diff --git a/code/modules/antagonists/changeling/cellular_emporium.dm b/code/modules/antagonists/changeling/cellular_emporium.dm
index 9b0fc416abc0..ab0c4c28bb41 100644
--- a/code/modules/antagonists/changeling/cellular_emporium.dm
+++ b/code/modules/antagonists/changeling/cellular_emporium.dm
@@ -74,7 +74,7 @@
/datum/action/innate/cellular_emporium
name = "Cellular Emporium"
- icon_icon = 'icons/obj/drinks.dmi'
+ icon_icon = 'icons/obj/drinks/drinks.dmi'
button_icon_state = "changelingsting"
background_icon_state = "bg_changeling"
var/datum/cellular_emporium/cellular_emporium
diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm
index 58714f234ee8..d77c4ef6ff3c 100644
--- a/code/modules/antagonists/changeling/powers/mutations.dm
+++ b/code/modules/antagonists/changeling/powers/mutations.dm
@@ -273,7 +273,7 @@
desc = "A tentacle."
projectile_type = /obj/projectile/tentacle
caliber = "tentacle"
- icon_state = "tentacle_end"
+ icon_state = "arrow"
firing_effect_type = null
var/obj/item/gun/magic/tentacle/gun //the item that shot it
diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm
index 7d0e9f7a4346..6eed283b02f1 100644
--- a/code/modules/antagonists/cult/cult_items.dm
+++ b/code/modules/antagonists/cult/cult_items.dm
@@ -470,7 +470,7 @@
/obj/item/reagent_containers/glass/beaker/unholywater
name = "flask of unholy water"
desc = "Toxic to nonbelievers; reinvigorating to the faithful - this flask may be sipped or thrown."
- icon = 'icons/obj/drinks.dmi'
+ icon = 'icons/obj/drinks/drinks.dmi'
icon_state = "holyflask"
color = "#333333"
list_reagents = list(/datum/reagent/fuel/unholywater = 50)
diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm
index 5bf8f9dc2779..66526d96a34f 100644
--- a/code/modules/antagonists/cult/cult_structures.dm
+++ b/code/modules/antagonists/cult/cult_structures.dm
@@ -100,7 +100,7 @@
var/list/items = list(
"Eldritch Whetstone" = image(icon = 'icons/obj/kitchen.dmi', icon_state = "cult_sharpener"),
"Construct Shell" = image(icon = 'icons/obj/wizard.dmi', icon_state = "construct_cult"),
- "Flask of Unholy Water" = image(icon = 'icons/obj/drinks.dmi', icon_state = "holyflask")
+ "Flask of Unholy Water" = image(icon = 'icons/obj/drinks/drinks.dmi', icon_state = "holyflask")
)
var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE)
var/list/pickedtype = list()
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/temperature_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/temperature_pump.dm
index eff2a0525230..8445257585ab 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/temperature_pump.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/temperature_pump.dm
@@ -1,5 +1,5 @@
/obj/machinery/atmospherics/components/binary/temperature_pump
- icon_state = "tpump_map-3"
+ icon_state = "tpump_on_map-3"
name = "temperature pump"
desc = "A pump that moves heat from one pipeline to another. The input will get cooler, and the output will get hotter."
diff --git a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm
index 3cbd43897878..03b41df05e32 100644
--- a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm
+++ b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm
@@ -198,7 +198,7 @@
/obj/machinery/atmospherics/components/binary/volume_pump/on
on = TRUE
- icon_state = "volpump_on_map"
+ icon_state = "volpump_map-2"
/obj/machinery/atmospherics/components/binary/volume_pump/on/layer2
piping_layer = 2
diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
index c21aaf7ccd79..c1ce88286b4c 100644
--- a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
+++ b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm
@@ -212,7 +212,7 @@
icon_state = "mixer_on_f_map-2"
/obj/machinery/atmospherics/components/trinary/mixer/flipped/on/layer4
piping_layer = 4
- icon_state = "mixer_on_f_map-4"
+ icon_state = "mixer_on_f_map-2"
/obj/machinery/atmospherics/components/trinary/mixer/airmix //For standard airmix to distro
name = "air mixer"
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm b/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm
index 59e63dd14e24..5d0d5b775b4f 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/portables_connector.dm
@@ -46,7 +46,7 @@
/obj/machinery/atmospherics/components/unary/portables_connector/layer1
piping_layer = 1
- icon_state = "connector_map-1"
+ icon_state = "connector_map-2"
/obj/machinery/atmospherics/components/unary/portables_connector/layer2
piping_layer = 2
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
index 3a878409d0e2..7a2559724ad1 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
@@ -312,7 +312,7 @@
/obj/machinery/atmospherics/components/unary/vent_pump/layer1
piping_layer = 1
- icon_state = "vent_map-1"
+ icon_state = "vent_map-2"
/obj/machinery/atmospherics/components/unary/vent_pump/layer2
piping_layer = 2
@@ -328,7 +328,7 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1
piping_layer = 1
- icon_state = "vent_map_on-1"
+ icon_state = "vent_map_on-2"
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2
piping_layer = 2
@@ -358,7 +358,7 @@
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on/layer1
piping_layer = 1
- icon_state = "vent_map_siphon_on-1"
+ icon_state = "vent_map_siphon_on-2"
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on/layer2
piping_layer = 2
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
index 0e5e7dc1c74a..c55b8da80436 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
@@ -276,7 +276,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/layer1
piping_layer = 1
- icon_state = "scrub_map-1"
+ icon_state = "scrub_map-2"
/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2
piping_layer = 2
@@ -292,7 +292,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1
piping_layer = 1
- icon_state = "scrub_map_on-1"
+ icon_state = "scrub_map_on-2"
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2
piping_layer = 2
diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm
index daf7299ca970..2f87eea6d2a7 100644
--- a/code/modules/awaymissions/capture_the_flag.dm
+++ b/code/modules/awaymissions/capture_the_flag.dm
@@ -130,7 +130,7 @@
/obj/effect/ctf/flag_reset
name = "banner landmark"
- icon = 'icons/obj/items_and_weapons.dmi'
+ icon = 'icons/obj/banner.dmi'
icon_state = "banner"
desc = "This is where a banner with Nanotrasen's logo on it would go."
layer = LOW_ITEM_LAYER
diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm
index a4b9098c77a1..6f28cc724b55 100644
--- a/code/modules/awaymissions/mission_code/Academy.dm
+++ b/code/modules/awaymissions/mission_code/Academy.dm
@@ -79,8 +79,6 @@
name = "The Lens of Truesight"
desc = "I can see forever!"
icon_state = "monocle"
- item_state = "headset"
-
/obj/structure/academy_wizard_spawner
name = "Academy Defensive System"
diff --git a/code/modules/cargo/exports/lavaland.dm b/code/modules/cargo/exports/lavaland.dm
index b6920bb419bf..cd1946265374 100644
--- a/code/modules/cargo/exports/lavaland.dm
+++ b/code/modules/cargo/exports/lavaland.dm
@@ -16,7 +16,7 @@
/obj/item/clothing/suit/space/hardsuit/cult,
/obj/item/voodoo,
/obj/item/grenade/clusterbuster/inferno,
- /obj/item/clothing/neck/necklace/memento_mori,
+ /obj/item/clothing/neck/memento_mori,
/obj/item/organ/heart/cursed/wizard,
/obj/item/clothing/suit/hooded/cloak/drake,
/obj/item/dragons_blood,
diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm
index 3ff822a4f943..ab737b1ceb78 100644
--- a/code/modules/cargo/supplypod.dm
+++ b/code/modules/cargo/supplypod.dm
@@ -471,7 +471,7 @@
/obj/effect/engineglow //Falling pod smoke
name = ""
icon = 'icons/obj/supplypods.dmi'
- icon_state = "pod_engineglow"
+ icon_state = "pod_glow_yellow"
desc = ""
layer = GASFIRE_LAYER
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
diff --git a/code/modules/clothing/ears/_ears.dm b/code/modules/clothing/ears/_ears.dm
index fe9d68635a2e..72d29ce55b56 100644
--- a/code/modules/clothing/ears/_ears.dm
+++ b/code/modules/clothing/ears/_ears.dm
@@ -2,6 +2,8 @@
//Ears: currently only used for headsets and earmuffs
/obj/item/clothing/ears
name = "ears"
+ lefthand_file = 'icons/mob/inhands/clothing/ears_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/clothing/ears_righthand.dmi'
w_class = WEIGHT_CLASS_TINY
throwforce = 0
slot_flags = ITEM_SLOT_EARS
diff --git a/code/modules/clothing/factions/gezena.dm b/code/modules/clothing/factions/gezena.dm
index 5dd227a4d323..237e024b156f 100644
--- a/code/modules/clothing/factions/gezena.dm
+++ b/code/modules/clothing/factions/gezena.dm
@@ -187,7 +187,6 @@
icon = 'icons/obj/clothing/faction/gezena/hands.dmi'
mob_overlay_icon = 'icons/mob/clothing/faction/gezena/hands.dmi'
icon_state = "navalgloves"
- item_state = "navalgloves"
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
@@ -196,21 +195,18 @@
name = "\improper PGFMC Ihuz-irra Gloves"
desc = "As the name, “ihuz-irra”, or “sure-grip”, suggests, the gloves employed by the PGF military are designed to ensure the highest possible grip is maintained while also providing protection from blisters in work environments. Carries extra tactile grip on the fingertips for easy use of firearms."
icon_state = "marinegloves"
- item_state = "marinegloves"
armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 75, "acid" = 50)
/obj/item/clothing/gloves/gezena/engi
name = "\improper PGFN Engineering Ihuz-irra Gloves"
desc = "As the name, “ihuz-irra”, or “sure-grip”, suggests, the gloves employed by the PGF military are designed to ensure the highest possible grip is maintained while also providing protection from blisters in work environments. Comes with anti-conductive microfibers interwoven to supply the useer with electrical insulation."
icon_state = "engigloves"
- item_state = "engigloves"
siemens_coefficient = 0
/obj/item/clothing/gloves/gezena/captain
name = "\improper PGFN Captain's Ihuz-irra Gloves"
desc = "As the name, “ihuz-irra”, or “sure-grip”, suggests, the gloves employed by the PGF military are designed to ensure the highest possible grip is maintained while also providing protection from blisters in work environments. Bears the silver standard of a Gezenan captain."
icon_state = "captaingloves"
- item_state = "captaingloves"
siemens_coefficient = 0
//Boots
@@ -221,7 +217,7 @@
icon = 'icons/obj/clothing/faction/gezena/feet.dmi'
//mob_overlay_icon = 'icons/mob/clothing/faction/gezena/feet.dmi' todo: find out why digi breaks here
icon_state = "pgfboots"
- item_state = "pgfboots"
+ item_state = "jackboots"
//Belt
diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm
index 70a9fe677263..f33a789156e9 100644
--- a/code/modules/clothing/glasses/_glasses.dm
+++ b/code/modules/clothing/glasses/_glasses.dm
@@ -2,6 +2,8 @@
/obj/item/clothing/glasses
name = "glasses"
icon = 'icons/obj/clothing/glasses.dmi'
+ lefthand_file = 'icons/mob/inhands/clothing/glasses_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/clothing/glasses_righthand.dmi'
w_class = WEIGHT_CLASS_SMALL
flags_cover = GLASSESCOVERSEYES
slot_flags = ITEM_SLOT_EYES
@@ -165,7 +167,6 @@
name = "monocle"
desc = "Such a dapper eyepiece!"
icon_state = "monocle"
- item_state = "headset" // lol
supports_variations = VOX_VARIATION
/obj/item/clothing/glasses/material
diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm
index 05ec517c4afc..afeb37e30c8b 100644
--- a/code/modules/clothing/glasses/engine_goggles.dm
+++ b/code/modules/clothing/glasses/engine_goggles.dm
@@ -161,7 +161,7 @@
/obj/item/clothing/glasses/meson/sunglasses
name = "optical meson scannerglasses"
desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting conditions. This pair is built into a pair of sunglasses."
- icon_state = "sunnmeson"
+ icon_state = "sunmeson"
flash_protect = FLASH_PROTECTION_FLASH
#undef MODE_NONE
diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm
index b267db209293..385baa647432 100644
--- a/code/modules/clothing/glasses/hud.dm
+++ b/code/modules/clothing/glasses/hud.dm
@@ -212,7 +212,7 @@
/obj/item/clothing/glasses/hud/toggle/thermal
name = "thermal HUD scanner"
desc = "Thermal imaging HUD in the shape of glasses."
- icon_state = "thermal"
+ icon_state = "thermalgoggles"
hud_type = DATA_HUD_SECURITY_ADVANCED
vision_flags = SEE_MOBS
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE
@@ -222,13 +222,13 @@
..()
switch (hud_type)
if (DATA_HUD_MEDICAL_ADVANCED)
- icon_state = "meson"
+ icon_state = "mesongoggles"
change_glass_color(user, /datum/client_colour/glass_colour/green)
if (DATA_HUD_SECURITY_ADVANCED)
- icon_state = "thermal"
+ icon_state = "thermalgoggles"
change_glass_color(user, /datum/client_colour/glass_colour/red)
else
- icon_state = "purple"
+ icon_state = "scigoggles"
change_glass_color(user, /datum/client_colour/glass_colour/purple)
user.update_inv_glasses()
diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm
index 8db83c860da7..61c06125d8f8 100644
--- a/code/modules/clothing/gloves/_gloves.dm
+++ b/code/modules/clothing/gloves/_gloves.dm
@@ -1,8 +1,11 @@
/obj/item/clothing/gloves
name = "gloves"
+ lefthand_file = 'icons/mob/inhands/clothing/gloves_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/clothing/gloves_righthand.dmi'
gender = PLURAL //Carn: for grammarically correct text-parsing
w_class = WEIGHT_CLASS_SMALL
icon = 'icons/obj/clothing/gloves.dmi'
+ item_state = "bgloves"
siemens_coefficient = 0.5
body_parts_covered = HANDS
slot_flags = ITEM_SLOT_GLOVES
diff --git a/code/modules/clothing/gloves/boxing.dm b/code/modules/clothing/gloves/boxing.dm
index 68f64cdd515e..e2807b48dcf1 100644
--- a/code/modules/clothing/gloves/boxing.dm
+++ b/code/modules/clothing/gloves/boxing.dm
@@ -2,18 +2,15 @@
name = "boxing gloves"
desc = "Because you really needed another excuse to punch your crewmates."
icon_state = "boxing"
- item_state = "boxing"
equip_delay_other = 60
supports_variations = VOX_VARIATION
/obj/item/clothing/gloves/boxing/green
icon_state = "boxinggreen"
- item_state = "boxinggreen"
/obj/item/clothing/gloves/boxing/blue
icon_state = "boxingblue"
- item_state = "boxingblue"
/obj/item/clothing/gloves/boxing/yellow
icon_state = "boxingyellow"
- item_state = "boxingyellow"
+ item_state = "ygloves"
diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm
index 291b1c1b25b6..06bd05a45795 100644
--- a/code/modules/clothing/gloves/color.dm
+++ b/code/modules/clothing/gloves/color.dm
@@ -38,7 +38,6 @@
desc = "How're you gonna get 'em off, nerd?"
name = "spray-on insulated gloves"
icon_state = "sprayon"
- item_state = "sprayon"
permeability_coefficient = 0
resistance_flags = ACID_PROOF
var/shocks_remaining = 10
@@ -64,7 +63,7 @@
name = "taped-on insulated gloves"
desc = "This is a totally safe idea."
icon_state = "yellowtape"
- item_state = "ygloves"
+ mob_overlay_state = "sprayon"
shocks_remaining = 3
/obj/item/clothing/gloves/color/yellow/sprayon/tape/Initialize()
@@ -109,7 +108,6 @@
desc = "These gloves are fire-resistant."
name = "black gloves"
icon_state = "black"
- item_state = "blackgloves"
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
@@ -130,14 +128,11 @@
name = "orange gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "orange"
- item_state = "orangegloves"
/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"
- item_state = "redgloves"
-
/obj/item/clothing/gloves/color/red/insulated
name = "insulated gloves"
@@ -150,49 +145,41 @@
name = "rainbow gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "rainbow"
- item_state = "rainbowgloves"
/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"
- item_state = "bluegloves"
/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"
- item_state = "purplegloves"
/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"
- item_state = "greengloves"
/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"
- item_state = "graygloves"
/obj/item/clothing/gloves/color/light_brown
name = "light brown gloves"
desc = "A pair of gloves, they don't look special in any way."
icon_state = "lightbrown"
- item_state = "lightbrowngloves"
/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"
- item_state = "browngloves"
/obj/item/clothing/gloves/color/captain
desc = "Regal white gloves, with a nice gold trim, a diamond anti-shock coating, and an integrated thermal barrier, and armoured bracers. Swanky."
name = "captain's gloves"
icon_state = "captain"
- item_state = "egloves"
siemens_coefficient = 0
permeability_coefficient = 0.05
cold_protection = HANDS
@@ -206,13 +193,12 @@
desc = "Regal blue gloves, with a nice gold trim, a diamond anti-shock coating, and an integrated thermal barrier, and armoured bracers. Swanky."
name = "captain's gloves"
icon_state = "captainnt"
- item_state = "egloves"
/obj/item/clothing/gloves/color/latex
name = "latex gloves"
desc = "Cheap sterile gloves made from latex. Transfers minor paramedic knowledge to the user via budget nanochips."
icon_state = "latex"
- item_state = "latex"
+ item_state = "lgloves"
siemens_coefficient = 0.3
permeability_coefficient = 0.01
transfer_prints = TRUE
@@ -232,7 +218,6 @@
name = "nitrile gloves"
desc = "Pricy sterile gloves that are thicker than latex. Transfers intimate paramedic knowledge into the user via nanochips."
icon_state = "nitrile"
- item_state = "nitrilegloves"
transfer_prints = FALSE
carrytrait = TRAIT_QUICKER_CARRY
supports_variations = KEPORI_VARIATION
@@ -241,13 +226,11 @@
name = "red nitrile gloves"
desc = "Thick sterile gloves that reach up to the elbows, in exactly the same color as fresh blood. Transfers combat medic knowledge into the user via nanochips."
icon_state = "nitrile_evil"
- item_state = "nitrile_evil"
/obj/item/clothing/gloves/color/latex/nitrile/infiltrator
name = "infiltrator gloves"
desc = "Specialized combat gloves for carrying people around. Transfers tactical kidnapping knowledge into the user via nanochips."
icon_state = "infiltrator"
- item_state = "infiltrator"
siemens_coefficient = 0
permeability_coefficient = 0.3
resistance_flags = FIRE_PROOF | ACID_PROOF
@@ -257,7 +240,6 @@
desc = "Overdesigned engineering gloves that have automated construction subrutines dialed in, allowing for faster construction while worn."
icon = 'icons/obj/clothing/clockwork_garb.dmi'
icon_state = "clockwork_gauntlets"
- item_state = "clockwork_gauntlets"
siemens_coefficient = 0 //WS Station eddit "Tinkers Gloves Insuls"
permeability_coefficient = 0.05 //WS Station eddit "Tinkers Gloves Insuls"
//siemens_coefficient = 0.8 WS Station eddit "Tinkers Gloves Insuls"
@@ -269,14 +251,14 @@
name = "white gloves"
desc = "These look pretty fancy."
icon_state = "white"
- item_state = "wgloves"
+ item_state = "lgloves"
custom_price = 200
/obj/item/clothing/gloves/color/evening
name = "evening gloves"
desc = "White satin gloves that rise up to the elbows. Excessively fancy."
icon_state = "evening_gloves"
- item_state = "evening_gloves"
+ item_state = "lgloves"
custom_price = 200
/obj/effect/spawner/lootdrop/gloves
@@ -300,3 +282,4 @@
name = "maid arm covers"
desc = "Cylindrical looking tubes that go over your arm, weird."
icon_state = "maid_arms"
+ item_state = "lgloves"
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index d402847a613e..314af8aaf44a 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -3,7 +3,6 @@
name = "fingerless gloves"
desc = "Plain black gloves without fingertips for the hard working."
icon_state = "fingerless"
- item_state = "fingerless"
transfer_prints = TRUE
strip_delay = 40
equip_delay_other = 20
@@ -30,7 +29,6 @@
name = "combat gloves"
desc = "These tactical gloves are fireproof and electrically insulated."
icon_state = "combat"
- item_state = "combat"
siemens_coefficient = 0
permeability_coefficient = 0.05
strip_delay = 80
@@ -46,19 +44,16 @@
name = "combat maid sleeves"
desc = "These 'tactical' gloves and sleeves are fireproof and electrically insulated. Warm to boot."
icon_state = "syndimaid_arms"
- item_state = "syndimaid_arms"
/obj/item/clothing/gloves/combat/maid/inteq
name = "inteq combat maid sleeves"
desc = "Tacticute and comfy, along with being both fireproof and electrically insulated."
icon_state = "inteqmaid_arms"
- item_state = "inteqmaid_arms"
/obj/item/clothing/gloves/bracer
name = "bone bracers"
desc = "For when you're expecting to get slapped on the wrist. Offers modest protection to your arms."
icon_state = "bracers"
- item_state = "bracers"
transfer_prints = TRUE
strip_delay = 40
equip_delay_other = 20
@@ -73,7 +68,6 @@
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"
- item_state = "rapid"
transfer_prints = TRUE
cuttable = FALSE
@@ -86,7 +80,6 @@
desc = "Covers up those scandalous boney hands."
name = "plasma envirogloves"
icon_state = "plasmaman"
- item_state = "plasmaman"
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
@@ -98,65 +91,56 @@
/obj/item/clothing/gloves/color/plasmaman/black
name = "black envirogloves"
icon_state = "blackplasma"
- item_state = "blackplasma"
/obj/item/clothing/gloves/color/plasmaman/white
name = "white envirogloves"
icon_state = "whiteplasma"
- item_state = "whiteplasma"
+ item_state = "lgloves"
/obj/item/clothing/gloves/color/plasmaman/robot
name = "roboticist envirogloves"
icon_state = "robotplasma"
- item_state = "robotplasma"
/obj/item/clothing/gloves/color/plasmaman/janny
name = "janitor envirogloves"
icon_state = "jannyplasma"
- item_state = "jannyplasma"
/obj/item/clothing/gloves/color/plasmaman/cargo
name = "cargo envirogloves"
icon_state = "cargoplasma"
- item_state = "cargoplasma"
/obj/item/clothing/gloves/color/plasmaman/engineer
name = "engineering envirogloves"
icon_state = "engieplasma"
- item_state = "engieplasma"
+ item_state = "ygloves"
siemens_coefficient = 0
/obj/item/clothing/gloves/color/plasmaman/atmos
name = "atmos envirogloves"
icon_state = "atmosplasma"
- item_state = "atmosplasma"
+ item_state = "ygloves"
siemens_coefficient = 0
/obj/item/clothing/gloves/color/plasmaman/explorer
name = "explorer envirogloves"
icon_state = "explorerplasma"
- item_state = "explorerplasma"
/obj/item/clothing/gloves/color/botanic_leather/plasmaman
name = "botany envirogloves"
desc = "Covers up those scandalous boney hands."
icon_state = "botanyplasma"
- item_state = "botanyplasma"
permeability_coefficient = 0.05
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0, "fire" = 95, "acid" = 95)
/obj/item/clothing/gloves/color/plasmaman/prototype
name = "prototype envirogloves"
icon_state = "protoplasma"
- item_state = "protoplasma"
/obj/item/clothing/gloves/color/plasmaman/clown
name = "clown envirogloves"
icon_state = "clownplasma"
- item_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"
- item_state = "purplegloves"
diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm
index 58bee929a0d7..0ae7f48089e9 100644
--- a/code/modules/clothing/gloves/tacklers.dm
+++ b/code/modules/clothing/gloves/tacklers.dm
@@ -2,7 +2,6 @@
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"
- item_state = "tackle"
transfer_prints = TRUE
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
@@ -43,8 +42,6 @@
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"
- item_state = "tackledolphin"
-
tackle_stam_cost = 15
base_knockdown = 0.5 SECONDS
tackle_range = 5
@@ -56,13 +53,10 @@
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"
- item_state = "blackgloves"
-
tackle_stam_cost = 35
base_knockdown = 1.5 SECONDS
tackle_range = 5
skill_mod = 2
-
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
@@ -73,7 +67,6 @@
name = "guerrilla gloves"
desc = "Superior quality combative gloves, good for performing tackle takedowns as well as absorbing electrical shocks."
icon_state = "combat"
- item_state = "combat"
siemens_coefficient = 0
permeability_coefficient = 0.05
@@ -81,8 +74,6 @@
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"
- item_state = "tacklerocket"
-
tackle_stam_cost = 50
base_knockdown = 2 SECONDS
tackle_range = 10
@@ -94,8 +85,6 @@
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"
- item_state = "fingerless"
-
tackle_stam_cost = 30
base_knockdown = 1.75 SECONDS
min_distance = 2
diff --git a/code/modules/clothing/head/_head.dm b/code/modules/clothing/head/_head.dm
index 11deb4ac8b53..4039402588fd 100644
--- a/code/modules/clothing/head/_head.dm
+++ b/code/modules/clothing/head/_head.dm
@@ -1,7 +1,9 @@
/obj/item/clothing/head
name = BODY_ZONE_HEAD
icon = 'icons/obj/clothing/hats.dmi'
- icon_state = "top_hat"
+ lefthand_file = 'icons/mob/inhands/clothing/hats_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/clothing/hats_righthand.dmi'
+ icon_state = "tophat"
item_state = "that"
body_parts_covered = HEAD
slot_flags = ITEM_SLOT_HEAD
diff --git a/code/modules/clothing/head/berets.dm b/code/modules/clothing/head/berets.dm
index 30a291dcb327..f8b542f40b9f 100644
--- a/code/modules/clothing/head/berets.dm
+++ b/code/modules/clothing/head/berets.dm
@@ -193,26 +193,22 @@
name = "\improper SolGov beret"
desc = "A beret with SolGov's emblem emblazoned on it. Colored in SolGov blue."
icon_state = "beret_solgov"
- item_state = "beret_solgov"
armor = list("melee" = 40, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 60)
/obj/item/clothing/head/beret/solgov/plain
name = "\improper SolGov beret"
desc = "A plain blue beret. It looks like it's missing something."
icon_state = "beret_solgovplain"
- item_state = "beret_solgovplain"
/obj/item/clothing/head/beret/solgov/terragov
name = "\improper TerraGov beret"
desc = "A beret with SolGov's emblem emblazoned on it. It's still colored in original TerraGov green."
icon_state = "beret_terragov"
- item_state = "beret_terragov"
/obj/item/clothing/head/beret/solgov/terragov/plain
name = "\improper TerraGov beret"
desc = "A plain beret colored in original TerraGov green. It looks like it's missing something."
icon_state = "beret_terragovplain"
- item_state = "beret_terragovplain"
// Inteq
@@ -220,19 +216,16 @@
name = "inteq beret"
desc = "A comfortable looking brown beret with a badge of the golden shield of the IRMG. Denotes the wearer as part of the IRMG."
icon_state = "inteq_beret"
- item_state = "inteq_beret"
/obj/item/clothing/head/beret/sec/hos/inteq
name = "inteq vanguard beret"
desc = "A comfortable looking brown beret with a badge of the golden shield of the IRMG. Denotes the wearer as a vanguard of the IRMG. The padding inside feels thicker."
icon_state = "inteq_beret"
- item_state = "inteq_beret"
/obj/item/clothing/head/beret/sec/hos/inteq/honorable
name = "honorable vanguard beret"
desc = "A snow white beret with an air of distinction around it, emblazoned with the golden shield of the IRMG as the badge."
icon_state = "inteq_honorable_beret"
- item_state = "inteq_honorable_beret"
armor = list("melee" = 40, "bullet" = 50, "laser" = 50, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 90)
// Frontier
diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm
index 7dbe408eb39a..f44e133360e6 100644
--- a/code/modules/clothing/head/collectable.dm
+++ b/code/modules/clothing/head/collectable.dm
@@ -20,7 +20,7 @@
name = "collectable chef's hat"
desc = "A rare chef's hat meant for hat collectors!"
icon_state = "chef"
- item_state = "chef"
+ item_state = "chefhat"
dog_fashion = /datum/dog_fashion/head/chef
@@ -28,7 +28,6 @@
name = "collectable paper hat"
desc = "What looks like an ordinary paper hat is actually a rare and valuable collector's edition paper hat. Keep away from water, fire, and Curators."
icon_state = "paper"
-
dog_fashion = /datum/dog_fashion/head
/obj/item/clothing/head/collectable/tophat
@@ -41,7 +40,6 @@
name = "collectable captain's hat"
desc = "A collectable hat that'll make you look just like a real comdom!"
icon_state = "captain"
- item_state = "caphat"
dog_fashion = /datum/dog_fashion/head/captain
@@ -49,14 +47,12 @@
name = "collectable police officer's hat"
desc = "A collectable police officer's Hat. This hat emphasizes that you are THE LAW."
icon_state = "policehelm"
-
dog_fashion = /datum/dog_fashion/head/warden
/obj/item/clothing/head/collectable/beret
name = "collectable beret"
desc = "A collectable red beret. It smells faintly of garlic."
icon_state = "beret"
-
dog_fashion = /datum/dog_fashion/head/beret
/obj/item/clothing/head/collectable/welding
@@ -70,28 +66,24 @@
name = "collectable slime hat"
desc = "Just like a real brain slug!"
icon_state = "headslime"
- item_state = "headslime"
clothing_flags = SNUG_FIT
/obj/item/clothing/head/collectable/flatcap
name = "collectable flat cap"
desc = "A collectible laborer's flat cap! Smells like No. 9 coal..."
icon_state = "flat_cap"
- item_state = "detective"
+ item_state = "det_hat"
/obj/item/clothing/head/collectable/pirate
name = "collectable pirate hat"
desc = "You'd make a great Dread Syndie Roberts!"
icon_state = "pirate"
- item_state = "pirate"
-
dog_fashion = /datum/dog_fashion/head/pirate
/obj/item/clothing/head/collectable/kitty
name = "collectable kitty ears"
desc = "The fur feels... a bit too realistic."
icon_state = "kitty"
- item_state = "kitty"
dog_fashion = /datum/dog_fashion/head/kitty
@@ -99,7 +91,6 @@
name = "collectable rabbit ears"
desc = "Not as lucky as the feet!"
icon_state = "bunny"
- item_state = "bunny"
dog_fashion = /datum/dog_fashion/head/rabbit
@@ -107,7 +98,6 @@
name = "collectable wizard's hat"
desc = "NOTE: Any magical powers gained from wearing this hat are purely coincidental."
icon_state = "wizard"
-
dog_fashion = /datum/dog_fashion/head/blue_wizard
/obj/item/clothing/head/collectable/hardhat
@@ -115,8 +105,6 @@
desc = "WARNING! Offers no real protection, but damn, is it fancy!"
clothing_flags = SNUG_FIT
icon_state = "hardhat_standard"
- item_state = "hardhat_standard"
-
dog_fashion = /datum/dog_fashion/head
/obj/item/clothing/head/collectable/HoS
@@ -134,7 +122,6 @@
name = "collectable Thunderdome helmet"
desc = "Go Red! I mean Green! I mean Red! No Green!"
icon_state = "thunderdome"
- item_state = "thunderdome"
clothing_flags = SNUG_FIT
flags_inv = HIDEHAIR
diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm
index 0eba8a277915..dba4c2f80406 100644
--- a/code/modules/clothing/head/hardhat.dm
+++ b/code/modules/clothing/head/hardhat.dm
@@ -2,7 +2,6 @@
name = "safety helmet"
desc = "A yellow hard hat used in dangerous work settings to protect the head from falling items and errant swinging toolboxes."
icon_state = "hardhat_standard"
- item_state = "hardhat_standard"
armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
flags_inv = 0
clothing_flags = SNUG_FIT
@@ -12,7 +11,6 @@
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 = "hardhat_yellow"
- item_state = "hardhat_yellow"
light_color = "#FFCC66"
light_power = 0.8
armor = list("melee" = 15, "bullet" = 5, "laser" = 20, "energy" = 10, "bomb" = 20, "bio" = 10, "rad" = 20, "fire" = 100, "acid" = 50) // surprisingly robust against head trauma
@@ -50,10 +48,8 @@
/obj/item/clothing/head/hardhat/update_icon_state()
if(on)
icon_state = "[initial(icon_state)]-on"
- item_state = "[initial(icon_state)]-on"
else
icon_state = "[initial(icon_state)]"
- item_state = "[initial(icon_state)]"
return ..()
/obj/item/clothing/head/hardhat/proc/turn_on(mob/user)
@@ -64,13 +60,11 @@
/obj/item/clothing/head/hardhat/orange
icon_state = "hardhat_orange"
- item_state = "hardhat_orange"
dog_fashion = null
/obj/item/clothing/head/hardhat/red
name = "firefighter helmet"
icon_state = "hardhat_red"
- item_state = "hardhat_red"
clothing_flags = STOPSPRESSUREDAMAGE
heat_protection = HEAD
max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT
@@ -81,14 +75,12 @@
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 = "hardhat_purple"
- item_state = "hardhat_purple"
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)
/obj/item/clothing/head/hardhat/white
icon_state = "hardhat_white"
- item_state = "hardhat_white"
clothing_flags = STOPSPRESSUREDAMAGE
heat_protection = HEAD
max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT
@@ -98,7 +90,6 @@
/obj/item/clothing/head/hardhat/green
icon_state = "hardhat_green"
- item_state = "hardhat_green"
clothing_flags = STOPSPRESSUREDAMAGE
heat_protection = HEAD
max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT
@@ -108,17 +99,14 @@
/obj/item/clothing/head/hardhat/dblue
icon_state = "hardhat_dblue"
- item_state = "hardhat_dblue"
dog_fashion = null
/obj/item/clothing/head/hardhat/solgov
icon_state = "hardhat_solgov"
- item_state = "hardhat_solgov"
dog_fashion = null
/obj/item/clothing/head/hardhat/atmos
icon_state = "hardhat_atmos"
- item_state = "hardhat_atmos"
dog_fashion = null
name = "atmospheric technician's firefighting helmet"
desc = "A firefighter's helmet, able to keep the user cool in any situation."
@@ -134,7 +122,6 @@
name = "mining helmet"
desc = "A yellow hard hat used in dangerous mining settings to protect the head from falling rocks and from natives who had advanced in the areas of toolbox swinging technology."
icon_state = "hardhat_mining"
- item_state = "hardhat_mining"
dog_fashion = null
heat_protection = HEAD
max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT
@@ -186,12 +173,10 @@
/obj/item/clothing/head/hardhat/weldhat/orange
icon_state = "hardhat_orange"
- item_state = "hardhat_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 = "hardhat_white"
- item_state = "hardhat_white"
light_range = 4 //Boss always takes the best stuff
hat_type = "white"
clothing_flags = STOPSPRESSUREDAMAGE
@@ -202,4 +187,3 @@
/obj/item/clothing/head/hardhat/weldhat/dblue
icon_state = "hardhat_dblue"
- item_state = "hardhat_dblue"
diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm
index b2ea72519d77..5bc28ff5dc18 100644
--- a/code/modules/clothing/head/misc.dm
+++ b/code/modules/clothing/head/misc.dm
@@ -266,8 +266,6 @@
/obj/item/clothing/head/hunter
name = "bounty hunting hat"
desc = "Ain't nobody gonna cheat the hangman in my town."
- icon_state = "hunter"
- item_state = "hunter"
armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 15, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
resistance_flags = FIRE_PROOF | ACID_PROOF
@@ -438,13 +436,6 @@
icon_state = "intern_hat"
item_state = "intern_hat"
-/obj/item/clothing/head/coordinator
- name = "coordinator cap"
- desc = "A cap for a party coordinator, stylish!."
- icon_state = "capcap"
- item_state = "that"
- armor = list("melee" = 25, "bullet" = 15, "laser" = 25, "energy" = 35, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
-
/obj/item/clothing/head/goatpelt
name = "goat pelt hat"
desc = "Fuzzy and Warm!"
diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm
index 4cae19eb5c83..9bccedb4f49b 100644
--- a/code/modules/clothing/head/soft_caps.dm
+++ b/code/modules/clothing/head/soft_caps.dm
@@ -127,7 +127,7 @@
/obj/item/clothing/head/soft/sec/brig_phys
name = "security medic cap"
- icon_state = "secmedsoft"
+ icon_state = "secsoft"
/obj/item/clothing/head/soft/paramedic
name = "paramedic cap"
diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm
index 739e0f832faa..03ca246b60af 100644
--- a/code/modules/clothing/masks/_masks.dm
+++ b/code/modules/clothing/masks/_masks.dm
@@ -1,6 +1,8 @@
/obj/item/clothing/mask
name = "mask"
icon = 'icons/obj/clothing/masks.dmi'
+ lefthand_file = 'icons/mob/inhands/clothing/masks_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/clothing/masks_righthand.dmi'
body_parts_covered = HEAD
slot_flags = ITEM_SLOT_MASK
strip_delay = 40
diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm
index 66e329a0e9c6..78bbc032e861 100644
--- a/code/modules/clothing/masks/hailer.dm
+++ b/code/modules/clothing/masks/hailer.dm
@@ -33,6 +33,7 @@
desc = "A set of recognizable pre-recorded messages for cyborgs to use when apprehending criminals."
icon = 'icons/obj/device.dmi'
icon_state = "taperecorder_idle"
+ mob_overlay_state = "sechailer"
/obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, action)
if(istype(action, /datum/action/item_action/adjust))
diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm
index cde7c87b8bbf..8d5251e9e8c8 100644
--- a/code/modules/clothing/neck/_neck.dm
+++ b/code/modules/clothing/neck/_neck.dm
@@ -22,7 +22,6 @@
/obj/item/clothing/neck/tie
name = "tie"
desc = "A neosilk clip-on tie. Special material allows it to be reskinned by Alt-clicking it, but only once."
- icon = 'icons/obj/clothing/neck.dmi'
unique_reskin = list("red tie" = "redtie",
"orange tie" = "orangetie",
"green tie" = "greentie",
@@ -312,7 +311,6 @@
/obj/item/clothing/neck/necklace/dope
name = "gold necklace"
desc = "Damn, it feels good to be a gangster."
- icon = 'icons/obj/clothing/neck.dmi'
icon_state = "bling"
cuttable = FALSE
@@ -383,7 +381,6 @@
/obj/item/clothing/neck/beads
name = "plastic bead necklace"
desc = "A cheap, plastic bead necklace. Show team spirit! Collect them! Throw them away! The posibilites are endless!"
- icon = 'icons/obj/clothing/neck.dmi'
icon_state = "beads"
color = "#ffffff"
custom_price = 10
diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm
index 05db2331fc49..7b2ded27e269 100644
--- a/code/modules/clothing/shoes/_shoes.dm
+++ b/code/modules/clothing/shoes/_shoes.dm
@@ -1,6 +1,8 @@
/obj/item/clothing/shoes
name = "shoes"
icon = 'icons/obj/clothing/shoes.dmi'
+ lefthand_file = 'icons/mob/inhands/clothing/shoes_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/clothing/shoes_righthand.dmi'
desc = "Comfortable-looking shoes."
gender = PLURAL //Carn: for grammarically correct text-parsing
var/chained = 0
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index a738bee8f8ed..4c078a7e0ad1 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -1,10 +1,6 @@
/obj/item/clothing/shoes/proc/step_action() //this was made to rewrite clown shoes squeaking
SEND_SIGNAL(src, COMSIG_SHOES_STEP_ACTION)
-/obj/item/clothing/shoes/sneakers/mime
- name = "mime shoes"
- icon_state = "mime"
-
/obj/item/clothing/shoes/combat //basic syndicate combat boots for nuke ops and mob corpses
name = "combat boots"
desc = "High speed, low drag combat boots."
diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm
index aa0367f12ead..e999caf7624b 100644
--- a/code/modules/clothing/spacesuits/miscellaneous.dm
+++ b/code/modules/clothing/spacesuits/miscellaneous.dm
@@ -151,8 +151,6 @@ Contains:
/obj/item/clothing/suit/space/pirate
name = "pirate coat"
desc = "Yarr."
- icon_state = "pirate"
- item_state = "pirate"
w_class = WEIGHT_CLASS_NORMAL
flags_inv = 0
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, /obj/item/melee/transforming/energy/sword/saber/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/reagent_containers/food/drinks/bottle/rum)
diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm
index 358f6a8ba187..0e7edb63f068 100644
--- a/code/modules/clothing/suits/_suits.dm
+++ b/code/modules/clothing/suits/_suits.dm
@@ -1,5 +1,7 @@
/obj/item/clothing/suit
icon = 'icons/obj/clothing/suits.dmi'
+ lefthand_file = 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/clothing/suits_righthand.dmi'
name = "suit"
var/fire_resist = T0C+100
allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
diff --git a/code/modules/clothing/suits/chaplainsuits.dm b/code/modules/clothing/suits/chaplainsuits.dm
index 949265f83371..58802e01b8a1 100644
--- a/code/modules/clothing/suits/chaplainsuits.dm
+++ b/code/modules/clothing/suits/chaplainsuits.dm
@@ -31,20 +31,6 @@
body_parts_covered = CHEST|GROIN|LEGS|ARMS
flags_inv = HIDEJUMPSUIT
-/obj/item/clothing/suit/chaplainsuit/studentuni
- name = "student robe"
- desc = "The uniform of a bygone institute of learning."
- icon_state = "studentuni"
- item_state = "studentuni"
- body_parts_covered = ARMS|CHEST
-
-/obj/item/clothing/suit/chaplainsuit/witchhunter
- name = "witchunter garb"
- desc = "This worn outfit saw much use back in the day."
- icon_state = "witchhunter"
- item_state = "witchhunter"
- body_parts_covered = CHEST|GROIN|LEGS|ARMS
-
/obj/item/clothing/suit/hooded/chaplainsuit/monkhabit
name = "monk's habit"
desc = "A few steps above rended sackcloth."
diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm
index 14f721334462..bce5d5bd2445 100644
--- a/code/modules/clothing/suits/cloaks.dm
+++ b/code/modules/clothing/suits/cloaks.dm
@@ -186,7 +186,8 @@
/obj/item/clothing/head/hooded/cloakhood/goliath/polar
name = "polar cloak"
- icon_state = "polhood"
+ icon_state = "hoodie_gray"
+ mob_overlay_state = "polhood"
desc = "Wear bear on head show little man you big man, kill bear for cloak."
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
cold_protection = HEAD
diff --git a/code/modules/clothing/suits/hoodies.dm b/code/modules/clothing/suits/hoodies.dm
index 1feea7adfd0f..b9e7ebb218c0 100644
--- a/code/modules/clothing/suits/hoodies.dm
+++ b/code/modules/clothing/suits/hoodies.dm
@@ -1,7 +1,7 @@
-/obj/item/clothing/suit/hooded/hoodie/
+/obj/item/clothing/suit/hooded/hoodie
name = "hoodie"
desc = "HOW"
- hoodtype = /obj/item/clothing/head/hooded/hood/
+ hoodtype = /obj/item/clothing/head/hooded/hood
body_parts_covered = CHEST|ARMS
pocket_storage_component_path = /datum/component/storage/concrete/pockets/exo/large
allowed = list( /obj/item/flashlight,
@@ -15,7 +15,7 @@
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) //it's just a hoodie.
supports_variations = KEPORI_VARIATION
-/obj/item/clothing/head/hooded/hood/
+/obj/item/clothing/head/hooded/hood
name = "hood"
desc = "HOW"
body_parts_covered = HEAD
@@ -85,13 +85,11 @@
/obj/item/clothing/head/hooded/hood/fbp
name = "\improper FBP kepori hood"
desc = "A hood for your FBP hoodie."
- icon_state = "hoodie_fbp"
item_state = "hoodie_fbp"
/obj/item/clothing/suit/hooded/hoodie/rilena
name = "K4L1 hoodie"
desc = "A hoodie themed to look like K4L1 from the popular webseries RILENA. It has a comfy pocket for keeping your hands warm."
- icon_state = "hoodie_rilena"
item_state = "hoodie_rilena"
hoodtype = /obj/item/clothing/head/hooded/hood/rilena
@@ -112,6 +110,5 @@
/obj/item/clothing/head/hooded/hood/rilena
name = "RILENA: LMR K4L1 hood"
desc = "A hood for your RILENA themed hoodie."
- icon_state = "hoodie_rilena"
item_state = "hoodie_rilena"
diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm
index 0db75bbb1921..43c349d6e095 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -205,24 +205,6 @@
icon_state = "surgical"
allowed = list(/obj/item/scalpel, /obj/item/cautery, /obj/item/hemostat, /obj/item/retractor)
-//Robotocist
-
-/obj/item/clothing/suit/hooded/techpriest
- name = "techpriest robes"
- desc = "For those who REALLY love their toasters."
- icon_state = "techpriest"
- item_state = "techpriest"
- body_parts_covered = CHEST|GROIN|LEGS|ARMS
- hoodtype = /obj/item/clothing/head/hooded/techpriest
-
-/obj/item/clothing/head/hooded/techpriest
- name = "techpriest's hood"
- desc = "A hood for those who REALLY love their toasters."
- icon_state = "techpriesthood"
- item_state = "techpriesthood"
- body_parts_covered = HEAD
- flags_inv = HIDEHAIR|HIDEEARS
-
//SolGov suits
/obj/item/clothing/suit/solgov
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 126e34db4f4a..ddd11a4e78e6 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -65,6 +65,7 @@
desc = "Suit for a cyborg costume."
icon_state = "death"
item_state = "death"
+ mob_overlay_state = "cardborg"
flags_1 = CONDUCT_1
fire_resist = T0C+5200
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
@@ -658,13 +659,6 @@
body_parts_covered = HEAD
flags_inv = HIDEHAIR|HIDEEARS|HIDEFACIALHAIR|HIDEFACE|HIDEMASK
-/obj/item/clothing/suit/coordinator
- name = "coordinator jacket"
- desc = "A jacket for a party ooordinator, stylish!."
- icon_state = "capformal"
- item_state = "capspacesuit"
- armor = list("melee" = 25, "bullet" = 15, "laser" = 25, "energy" = 35, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
-
/obj/item/clothing/suit/hawaiian
name = "hawaiian overshirt"
desc = "A cool shirt for chilling on the beach."
diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm
index 356bef71acac..7a8e21ae2bea 100644
--- a/code/modules/clothing/under/_under.dm
+++ b/code/modules/clothing/under/_under.dm
@@ -2,6 +2,8 @@
name = "under"
icon = 'icons/obj/clothing/under/default.dmi'
mob_overlay_icon = 'icons/mob/clothing/under/default.dmi'
+ lefthand_file = 'icons/mob/inhands/clothing/suits_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/clothing/suits_righthand.dmi'
body_parts_covered = CHEST|GROIN|LEGS|ARMS
permeability_coefficient = 0.9
slot_flags = ITEM_SLOT_ICLOTHING
diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm
index 2f0660bffebf..ed1d12be3fcb 100644
--- a/code/modules/clothing/under/accessories.dm
+++ b/code/modules/clothing/under/accessories.dm
@@ -475,16 +475,12 @@
/obj/item/clothing/accessory/holster/nukie
name = "operative holster"
desc = "A deep shoulder holster capable of holding almost any form of ballistic weaponry."
- icon_state = "syndicate_holster"
- item_state = "syndicate_holster"
w_class = WEIGHT_CLASS_BULKY
pocket_storage_component_path = /datum/component/storage/concrete/pockets/holster/nukie
/obj/item/clothing/accessory/holster/chameleon
name = "syndicate holster"
desc = "A two pouched hip holster that uses chameleon technology to disguise itself and any guns in it."
- icon_state = "syndicate_holster"
- item_state = "syndicate_holster"
var/datum/action/item_action/chameleon/change/chameleon_action
pocket_storage_component_path = /datum/component/storage/concrete/pockets/holster/chameleon
diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm
index 1a2cfdd33fd7..bbd0d962601f 100644
--- a/code/modules/clothing/under/color.dm
+++ b/code/modules/clothing/under/color.dm
@@ -11,6 +11,7 @@
/obj/item/clothing/under/color/random
icon_state = "random_jumpsuit"
+ mob_overlay_state = "rainbow" // if you somehow equip it like that
/obj/item/clothing/under/color/random/Initialize()
..()
@@ -24,6 +25,7 @@
/obj/item/clothing/under/color/jumpskirt/random
icon_state = "random_jumpsuit" //Skirt variant needed
+ mob_overlay_state = "rainbow"
/obj/item/clothing/under/color/jumpskirt/random/Initialize()
..()
diff --git a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm
index 59b83eb7e3e5..0f58017a2e73 100644
--- a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm
+++ b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm
@@ -151,4 +151,3 @@
desc = "It's very colourful on the inside."
icon_state = "mime_enviroskirt"
item_state = "mime_enviroskirt"
-
diff --git a/code/modules/clothing/under/jobs/civilian/civilian.dm b/code/modules/clothing/under/jobs/civilian/civilian.dm
index 965ec45c3d18..8a95cee6c3ed 100644
--- a/code/modules/clothing/under/jobs/civilian/civilian.dm
+++ b/code/modules/clothing/under/jobs/civilian/civilian.dm
@@ -222,11 +222,6 @@
icon_state = "lawyer_galaxy_red"
item_state = "r_suit"
-/obj/item/clothing/under/rank/civilian/cookjorts
- name = "grilling shorts"
- desc = "For when all you want in life is to grill for god's sake!"
- icon_state = "cookjorts"
-
/obj/item/clothing/under/rank/civilian/janitor
name = "janitor's jumpsuit"
desc = "It's the official uniform of a Nanotrasen janitor. It has minor protection from biohazards."
diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm
index cf08ad4ed4c6..29ee1c732399 100644
--- a/code/modules/clothing/under/jobs/security.dm
+++ b/code/modules/clothing/under/jobs/security.dm
@@ -99,16 +99,19 @@
/obj/item/clothing/under/rank/security/brig_phys/nt
name = "security medic's uniform"
desc = "A lightly armored uniform worn by members of Nanotrasen's Asset Protection Medical Corps."
- icon_state = "rbrig_phys"
+ icon_state = "security_medic"
item_state = "r_suit"
+ mob_overlay_state = "rbrig_phys"
/obj/item/clothing/under/rank/security/brig_phys/nt/skirt
name = "security medic's uniform"
desc = "A lightly armored uniform, with a skirt, worn by members of Nanotrasen's Asset Protection Medical Corps."
- icon_state = "rbrig_phys_skirt"
+ icon_state = "security_medic_skirt"
+ mob_overlay_state = "rbrig_phys_skirt"
body_parts_covered = CHEST|GROIN|ARMS
supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON
+
// Warden //
/obj/item/clothing/under/rank/security/warden
name = "warden's security suit"
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 5e3d288adca5..019d731a2708 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -113,15 +113,6 @@
armor = list("melee" = 10, "laser" = 10, "fire" = 40, "acid" = 10, "bomb" = 5)
cuttable = FALSE
-/obj/item/clothing/under/misc/coordinator
- name = "coordinator jumpsuit"
- desc = "A jumpsuit made by party people, from party people, for party people."
- icon = 'icons/obj/clothing/under/command.dmi'
- mob_overlay_icon = 'icons/mob/clothing/under/command.dmi'
- icon_state = "captain_parade"
- item_state = "by_suit"
- can_adjust = FALSE
-
/obj/item/clothing/under/utility
icon = 'icons/obj/clothing/under/misc.dmi'
mob_overlay_icon = 'icons/mob/clothing/under/misc.dmi'
diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm
index 8f30c0cab2ce..58e83cf71284 100644
--- a/code/modules/clothing/under/shorts.dm
+++ b/code/modules/clothing/under/shorts.dm
@@ -33,3 +33,8 @@
/obj/item/clothing/under/shorts/purple
name = "purple athletic shorts"
icon_state = "purpleshorts"
+
+/obj/item/clothing/under/shorts/cookjorts
+ name = "grilling shorts"
+ desc = "For when all you want in life is to grill for god's sake!"
+ icon_state = "greyshorts"
diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm
index 82edb0698208..f474018739d0 100644
--- a/code/modules/fishing/fish/_fish.dm
+++ b/code/modules/fishing/fish/_fish.dm
@@ -3,7 +3,7 @@
name = "generic looking aquarium fish"
desc = "very bland"
icon = 'icons/obj/aquarium.dmi'
- icon_state = "bugfish"
+ icon_state = "trout" //Replace this with "bugfish" from tg please
w_class = WEIGHT_CLASS_TINY
diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm
index 64bb4fdae667..8f88924930f4 100644
--- a/code/modules/food_and_drinks/drinks/drinks.dm
+++ b/code/modules/food_and_drinks/drinks/drinks.dm
@@ -4,7 +4,7 @@
/obj/item/reagent_containers/food/drinks
name = "drink"
desc = "yummy"
- icon = 'icons/obj/drinks.dmi'
+ icon = 'icons/obj/drinks/drinks.dmi'
icon_state = null
lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
@@ -287,7 +287,7 @@
/obj/item/reagent_containers/food/drinks/waterbottle
name = "bottle of water"
desc = "A bottle of water filled at an old Earth bottling facility."
- icon = 'icons/obj/drinks.dmi'
+ icon = 'icons/obj/drinks/drinks.dmi'
icon_state = "smallbottle"
item_state = "bottle"
list_reagents = list(/datum/reagent/water = 49.5, /datum/reagent/fluorine = 0.5)//see desc, don't think about it too hard
@@ -407,7 +407,7 @@
return
var/obj/item/broken_bottle/B = new (loc)
B.icon_state = icon_state
- var/icon/I = new('icons/obj/drinks.dmi', src.icon_state)
+ var/icon/I = new('icons/obj/drinks/drinks.dmi', src.icon_state)
I.Blend(B.broken_outline, ICON_OVERLAY, rand(5), 1)
I.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0))
B.icon = I
@@ -466,7 +466,7 @@
/obj/item/reagent_containers/food/drinks/colocup
name = "colo cup"
desc = "A cheap, mass produced style of cup, typically used at parties. They never seem to come out red, for some reason..."
- icon = 'icons/obj/drinks.dmi'
+ icon = 'icons/obj/drinks/drinks.dmi'
icon_state = "colocup"
lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
index b4d8cf8090c9..4da78a5989a1 100644
--- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
@@ -45,7 +45,7 @@
thrower.put_in_hands(B)
B.icon_state = icon_state
- var/icon/I = new('icons/obj/drinks.dmi', src.icon_state)
+ var/icon/I = new('icons/obj/drinks/drinks.dmi', src.icon_state)
I.Blend(B.broken_outline, ICON_OVERLAY, rand(5), 1)
I.SwapColor(rgb(255, 0, 220, 255), rgb(0, 0, 0, 0))
B.icon = I
@@ -138,7 +138,7 @@
/obj/item/broken_bottle
name = "broken bottle"
desc = "A bottle with a sharp broken bottom."
- icon = 'icons/obj/drinks.dmi'
+ icon = 'icons/obj/drinks/drinks.dmi'
icon_state = "broken_bottle"
force = 9
throwforce = 5
@@ -149,7 +149,7 @@
hitsound = 'sound/weapons/bladeslice.ogg'
attack_verb = list("stabbed", "slashed", "attacked")
sharpness = IS_SHARP
- var/static/icon/broken_outline = icon('icons/obj/drinks.dmi', "broken")
+ var/static/icon/broken_outline = icon('icons/obj/drinks/drinks.dmi', "broken")
/obj/item/broken_bottle/Initialize()
. = ..()
diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm
index 9e89336ae08e..f1a5862649a4 100644
--- a/code/modules/holodeck/items.dm
+++ b/code/modules/holodeck/items.dm
@@ -14,7 +14,7 @@
name = "holographic energy sword"
desc = "May the force be with you. Sorta."
icon = 'icons/obj/transforming_energy.dmi'
- icon_state = "sword0"
+ icon_state = "sword"
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
force = 3.0
diff --git a/code/modules/instruments/items.dm b/code/modules/instruments/items.dm
index 149f78437fa4..022b3278e92b 100644
--- a/code/modules/instruments/items.dm
+++ b/code/modules/instruments/items.dm
@@ -75,7 +75,7 @@
lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi'
righthand_file = 'icons/mob/inhands/clothing_righthand.dmi'
icon_state = "headphones"
- item_state = "headphones"
+ item_state = "earmuffs"
slot_flags = ITEM_SLOT_EARS | ITEM_SLOT_HEAD
force = 0
w_class = WEIGHT_CLASS_SMALL
diff --git a/code/modules/jobs/job_types/cook.dm b/code/modules/jobs/job_types/cook.dm
index 1c3d318eeffb..d67dbb12f572 100644
--- a/code/modules/jobs/job_types/cook.dm
+++ b/code/modules/jobs/job_types/cook.dm
@@ -18,7 +18,7 @@
belt = /obj/item/pda/cook
ears = /obj/item/radio/headset/headset_srv
uniform = /obj/item/clothing/under/rank/civilian/chef
- alt_uniform = /obj/item/clothing/under/rank/civilian/cookjorts //WS Edit - Alt Uniforms
+ alt_uniform = /obj/item/clothing/under/shorts/cookjorts //WS Edit - Alt Uniforms
suit = /obj/item/clothing/suit/toggle/chef
alt_suit = /obj/item/clothing/suit/apron/chef
head = /obj/item/clothing/head/chefhat
diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm
index 8bac57a8b764..41fce675bf70 100644
--- a/code/modules/mining/equipment/explorer_gear.dm
+++ b/code/modules/mining/equipment/explorer_gear.dm
@@ -174,7 +174,7 @@
/obj/item/clothing/head/hooded/survivor_hood
name = "survivor hood"
desc = "A loose-fitting hood, patched up with sealant and adhesive. Somewhat protects the head from the environment, but gets the job done."
- icon_state = "survivor_hood"
+ icon_state = "explorerold"
suit = /obj/item/clothing/suit/hooded/survivor
body_parts_covered = HEAD
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm
index c4b75883eb67..5e012735b706 100644
--- a/code/modules/mining/equipment/survival_pod.dm
+++ b/code/modules/mining/equipment/survival_pod.dm
@@ -283,14 +283,12 @@
/obj/structure/sign/mining
name = "\improper Nanotrasen mining corps sign"
desc = "A sign of relief for weary miners, and a warning for would-be competitors to Nanotrasen's mining claims."
- icon = 'icons/turf/walls/survival_pod_walls.dmi'
- icon_state = "ntpod"
+ icon_state = "nanotrasen"
/obj/structure/sign/mining/survival
name = "shelter sign"
desc = "A high visibility sign designating a safe shelter."
- icon = 'icons/turf/walls/survival_pod_walls.dmi'
- icon_state = "survival"
+ icon_state = "secureareaold"
//Fluff
/obj/structure/tubes
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index 96954cd59b4d..985c5212299b 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -281,30 +281,31 @@
activated = TRUE
//Memento Mori
-/obj/item/clothing/neck/necklace/memento_mori
+/obj/item/clothing/neck/memento_mori
name = "Memento Mori"
desc = "A mysterious pendant. An inscription on it says: \"Certain death tomorrow means certain life today.\""
icon = 'icons/obj/lavaland/artefacts.dmi'
icon_state = "memento_mori"
+ mob_overlay_state = "crystal_talisman"
actions_types = list(/datum/action/item_action/hands_free/memento_mori)
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
var/mob/living/carbon/human/active_owner
-/obj/item/clothing/neck/necklace/memento_mori/item_action_slot_check(slot)
+/obj/item/clothing/neck/memento_mori/item_action_slot_check(slot)
return slot == ITEM_SLOT_NECK
-/obj/item/clothing/neck/necklace/memento_mori/dropped(mob/user)
+/obj/item/clothing/neck/memento_mori/dropped(mob/user)
..()
if(active_owner)
mori()
//Just in case
-/obj/item/clothing/neck/necklace/memento_mori/Destroy()
+/obj/item/clothing/neck/memento_mori/Destroy()
if(active_owner)
mori()
return ..()
-/obj/item/clothing/neck/necklace/memento_mori/proc/memento(mob/living/carbon/human/user)
+/obj/item/clothing/neck/memento_mori/proc/memento(mob/living/carbon/human/user)
to_chat(user, "You feel your life being drained by the pendant...")
if(do_after(user, 40, target = user))
to_chat(user, "Your lifeforce is now linked to the pendant! You feel like removing it would kill you, and yet you instinctively know that until then, you won't die.")
@@ -314,7 +315,7 @@
icon_state = "memento_mori_active"
active_owner = user
-/obj/item/clothing/neck/necklace/memento_mori/proc/mori()
+/obj/item/clothing/neck/memento_mori/proc/mori()
icon_state = "memento_mori"
if(!active_owner)
return
@@ -329,7 +330,7 @@
desc = "Bind your life to the pendant."
/datum/action/item_action/hands_free/memento_mori/Trigger()
- var/obj/item/clothing/neck/necklace/memento_mori/MM = target
+ var/obj/item/clothing/neck/memento_mori/MM = target
if(!MM.active_owner)
if(ishuman(owner))
MM.memento(owner)
@@ -510,7 +511,7 @@
desc = "A hook."
projectile_type = /obj/projectile/hook
caliber = "hook"
- icon_state = "hook"
+ icon_state = "arrow"
/obj/projectile/hook
name = "hook"
@@ -667,7 +668,6 @@
icon = 'icons/obj/lavaland/artefacts.dmi'
icon_state = "paradox_bag"
mob_overlay_icon = 'icons/mob/clothing/belt.dmi'
- mob_overlay_state = "paradoxbag"
slot_flags = ITEM_SLOT_BELT
resistance_flags = INDESTRUCTIBLE
@@ -888,8 +888,6 @@
desc = "Buried deep beneath the earth, these ancient gauntlets absorbed the tectonic power of earthquakes. "
icon = 'icons/obj/lavaland/artefacts.dmi'
icon_state = "concussive_gauntlets"
- mob_overlay_icon = 'icons/mob/clothing/hands.dmi'
- mob_overlay_state = "concussive_gauntlets"
toolspeed = 0.1
strip_delay = 40
equip_delay_other = 20
diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm
index cb7c7adafc4b..bfa71f3b335e 100644
--- a/code/modules/mob/living/carbon/alien/organs.dm
+++ b/code/modules/mob/living/carbon/alien/organs.dm
@@ -1,5 +1,5 @@
/obj/item/organ/alien
- icon_state = "xgibmid2"
+ icon_state = "liver-x"
food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/toxin/acid = 10)
var/list/alien_powers = list()
diff --git a/code/modules/mob/living/simple_animal/guardian/types/support.dm b/code/modules/mob/living/simple_animal/guardian/types/support.dm
index 00344f48da59..1e02c89c81f7 100644
--- a/code/modules/mob/living/simple_animal/guardian/types/support.dm
+++ b/code/modules/mob/living/simple_animal/guardian/types/support.dm
@@ -93,7 +93,7 @@
name = "bluespace receiving pad"
icon = 'icons/turf/floors.dmi'
desc = "A receiving zone for bluespace teleportations."
- icon_state = "light_on-w"
+ icon_state = "light_on_flicker-1"
light_range = MINIMUM_USEFUL_LIGHT_RANGE
density = FALSE
anchored = TRUE
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm
index 14849bb58014..550c78532cd6 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm
@@ -326,7 +326,7 @@ Difficulty: Extremely Hard
/obj/item/crusher_trophy/ice_block_talisman
name = "ice block talisman"
desc = "A glowing trinket that a demonic miner had on him, it seems he couldn't utilize it for whatever reason."
- icon_state = "ice_trap_talisman"
+ icon_state = "freeze_cube"
denied_type = /obj/item/crusher_trophy/ice_block_talisman
/obj/item/crusher_trophy/ice_block_talisman/effect_desc()
diff --git a/code/modules/mob/living/simple_animal/hostile/netherworld.dm b/code/modules/mob/living/simple_animal/hostile/netherworld.dm
index f6d5aa779ad4..55d873cf036a 100644
--- a/code/modules/mob/living/simple_animal/hostile/netherworld.dm
+++ b/code/modules/mob/living/simple_animal/hostile/netherworld.dm
@@ -175,7 +175,6 @@
max_integrity = 50
spawn_time = 600 //1 minute
max_mobs = 15
- icon = 'icons/mob/nest.dmi'
spawn_text = "crawls through"
mob_types = list(/mob/living/simple_animal/hostile/netherworld/migo, /mob/living/simple_animal/hostile/netherworld, /mob/living/simple_animal/hostile/netherworld/blankbody)
faction = list("nether")
diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm
index f78c7e36ac6d..9697cce45df3 100644
--- a/code/modules/modular_computers/computers/item/computer.dm
+++ b/code/modules/modular_computers/computers/item/computer.dm
@@ -5,7 +5,7 @@
name = "modular microcomputer"
desc = "A small portable microcomputer."
icon = 'icons/obj/machines/computer.dmi'
- icon_state = "laptop-open"
+ icon_state = "laptop"
light_on = FALSE
integrity_failure = 0.5
max_integrity = 100
diff --git a/code/modules/overmap/ships/controlled_ship_datum.dm b/code/modules/overmap/ships/controlled_ship_datum.dm
index 9c9024126b0a..8174a3e365f4 100644
--- a/code/modules/overmap/ships/controlled_ship_datum.dm
+++ b/code/modules/overmap/ships/controlled_ship_datum.dm
@@ -420,7 +420,7 @@
/obj/item/key/ship
name = "ship key"
desc = "A key for locking and unlocking the helm of a ship, comes with a ball chain so it can be worn around the neck. Comes with a cute little shuttle-shaped keychain."
- icon_state = "keyship"
+ icon_state = "shipkey"
var/datum/overmap/ship/controlled/master_ship
var/static/list/key_colors = list(
"blue" = "#4646fc",
diff --git a/code/modules/paperwork/paper_cutter.dm b/code/modules/paperwork/paper_cutter.dm
index 20ff55f0d789..51efaba06046 100644
--- a/code/modules/paperwork/paper_cutter.dm
+++ b/code/modules/paperwork/paper_cutter.dm
@@ -101,7 +101,7 @@
/obj/item/paper/paperslip/corporate //More fancy and sturdy paper slip which is a "plastic card", used for things like spare ID safe code
name = "corporate plastic card"
desc = "A plastic card for confidental corporate matters. Can be written on with pen somehow."
- icon_state = "corppaperslip"
+ icon_state = "paperbiscuit"
grind_results = list(/datum/reagent/plastic_polymers = 1.5) //It's a plastic card after all
max_integrity = 130 //Slightly more sturdy because of being made out of a plastic
drop_sound = 'sound/items/handling/disk_drop.ogg'
diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm
index 2578fc97961c..3bfc292108b5 100644
--- a/code/modules/paperwork/stamps.dm
+++ b/code/modules/paperwork/stamps.dm
@@ -127,7 +127,7 @@
/obj/item/stamp/clip
name = "CLIP Minutemen rubber stamp"
- icon_state = "stamp-clip"
+ icon_state = "stamp-cmm"
dye_color = DYE_FO
/obj/item/stamp/gold
diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
index 421550cd52df..afd68d5ab7b2 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
@@ -23,7 +23,7 @@
name = "Particle Accelerator"
desc = "Part of a Particle Accelerator."
icon = 'icons/obj/machines/particle_accelerator.dmi'
- icon_state = "none"
+ icon_state = "emitter_center"
anchored = FALSE
density = TRUE
max_integrity = 500
diff --git a/code/modules/power/singularity/particle_accelerator/particle_emitter.dm b/code/modules/power/singularity/particle_accelerator/particle_emitter.dm
index fc7cca55e655..15617eca5260 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_emitter.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_emitter.dm
@@ -2,7 +2,7 @@
name = "EM Containment Grid"
desc = "This launches the Alpha particles, might not want to stand near this end."
icon = 'icons/obj/machines/particle_accelerator.dmi'
- icon_state = "none"
+ icon_state = "emitter_center"
var/fire_delay = 50
var/last_shot = 0
diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm
index cb513e5d3e33..c872279a92f0 100644
--- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm
+++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm
@@ -100,7 +100,7 @@
/obj/item/ammo_box/a858
name = "stripper clip (8x58mm)"
desc = "A 5-round stripper clip for the SSG-669C rifle. These rounds do good damage with significant armor penetration."
- icon_state = "858"
+ icon_state = "enbloc_858"
ammo_type = /obj/item/ammo_casing/caseless/a858
max_ammo = 5
multiple_sprites = AMMO_BOX_PER_BULLET
@@ -434,7 +434,7 @@
/obj/item/ammo_box/c8x50mmhp_box
name = "ammo box (8x50mm)"
- desc = "A box of hollow point 8x50mm ammo, designed to cause massive damage at the cost of armor penetration.."
+ desc = "A box of hollow point 8x50mm ammo, designed to cause massive damage at the cost of armor penetration."
icon_state = "8x50mmbox-hp"
ammo_type = /obj/item/ammo_casing/a8_50rhp
max_ammo = 20
diff --git a/code/modules/projectiles/boxes_magazines/external/toy.dm b/code/modules/projectiles/boxes_magazines/external/toy.dm
index ab9656cdf111..7ed352a1941a 100644
--- a/code/modules/projectiles/boxes_magazines/external/toy.dm
+++ b/code/modules/projectiles/boxes_magazines/external/toy.dm
@@ -49,8 +49,8 @@
/obj/item/ammo_box/magazine/toy/m762
name = "donksoft box magazine"
desc = "A huge toy LMG magazine designed to fit vast quantities of harmless foam darts."
- icon_state = "a850r-toy"
- base_icon_state = "a850r"
+ icon_state = "a762-toy"
+ base_icon_state = "a762"
caliber = "foam_force"
ammo_type = /obj/item/ammo_casing/caseless/foam_dart
max_ammo = 50
@@ -62,5 +62,5 @@
/obj/item/ammo_box/magazine/toy/m762/riot
desc = "A huge toy LMG magazine designed to fit vast quantities of legally-harmless riot control darts."
- icon_state = "a850r-riot"
+ icon_state = "a762-riot"
ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot
diff --git a/code/modules/projectiles/guns/ballistic/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm
index c7d73c5459bc..614aa7a884c1 100644
--- a/code/modules/projectiles/guns/ballistic/launchers.dm
+++ b/code/modules/projectiles/guns/ballistic/launchers.dm
@@ -4,6 +4,7 @@
/obj/item/gun/ballistic/revolver/grenadelauncher//this is only used for underbarrel grenade launchers at the moment, but admins can still spawn it if they feel like being assholes
desc = "A break-action, single-shot grenade launcher. A compact way to deliver a big boom."
name = "grenade launcher"
+ icon = 'icons/obj/guns/48x32guns.dmi'
icon_state = "dshotgun_sawn"
item_state = "gun"
mag_type = /obj/item/ammo_box/magazine/internal/grenadelauncher
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index 737a0f4e2029..81344fa5a82a 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -445,6 +445,7 @@
name = "hook modified sawn-off shotgun"
desc = "Range isn't an issue when you can bring your victim to you."
icon_state = "hookshotgun"
+ icon = 'icons/obj/guns/projectile.dmi'
item_state = "shotgun"
load_sound = 'sound/weapons/gun/shotgun/insert_shell.ogg'
mag_type = /obj/item/ammo_box/magazine/internal/shot/bounty
diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm
index 4fb79f7d46e6..4c924ef49ccf 100644
--- a/code/modules/projectiles/guns/energy/laser.dm
+++ b/code/modules/projectiles/guns/energy/laser.dm
@@ -187,7 +187,6 @@
/obj/item/gun/energy/laser/iot/lethal
desc = "An energy shotgun with an integrated computer system for surveillance and statistics tracking. This one appears to be modified to fire lethal beams."
- icon_state = "iotshotgun_lethal"
ammo_type = list(/obj/item/ammo_casing/energy/laser/ultima)
/obj/item/gun/energy/laser/hitscanpistol
diff --git a/code/modules/projectiles/guns/energy/mounted.dm b/code/modules/projectiles/guns/energy/mounted.dm
index 89114e805df4..4dc5cae77558 100644
--- a/code/modules/projectiles/guns/energy/mounted.dm
+++ b/code/modules/projectiles/guns/energy/mounted.dm
@@ -16,7 +16,7 @@
name = "mounted laser"
desc = "An arm mounted cannon that fires lethal lasers."
icon = 'icons/obj/items_cyborg.dmi'
- icon_state = "laser"
+ icon_state = "laser_cyborg"
item_state = "armcannonlase"
force = 5
selfcharge = 1
diff --git a/code/modules/projectiles/projectile/energy/ebow.dm b/code/modules/projectiles/projectile/energy/ebow.dm
index 6d4890290575..c29c692b7e78 100644
--- a/code/modules/projectiles/projectile/energy/ebow.dm
+++ b/code/modules/projectiles/projectile/energy/ebow.dm
@@ -12,6 +12,7 @@
/obj/projectile/energy/bolt/halloween
name = "candy corn"
icon_state = "candy_corn"
+ icon = 'icons/obj/food/food.dmi'
/obj/projectile/energy/bolt/large
damage = 20
diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm
index 97e0b7c0946b..ee288feb0bac 100644
--- a/code/modules/reagents/reagent_containers/borghydro.dm
+++ b/code/modules/reagents/reagent_containers/borghydro.dm
@@ -176,7 +176,7 @@ Borg Shaker
/obj/item/reagent_containers/borghypo/borgshaker
name = "cyborg shaker"
desc = "An advanced drink synthesizer and mixer."
- icon = 'icons/obj/drinks.dmi'
+ icon = 'icons/obj/drinks/drinks.dmi'
icon_state = "shaker"
possible_transfer_amounts = list(5,10,20)
charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster.
@@ -243,7 +243,7 @@ Borg Shaker
/obj/item/reagent_containers/borghypo/borgshaker/hacked
name = "cyborg shaker"
desc = "Will mix drinks that knock them dead."
- icon = 'icons/obj/drinks.dmi'
+ icon = 'icons/obj/drinks/drinks.dmi'
icon_state = "threemileislandglass"
possible_transfer_amounts = list(5,10,20)
charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster.
diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm
index 3710a25f3aab..5645ed54957e 100644
--- a/code/modules/reagents/reagent_containers/bottle.dm
+++ b/code/modules/reagents/reagent_containers/bottle.dm
@@ -87,7 +87,7 @@
/obj/item/reagent_containers/glass/bottle/adminordrazine
name = "Adminordrazine Bottle"
desc = "A small bottle. Contains the liquid essence of the gods."
- icon = 'icons/obj/drinks.dmi'
+ icon = 'icons/obj/drinks/drinks.dmi'
icon_state = "holyflask"
list_reagents = list(/datum/reagent/medicine/adminordrazine = 30)
can_have_cap = FALSE
diff --git a/code/modules/ruins/icemoonruin_code/library.dm b/code/modules/ruins/icemoonruin_code/library.dm
index 7376d242c52a..b8639e190d7f 100644
--- a/code/modules/ruins/icemoonruin_code/library.dm
+++ b/code/modules/ruins/icemoonruin_code/library.dm
@@ -21,12 +21,3 @@
/obj/item/paper/crumpled/fluff/stations/lavaland/library/diary2
name = "diary entry 18"
default_raw_text = "I've lost track of time. I lack the strength to even pick up books off the shelves. To think, after all this time spent searching for the library, I will die before I can so much as graze the depths of its knowledge."
-
-/obj/item/feather
- name = "feather"
- desc = "A dark, wilting feather. It seems as old as time."
- icon = 'icons/obj/objects.dmi'
- icon_state = "feather"
- force = 0
- throwforce = 0
- w_class = WEIGHT_CLASS_TINY
diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm
index 7de9e83581fe..b030899d04c2 100644
--- a/code/modules/station_goals/bsa.dm
+++ b/code/modules/station_goals/bsa.dm
@@ -120,7 +120,7 @@
name = "Bluespace Artillery"
desc = "Long range bluespace artillery."
icon = 'icons/obj/lavaland/cannon.dmi'
- icon_state = "orbital_cannon1"
+ icon_state = "cannon_west"
var/static/mutable_appearance/top_layer
var/ex_power = 3
var/power_used_per_shot = 2000000 //enough to kil standard apc - todo : make this use wires instead and scale explosion power with it
diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm
index 08ba9bf30e14..05dffd8b4ffd 100644
--- a/code/modules/surgery/bodyparts/head.dm
+++ b/code/modules/surgery/bodyparts/head.dm
@@ -2,7 +2,7 @@
name = BODY_ZONE_HEAD
desc = "Didn't make sense not to live for fun, your brain gets smart but your head gets dumb."
icon = 'icons/mob/human_parts_greyscale.dmi'
- icon_state = "default_human_head"
+ icon_state = "human_head"
max_damage = 200
body_zone = BODY_ZONE_HEAD
body_part = HEAD
diff --git a/code/modules/surgery/bodyparts/parts.dm b/code/modules/surgery/bodyparts/parts.dm
index 57d20bc3952a..5f89d15aa95f 100644
--- a/code/modules/surgery/bodyparts/parts.dm
+++ b/code/modules/surgery/bodyparts/parts.dm
@@ -2,7 +2,7 @@
/obj/item/bodypart/chest
name = BODY_ZONE_CHEST
desc = "It's impolite to stare at a person's chest."
- icon_state = "human_chest"
+ icon_state = "human_chest_m"
max_damage = 200
body_zone = BODY_ZONE_CHEST
body_part = CHEST
diff --git a/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm
index 0e3de53f8838..d389ec5cc56b 100644
--- a/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm
+++ b/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm
@@ -1,31 +1,37 @@
/obj/item/bodypart/head/ethereal
icon = 'icons/mob/species/ethereal/bodyparts.dmi'
+ icon_state = "ethereal_head"
limb_id = SPECIES_ETHEREAL
is_dimorphic = FALSE
uses_mutcolor = TRUE
/obj/item/bodypart/chest/ethereal
icon = 'icons/mob/species/ethereal/bodyparts.dmi'
+ icon_state = "ethereal_chest"
limb_id = SPECIES_ETHEREAL
is_dimorphic = FALSE
uses_mutcolor = TRUE
/obj/item/bodypart/l_arm/ethereal
icon = 'icons/mob/species/ethereal/bodyparts.dmi'
+ icon_state = "ethereal_l_arm"
limb_id = SPECIES_ETHEREAL
uses_mutcolor = TRUE
/obj/item/bodypart/r_arm/ethereal
icon = 'icons/mob/species/ethereal/bodyparts.dmi'
+ icon_state = "ethereal_r_arm"
limb_id = SPECIES_ETHEREAL
uses_mutcolor = TRUE
/obj/item/bodypart/leg/left/ethereal
icon = 'icons/mob/species/ethereal/bodyparts.dmi'
+ icon_state = "ethereal_l_leg"
limb_id = SPECIES_ETHEREAL
uses_mutcolor = TRUE
/obj/item/bodypart/leg/right/ethereal
icon = 'icons/mob/species/ethereal/bodyparts.dmi'
+ icon_state = "ethereal_r_leg"
limb_id = SPECIES_ETHEREAL
uses_mutcolor = TRUE
diff --git a/code/modules/surgery/bodyparts/species_parts/ipc_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/ipc_bodyparts.dm
index d58d647d57e0..dc162eadfe5e 100644
--- a/code/modules/surgery/bodyparts/species_parts/ipc_bodyparts.dm
+++ b/code/modules/surgery/bodyparts/species_parts/ipc_bodyparts.dm
@@ -1,6 +1,7 @@
/obj/item/bodypart/head/ipc
static_icon = 'icons/mob/species/ipc/bodyparts.dmi'
icon = 'icons/mob/species/ipc/bodyparts.dmi'
+ icon_state = "synth_head"
limb_id = "synth" //Overriden in /species/ipc/replace_body()
is_dimorphic = FALSE
should_draw_greyscale = FALSE
@@ -16,6 +17,7 @@
/obj/item/bodypart/chest/ipc
static_icon = 'icons/mob/species/ipc/bodyparts.dmi'
icon = 'icons/mob/species/ipc/bodyparts.dmi'
+ icon_state = "synth_chest"
limb_id = "synth"
is_dimorphic = FALSE
should_draw_greyscale = FALSE
@@ -32,6 +34,7 @@
/obj/item/bodypart/l_arm/ipc
static_icon = 'icons/mob/species/ipc/bodyparts.dmi'
icon = 'icons/mob/species/ipc/bodyparts.dmi'
+ icon_state = "synth_l_arm"
limb_id = "synth"
should_draw_greyscale = FALSE
bodytype = BODYTYPE_HUMANOID | BODYTYPE_ROBOTIC
@@ -47,6 +50,7 @@
/obj/item/bodypart/r_arm/ipc
static_icon = 'icons/mob/species/ipc/bodyparts.dmi'
icon = 'icons/mob/species/ipc/bodyparts.dmi'
+ icon_state = "synth_r_arm"
limb_id = "synth"
should_draw_greyscale = FALSE
bodytype = BODYTYPE_HUMANOID | BODYTYPE_ROBOTIC
@@ -62,6 +66,7 @@
/obj/item/bodypart/leg/left/ipc
static_icon = 'icons/mob/species/ipc/bodyparts.dmi'
icon = 'icons/mob/species/ipc/bodyparts.dmi'
+ icon_state = "synth_l_leg"
limb_id = "synth"
should_draw_greyscale = FALSE
bodytype = BODYTYPE_HUMANOID | BODYTYPE_ROBOTIC
@@ -77,6 +82,7 @@
/obj/item/bodypart/leg/right/ipc
static_icon = 'icons/mob/species/ipc/bodyparts.dmi'
icon = 'icons/mob/species/ipc/bodyparts.dmi'
+ icon_state = "synth_r_leg"
limb_id = "synth"
should_draw_greyscale = FALSE
bodytype = BODYTYPE_HUMANOID | BODYTYPE_ROBOTIC
diff --git a/code/modules/surgery/bodyparts/species_parts/kepori_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/kepori_bodyparts.dm
index 5764d355db2a..9d512c6e0c16 100644
--- a/code/modules/surgery/bodyparts/species_parts/kepori_bodyparts.dm
+++ b/code/modules/surgery/bodyparts/species_parts/kepori_bodyparts.dm
@@ -1,5 +1,6 @@
/obj/item/bodypart/head/kepori
icon = 'icons/mob/species/kepori/bodyparts.dmi'
+ icon_state = "kepori_head"
limb_id = SPECIES_KEPORI
uses_mutcolor = TRUE
is_dimorphic = FALSE
@@ -7,6 +8,7 @@
/obj/item/bodypart/chest/kepori
icon = 'icons/mob/species/kepori/bodyparts.dmi'
+ icon_state = "kepori_chest"
uses_mutcolor = TRUE
limb_id = SPECIES_KEPORI
is_dimorphic = FALSE
@@ -15,24 +17,28 @@
/obj/item/bodypart/l_arm/kepori
icon = 'icons/mob/species/kepori/bodyparts.dmi'
+ icon_state = "kepori_l_arm"
uses_mutcolor = TRUE
limb_id = SPECIES_KEPORI
bodytype = BODYTYPE_KEPORI | BODYTYPE_ORGANIC
/obj/item/bodypart/r_arm/kepori
icon = 'icons/mob/species/kepori/bodyparts.dmi'
+ icon_state = "kepori_r_arm"
uses_mutcolor = TRUE
limb_id = SPECIES_KEPORI
bodytype = BODYTYPE_KEPORI | BODYTYPE_ORGANIC
/obj/item/bodypart/leg/left/kepori
icon = 'icons/mob/species/kepori/bodyparts.dmi'
+ icon_state = "kepori_l_leg"
uses_mutcolor = TRUE
limb_id = SPECIES_KEPORI
bodytype = BODYTYPE_KEPORI | BODYTYPE_ORGANIC
/obj/item/bodypart/leg/right/kepori
icon = 'icons/mob/species/kepori/bodyparts.dmi'
+ icon_state = "kepori_r_leg"
uses_mutcolor = TRUE
limb_id = SPECIES_KEPORI
bodytype = BODYTYPE_KEPORI | BODYTYPE_ORGANIC
diff --git a/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm
index 9977afc7ca52..b5be2b890d8c 100644
--- a/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm
+++ b/code/modules/surgery/bodyparts/species_parts/lizard_bodyparts.dm
@@ -1,32 +1,38 @@
/obj/item/bodypart/head/lizard
icon = 'icons/mob/species/lizard/bodyparts.dmi'
+ icon_state = "lizard_head"
limb_id = SPECIES_LIZARD
uses_mutcolor = TRUE
is_dimorphic = FALSE
/obj/item/bodypart/chest/lizard
icon = 'icons/mob/species/lizard/bodyparts.dmi'
+ icon_state = "lizard_chest"
uses_mutcolor = TRUE
limb_id = SPECIES_LIZARD
is_dimorphic = FALSE
/obj/item/bodypart/l_arm/lizard
icon = 'icons/mob/species/lizard/bodyparts.dmi'
+ icon_state = "lizard_l_arm"
uses_mutcolor = TRUE
limb_id = SPECIES_LIZARD
/obj/item/bodypart/r_arm/lizard
icon = 'icons/mob/species/lizard/bodyparts.dmi'
+ icon_state = "lizard_r_arm"
uses_mutcolor = TRUE
limb_id = SPECIES_LIZARD
/obj/item/bodypart/leg/left/lizard
icon = 'icons/mob/species/lizard/bodyparts.dmi'
+ icon_state = "lizard_l_leg"
uses_mutcolor = TRUE
limb_id = SPECIES_LIZARD
/obj/item/bodypart/leg/right/lizard
icon = 'icons/mob/species/lizard/bodyparts.dmi'
+ icon_state = "lizard_r_leg"
uses_mutcolor = TRUE
limb_id = SPECIES_LIZARD
diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm
index 88323f0056a8..24b413fd8f7d 100644
--- a/code/modules/surgery/surgery.dm
+++ b/code/modules/surgery/surgery.dm
@@ -135,14 +135,13 @@
/obj/item/disk/surgery
name = "Surgery Procedure Disk"
desc = "A disk that contains advanced surgery procedures, must be loaded into an Operating Console."
- icon_state = "datadisk1"
+ illustration = "med"
custom_materials = list(/datum/material/iron=300, /datum/material/glass=100)
var/list/surgeries
/obj/item/disk/surgery/debug
name = "Debug Surgery Disk"
desc = "A disk that contains all existing surgery procedures."
- icon_state = "datadisk1"
custom_materials = list(/datum/material/iron=300, /datum/material/glass=100)
/obj/item/disk/surgery/debug/Initialize()
diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm
index afb4beecae14..4b4e10edd7ac 100644
--- a/code/modules/unit_tests/_unit_tests.dm
+++ b/code/modules/unit_tests/_unit_tests.dm
@@ -62,8 +62,13 @@
#define TEST_OUTPUT_GREEN(text) (text)
#endif
+
#ifdef BASIC_TESTS
+//#include "icons/inhands.dm"
+#include "icons/missing_icons.dm"
+#include "icons/spritesheets.dm"
+#include "icons/worn_icons.dm"
#include "anchored_mobs.dm"
#include "autowiki.dm"
#include "bespoke_id.dm"
diff --git a/code/modules/unit_tests/icons/inhands.dm b/code/modules/unit_tests/icons/inhands.dm
new file mode 100644
index 000000000000..858c6d2f2840
--- /dev/null
+++ b/code/modules/unit_tests/icons/inhands.dm
@@ -0,0 +1,94 @@
+/// Makes sure items with defined item_states... actually have icons that exist!
+/datum/unit_test/defined_item_states
+ var/static/list/possible_icon_states = list()
+ var/fallback_log_message
+ var/unset_inhand_var_message
+ /// additional_inhands_location is for downstream modularity support. as an example, for skyrat's usage, set additional_inhands_location = "modular_skyrat/master_files/icons/mob/inhands/"
+ /// Make sure this location is also present in tools/deploy.sh
+ /// If you need additional paths ontop of this second one, you can add another generate_possible_icon_states_list("your/folder/path/inhands/") below the if(additional_inhands_location) block in Run(), and make sure to add that path to tools/deploy.sh as well.
+ var/additional_inhands_location = null
+
+/datum/unit_test/defined_item_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_item_states/Run()
+ generate_possible_icon_states_list()
+ if(additional_inhands_location)
+ generate_possible_icon_states_list(additional_inhands_location)
+
+ //Add EVEN MORE paths if needed here!
+ //generate_possible_icon_states_list("your/folder/path/inhands/")
+
+ 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
+
+ var/lefthand_file = initial(item_path.lefthand_file)
+ var/righthand_file = initial(item_path.righthand_file)
+
+ var/item_state = initial(item_path.item_state)
+ if(!item_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 item_state value[missing_var_message]"
+ continue
+
+ var/match_message
+ if(item_state in possible_icon_states)
+ for(var/file_place in possible_icon_states[item_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\titem_state = \"[item_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\titem_state = \"[item_state]\"[match_message]")
+ else
+ missing_left = !icon_exists(lefthand_file, item_state)
+ if(missing_left && icon_exists(lefthand_file, ""))
+ 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\titem_state = \"[item_state]\"[match_message]")
+ else
+ missing_right = !icon_exists(righthand_file, item_state)
+ if(missing_right && icon_exists(righthand_file, ""))
+ 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\titem_state = \"[item_state]\""
+ continue
+ TEST_FAIL("Missing inhand sprites for [item_path] in both '[lefthand_file]' & '[righthand_file]'.\n\titem_state = \"[item_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\titem_state = \"[item_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\titem_state = \"[item_state]\"[match_message]")
+
+ if(fallback_log_message)
+ TEST_FAIL("Invalid item_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/icons/missing_icons.dm b/code/modules/unit_tests/icons/missing_icons.dm
new file mode 100644
index 000000000000..f548d2844a0f
--- /dev/null
+++ b/code/modules/unit_tests/icons/missing_icons.dm
@@ -0,0 +1,57 @@
+/// Makes sure objects actually have icons that exist!
+/datum/unit_test/missing_icons
+ var/static/list/possible_icon_states = list()
+ /// additional_icon_location is for downstream modularity support.
+ /// Make sure this location is also present in tools/deploy.sh
+ /// If you need additional paths ontop of this second one, you can add another generate_possible_icon_states_list("your/folder/path/") below the if(additional_icon_location) block in Run(), and make sure to add that path to tools/deploy.sh as well.
+ var/additional_icon_location = null
+
+/datum/unit_test/missing_icons/proc/generate_possible_icon_states_list(directory_path)
+ if(!directory_path)
+ directory_path = "icons/obj/"
+ 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/missing_icons/Run()
+ generate_possible_icon_states_list()
+ generate_possible_icon_states_list("icons/effects/")
+ if(additional_icon_location)
+ generate_possible_icon_states_list(additional_icon_location)
+
+ //Add EVEN MORE paths if needed here!
+ //generate_possible_icon_states_list("your/folder/path/")
+ var/list/bad_list = list()
+ for(var/obj/obj_path as anything in subtypesof(/obj))
+ if(ispath(obj_path, /obj/item))
+ var/obj/item/item_path = obj_path
+ if(initial(item_path.item_flags) & ABSTRACT)
+ continue
+
+ var/icon = initial(obj_path.icon)
+ if(isnull(icon))
+ continue
+ var/icon_state = initial(obj_path.icon_state)
+ if(isnull(icon_state))
+ continue
+
+ if(length(bad_list) && (icon_state in bad_list[icon]))
+ continue
+
+ if(icon_exists(icon, icon_state))
+ continue
+
+ if(icon_state == "nothing")
+ continue
+
+ bad_list[icon] += list(icon_state)
+
+ var/match_message
+ if(icon_state in possible_icon_states)
+ for(var/file_place in possible_icon_states[icon_state])
+ match_message += (match_message ? " & '[file_place]'" : " - Matching sprite found in: '[file_place]'")
+ TEST_FAIL("Missing icon_state for [obj_path] in '[icon]'.\n\ticon_state = \"[icon_state]\"[match_message]")
+
diff --git a/code/modules/unit_tests/icons/spritesheets.dm b/code/modules/unit_tests/icons/spritesheets.dm
new file mode 100644
index 000000000000..c7c16c6535e8
--- /dev/null
+++ b/code/modules/unit_tests/icons/spritesheets.dm
@@ -0,0 +1,11 @@
+///Checks if spritesheet assets contain icon states with invalid names
+/datum/unit_test/spritesheets
+
+/datum/unit_test/spritesheets/Run()
+ for(var/datum/asset/spritesheet/sheet as anything in subtypesof(/datum/asset/spritesheet))
+ if(!initial(sheet.name)) //Ignore abstract types
+ continue
+ sheet = get_asset_datum(sheet)
+ for(var/sprite_name in sheet.sprites)
+ if(!sprite_name)
+ TEST_FAIL("Spritesheet [sheet.type] has a nameless icon state.")
diff --git a/code/modules/unit_tests/icons/worn_icons.dm b/code/modules/unit_tests/icons/worn_icons.dm
new file mode 100644
index 000000000000..eb2d84b73f68
--- /dev/null
+++ b/code/modules/unit_tests/icons/worn_icons.dm
@@ -0,0 +1,116 @@
+/// Makes sure suit slot items aren't using CS:S fallbacks.
+/datum/unit_test/mob_overlay_icons
+ var/static/list/possible_icon_states = list()
+ /// additional_icon_location is for downstream modularity support for finding missing sprites in additonal DMI file locations.
+ /// Make sure this location is also present in tools/deploy.sh
+ /// If you need additional paths ontop of this second one, you can add another generate_possible_icon_states_list("your/folder/path/") below the if(additional_icon_location) block in Run(), and make sure to add that path to tools/deploy.sh as well.
+ var/additional_icon_location = null
+
+/datum/unit_test/mob_overlay_icons/proc/generate_possible_icon_states_list(directory_path)
+ if(!directory_path)
+ directory_path = "icons/mob/clothing/"
+ 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/mob_overlay_icons/Run()
+ generate_possible_icon_states_list()
+ if(additional_icon_location)
+ generate_possible_icon_states_list(additional_icon_location)
+
+ var/list/already_warned_icons = list()
+
+ for(var/obj/item/item_path as anything in (subtypesof(/obj/item/clothing)))
+ var/cached_slot_flags = initial(item_path.slot_flags)
+ if(!cached_slot_flags || (cached_slot_flags & ITEM_SLOT_LPOCKET) || (cached_slot_flags & ITEM_SLOT_RPOCKET) || initial(item_path.item_flags) & ABSTRACT)
+ continue
+
+ var/mob_overlay_icon = initial(item_path.mob_overlay_icon) //override icon file. where our sprite is contained if set. (ie modularity stuff)
+ var/mob_overlay_state = initial(item_path.mob_overlay_state) //overrides icon_state.
+ var/icon_state = mob_overlay_state || initial(item_path.icon_state) //icon_state. what sprite name we are looking for.
+
+
+ if(isnull(icon_state))
+ continue //no sprite for the item.
+ if(icon_state in already_warned_icons)
+ continue
+
+ var/match_message
+ if(icon_state in possible_icon_states)
+ for(var/file_place in possible_icon_states[icon_state])
+ match_message += (match_message ? " & '[file_place]'" : " - Matching sprite found in: '[file_place]'")
+
+ if(mob_overlay_icon) //easiest to check since we override everything. this automatically includes downstream support.
+ if(!(icon_state in icon_states(mob_overlay_icon, 1)))
+ TEST_FAIL("[item_path] using invalid [mob_overlay_state ? "mob_overlay_state" : "icon_state"], \"[icon_state]\" in mob_overlay_icon override file, '[mob_overlay_icon]'[match_message]")
+ continue
+
+ var/icon_file //checks against all the default icon locations if one isn't defined.
+ var/fail_reasons
+ var/spacer
+
+
+ if(cached_slot_flags & ITEM_SLOT_BACK)
+ icon_file = 'icons/mob/clothing/back.dmi'
+
+ if(!(icon_state in icon_states(icon_file, 1)))
+ already_warned_icons += icon_state
+ fail_reasons += "[item_path] using invalid [mob_overlay_state ? "mob_overlay_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]"
+ spacer = "\n\t"
+
+ /*
+ if(cached_slot_flags & ITEM_SLOT_ID)
+ icon_file = 'icons/mob/clothing/id.dmi'
+ if(!(icon_state in icon_states(icon_file, 1)))
+ already_warned_icons += icon_state
+ fail_reasons += "[spacer][item_path] using invalid [mob_overlay_state ? "mob_overlay_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]"
+ spacer = "\n\t"
+ */
+
+ if(cached_slot_flags & ITEM_SLOT_GLOVES)
+ icon_file = 'icons/mob/clothing/hands.dmi'
+ if(!(icon_state in icon_states(icon_file, 1)))
+ already_warned_icons += icon_state
+ fail_reasons += "[spacer][item_path] using invalid [mob_overlay_state ? "mob_overlay_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]"
+ spacer = "\n\t"
+
+ if(cached_slot_flags & ITEM_SLOT_EYES)
+ icon_file = 'icons/mob/clothing/eyes.dmi'
+ if(!(icon_state in icon_states(icon_file, 1)))
+ already_warned_icons += icon_state
+ fail_reasons += "[spacer][item_path] using invalid [mob_overlay_state ? "mob_overlay_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]"
+ spacer = "\n\t"
+
+ if(cached_slot_flags & ITEM_SLOT_EARS)
+ icon_file = 'icons/mob/clothing/ears.dmi'
+ if(!(icon_state in icon_states(icon_file, 1)))
+ already_warned_icons += icon_state
+ fail_reasons += "[spacer][item_path] using invalid [mob_overlay_state ? "mob_overlay_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]"
+ spacer = "\n\t"
+
+ if(cached_slot_flags & ITEM_SLOT_NECK)
+ icon_file = 'icons/mob/clothing/neck.dmi'
+ if(!(icon_state in icon_states(icon_file, 1)))
+ already_warned_icons += icon_state
+ fail_reasons += "[spacer][item_path] using invalid [mob_overlay_state ? "mob_overlay_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]"
+ spacer = "\n\t"
+
+ if(cached_slot_flags & ITEM_SLOT_MASK)
+ icon_file = 'icons/mob/clothing/mask.dmi'
+ if(!(icon_state in icon_states(icon_file, 1)))
+ already_warned_icons += icon_state
+ fail_reasons += "[spacer][item_path] using invalid [mob_overlay_state ? "mob_overlay_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]"
+ spacer = "\n\t"
+
+ if(cached_slot_flags & ITEM_SLOT_BELT)
+ icon_file = 'icons/mob/clothing/belt.dmi'
+ if(!(icon_state in icon_states(icon_file, 1)))
+ already_warned_icons += icon_state
+ fail_reasons += "[spacer][item_path] using invalid [mob_overlay_state ? "mob_overlay_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]"
+ spacer = "\n\t"
+
+ if(fail_reasons)
+ TEST_FAIL(fail_reasons)
diff --git a/code/modules/unit_tests/outfit_sanity.dm b/code/modules/unit_tests/outfit_sanity.dm
index fee653cd626f..aca1d210fbf0 100644
--- a/code/modules/unit_tests/outfit_sanity.dm
+++ b/code/modules/unit_tests/outfit_sanity.dm
@@ -19,6 +19,8 @@
r_hand = /obj/item/stack/sheet/glass/five
/datum/unit_test/outfit_sanity/Run()
+ var/datum/outfit/prototype_outfit = /datum/outfit
+ var/prototype_name = initial(prototype_outfit.name)
var/mob/living/carbon/human/H = allocate(/mob/living/carbon/human)
for (var/outfit_type in subtypesof(/datum/outfit))
@@ -27,11 +29,13 @@
qdel(I)
var/datum/outfit/outfit = new outfit_type
+
+ if(outfit.name == prototype_name)
+ TEST_FAIL("[outfit.type]'s name is invalid! Uses default outfit name!")
outfit.pre_equip(H, TRUE)
CHECK_OUTFIT_SLOT(uniform, ITEM_SLOT_ICLOTHING)
CHECK_OUTFIT_SLOT(suit, ITEM_SLOT_OCLOTHING)
- CHECK_OUTFIT_SLOT(back, ITEM_SLOT_BACK)
CHECK_OUTFIT_SLOT(belt, ITEM_SLOT_BELT)
CHECK_OUTFIT_SLOT(gloves, ITEM_SLOT_GLOVES)
CHECK_OUTFIT_SLOT(shoes, ITEM_SLOT_FEET)
@@ -40,11 +44,11 @@
CHECK_OUTFIT_SLOT(neck, ITEM_SLOT_NECK)
CHECK_OUTFIT_SLOT(ears, ITEM_SLOT_EARS)
CHECK_OUTFIT_SLOT(glasses, ITEM_SLOT_EYES)
+ CHECK_OUTFIT_SLOT(back, ITEM_SLOT_BACK)
CHECK_OUTFIT_SLOT(id, ITEM_SLOT_ID)
- CHECK_OUTFIT_SLOT(suit_store, ITEM_SLOT_SUITSTORE)
CHECK_OUTFIT_SLOT(l_pocket, ITEM_SLOT_LPOCKET)
CHECK_OUTFIT_SLOT(r_pocket, ITEM_SLOT_RPOCKET)
-
+ CHECK_OUTFIT_SLOT(suit_store, ITEM_SLOT_SUITSTORE)
if (outfit.backpack_contents || outfit.box)
var/list/backpack_contents = outfit.backpack_contents?.Copy()
if (outfit.box)
diff --git a/code/modules/uplink/uplink_devices.dm b/code/modules/uplink/uplink_devices.dm
index ef1a324a8e48..f82cb4c6f68e 100644
--- a/code/modules/uplink/uplink_devices.dm
+++ b/code/modules/uplink/uplink_devices.dm
@@ -7,8 +7,8 @@
name = "shortwave radio"
icon = 'icons/obj/radio.dmi'
icon_state = "radio"
- item_state = "walkietalkie"
desc = "A basic handheld radio that communicates with local telecommunication networks."
+ item_state = "radio"
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
dog_fashion = /datum/dog_fashion/back
diff --git a/code/modules/vehicles/_vehicle.dm b/code/modules/vehicles/_vehicle.dm
index 8ea48e4975c1..46d2a76cfe2b 100644
--- a/code/modules/vehicles/_vehicle.dm
+++ b/code/modules/vehicles/_vehicle.dm
@@ -2,7 +2,7 @@
name = "generic vehicle"
desc = "Yell at coderbus."
icon = 'icons/obj/vehicles.dmi'
- icon_state = "fuckyou"
+ icon_state = "atv" //Used to be "fuckyou" which hurt my feewings
max_integrity = 300
armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60)
density = TRUE
diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm
index 549f6f744f1f..20c270ebb885 100644
--- a/code/modules/vending/wardrobes.dm
+++ b/code/modules/vending/wardrobes.dm
@@ -169,8 +169,7 @@
/obj/item/clothing/head/soft/black = 2,
/obj/item/clothing/mask/bandana/skull = 2
)
- contraband = list(/obj/item/clothing/suit/hooded/techpriest = 2,
- /obj/item/clothing/suit/hooded/enginseer = 2, // WS edit: enginsineer robes
+ contraband = list(/obj/item/clothing/suit/hooded/enginseer = 2, // WS edit: enginsineer robes
/obj/item/organ/tongue/robot = 2)
refill_canister = /obj/item/vending_refill/wardrobe/robo_wardrobe
extra_price = 300
@@ -305,7 +304,7 @@
/obj/item/clothing/under/rank/civilian/chef/skirt = 2,
///obj/item/clothing/under/rank/chef = 3,//WS edit - Better security jumpsuit sprites
/obj/item/clothing/head/chefhat = 1,
- /obj/item/clothing/under/rank/civilian/cookjorts = 2,
+ /obj/item/clothing/under/shorts/cookjorts = 2,
/obj/item/clothing/shoes/cookflops = 2,
/obj/item/reagent_containers/glass/rag = 1,
/obj/item/clothing/accessory/armband/med = 4,
diff --git a/icons/effects/alphacolors.dmi b/icons/effects/alphacolors.dmi
index c3dbcaee39be..2718f87d36b3 100644
Binary files a/icons/effects/alphacolors.dmi and b/icons/effects/alphacolors.dmi differ
diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi
index 4fad073974aa..398d4589ad71 100644
Binary files a/icons/mob/clothing/belt.dmi and b/icons/mob/clothing/belt.dmi differ
diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi
index 29d92de9137a..d705fb48c01f 100644
Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ
diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi
index cd64b37eaf3c..9443ebfbc615 100644
Binary files a/icons/mob/clothing/neck.dmi and b/icons/mob/clothing/neck.dmi differ
diff --git a/icons/mob/clothing/under/security.dmi b/icons/mob/clothing/under/security.dmi
index 61b1d7983225..d4a18a6ea083 100644
Binary files a/icons/mob/clothing/under/security.dmi and b/icons/mob/clothing/under/security.dmi differ
diff --git a/icons/mob/inhands/clothing/ears_lefthand.dmi b/icons/mob/inhands/clothing/ears_lefthand.dmi
new file mode 100644
index 000000000000..61b186a7b21c
Binary files /dev/null and b/icons/mob/inhands/clothing/ears_lefthand.dmi differ
diff --git a/icons/mob/inhands/clothing/ears_righthand.dmi b/icons/mob/inhands/clothing/ears_righthand.dmi
new file mode 100644
index 000000000000..39558ef9496e
Binary files /dev/null and b/icons/mob/inhands/clothing/ears_righthand.dmi differ
diff --git a/icons/mob/inhands/clothing/glasses_lefthand.dmi b/icons/mob/inhands/clothing/glasses_lefthand.dmi
new file mode 100644
index 000000000000..34c9e47dc24b
Binary files /dev/null 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
new file mode 100644
index 000000000000..43282d028c6a
Binary files /dev/null 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
new file mode 100644
index 000000000000..19d3ce28517e
Binary files /dev/null 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
new file mode 100644
index 000000000000..bca7fd504359
Binary files /dev/null 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
new file mode 100644
index 000000000000..d63c5c7d673a
Binary files /dev/null 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
new file mode 100644
index 000000000000..c34438f09928
Binary files /dev/null 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
new file mode 100644
index 000000000000..33be3dfee0b5
Binary files /dev/null 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
new file mode 100644
index 000000000000..e34e8cdd2c72
Binary files /dev/null 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
new file mode 100644
index 000000000000..7e1a796f1fcf
Binary files /dev/null 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
new file mode 100644
index 000000000000..383f01dc49be
Binary files /dev/null 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
new file mode 100644
index 000000000000..8b9fa5256a93
Binary files /dev/null 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
new file mode 100644
index 000000000000..989b7c0860ae
Binary files /dev/null and b/icons/mob/inhands/clothing/suits_righthand.dmi differ
diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi
index f5f95c211298..aa8808f81ef2 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 f626c077ced5..9211c2998e49 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/misc/devices_lefthand.dmi b/icons/mob/inhands/misc/devices_lefthand.dmi
index b84d8a8978ce..3acab744f0b7 100644
Binary files a/icons/mob/inhands/misc/devices_lefthand.dmi and b/icons/mob/inhands/misc/devices_lefthand.dmi differ
diff --git a/icons/mob/inhands/misc/devices_righthand.dmi b/icons/mob/inhands/misc/devices_righthand.dmi
index 47e3260c6ef6..4d23e421625f 100644
Binary files a/icons/mob/inhands/misc/devices_righthand.dmi and b/icons/mob/inhands/misc/devices_righthand.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index 7a1b973759c1..d5707bce6ada 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi
index 4342a2780f9c..cbe3366557f0 100644
Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ
diff --git a/icons/obj/clothing/suits/armor.dmi b/icons/obj/clothing/suits/armor.dmi
index a81ec697719f..9eaa67f04a42 100644
Binary files a/icons/obj/clothing/suits/armor.dmi and b/icons/obj/clothing/suits/armor.dmi differ
diff --git a/icons/obj/clothing/under/security.dmi b/icons/obj/clothing/under/security.dmi
index 32aea700793d..67e8868958f4 100644
Binary files a/icons/obj/clothing/under/security.dmi and b/icons/obj/clothing/under/security.dmi differ
diff --git a/icons/obj/clothing/under/syndicate.dmi b/icons/obj/clothing/under/syndicate.dmi
index 02d8e138b970..1a2fcad74b84 100644
Binary files a/icons/obj/clothing/under/syndicate.dmi and b/icons/obj/clothing/under/syndicate.dmi differ
diff --git a/icons/obj/drinks/bottle.dmi b/icons/obj/drinks/bottle.dmi
new file mode 100644
index 000000000000..cf74d73796c8
Binary files /dev/null and b/icons/obj/drinks/bottle.dmi differ
diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks/drinks.dmi
similarity index 100%
rename from icons/obj/drinks.dmi
rename to icons/obj/drinks/drinks.dmi
diff --git a/icons/obj/food/containers.dmi b/icons/obj/food/containers.dmi
index aca64240a1cc..118ce7693637 100644
Binary files a/icons/obj/food/containers.dmi and b/icons/obj/food/containers.dmi differ
diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi
index 0856132a4751..12798b6eb2ac 100644
Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index ad6944ebbbcd..90354fdf41db 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ
diff --git a/icons/obj/wallcloset.dmi b/icons/obj/wallcloset.dmi
index 2d2288db5e80..6d41f0ecee85 100644
Binary files a/icons/obj/wallcloset.dmi and b/icons/obj/wallcloset.dmi differ