diff --git a/code/__defines/items_clothing.dm b/code/__defines/items_clothing.dm index 8ecdb1326c0..2a0b2ce9dea 100644 --- a/code/__defines/items_clothing.dm +++ b/code/__defines/items_clothing.dm @@ -40,7 +40,7 @@ #define ACCESSORY_SLOT_ARMOR_M 0x8000 #define ACCESSORY_SLOT_HELM_C 0x10000 //24 bit - higher than 0x80000 will overflow -#define ACCESSORY_SLOT_RING 0x20000 //rings +#define ACCESSORY_SLOT_RING 0x20000 //rings, knuckledusters #define ACCESSORY_SLOT_WRIST 0x40000 //wristwatches, wrist PDA maybe? // Bitmasks for the /obj/item/var/flags_inv variable. These determine when a piece of clothing hides another, i.e. a helmet hiding glasses. diff --git a/code/modules/clothing/accessories/accessory.dm b/code/modules/clothing/accessories/accessory.dm index 29721f42af5..56234bb5bbd 100644 --- a/code/modules/clothing/accessories/accessory.dm +++ b/code/modules/clothing/accessories/accessory.dm @@ -12,6 +12,8 @@ var/image/inv_overlay = null // Overlay used when attached to clothing. var/image/mob_overlay = null var/overlay_state = null + var/punch_force = 0 // added melee damage + var/punch_damtype = BRUTE // added melee damage type var/concealed_holster = 0 var/mob/living/carbon/human/wearer = null // To check if the wearer changes, so species spritesheets change properly. var/list/on_rolled = list() // Used when jumpsuit sleevels are rolled ("rolled" entry) or it's rolled down ("down"). Set to "none" to hide in those states. diff --git a/code/modules/clothing/accessories/hands.dm b/code/modules/clothing/accessories/hands.dm index 433dac69c26..8422e5e7862 100644 --- a/code/modules/clothing/accessories/hands.dm +++ b/code/modules/clothing/accessories/hands.dm @@ -7,7 +7,12 @@ matter = list(MAT_STEEL = 500) attack_verb = list("punched", "beaten", "struck") siemens_coefficient = 1 + punch_force = 5 force = 5 icon = 'icons/inventory/hands/item.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_gloves.dmi', + ) drop_sound = 'sound/items/drop/metalboots.ogg' pickup_sound = 'sound/items/pickup/toolbox.ogg' diff --git a/code/modules/clothing/accessories/rings.dm b/code/modules/clothing/accessories/rings.dm index 2be023e1295..15f52a6b1ca 100644 --- a/code/modules/clothing/accessories/rings.dm +++ b/code/modules/clothing/accessories/rings.dm @@ -17,6 +17,7 @@ drop_sound = 'sound/items/drop/ring.ogg' pickup_sound = 'sound/items/pickup/ring.ogg' force = 2 + punch_force = 2 siemens_coefficient = 1 ///////////////////////////////////////// diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 542dafb6f68..7911b330397 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -272,8 +272,12 @@ var/obj/item/clothing/gloves/G = H.gloves real_damage += G.punch_force hit_dam_type = G.punch_damtype - if(H.pulling_punches && !attack.sharp && !attack.edge) //SO IT IS DECREED: PULLING PUNCHES WILL PREVENT THE ACTUAL DAMAGE FROM RINGS AND KNUCKLES, BUT NOT THE ADDED PAIN, BUT YOU CAN'T "PULL" A KNIFE - hit_dam_type = AGONY + else if(istype(H.gloves, /obj/item/clothing/accessory)) + var/obj/item/clothing/accessory/G = H.gloves + real_damage += G.punch_force + hit_dam_type = G.punch_damtype + if(H.pulling_punches && !attack.sharp && !attack.edge) //SO IT IS DECREED: PULLING PUNCHES WILL PREVENT THE ACTUAL DAMAGE FROM RINGS AND KNUCKLES, BUT NOT THE ADDED PAIN, BUT YOU CAN'T "PULL" A KNIFE + hit_dam_type = AGONY real_damage *= damage_multiplier rand_damage *= damage_multiplier if(HULK in H.mutations)