diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm
index 3969ddd1ef..50b4135dd7 100644
--- a/code/game/objects/items/weapons/implants/implant.dm
+++ b/code/game/objects/items/weapons/implants/implant.dm
@@ -182,7 +182,7 @@ Implant Specifics:
"}
del(src)
else
explosion(get_turf(imp_in), -1, -1, 2, 3)
- part.droplimb()
+ part.droplimb(0,DROPLIMB_BLUNT)
del(src)
if (elevel == "Destroy Body")
explosion(get_turf(T), -1, 0, 1, 6)
@@ -247,7 +247,7 @@ Implant Specifics:
"}
istype(part,/obj/item/organ/external/head))
part.createwound(BRUISE, 60) //mangle them instead
else
- part.droplimb()
+ part.droplimb(0,DROPLIMB_BLUNT)
explosion(get_turf(imp_in), -1, -1, 2, 3)
del(src)
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index 65fa5c522e..338b265a4f 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -6,7 +6,7 @@
I.throw_at(get_edge_target_turf(src,pick(alldirs)),rand(1,3),30)
for(var/obj/item/organ/external/E in src.organs)
- E.droplimb(0,0,1)
+ E.droplimb(0,DROPLIMB_EDGE,1)
sleep(1)
diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm
index df675d5309..b6f14b64bc 100644
--- a/code/modules/organs/organ_external.dm
+++ b/code/modules/organs/organ_external.dm
@@ -221,15 +221,15 @@
var/dropped
if((burn >= threshold) && prob(burn/3))
dropped = 1
- droplimb(0,1)
+ droplimb(0,DROPLIMB_BURN)
if(!dropped && prob(brute))
if(brute >= threshold)
if((sharp || edge) && istype(used_weapon,/obj/item))
var/obj/item/W = used_weapon
if(W.w_class >= 3)
- droplimb()
+ droplimb(0,DROPLIMB_EDGE)
else
- droplimb(0,2)
+ droplimb(0,DROPLIMB_BLUNT)
owner.updatehealth()
return update_icon()
@@ -364,7 +364,7 @@ This function completely restores a damaged organ to perfect condition.
//Dismemberment
if(status & ORGAN_DESTROYED)
if(config.limbs_can_break)
- droplimb()
+ droplimb(0,DROPLIMB_EDGE) //Might be worth removing this check since take_damage handles it.
return
if(parent)
if(parent.status & ORGAN_DESTROYED)
@@ -624,21 +624,21 @@ Note that amputating the affected organ does in fact remove the infection from t
return
if(!disintegrate)
- disintegrate = 0
+ disintegrate = DROPLIMB_EDGE
switch(disintegrate)
- if(0)
+ if(DROPLIMB_EDGE)
if(!clean)
owner.visible_message(
"\The [owner]'s [src.name] flies off in an arc!",\
"Your [src.name] goes flying off!",\
"You hear a terrible sound of ripping tendons and flesh.")
- if(1)
+ if(DROPLIMB_BURN)
owner.visible_message(
"\The [owner]'s [src.name] flashes away into ashes!",\
"Your [src.name] flashes away into ashes!",\
"You hear the crackling sound of burning flesh.")
- if(2)
+ if(DROPLIMB_BLUNT)
owner.visible_message(
"\The [owner]'s [src.name] explodes in a shower of gore!",\
"Your [src.name] explodes in a shower of gore!",\
@@ -672,7 +672,7 @@ Note that amputating the affected organ does in fact remove the infection from t
dir = 2
switch(disintegrate)
- if(0)
+ if(DROPLIMB_EDGE)
compile_icon()
add_blood(owner)
var/matrix/M = matrix()
@@ -684,9 +684,9 @@ Note that amputating the affected organ does in fact remove the infection from t
throw_at(get_edge_target_turf(src,pick(alldirs)),rand(1,3),30)
dir = 2
return
- if(1)
+ if(DROPLIMB_BURN)
new /obj/effect/decal/cleanable/ash(get_turf(owner))
- if(2)
+ if(DROPLIMB_BLUNT)
var/obj/effect/decal/cleanable/blood/gibs/gore = new owner.species.single_gib_type(get_turf(owner))
if(owner.species.flesh_color)
gore.fleshcolor = owner.species.flesh_color
diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm
index ca4a7dafe4..f6352f6b74 100644
--- a/code/modules/surgery/generic.dm
+++ b/code/modules/surgery/generic.dm
@@ -305,7 +305,7 @@
var/obj/item/organ/external/affected = target.get_organ(target_zone)
user.visible_message("\blue [user] amputates [target]'s [affected.name] at the [affected.amputation_point] with \the [tool].", \
"\blue You amputate [target]'s [affected.name] with \the [tool].")
- affected.droplimb(1)
+ affected.droplimb(1,DROPLIMB_EDGE)
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/obj/item/organ/external/affected = target.get_organ(target_zone)
diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm
index 3153bd4f9b..878f8c24be 100644
--- a/code/modules/virus2/effect.dm
+++ b/code/modules/virus2/effect.dm
@@ -81,11 +81,11 @@
var/mob/living/carbon/human/H = mob
var/obj/item/organ/external/O = pick(H.organs)
if(prob(25))
- mob << "Your [O.name] feels as if it might fall off!"
+ mob << "Your [O.name] feels as if it might burst!"
if(prob(10))
spawn(50)
if(O)
- O.droplimb()
+ O.droplimb(0,DROPLIMB_BLUNT)
else
if(prob(75))
mob << "Your whole body feels like it might fall apart!"
diff --git a/code/setup.dm b/code/setup.dm
index 7d8e678a54..4222992f88 100644
--- a/code/setup.dm
+++ b/code/setup.dm
@@ -854,3 +854,7 @@ var/list/be_special_flags = list(
#define ALLMOBS (HUMAN|MONKEY|ALIEN|ROBOT|SLIME|SIMPLE_ANIMAL)
#define NEXT_MOVE_DELAY 8
+
+#define DROPLIMB_EDGE 0
+#define DROPLIMB_BLUNT 1
+#define DROPLIMB_BURN 2