Raises pain thresholds, hopefully reduces lethality a bit, nerfs painkillers. (#11969)

This commit is contained in:
Matt Atlas
2021-07-30 11:54:57 +02:00
committed by GitHub
parent da94b06c30
commit 4559ff2494
14 changed files with 92 additions and 28 deletions
-1
View File
@@ -1,6 +1,5 @@
/obj/item/organ/internal/brain
name = "brain"
health = 400 //They need to live awhile longer than other organs. Is this even used by organ code anymore?
desc = "A piece of juicy meat found in a person's head."
organ_tag = BP_BRAIN
parent_organ = BP_HEAD
+1 -1
View File
@@ -145,7 +145,7 @@
blood_max += ((W.damage / 40) * species.bleed_mod)
if(temp.status & ORGAN_ARTERY_CUT)
var/bleed_amount = Floor(owner.vessel.total_volume / (temp.applied_pressure || !open_wound ? 450 : 250))
var/bleed_amount = Floor((owner.vessel.total_volume / (temp.applied_pressure || !open_wound ? 450 : 250)) * temp.arterial_bleed_severity)
if(bleed_amount)
if(CE_BLOODCLOT in owner.chem_effects)
bleed_amount *= 0.8 // won't do much, but it'll help
+2 -2
View File
@@ -25,9 +25,9 @@
var/decl/reagent/drink/coffee = REAGENT_VOLUME(owner.reagents, /decl/reagent/drink/coffee)
if(coffee)
if(is_bruised())
owner.adjustToxLoss(0.1 * PROCESS_ACCURACY)
owner.adjustToxLoss(0.1)
else if(is_broken())
owner.adjustToxLoss(0.3 * PROCESS_ACCURACY)
owner.adjustToxLoss(0.3)
if(is_bruised())
if(prob(5) && REAGENT_VOLUME(reagents, /decl/reagent/potassium) < 5)
+1 -1
View File
@@ -45,7 +45,7 @@
filter_effect += 1
if(filter_effect < 2) //Trouble. You're not filtering well.
owner.adjustToxLoss(0.8 * max(2 - filter_effect, 0))
owner.adjustToxLoss(0.5 * max(2 - filter_effect, 0))
// Heal a bit if needed and we're not busy. This allows recovery from low amounts of toxloss.
if(!owner.total_radiation && damage > 0)
+2 -1
View File
@@ -97,7 +97,8 @@
else
owner.emote(pick("shiver","twitch"))
owner.adjustOxyLoss(HUMAN_MAX_OXYLOSS * breath_fail_ratio)
if(damage || owner.chem_effects[CE_BREATHLOSS] || world.time > last_successful_breath + 2 MINUTES)
owner.adjustOxyLoss(HUMAN_MAX_OXYLOSS * breath_fail_ratio)
owner.oxygen_alert = max(owner.oxygen_alert, 2)
/obj/item/organ/internal/lungs/proc/enable_rupture()
+4 -4
View File
@@ -78,6 +78,7 @@
var/encased // Needs to be opened with a saw to access the organs.
var/joint = "joint" // Descriptive string used in dislocation.
var/artery_name = "artery" //Name of the artery. Cartoid, etc.
var/arterial_bleed_severity = 1 // Multiplier for bleeding in a limb.
var/amputation_point // Descriptive string used in amputation.
var/dislocated = 0 // If you target a joint, you can dislocate the limb, causing temporary damage to the organ.
@@ -385,7 +386,7 @@
organ_hit_chance = min(organ_hit_chance, 100)
if(prob(organ_hit_chance))
var/obj/item/organ/internal/victim = pickweight(victims)
damage_amt = max(damage_amt*victim.damage_reduction, 0)
damage_amt -= max(damage_amt*victim.damage_reduction, 0)
victim.take_internal_damage(damage_amt)
return TRUE
@@ -1444,7 +1445,7 @@ Note that amputating the affected organ does in fact remove the infection from t
pain = 0
return
var/last_pain = pain
pain = max(0,min(max_damage,pain-amount))
pain = max(0, min(species.total_health * 2, pain - amount))
return -(pain-last_pain)
/obj/item/organ/external/proc/add_pain(var/amount)
@@ -1457,8 +1458,7 @@ Note that amputating the affected organ does in fact remove the infection from t
amount -= (owner.chem_effects[CE_PAINKILLER]/3)
if(amount <= 0)
return
var/threshold = max_damage * 2
pain = max(0, min(threshold, pain + amount))
pain = max(0, min(pain + amount, species.total_health * 2))
if(owner && ((amount > 15 && prob(20)) || (amount > 30 && prob(60))))
owner.emote("scream")
return pain-last_pain
+4
View File
@@ -62,6 +62,7 @@
limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_BREAK | ORGAN_CAN_MAIM | ORGAN_HAS_TENDON | ORGAN_CAN_GRASP
tendon_name = "palmaris longus tendon"
artery_name = "basilic vein"
arterial_bleed_severity = 0.75
amputation_point = "left shoulder"
augment_limit = 2
@@ -94,6 +95,7 @@
joint = "left knee"
tendon_name = "quadriceps tendon"
artery_name = "femoral artery"
arterial_bleed_severity = 0.75
amputation_point = "left hip"
limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_BREAK | ORGAN_CAN_MAIM | ORGAN_HAS_TENDON
augment_limit = 2
@@ -125,6 +127,7 @@
parent_organ = BP_L_LEG
joint = "left ankle"
amputation_point = "left ankle"
arterial_bleed_severity = 0.5
limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_BREAK | ORGAN_CAN_MAIM | ORGAN_CAN_STAND
maim_bonus = 1
augment_limit = 1
@@ -162,6 +165,7 @@
joint = "left wrist"
tendon_name = "carpal ligament"
amputation_point = "left wrist"
arterial_bleed_severity = 0.5
limb_flags = ORGAN_CAN_AMPUTATE | ORGAN_CAN_BREAK | ORGAN_CAN_MAIM | ORGAN_CAN_GRASP | ORGAN_HAS_TENDON
maim_bonus = 1
augment_limit = 1
+1
View File
@@ -336,6 +336,7 @@ datum/wound/puncture/massive
/datum/wound/burn
damage_type = BURN
max_bleeding_stage = 0
/datum/wound/burn/bleeding()
return 0