///AI Upgrades //Malf Picker /obj/item/malf_upgrade name = "combat software upgrade" desc = "A highly illegal, highly dangerous upgrade for artificial intelligence units, granting them a variety of powers as well as the ability to hack APCs.
This upgrade does not override any active laws, and must be applied directly to an active AI core." icon = 'icons/obj/devices/circuitry_n_data.dmi' icon_state = "datadisk3" /obj/item/malf_upgrade/pre_attack(atom/A, mob/living/user, proximity) if(!proximity) return ..() if(!isAI(A)) return ..() var/mob/living/silicon/ai/AI = A if(AI.malf_picker) AI.malf_picker.processing_time += 50 to_chat(AI, span_userdanger("[user] has attempted to upgrade you with combat software that you already possess. You gain 50 points to spend on Malfunction Modules instead.")) else to_chat(AI, span_userdanger("[user] has upgraded you with combat software!")) to_chat(AI, span_userdanger("Your current laws and objectives remain unchanged.")) //this unlocks malf powers, but does not give the license to plasma flood AI.add_malf_picker() AI.hack_software = TRUE log_silicon("[key_name(user)] has upgraded [key_name(AI)] with a [src].") message_admins("[ADMIN_LOOKUPFLW(user)] has upgraded [ADMIN_LOOKUPFLW(AI)] with a [src].") to_chat(user, span_notice("You install [src], upgrading [AI].")) qdel(src) return TRUE //Lipreading /obj/item/surveillance_upgrade name = "surveillance software upgrade" desc = "An illegal software package that will allow an artificial intelligence to 'hear' from its cameras via lip reading and hidden microphones." icon = 'icons/obj/devices/circuitry_n_data.dmi' icon_state = "datadisk3" /obj/item/surveillance_upgrade/pre_attack(atom/A, mob/living/user, proximity) if(!proximity) return ..() if(!isAI(A)) return ..() var/mob/living/silicon/ai/AI = A if(AI.eyeobj) AI.eyeobj.relay_speech = TRUE to_chat(AI, span_userdanger("[user] has upgraded you with surveillance software!")) to_chat(AI, "Via a combination of hidden microphones and lip reading software, you are able to use your cameras to listen in on conversations.") to_chat(user, span_notice("You upgrade [AI]. [src] is consumed in the process.")) user.log_message("has upgraded [key_name(AI)] with a [src].", LOG_GAME) message_admins("[ADMIN_LOOKUPFLW(user)] has upgraded [ADMIN_LOOKUPFLW(AI)] with a [src].") qdel(src) return TRUE