diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm
index bfff1dc629..d6db35e68d 100644
--- a/code/__DEFINES/status_effects.dm
+++ b/code/__DEFINES/status_effects.dm
@@ -30,6 +30,8 @@
#define STATUS_EFFECT_FLESHMEND /datum/status_effect/fleshmend //Very fast healing; suppressed by fire, and heals less fire damage
+#define STATUS_EFFECT_PANACEA /datum/status_effect/panacea //Anatomic panacea that directly heals, rather than injecting a small chemical cocktail
+
#define STATUS_EFFECT_EXERCISED /datum/status_effect/exercised //Prevents heart disease
#define STATUS_EFFECT_HIPPOCRATIC_OATH /datum/status_effect/hippocraticOath //Gives you an aura of healing as well as regrowing the Rod of Asclepius if lost
diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm
index 179ed765c5..ef3979d822 100644
--- a/code/datums/status_effects/buffs.dm
+++ b/code/datums/status_effects/buffs.dm
@@ -580,4 +580,63 @@
/datum/status_effect/regenerative_core/on_remove()
. = ..()
REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, "regenerative_core")
- owner.updatehealth()
\ No newline at end of file
+ owner.updatehealth()
+
+/datum/status_effect/panacea
+ id = "Anatomic Panacea"
+ duration = 100
+ tick_interval = 10
+ alert_type = /obj/screen/alert/status_effect/panacea
+
+/obj/screen/alert/status_effect/panacea
+ name = "Panacea"
+ desc = "We purge the impurities from our body."
+ icon_state = "panacea"
+
+// Changeling's anatomic panacea now in buff form. Directly fixes issues instead of injecting chems
+/datum/status_effect/panacea/tick()
+ var/mob/living/carbon/M = owner
+
+ //Heal brain damage and toxyloss, alongside trauma
+ owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, -8)
+ owner.adjustToxLoss(-6, forced = TRUE)
+ M.cure_trauma_type(resilience = TRAUMA_RESILIENCE_BASIC)
+ //Purges 50 rads per tick
+ if(owner.radiation > 0)
+ owner.radiation -= min(owner.radiation, 50)
+ //Mutadone effects
+ owner.jitteriness = 0
+ if(owner.has_dna())
+ M.dna.remove_all_mutations(mutadone = TRUE)
+ if(!QDELETED(owner)) //We were a monkey, now a human
+ ..()
+ // Purges toxins
+ for(var/datum/reagent/toxin/R in owner.reagents.reagent_list)
+ owner.reagents.remove_reagent(R.type, 5)
+ //Antihol effects
+ M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 10, 0, 1)
+ M.drunkenness = max(M.drunkenness - 10, 0)
+ owner.dizziness = 0
+ owner.drowsyness = 0
+ owner.slurring = 0
+ owner.confused = 0
+ //Organ and disease cure moved from panacea.dm to buff proc
+ var/list/bad_organs = list(
+ owner.getorgan(/obj/item/organ/body_egg),
+ owner.getorgan(/obj/item/organ/zombie_infection))
+ for(var/o in bad_organs)
+ var/obj/item/organ/O = o
+ if(!istype(O))
+ continue
+ O.Remove()
+ if(iscarbon(owner))
+ var/mob/living/carbon/C = owner
+ C.vomit(0, toxic = TRUE)
+ O.forceMove(get_turf(owner))
+ if(isliving(owner))
+ var/mob/living/L = owner
+ for(var/thing in L.diseases)
+ var/datum/disease/D = thing
+ if(D.severity == DISEASE_SEVERITY_POSITIVE)
+ continue
+ D.cure()
diff --git a/code/modules/antagonists/changeling/powers/panacea.dm b/code/modules/antagonists/changeling/powers/panacea.dm
index 17d82ec72d..3b59a0c042 100644
--- a/code/modules/antagonists/changeling/powers/panacea.dm
+++ b/code/modules/antagonists/changeling/powers/panacea.dm
@@ -3,41 +3,19 @@
desc = "Expels impurifications from our form; curing diseases, removing parasites, sobering us, purging toxins and radiation, and resetting our genetic code completely."
helptext = "Can be used while unconscious."
chemical_cost = 20
- dna_cost = 1
+ dna_cost = 2
req_stat = UNCONSCIOUS
action_icon = 'icons/mob/actions/actions_changeling.dmi'
action_icon_state = "ling_anatomic_panacea"
action_background_icon_state = "bg_ling"
//Heals the things that the other regenerative abilities don't.
-/obj/effect/proc_holder/changeling/panacea/sting_action(mob/user)
+/obj/effect/proc_holder/changeling/panacea/sting_action(mob/living/user)
+ if(user.has_status_effect(STATUS_EFFECT_PANACEA))
+ to_chat(user, "We are already cleansing our impurities!")
+ return
to_chat(user, "We cleanse impurities from our form.")
-
- var/list/bad_organs = list(
- user.getorgan(/obj/item/organ/body_egg),
- user.getorgan(/obj/item/organ/zombie_infection))
-
- for(var/o in bad_organs)
- var/obj/item/organ/O = o
- if(!istype(O))
- continue
-
- O.Remove()
- if(iscarbon(user))
- var/mob/living/carbon/C = user
- C.vomit(0, toxic = TRUE)
- O.forceMove(get_turf(user))
-
- user.reagents.add_reagent(/datum/reagent/medicine/mutadone, 10)
- user.reagents.add_reagent(/datum/reagent/medicine/pen_acid/pen_jelly, 20)
- user.reagents.add_reagent(/datum/reagent/medicine/antihol, 10)
- user.reagents.add_reagent(/datum/reagent/medicine/mannitol, 25)
-
- if(isliving(user))
- var/mob/living/L = user
- for(var/thing in L.diseases)
- var/datum/disease/D = thing
- if(D.severity == DISEASE_SEVERITY_POSITIVE)
- continue
- D.cure()
+ user.apply_status_effect(STATUS_EFFECT_PANACEA)
return TRUE
+
+//buffs.dm has the code for anatomic panacea
diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi
index 30c23601a5..4ced910193 100644
Binary files a/icons/mob/screen_alert.dmi and b/icons/mob/screen_alert.dmi differ