/obj/machinery/computer/mecha name = "Exosuit Control" icon = 'icons/obj/computer.dmi' icon_state = "mecha" req_access = list(access_robotics) circuit = "/obj/item/weapon/circuitboard/mecha_control" var/list/located = list() var/screen = 0 var/stored_data attack_ai(var/mob/user as mob) return src.attack_hand(user) attack_hand(var/mob/user as mob) if(..()) return user.set_machine(src) var/dat = "[src.name]" if(screen == 0) dat += "

Tracking beacons data

" for(var/obj/item/mecha_parts/mecha_tracking/TR in world) var/answer = TR.get_mecha_info() if(answer) dat += {"
[answer]
Send message
Show exosuit log | (EMP pulse)
"} if(screen==1) dat += "

Log contents

" dat += "Return
" dat += "[stored_data]" dat += "(Refresh)
" dat += "" user << browse(dat, "window=computer;size=400x500") onclose(user, "computer") return Topic(href, href_list) if(..()) return var/datum/topic_input/filter = new /datum/topic_input(href,href_list) if(href_list["send_message"]) var/obj/item/mecha_parts/mecha_tracking/MT = filter.getObj("send_message") var/message = sanitize(input(usr,"Input message","Transmit message") as text) var/obj/mecha/M = MT.in_mecha() if(message && M) M.occupant_message(message) return if(href_list["shock"]) var/obj/item/mecha_parts/mecha_tracking/MT = filter.getObj("shock") MT.shock() if(href_list["get_log"]) var/obj/item/mecha_parts/mecha_tracking/MT = filter.getObj("get_log") stored_data = MT.get_mecha_log() screen = 1 if(href_list["return"]) screen = 0 src.updateUsrDialog() return /obj/item/mecha_parts/mecha_tracking name = "Exosuit tracking beacon" desc = "Device used to transmit exosuit data." icon = 'icons/obj/device.dmi' icon_state = "motion2" origin_tech = "programming=2;magnets=2" construction_time = 50 construction_cost = list("metal"=500) proc/get_mecha_info() if(!in_mecha()) return 0 var/obj/mecha/M = src.loc var/cell_charge = M.get_charge() var/answer = {"Name: [M.name]
Integrity: [M.health/initial(M.health)*100]%
Cell charge: [isnull(cell_charge)?"Not found":"[M.cell.percent()]%"]
Airtank: [M.return_pressure()]kPa
Pilot: [M.occupant||"None"]
Location: [get_area(M)||"Unknown"]
Active equipment: [M.selected||"None"]"} if(istype(M, /obj/mecha/working/ripley)) var/obj/mecha/working/ripley/RM = M answer += "Used cargo space: [RM.cargo.len/RM.cargo_capacity*100]%
" return answer emp_act() qdel(src) return ex_act() qdel(src) return proc/in_mecha() if(istype(src.loc, /obj/mecha)) return src.loc return 0 proc/shock() var/obj/mecha/M = in_mecha() if(M) M.emp_act(2) qdel(src) proc/get_mecha_log() if(!src.in_mecha()) return 0 var/obj/mecha/M = src.loc return M.get_log_html() /obj/item/weapon/storage/box/mechabeacons name = "Exosuit Tracking Beacons" New() ..() new /obj/item/mecha_parts/mecha_tracking(src) new /obj/item/mecha_parts/mecha_tracking(src) new /obj/item/mecha_parts/mecha_tracking(src) new /obj/item/mecha_parts/mecha_tracking(src) new /obj/item/mecha_parts/mecha_tracking(src) new /obj/item/mecha_parts/mecha_tracking(src) new /obj/item/mecha_parts/mecha_tracking(src)