mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 11:37:40 +01:00
Ported virus2 system and machinery.
Viruses2 do not spawn anywhere yet, until machinery is on map.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user