Files
CHOMPStation2/code/modules/virus2/items_devices.dm
2014-03-24 23:55:41 -05:00

105 lines
3.2 KiB
Plaintext

///////////////ANTIBODY SCANNER///////////////
/obj/item/device/antibody_scanner
name = "\improper Antibody Scanner"
desc = "Scans living beings for antibodies in their blood."
icon_state = "health"
w_class = 2.0
item_state = "electronic"
flags = FPRINT | TABLEPASS | CONDUCT
/obj/item/device/antibody_scanner/attack(mob/M as mob, mob/user as mob)
if(!istype(M,/mob/living/carbon/))
report("Scan aborted: Incompatible target.", user)
return
var/mob/living/carbon/C = M
if (istype(C,/mob/living/carbon/human/))
var/mob/living/carbon/human/H = C
if(H.species && H.species.flags & NO_BLOOD)
report("Scan aborted: The target does not have blood.", user)
return
if(!C.antibodies)
report("Scan Complete: No antibodies detected.", user)
return
if (CLUMSY in user.mutations && prob(50))
// I was tempted to be really evil and rot13 the output.
report("Antibodies detected: [reverse_text(antigens2string(C.antibodies))]", user)
else
report("Antibodies detected: [antigens2string(C.antibodies)]", user)
/obj/item/device/antibody_scanner/proc/report(var/text, mob/user as mob)
user << "\blue \icon[src] \The [src] beeps, \"[text]\""
///////////////VIRUS DISH///////////////
/obj/item/weapon/virusdish
name = "virus containment/growth dish"
icon = 'icons/obj/items.dmi'
icon_state = "implantcase-b"
var/datum/disease2/disease/virus2 = null
var/growth = 0
var/info = 0
var/analysed = 0
/obj/item/weapon/virusdish/random
name = "virus sample"
/obj/item/weapon/virusdish/random/New()
..()
src.virus2 = new /datum/disease2/disease
src.virus2.makerandom()
growth = rand(5, 50)
/obj/item/weapon/virusdish/attackby(var/obj/item/weapon/W as obj,var/mob/living/carbon/user as mob)
if(istype(W,/obj/item/weapon/hand_labeler) || istype(W,/obj/item/weapon/reagent_containers/syringe))
return
..()
if(prob(50))
user << "\The [src] shatters!"
if(virus2.infectionchance > 0)
for(var/mob/living/carbon/target in view(1, get_turf(src)))
if(airborne_can_reach(get_turf(src), get_turf(target)))
if(get_infection_chance(target))
infect_virus2(target,src.virus2)
del src
/obj/item/weapon/virusdish/examine()
usr << "This is a virus containment dish."
if(src.info)
usr << "It has the following information about its contents:"
usr << src.info
/obj/item/weapon/ruinedvirusdish
name = "ruined virus sample"
icon = 'icons/obj/items.dmi'
icon_state = "implantcase-b"
desc = "The bacteria in the dish are completely dead."
/obj/item/weapon/ruinedvirusdish/attackby(var/obj/item/weapon/W as obj,var/mob/living/carbon/user as mob)
if(istype(W,/obj/item/weapon/hand_labeler) || istype(W,/obj/item/weapon/reagent_containers/syringe))
return ..()
if(prob(50))
user << "\The [src] shatters!"
del src
///////////////GNA DISK///////////////
/obj/item/weapon/diseasedisk
name = "blank GNA disk"
icon = 'icons/obj/cloning.dmi'
icon_state = "datadisk0"
var/datum/disease2/effectholder/effect = null
var/list/species = null
var/stage = 1
var/analysed = 1
/obj/item/weapon/diseasedisk/premade/New()
name = "blank GNA disk (stage: [stage])"
effect = new /datum/disease2/effectholder
effect.effect = new /datum/disease2/effect/invisible
effect.stage = stage