Merge pull request #241 from Fox-McCloud/Dismemberment-Fixes

Dismemberment Fixes
This commit is contained in:
Fox-McCloud
2015-01-31 03:29:35 -05:00
3 changed files with 9 additions and 9 deletions
@@ -314,8 +314,8 @@ emp_act
forcesay(hit_appends) //forcesay checks stat already
if (I.damtype == BRUTE)
if((I.edge && prob(2 * I.force)) || (I.force > 20 && prob(I.force)))
if(affecting.brute_dam >= affecting.max_damage * config.organ_health_multiplier)
if((affecting.brute_dam + I.force) >= affecting.max_damage * config.organ_health_multiplier)
if(I.edge && prob(I.force))
affecting.dismember_limb()
/* //Melee weapon embedded object code. Commented out, as most people on the forums seem to find this annoying and think it does not contribute to general gameplay. - Dave
+6 -6
View File
@@ -567,7 +567,7 @@ Note that amputating the affected organ does in fact remove the infection from t
O.setAmputatedTree()
//Handles dismemberment
/datum/organ/external/proc/droplimb(var/override = 0,var/no_explode = 0, var/spawn_limb=0)
/datum/organ/external/proc/droplimb(var/override = 0,var/no_explode = 0,var/amputation=0, var/spawn_limb=0)
if(destspawn) return
if(override)
status |= ORGAN_DESTROYED
@@ -585,9 +585,13 @@ Note that amputating the affected organ does in fact remove the infection from t
germ_level = 0
// If any organs are attached to this, destroy them
for(var/datum/organ/external/O in children)
O.droplimb(1, no_explode, amputation)
//Replace all wounds on that arm with one wound on parent organ.
wounds.Cut()
if (parent)
if (parent && !amputation)
var/datum/wound/W
if(max_damage < 50)
W = new/datum/wound/lost_limb/small(max_damage)
@@ -597,10 +601,6 @@ Note that amputating the affected organ does in fact remove the infection from t
parent.update_damages()
update_damages()
// If any organs are attached to this, destroy them
for(var/datum/organ/external/O in children)
O.droplimb(1)
var/obj/organ //Dropped limb object
switch(body_part)
+1 -1
View File
@@ -216,7 +216,7 @@
var/datum/organ/external/affected = target.get_organ(target_zone)
user.visible_message("\blue [user] cuts off [target]'s [affected.display_name] with \the [tool].", \
"\blue You cut off [target]'s [affected.display_name] with \the [tool].")
affected.droplimb(1,0)
affected.droplimb(1,1,1)
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/affected = target.get_organ(target_zone)