Yet more brainmed tweaks (#9254)

This commit is contained in:
Matt Atlas
2020-07-04 22:27:25 +02:00
committed by GitHub
parent ecd3e33f3b
commit 0811c51203
8 changed files with 64 additions and 20 deletions
+1 -1
View File
@@ -96,7 +96,7 @@
/obj/item/organ/internal/brain/process()
if(owner)
if(damage > max_damage / 2 && healed_threshold)
if(damage > (max_damage * 0.75) && healed_threshold)
handle_severe_brain_damage()
if(damage < (max_damage / 4))
+11 -13
View File
@@ -254,15 +254,16 @@
var/laser = (damage_flags & DAM_LASER)
var/sharp = (damage_flags & DAM_SHARP)
var/edge = (damage_flags & DAM_EDGE)
var/blunt = !!(brute && !sharp && !edge)
if(status & ORGAN_BROKEN && prob(40) && brute)
if(owner && (owner.can_feel_pain()))
owner.emote(pick("scream", "groan")) //getting hit on broken hand hurts
if(used_weapon)
add_autopsy_data("[used_weapon]", brute + burn)
var/can_cut = (prob(brute*2) || sharp) && !(status & ORGAN_ROBOT)
var/spillover = 0
if(!is_damageable(brute + burn))
spillover = brute_dam + burn_dam + brute - max_damage
@@ -278,6 +279,13 @@
if(brute_dam + brute > min_broken_damage && prob(brute_dam + brute * (1 + blunt)))
fracture()
// High brute damage or sharp objects may damage internal organs
if(length(internal_organs))
if(damage_internal_organs(brute, burn, damage_flags))
brute /= 2
burn /= 2
var/can_cut = !BP_IS_ROBOTIC(src) && (sharp || prob(brute))
if(brute)
var/to_create = BRUISE
if(can_cut)
@@ -293,24 +301,14 @@
else
createwound(BURN, burn)
add_pain(0.8 * burn + 0.6 * brute)
add_pain(0.6 * burn + 0.4 * brute)
//If there are still hurties to dispense
if (spillover)
owner.shock_stage += spillover * config.organ_damage_spillover_multiplier
// High brute damage or sharp objects may damage internal organs
if(length(internal_organs))
if(damage_internal_organs(brute, burn, damage_flags))
var/brute_div = 2 //We want melee weapons to not be affected by this.
if(damage_flags & DAM_BULLET)
brute_div = 1.25
brute /= brute_div
burn /= 2
// sync the organ's damage with its wounds
update_damages()
if(owner)
owner.updatehealth() //droplimb will call updatehealth() again if it does end up being called
@@ -352,7 +350,7 @@
if(!length(victims))
return FALSE
organ_hit_chance += 5 * damage_amt/organ_damage_threshold
organ_hit_chance += 5 * damage_amt / organ_damage_threshold
if(encased && !(status & ORGAN_BROKEN)) //ribs protect
organ_hit_chance *= 0.6