mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
-Advance diseases were given a good bug fixing based on reports and runtimes. Including the diseases spreading correctly.
=Proposals= -Cyborgs can now beep and ping. -Hulks will now talk in all upper-case and will spurt out random hulk phrases and flex. =Sprites= -Improved APC sprite by TankNut. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5031 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -120,11 +120,11 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
|
||||
if(how_spread != AIRBORNE && how_spread != SPECIAL)
|
||||
check_range = 1 // everything else, like infect-on-contact things, only infect things on top of it
|
||||
|
||||
if(isturf(affected_mob.loc))
|
||||
if(isturf(source.loc))
|
||||
for(var/mob/living/carbon/M in oview(check_range, source))
|
||||
if(isturf(M.loc))
|
||||
if(AStar(affected_mob.loc, M.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, check_range))
|
||||
M.contract_disease(src)
|
||||
if(AStar(source.loc, M.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, check_range))
|
||||
M.contract_disease(src, 0, 1, force_spread)
|
||||
|
||||
return
|
||||
|
||||
@@ -140,6 +140,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
|
||||
for(var/datum/disease/D in affected_mob.viruses)
|
||||
if(D != src)
|
||||
if(IsSame(D))
|
||||
//error("Deleting [D.name] because it's the same as [src.name].")
|
||||
del(D) // if there are somehow two viruses of the same kind in the system, delete the other one
|
||||
|
||||
if(holder == affected_mob)
|
||||
|
||||
@@ -25,6 +25,7 @@ var/list/archive_diseases = list()
|
||||
agent = "advance microbes"
|
||||
max_stages = 5
|
||||
spread = "Unknown"
|
||||
affected_species = list("Human","Monkey")
|
||||
|
||||
// NEW VARS
|
||||
|
||||
@@ -47,12 +48,15 @@ var/list/archive_diseases = list()
|
||||
if(!istype(D))
|
||||
D = null
|
||||
// Generate symptoms if we weren't given any.
|
||||
|
||||
if(!symptoms || !symptoms.len)
|
||||
|
||||
if(!D || !D.symptoms || !D.symptoms.len)
|
||||
symptoms = GenerateSymptoms()
|
||||
else
|
||||
symptoms = D.symptoms
|
||||
name = D.name
|
||||
|
||||
Refresh(!copy)
|
||||
..(process, D)
|
||||
return
|
||||
@@ -69,9 +73,14 @@ var/list/archive_diseases = list()
|
||||
// Compares type then ID.
|
||||
/datum/disease/advance/IsSame(var/datum/disease/advance/D)
|
||||
if(!(istype(D, /datum/disease/advance)))
|
||||
//error("Returning 0 because not same type.")
|
||||
|
||||
return 0
|
||||
//error("Comparing [src.GetDiseaseID()] [D.GetDiseaseID()]")
|
||||
if(src.GetDiseaseID() != D.GetDiseaseID())
|
||||
//error("Returing 0")
|
||||
return 0
|
||||
//error("Returning 1")
|
||||
return 1
|
||||
|
||||
// To add special resistances.
|
||||
@@ -149,14 +158,14 @@ var/list/archive_diseases = list()
|
||||
CRASH("We did not have any symptoms before generating properties.")
|
||||
return
|
||||
|
||||
var/list/properties = list("resistance" = 1, "stealth" = 1, "stage_rate" = 1, "tansmittable" = 1, "severity" = 1)
|
||||
var/list/properties = list("resistance" = 1, "stealth" = 1, "stage_rate" = 1, "transmittable" = 1, "severity" = 1)
|
||||
|
||||
for(var/datum/symptom/S in symptoms)
|
||||
|
||||
properties["resistance"] += S.resistance
|
||||
properties["stealth"] += S.stealth
|
||||
properties["stage_rate"] += S.stage_speed
|
||||
properties["tansmittable"] += S.transmittable
|
||||
properties["transmittable"] += S.transmittable
|
||||
properties["severity"] = max(properties["severity"], S.level) // severity is based on the highest level symptom
|
||||
|
||||
return properties
|
||||
@@ -168,8 +177,8 @@ var/list/archive_diseases = list()
|
||||
|
||||
hidden = list( (properties["stealth"] > 2), (properties["stealth"] > 3) )
|
||||
// The more symptoms we have, the less transmittable it is but some symptoms can make up for it.
|
||||
SetSpread(max(BLOOD, min(round(properties["tansmittable"] - (symptoms.len / 2)), AIRBORNE)))
|
||||
permeability_mod = 0.5 * properties["transmittable"]
|
||||
SetSpread(max(BLOOD, min(properties["transmittable"] - symptoms.len, AIRBORNE)))
|
||||
permeability_mod = round(0.5 * properties["transmittable"])
|
||||
stage_prob = max(properties["stage_rate"], 1)
|
||||
SetSeverity(properties["severity"])
|
||||
GenerateCure(properties)
|
||||
@@ -182,15 +191,15 @@ var/list/archive_diseases = list()
|
||||
switch(spread_id)
|
||||
|
||||
if(NON_CONTAGIOUS)
|
||||
src.spread = "None"
|
||||
spread = "None"
|
||||
if(SPECIAL)
|
||||
src.spread = "None"
|
||||
spread = "None"
|
||||
if(CONTACT_GENERAL, CONTACT_HANDS, CONTACT_FEET)
|
||||
src.spread = "On contact"
|
||||
spread = "On contact"
|
||||
if(AIRBORNE)
|
||||
src.spread = "Airborne"
|
||||
spread = "Airborne"
|
||||
if(BLOOD)
|
||||
src.spread = "Blood"
|
||||
spread = "Blood"
|
||||
|
||||
spread_type = spread_id
|
||||
//world << "Setting spread type to [spread_id]/[spread]"
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
/datum/disease/advance/cold/New(var/process = 1, var/datum/disease/advance/D)
|
||||
name = "Cold"
|
||||
symptoms = list(new/datum/symptom/sneeze)
|
||||
..(process, D)
|
||||
/datum/disease/advance/cold/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0)
|
||||
if(!D)
|
||||
name = "Cold"
|
||||
symptoms = list(new/datum/symptom/sneeze)
|
||||
..(process, D, copy)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
/datum/disease/advance/flu/New(var/process = 1, var/datum/disease/advance/D)
|
||||
name = "Flu"
|
||||
symptoms = list(new/datum/symptom/cough)
|
||||
..(process, D)
|
||||
/datum/disease/advance/flu/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0)
|
||||
if(!D)
|
||||
name = "Flu"
|
||||
symptoms = list(new/datum/symptom/cough)
|
||||
..(process, D, copy)
|
||||
|
||||
@@ -6,6 +6,7 @@ Confusion
|
||||
Little bit hidden.
|
||||
Lowers resistance.
|
||||
Decreases stage speed.
|
||||
Not very transmittable.
|
||||
Intense Level.
|
||||
|
||||
Bonus
|
||||
@@ -20,8 +21,10 @@ Bonus
|
||||
stealth = 1
|
||||
resistance = -1
|
||||
stage_speed = -3
|
||||
transmittable = 0
|
||||
level = 4
|
||||
|
||||
|
||||
/datum/symptom/confusion/Activate(var/datum/disease/advance/A)
|
||||
..()
|
||||
if(prob(SYMPTOM_ACTIVATION_PROB))
|
||||
|
||||
@@ -5,7 +5,8 @@ Coughing
|
||||
|
||||
Noticable.
|
||||
No Resistance.
|
||||
Doesn't increase stage speed..
|
||||
Doesn't increase stage speed.
|
||||
Transmittable.
|
||||
Low Level.
|
||||
|
||||
BONUS
|
||||
@@ -20,6 +21,7 @@ BONUS
|
||||
stealth = -1
|
||||
resistance = 0
|
||||
stage_speed = 0
|
||||
transmittable = 2
|
||||
level = 1
|
||||
|
||||
/datum/symptom/cough/Activate(var/datum/disease/advance/A)
|
||||
|
||||
@@ -6,6 +6,7 @@ Damage Converter
|
||||
Little bit hidden.
|
||||
Lowers resistance tremendously.
|
||||
Decreases stage speed tremendously.
|
||||
Reduced transmittablity
|
||||
Intense Level.
|
||||
|
||||
Bonus
|
||||
@@ -18,8 +19,9 @@ Bonus
|
||||
|
||||
name = "Toxic Compensation"
|
||||
stealth = 1
|
||||
resistance = -5
|
||||
stage_speed = -5
|
||||
resistance = -4
|
||||
stage_speed = -4
|
||||
transmittable = -2
|
||||
level = 4
|
||||
|
||||
/datum/symptom/damage_converter/Activate(var/datum/disease/advance/A)
|
||||
|
||||
@@ -6,6 +6,7 @@ Dizziness
|
||||
Little bit hidden.
|
||||
Lowers resistance considerably.
|
||||
Decreases stage speed.
|
||||
Reduced transmittability
|
||||
Intense Level.
|
||||
|
||||
Bonus
|
||||
@@ -20,6 +21,7 @@ Bonus
|
||||
stealth = 1
|
||||
resistance = -2
|
||||
stage_speed = -3
|
||||
transmittable = -1
|
||||
level = 4
|
||||
|
||||
/datum/symptom/dizzy/Activate(var/datum/disease/advance/A)
|
||||
|
||||
@@ -6,6 +6,7 @@ Fever
|
||||
No change to hidden.
|
||||
Increases resistance.
|
||||
Increases stage speed.
|
||||
Little transmittable.
|
||||
Low level.
|
||||
|
||||
Bonus
|
||||
@@ -20,6 +21,7 @@ Bonus
|
||||
stealth = 0
|
||||
resistance = 3
|
||||
stage_speed = 3
|
||||
transmittable = 1
|
||||
level = 2
|
||||
|
||||
/datum/symptom/fever/Activate(var/datum/disease/advance/A)
|
||||
|
||||
@@ -6,6 +6,7 @@ Hallucigen
|
||||
Very noticable.
|
||||
Lowers resistance considerably.
|
||||
Decreases stage speed.
|
||||
Reduced transmittable.
|
||||
Critical Level.
|
||||
|
||||
Bonus
|
||||
@@ -20,6 +21,7 @@ Bonus
|
||||
stealth = -2
|
||||
resistance = -3
|
||||
stage_speed = -3
|
||||
transmittable = -1
|
||||
level = 5
|
||||
|
||||
/datum/symptom/hallucigen/Activate(var/datum/disease/advance/A)
|
||||
|
||||
@@ -5,7 +5,8 @@ Headache
|
||||
|
||||
Noticable.
|
||||
Highly resistant.
|
||||
Increases stage speed..
|
||||
Increases stage speed.
|
||||
Not transmittable.
|
||||
Low Level.
|
||||
|
||||
BONUS
|
||||
@@ -15,15 +16,16 @@ BONUS
|
||||
//////////////////////////////////////
|
||||
*/
|
||||
|
||||
/datum/symptom/cough
|
||||
/datum/symptom/headache
|
||||
|
||||
name = "Headache"
|
||||
stealth = -1
|
||||
resistance = 4
|
||||
stage_speed = 2
|
||||
transmittable = 0
|
||||
level = 1
|
||||
|
||||
/datum/symptom/cough/Activate(var/datum/disease/advance/A)
|
||||
/datum/symptom/headache/Activate(var/datum/disease/advance/A)
|
||||
..()
|
||||
if(prob(SYMPTOM_ACTIVATION_PROB))
|
||||
var/mob/living/M = A.affected_mob
|
||||
|
||||
@@ -5,7 +5,8 @@ Itching
|
||||
|
||||
Not noticable or unnoticable.
|
||||
Resistant.
|
||||
Increases stage speed..
|
||||
Increases stage speed.
|
||||
Little transmittable.
|
||||
Low Level.
|
||||
|
||||
BONUS
|
||||
@@ -21,6 +22,7 @@ BONUS
|
||||
stealth = 0
|
||||
resistance = 3
|
||||
stage_speed = 3
|
||||
transmittable = 1
|
||||
level = 1
|
||||
|
||||
/datum/symptom/itching/Activate(var/datum/disease/advance/A)
|
||||
|
||||
@@ -6,6 +6,7 @@ Sneezing
|
||||
Very Noticable.
|
||||
Increases resistance.
|
||||
Doesn't increase stage speed.
|
||||
Very transmittable.
|
||||
Low Level.
|
||||
|
||||
Bonus
|
||||
@@ -21,6 +22,7 @@ Bonus
|
||||
stealth = -2
|
||||
resistance = 2
|
||||
stage_speed = 0
|
||||
transmittable = 3
|
||||
level = 1
|
||||
|
||||
/datum/symptom/sneeze/Activate(var/datum/disease/advance/A)
|
||||
|
||||
@@ -6,6 +6,7 @@ Vomiting
|
||||
Very Very Noticable.
|
||||
Decreases resistance.
|
||||
Doesn't increase stage speed.
|
||||
Little transmittable.
|
||||
Medium Level.
|
||||
|
||||
Bonus
|
||||
@@ -24,6 +25,7 @@ Bonus
|
||||
stealth = -2
|
||||
resistance = -1
|
||||
stage_speed = 0
|
||||
transmittable = 1
|
||||
level = 3
|
||||
|
||||
/datum/symptom/vomit/Activate(var/datum/disease/advance/A)
|
||||
@@ -57,6 +59,7 @@ Vomiting Blood
|
||||
Very Very Noticable.
|
||||
Decreases resistance.
|
||||
Decreases stage speed.
|
||||
Little transmittable.
|
||||
Intense level.
|
||||
|
||||
Bonus
|
||||
@@ -74,6 +77,7 @@ Bonus
|
||||
stealth = -2
|
||||
resistance = -1
|
||||
stage_speed = -1
|
||||
transmittable = 1
|
||||
level = 4
|
||||
|
||||
/datum/symptom/vomit/blood/Vomit(var/mob/living/M)
|
||||
|
||||
@@ -5,7 +5,8 @@ Weight Gain
|
||||
|
||||
Very Very Noticable.
|
||||
Decreases resistance.
|
||||
Decreases stage speed..
|
||||
Decreases stage speed.
|
||||
Reduced transmittable.
|
||||
Intense Level.
|
||||
|
||||
Bonus
|
||||
@@ -20,6 +21,7 @@ Bonus
|
||||
stealth = -3
|
||||
resistance = -3
|
||||
stage_speed = -2
|
||||
transmittable = -2
|
||||
level = 4
|
||||
|
||||
/datum/symptom/weight_gain/Activate(var/datum/disease/advance/A)
|
||||
@@ -44,6 +46,7 @@ Weight Loss
|
||||
Very Very Noticable.
|
||||
Decreases resistance.
|
||||
Decreases stage speed.
|
||||
Reduced Transmittable.
|
||||
High level.
|
||||
|
||||
Bonus
|
||||
@@ -59,6 +62,7 @@ Bonus
|
||||
stealth = -3
|
||||
resistance = -2
|
||||
stage_speed = -2
|
||||
transmittable = -2
|
||||
level = 3
|
||||
|
||||
/datum/symptom/weight_loss/Activate(var/datum/disease/advance/A)
|
||||
@@ -82,6 +86,7 @@ Weight Even
|
||||
Very Noticable.
|
||||
Decreases resistance.
|
||||
Decreases stage speed.
|
||||
Reduced transmittable.
|
||||
High level.
|
||||
|
||||
Bonus
|
||||
@@ -98,6 +103,7 @@ Bonus
|
||||
stealth = -3
|
||||
resistance = -2
|
||||
stage_speed = -2
|
||||
transmittable = -2
|
||||
level = 4
|
||||
|
||||
/datum/symptom/weight_loss/Activate(var/datum/disease/advance/A)
|
||||
|
||||
Reference in New Issue
Block a user