diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index 674cc16980..b52172fc91 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/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm
index c9a375433c..47e0dd57dc 100644
--- a/code/modules/antagonists/changeling/powers/mutations.dm
+++ b/code/modules/antagonists/changeling/powers/mutations.dm
@@ -683,16 +683,18 @@
cold_protection = ARMS|HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
- enhancement = 15 // it's not an armblade but it's Violence, alright
+ armor = list("melee" = 20, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 35, "bio" = 35, "rad" = 35, "fire" = 0, "acid" = 0)
+ enhancement = 15 // first, do harm. all of it. all of the harm. just fuck em up.
var/wound_enhancement = 20
inherited_trait = TRAIT_CHUNKYFINGERS // dummy thicc bone hands
secondary_trait = TRAIT_STRONG_GRABBER // grab them and then punch their head off
+ var/tertiary_trait = TRAIT_MAULER // stamina damage? no thanks, bro
var/fasthands = TRUE
/obj/item/clothing/gloves/fingerless/pugilist/bone/examine(mob/user)
. = ..()
- . += " [src] are throwing [fasthands ? "fast, precise strikes" : "crippling, damaging blows"]."
- . += " Alt-click them to change between rapid strikes and strong blows."
+ . += "[src] are attacking with [fasthands ? "fast, precise strikes" : "crippling, damaging blows"]."
+ . += "Alt-click them to change between rapid strikes and strong blows."
/obj/item/clothing/gloves/fingerless/pugilist/bone/AltClick(mob/user)
. = ..()
@@ -701,14 +703,9 @@
enhancement = initial(enhancement)
wound_enhancement = initial(enhancement)
else
- enhancement = initial(enhancement) * 3 // punch the head off a man
- wound_enhancement = initial(enhancement) * 3 // do it do it do it do it
- if(ishuman(user))
- var/mob/living/carbon/human/H = user
- if(locate(src) in H.gloves)
- src.dropped(H)
- src.equipped(H, SLOT_GLOVES)
- to_chat(user, "With [src], you are now throwing [fasthands ? "fast, precise strikes" : "crippling, damaging blows"].")
+ enhancement = initial(enhancement) * 2 // punch the head off a man
+ wound_enhancement = initial(enhancement) * 2 // do it do it do it do it
+ to_chat(user, "With [src], you are now attacking with [fasthands ? "fast, precise strikes" : "crippling, damaging blows"].")
/obj/item/clothing/gloves/fingerless/pugilist/bone/Initialize()
. = ..()
@@ -719,10 +716,12 @@
if(slot == SLOT_GLOVES)
if(ishuman(user))
var/mob/living/carbon/human/H = user
+ ADD_TRAIT(H, tertiary_trait, GLOVE_TRAIT)
H.dna.species.punchwoundbonus += wound_enhancement
/obj/item/clothing/gloves/fingerless/pugilist/bone/dropped(mob/user)
. = ..()
+ REMOVE_TRAIT(user, tertiary_trait, GLOVE_TRAIT)
if(ishuman(user))
var/mob/living/carbon/human/H = user
H.dna.species.punchwoundbonus -= wound_enhancement
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 36b912f39e..8048abf7c3 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1422,7 +1422,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
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
+ else if(HAS_TRAIT(user, TRAIT_MAULER)) // mauler punches deal 1.2x raw damage + 0.8x stam damage
+ target.apply_damage(damage*1.2, attack_type, affecting, armor_block, wound_bonus = punchwoundbonus)
+ target.apply_damage(damage*0.8, 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")