diff --git a/code/datums/disease.dm b/code/datums/disease.dm index 08528513f6e..68c1bf105d3 100644 --- a/code/datums/disease.dm +++ b/code/datums/disease.dm @@ -62,12 +62,12 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease return spread = (cure_present?"Remissive":initial_spread) - if(stage > max_stages) stage = max_stages - if(!cure_present && prob(stage_prob)) //now the disease shouldn't get back up to stage 4 in no time + if(!cure_present && prob(stage_prob) && age > stage_minimum_age) //now the disease shouldn't get back up to stage 4 in no time stage = min(stage + 1, max_stages) + age = 0 else if(cure_present && prob(cure_chance)) stage = max(stage - 1, 1) diff --git a/code/datums/diseases/appendicitis.dm b/code/datums/diseases/appendicitis.dm index ee579a294d5..16b4008fef0 100644 --- a/code/datums/diseases/appendicitis.dm +++ b/code/datums/diseases/appendicitis.dm @@ -12,43 +12,40 @@ severity = "Medium" longevity = 1000 hidden = list(0, 1) - stage_minimum_age = 300 // at least 200 life ticks per stage + stage_minimum_age = 160 // at least 200 life ticks per stage /datum/disease/appendicitis/stage_act() ..() - switch(stage) - if(1) - if(affected_mob.op_stage.appendix == 2.0) - // appendix is removed, can't get infected again - src.cure() - if(prob(5)) - affected_mob << "\red You feel a stinging pain in your abdomen!" - affected_mob.emote("me",1,"winces slightly.") - if(2) - if(prob(3)) - affected_mob << "\red You feel a stabbing pain in your abdomen!" - affected_mob.emote("me",1,"winces painfully.") - affected_mob.adjustToxLoss(1) - if(3) - if(prob(1)) - if (affected_mob.nutrition > 100) - var/mob/living/carbon/human/H = affected_mob - H.vomit() - else - affected_mob << "\red You gag as you want to throw up, but there's nothing in your stomach!" - affected_mob.Weaken(10) - affected_mob.adjustToxLoss(3) - - if(4) - if(prob(1) && ishuman(affected_mob)) + if(stage == 1) + if(affected_mob.op_stage.appendix == 2.0) + // appendix is removed, can't get infected again + src.cure() + if(prob(5)) + affected_mob << "\red You feel a stinging pain in your abdomen!" + affected_mob.emote("me",1,"winces slightly.") + if(stage > 1) + if(prob(3)) + affected_mob << "\red You feel a stabbing pain in your abdomen!" + affected_mob.emote("me",1,"winces painfully.") + affected_mob.adjustToxLoss(1) + if(stage > 2) + if(prob(1)) + if (affected_mob.nutrition > 100) var/mob/living/carbon/human/H = affected_mob - H << "\red Your abdomen is a world of pain!" - H.Weaken(10) - H.op_stage.appendix = 2.0 + H.vomit() + else + affected_mob << "\red You gag as you want to throw up, but there's nothing in your stomach!" + affected_mob.Weaken(10) + affected_mob.adjustToxLoss(3) + if(stage > 3) + if(prob(1) && ishuman(affected_mob)) + var/mob/living/carbon/human/H = affected_mob + H << "\red Your abdomen is a world of pain!" + H.Weaken(10) + H.op_stage.appendix = 2.0 - var/datum/organ/external/groin = H.get_organ("groin") - var/datum/wound/W = new /datum/wound/internal_bleeding(25) - H.adjustToxLoss(25) - groin.wounds += W - - src.cure() + var/datum/organ/external/groin = H.get_organ("groin") + var/datum/wound/W = new /datum/wound/internal_bleeding(25) + H.adjustToxLoss(25) + groin.wounds += W + src.cure()