Ported virus2 system and machinery.

Viruses2 do not spawn anywhere yet, until machinery is on map.
This commit is contained in:
Chinsky
2012-10-29 04:27:58 +04:00
parent 9716049b4e
commit 27eaaa01d1
15 changed files with 123 additions and 14 deletions
+23 -1
View File
@@ -91,7 +91,7 @@ datum
blood
data = new/list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null)
data = new/list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"virus2"=null,"antibodies"=null )
name = "Blood"
id = "blood"
reagent_state = LIQUID
@@ -108,6 +108,19 @@ datum
else //injected
M.contract_disease(virus, 1, 0)
if(self.data["virus2"])
if(method == TOUCH)
infect_virus2(M,self.data["virus2"])
else
infect_virus2(M,self.data["virus2"],1)
if(istype(M,/mob/living/carbon))
// add the host's antibodies to their blood
self.data["antibodies"] |= M:antibodies
// check if the blood has antibodies that cure our disease
if (M:virus2) if((self.data["antibodies"] & M:virus2.antigen) && prob(10))
M:virus2.dead = 1
/*
if(self.data["virus"])
@@ -797,6 +810,15 @@ datum
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.apply_effect(2,IRRADIATE,0)
// radium may increase your chances to cure a disease
if(istype(M,/mob/living/carbon)) // make sure to only use it on carbon mobs
if(M:virus2 && prob(5))
if(prob(50))
M.radiation += 50 // curing it that way may kill you instead
M.adjustToxLoss(100)
M:antibodies |= M:virus2.antigen
..()
return
@@ -181,6 +181,13 @@ datum
required_reagents = list("silicon" = 1, "carbon" = 1)
result_amount = 2
virus_food
name = "Virus Food"
id = "virusfood"
result = "virusfood"
required_reagents = list("water" = 1, "milk" = 1)
result_amount = 5
leporazine
name = "Leporazine"
id = "leporazine"
@@ -27,7 +27,8 @@
/obj/machinery/computer/pandemic,
/obj/item/weapon/secstorage/ssafe,
/obj/machinery/disposal,
/obj/machinery/iv_drip
/obj/machinery/iv_drip,
/obj/machinery/disease2/incubator
)
examine()
@@ -96,6 +96,8 @@
B.data["viruses"] += new D.type
if(T.virus2)
B.data["virus2"] = T.virus2.getcopy()
B.data["blood_DNA"] = copytext(T.dna.unique_enzymes,1,0)
if(T.resistances&&T.resistances.len)
@@ -108,6 +110,7 @@
temp_chem += R.name
temp_chem[R.name] = R.volume
B.data["trace_chem"] = list2params(temp_chem)
B.data["antibodies"] = T.antibodies
if(ishuman(T))
T:vessel.remove_reagent("blood",amount) // Removes blood if human