/obj/item/device/export_scanner
name = "export scanner"
desc = "A device used to check objects against Nanotrasen exports database."
icon_state = "export_scanner"
item_state = "radio"
flags = NOBLUDGEON
w_class = 2
siemens_coefficient = 1
var/obj/machinery/computer/cargo/cargo_console = null
/obj/item/device/export_scanner/examine(user)
..()
if(!cargo_console)
user << "The [src] is currently not linked to a cargo console."
/obj/item/device/export_scanner/afterattack(obj/O, mob/user, proximity)
if(!istype(O) || !proximity)
return
if(istype(O, /obj/machinery/computer/cargo))
var/obj/machinery/computer/cargo/C = O
if(!C.requestonly)
cargo_console = C
user << "Scanner linked to [C]."
else if(!istype(cargo_console))
user << "You must link [src] to a cargo console first!"
else
var/obj/docking_port/mobile/supply/supply = SSshuttle.supply
if(!supply)
user << "Falied to connect to exports database!"
return
user << "Scanned [O]."
// Before you fix it: yes, checking manifests is a part of intended functionality.
var/exported = FALSE
for(var/a in supply.exports)
var/datum/export/E = a
if(E.applies_to(O, cargo_console.contraband, cargo_console.emagged))
var/cost = E.get_cost(O, cargo_console.contraband, cargo_console.emagged)
user << "Export cost: [cost] credits."
if(is_type_in_list(O, supply.storage_objects) && O.contents.len)
user << "(contents not included)"
exported = TRUE
break
if(!exported)
user << "The object is unexportable."