/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."