-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:
giacomand@gmail.com
2012-11-09 21:12:59 +00:00
parent 4746f20f35
commit d71cc8f3d6
22 changed files with 166 additions and 41 deletions
+4 -3
View File
@@ -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)
+18 -9
View File
@@ -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]"
+5 -4
View File
@@ -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)
+5 -4
View File
@@ -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)