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
This commit is contained in:
giacomand@gmail.com
2012-11-13 00:28:07 +00:00
parent 9999a1d65e
commit 7955d348d8
23 changed files with 170 additions and 579 deletions

View File

@@ -304,9 +304,4 @@ proc/listclearnulls(list/list)
if(bitfield & bit) if(bitfield & bit)
r += bit r += bit
return r return r
/proc/safe_pick_list(var/list/L)
if(L && L.len)
return pick(L)
return null

View File

@@ -30,6 +30,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
var/cure_list = null // allows for multiple possible cure combinations var/cure_list = null // allows for multiple possible cure combinations
var/cure_chance = 8//chance for the cure to do its job var/cure_chance = 8//chance for the cure to do its job
var/spread = null //spread type description var/spread = null //spread type description
var/initial_spread = null
var/spread_type = AIRBORNE var/spread_type = AIRBORNE
var/contagious_period = 0//the disease stage when it can be spread var/contagious_period = 0//the disease stage when it can be spread
var/list/affected_species = list() var/list/affected_species = list()
@@ -58,7 +59,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
//world << "[affected_mob] is carrier" //world << "[affected_mob] is carrier"
return return
spread = (cure_present?"Remissive":initial(spread)) spread = (cure_present?"Remissive":initial_spread)
if(stage > max_stages) if(stage > max_stages)
stage = max_stages stage = max_stages
@@ -94,7 +95,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
return result 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]" //world << "Disease [src] proc spread was called from holder [source]"
// If we're overriding how we spread, say so here // 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() 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. if(process) // Viruses in list are considered active.
active_diseases += src active_diseases += src
initial_spread = spread
/datum/disease/proc/IsSame(var/datum/disease/D) /datum/disease/proc/IsSame(var/datum/disease/D)
if(istype(src, D.type)) if(istype(src, D.type))
return 1 return 1
return 0 return 0
/datum/disease/proc/Copy()
return new type(0, src)
/* /*
/datum/disease/Del() /datum/disease/Del()
active_diseases.Remove(src) active_diseases.Remove(src)

View File

@@ -11,6 +11,7 @@
var/list/archive_diseases = list() var/list/archive_diseases = list()
/* /*
PROPERTIES PROPERTIES
@@ -54,7 +55,8 @@ var/list/archive_diseases = list()
if(!D || !D.symptoms || !D.symptoms.len) if(!D || !D.symptoms || !D.symptoms.len)
symptoms = GenerateSymptoms() symptoms = GenerateSymptoms()
else else
symptoms = D.symptoms for(var/datum/symptom/S in D.symptoms)
symptoms += new S.type
name = D.name name = D.name
Refresh(!copy) Refresh(!copy)
@@ -93,6 +95,9 @@ var/list/archive_diseases = list()
del(src) //delete the datum to stop it processing del(src) //delete the datum to stop it processing
return 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) ) 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. // 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))) 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) stage_prob = max(properties["stage_rate"], 1)
SetSeverity(properties["severity"]) SetSeverity(properties["severity"])
GenerateCure(properties) GenerateCure(properties)
@@ -250,12 +255,18 @@ var/list/archive_diseases = list()
cure_id = "ethylredoxrazine" cure_id = "ethylredoxrazine"
if(6) if(6)
cure_id = "silver" cure_id = "synaptizine"
if(7) if(7)
cure_id = "gold" cure_id = "silver"
if(8) if(8)
cure_id = "gold"
if(9)
cure_id = "mindbreaker"
else
cure_id = "plasma" cure_id = "plasma"
// Get the cure name from the cure_id // 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. // Randomly generate a symptom, has a chance to lose or gain a symptom.
/datum/disease/advance/proc/Evolve(var/level = 2) /datum/disease/advance/proc/Evolve(var/level = 2)
var/s = safe_pick_list(GenerateSymptoms(level, 1)) var/s = safepick(GenerateSymptoms(level, 1))
if(s) if(s)
AddSymptom(s) AddSymptom(s)
Refresh() Refresh()
return 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. // Name the disease.
/datum/disease/advance/proc/AssignName(var/name = "Unknown") /datum/disease/advance/proc/AssignName(var/name = "Unknown")
src.name = name src.name = name
@@ -293,7 +313,7 @@ var/list/archive_diseases = list()
if(HasSymptom(S)) if(HasSymptom(S))
return return
if(symptoms.len < 4 + rand(-1, 1)) if(symptoms.len < 3 + rand(-1, 1))
symptoms += S symptoms += S
else else
RemoveSymptom(pick(symptoms)) RemoveSymptom(pick(symptoms))
@@ -314,9 +334,13 @@ var/list/archive_diseases = list()
// Mix a list of advance diseases and return the mixed result. // Mix a list of advance diseases and return the mixed result.
/proc/Advance_Mix(var/list/D_list) /proc/Advance_Mix(var/list/D_list)
//world << "Mixing!!!!"
var/list/diseases = list() 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) if(!diseases.len)
return null return null
if(diseases.len <= 1) if(diseases.len <= 1)
@@ -330,15 +354,26 @@ var/list/archive_diseases = list()
var/datum/disease/advance/D1 = pick(diseases) var/datum/disease/advance/D1 = pick(diseases)
diseases -= D1 diseases -= D1
D_list -= D1
var/datum/disease/advance/D2 = pick(diseases) var/datum/disease/advance/D2 = pick(diseases)
D2.Mix(D1) D2.Mix(D1)
// Should be only 1 entry left, but if not let's only return a single entry // 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) var/datum/disease/advance/to_return = pick(diseases)
to_return.Refresh() to_return.Refresh()
return to_return 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 #undef RANDOM_STARTING_LEVEL

View File

@@ -30,7 +30,7 @@ BONUS
var/mob/living/M = A.affected_mob var/mob/living/M = A.affected_mob
switch(A.stage) switch(A.stage)
if(1, 2, 3) if(1, 2, 3)
M << "<span notice='notice'>[pick("You swallow excess mucus.", "You lightly cough .")]</span>" M << "<span notice='notice'>[pick("You swallow excess mucus.", "You lightly cough.")]</span>"
else else
M.emote("cough") M.emote("cough")
M.drop_item() M.drop_item()

View File

@@ -29,6 +29,6 @@ Bonus
if(prob(SYMPTOM_ACTIVATION_PROB)) if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/carbon/M = A.affected_mob var/mob/living/carbon/M = A.affected_mob
M << "<span class='notice'>[pick("You feel hot.", "You feel like you're burning.")]</span>" M << "<span class='notice'>[pick("You feel hot.", "You feel like you're burning.")]</span>"
M.bodytemperature += 30 * A.stage M.bodytemperature += 20 * A.stage
return return

View File

@@ -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 << "<span class='notice'>[pick("You feel cold.", "You start shaking from the cold.")]</span>"
M.bodytemperature -= 20 * A.stage
return

View File

@@ -31,7 +31,7 @@ Bonus
var/mob/living/M = A.affected_mob var/mob/living/M = A.affected_mob
switch(A.stage) switch(A.stage)
if(1, 2, 3) if(1, 2, 3)
M.visible_message("<B>[M]</B> sniffs.") M.emote("sniff")
else else
M.emote("sneeze") M.emote("sneeze")
A.spread(A.holder, 5, AIRBORNE) A.spread(A.holder, 5, AIRBORNE)

View File

@@ -3,7 +3,7 @@
var/list/list_symptoms = typesof(/datum/symptom) - /datum/symptom var/list/list_symptoms = typesof(/datum/symptom) - /datum/symptom
var/list/dictionary_symptoms = list() var/list/dictionary_symptoms = list()
var/global/const/SYMPTOM_ACTIVATION_PROB = 1 var/global/const/SYMPTOM_ACTIVATION_PROB = 3
/datum/symptom /datum/symptom
// Buffs/Debuffs the symptom has to the overall engineered disease. // Buffs/Debuffs the symptom has to the overall engineered disease.

View File

@@ -91,5 +91,5 @@ Bonus
M.adjustBruteLoss(3) M.adjustBruteLoss(3)
var/turf/pos = get_turf(M) var/turf/pos = get_turf(M)
pos.add_vomit_floor(M) pos.add_blood_floor(M)
playsound(pos, 'sound/effects/splat.ogg', 50, 1) playsound(pos, 'sound/effects/splat.ogg', 50, 1)

View File

@@ -73,6 +73,7 @@ Bonus
if(1, 2, 3, 4) if(1, 2, 3, 4)
M << "<span class='notice'>[pick("You feel hungry.", "You crave for food.")]</span>" M << "<span class='notice'>[pick("You feel hungry.", "You crave for food.")]</span>"
else else
M << "<span class='notice'>Your stomach rumbles.</span>"
M.overeatduration = max(M.overeatduration - 100, 0) M.overeatduration = max(M.overeatduration - 100, 0)
M.nutrition = max(M.nutrition - 100, 0) M.nutrition = max(M.nutrition - 100, 0)

View File

@@ -499,7 +499,7 @@ its easier to just keep the beam vertical.
// Only adds blood on the floor -- Skie // Only adds blood on the floor -- Skie
/atom/proc/add_blood_floor(mob/living/carbon/M as mob) /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) ) if( istype(src, /turf/simulated) )
var/turf/simulated/source1 = src var/turf/simulated/source1 = src
var/obj/effect/decal/cleanable/blood/this = new /obj/effect/decal/cleanable/blood(source1) 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 )) else if( istype(M, /mob/living/silicon/robot ))
if( istype(src, /turf/simulated) ) if( istype(src, /turf/simulated) )
var/turf/simulated/source2 = src var/turf/simulated/source2 = src
var/obj/effect/decal/cleanable/oil/this = new /obj/effect/decal/cleanable/oil(source2) 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
/atom/proc/clean_prints() /atom/proc/clean_prints()
if(istype(fingerprints, /list)) if(istype(fingerprints, /list))

View File

@@ -528,10 +528,10 @@ var/list/datum/dna/hivemind_bank = list()
/mob/proc/changeling_hivedownload() /mob/proc/changeling_hivedownload()
set category = "Changeling" 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." 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 if(!changeling) return
var/list/names = list() var/list/names = list()
@@ -549,7 +549,7 @@ var/list/datum/dna/hivemind_bank = list()
if(!chosen_dna) if(!chosen_dna)
return return
changeling.chem_charges -= 40 changeling.chem_charges -= 20
changeling.absorbed_dna += chosen_dna changeling.absorbed_dna += chosen_dna
usr << "<span class='notice'>We absorb the DNA of [S] from the air.</span>" usr << "<span class='notice'>We absorb the DNA of [S] from the air.</span>"
feedback_add_details("changeling_powers","HD") feedback_add_details("changeling_powers","HD")

View File

@@ -26,7 +26,7 @@
if (i > 0) if (i > 0)
var/obj/effect/decal/cleanable/xenoblood/b = new /obj/effect/decal/cleanable/xenoblood/xsplatter(src.loc) var/obj/effect/decal/cleanable/xenoblood/b = new /obj/effect/decal/cleanable/xenoblood/xsplatter(src.loc)
for(var/datum/disease/D in src.viruses) 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)) if (step_to(src, get_step(src, direction), 0))
break break

View File

@@ -69,6 +69,6 @@
if (i > 0) if (i > 0)
var/obj/effect/decal/cleanable/blood/b = new /obj/effect/decal/cleanable/blood/splatter(src.loc) var/obj/effect/decal/cleanable/blood/b = new /obj/effect/decal/cleanable/blood/splatter(src.loc)
for(var/datum/disease/D in src.viruses) 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)) if (step_to(src, get_step(src, direction), 0))
break break

View File

@@ -47,7 +47,7 @@
if(viruses.len > 0) if(viruses.len > 0)
for(var/datum/disease/D in viruses) for(var/datum/disease/D in viruses)
if(prob(virusProb)) if(prob(virusProb))
var/datum/disease/viruus = new D.type var/datum/disease/viruus = new D.type(0, D, 1)
gib.viruses += viruus gib.viruses += viruus
viruus.holder = gib viruus.holder = gib
viruus.spread_type = CONTACT_FEET viruus.spread_type = CONTACT_FEET

View File

@@ -160,7 +160,7 @@
if (prob(10)) if (prob(10))
stuttering = max(10, stuttering) stuttering = max(10, stuttering)
if (getBrainLoss() >= 60 && stat != 2) if (getBrainLoss() >= 60 && stat != 2)
if (prob(7)) if (prob(3))
switch(pick(1,2,3)) switch(pick(1,2,3))
if(1) 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#")) 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") emote("collapse")
if ((HULK in mutations) && health >= 25) if ((HULK in mutations) && health >= 25)
if (prob(7)) if (prob(3))
switch(pick(1,2)) say(pick("HGH!", "PROTEIN!", "OH YEAH!", "HULK SMASH!", "HULK NOT LIKE BOOKS!", "HNNNNNNNNNGGGGGGH!", ))
if(1)
say(pick("HGH!", "PROTEIN!", "OH YEAH!", "HULK SMASH!", "HULK NOT LIKE BOOKS!", "HNNNNNNNNNGGGGGGH!", ))
if(2)
emote("flexes")
if (radiation) if (radiation)
if (radiation > 100) if (radiation > 100)
radiation = 100 radiation = 100

View File

@@ -72,7 +72,7 @@
if ((HULK in mutations) && health >= 25) if ((HULK in mutations) && health >= 25)
if(copytext(message, 1, 2) != "*") 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. //Ninja mask obscures text and voice if set to do so.
//Would make it more global but it's sort of ninja specific. //Would make it more global but it's sort of ninja specific.

View File

@@ -334,12 +334,13 @@ datum
else R.reaction_obj(A, R.volume+volume_modifier) else R.reaction_obj(A, R.volume+volume_modifier)
return 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 if(!isnum(amount)) return 1
update_total() update_total()
if(total_volume + amount > maximum_volume) amount = (maximum_volume - total_volume) //Doesnt fit in. Make it disappear. Shouldnt happen. Will happen. 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) for(var/A in reagent_list)
var/datum/reagent/R = A var/datum/reagent/R = A
if (R.id == reagent) if (R.id == reagent)
R.volume += amount R.volume += amount
@@ -349,30 +350,40 @@ datum
// mix dem viruses // mix dem viruses
if(R.id == "blood" && reagent == "blood") if(R.id == "blood" && reagent == "blood")
if(R.data && data) if(R.data && data)
if((R.data && R.data["viruses"]) || (data && data["viruses"]))
R.data["viruses"] |= data["viruses"] if(R.data["viruses"] && data["viruses"])
var/datum/disease/advance/AD = Advance_Mix(R.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) if(AD)
for(var/datum/disease/advance/D in R.data["viruses"]) var/list/preserve = list(AD)
R.data["viruses"] -= D for(var/D in R.data["viruses"])
if(!istype(D, /datum/disease/advance))
R.data["viruses"] |= new/datum/disease/advance(0, AD) preserve += D
R.data["viruses"] = preserve
handle_reactions() handle_reactions()
return 0 return 0
var/datum/reagent/D = chemical_reagents_list[reagent] var/datum/reagent/D = chemical_reagents_list[reagent]
if(D) if(D)
var/datum/reagent/R = new D.type() var/datum/reagent/R = new D.type()
reagent_list += R reagent_list += R
R.holder = src R.holder = src
R.volume = amount R.volume = amount
R.data = data SetViruses(R, data) // Includes setting data
//debug //debug
//world << "Adding data" //world << "Adding data"
//for(var/D in R.data) //for(var/D in R.data)

View File

@@ -12,7 +12,7 @@ datum
var/description = "" var/description = ""
var/datum/reagents/holder = null var/datum/reagents/holder = null
var/reagent_state = SOLID var/reagent_state = SOLID
var/data = null var/list/data = null
var/volume = 0 var/volume = 0
var/nutriment_factor = 0 var/nutriment_factor = 0
//var/list/viruses = list() //var/list/viruses = list()
@@ -99,28 +99,18 @@ datum
reaction_mob(var/mob/M, var/method=TOUCH, var/volume) reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
var/datum/reagent/blood/self = src var/datum/reagent/blood/self = src
src = null src = null
for(var/datum/disease/D in self.data["viruses"]) if(self.data && self.data["viruses"])
//var/datum/disease/virus = new D.type(0, D, 1) for(var/datum/disease/D in self.data["viruses"])
// We don't spread. //var/datum/disease/virus = new D.type(0, D, 1)
if(D.spread_type == SPECIAL || D.spread_type == NON_CONTAGIOUS) continue // We don't spread.
if(D.spread_type == SPECIAL || D.spread_type == NON_CONTAGIOUS) continue
if(method == TOUCH) if(method == TOUCH)
M.contract_disease(D) M.contract_disease(D)
else //injected else //injected
M.contract_disease(D, 1, 0) 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 reaction_turf(var/turf/simulated/T, var/volume)//splash the blood all over the place
if(!istype(T)) return if(!istype(T)) return

View File

@@ -475,9 +475,28 @@ datum
mix_virus_2 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 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 // foam and foam precursor

View File

@@ -91,7 +91,7 @@
B.data["viruses"] = list() 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) B.data["blood_DNA"] = copytext(T.dna.unique_enzymes,1,0)

View File

@@ -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. --> should be listed in the changelog upon commit tho. Thanks. -->
<!-- To take advantage of the pretty new format (well it was new when I wrote this anyway), open the "add-to-changelog.html" file in any browser and add the stuff and then generate the html code and paste it here --> <!-- To take advantage of the pretty new format (well it was new when I wrote this anyway), open the "add-to-changelog.html" file in any browser and add the stuff and then generate the html code and paste it here -->
<div class="commit sansserif">
<h2 class="date">13 November 2012</h2>
<h3 class="author">Giacom updated:</h3>
<ul class="changes bgimages16">
<li class="wip">More work to advance diseases. Please report any bugs to the bug tracker, I have tried everything that I can on my own but I'll need lots of people playing to fix the more minor bugs.</li>
<li class="tweak">Reduced the cost to use Hive Absorb from 40 to 20. This is to help encourage people to use this power more and to use team work.</li>
<li class="rscadd">New symptom added! See if you can find it.</li>
<li class="rscadd">You can now remove symptoms from a disease using synaptizine.</li>
</ul>
</div>
<div class="commit sansserif"> <div class="commit sansserif">
<h2 class="date">11 November 2012</h2> <h2 class="date">11 November 2012</h2>
<h3 class="author">Carn updated:</h3> <h3 class="author">Carn updated:</h3>

View File

@@ -6,509 +6,6 @@
// BEGIN_FILE_DIR // BEGIN_FILE_DIR
#define 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 // END_FILE_DIR
// BEGIN_PREFERENCES // BEGIN_PREFERENCES
@@ -609,6 +106,7 @@
#include "code\datums\diseases\advance\symptoms\hallucigen.dm" #include "code\datums\diseases\advance\symptoms\hallucigen.dm"
#include "code\datums\diseases\advance\symptoms\headache.dm" #include "code\datums\diseases\advance\symptoms\headache.dm"
#include "code\datums\diseases\advance\symptoms\itching.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\sneeze.dm"
#include "code\datums\diseases\advance\symptoms\symptoms.dm" #include "code\datums\diseases\advance\symptoms\symptoms.dm"
#include "code\datums\diseases\advance\symptoms\vomit.dm" #include "code\datums\diseases\advance\symptoms\vomit.dm"