diff --git a/code/modules/organs/subtypes/parasite.dm b/code/modules/organs/subtypes/parasite.dm
index 7cb71de548a..9ba6da2e484 100644
--- a/code/modules/organs/subtypes/parasite.dm
+++ b/code/modules/organs/subtypes/parasite.dm
@@ -139,7 +139,8 @@
if(prob(5))
owner << "You feel something squirming inside of you!"
- owner.reagents.add_reagent("phoron", 4)
+ owner.reagents.add_reagent("phoron", 6)
+ owner.reagents.add_reagent("blackkois", 4)
else if(prob(10))
owner << "You feel disorientated!"
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
index ad119ac4441..81ab53a3c96 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
@@ -165,8 +165,11 @@
glass_name = "glass of ethanol"
glass_desc = "A well-known alcohol with a variety of applications."
-/datum/reagent/alcohol/ethanol/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_VAURCA)//Vaurca are damaged instead of getting nutrients, but they can still get drunk
+/datum/reagent/alcohol/ethanol/affect_ingest(var/mob/living/carbon/human/M, var/alien, var/removed)
+ if(!istype(M))
+ return
+ var/obj/item/organ/parasite/P = M.internal_organs_by_name["blackkois"]
+ if((alien == IS_VAURCA) || (istype(P) && P.stage >= 3))//Vaurca are damaged instead of getting nutrients, but they can still get drunk
M.adjustToxLoss(1.5 * removed * (strength / 100))
else
M.adjustNutritionLoss(-nutriment_factor * removed)
@@ -212,8 +215,11 @@
glass_name = "glass of butanol"
glass_desc = "A fairly harmless alcohol that has intoxicating effects on certain species."
-/datum/reagent/alcohol/butanol/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
- if (alien == IS_VAURCA)
+/datum/reagent/alcohol/butanol/affect_ingest(var/mob/living/carbon/human/M, var/alien, var/removed)
+ if(!istype(M))
+ return
+ var/obj/item/organ/parasite/P = M.internal_organs_by_name["blackkois"]
+ if((alien == IS_VAURCA) || (istype(P) && P.stage >= 3))
M.adjustToxLoss(removed * (strength / 100))
else
M.adjustNutritionLoss(-nutriment_factor * removed)
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
index f8413474082..67fd5d6d656 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
@@ -11,12 +11,16 @@
unaffected_species = IS_MACHINE
var/kois_type = 1
-/datum/reagent/kois/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_VAURCA)
+/datum/reagent/kois/affect_ingest(var/mob/living/carbon/human/M, var/alien, var/removed)
+ if(!istype(M))
+ return
+ var/obj/item/organ/parasite/P = M.internal_organs_by_name["blackkois"]
+ if((alien == IS_VAURCA) || (istype(P) && P.stage >= 3))
M.heal_organ_damage(1.2 * removed, 1.2 * removed)
M.adjustToxLoss(-1.2 * removed)
M.adjustNutritionLoss(-nutriment_factor * removed)
M.add_chemical_effect(CE_BLOODRESTORE, 6 * removed)
+
else
M.adjustToxLoss(1 * removed)
if(istype(M,/mob/living/carbon/human))
@@ -104,8 +108,11 @@
return
affect_ingest(M, alien, removed)
-/datum/reagent/nutriment/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_VAURCA)
+/datum/reagent/nutriment/affect_ingest(var/mob/living/carbon/human/M, var/alien, var/removed)
+ if(!istype(M))
+ return
+ var/obj/item/organ/parasite/P = M.internal_organs_by_name["blackkois"]
+ if((alien == IS_VAURCA) || (istype(P) && P.stage >= 3))
M.adjustToxLoss(1.5 * removed)
else if(alien != IS_UNATHI)
digest(M,removed)
@@ -3754,8 +3761,12 @@
adj_sleepy = -3
taste_description = "viscous cola"
-/datum/reagent/drink/zorasoda/drone/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_VAURCA)
+/datum/reagent/drink/zorasoda/drone/affect_ingest(var/mob/living/carbon/human/M, var/alien, var/removed)
+ if(!istype(M))
+ return
+
+ var/obj/item/organ/parasite/P = M.internal_organs_by_name["blackkois"]
+ if((alien == IS_VAURCA) || (istype(P) && P.stage >= 3))
M.add_chemical_effect(CE_SPEEDBOOST, 1)
M.add_chemical_effect(CE_BLOODRESTORE, 2 * removed)
M.make_jittery(5)
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
index 25a49c9a328..2f167fea8b1 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
@@ -73,6 +73,13 @@
/datum/reagent/toxin/phoron/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(ishuman(M))
var/mob/living/carbon/human/H = M
+
+ var/obj/item/organ/parasite/PA = H.internal_organs_by_name["blackkois"]
+ if((istype(PA) && PA.stage >= 3))
+ H.heal_organ_damage(2 * removed, 2 * removed)
+ H.add_chemical_effect(CE_BLOODRESTORE, 8 * removed)
+ H.adjustToxLoss(-2 * removed)
+
if(alien == IS_VAURCA && H.species.has_organ["filtration bit"])
metabolism = REM * 20 //vaurcae metabolise phoron faster than other species - good for them if their filter isn't broken.
var/obj/item/organ/vaurca/filtrationbit/F = H.internal_organs_by_name["filtration bit"]
@@ -88,6 +95,7 @@
return
else
P.air_contents.adjust_gas("phoron", (0.5*removed))
+
else
..()
else
@@ -101,8 +109,12 @@
L.adjust_fire_stacks(amount / 5)
/datum/reagent/toxin/phoron/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_VAURCA)
- return
+ if(istype(M, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = M
+ var/obj/item/organ/parasite/P = H.internal_organs_by_name["blackkois"]
+ if((alien == IS_VAURCA) || (istype(P) && P.stage >= 3))
+ return
+
M.take_organ_damage(0, removed * 0.1) //being splashed directly with phoron causes minor chemical burns
if(prob(50))
M.pl_effects()
@@ -124,8 +136,12 @@
conflicting_reagent = /datum/reagent/toxin/phoron
strength = 1
-/datum/reagent/toxin/cardox/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_VAURCA)
+/datum/reagent/toxin/cardox/affect_blood(var/mob/living/carbon/human/M, var/alien, var/removed)
+ if(!istype(M))
+ return
+
+ var/obj/item/organ/parasite/P = M.internal_organs_by_name["blackkois"]
+ if((alien == IS_VAURCA) || (istype(P) && P.stage >= 3))
M.adjustToxLoss(removed * strength*2)
else
M.adjustToxLoss(removed * strength)
diff --git a/html/changelogs/lordfowl-kois.yml b/html/changelogs/lordfowl-kois.yml
new file mode 100644
index 00000000000..ba7e7f62282
--- /dev/null
+++ b/html/changelogs/lordfowl-kois.yml
@@ -0,0 +1,6 @@
+author: LordFowl
+
+delete-after: True
+
+changes:
+ - tweak: "Poor unfortunate souls afflicted by Black K'ois now have greater longevity and are in some cases more Vaurca than man."