diff --git a/code/game/gamemodes/changeling/powers/panacea.dm b/code/game/gamemodes/changeling/powers/panacea.dm index 055cf3e28b..660434d185 100644 --- a/code/game/gamemodes/changeling/powers/panacea.dm +++ b/code/game/gamemodes/changeling/powers/panacea.dm @@ -28,6 +28,7 @@ C.reagents.clear_reagents() C.ingested.clear_reagents() + var/heal_amount = 5 if(src.mind.changeling.recursive_enhancement) heal_amount = heal_amount * 2 @@ -38,5 +39,17 @@ C.adjustToxLoss(-heal_amount) sleep(10) + for(var/obj/item/organ/external/E in C.organs) + var/obj/item/organ/external/G = E + if(G.germ_level) + var/germ_heal = heal_amount * 100 + G.germ_level = min(0, G.germ_level - germ_heal) + + for(var/obj/item/organ/internal/I in C.internal_organs) + var/obj/item/organ/internal/G = I + if(G.germ_level) + var/germ_heal = heal_amount * 100 + G.germ_level = min(0, G.germ_level - germ_heal) + feedback_add_details("changeling_powers","AP") return 1 \ No newline at end of file diff --git a/code/game/gamemodes/technomancer/spells/insert/purify.dm b/code/game/gamemodes/technomancer/spells/insert/purify.dm index b1e369f6e8..6ba36d44c6 100644 --- a/code/game/gamemodes/technomancer/spells/insert/purify.dm +++ b/code/game/gamemodes/technomancer/spells/insert/purify.dm @@ -32,5 +32,18 @@ H.adjustToxLoss(-heal_power / 5) H.adjustCloneLoss(-heal_power / 5) H.radiation = max(host.radiation - ( (heal_power * 2) / 5), 0) + + for(var/obj/item/organ/external/E in H.organs) + var/obj/item/organ/external/G = E + if(G.germ_level) + var/germ_heal = heal_power * 10 + G.germ_level = min(0, G.germ_level - germ_heal) + + for(var/obj/item/organ/internal/I in H.internal_organs) + var/obj/item/organ/internal/G = I + if(G.germ_level) + var/germ_heal = heal_power * 10 + G.germ_level = min(0, G.germ_level - germ_heal) + sleep(1 SECOND) on_expire() diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 4639369c7c..02450c2c5c 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -203,6 +203,7 @@ var/list/organ_cache = list() /obj/item/organ/proc/rejuvenate(var/ignore_prosthetic_prefs) damage = 0 status = 0 + germ_level = 0 if(!ignore_prosthetic_prefs && owner && owner.client && owner.client.prefs && owner.client.prefs.real_name == owner.real_name) var/status = owner.client.prefs.organ_data[organ_tag] if(status == "assisted")