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." + +