diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index aefe180437f..f5ac8b3c595 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -12,7 +12,7 @@
var/list/hud_list[11]
var/embedded_flag //To check if we've need to roll for damage on movement while an item is imbedded in us.
var/obj/item/rig/wearing_rig // This is very not good, but it's much much better than calling get_rig() every update_canmove() call.
- mob_size = 9//Based on average weight of a human
+ mob_size = 9 //Based on average weight of a human
/mob/living/carbon/human/Initialize(mapload, var/new_species = null)
if(!dna)
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 032bcac5abf..ebb49d1705b 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -735,7 +735,7 @@
if(hallucination && !(species.flags & (NO_POISON|IS_PLANT)))
handle_hallucinations()
- if(get_shock() >= (species.total_health * 0.6))
+ if(get_shock() >= species.total_health)
if(!stat)
to_chat(src, "[species.halloss_message_self]")
src.visible_message("[src] [species.halloss_message]")
@@ -746,7 +746,7 @@
if(sleeping)
stat = UNCONSCIOUS
- adjustHalLoss(-5)
+ adjustHalLoss(-3)
if (species.tail)
animate_tail_reset()
if(prob(2) && is_asystole() && isSynthetic())
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 371d013e5ec..d4b4a7a99fe 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -90,7 +90,7 @@
apply_effect(stun_amount, EYE_BLUR)
if(agony_amount)
- apply_damage(agony_amount, PAIN, def_zone, used_weapon, damage_flags)
+ apply_damage(agony_amount, PAIN, def_zone, used_weapon)
apply_effect(agony_amount / 10, STUTTER)
apply_effect(agony_amount / 10, EYE_BLUR)
diff --git a/code/modules/organs/internal/brain.dm b/code/modules/organs/internal/brain.dm
index c62fab13307..5f4992b55d9 100644
--- a/code/modules/organs/internal/brain.dm
+++ b/code/modules/organs/internal/brain.dm
@@ -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
diff --git a/code/modules/organs/internal/heart.dm b/code/modules/organs/internal/heart.dm
index 82cf0812488..f11bbf5fe47 100644
--- a/code/modules/organs/internal/heart.dm
+++ b/code/modules/organs/internal/heart.dm
@@ -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
diff --git a/code/modules/organs/internal/kidneys.dm b/code/modules/organs/internal/kidneys.dm
index 2c0727c5f81..1bec3977387 100644
--- a/code/modules/organs/internal/kidneys.dm
+++ b/code/modules/organs/internal/kidneys.dm
@@ -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)
diff --git a/code/modules/organs/internal/liver.dm b/code/modules/organs/internal/liver.dm
index df70a45dbda..64710ba32e0 100644
--- a/code/modules/organs/internal/liver.dm
+++ b/code/modules/organs/internal/liver.dm
@@ -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)
diff --git a/code/modules/organs/internal/lungs.dm b/code/modules/organs/internal/lungs.dm
index b638b46e69c..828824ebc71 100644
--- a/code/modules/organs/internal/lungs.dm
+++ b/code/modules/organs/internal/lungs.dm
@@ -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()
diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm
index eb959adae16..9734c72a051 100644
--- a/code/modules/organs/organ_external.dm
+++ b/code/modules/organs/organ_external.dm
@@ -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
diff --git a/code/modules/organs/subtypes/standard.dm b/code/modules/organs/subtypes/standard.dm
index 0686b5309bd..d044a58c1b5 100644
--- a/code/modules/organs/subtypes/standard.dm
+++ b/code/modules/organs/subtypes/standard.dm
@@ -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
diff --git a/code/modules/organs/wound.dm b/code/modules/organs/wound.dm
index 2fd84dc3345..ae774b0af77 100644
--- a/code/modules/organs/wound.dm
+++ b/code/modules/organs/wound.dm
@@ -336,6 +336,7 @@ datum/wound/puncture/massive
/datum/wound/burn
damage_type = BURN
max_bleeding_stage = 0
+
/datum/wound/burn/bleeding()
return 0
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Drugs.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Drugs.dm
index b0edd0d0e59..19cdc352370 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Drugs.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Drugs.dm
@@ -161,13 +161,13 @@
M.drowsiness += 1 * removed
/decl/reagent/raskara_dust/affect_breathe(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
- M.add_chemical_effect(CE_PAINKILLER, 25)
+ M.add_chemical_effect(CE_PAINKILLER, 10)
M.drowsiness += 2 * removed
if(prob(5) && ishuman(M))
M.emote("cough")
/decl/reagent/raskara_dust/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
- M.add_chemical_effect(CE_PAINKILLER, 50)
+ M.add_chemical_effect(CE_PAINKILLER, 30)
M.drowsiness += 3 * removed
if(prob(5))
M.emote("twitch")
@@ -225,10 +225,10 @@
M.adjustHalLoss(removed*300) //So oxycomorphine can't be used with it.
else
if(dose > 5)
- M.add_chemical_effect(CE_PAINKILLER, 50)
+ M.add_chemical_effect(CE_PAINKILLER, 30)
M.heal_organ_damage(5 * removed,5 * removed)
else
- M.add_chemical_effect(CE_PAINKILLER, 10)
+ M.add_chemical_effect(CE_PAINKILLER, 5)
M.heal_organ_damage(2 * removed,2 * removed)
/decl/reagent/toxin/stimm //Homemade Hyperzine, ported from Polaris
@@ -267,7 +267,7 @@
/decl/reagent/toxin/lean/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.hallucination = max(M.hallucination, 40)
- M.add_chemical_effect(CE_PAINKILLER, 40) // basically like Perconol, but a bit worse
+ M.add_chemical_effect(CE_PAINKILLER, 20) // basically like Perconol, but a bit worse
// doesn't make you vomit, though
if(prob(7))
to_chat(M, SPAN_WARNING(pick("You feel great!", "You don't have a care in the world.", "You couldn't care less about anything.", "You feel so relaxed...")))
@@ -303,7 +303,7 @@
if(HAND_RIGHT, ARM_RIGHT)
H.drop_r_hand()
if(robo)
- H.add_chemical_effect(CE_PAINKILLER, 80) // equivalent to mortaphenyl
+ H.add_chemical_effect(CE_PAINKILLER, 30)
var/obj/item/organ/internal/eyes/eyes = H.internal_organs_by_name[H.species.vision_organ || BP_EYES]
if(eyes.status & ORGAN_ROBOT)
M.hallucination = max(M.hallucination, 40)
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
index 8acdffd9e65..4d504ca79ac 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
@@ -15,7 +15,7 @@
/decl/reagent/inaprovaline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(check_min_dose(M, 0.25))
M.add_chemical_effect(CE_STABLE)
- M.add_chemical_effect(CE_PAINKILLER, 25)
+ M.add_chemical_effect(CE_PAINKILLER, 10)
/decl/reagent/inaprovaline/overdose(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(prob(2))
@@ -161,7 +161,7 @@
overdose = REAGENTS_OVERDOSE
scannable = TRUE
taste_description = "bitterness"
- metabolism = REM
+ metabolism = REM * 0.75
breathe_met = REM * 0.5
breathe_mul = 2
var/strength = 6
@@ -265,7 +265,12 @@
/decl/reagent/perconol/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(check_min_dose(M))
- M.add_chemical_effect(CE_PAINKILLER, 50)
+ M.add_chemical_effect(CE_PAINKILLER, 35)
+ M.add_up_to_chemical_effect(CE_NOFEVER, 5) //Good enough to handle fevers for a few light infections or one bad one.
+
+/decl/reagent/perconol/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
+ if(check_min_dose(M))
+ M.add_chemical_effect(CE_PAINKILLER, 30)
M.add_up_to_chemical_effect(CE_NOFEVER, 5) //Good enough to handle fevers for a few light infections or one bad one.
/decl/reagent/perconol/overdose(var/mob/living/carbon/M, var/alien, var/datum/reagents/holder)
@@ -289,7 +294,7 @@
/decl/reagent/mortaphenyl/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(check_min_dose(M))
- M.add_chemical_effect(CE_PAINKILLER, 80)
+ M.add_chemical_effect(CE_PAINKILLER, 50)
if(!M.chem_effects[CE_CLEARSIGHT])
M.eye_blurry = max(M.eye_blurry, 5)
if(!M.chem_effects[CE_STRAIGHTWALK])
@@ -306,8 +311,11 @@
if(M.losebreath < 15)
M.losebreath++
- if(REAGENT_VOLUME(M.reagents, /decl/reagent/oxycomorphine))
- overdose = REAGENT_VOLUME(holder, type)/2 //Straight to overdose.
+ if(REAGENT_VOLUME(M.reagents, /decl/reagent/oxycomorphine)) //Straight to overdose.
+ M.hallucination = max(M.hallucination, 40)
+ M.add_chemical_effect(CE_EMETIC, M.chem_doses[type]/6)
+ if(M.losebreath < 15)
+ M.losebreath++
/decl/reagent/mortaphenyl/overdose(var/mob/living/carbon/M, var/alien, var/datum/reagents/holder)
..()
@@ -326,7 +334,7 @@
taste_description = "euphoric acid"
/decl/reagent/mortaphenyl/aphrodite/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
- M.add_chemical_effect(CE_PAINKILLER, 70)
+ M.add_chemical_effect(CE_PAINKILLER, 40)
if(!M.chem_effects[CE_CLEARSIGHT])
M.eye_blurry = max(M.eye_blurry, 3)
if(!M.chem_effects[CE_STRAIGHTWALK])
@@ -407,7 +415,7 @@
if(.)
M.add_chemical_effect(CE_CLEARSIGHT)
M.add_chemical_effect(CE_STRAIGHTWALK)
- M.add_chemical_effect(CE_PAINKILLER, 40)
+ M.add_chemical_effect(CE_PAINKILLER, 30)
M.add_chemical_effect(CE_HALLUCINATE, -1)
M.add_up_to_chemical_effect(CE_ADRENALINE, 1)
diff --git a/html/changelogs/mattatlas-shootmealready.yml b/html/changelogs/mattatlas-shootmealready.yml
new file mode 100644
index 00000000000..d1903644e5d
--- /dev/null
+++ b/html/changelogs/mattatlas-shootmealready.yml
@@ -0,0 +1,51 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+# admin
+# backend
+# security
+# refactor
+#################################
+
+# Your name.
+author: MattAtlas
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - tweak: "The pain threshold has been reverted back to 200 damage."
+ - tweak: "Pain recovery is now slower when unconscious."
+ - tweak: "Nerfed arterial bleeding amount if the wound is open."
+ - tweak: "The liver now does significantly less toxin damage."
+ - tweak: "Having coffee in your system with damaged kidneys no longer does excessive amounts of toxin damage."
+ - tweak: "Painkillers have been nerfed across the board. Oxycomorphine has been left unchanged."
+ - tweak: "Arterial bleeding severity now depends on the organ hit. Arterial bleeding in legs and arms are less effective by 1/4. Arterial bleeding in hands and feet are less effective by half."
+ - tweak: "Humans now have a grace period of 2 minutes before taking oxygen damage if they cannot breathe if the lungs are undamaged."
+ - tweak: "Dexalin and dexalin plus now metabolize slower by 1/4."
+
+