diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm
index db9007686da..b8473e611bc 100644
--- a/code/__DEFINES/combat.dm
+++ b/code/__DEFINES/combat.dm
@@ -127,18 +127,28 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(
//Combat object defines
//Embedded objects
-#define EMBEDDED_PAIN_CHANCE 15 //Chance for embedded objects to cause pain (damage user)
-#define EMBEDDED_ITEM_FALLOUT 5 //Chance for embedded object to fall out (causing pain but removing the object)
-#define EMBED_CHANCE 45 //Chance for an object to embed into somebody when thrown (if it's sharp)
-#define EMBEDDED_PAIN_MULTIPLIER 2 //Coefficient of multiplication for the damage the item does while embedded (this*item.w_class)
-#define EMBEDDED_FALL_PAIN_MULTIPLIER 5 //Coefficient of multiplication for the damage the item does when it falls out (this*item.w_class)
-#define EMBEDDED_IMPACT_PAIN_MULTIPLIER 4 //Coefficient of multiplication for the damage the item does when it first embeds (this*item.w_class)
-#define EMBED_THROWSPEED_THRESHOLD 4 //The minimum value of an item's throw_speed for it to embed (Unless it has embedded_ignore_throwspeed_threshold set to 1)
-#define EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER 8 //Coefficient of multiplication for the damage the item does when removed without a surgery (this*item.w_class)
-#define EMBEDDED_UNSAFE_REMOVAL_TIME 30 //A Time in ticks, total removal time = (this*item.w_class)
-#define EMBEDDED_JOSTLE_CHANCE 5 //Chance for embedded objects to cause pain every time they move (jostle)
-#define EMBEDDED_JOSTLE_PAIN_MULTIPLIER 1 //Coefficient of multiplication for the damage the item does while
-#define EMBEDDED_PAIN_STAM_PCT 0.0 //This percentage of all pain will be dealt as stam damage rather than brute (0-1)
+///Chance for embedded objects to cause pain (damage user)
+#define EMBEDDED_PAIN_CHANCE 15
+///Chance for embedded object to fall out (causing pain but removing the object)
+#define EMBEDDED_ITEM_FALLOUT 5
+///Chance for an object to embed into somebody when thrown (if it's sharp)
+#define EMBED_CHANCE 45
+///Coefficient of multiplication for the damage the item does while embedded (this*item.w_class)
+#define EMBEDDED_PAIN_MULTIPLIER 2
+///Coefficient of multiplication for the damage the item does when it first embeds (this*item.w_class)
+#define EMBEDDED_IMPACT_PAIN_MULTIPLIER 4
+///The minimum value of an item's throw_speed for it to embed (Unless it has embedded_ignore_throwspeed_threshold set to 1)
+#define EMBED_THROWSPEED_THRESHOLD 4
+///Coefficient of multiplication for the damage the item does when it falls out or is removed without a surgery (this*item.w_class)
+#define EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER 6
+///A Time in ticks, total removal time = (this*item.w_class)
+#define EMBEDDED_UNSAFE_REMOVAL_TIME 30
+///Chance for embedded objects to cause pain every time they move (jostle)
+#define EMBEDDED_JOSTLE_CHANCE 5
+///Coefficient of multiplication for the damage the item does while
+#define EMBEDDED_JOSTLE_PAIN_MULTIPLIER 1
+///This percentage of all pain will be dealt as stam damage rather than brute (0-1)
+#define EMBEDDED_PAIN_STAM_PCT 0.0
#define EMBED_HARMLESS list("pain_mult" = 0, "jostle_pain_mult" = 0, "ignore_throwspeed_threshold" = TRUE)
#define EMBED_HARMLESS_SUPERIOR list("pain_mult" = 0, "jostle_pain_mult" = 0, "ignore_throwspeed_threshold" = TRUE, "embed_chance" = 100, "fall_chance" = 0.1)
diff --git a/code/datums/components/embedded.dm b/code/datums/components/embedded.dm
index 3f8a995e8f0..039486a2bd3 100644
--- a/code/datums/components/embedded.dm
+++ b/code/datums/components/embedded.dm
@@ -99,7 +99,7 @@
if(damage > 0)
var/armor = victim.run_armor_check(limb.body_zone, "melee", "Your armor has protected your [limb.name].", "Your armor has softened a hit to your [limb.name].",I.armour_penetration)
- limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage, blocked=armor, sharpness = I.get_sharpness())
+ limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage, blocked=armor, wound_bonus = I.wound_bonus, bare_wound_bonus = I.bare_wound_bonus, sharpness = I.get_sharpness())
/datum/component/embedded/Destroy()
var/mob/living/carbon/victim = parent
@@ -140,7 +140,7 @@
pain_chance_current *= 0.2
if(harmful && prob(pain_chance_current))
- limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage, sharpness=TRUE, wound_bonus = CANT_WOUND)
+ limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage, wound_bonus = CANT_WOUND)
to_chat(victim, "[weapon] embedded in your [limb.name] hurts!")
var/fall_chance_current = fall_chance
@@ -174,7 +174,7 @@
if(harmful)
var/damage = weapon.w_class * remove_pain_mult
- limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage, sharpness=SHARP_EDGED) // can wound
+ limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage, wound_bonus = CANT_WOUND)
victim.visible_message("[weapon] falls [harmful ? "out" : "off"] of [victim.name]'s [limb.name]!", "[weapon] falls [harmful ? "out" : "off"] of your [limb.name]!")
safeRemove()
@@ -194,7 +194,7 @@
return
if(harmful)
var/damage = weapon.w_class * remove_pain_mult
- limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage, sharpness=SHARP_EDGED) //It hurts to rip it out, get surgery you dingus.
+ limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage, sharpness=SHARP_EDGED) //It hurts to rip it out, get surgery you dingus. unlike the others, this CAN wound + increase slash bloodflow
victim.emote("scream")
victim.visible_message("[victim] successfully rips [weapon] [harmful ? "out" : "off"] of [victim.p_their()] [limb.name]!", "You successfully remove [weapon] from your [limb.name].")
diff --git a/code/datums/wounds/slash.dm b/code/datums/wounds/slash.dm
index 04675633ce4..dc037f9494e 100644
--- a/code/datums/wounds/slash.dm
+++ b/code/datums/wounds/slash.dm
@@ -69,7 +69,7 @@
return "[msg.Join()]"
/datum/wound/slash/receive_damage(wounding_type, wounding_dmg, wound_bonus)
- if(victim.stat != DEAD && wounding_type == WOUND_SLASH) // can't stab dead bodies to make it bleed faster this way
+ if(victim.stat != DEAD && wound_bonus != CANT_WOUND && wounding_type == WOUND_SLASH) // can't stab dead bodies to make it bleed faster this way
blood_flow += 0.05 * wounding_dmg
/datum/wound/slash/drag_bleed_amount()
diff --git a/code/game/objects/items/spear.dm b/code/game/objects/items/spear.dm
index cf1ed2fa6dc..be175f78bd3 100644
--- a/code/game/objects/items/spear.dm
+++ b/code/game/objects/items/spear.dm
@@ -10,7 +10,7 @@
slot_flags = ITEM_SLOT_BACK
throwforce = 20
throw_speed = 4
- embedding = list("impact_pain_mult" = 3)
+ embedding = list("impact_pain_mult" = 2, "remove_pain_mult" = 4, "jostle_chance" = 2.5)
armour_penetration = 10
custom_materials = list(/datum/material/iron=1150, /datum/material/glass=2075)
hitsound = 'sound/weapons/bladeslice.ogg'
diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm
index 5a2c2b8488d..c1d259678bf 100644
--- a/code/game/objects/items/weaponry.dm
+++ b/code/game/objects/items/weaponry.dm
@@ -290,7 +290,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi'
force = 2
- throwforce = 10 //10 + 2 (WEIGHT_CLASS_SMALL) * 9 (EMBEDDED_IMPACT_PAIN_MULTIPLIER) = 28 damage on hit due to guaranteed embedding
+ throwforce = 10 //10 + 2 (WEIGHT_CLASS_SMALL) * 4 (EMBEDDED_IMPACT_PAIN_MULTIPLIER) = 18 damage on hit due to guaranteed embedding
throw_speed = 4
embedding = list("pain_mult" = 4, "embed_chance" = 100, "fall_chance" = 0)
armour_penetration = 40