/obj/item/export_scanner name = "export scanner" desc = "A device used to check objects against Nanotrasen exports and bounty database." icon = 'icons/obj/device.dmi' icon_state = "export_scanner" item_state = "radio" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' item_flags = NOBLUDGEON w_class = WEIGHT_CLASS_SMALL siemens_coefficient = 1 var/obj/machinery/computer/cargo/cargo_console = null /obj/item/export_scanner/examine(user) ..() if(!cargo_console) to_chat(user, "[src] is not currently linked to a cargo console.") /obj/item/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 to_chat(user, "Scanner linked to [C].") else if(!istype(cargo_console)) to_chat(user, "You must link [src] to a cargo console first!") else // Before you fix it: // yes, checking manifests is a part of intended functionality. var/datum/export_report/ex = export_item_and_contents(O, cargo_console.get_export_categories(), dry_run=TRUE) var/price = 0 for(var/x in ex.total_amount) price += ex.total_value[x] if(price) to_chat(user, "Scanned [O], value: [price] credits[O.contents.len ? " (contents included)" : ""].") else to_chat(user, "Scanned [O], no export value.") if(bounty_ship_item_and_contents(O, dry_run=TRUE)) to_chat(user, "Scanned item is eligible for one or more bounties.")