Restricts Gibbingtons, Suicide, and Monkism syndromes

Restricts Gibbingtons, Suicide, and Monkism syndromes from even greater
diseases. Admins can still generate diseases with these syndromes
through secrets.

Fixes virus events potentially having people share the same virus datum.
This commit is contained in:
mwerezak
2015-01-10 02:30:27 -05:00
parent b0440b9c28
commit 1c5ca01dae
6 changed files with 31 additions and 28 deletions

View File

@@ -113,7 +113,7 @@
world.Reboot() world.Reboot()
var/datum/disease2/disease/lethal = new var/datum/disease2/disease/lethal = new
lethal.makerandom(1) lethal.makerandom(3)
lethal.infectionchance = 5 lethal.infectionchance = 5
// the more doctors, the more will be infected // the more doctors, the more will be infected

View File

@@ -608,12 +608,14 @@ var/list/admin_verbs_mentor = list(
var/datum/disease2/disease/D = new /datum/disease2/disease() var/datum/disease2/disease/D = new /datum/disease2/disease()
var/greater = ((input("Is this a lesser or greater disease?", "Give Disease") in list("Lesser", "Greater")) == "Greater") var/severity = 1
var/greater = input("Is this a lesser, greater, or badmin disease?", "Give Disease") in list("Lesser", "Greater", "Badmin")
D.makerandom(greater) switch(greater)
if (!greater) if ("Lesser") severity = 1
D.infectionchance = 1 if ("Greater") severity = 2
if ("Badmin") severity = 99
D.makerandom(severity)
D.infectionchance = input("How virulent is this disease? (1-100)", "Give Disease", D.infectionchance) as num D.infectionchance = input("How virulent is this disease? (1-100)", "Give Disease", D.infectionchance) as num
if(istype(T,/mob/living/carbon/human)) if(istype(T,/mob/living/carbon/human))
@@ -626,8 +628,8 @@ var/list/admin_verbs_mentor = list(
infect_virus2(T,D,1) infect_virus2(T,D,1)
feedback_add_details("admin_verb","GD2") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! feedback_add_details("admin_verb","GD2") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(usr)] gave [key_name(T)] a [(greater)? "greater":"lesser"] disease2 with infection chance [D.infectionchance].") log_admin("[key_name(usr)] gave [key_name(T)] a [greater] disease2 with infection chance [D.infectionchance].")
message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] a [(greater)? "greater":"lesser"] disease2 with infection chance [D.infectionchance].", 1) message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] a [greater] disease2 with infection chance [D.infectionchance].", 1)
/client/proc/make_sound(var/obj/O in world) // -- TLE /client/proc/make_sound(var/obj/O in world) // -- TLE
set category = "Special Verbs" set category = "Special Verbs"

View File

@@ -10,10 +10,10 @@ datum/event/viral_infection/setup()
for (var/i=0, i < num_diseases, i++) for (var/i=0, i < num_diseases, i++)
var/datum/disease2/disease/D = new /datum/disease2/disease var/datum/disease2/disease/D = new /datum/disease2/disease
var/greater = 0 //whether the disease is of the greater or lesser variety var/strength = 1 //whether the disease is of the greater or lesser variety
if (severity >= EVENT_LEVEL_MAJOR && prob(50)) if (severity >= EVENT_LEVEL_MAJOR && prob(50))
greater = 1 strength = 2
D.makerandom(greater) D.makerandom(strength)
viruses += D viruses += D
datum/event/viral_infection/announce() datum/event/viral_infection/announce()
@@ -32,6 +32,7 @@ datum/event/viral_infection/start()
severity = max(EVENT_LEVEL_MUNDANE, severity - 1) severity = max(EVENT_LEVEL_MUNDANE, severity - 1)
var/actual_severity = severity * rand(1, 3) var/actual_severity = severity * rand(1, 3)
while(actual_severity > 0 && candidates.len) while(actual_severity > 0 && candidates.len)
infect_mob(candidates[1], pick(viruses)) var/datum/disease2/disease/D = pick(viruses)
infect_mob(candidates[1], D.getcopy())
candidates.Remove(candidates[1]) candidates.Remove(candidates[1])
actual_severity-- actual_severity--

View File

@@ -16,20 +16,21 @@
uniqueID = rand(0,10000) uniqueID = rand(0,10000)
..() ..()
/datum/disease2/disease/proc/makerandom(var/greater=0) /datum/disease2/disease/proc/makerandom(var/severity=1)
for(var/i=1 ; i <= max_stage ; i++ ) for(var/i=1 ; i <= max_stage ; i++ )
var/datum/disease2/effectholder/holder = new /datum/disease2/effectholder var/datum/disease2/effectholder/holder = new /datum/disease2/effectholder
holder.stage = i holder.stage = i
if(greater) holder.getrandomeffect(severity)
holder.getrandomeffect(2)
else
holder.getrandomeffect()
effects += holder effects += holder
uniqueID = rand(0,10000) uniqueID = rand(0,10000)
if (greater) switch(severity)
infectionchance = rand(60,90) if(1)
else infectionchance = 1
infectionchance = 1 if(2)
infectionchance = rand(10,50)
else
infectionchance = rand(60,90)
antigen |= text2num(pick(ANTIGENS)) antigen |= text2num(pick(ANTIGENS))
antigen |= text2num(pick(ANTIGENS)) antigen |= text2num(pick(ANTIGENS))
spreadtype = prob(70) ? "Airborne" : "Contact" spreadtype = prob(70) ? "Airborne" : "Contact"

View File

@@ -33,7 +33,7 @@
multiplier = rand(1,effect.maxm) multiplier = rand(1,effect.maxm)
/datum/disease2/effectholder/proc/majormutate() /datum/disease2/effectholder/proc/majormutate()
getrandomeffect(2) getrandomeffect(3)
//////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////
////////////////////////EFFECTS///////////////////////////////// ////////////////////////EFFECTS/////////////////////////////////
@@ -66,7 +66,7 @@
/datum/disease2/effect/gibbingtons /datum/disease2/effect/gibbingtons
name = "Gibbingtons Syndrome" name = "Gibbingtons Syndrome"
stage = 4 stage = 4
badness = 2 badness = 3
activate(var/mob/living/carbon/mob,var/multiplier) activate(var/mob/living/carbon/mob,var/multiplier)
mob.gib() mob.gib()
@@ -88,7 +88,7 @@
/datum/disease2/effect/monkey /datum/disease2/effect/monkey
name = "Monkism Syndrome" name = "Monkism Syndrome"
stage = 4 stage = 4
badness = 2 badness = 3
activate(var/mob/living/carbon/mob,var/multiplier) activate(var/mob/living/carbon/mob,var/multiplier)
if(istype(mob,/mob/living/carbon/human)) if(istype(mob,/mob/living/carbon/human))
var/mob/living/carbon/human/h = mob var/mob/living/carbon/human/h = mob
@@ -97,7 +97,7 @@
/datum/disease2/effect/suicide /datum/disease2/effect/suicide
name = "Suicidal Syndrome" name = "Suicidal Syndrome"
stage = 4 stage = 4
badness = 2 badness = 3
activate(var/mob/living/carbon/mob,var/multiplier) activate(var/mob/living/carbon/mob,var/multiplier)
mob.suiciding = 1 mob.suiciding = 1
//instead of killing them instantly, just put them at -175 health and let 'em gasp for a while //instead of killing them instantly, just put them at -175 health and let 'em gasp for a while

View File

@@ -104,14 +104,13 @@ proc/airborne_can_reach(turf/source, turf/target)
//Infects mob M with random lesser disease, if he doesn't have one //Infects mob M with random lesser disease, if he doesn't have one
/proc/infect_mob_random_lesser(var/mob/living/carbon/M) /proc/infect_mob_random_lesser(var/mob/living/carbon/M)
var/datum/disease2/disease/D = new /datum/disease2/disease var/datum/disease2/disease/D = new /datum/disease2/disease
D.makerandom() D.makerandom(1)
D.infectionchance = 1
infect_mob(M, D) infect_mob(M, D)
//Infects mob M with random greated disease, if he doesn't have one //Infects mob M with random greated disease, if he doesn't have one
/proc/infect_mob_random_greater(var/mob/living/carbon/M) /proc/infect_mob_random_greater(var/mob/living/carbon/M)
var/datum/disease2/disease/D = new /datum/disease2/disease var/datum/disease2/disease/D = new /datum/disease2/disease
D.makerandom(1) D.makerandom(2)
infect_mob(M, D) infect_mob(M, D)
//Fancy prob() function. //Fancy prob() function.