This commit is contained in:
Guti
2024-11-21 00:00:05 +01:00
parent 4c77d88ba7
commit e123df8cdc
9 changed files with 22 additions and 19 deletions

View File

@@ -24,7 +24,7 @@ GLOBAL_LIST_EMPTY(current_pending_diseases)
else
stack_trace("Disease Outbreak: Invalid Event Level [severity]. Expected: 1-2")
virus = /datum/disease/cold
chosen_disease = new virus()
chosen_disease = new virus
else
if(severity == EVENT_LEVEL_MAJOR)
chosen_disease = create_virus(severity * pick(2,3)) //50% chance for a major disease instead of a moderate one
@@ -37,7 +37,7 @@ GLOBAL_LIST_EMPTY(current_pending_diseases)
GLOB.current_pending_diseases += chosen_disease
var/list/candidates = list()
for(var/mob/living/carbon/human/G in player_list)
for(var/mob/living/carbon/human/G in human_mob_list)
if(G.mind && G.stat != DEAD && G.is_client_active(5) && !player_is_antag(G.mind))
var/area/A = get_area(G)
if(!A)
@@ -48,17 +48,18 @@ GLOBAL_LIST_EMPTY(current_pending_diseases)
continue
if(isbelly(G.loc))
continue
if(!G.CanContractDisease())
if(G.species.virus_immune)
continue
candidates += G
var/chosen_infect = rand(3, 5)
while(chosen_infect)
var/mob/living/carbon/human/H = pick(candidates)
H.ContractDisease(chosen_disease)
candidates -= H
if(!isemptylist(candidates))
var/mob/living/carbon/human/H = pick(candidates)
H.ForceContractDisease(chosen_disease)
candidates -= H
chosen_infect--
//Creates a virus with a harmful effect, guaranteed to be spreadable by contact or airborne
/datum/event/disease_outbreak/proc/create_virus(max_severity = 6)

View File

@@ -108,6 +108,7 @@
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Blob", /datum/event/blob, 10, list(ASSIGNMENT_ENGINEER = 60), 1),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Wave", /datum/event/meteor_wave, 30, list(ASSIGNMENT_ENGINEER = 15), 1),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Disease Outbreak", /datum/event/disease_outbreak, -30, list(ASSIGNMENT_MEDICAL = 30, ASSIGNMENT_ANY = 1), 1, min_jobs = list(ASSIGNMENT_MEDICAL = 2)),
))
#undef ASSIGNMENT_ANY

View File

@@ -296,7 +296,7 @@ var/const/CE_STABLE_THRESHOLD = 0.5
var/datum/disease/D = ID
if((D.spread_flags & SPECIAL) || (D.spread_flags & NON_CONTAGIOUS)) // You can't put non-contagius diseases in blood, but just in case
continue
ContractDisease(D)
ForceContractDisease(D)
if (injected.data["resistances"] && prob(5))
antibodies |= injected.data["resistances"]
if (injected.data["antibodies"] && prob(5))