mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Conflicts: code/ATMOSPHERICS/pipe/pipe_dispenser.dm code/game/machinery/computer/HolodeckControl.dm code/game/machinery/embedded_controller/embedded_controller_base.dm code/modules/mining/money_bag.dm code/modules/mob/living/carbon/carbon.dm code/modules/mob/living/silicon/mommi/mommi.dm code/modules/mob/living/simple_animal/friendly/farm_animals.dm code/modules/research/destructive_analyzer.dm code/modules/research/rdconsole.dm code/modules/research/xenoarchaeology/machinery/analysis_base.dm code/modules/research/xenoarchaeology/machinery/artifact_harvester.dm code/modules/research/xenoarchaeology/tools/ano_device_battery.dm
78 lines
1.8 KiB
Plaintext
78 lines
1.8 KiB
Plaintext
/obj/machinery/disease2/diseaseanalyser
|
|
name = "Disease Analyser"
|
|
icon = 'icons/obj/virology.dmi'
|
|
icon_state = "analyser"
|
|
anchored = 1
|
|
density = 1
|
|
|
|
machine_flags = SCREWTOGGLE | CROWDESTROY
|
|
|
|
var/scanning = 0
|
|
var/pause = 0
|
|
|
|
var/obj/item/weapon/virusdish/dish = null
|
|
|
|
/obj/machinery/disease2/diseaseanalyser/New()
|
|
. = ..()
|
|
|
|
component_parts = newlist(
|
|
/obj/item/weapon/circuitboard/diseaseanalyser,
|
|
/obj/item/weapon/stock_parts/manipulator,
|
|
/obj/item/weapon/stock_parts/micro_laser,
|
|
/obj/item/weapon/stock_parts/scanning_module,
|
|
/obj/item/weapon/stock_parts/scanning_module,
|
|
/obj/item/weapon/stock_parts/scanning_module,
|
|
)
|
|
|
|
RefreshParts()
|
|
|
|
/obj/machinery/disease2/diseaseanalyser/attackby(var/obj/I as obj, var/mob/user as mob)
|
|
..()
|
|
if(istype(I,/obj/item/weapon/virusdish))
|
|
var/mob/living/carbon/c = user
|
|
if(!dish)
|
|
dish = I
|
|
c.drop_item(I, src)
|
|
for(var/mob/M in viewers(src))
|
|
if(M == user) continue
|
|
M.show_message("<span class='notice'>[user.name] inserts the [dish.name] in the [src.name]</span>", 3)
|
|
else
|
|
user << "There is already a dish inserted"
|
|
return
|
|
|
|
|
|
/obj/machinery/disease2/diseaseanalyser/process()
|
|
if(stat & (NOPOWER|BROKEN))
|
|
return
|
|
use_power(500)
|
|
|
|
if(scanning)
|
|
scanning -= 1
|
|
if(scanning == 0)
|
|
var/r = dish.virus2.get_info()
|
|
|
|
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(src.loc)
|
|
P.info = r
|
|
dish.info = r
|
|
dish.analysed = 1
|
|
if (dish.virus2.addToDB())
|
|
say("Added new pathogen to database.")
|
|
dish.loc = src.loc
|
|
dish = null
|
|
icon_state = "analyser"
|
|
|
|
visible_message("\The [src.name] prints a sheet of paper")
|
|
|
|
else if(dish && !scanning && !pause)
|
|
if(dish.virus2 && dish.growth > 50)
|
|
dish.growth -= 10
|
|
scanning = 5
|
|
icon_state = "analyser_processing"
|
|
else
|
|
pause = 1
|
|
spawn(25)
|
|
dish.loc = src.loc
|
|
dish = null
|
|
alert_noise("buzz")
|
|
pause = 0
|
|
return |