diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm index fb03d42ba63..b877215294c 100644 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm +++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_embryo.dm @@ -1,4 +1,4 @@ -/obj/item/organ/xenos/alien_embryo +/obj/item/organ/parasite/alien_embryo name = "alien embryo" desc = "All slimy and yuck." icon = 'icons/mob/alien.dmi' @@ -6,72 +6,72 @@ parent_organ = "chest" organ_tag = "alien embryo" origin_tech = list(TECH_BIO = 5) - var/stage = 0 + stage_interval = 200 -/obj/item/organ/xenos/alien_embryo/Destroy() +/obj/item/organ/parasite/alien_embryo/Destroy() if(owner) owner.status_flags &= ~(XENO_HOST) RemoveInfectionImages(owner) return ..() -/obj/item/organ/xenos/alien_embryo/replaced(var/mob/living/carbon/human/target,var/obj/item/organ/external/affected) +/obj/item/organ/parasite/alien_embryo/replaced(var/mob/living/carbon/human/target,var/obj/item/organ/external/affected) ..(target, affected) if(owner && ishuman(owner)) START_PROCESSING(SSprocessing, src) AddInfectionImages(owner) -/obj/item/organ/xenos/alien_embryo/removed(var/mob/living/user) +/obj/item/organ/parasite/alien_embryo/removed(var/mob/living/user) if(owner) owner.status_flags &= ~(XENO_HOST) RemoveInfectionImages(owner) ..(user) +/obj/item/organ/parasite/alien_embryo/stage_effect() + RefreshInfectionImage(owner) + return -/obj/item/organ/xenos/alien_embryo/process() +/obj/item/organ/parasite/alien_embryo/process() ..() if(!owner) return - if(stage < 5 && prob(3)) - stage++ - RefreshInfectionImage(owner) + if(stage >= 2) + if(prob(1)) + owner.emote("sneeze") + if(prob(1)) + owner.emote("cough") + if(prob(1)) + owner << "Your throat feels sore." + if(prob(1)) + owner << "Mucous runs down the back of your throat." - switch(stage) - if(2, 3) - if(prob(1)) - owner.emote("sneeze") - if(prob(1)) - owner.emote("cough") - if(prob(1)) - owner << "Your throat feels sore." - if(prob(1)) - owner << "Mucous runs down the back of your throat." - if(4) - if(prob(1)) - owner.emote("sneeze") - if(prob(1)) - owner.emote("cough") - if(prob(2)) - owner << "Your muscles ache." - if(prob(20)) - owner.take_organ_damage(1) - if(prob(2)) - owner << "Your stomach hurts." - if(prob(20)) - owner.adjustToxLoss(1) - owner.updatehealth() - if(5) - owner << "You feel something tearing its way out of your stomach!" - owner.adjustToxLoss(10) - owner.updatehealth() - if(prob(50)) - AttemptGrow() + if(stage >= 3) + if(prob(1)) + owner.emote("sneeze") + if(prob(1)) + owner.emote("cough") + if(prob(2)) + owner << "Your muscles ache." + if(prob(20)) + owner.take_organ_damage(1) + if(prob(2)) + owner << "Your stomach hurts." + if(prob(20)) + owner.adjustToxLoss(1) + owner.updatehealth() -/obj/item/organ/xenos/alien_embryo/proc/AttemptGrow() + if(stage >= 4) + owner << "You feel something tearing its way out of your stomach!" + owner.adjustToxLoss(10) + owner.updatehealth() + if(prob(50)) + AttemptGrow() + +/obj/item/organ/parasite/alien_embryo/proc/AttemptGrow() var/list/candidates = get_alien_candidates() var/picked = null @@ -99,7 +99,7 @@ Proc: RefreshInfectionImage() Des: Removes all infection images from aliens and places an infection image on all infected mobs for aliens. ----------------------------------------*/ -/obj/item/organ/xenos/alien_embryo/proc/RefreshInfectionImage() +/obj/item/organ/parasite/alien_embryo/proc/RefreshInfectionImage() for(var/mob/living/carbon/alien in player_list) @@ -120,7 +120,7 @@ Des: Removes all infection images from aliens and places an infection image on a Proc: AddInfectionImages(C) Des: Checks if the passed mob (C) is infected with the alien egg, then gives each alien client an infected image at C. ----------------------------------------*/ -/obj/item/organ/xenos/alien_embryo/proc/AddInfectionImages(var/mob/living/C) +/obj/item/organ/parasite/alien_embryo/proc/AddInfectionImages(var/mob/living/C) if(C) for(var/mob/living/carbon/alien in player_list) @@ -138,7 +138,7 @@ Proc: RemoveInfectionImage(C) Des: Removes the alien infection image from all aliens in the world located in passed mob (C). ----------------------------------------*/ -/obj/item/organ/xenos/alien_embryo/proc/RemoveInfectionImages(var/mob/living/C) +/obj/item/organ/parasite/alien_embryo/proc/RemoveInfectionImages(var/mob/living/C) if(C) diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm index 4a756ddcbd7..0dfebde0254 100644 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm +++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_facehugger.dm @@ -117,7 +117,7 @@ var/const/MAX_ACTIVE_TIME = 400 return var/mob/living/carbon/human/C = M - if(istype(C) && locate(/obj/item/organ/xenos/alien_embryo) in C.internal_organs) + if(istype(C) && locate(/obj/item/organ/parasite/alien_embryo) in C.internal_organs) return if(locate(/obj/item/organ/xenos/hivenode) in C.internal_organs) @@ -177,7 +177,7 @@ var/const/MAX_ACTIVE_TIME = 400 if(!sterile) //target.contract_disease(new /datum/disease/alien_embryo(0)) //so infection chance is same as virus infection chance var/obj/item/organ/affecting = target.get_organ("chest") - var/obj/item/organ/xenos/alien_embryo/kid = new(affecting) + var/obj/item/organ/parasite/alien_embryo/kid = new(affecting) kid.replaced(target,affecting) target.status_flags |= XENO_HOST diff --git a/code/modules/organs/subtypes/parasite.dm b/code/modules/organs/subtypes/parasite.dm index 9ba6da2e484..6cfd586e049 100644 --- a/code/modules/organs/subtypes/parasite.dm +++ b/code/modules/organs/subtypes/parasite.dm @@ -22,6 +22,7 @@ if(stage_ticker >= stage*stage_interval) stage = min(stage+1,max_stage) + stage_effect() /obj/item/organ/parasite/handle_rejection() if(subtle) @@ -31,6 +32,9 @@ rejecting = 0 return +/obj/item/organ/parasite/proc/stage_effect() + return + /////////////////// ///K'ois Mycosis/// ///////////////////