diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 37ea5b37bd3..d691a079c33 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -338,6 +338,25 @@ This function completely restores a damaged organ to perfect condition. return //Updating germ levels. Handles organ germ levels and necrosis. +/* +The INFECTION_LEVEL values defined in setup.dm control the time it takes to reach the different +infection levels. Since infection growth is exponential, you can adjust the time it takes to get +from one germ_level to another using the rough formula: + +desired_germ_level = initial_germ_level*e^(desired_time_in_seconds/1000) + +So if I wanted it to take an average of 15 minutes to get from level one (100) to level two +I would set INFECTION_LEVEL_TWO to 100*e^(15*60/1000) = 245. Note that this is the average time, +the actual time is dependent on RNG. + +INFECTION_LEVEL_ONE below this germ level nothing happens, and the infection doesn't grow +INFECTION_LEVEL_TWO above this germ level the infection will start to spread to internal and adjacent organs +INFECTION_LEVEL_THREE above this germ level the player will take additional toxin damage per second, and will die in minutes without + antitox. also, above this germ level you will need to overdose on spaceacillin to reduce the germ_level. + +Note that amputating the affected organ does in fact remove the infection from the +player's body, though, antitox and spaceacillin are easy enough to get I doubt it will ever be needed. +*/ /datum/organ/external/proc/update_germs() if(status & (ORGAN_ROBOT|ORGAN_DESTROYED)) //Robotic limbs shouldn't be infected, nor should nonexistant limbs. @@ -358,7 +377,7 @@ This function completely restores a damaged organ to perfect condition. var/antibiotics = owner.reagents.get_reagent_amount("spaceacillin") if (germ_level > 0 && antibiotics > 5) - if (prob(4*antibiotics)) germ_level-- + if (prob(4*antibiotics)) germ_level-- //the higher the germ level the more antibiotics you'll need. if(germ_level >= INFECTION_LEVEL_ONE) //having an infection raises your body temperature @@ -367,10 +386,10 @@ This function completely restores a damaged organ to perfect condition. //world << "fever: [owner.bodytemperature] < [fever_temperature], raising temperature." owner.bodytemperature++ - if(prob(round(germ_level/10))) //aiming for a light infection to become serious after 40 minutes, standing still - if (prob(5)) - germ_level++ - owner.adjustToxLoss(1) + if(prob(round(germ_level/10))) + germ_level++ + if (prob(5)) //adjust this to tweak how fast people take toxin damage from infections + owner.adjustToxLoss(1) if(germ_level >= INFECTION_LEVEL_TWO) //spread the infection diff --git a/code/setup.dm b/code/setup.dm index ce10db610b5..5ee5bc8d791 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -863,10 +863,9 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse #define SHUTTLE_INTRANSIT 2 //Germs and infection -//These numbers have been calculated so that an untreated cut will become a serious infection after 50 minutes. #define GERM_LEVEL_AMBIENT 110 //maximum germ level you can reach by standing still #define GERM_LEVEL_MOVE_CAP 200 //maximum germ level you can reach by running around + #define INFECTION_LEVEL_ONE 100 #define INFECTION_LEVEL_TWO 500 #define INFECTION_LEVEL_THREE 1000 -#define INFECTION_LEVEL_TERMINAL 2500