mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
- Slightly rewrote the diseases. Spreading, stage updates, etc. Check the diffs if you want details.
- Fixed wizarditis teleport lagggggg git-svn-id: http://tgstation13.googlecode.com/svn/trunk@339 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -387,6 +387,9 @@
|
||||
dat += "<b>Blood Type:</b> [(Blood.data["blood_type"]||"none")]<BR>"
|
||||
var/datum/disease/D = Blood.data["virus"]
|
||||
dat += "<b>Agent of disease:</b> [D?"[D.agent] - <A href='?src=\ref[src];create_virus_culture=[D.type]'>Create virus culture bottle</A>":"none"]<BR>"
|
||||
if(D)
|
||||
dat += "<b>Common name:</b> [(D.name||"none")]<BR>"
|
||||
dat += "<b>Possible cure:</b> [(D.cure||"none")]<BR>"
|
||||
dat += "<b>Contains antibodies to:</b> "
|
||||
if(Blood.data["resistances"])
|
||||
var/list/res = Blood.data["resistances"]
|
||||
|
||||
@@ -74,9 +74,9 @@ datum
|
||||
var/datum/disease/V = self.data["virus"]
|
||||
if(M.resistances.Find(V.type)) return
|
||||
if(method == TOUCH)//respect all protective clothing...
|
||||
M.contract_disease(new V.type)
|
||||
M.contract_disease(V)
|
||||
else //injected
|
||||
M.contract_disease(new V.type, 1)
|
||||
M.contract_disease(V, 1)
|
||||
return
|
||||
|
||||
|
||||
@@ -84,6 +84,7 @@ datum
|
||||
var/datum/reagent/blood/self = src
|
||||
src = null
|
||||
if(!istype(T, /turf/simulated/)) return
|
||||
var/datum/disease/D = self.data["virus"]
|
||||
if(istype(self.data["donor"], /mob/living/carbon/human) || !self.data["donor"])
|
||||
var/turf/simulated/source2 = T
|
||||
var/list/objsonturf = range(0,T)
|
||||
@@ -94,19 +95,36 @@ datum
|
||||
var/obj/decal/cleanable/blood/blood_prop = new /obj/decal/cleanable/blood(source2)
|
||||
blood_prop.blood_DNA = self.data["blood_DNA"]
|
||||
blood_prop.blood_type = self.data["blood_type"]
|
||||
blood_prop.virus = self.data["virus"]
|
||||
if(D)
|
||||
blood_prop.virus = new D.type
|
||||
blood_prop.virus.holder = blood_prop
|
||||
if(istype(T, /turf/simulated/floor))
|
||||
blood_prop.virus.spread_type = CONTACT_FEET
|
||||
else
|
||||
blood_prop.virus.spread_type = CONTACT_HANDS
|
||||
|
||||
else if(istype(self.data["donor"], /mob/living/carbon/monkey))
|
||||
var/turf/simulated/source1 = T
|
||||
var/obj/decal/cleanable/blood/blood_prop = new /obj/decal/cleanable/blood(source1)
|
||||
blood_prop.blood_DNA = self.data["blood_DNA"]
|
||||
blood_prop.virus = self.data["virus"]
|
||||
if(D)
|
||||
blood_prop.virus = new D.type
|
||||
blood_prop.virus.holder = blood_prop
|
||||
if(istype(T, /turf/simulated/floor))
|
||||
blood_prop.virus.spread_type = CONTACT_FEET
|
||||
else
|
||||
blood_prop.virus.spread_type = CONTACT_HANDS
|
||||
|
||||
else if(istype(self.data["donor"], /mob/living/carbon/alien))
|
||||
var/turf/simulated/source2 = T
|
||||
var/obj/decal/cleanable/xenoblood/blood_prop = new /obj/decal/cleanable/xenoblood(source2)
|
||||
blood_prop.virus = self.data["virus"]
|
||||
|
||||
if(D)
|
||||
blood_prop.virus = new D.type
|
||||
blood_prop.virus.holder = blood_prop
|
||||
if(istype(T, /turf/simulated/floor))
|
||||
blood_prop.virus.spread_type = CONTACT_FEET
|
||||
else
|
||||
blood_prop.virus.spread_type = CONTACT_HANDS
|
||||
return
|
||||
|
||||
vaccine
|
||||
@@ -119,8 +137,8 @@ datum
|
||||
var/datum/reagent/vaccine/self = src
|
||||
src = null
|
||||
if(self.data&&method == INGEST)
|
||||
if(M.resistances.Find(self.data)) return
|
||||
M.resistances += self.data
|
||||
if(M.virus&&M.virus.type == self.data)
|
||||
M.virus.cure()
|
||||
return
|
||||
|
||||
|
||||
@@ -967,9 +985,9 @@ datum
|
||||
reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
src = null
|
||||
if( (prob(10) && method==TOUCH) || method==INGEST)
|
||||
if(!M.virus)
|
||||
M.virus = new /datum/disease/robotic_transformation
|
||||
M.virus.affected_mob = M
|
||||
var/datum/disease/D = new /datum/disease/robotic_transformation
|
||||
M.contract_disease(D,1)
|
||||
del(D)
|
||||
|
||||
xenomicrobes
|
||||
name = "Xenomicrobes"
|
||||
@@ -979,9 +997,9 @@ datum
|
||||
reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
src = null
|
||||
if( (prob(10) && method==TOUCH) || method==INGEST)
|
||||
if(!M.virus)
|
||||
M.virus = new /datum/disease/xeno_transformation
|
||||
M.virus.affected_mob = M
|
||||
var/datum/disease/D = new /datum/disease/xeno_transformation
|
||||
M.contract_disease(D,1)
|
||||
del(D)
|
||||
|
||||
//foam precursor
|
||||
|
||||
@@ -1804,4 +1822,4 @@ datum
|
||||
if(data >= 55 && prob(33))
|
||||
if (!M.confused) M.confused = 1
|
||||
M.confused += 2
|
||||
..()
|
||||
..()
|
||||
|
||||
@@ -357,6 +357,18 @@
|
||||
amount_per_transfer_from_this = 10
|
||||
flags = FPRINT | TABLEPASS | OPENCONTAINER
|
||||
|
||||
var/list/can_be_placed_into = list(
|
||||
/obj/machinery/chem_master/,
|
||||
/obj/table,
|
||||
/obj/secure_closet,
|
||||
/obj/closet,
|
||||
/obj/item/weapon/storage,
|
||||
/obj/machinery/atmospherics/unary/cryo_cell,
|
||||
/obj/item/weapon/chem_grenade,
|
||||
/obj/machinery/bot/medbot,
|
||||
/obj/machinery/pandemic,
|
||||
/obj/item/weapon/secstorage/ssafe)
|
||||
|
||||
examine()
|
||||
set src in view(2)
|
||||
..()
|
||||
@@ -374,7 +386,8 @@
|
||||
R.my_atom = src
|
||||
|
||||
afterattack(obj/target, mob/user , flag)
|
||||
|
||||
if(src.can_be_placed_into.Find(target.type))
|
||||
return
|
||||
if(ismob(target) && target.reagents && reagents.total_volume)
|
||||
user << "\blue You splash the solution onto [target]."
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
@@ -407,7 +420,7 @@
|
||||
var/trans = src.reagents.trans_to(target, 10)
|
||||
user << "\blue You transfer [trans] units of the solution to [target]."
|
||||
|
||||
else if(reagents.total_volume && !istype(target,/obj/machinery/chem_master/) && !istype(target,/obj/table) && !istype(target,/obj/secure_closet) && !istype(target,/obj/closet) && !istype(target,/obj/item/weapon/storage) && !istype(target, /obj/machinery/atmospherics/unary/cryo_cell) && !istype(target, /obj/item/weapon/chem_grenade) && !istype(target, /obj/machinery/bot/medbot) &&!istype(target, /obj/machinery/pandemic))
|
||||
else if(reagents.total_volume)
|
||||
user << "\blue You splash the solution onto [target]."
|
||||
src.reagents.reaction(target, TOUCH)
|
||||
spawn(5) src.reagents.clear_reagents()
|
||||
@@ -547,7 +560,7 @@
|
||||
B.volume = amount
|
||||
//set reagent data
|
||||
B.data["donor"] = T
|
||||
if(T.virus)
|
||||
if(T.virus && T.virus.spread_type != SPECIAL)
|
||||
B.data["virus"] = new T.virus.type
|
||||
B.data["blood_DNA"] = copytext(T.dna.unique_enzymes,1,0)
|
||||
if(T.resistances&&T.resistances.len)
|
||||
|
||||
Reference in New Issue
Block a user