diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 80633148e9..a5190af23a 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -164,6 +164,7 @@ #define TRAIT_NO_MIDROUND_ANTAG "no-midround-antag" //can't be turned into an antag by random events #define TRAIT_PUGILIST "pugilist" //This guy punches people for a living #define TRAIT_KI_VAMPIRE "ki-vampire" //when someone with this trait rolls maximum damage on a punch and stuns the target, they regain some stamina and do clone damage +#define TRAIT_MAULER "mauler" // this guy punches the shit out of people to hurt them, not to drain their stamina #define TRAIT_PASSTABLE "passtable" #define TRAIT_GIANT "giant" #define TRAIT_DWARF "dwarf" diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index b4c114eb6a..65fdbb6f1c 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -315,7 +315,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb return if(loc == user && current_equipped_slot && current_equipped_slot != SLOT_HANDS) if(current_equipped_slot in user.check_obscured_slots()) - to_chat(src, "You are unable to unequip that while wearing other garments over it!") + to_chat(user, "You are unable to unequip that while wearing other garments over it!") return FALSE if(resistance_flags & ON_FIRE) @@ -383,7 +383,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb return if(loc == user && current_equipped_slot && current_equipped_slot != SLOT_HANDS) if(current_equipped_slot in user.check_obscured_slots()) - to_chat(src, "You are unable to unequip that while wearing other garments over it!") + to_chat(user, "You are unable to unequip that while wearing other garments over it!") return FALSE diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 9f91d2c5e0..31f11a199c 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -73,7 +73,7 @@ if(user.grab_state < GRAB_AGGRESSIVE) to_chat(user, "You need a better grip to do that!") return - if(user.grab_state >= GRAB_NECK) + if(user.grab_state >= GRAB_NECK || HAS_TRAIT(user, TRAIT_MAULER)) tablelimbsmash(user, pushed_mob) else tablepush(user, pushed_mob) @@ -147,7 +147,7 @@ pushed_mob.Knockdown(30) var/obj/item/bodypart/banged_limb = pushed_mob.get_bodypart(user.zone_selected) || pushed_mob.get_bodypart(BODY_ZONE_HEAD) var/extra_wound = 0 - if(HAS_TRAIT(user, TRAIT_HULK)) + if(HAS_TRAIT(user, TRAIT_HULK) || HAS_TRAIT(user, TRAIT_MAULER)) extra_wound = 20 banged_limb.receive_damage(30, wound_bonus = extra_wound) pushed_mob.apply_damage(60, STAMINA) diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index 24288be078..05c265bc15 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -6,6 +6,10 @@ Shield Armor Tentacles + Hatterhat Additions: + claws! (glove slot) + jagged (thieves') claws + bone gauntlets for punching dudes */ @@ -89,7 +93,7 @@ return 1 var/mob/living/carbon/human/H = user if(istype(H.wear_suit, suit_type) || istype(H.head, helmet_type)) - H.visible_message("[H] casts off [H.p_their()] [suit_name_simple]!", "We cast off our [suit_name_simple].", "You hear the organic matter ripping and tearing!") + H.visible_message("[H] casts off [H.p_their()] [suit_name_simple]!", "We cast off our [suit_name_simple].", "You hear organic matter ripping and tearing!") H.temporarilyRemoveItemFromInventory(H.head, TRUE) //The qdel on dropped() takes care of it H.temporarilyRemoveItemFromInventory(H.wear_suit, TRUE) H.update_inv_wear_suit() @@ -461,7 +465,7 @@ if(--remaining_uses < 1) if(ishuman(loc)) var/mob/living/carbon/human/H = loc - H.visible_message("With a sickening crunch, [H] reforms [H.p_their()] shield into an arm!", "We assimilate our shield into our body", "With a sickening crunch, [H] reforms [H.p_their()] shield into an arm!", "We assimilate our shield into our body.", "With a sickening crunch, [H] reforms [H.p_their()] [glove_name_simple] into hands!", "We assimilate our [glove_name_simple].", "You hear organic matter ripping and tearing!") + H.temporarilyRemoveItemFromInventory(H.gloves, TRUE) //The qdel on dropped() takes care of it + H.update_inv_gloves() + playsound(H.loc, 'sound/effects/blobattack.ogg', 30, 1) + if(blood_on_castoff) + H.add_splatter_floor() + playsound(H.loc, 'sound/effects/splat.ogg', 50, 1) //So real sounds + + changeling.chem_recharge_slowdown -= recharge_slowdown + return 1 + +/obj/effect/proc_holder/changeling/gloves/on_refund(mob/user) + if(!ishuman(user)) + return + action.Remove(user) + var/mob/living/carbon/human/H = user + check_gloves(H) + +/obj/effect/proc_holder/changeling/gloves/sting_action(mob/living/carbon/human/user) + if(!user.canUnEquip(user.gloves)) + to_chat(user, "\the [user.gloves] is stuck to your body, you cannot grow [glove_name_simple] over it!") + return + + user.dropItemToGround(user.gloves) + + user.equip_to_slot_if_possible(new glove_type(user), SLOT_GLOVES, 1, 1, 1) + playsound(user, 'sound/effects/blobattack.ogg', 30, 1) + var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) + changeling.chem_recharge_slowdown += recharge_slowdown + return TRUE + +/obj/item/clothing/gloves/claws + name = "claws of doing nothing" + desc = "These shouldn't be here." + icon_state = "bracers" + item_state = "bracers" + transfer_prints = TRUE + body_parts_covered = HANDS + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + armor = list("melee" = 20, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 35, "bio" = 35, "rad" = 35, "fire" = 0, "acid" = 0) + +/obj/item/clothing/gloves/claws/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT) + +/obj/item/clothing/gloves/claws/vulture // prying shit off dead/soon to be dead dudes! + name = "jagged claws" + desc = "Good for prying things off of people and looking incredibly creepy." + strip_mod = 2 + +/obj/effect/proc_holder/changeling/gloves/gauntlets + name = "Bone Gauntlets" + desc = "We turn our hands into solid bone and chitin, sacrificing dexterity for raw strength." + helptext = "These grotesque, bone-and-chitin gauntlets are remarkably good at beating victims senseless, and cannot be used in lesser form. This ability is loud, and might cause our blood to react violently to heat." + chemical_cost = 10 // same cost as armblade because its a sidegrade (sacrifice utility for punching people violently) + dna_cost = 2 + loudness = 2 + req_human = 1 + action_icon = 'icons/mob/actions/actions_changeling.dmi' + action_icon_state = "ling_gauntlets" + action_background_icon_state = "bg_ling" + + glove_type = /obj/item/clothing/gloves/fingerless/pugilist/cling // just punch his head off dude + glove_name_simple = "bone gauntlets" + +/obj/item/clothing/gloves/fingerless/pugilist/cling // switches between lesser GotNS and Big Punchy Rib Breaky Hands + name = "hewn bone gauntlets" + icon_state = "ling_gauntlets" + item_state = "ling_gauntlets" + desc = "Rough bone and chitin, pulsing with an abomination barely called \"life\". Good for punching people, not so much for firearms." + transfer_prints = TRUE + body_parts_covered = ARMS|HANDS + cold_protection = ARMS|HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + armor = list("melee" = 20, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 35, "bio" = 35, "rad" = 35, "fire" = 0, "acid" = 0) + enhancement = 9 // first, do harm. all of it. all of the harm. just fuck em up. + wound_enhancement = 9 + var/fast_enhancement = 9 + var/fast_wound_enhancement = 9 + var/slow_enhancement = 20 + var/slow_wound_enhancement = 20 + silent = TRUE + inherited_trait = TRAIT_CHUNKYFINGERS // dummy thicc bone hands + secondary_trait = TRAIT_MAULER // its only violence from here, bucko + var/fasthands = TRUE + +/obj/item/clothing/gloves/fingerless/pugilist/cling/examine(mob/user) + . = ..() + . += "[src] are formed to allow for [fasthands ? "fast, precise strikes" : "crippling, damaging blows"]." + . += "Alt-click them to change between rapid strikes and strong blows." + +/obj/item/clothing/gloves/fingerless/pugilist/cling/AltClick(mob/user) + . = ..() + use_buffs(user, FALSE) // reset + fasthands = !fasthands + if(fasthands) + enhancement = fast_enhancement + wound_enhancement = fast_wound_enhancement + else + enhancement = slow_enhancement // fuck em up kiddo + wound_enhancement = slow_wound_enhancement // really. fuck em up. + to_chat(user, "[src] are now formed to allow for [fasthands ? "fast, precise strikes" : "crippling, damaging blows"].") + addtimer(CALLBACK(src, .proc/use_buffs, user, TRUE), 0.1) // go fuckin get em + +/obj/item/clothing/gloves/fingerless/pugilist/cling/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT) + +/obj/item/clothing/gloves/fingerless/pugilist/cling/equipped(mob/user, slot) + . = ..() + if(current_equipped_slot == SLOT_GLOVES) + to_chat(user, "With [src] formed around our arms, we are ready to fight.") + +/obj/item/clothing/gloves/fingerless/pugilist/cling/dropped(mob/user) + . = ..() + if(wornonce) + to_chat(user, "With [src] assimilated, we feel less ready to punch things.") + +/obj/item/clothing/gloves/fingerless/pugilist/cling/Touch(atom/target, proximity = TRUE) + if(!isliving(target)) + return + var/mob/living/M = loc + if(fasthands) + M.SetNextAction(CLICK_CD_RANGE) // fast punches + else + M.SetNextAction(CLICK_CD_GRABBING) // strong punches + return NO_AUTO_CLICKDELAY_HANDLING | ATTACK_IGNORE_ACTION diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index b5d92fb780..f9f587ae5b 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -20,8 +20,14 @@ body_parts_covered = ARMS cold_protection = ARMS strip_delay = 300 //you can't just yank them off + /// did you ever get around to wearing these or no + var/wornonce = FALSE ///Extra damage through the punch. var/enhancement = 0 //it's a +0 to your punches because it isn't magical + ///extra wound bonus through the punch (MAYBE DON'T BE GENEROUS WITH THIS) + var/wound_enhancement = 0 + /// do we give the flavortext for wearing them + var/silent = FALSE ///Main trait added by the gloves to the user on wear. var/inherited_trait = TRAIT_NOGUNS //what are you, dishonoroable? ///Secondary trait added by the gloves to the user on wear. @@ -29,7 +35,18 @@ /obj/item/clothing/gloves/fingerless/pugilist/equipped(mob/user, slot) . = ..() - if(slot == SLOT_GLOVES) + if(current_equipped_slot == SLOT_GLOVES) + use_buffs(user, TRUE) + wornonce = TRUE + +/obj/item/clothing/gloves/fingerless/pugilist/dropped(mob/user) + . = ..() + if(wornonce) + use_buffs(user, FALSE) + wornonce = FALSE + +/obj/item/clothing/gloves/fingerless/pugilist/proc/use_buffs(mob/user, buff) + if(buff) // tarukaja if(ishuman(user)) var/mob/living/carbon/human/H = user ADD_TRAIT(H, TRAIT_PUGILIST, GLOVE_TRAIT) @@ -37,17 +54,20 @@ ADD_TRAIT(H, secondary_trait, GLOVE_TRAIT) H.dna.species.punchdamagehigh += enhancement H.dna.species.punchdamagelow += enhancement - -/obj/item/clothing/gloves/fingerless/pugilist/dropped(mob/user) - - REMOVE_TRAIT(user, TRAIT_PUGILIST, GLOVE_TRAIT) - REMOVE_TRAIT(user, inherited_trait, GLOVE_TRAIT) - REMOVE_TRAIT(user, secondary_trait, GLOVE_TRAIT) - if(ishuman(user)) - var/mob/living/carbon/human/H = user - H.dna.species.punchdamagehigh -= enhancement - H.dna.species.punchdamagelow -= enhancement - return ..() + H.dna.species.punchwoundbonus += wound_enhancement + if(!silent) + to_chat(H, "With [src] on your arms, you feel ready to punch things.") + else // dekaja + REMOVE_TRAIT(user, TRAIT_PUGILIST, GLOVE_TRAIT) + REMOVE_TRAIT(user, inherited_trait, GLOVE_TRAIT) + REMOVE_TRAIT(user, secondary_trait, GLOVE_TRAIT) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.dna.species.punchdamagehigh -= enhancement + H.dna.species.punchdamagelow -= enhancement + H.dna.species.punchwoundbonus -= wound_enhancement + if(!silent) + to_chat(user, "With [src] off of your arms, you feel less ready to punch things.") /obj/item/clothing/gloves/fingerless/pugilist/chaplain name = "armwraps of unyielding resolve" @@ -93,6 +113,7 @@ icon_state = "rapid" item_state = "rapid" enhancement = 10 //omae wa mou shindeiru + wound_enhancement = 10 var/warcry = "AT" secondary_trait = TRAIT_NOSOFTCRIT //basically extra health diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm index f4b4140a1a..eda36ea12f 100644 --- a/code/modules/clothing/gloves/tacklers.dm +++ b/code/modules/clothing/gloves/tacklers.dm @@ -65,12 +65,14 @@ heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT resistance_flags = NONE + strip_mod = 1.2 // because apparently black gloves had this /obj/item/clothing/gloves/tackler/combat/insulated name = "guerrilla gloves" desc = "Superior quality combative gloves, good for performing tackle takedowns as well as absorbing electrical shocks." siemens_coefficient = 0 permeability_coefficient = 0.05 + strip_mod = 1.5 // and combat gloves had this?? /obj/item/clothing/gloves/tackler/combat/insulated/infiltrator name = "insidious guerrilla gloves" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 904753f9b1..a4543389b4 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -254,10 +254,10 @@ if(href_list["pockets"]) var/strip_mod = 1 var/strip_silence = FALSE - var/obj/item/clothing/gloves/g = gloves - if (istype(g)) - strip_mod = g.strip_mod - strip_silence = g.strip_silence + var/obj/item/clothing/gloves/G = gloves + if(istype(G)) + strip_mod = G.strip_mod + strip_silence = G.strip_silence var/pocket_side = href_list["pockets"] var/pocket_id = (pocket_side == "right" ? SLOT_R_STORE : SLOT_L_STORE) var/obj/item/pocket_item = (pocket_id == SLOT_R_STORE ? r_store : l_store) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index b08d4a64aa..c8d0d8fc78 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -64,7 +64,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/stunmod = 1 // multiplier for stun duration var/punchdamagelow = 1 //lowest possible punch damage. if this is set to 0, punches will always miss var/punchdamagehigh = 10 //highest possible punch damage - var/punchstunthreshold = 10//damage at which punches from this race will stun //yes it should be to the attacked race but it's not useful that way even if it's logical + var/punchstunthreshold = 10 //damage at which punches from this race will stun //yes it should be to the attacked race but it's not useful that way even if it's logical + var/punchwoundbonus = 0 // additional wound bonus. generally zero. var/siemens_coeff = 1 //base electrocution coefficient var/damage_overlay_type = "human" //what kind of damage overlays (if any) appear on our species when wounded? var/fixed_mut_color = "" //to use MUTCOLOR with a fixed color that's independent of dna.feature["mcolor"] @@ -1386,6 +1387,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) user.do_attack_animation(target, ATTACK_EFFECT_PUNCH) var/damage = rand(user.dna.species.punchdamagelow, user.dna.species.punchdamagehigh) + var/punchwoundbonus = user.dna.species.punchwoundbonus var/puncherstam = user.getStaminaLoss() var/puncherbrute = user.getBruteLoss() var/punchedstam = target.getStaminaLoss() @@ -1401,6 +1403,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) //END OF CITADEL CHANGES var/obj/item/bodypart/affecting = target.get_bodypart(ran_zone(user.zone_selected)) + if(HAS_TRAIT(user, TRAIT_PUGILIST)) + affecting = target.get_bodypart(check_zone(user.zone_selected)) // if you're going the based unarmed route you won't miss if(!affecting) //Maybe the bodypart is missing? Or things just went wrong.. affecting = target.get_bodypart(BODY_ZONE_CHEST) //target chest instead, as failsafe. Or hugbox? You decide. @@ -1412,8 +1416,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(user.dna.species.punchdamagelow) if(atk_verb == ATTACK_EFFECT_KICK) //kicks never miss (provided your species deals more than 0 damage) miss_chance = 0 - else if(HAS_TRAIT(user, TRAIT_PUGILIST)) //pugilists have a flat 10% miss chance - miss_chance = 10 + else if(HAS_TRAIT(user, TRAIT_PUGILIST)) //pugilists, being good at Punching People, also never miss + miss_chance = 0 else miss_chance = min(10 + max(puncherstam * 0.5, puncherbrute * 0.5), 100) //probability of miss has a base of 10, and modified based on half brute total. Capped at max 100 to prevent weirdness in prob() @@ -1427,12 +1431,13 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/armor_block = target.run_armor_check(affecting, "melee") + if(HAS_TRAIT(user, TRAIT_MAULER)) // maulers get 15 armorpierce because if you're going to punch someone you might as well do a good job of it + armor_block = target.run_armor_check(affecting, "melee", armour_penetration = 15) // lot of good that sec jumpsuit did you playsound(target.loc, user.dna.species.attack_sound, 25, 1, -1) - - target.visible_message("[user] [atk_verb]s [target]!", \ - "[user] [atk_verb]s you!", null, COMBAT_MESSAGE_RANGE, null, \ - user, "You [atk_verb] [target]!") + target.visible_message("[user] [atk_verb]ed [target]!", \ + "[user] [atk_verb]ed you!", null, COMBAT_MESSAGE_RANGE, null, \ + user, "You [atk_verb]ed [target]!") target.lastattacker = user.real_name target.lastattackerckey = user.ckey @@ -1442,11 +1447,15 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) target.dismembering_strike(user, affecting.body_zone) if(atk_verb == ATTACK_EFFECT_KICK)//kicks deal 1.5x raw damage + 0.5x stamina damage - target.apply_damage(damage*1.5, attack_type, affecting, armor_block) + target.apply_damage(damage*1.5, attack_type, affecting, armor_block, wound_bonus = punchwoundbonus) target.apply_damage(damage*0.5, STAMINA, affecting, armor_block) log_combat(user, target, "kicked") - else//other attacks deal full raw damage + 2x in stamina damage - target.apply_damage(damage, attack_type, affecting, armor_block) + else if(HAS_TRAIT(user, TRAIT_MAULER)) // mauler punches deal 1.3x raw damage + 1x stam damage, and have some armor pierce + target.apply_damage(damage*1.3, attack_type, affecting, armor_block, wound_bonus = punchwoundbonus) + target.apply_damage(damage, STAMINA, affecting, armor_block) + log_combat(user, target, "punched (mauler)") + else //other attacks deal full raw damage + 2x in stamina damage + target.apply_damage(damage, attack_type, affecting, armor_block, wound_bonus = punchwoundbonus) target.apply_damage(damage*2, STAMINA, affecting, armor_block) log_combat(user, target, "punched") diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 8dac56a8c9..7e872992dc 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -842,12 +842,12 @@ return var/strip_mod = 1 var/strip_silence = FALSE - if (ishuman(src)) //carbon doesn't actually wear gloves + if(ishuman(src)) //carbon doesn't actually wear gloves var/mob/living/carbon/C = src - var/obj/item/clothing/gloves/g = C.gloves - if (istype(g)) - strip_mod = g.strip_mod - strip_silence = g.strip_silence + var/obj/item/clothing/gloves/G = C.gloves + if(istype(G)) + strip_mod = G.strip_mod + strip_silence = G.strip_silence if (!strip_silence) who.visible_message("[src] tries to remove [who]'s [what.name].", \ "[src] tries to remove your [what.name].", target = src, diff --git a/code/modules/uplink/uplink_items/uplink_clothing.dm b/code/modules/uplink/uplink_items/uplink_clothing.dm index 745eddcc07..6163e5722a 100644 --- a/code/modules/uplink/uplink_items/uplink_clothing.dm +++ b/code/modules/uplink/uplink_items/uplink_clothing.dm @@ -92,8 +92,8 @@ cost = 6 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) -/datum/uplink_item/device_tools/guerillagloves - name = "Guerilla Gloves" +/datum/uplink_item/device_tools/guerrillagloves + name = "Guerrilla Gloves" desc = "A pair of highly robust combat gripper gloves that excels at performing takedowns at close range, with an added lining of insulation. Careful not to hit a wall!" item = /obj/item/clothing/gloves/tackler/combat/insulated include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) diff --git a/icons/mob/actions/actions_changeling.dmi b/icons/mob/actions/actions_changeling.dmi index ce6b81e13b..2f384c6119 100644 Binary files a/icons/mob/actions/actions_changeling.dmi and b/icons/mob/actions/actions_changeling.dmi differ diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi index 44499649f9..b95c377e12 100644 Binary files a/icons/mob/clothing/hands.dmi and b/icons/mob/clothing/hands.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index c0f78ee604..0feb6a75db 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 8fbb2abe1e..4f650f8561 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ