Add disease resistance effects for spaceacillin (#67448)

About The Pull Request

Spaceacillin is currently an under utilized medical chem. Its only effect is to stop a person who is already infected from spreading an airborne disease.

My changes add the following when someone has taken spaceacillin:

    Infected mobs slow down disease progression by 50%
    Uninfected mobs have a 75% chance to block being infected
    Uninfected mobs have a 75% chance to block zombie infection when attacked
    Impregnated mobs that have an alien larva slow down larva growth by 50%

Why It's Good For The Game

Gives spaceacillin more utility since it was such a niche thing.
Changelog

cl
add: Add disease resistance to spaceacillin. It now gives 50% disease progression slowdown, 75% to block disease infection, 75% to block zombie infection when attacked, and 50% alien larva growth slowdown.
/cl
This commit is contained in:
Tim
2022-06-11 12:45:13 +12:00
committed by GitHub
parent 7a976bfff8
commit 4e347c21a6
5 changed files with 21 additions and 4 deletions
+8
View File
@@ -64,6 +64,9 @@
if(ishuman(src))
var/mob/living/carbon/human/infecting_human = src
if(infecting_human.reagents.has_reagent(/datum/reagent/medicine/spaceacillin) && prob(75))
return
switch(target_zone)
if(BODY_ZONE_HEAD)
if(isobj(infecting_human.head))
@@ -92,6 +95,11 @@
disease.try_infect(src)
/mob/living/proc/AirborneContractDisease(datum/disease/disease, force_spread)
if(ishuman(src))
var/mob/living/carbon/human/infecting_human = src
if(infecting_human.reagents.has_reagent(/datum/reagent/medicine/spaceacillin) && prob(75))
return
if(((disease.spread_flags & DISEASE_SPREAD_AIRBORNE) || force_spread) && prob((50*disease.spreading_modifier) - 1))
ForceContractDisease(disease)
+3 -2
View File
@@ -64,6 +64,8 @@
///Proc to process the disease and decide on whether to advance, cure or make the sympthoms appear. Returns a boolean on whether to continue acting on the symptoms or not.
/datum/disease/proc/stage_act(delta_time, times_fired)
var/slowdown = affected_mob.reagents.has_reagent(/datum/reagent/medicine/spaceacillin) ? 0.5 : 1 // spaceacillin slows stage speed by 50%
if(has_cure())
if(DT_PROB(cure_chance, delta_time))
update_stage(max(stage - 1, 1))
@@ -71,8 +73,7 @@
if(disease_flags & CURABLE && DT_PROB(cure_chance, delta_time))
cure()
return FALSE
else if(DT_PROB(stage_prob, delta_time))
else if(DT_PROB(stage_prob*slowdown, delta_time))
update_stage(min(stage + 1, max_stages))
return !carrier