From 769f6df14326628495b231611c7c8b6dfd68087d Mon Sep 17 00:00:00 2001 From: Mechoid Date: Sun, 28 Oct 2018 23:06:38 -0700 Subject: [PATCH] Begin tweaking Prom regen. --- code/modules/mob/living/carbon/human/human_powers.dm | 5 +++++ .../mob/living/carbon/human/species/station/prometheans.dm | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index 018f0e1926..1b439ecd4d 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -293,6 +293,7 @@ // Replace completely missing limbs. for(var/limb_type in src.species.has_limbs) var/obj/item/organ/external/E = src.organs_by_name[limb_type] + if(E && E.disfigured) E.disfigured = 0 if(E && (E.is_stump() || (E.status & (ORGAN_DESTROYED|ORGAN_DEAD|ORGAN_MUTATED)))) @@ -305,6 +306,10 @@ var/obj/item/organ/O = new limb_path(src) organ_data["descriptor"] = O.name to_chat(src, "You feel a slithering sensation as your [O.name] reform.") + + var/agony_to_apply = round(0.66 * O.max_damage) // 60% of the limb's health is converted into pain + src.apply_damage(agony_to_apply, HALLOSS) + update_icons_body() active_regen = FALSE else diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans.dm b/code/modules/mob/living/carbon/human/species/station/prometheans.dm index 0c2fbc0ac3..f3295b6def 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans.dm @@ -182,8 +182,12 @@ var/datum/species/shapeshifter/promethean/prometheans nutrition_debt = H.getToxLoss() H.adjustToxLoss(-heal_rate * starve_mod) nutrition_cost += nutrition_debt - H.getToxLoss() - H.nutrition -= (2 * nutrition_cost) //Costs Nutrition when damage is being repaired, corresponding to the amount of damage being repaired. + H.nutrition -= (3 * nutrition_cost) //Costs Nutrition when damage is being repaired, corresponding to the amount of damage being repaired. H.nutrition = max(0, H.nutrition) //Ensure it's not below 0. + + var/agony_to_apply = ((1 / starve_mod) * nutrition_cost) //Regenerating damage causes minor pain over time. Small injures will be no issue, large ones will cause problems. + H.apply_damage(agony_to_apply, HALLOSS) + else H.adjustToxLoss(2*heal_rate) // Doubled because 0.5 is miniscule, and fire_stacks are capped in both directions