From 7955d348d8d327730e158ccdab6f4f656499730f Mon Sep 17 00:00:00 2001 From: "giacomand@gmail.com" Date: Tue, 13 Nov 2012 00:28:07 +0000 Subject: [PATCH] Lots of bugs fixed for advance diseases. Fixed advance diseases using the same reference in mobs. Fixed advance diseases referencing other advance diseases' symptoms, instead of just copying it. I tested it more thoroughly this time and I can't find any issues but if you do please add them to the bug tracker and or contact me on #coderbus. Added a new reaction which will remove symptoms from a disease. Needs blood and synaptizine. Added a new symptom, shivering will make you cold. Tweaked and balanced some symptoms. Removed the "flex" emote that hulks will do randomly. Reduced the change to speak for hulks and brain damaged mobs. ( 7% -> 3% chance) Please let me know if anything is out of place or wrong. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5048 316c924e-a436-60f5-8080-3fe189b3f50e --- code/__HELPERS/lists.dm | 7 +- code/datums/disease.dm | 9 +- code/datums/diseases/advance/advance.dm | 53 +- .../datums/diseases/advance/symptoms/cough.dm | 2 +- .../datums/diseases/advance/symptoms/fever.dm | 2 +- .../diseases/advance/symptoms/shivering.dm | 34 ++ .../diseases/advance/symptoms/sneeze.dm | 2 +- .../diseases/advance/symptoms/symptoms.dm | 2 +- .../datums/diseases/advance/symptoms/vomit.dm | 2 +- .../diseases/advance/symptoms/weight.dm | 1 + code/game/atoms.dm | 8 +- .../gamemodes/changeling/changeling_powers.dm | 6 +- .../effects/decals/Cleanable/aliens.dm | 2 +- .../effects/decals/Cleanable/humans.dm | 2 +- code/game/objects/effects/gibs.dm | 2 +- code/modules/mob/living/carbon/human/life.dm | 10 +- code/modules/mob/living/carbon/human/say.dm | 2 +- code/modules/reagents/Chemistry-Holder.dm | 35 +- code/modules/reagents/Chemistry-Reagents.dm | 30 +- code/modules/reagents/Chemistry-Recipes.dm | 21 +- .../reagents/reagent_containers/syringes.dm | 2 +- html/changelog.html | 11 + tgstation.dme | 504 +----------------- 23 files changed, 170 insertions(+), 579 deletions(-) create mode 100644 code/datums/diseases/advance/symptoms/shivering.dm diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm index 620bd33d2b3..827a6348c26 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -304,9 +304,4 @@ proc/listclearnulls(list/list) if(bitfield & bit) r += bit - return r - -/proc/safe_pick_list(var/list/L) - if(L && L.len) - return pick(L) - return null \ No newline at end of file + return r \ No newline at end of file diff --git a/code/datums/disease.dm b/code/datums/disease.dm index b4457a473d4..b016234ef8e 100644 --- a/code/datums/disease.dm +++ b/code/datums/disease.dm @@ -30,6 +30,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease var/cure_list = null // allows for multiple possible cure combinations var/cure_chance = 8//chance for the cure to do its job var/spread = null //spread type description + var/initial_spread = null var/spread_type = AIRBORNE var/contagious_period = 0//the disease stage when it can be spread var/list/affected_species = list() @@ -58,7 +59,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease //world << "[affected_mob] is carrier" return - spread = (cure_present?"Remissive":initial(spread)) + spread = (cure_present?"Remissive":initial_spread) if(stage > max_stages) stage = max_stages @@ -94,7 +95,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease return result -/datum/disease/proc/spread(var/atom/source=null, var/airborne_range = 3, var/force_spread) +/datum/disease/proc/spread(var/atom/source=null, var/airborne_range = 2, var/force_spread) //world << "Disease [src] proc spread was called from holder [source]" // If we're overriding how we spread, say so here @@ -174,12 +175,16 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease cure_list = list(cure_id) // to add more cures, add more vars to this list in the actual disease's New() if(process) // Viruses in list are considered active. active_diseases += src + initial_spread = spread /datum/disease/proc/IsSame(var/datum/disease/D) if(istype(src, D.type)) return 1 return 0 +/datum/disease/proc/Copy() + return new type(0, src) + /* /datum/disease/Del() active_diseases.Remove(src) diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 2a1f23432ea..4ea713bb2b7 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -11,6 +11,7 @@ var/list/archive_diseases = list() + /* PROPERTIES @@ -54,7 +55,8 @@ var/list/archive_diseases = list() if(!D || !D.symptoms || !D.symptoms.len) symptoms = GenerateSymptoms() else - symptoms = D.symptoms + for(var/datum/symptom/S in D.symptoms) + symptoms += new S.type name = D.name Refresh(!copy) @@ -93,6 +95,9 @@ var/list/archive_diseases = list() del(src) //delete the datum to stop it processing return +// Returns the advance disease with a different reference memory. +/datum/disease/advance/Copy() + return new /datum/disease/advance(0, src, 1) /* @@ -178,7 +183,7 @@ 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(properties["transmittable"] - symptoms.len, AIRBORNE))) - permeability_mod = round(0.5 * properties["transmittable"]) + permeability_mod = max(round(0.5 * properties["transmittable"]), 1) stage_prob = max(properties["stage_rate"], 1) SetSeverity(properties["severity"]) GenerateCure(properties) @@ -250,12 +255,18 @@ var/list/archive_diseases = list() cure_id = "ethylredoxrazine" if(6) - cure_id = "silver" + cure_id = "synaptizine" if(7) - cure_id = "gold" + cure_id = "silver" if(8) + cure_id = "gold" + + if(9) + cure_id = "mindbreaker" + + else cure_id = "plasma" // Get the cure name from the cure_id @@ -267,12 +278,21 @@ var/list/archive_diseases = list() // Randomly generate a symptom, has a chance to lose or gain a symptom. /datum/disease/advance/proc/Evolve(var/level = 2) - var/s = safe_pick_list(GenerateSymptoms(level, 1)) + var/s = safepick(GenerateSymptoms(level, 1)) if(s) AddSymptom(s) Refresh() return +// Randomly remove a symptom. +/datum/disease/advance/proc/Devolve() + if(symptoms.len > 1) + var/s = safepick(symptoms) + if(s) + RemoveSymptom(s) + Refresh() + return + // Name the disease. /datum/disease/advance/proc/AssignName(var/name = "Unknown") src.name = name @@ -293,7 +313,7 @@ var/list/archive_diseases = list() if(HasSymptom(S)) return - if(symptoms.len < 4 + rand(-1, 1)) + if(symptoms.len < 3 + rand(-1, 1)) symptoms += S else RemoveSymptom(pick(symptoms)) @@ -314,9 +334,13 @@ var/list/archive_diseases = list() // Mix a list of advance diseases and return the mixed result. /proc/Advance_Mix(var/list/D_list) + //world << "Mixing!!!!" + var/list/diseases = list() - for(var/datum/disease/advance/A in D_list) - diseases += A + + for(var/datum/disease/advance/A in D_list.Copy()) + diseases += A.Copy() + if(!diseases.len) return null if(diseases.len <= 1) @@ -330,15 +354,26 @@ var/list/archive_diseases = list() var/datum/disease/advance/D1 = pick(diseases) diseases -= D1 - D_list -= D1 var/datum/disease/advance/D2 = pick(diseases) D2.Mix(D1) // Should be only 1 entry left, but if not let's only return a single entry + //world << "END MIXING!!!!!" var/datum/disease/advance/to_return = pick(diseases) to_return.Refresh() return to_return +/proc/SetViruses(var/datum/reagent/R, var/list/data) + if(data) + var/list/preserve = list() + if(istype(data) && data["viruses"]) + for(var/datum/disease/A in data["viruses"]) + preserve += A.Copy() + R.data = data.Copy() + else + R.data = data + if(preserve.len) + R.data["viruses"] = preserve #undef RANDOM_STARTING_LEVEL \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/cough.dm b/code/datums/diseases/advance/symptoms/cough.dm index a467f760ea6..5d36b4b2682 100644 --- a/code/datums/diseases/advance/symptoms/cough.dm +++ b/code/datums/diseases/advance/symptoms/cough.dm @@ -30,7 +30,7 @@ BONUS var/mob/living/M = A.affected_mob switch(A.stage) if(1, 2, 3) - M << "[pick("You swallow excess mucus.", "You lightly cough .")]" + M << "[pick("You swallow excess mucus.", "You lightly cough.")]" else M.emote("cough") M.drop_item() diff --git a/code/datums/diseases/advance/symptoms/fever.dm b/code/datums/diseases/advance/symptoms/fever.dm index d5cb72f6122..e53e36bf159 100644 --- a/code/datums/diseases/advance/symptoms/fever.dm +++ b/code/datums/diseases/advance/symptoms/fever.dm @@ -29,6 +29,6 @@ Bonus if(prob(SYMPTOM_ACTIVATION_PROB)) var/mob/living/carbon/M = A.affected_mob M << "[pick("You feel hot.", "You feel like you're burning.")]" - M.bodytemperature += 30 * A.stage + M.bodytemperature += 20 * A.stage return diff --git a/code/datums/diseases/advance/symptoms/shivering.dm b/code/datums/diseases/advance/symptoms/shivering.dm new file mode 100644 index 00000000000..ba7c4d0c870 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/shivering.dm @@ -0,0 +1,34 @@ +/* +////////////////////////////////////// + +Shivering + + No change to hidden. + Increases resistance. + Increases stage speed. + Little transmittable. + Low level. + +Bonus + Cools down your body. + +////////////////////////////////////// +*/ + +/datum/symptom/shivering + + name = "Shivering" + stealth = 0 + resistance = 2 + stage_speed = 2 + transmittable = 1 + level = 2 + +/datum/symptom/shivering/Activate(var/datum/disease/advance/A) + ..() + if(prob(SYMPTOM_ACTIVATION_PROB)) + var/mob/living/carbon/M = A.affected_mob + M << "[pick("You feel cold.", "You start shaking from the cold.")]" + M.bodytemperature -= 20 * A.stage + + return diff --git a/code/datums/diseases/advance/symptoms/sneeze.dm b/code/datums/diseases/advance/symptoms/sneeze.dm index 94aec8e23e6..a745ae26db9 100644 --- a/code/datums/diseases/advance/symptoms/sneeze.dm +++ b/code/datums/diseases/advance/symptoms/sneeze.dm @@ -31,7 +31,7 @@ Bonus var/mob/living/M = A.affected_mob switch(A.stage) if(1, 2, 3) - M.visible_message("[M] sniffs.") + M.emote("sniff") else M.emote("sneeze") A.spread(A.holder, 5, AIRBORNE) diff --git a/code/datums/diseases/advance/symptoms/symptoms.dm b/code/datums/diseases/advance/symptoms/symptoms.dm index e1ae6640da1..da2109c81e0 100644 --- a/code/datums/diseases/advance/symptoms/symptoms.dm +++ b/code/datums/diseases/advance/symptoms/symptoms.dm @@ -3,7 +3,7 @@ var/list/list_symptoms = typesof(/datum/symptom) - /datum/symptom var/list/dictionary_symptoms = list() -var/global/const/SYMPTOM_ACTIVATION_PROB = 1 +var/global/const/SYMPTOM_ACTIVATION_PROB = 3 /datum/symptom // Buffs/Debuffs the symptom has to the overall engineered disease. diff --git a/code/datums/diseases/advance/symptoms/vomit.dm b/code/datums/diseases/advance/symptoms/vomit.dm index 495163aed5f..d97ca858f9b 100644 --- a/code/datums/diseases/advance/symptoms/vomit.dm +++ b/code/datums/diseases/advance/symptoms/vomit.dm @@ -91,5 +91,5 @@ Bonus M.adjustBruteLoss(3) var/turf/pos = get_turf(M) - pos.add_vomit_floor(M) + pos.add_blood_floor(M) playsound(pos, 'sound/effects/splat.ogg', 50, 1) \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/weight.dm b/code/datums/diseases/advance/symptoms/weight.dm index f983eb32396..db05bae5deb 100644 --- a/code/datums/diseases/advance/symptoms/weight.dm +++ b/code/datums/diseases/advance/symptoms/weight.dm @@ -73,6 +73,7 @@ Bonus if(1, 2, 3, 4) M << "[pick("You feel hungry.", "You crave for food.")]" else + M << "Your stomach rumbles." M.overeatduration = max(M.overeatduration - 100, 0) M.nutrition = max(M.nutrition - 100, 0) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 399f0a67755..1e7e10c273d 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -499,7 +499,7 @@ its easier to just keep the beam vertical. // Only adds blood on the floor -- Skie /atom/proc/add_blood_floor(mob/living/carbon/M as mob) - if( istype(M, /mob/living/carbon/monkey) ) + if( istype(M, /mob/living/carbon/monkey) || istype(M, /mob/living/carbon/human)) if( istype(src, /turf/simulated) ) var/turf/simulated/source1 = src var/obj/effect/decal/cleanable/blood/this = new /obj/effect/decal/cleanable/blood(source1) @@ -522,11 +522,7 @@ its easier to just keep the beam vertical. else if( istype(M, /mob/living/silicon/robot )) if( istype(src, /turf/simulated) ) var/turf/simulated/source2 = src - var/obj/effect/decal/cleanable/oil/this = new /obj/effect/decal/cleanable/oil(source2) - for(var/datum/disease/D in M.viruses) - var/datum/disease/newDisease = new D.type - this.viruses += newDisease - newDisease.holder = this + new /obj/effect/decal/cleanable/oil(source2) /atom/proc/clean_prints() if(istype(fingerprints, /list)) diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index 6d41c8a84a2..3db2e1a1444 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -528,10 +528,10 @@ var/list/datum/dna/hivemind_bank = list() /mob/proc/changeling_hivedownload() set category = "Changeling" - set name = "Hive Absorb (40)" + set name = "Hive Absorb (20)" set desc = "Allows you to absorb DNA that is being channeled in the airwaves." - var/datum/changeling/changeling = changeling_power(40,1) + var/datum/changeling/changeling = changeling_power(20,1) if(!changeling) return var/list/names = list() @@ -549,7 +549,7 @@ var/list/datum/dna/hivemind_bank = list() if(!chosen_dna) return - changeling.chem_charges -= 40 + changeling.chem_charges -= 20 changeling.absorbed_dna += chosen_dna usr << "We absorb the DNA of [S] from the air." feedback_add_details("changeling_powers","HD") diff --git a/code/game/objects/effects/decals/Cleanable/aliens.dm b/code/game/objects/effects/decals/Cleanable/aliens.dm index 65c1cc700a8..65878310ad7 100644 --- a/code/game/objects/effects/decals/Cleanable/aliens.dm +++ b/code/game/objects/effects/decals/Cleanable/aliens.dm @@ -26,7 +26,7 @@ if (i > 0) var/obj/effect/decal/cleanable/xenoblood/b = new /obj/effect/decal/cleanable/xenoblood/xsplatter(src.loc) for(var/datum/disease/D in src.viruses) - b.viruses += D + b.viruses += new D.type(0, D, 1) if (step_to(src, get_step(src, direction), 0)) break diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 2ee5374ec58..f26b3147f07 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -69,6 +69,6 @@ if (i > 0) var/obj/effect/decal/cleanable/blood/b = new /obj/effect/decal/cleanable/blood/splatter(src.loc) for(var/datum/disease/D in src.viruses) - b.viruses += D + b.viruses += new D.type(0, D, 1) if (step_to(src, get_step(src, direction), 0)) break \ No newline at end of file diff --git a/code/game/objects/effects/gibs.dm b/code/game/objects/effects/gibs.dm index e53ccb0d486..9e3c65628ae 100644 --- a/code/game/objects/effects/gibs.dm +++ b/code/game/objects/effects/gibs.dm @@ -47,7 +47,7 @@ if(viruses.len > 0) for(var/datum/disease/D in viruses) if(prob(virusProb)) - var/datum/disease/viruus = new D.type + var/datum/disease/viruus = new D.type(0, D, 1) gib.viruses += viruus viruus.holder = gib viruus.spread_type = CONTACT_FEET diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 65269a4b5d4..9b208888f95 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -160,7 +160,7 @@ if (prob(10)) stuttering = max(10, stuttering) if (getBrainLoss() >= 60 && stat != 2) - if (prob(7)) + if (prob(3)) switch(pick(1,2,3)) if(1) say(pick("IM A PONY NEEEEEEIIIIIIIIIGH", "without oxigen blob don't evoluate?", "CAPTAINS A COMDOM", "[pick("", "that faggot traitor")] [pick("joerge", "george", "gorge", "gdoruge")] [pick("mellens", "melons", "mwrlins")] is grifing me HAL;P!!!", "can u give me [pick("telikesis","halk","eppilapse")]?", "THe saiyans screwed", "Bi is THE BEST OF BOTH WORLDS>", "I WANNA PET TEH monkeyS", "stop grifing me!!!!", "SOTP IT#")) @@ -209,12 +209,8 @@ emote("collapse") if ((HULK in mutations) && health >= 25) - if (prob(7)) - switch(pick(1,2)) - if(1) - say(pick("HGH!", "PROTEIN!", "OH YEAH!", "HULK SMASH!", "HULK NOT LIKE BOOKS!", "HNNNNNNNNNGGGGGGH!", )) - if(2) - emote("flexes") + if (prob(3)) + say(pick("HGH!", "PROTEIN!", "OH YEAH!", "HULK SMASH!", "HULK NOT LIKE BOOKS!", "HNNNNNNNNNGGGGGGH!", )) if (radiation) if (radiation > 100) radiation = 100 diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 085c21f29c0..7987a09966e 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -72,7 +72,7 @@ if ((HULK in mutations) && health >= 25) if(copytext(message, 1, 2) != "*") - message = uppertext(message) //because I don't know how to code properly in getting vars from other files -Bro + message = "[uppertext(message)]!!" //because I don't know how to code properly in getting vars from other files -Bro //Ninja mask obscures text and voice if set to do so. //Would make it more global but it's sort of ninja specific. diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index b9810e882af..d8083f39b16 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -334,12 +334,13 @@ datum else R.reaction_obj(A, R.volume+volume_modifier) return - add_reagent(var/reagent, var/amount, var/data=null) + add_reagent(var/reagent, var/amount, var/list/data=null) if(!isnum(amount)) return 1 update_total() if(total_volume + amount > maximum_volume) amount = (maximum_volume - total_volume) //Doesnt fit in. Make it disappear. Shouldnt happen. Will happen. for(var/A in reagent_list) + var/datum/reagent/R = A if (R.id == reagent) R.volume += amount @@ -349,30 +350,40 @@ datum // mix dem viruses if(R.id == "blood" && reagent == "blood") if(R.data && data) - if((R.data && R.data["viruses"]) || (data && data["viruses"])) - R.data["viruses"] |= data["viruses"] - var/datum/disease/advance/AD = Advance_Mix(R.data["viruses"]) + if(R.data["viruses"] && data["viruses"]) + var/list/mix1 = R.data["viruses"] + var/list/mix2 = data["viruses"] + + // Stop issues with the list changing during mixing. + var/list/to_mix = list() + + for(var/datum/disease/advance/AD in mix1) + to_mix += AD + for(var/datum/disease/advance/AD in mix2) + to_mix += AD + + var/datum/disease/advance/AD = Advance_Mix(to_mix) if(AD) - for(var/datum/disease/advance/D in R.data["viruses"]) - R.data["viruses"] -= D - - R.data["viruses"] |= new/datum/disease/advance(0, AD) - - - + var/list/preserve = list(AD) + for(var/D in R.data["viruses"]) + if(!istype(D, /datum/disease/advance)) + preserve += D + R.data["viruses"] = preserve handle_reactions() return 0 var/datum/reagent/D = chemical_reagents_list[reagent] if(D) + var/datum/reagent/R = new D.type() reagent_list += R R.holder = src R.volume = amount - R.data = data + SetViruses(R, data) // Includes setting data + //debug //world << "Adding data" //for(var/D in R.data) diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 26c1c88dca9..0d94542daac 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -12,7 +12,7 @@ datum var/description = "" var/datum/reagents/holder = null var/reagent_state = SOLID - var/data = null + var/list/data = null var/volume = 0 var/nutriment_factor = 0 //var/list/viruses = list() @@ -99,28 +99,18 @@ datum reaction_mob(var/mob/M, var/method=TOUCH, var/volume) var/datum/reagent/blood/self = src src = null - for(var/datum/disease/D in self.data["viruses"]) - //var/datum/disease/virus = new D.type(0, D, 1) - // We don't spread. - if(D.spread_type == SPECIAL || D.spread_type == NON_CONTAGIOUS) continue + if(self.data && self.data["viruses"]) + for(var/datum/disease/D in self.data["viruses"]) + //var/datum/disease/virus = new D.type(0, D, 1) + // We don't spread. + if(D.spread_type == SPECIAL || D.spread_type == NON_CONTAGIOUS) continue - if(method == TOUCH) - M.contract_disease(D) - else //injected - M.contract_disease(D, 1, 0) + if(method == TOUCH) + M.contract_disease(D) + else //injected + M.contract_disease(D, 1, 0) - /* - if(self.data["virus"]) - var/datum/disease/V = self.data["virus"] - if(M.resistances.Find(V.type)) return - if(method == TOUCH)//respect all protective clothing... - M.contract_disease(V) - else //injected - M.contract_disease(V, 1, 0) - return - */ - reaction_turf(var/turf/simulated/T, var/volume)//splash the blood all over the place if(!istype(T)) return diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 49da2c1ee7c..ee2c0ad62a0 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -475,9 +475,28 @@ datum mix_virus_2 - required_reagents = list("blood" = 5, "mutagen" = 5) + name = "Mix Virus 2" + id = "mixvirus2" + required_reagents = list("blood" = 1, "mutagen" = 5) level = 4 + rem_virus + + name = "Devolve Virus" + id = "remvirus" + required_reagents = list("blood" = 1, "synaptizine" = 5) + + on_reaction(var/datum/reagents/holder, var/created_volume) + + var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list + if(B && B.data) + var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"] + if(D) + D.Devolve() + holder.del_reagent(id) + + + /////////////////////////////////////////////////////////////////////////////////// // foam and foam precursor diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index a1f2edf4320..703585eaa17 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -91,7 +91,7 @@ B.data["viruses"] = list() - B.data["viruses"] += new D.type(D) + B.data["viruses"] += new D.type(0, D, 1) B.data["blood_DNA"] = copytext(T.dna.unique_enzymes,1,0) diff --git a/html/changelog.html b/html/changelog.html index e58d0b6a58e..c188f18d6ca 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -48,6 +48,17 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit tho. Thanks. --> +
+

13 November 2012

+

Giacom updated:

+ +
+

11 November 2012

Carn updated:

diff --git a/tgstation.dme b/tgstation.dme index d7cdfd4d81c..c5a7c2d3b5f 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6,509 +6,6 @@ // BEGIN_FILE_DIR #define FILE_DIR . -#define FILE_DIR ".svn" -#define FILE_DIR ".svn/pristine" -#define FILE_DIR ".svn/pristine/00" -#define FILE_DIR ".svn/pristine/01" -#define FILE_DIR ".svn/pristine/02" -#define FILE_DIR ".svn/pristine/03" -#define FILE_DIR ".svn/pristine/04" -#define FILE_DIR ".svn/pristine/05" -#define FILE_DIR ".svn/pristine/06" -#define FILE_DIR ".svn/pristine/07" -#define FILE_DIR ".svn/pristine/08" -#define FILE_DIR ".svn/pristine/09" -#define FILE_DIR ".svn/pristine/0a" -#define FILE_DIR ".svn/pristine/0b" -#define FILE_DIR ".svn/pristine/0c" -#define FILE_DIR ".svn/pristine/0d" -#define FILE_DIR ".svn/pristine/0e" -#define FILE_DIR ".svn/pristine/0f" -#define FILE_DIR ".svn/pristine/10" -#define FILE_DIR ".svn/pristine/11" -#define FILE_DIR ".svn/pristine/12" -#define FILE_DIR ".svn/pristine/13" -#define FILE_DIR ".svn/pristine/14" -#define FILE_DIR ".svn/pristine/15" -#define FILE_DIR ".svn/pristine/16" -#define FILE_DIR ".svn/pristine/17" -#define FILE_DIR ".svn/pristine/18" -#define FILE_DIR ".svn/pristine/19" -#define FILE_DIR ".svn/pristine/1a" -#define FILE_DIR ".svn/pristine/1b" -#define FILE_DIR ".svn/pristine/1c" -#define FILE_DIR ".svn/pristine/1d" -#define FILE_DIR ".svn/pristine/1e" -#define FILE_DIR ".svn/pristine/1f" -#define FILE_DIR ".svn/pristine/20" -#define FILE_DIR ".svn/pristine/21" -#define FILE_DIR ".svn/pristine/22" -#define FILE_DIR ".svn/pristine/23" -#define FILE_DIR ".svn/pristine/24" -#define FILE_DIR ".svn/pristine/25" -#define FILE_DIR ".svn/pristine/26" -#define FILE_DIR ".svn/pristine/27" -#define FILE_DIR ".svn/pristine/28" -#define FILE_DIR ".svn/pristine/29" -#define FILE_DIR ".svn/pristine/2a" -#define FILE_DIR ".svn/pristine/2b" -#define FILE_DIR ".svn/pristine/2c" -#define FILE_DIR ".svn/pristine/2d" -#define FILE_DIR ".svn/pristine/2e" -#define FILE_DIR ".svn/pristine/2f" -#define FILE_DIR ".svn/pristine/30" -#define FILE_DIR ".svn/pristine/31" -#define FILE_DIR ".svn/pristine/32" -#define FILE_DIR ".svn/pristine/33" -#define FILE_DIR ".svn/pristine/34" -#define FILE_DIR ".svn/pristine/35" -#define FILE_DIR ".svn/pristine/36" -#define FILE_DIR ".svn/pristine/37" -#define FILE_DIR ".svn/pristine/38" -#define FILE_DIR ".svn/pristine/39" -#define FILE_DIR ".svn/pristine/3a" -#define FILE_DIR ".svn/pristine/3b" -#define FILE_DIR ".svn/pristine/3c" -#define FILE_DIR ".svn/pristine/3d" -#define FILE_DIR ".svn/pristine/3e" -#define FILE_DIR ".svn/pristine/3f" -#define FILE_DIR ".svn/pristine/40" -#define FILE_DIR ".svn/pristine/41" -#define FILE_DIR ".svn/pristine/42" -#define FILE_DIR ".svn/pristine/43" -#define FILE_DIR ".svn/pristine/44" -#define FILE_DIR ".svn/pristine/45" -#define FILE_DIR ".svn/pristine/46" -#define FILE_DIR ".svn/pristine/47" -#define FILE_DIR ".svn/pristine/48" -#define FILE_DIR ".svn/pristine/49" -#define FILE_DIR ".svn/pristine/4a" -#define FILE_DIR ".svn/pristine/4b" -#define FILE_DIR ".svn/pristine/4c" -#define FILE_DIR ".svn/pristine/4d" -#define FILE_DIR ".svn/pristine/4e" -#define FILE_DIR ".svn/pristine/4f" -#define FILE_DIR ".svn/pristine/50" -#define FILE_DIR ".svn/pristine/51" -#define FILE_DIR ".svn/pristine/52" -#define FILE_DIR ".svn/pristine/53" -#define FILE_DIR ".svn/pristine/54" -#define FILE_DIR ".svn/pristine/55" -#define FILE_DIR ".svn/pristine/56" -#define FILE_DIR ".svn/pristine/57" -#define FILE_DIR ".svn/pristine/58" -#define FILE_DIR ".svn/pristine/59" -#define FILE_DIR ".svn/pristine/5a" -#define FILE_DIR ".svn/pristine/5b" -#define FILE_DIR ".svn/pristine/5c" -#define FILE_DIR ".svn/pristine/5d" -#define FILE_DIR ".svn/pristine/5e" -#define FILE_DIR ".svn/pristine/5f" -#define FILE_DIR ".svn/pristine/60" -#define FILE_DIR ".svn/pristine/61" -#define FILE_DIR ".svn/pristine/62" -#define FILE_DIR ".svn/pristine/63" -#define FILE_DIR ".svn/pristine/64" -#define FILE_DIR ".svn/pristine/65" -#define FILE_DIR ".svn/pristine/66" -#define FILE_DIR ".svn/pristine/67" -#define FILE_DIR ".svn/pristine/68" -#define FILE_DIR ".svn/pristine/69" -#define FILE_DIR ".svn/pristine/6a" -#define FILE_DIR ".svn/pristine/6b" -#define FILE_DIR ".svn/pristine/6c" -#define FILE_DIR ".svn/pristine/6d" -#define FILE_DIR ".svn/pristine/6e" -#define FILE_DIR ".svn/pristine/6f" -#define FILE_DIR ".svn/pristine/70" -#define FILE_DIR ".svn/pristine/71" -#define FILE_DIR ".svn/pristine/72" -#define FILE_DIR ".svn/pristine/73" -#define FILE_DIR ".svn/pristine/74" -#define FILE_DIR ".svn/pristine/75" -#define FILE_DIR ".svn/pristine/76" -#define FILE_DIR ".svn/pristine/77" -#define FILE_DIR ".svn/pristine/78" -#define FILE_DIR ".svn/pristine/79" -#define FILE_DIR ".svn/pristine/7a" -#define FILE_DIR ".svn/pristine/7b" -#define FILE_DIR ".svn/pristine/7c" -#define FILE_DIR ".svn/pristine/7d" -#define FILE_DIR ".svn/pristine/7e" -#define FILE_DIR ".svn/pristine/7f" -#define FILE_DIR ".svn/pristine/80" -#define FILE_DIR ".svn/pristine/81" -#define FILE_DIR ".svn/pristine/82" -#define FILE_DIR ".svn/pristine/83" -#define FILE_DIR ".svn/pristine/84" -#define FILE_DIR ".svn/pristine/85" -#define FILE_DIR ".svn/pristine/86" -#define FILE_DIR ".svn/pristine/87" -#define FILE_DIR ".svn/pristine/88" -#define FILE_DIR ".svn/pristine/89" -#define FILE_DIR ".svn/pristine/8a" -#define FILE_DIR ".svn/pristine/8b" -#define FILE_DIR ".svn/pristine/8c" -#define FILE_DIR ".svn/pristine/8d" -#define FILE_DIR ".svn/pristine/8e" -#define FILE_DIR ".svn/pristine/8f" -#define FILE_DIR ".svn/pristine/90" -#define FILE_DIR ".svn/pristine/91" -#define FILE_DIR ".svn/pristine/92" -#define FILE_DIR ".svn/pristine/93" -#define FILE_DIR ".svn/pristine/94" -#define FILE_DIR ".svn/pristine/95" -#define FILE_DIR ".svn/pristine/96" -#define FILE_DIR ".svn/pristine/97" -#define FILE_DIR ".svn/pristine/98" -#define FILE_DIR ".svn/pristine/99" -#define FILE_DIR ".svn/pristine/9a" -#define FILE_DIR ".svn/pristine/9b" -#define FILE_DIR ".svn/pristine/9c" -#define FILE_DIR ".svn/pristine/9d" -#define FILE_DIR ".svn/pristine/9e" -#define FILE_DIR ".svn/pristine/9f" -#define FILE_DIR ".svn/pristine/a0" -#define FILE_DIR ".svn/pristine/a1" -#define FILE_DIR ".svn/pristine/a2" -#define FILE_DIR ".svn/pristine/a3" -#define FILE_DIR ".svn/pristine/a4" -#define FILE_DIR ".svn/pristine/a5" -#define FILE_DIR ".svn/pristine/a6" -#define FILE_DIR ".svn/pristine/a7" -#define FILE_DIR ".svn/pristine/a8" -#define FILE_DIR ".svn/pristine/a9" -#define FILE_DIR ".svn/pristine/aa" -#define FILE_DIR ".svn/pristine/ab" -#define FILE_DIR ".svn/pristine/ac" -#define FILE_DIR ".svn/pristine/ad" -#define FILE_DIR ".svn/pristine/ae" -#define FILE_DIR ".svn/pristine/af" -#define FILE_DIR ".svn/pristine/b0" -#define FILE_DIR ".svn/pristine/b1" -#define FILE_DIR ".svn/pristine/b2" -#define FILE_DIR ".svn/pristine/b3" -#define FILE_DIR ".svn/pristine/b4" -#define FILE_DIR ".svn/pristine/b5" -#define FILE_DIR ".svn/pristine/b6" -#define FILE_DIR ".svn/pristine/b7" -#define FILE_DIR ".svn/pristine/b8" -#define FILE_DIR ".svn/pristine/b9" -#define FILE_DIR ".svn/pristine/ba" -#define FILE_DIR ".svn/pristine/bb" -#define FILE_DIR ".svn/pristine/bc" -#define FILE_DIR ".svn/pristine/bd" -#define FILE_DIR ".svn/pristine/be" -#define FILE_DIR ".svn/pristine/bf" -#define FILE_DIR ".svn/pristine/c0" -#define FILE_DIR ".svn/pristine/c1" -#define FILE_DIR ".svn/pristine/c2" -#define FILE_DIR ".svn/pristine/c3" -#define FILE_DIR ".svn/pristine/c4" -#define FILE_DIR ".svn/pristine/c5" -#define FILE_DIR ".svn/pristine/c6" -#define FILE_DIR ".svn/pristine/c7" -#define FILE_DIR ".svn/pristine/c8" -#define FILE_DIR ".svn/pristine/c9" -#define FILE_DIR ".svn/pristine/ca" -#define FILE_DIR ".svn/pristine/cb" -#define FILE_DIR ".svn/pristine/cc" -#define FILE_DIR ".svn/pristine/cd" -#define FILE_DIR ".svn/pristine/ce" -#define FILE_DIR ".svn/pristine/cf" -#define FILE_DIR ".svn/pristine/d0" -#define FILE_DIR ".svn/pristine/d1" -#define FILE_DIR ".svn/pristine/d2" -#define FILE_DIR ".svn/pristine/d3" -#define FILE_DIR ".svn/pristine/d4" -#define FILE_DIR ".svn/pristine/d5" -#define FILE_DIR ".svn/pristine/d6" -#define FILE_DIR ".svn/pristine/d7" -#define FILE_DIR ".svn/pristine/d8" -#define FILE_DIR ".svn/pristine/d9" -#define FILE_DIR ".svn/pristine/da" -#define FILE_DIR ".svn/pristine/db" -#define FILE_DIR ".svn/pristine/dc" -#define FILE_DIR ".svn/pristine/dd" -#define FILE_DIR ".svn/pristine/de" -#define FILE_DIR ".svn/pristine/df" -#define FILE_DIR ".svn/pristine/e0" -#define FILE_DIR ".svn/pristine/e1" -#define FILE_DIR ".svn/pristine/e2" -#define FILE_DIR ".svn/pristine/e3" -#define FILE_DIR ".svn/pristine/e4" -#define FILE_DIR ".svn/pristine/e5" -#define FILE_DIR ".svn/pristine/e6" -#define FILE_DIR ".svn/pristine/e7" -#define FILE_DIR ".svn/pristine/e8" -#define FILE_DIR ".svn/pristine/e9" -#define FILE_DIR ".svn/pristine/ea" -#define FILE_DIR ".svn/pristine/eb" -#define FILE_DIR ".svn/pristine/ec" -#define FILE_DIR ".svn/pristine/ed" -#define FILE_DIR ".svn/pristine/ee" -#define FILE_DIR ".svn/pristine/ef" -#define FILE_DIR ".svn/pristine/f0" -#define FILE_DIR ".svn/pristine/f1" -#define FILE_DIR ".svn/pristine/f2" -#define FILE_DIR ".svn/pristine/f3" -#define FILE_DIR ".svn/pristine/f4" -#define FILE_DIR ".svn/pristine/f5" -#define FILE_DIR ".svn/pristine/f6" -#define FILE_DIR ".svn/pristine/f7" -#define FILE_DIR ".svn/pristine/f8" -#define FILE_DIR ".svn/pristine/f9" -#define FILE_DIR ".svn/pristine/fa" -#define FILE_DIR ".svn/pristine/fb" -#define FILE_DIR ".svn/pristine/fc" -#define FILE_DIR ".svn/pristine/fd" -#define FILE_DIR ".svn/pristine/fe" -#define FILE_DIR ".svn/pristine/ff" -#define FILE_DIR "bot" -#define FILE_DIR "bot/Marakov" -#define FILE_DIR "code" -#define FILE_DIR "code/__HELPERS" -#define FILE_DIR "code/ATMOSPHERICS" -#define FILE_DIR "code/ATMOSPHERICS/components" -#define FILE_DIR "code/ATMOSPHERICS/components/binary_devices" -#define FILE_DIR "code/ATMOSPHERICS/components/trinary_devices" -#define FILE_DIR "code/ATMOSPHERICS/components/unary" -#define FILE_DIR "code/controllers" -#define FILE_DIR "code/datums" -#define FILE_DIR "code/datums/diseases" -#define FILE_DIR "code/datums/diseases/advance" -#define FILE_DIR "code/datums/diseases/advance/symptoms" -#define FILE_DIR "code/datums/helper_datums" -#define FILE_DIR "code/datums/organs" -#define FILE_DIR "code/datums/spells" -#define FILE_DIR "code/defines" -#define FILE_DIR "code/defines/obj" -#define FILE_DIR "code/defines/procs" -#define FILE_DIR "code/FEA" -#define FILE_DIR "code/game" -#define FILE_DIR "code/game/area" -#define FILE_DIR "code/game/gamemodes" -#define FILE_DIR "code/game/gamemodes/blob" -#define FILE_DIR "code/game/gamemodes/blob/blobs" -#define FILE_DIR "code/game/gamemodes/changeling" -#define FILE_DIR "code/game/gamemodes/cult" -#define FILE_DIR "code/game/gamemodes/events" -#define FILE_DIR "code/game/gamemodes/events/holidays" -#define FILE_DIR "code/game/gamemodes/extended" -#define FILE_DIR "code/game/gamemodes/malfunction" -#define FILE_DIR "code/game/gamemodes/meteor" -#define FILE_DIR "code/game/gamemodes/nuclear" -#define FILE_DIR "code/game/gamemodes/revolution" -#define FILE_DIR "code/game/gamemodes/sandbox" -#define FILE_DIR "code/game/gamemodes/traitor" -#define FILE_DIR "code/game/gamemodes/wizard" -#define FILE_DIR "code/game/jobs" -#define FILE_DIR "code/game/jobs/job" -#define FILE_DIR "code/game/machinery" -#define FILE_DIR "code/game/machinery/atmoalter" -#define FILE_DIR "code/game/machinery/bots" -#define FILE_DIR "code/game/machinery/camera" -#define FILE_DIR "code/game/machinery/computer" -#define FILE_DIR "code/game/machinery/doors" -#define FILE_DIR "code/game/machinery/embedded_controller" -#define FILE_DIR "code/game/machinery/kitchen" -#define FILE_DIR "code/game/machinery/pipe" -#define FILE_DIR "code/game/machinery/telecomms" -#define FILE_DIR "code/game/mecha" -#define FILE_DIR "code/game/mecha/combat" -#define FILE_DIR "code/game/mecha/equipment" -#define FILE_DIR "code/game/mecha/equipment/tools" -#define FILE_DIR "code/game/mecha/equipment/weapons" -#define FILE_DIR "code/game/mecha/medical" -#define FILE_DIR "code/game/mecha/working" -#define FILE_DIR "code/game/objects" -#define FILE_DIR "code/game/objects/effects" -#define FILE_DIR "code/game/objects/effects/decals" -#define FILE_DIR "code/game/objects/effects/decals/Cleanable" -#define FILE_DIR "code/game/objects/effects/spawners" -#define FILE_DIR "code/game/objects/items" -#define FILE_DIR "code/game/objects/items/devices" -#define FILE_DIR "code/game/objects/items/devices/PDA" -#define FILE_DIR "code/game/objects/items/devices/radio" -#define FILE_DIR "code/game/objects/items/robot" -#define FILE_DIR "code/game/objects/items/stacks" -#define FILE_DIR "code/game/objects/items/stacks/sheets" -#define FILE_DIR "code/game/objects/items/stacks/tiles" -#define FILE_DIR "code/game/objects/items/weapons" -#define FILE_DIR "code/game/objects/items/weapons/grenades" -#define FILE_DIR "code/game/objects/items/weapons/implants" -#define FILE_DIR "code/game/objects/items/weapons/secstorage" -#define FILE_DIR "code/game/objects/items/weapons/storage" -#define FILE_DIR "code/game/objects/items/weapons/tanks" -#define FILE_DIR "code/game/objects/structures" -#define FILE_DIR "code/game/objects/structures/crates_lockers" -#define FILE_DIR "code/game/objects/structures/crates_lockers/closets" -#define FILE_DIR "code/game/objects/structures/crates_lockers/closets/secure" -#define FILE_DIR "code/game/objects/structures/stool_bed_chair_nest" -#define FILE_DIR "code/game/turfs" -#define FILE_DIR "code/game/turfs/simulated" -#define FILE_DIR "code/game/turfs/space" -#define FILE_DIR "code/game/turfs/unsimulated" -#define FILE_DIR "code/game/vehicles" -#define FILE_DIR "code/game/vehicles/airtight" -#define FILE_DIR "code/game/verbs" -#define FILE_DIR "code/js" -#define FILE_DIR "code/modules" -#define FILE_DIR "code/modules/admin" -#define FILE_DIR "code/modules/admin/DB ban" -#define FILE_DIR "code/modules/admin/permissionverbs" -#define FILE_DIR "code/modules/admin/verbs" -#define FILE_DIR "code/modules/assembly" -#define FILE_DIR "code/modules/awaymissions" -#define FILE_DIR "code/modules/awaymissions/maploader" -#define FILE_DIR "code/modules/client" -#define FILE_DIR "code/modules/clothing" -#define FILE_DIR "code/modules/clothing/glasses" -#define FILE_DIR "code/modules/clothing/gloves" -#define FILE_DIR "code/modules/clothing/head" -#define FILE_DIR "code/modules/clothing/masks" -#define FILE_DIR "code/modules/clothing/shoes" -#define FILE_DIR "code/modules/clothing/spacesuits" -#define FILE_DIR "code/modules/clothing/suits" -#define FILE_DIR "code/modules/clothing/under" -#define FILE_DIR "code/modules/clothing/under/jobs" -#define FILE_DIR "code/modules/critters" -#define FILE_DIR "code/modules/critters/hivebots" -#define FILE_DIR "code/modules/detectivework" -#define FILE_DIR "code/modules/flufftext" -#define FILE_DIR "code/modules/food" -#define FILE_DIR "code/modules/library" -#define FILE_DIR "code/modules/liquid" -#define FILE_DIR "code/modules/mining" -#define FILE_DIR "code/modules/mob" -#define FILE_DIR "code/modules/mob/dead" -#define FILE_DIR "code/modules/mob/dead/observer" -#define FILE_DIR "code/modules/mob/living" -#define FILE_DIR "code/modules/mob/living/blob" -#define FILE_DIR "code/modules/mob/living/carbon" -#define FILE_DIR "code/modules/mob/living/carbon/alien" -#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid" -#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid/caste" -#define FILE_DIR "code/modules/mob/living/carbon/alien/larva" -#define FILE_DIR "code/modules/mob/living/carbon/alien/special" -#define FILE_DIR "code/modules/mob/living/carbon/brain" -#define FILE_DIR "code/modules/mob/living/carbon/human" -#define FILE_DIR "code/modules/mob/living/carbon/metroid" -#define FILE_DIR "code/modules/mob/living/carbon/monkey" -#define FILE_DIR "code/modules/mob/living/silicon" -#define FILE_DIR "code/modules/mob/living/silicon/ai" -#define FILE_DIR "code/modules/mob/living/silicon/ai/freelook" -#define FILE_DIR "code/modules/mob/living/silicon/decoy" -#define FILE_DIR "code/modules/mob/living/silicon/pai" -#define FILE_DIR "code/modules/mob/living/silicon/robot" -#define FILE_DIR "code/modules/mob/living/simple_animal" -#define FILE_DIR "code/modules/mob/living/simple_animal/friendly" -#define FILE_DIR "code/modules/mob/living/simple_animal/hostile" -#define FILE_DIR "code/modules/mob/new_player" -#define FILE_DIR "code/modules/paperwork" -#define FILE_DIR "code/modules/power" -#define FILE_DIR "code/modules/power/antimatter" -#define FILE_DIR "code/modules/power/singularity" -#define FILE_DIR "code/modules/power/singularity/particle_accelerator" -#define FILE_DIR "code/modules/projectiles" -#define FILE_DIR "code/modules/projectiles/ammunition" -#define FILE_DIR "code/modules/projectiles/guns" -#define FILE_DIR "code/modules/projectiles/guns/energy" -#define FILE_DIR "code/modules/projectiles/guns/projectile" -#define FILE_DIR "code/modules/projectiles/projectile" -#define FILE_DIR "code/modules/reagents" -#define FILE_DIR "code/modules/reagents/reagent_containers" -#define FILE_DIR "code/modules/reagents/reagent_containers/food" -#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks" -#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks/bottle" -#define FILE_DIR "code/modules/reagents/reagent_containers/food/snacks" -#define FILE_DIR "code/modules/reagents/reagent_containers/glass" -#define FILE_DIR "code/modules/reagents/reagent_containers/glass/bottle" -#define FILE_DIR "code/modules/recycling" -#define FILE_DIR "code/modules/research" -#define FILE_DIR "code/modules/scripting" -#define FILE_DIR "code/modules/scripting/AST" -#define FILE_DIR "code/modules/scripting/AST/Operators" -#define FILE_DIR "code/modules/scripting/Implementations" -#define FILE_DIR "code/modules/scripting/Interpreter" -#define FILE_DIR "code/modules/scripting/Parser" -#define FILE_DIR "code/modules/scripting/Scanner" -#define FILE_DIR "code/modules/security levels" -#define FILE_DIR "code/unused" -#define FILE_DIR "code/unused/beast" -#define FILE_DIR "code/unused/computer2" -#define FILE_DIR "code/unused/disease2" -#define FILE_DIR "code/unused/gamemodes" -#define FILE_DIR "code/unused/hivebot" -#define FILE_DIR "code/unused/mining" -#define FILE_DIR "code/unused/optics" -#define FILE_DIR "code/unused/pda2" -#define FILE_DIR "code/unused/powerarmor" -#define FILE_DIR "code/unused/spacecraft" -#define FILE_DIR "code/WorkInProgress" -#define FILE_DIR "code/WorkInProgress/carn" -#define FILE_DIR "code/WorkInProgress/mapload" -#define FILE_DIR "code/WorkInProgress/organs" -#define FILE_DIR "code/WorkInProgress/virus2" -#define FILE_DIR "config" -#define FILE_DIR "config/names" -#define FILE_DIR "data" -#define FILE_DIR "data/logs" -#define FILE_DIR "data/logs/2012" -#define FILE_DIR "data/logs/2012/10-October" -#define FILE_DIR "data/logs/2012/11-November" -#define FILE_DIR "data/player_saves" -#define FILE_DIR "data/player_saves/g" -#define FILE_DIR "data/player_saves/g/giacomand" -#define FILE_DIR "html" -#define FILE_DIR "icons" -#define FILE_DIR "icons/effects" -#define FILE_DIR "icons/mecha" -#define FILE_DIR "icons/misc" -#define FILE_DIR "icons/mob" -#define FILE_DIR "icons/obj" -#define FILE_DIR "icons/obj/assemblies" -#define FILE_DIR "icons/obj/atmospherics" -#define FILE_DIR "icons/obj/clothing" -#define FILE_DIR "icons/obj/doors" -#define FILE_DIR "icons/obj/machines" -#define FILE_DIR "icons/obj/pipes" -#define FILE_DIR "icons/pda_icons" -#define FILE_DIR "icons/PSD files" -#define FILE_DIR "icons/spideros_icons" -#define FILE_DIR "icons/Testing" -#define FILE_DIR "icons/turf" -#define FILE_DIR "icons/vehicles" -#define FILE_DIR "icons/vending_icons" -#define FILE_DIR "interface" -#define FILE_DIR "maps" -#define FILE_DIR "maps/RandomZLevels" -#define FILE_DIR "music" -#define FILE_DIR "sound" -#define FILE_DIR "sound/AI" -#define FILE_DIR "sound/ambience" -#define FILE_DIR "sound/effects" -#define FILE_DIR "sound/hallucinations" -#define FILE_DIR "sound/items" -#define FILE_DIR "sound/machines" -#define FILE_DIR "sound/mecha" -#define FILE_DIR "sound/misc" -#define FILE_DIR "sound/piano" -#define FILE_DIR "sound/violin" -#define FILE_DIR "sound/voice" -#define FILE_DIR "sound/weapons" -#define FILE_DIR "SQL" -#define FILE_DIR "tools" -#define FILE_DIR "tools/Redirector" -#define FILE_DIR "tools/Runtime Condenser" -#define FILE_DIR "tools/UnstandardnessTestForDM" -#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM" -#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin" -#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/bin/Debug" -#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj" -#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86" -#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/obj/x86/Debug" -#define FILE_DIR "tools/UnstandardnessTestForDM/UnstandardnessTestForDM/Properties" // END_FILE_DIR // BEGIN_PREFERENCES @@ -609,6 +106,7 @@ #include "code\datums\diseases\advance\symptoms\hallucigen.dm" #include "code\datums\diseases\advance\symptoms\headache.dm" #include "code\datums\diseases\advance\symptoms\itching.dm" +#include "code\datums\diseases\advance\symptoms\shivering.dm" #include "code\datums\diseases\advance\symptoms\sneeze.dm" #include "code\datums\diseases\advance\symptoms\symptoms.dm" #include "code\datums\diseases\advance\symptoms\vomit.dm"