Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /obj/machinery/computer/bioscanner
- name = "Bioscan Console"
- desc = "Used to perform bioscans remotely."
- density = 1
- anchored = 1.0
- icon_keyboard = "med_key"
- icon_screen = "crew"
- circuit = null
- idle_power_usage = 500
- active_power_usage = 500
- var/SCAN_TIME = 100
- var/COOLDOWN_TIME = 600
- var/target_z = 0
- var/active = 0
- var/start_time = 0
- var/scan_complete = 0
- var/targets_found = 0
- /obj/machinery/computer/bioscanner/New()
- src.target_z = src.z //In actual use, target_z should be the planet, this is only for testing purposes.
- ..()
- /obj/machinery/computer/bioscanner/attack_ai(user as mob)
- //I don't think CM uses AI, but support should be kept anyway.
- return src.attack_hand(user)
- /obj/machinery/computer/bioscanner/attack_hand(mob/user as mob)
- if(..())
- return
- ui_interact(user)
- /obj/machinery/computer/bioscanner/ui_interact(mob/user)
- //This whole bit should probably use Nano.
- var/dat = list()
- dat += {"<B>Bioscanner Interface</B><BR>"}
- if(src.scan_complete)
- dat += {"<B>SCAN RESULTS:</B><BR>
- Organics Detected: [src.targets_found]
- <A href='?src=\ref[src];complete=1'>\[DONE]</A>"}
- else
- if(src.start_time != 0 && !src.active && src.start_time + src.COOLDOWN_TIME > world.time)
- dat += {"<B>RECALIBRATING...</B> [(src.start_time - world.time + src.COOLDOWN_TIME) / 10] seconds remaining."}
- else if(src.active)
- dat += {"<B>SCAN IN PROGRESS...</B><BR>"}
- else
- dat += {"<A href='?src=\ref[src];scan=1'>\[BEGIN SCAN]</A>"}
- dat = jointext(dat,null)
- user << browse(text("<HEAD><TITLE>Bioscanner</TITLE></HEAD><TT>[]</TT>", dat), "window=bioscanner")
- onclose(user, "bioscanner")
- return
- /obj/machinery/computer/bioscanner/Topic(href, href_list)
- if(..())
- return 1
- if (href_list["scan"])
- if(src.active)
- return 0
- else
- src.active = 1
- src.start_time = world.time
- if (href_list["complete"])
- src.scan_complete = 0
- src.targets_found = 0
- src.add_fingerprint(usr)
- src.updateUsrDialog()
- return
- /obj/machinery/computer/bioscanner/process()
- if(..())
- if(src.start_time != 0)
- if(src.start_time + src.SCAN_TIME < world.time)
- src.active = 0
- src.scan_complete = 1
- for(var/mob/living/carbon/H in world)
- if(H.z == src.target_z)
- if(H.stat < 2) //Apparently if .stat is less than 2, they're alive.
- src.targets_found++;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement