diff --git a/code/datums/components/aura_healing.dm b/code/datums/components/aura_healing.dm index 18484deb2d6..e71a06de2fb 100644 --- a/code/datums/components/aura_healing.dm +++ b/code/datums/components/aura_healing.dm @@ -29,6 +29,9 @@ /// Amount of blood to heal over a second var/blood_heal = 0 + /// Amount of bleed/pierce wound lowering per second. + var/wound_clotting = 0 + /// Map of organ (such as ORGAN_SLOT_BRAIN) to damage heal over a second var/list/organ_healing = null @@ -56,6 +59,7 @@ suffocation_heal = 0, stamina_heal = 0, blood_heal = 0, + wound_clotting = 0, organ_healing = null, simple_heal = 0, limit_to_trait = null, @@ -74,6 +78,7 @@ src.suffocation_heal = suffocation_heal src.stamina_heal = stamina_heal src.blood_heal = blood_heal + src.wound_clotting = wound_clotting src.organ_healing = organ_healing src.simple_heal = simple_heal src.limit_to_trait = limit_to_trait @@ -130,6 +135,10 @@ for (var/organ in organ_healing) candidate.adjustOrganLoss(organ, -organ_healing[organ] * seconds_per_tick) + var/mob/living/carbon/carbidate = candidate + for(var/datum/wound/iter_wound as anything in carbidate.all_wounds) + iter_wound.adjust_blood_flow(-wound_clotting * seconds_per_tick) + else if (isanimal(candidate)) var/mob/living/simple_animal/animal_candidate = candidate animal_candidate.adjustHealth(-simple_heal * seconds_per_tick, updating_health = FALSE) diff --git a/code/modules/antagonists/cult/cult_structure_pylon.dm b/code/modules/antagonists/cult/cult_structure_pylon.dm index 4bb7c83e7a7..e436601325d 100644 --- a/code/modules/antagonists/cult/cult_structure_pylon.dm +++ b/code/modules/antagonists/cult/cult_structure_pylon.dm @@ -22,6 +22,7 @@ burn_heal = 0.4, \ blood_heal = 0.4, \ simple_heal = 1.2, \ + wound_clotting = 0.1, \ requires_visibility = FALSE, \ limit_to_trait = TRAIT_HEALS_FROM_CULT_PYLONS, \ healing_color = COLOR_CULT_RED, \