diff --git a/code/datums/autolathe/arms.dm b/code/datums/autolathe/arms.dm index 2db7749aa0..2aeebe892a 100644 --- a/code/datums/autolathe/arms.dm +++ b/code/datums/autolathe/arms.dm @@ -416,7 +416,7 @@ /datum/category_item/autolathe/arms/knuckledusters name = "knuckle dusters" - path =/obj/item/weapon/material/knuckledusters + path =/obj/item/clothing/gloves/knuckledusters hidden = 1 /datum/category_item/autolathe/arms/tacknife diff --git a/code/game/objects/items/weapons/material/misc.dm b/code/game/objects/items/weapons/material/misc.dm index 1ab2e74730..97cf8b33db 100644 --- a/code/game/objects/items/weapons/material/misc.dm +++ b/code/game/objects/items/weapons/material/misc.dm @@ -8,17 +8,6 @@ force_divisor = 0.3 // 18 with hardness 60 (steel) attack_verb = list("jabbed","stabbed","ripped") -/obj/item/weapon/material/knuckledusters - name = "knuckle dusters" - desc = "A pair of brass knuckles. Generally used to enhance the user's punches." - icon_state = "knuckledusters" - gender = PLURAL - w_class = ITEMSIZE_SMALL - force_divisor = 0.63 - dulled_divisor = 0.75 //It's a heavy bit of metal - attack_verb = list("punched", "beaten", "struck") - applies_material_colour = 0 - /obj/item/weapon/material/knife/machete/hatchet name = "hatchet" desc = "A very sharp axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood." diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm index d1b30da151..18674db086 100644 --- a/code/game/objects/random/random.dm +++ b/code/game/objects/random/random.dm @@ -214,7 +214,7 @@ prob(6);/obj/item/weapon/material/butterflyhandle, prob(6);/obj/item/weapon/material/wirerod, prob(2);/obj/item/weapon/material/butterfly/switchblade, - prob(2);/obj/item/weapon/material/knuckledusters, + prob(2);/obj/item/clothing/gloves/knuckledusters, prob(1);/obj/item/weapon/material/knife/tacknife, prob(1);/obj/item/clothing/suit/storage/vest/heavy/merc, prob(1);/obj/item/weapon/beartrap, diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 4c20e9924e..16cc7f8eae 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -202,8 +202,10 @@ var/fingerprint_chance = 0 //How likely the glove is to let fingerprints through var/obj/item/clothing/gloves/ring = null //Covered ring var/mob/living/carbon/human/wearer = null //Used for covered rings when dropping - var/glove_level = 2 //What "layer" the glove is on - var/overgloves = 0 //Used by gauntlets and arm_guards + var/glove_level = 2 //What "layer" the glove is on + var/overgloves = 0 //Used by gauntlets and arm_guards + var/punch_force = 0 //How much damage do these gloves add to a punch? + var/punch_damtype = BRUTE //What type of damage does this make fists be? body_parts_covered = HANDS slot_flags = SLOT_GLOVES attack_verb = list("challenged") @@ -251,7 +253,7 @@ var/mob/living/carbon/human/H = user if(slot && slot == slot_gloves) - if(istype(H.gloves, /obj/item/clothing/gloves/ring)) + if(H.gloves) ring = H.gloves if(ring.glove_level >= src.glove_level) to_chat(user, "You are unable to wear \the [src] as \the [H.gloves] are in the way.") @@ -261,6 +263,8 @@ H.drop_from_inventory(ring) //Remove the ring (or other under-glove item in the hand slot?) so you can put on the gloves. ring.forceMove(src) to_chat(user, "You slip \the [src] on over \the [src.ring].") + if(!(flags & THICKMATERIAL)) + punch_force += ring.punch_force else ring = null @@ -268,6 +272,7 @@ if(ring) //Put the ring back on if the check fails. if(H.equip_to_slot_if_possible(ring, slot_gloves)) src.ring = null + punch_force = initial(punch_force) return 0 wearer = H //TODO clean this when magboots are cleaned @@ -284,6 +289,7 @@ if(!H.equip_to_slot_if_possible(ring, slot_gloves)) ring.forceMove(get_turf(src)) src.ring = null + punch_force = initial(punch_force) wearer = null ///////////////////////////////////////////////////////////////////// @@ -298,6 +304,7 @@ siemens_coefficient = 1 glove_level = 1 fingerprint_chance = 100 + punch_force = 2 /////////////////////////////////////////////////////////////////////// //Head diff --git a/code/modules/clothing/gloves/arm_guards.dm b/code/modules/clothing/gloves/arm_guards.dm index 80a5cfd735..84f364e4d5 100644 --- a/code/modules/clothing/gloves/arm_guards.dm +++ b/code/modules/clothing/gloves/arm_guards.dm @@ -3,6 +3,7 @@ desc = "These arm guards will protect your hands and arms." body_parts_covered = HANDS|ARMS overgloves = 1 + punch_force = 3 w_class = ITEMSIZE_NORMAL /obj/item/clothing/gloves/arm_guard/mob_can_equip(var/mob/living/carbon/human/H, slot) diff --git a/code/modules/clothing/gloves/gauntlets.dm b/code/modules/clothing/gloves/gauntlets.dm index bc65252d38..b65884d3f9 100644 --- a/code/modules/clothing/gloves/gauntlets.dm +++ b/code/modules/clothing/gloves/gauntlets.dm @@ -11,6 +11,7 @@ desc = "These gloves go over regular gloves." glove_level = 3 overgloves = 1 + punch_force = 5 var/obj/item/clothing/gloves/gloves = null //Undergloves /obj/item/clothing/gloves/gauntlets/mob_can_equip(mob/user) diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 27db4424d7..7546d81651 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -95,6 +95,7 @@ icon_state = "work" item_state = "wgloves" force = 5 + punch_force = 3 siemens_coefficient = 0.75 permeability_coefficient = 0.05 armor = list(melee = 30, bullet = 10, laser = 10, energy = 15, bomb = 20, bio = 0, rad = 0) @@ -114,3 +115,15 @@ min_cold_protection_temperature = GLOVES_MIN_COLD_PROTECTION_TEMPERATURE heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE + +/obj/item/clothing/gloves/knuckledusters + name = "knuckle dusters" + desc = "A pair of brass knuckles. Generally used to enhance the user's punches." + icon_state = "knuckledusters" + attack_verb = list("punched", "beaten", "struck") + flags = THICKMATERIAL // Stops rings from increasing hit strength + siemens_coefficient = 1 + fingerprint_chance = 100 + overgloves = 1 + force = 5 + punch_force = 5 diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index ec861d9a83..183b9a59e1 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -241,7 +241,14 @@ return 0 var/real_damage = rand_damage + var/hit_dam_type = attack.damage_type real_damage += attack.get_unarmed_damage(H) + if(H.gloves && istype(H.gloves, /obj/item/clothing/gloves)) + var/obj/item/clothing/gloves/G = H.gloves + real_damage += G.punch_force + hit_dam_type = G.punch_damtype + if(H.pulling_punches) //SO IT IS DECREED: PULLING PUNCHES WILL PREVENT THE ACTUAL DAMAGE FROM RINGS AND KNUCKLES, BUT NOT THE ADDED PAIN + hit_dam_type = AGONY real_damage *= damage_multiplier rand_damage *= damage_multiplier if(HULK in H.mutations) @@ -255,7 +262,7 @@ attack.apply_effects(H, src, armour, rand_damage, hit_zone) // Finally, apply damage to target - apply_damage(real_damage, (attack.deal_halloss ? HALLOSS : BRUTE), hit_zone, armour, soaked, sharp=attack.sharp, edge=attack.edge) + apply_damage(real_damage, hit_dam_type, hit_zone, armour, soaked, sharp=attack.sharp, edge=attack.edge) if(I_DISARM) M.attack_log += text("\[[time_stamp()]\] Disarmed [src.name] ([src.ckey])") @@ -403,7 +410,7 @@ return 0 var/datum/gender/TU = gender_datums[user.get_visible_gender()] - + if(user == src) user.visible_message("\The [user] starts applying pressure to [TU.his] [organ.name]!", "You start applying pressure to your [organ.name]!") else diff --git a/code/modules/mob/living/carbon/human/unarmed_attack.dm b/code/modules/mob/living/carbon/human/unarmed_attack.dm index 1c54a4258f..a7f80fb8f1 100644 --- a/code/modules/mob/living/carbon/human/unarmed_attack.dm +++ b/code/modules/mob/living/carbon/human/unarmed_attack.dm @@ -11,7 +11,7 @@ var/global/list/sparring_attack_cache = list() var/sharp = 0 var/edge = 0 - var/deal_halloss + var/damage_type = BRUTE var/sparring_variant_type = /datum/unarmed_attack/light_strike var/eye_attack_text @@ -131,7 +131,7 @@ var/global/list/sparring_attack_cache = list() /datum/unarmed_attack/punch/show_attack(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone, var/attack_damage) var/obj/item/organ/external/affecting = target.get_organ(zone) var/organ = affecting.name - + var/datum/gender/TU = gender_datums[user.get_visible_gender()] var/datum/gender/TT = gender_datums[target.get_visible_gender()] @@ -258,10 +258,10 @@ var/global/list/sparring_attack_cache = list() if(5) user.visible_message("[pick("[user] landed a powerful stomp on", "[user] stomped down hard on", "[user] slammed [TU.his] [shoes ? copytext(shoes.name, 1, -1) : "foot"] down hard onto")] [target]'s [organ]!") //Devastated lol. No. We want to say that the stomp was powerful or forceful, not that it /wrought devastation/ /datum/unarmed_attack/light_strike - deal_halloss = 3 attack_noun = list("tap","light strike") attack_verb = list("tapped", "lightly struck") - damage = 2 + damage = 3 + damage_type = AGONY shredding = 0 damage = 0 sharp = 0 diff --git a/html/changelogs/ANEWBE CASTS FIST.yml b/html/changelogs/ANEWBE CASTS FIST.yml new file mode 100644 index 0000000000..229458924d --- /dev/null +++ b/html/changelogs/ANEWBE CASTS FIST.yml @@ -0,0 +1,37 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Anewbe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "RINGS AND CERTAIN GLOVES INCREASE PUNCHING DAMAGE." + - tweak: "BRASS KNUCKLES HAVE BEEN TURNED INTO GLOVES AND REBALANCED. THEY DO LESS DAMAGE PER HIT BECAUSE IT'S HARD TO DISARM A PAIR OF GLOVES." diff --git a/icons/mob/hands.dmi b/icons/mob/hands.dmi index f50c46167d..cc467f5df7 100644 Binary files a/icons/mob/hands.dmi and b/icons/mob/hands.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index bc4e1880c6..6fa2c8c23b 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index d61006ba03..20ec01a737 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ