/obj/item/weapon/integrated_uplink name = "uplink module" desc = "An electronic uplink system of unknown origin." icon = 'module.dmi' icon_state = "power_mod" var/uses = 10 var/obj/item/device/pda/hostpda = null var/orignote = null //Restore original notes when locked. var/active = 0 //Are we currently active?? var/menu_message = "" var/lock_code = "password" //What's the password? //Communicate with traitor through the PDA's note function. /obj/item/weapon/integrated_uplink/proc/print_to_host(var/text) if (isnull(hostpda)) return hostpda.note = text for (var/mob/M in viewers(1, hostpda.loc)) if (M.client && M.machine == hostpda) hostpda.attack_self(M) return //Let's build a menu! /obj/item/weapon/integrated_uplink/proc/generate_menu() menu_message = "Syndicate Uplink Console:
" menu_message += "Tele-Crystals left: [uses]
" menu_message += "
" menu_message += "Request item:
" menu_message += "Each item costs a number of tele-crystals as indicated by the number following their name.
" menu_message += "
" menu_message += "Revolver (6)
" menu_message += "Ammo-357 for use with Revolver (2)
" menu_message += "Ammo-418 for use with Revolver (3)
" menu_message += "Energy Crossbow (5)
" menu_message += "Energy Sword (4)
" menu_message += "
" menu_message += "Chameleon Jumpsuit (3)
" menu_message += "Syndicate Shoes (2)
" menu_message += "Syndicate Card (3)
" menu_message += "Voice-Changer (4)
" menu_message += "
" menu_message += "Freedom Implant (with injector) (3)
" menu_message += "Uplink Implant (4 crystals inside) (10)
" menu_message += "Paralysis Pen (3)
" menu_message += "Sleepy Pen (5)
" menu_message += "
" menu_message += "Detomatix Cartridge (3)
" menu_message += "Plastic Explosives (2)
" menu_message += "Power Sink (5)
" menu_message += "Syndicate-made Space Suit (inludes a helmet) (3)
" menu_message += "
" menu_message += "Chameleon-projector (4)
" menu_message += "Cloaking Device (4)
" menu_message += "Electromagnet Card (3)
" menu_message += "5 EMP Grenades (4)
" menu_message += "
" menu_message += "Binary Translator (3)
" menu_message += "Hacked AI Module (7)
" menu_message += "
" menu_message += "Singularity Beacon (does not include a screwdriver) (7)
" menu_message += "
" menu_message += "Syndicate Toolbox (Includes various tools) (1)
" menu_message += "Syndicate Soap (1)
" menu_message += "Syndicate Balloon (Useless) (10)
" menu_message += "
" menu_message += "Syndicate Bundle (Contains an assorted selection of syndicate items)(10)
" menu_message += "
" return /obj/item/weapon/integrated_uplink/proc/unlock() if ((isnull(hostpda)) || (active)) return orignote = hostpda.note active = 1 hostpda.mode = 1 //Switch right to the notes program generate_menu() print_to_host(menu_message) return /obj/item/weapon/integrated_uplink/Topic(href, href_list) if ((isnull(hostpda)) || (!active)) return if (usr.stat || usr.restrained() || !in_range(hostpda, usr)) return if (href_list["buy_item"]) switch(href_list["buy_item"]) if("revolver") if (uses >= 6) uses -= 6 new /obj/item/weapon/gun/projectile(get_turf(hostpda)) if("revolver_ammo") if (uses >= 2) uses -= 2 new /obj/item/ammo_magazine(get_turf(hostpda)) if("suffocation_revolver_ammo") if (uses >= 3) uses -= 3 new /obj/item/ammo_magazine/a418(get_turf(hostpda)) if("xbow") if (uses >= 5) uses -= 5 new /obj/item/weapon/gun/energy/crossbow(get_turf(hostpda)) if("empbox") if (uses >= 4) uses -= 4 new /obj/item/weapon/storage/emp_kit(get_turf(hostpda)) if("voice") if (uses >= 4) uses -= 4 new /obj/item/clothing/mask/gas/voice(get_turf(hostpda)) if("jump") if (uses >= 3) uses -= 3 new /obj/item/clothing/under/chameleon(get_turf(hostpda)) if("shoes") if (uses >= 2) uses -= 2 new /obj/item/clothing/shoes/syndigaloshes(get_turf(hostpda)) if("card") if (uses >= 3) uses -= 3 new /obj/item/weapon/card/id/syndicate(get_turf(hostpda)) if("emag") if (uses >= 3) uses -= 3 new /obj/item/weapon/card/emag(get_turf(hostpda)) if("imp_freedom") if (uses >= 3) uses -= 3 var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(get_turf(hostpda)) O.imp = new /obj/item/weapon/implant/freedom(O) if("imp_uplink") if (uses >= 10) uses -= 10 var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(get_turf(hostpda)) O.imp = new /obj/item/weapon/implant/uplink(O) if("sleepypen") if (uses >= 5) uses -= 5 new /obj/item/weapon/pen/sleepypen(get_turf(hostpda)) if("paralysispen") if (uses >= 3) uses -= 3 new /obj/item/device/flashlight/pen/paralysis(get_turf(hostpda)) if("projector") if (uses >= 4) uses -= 4 new /obj/item/device/chameleon(get_turf(hostpda)) if("cloak") if (uses >= 4) uses -= 4 new /obj/item/weapon/cloaking_device(get_turf(hostpda)) if("sword") if (uses >= 4) uses -= 4 new /obj/item/weapon/melee/energy/sword(get_turf(hostpda)) if("bomb") if (uses >= 2) uses -= 2 new /obj/item/weapon/plastique(get_turf(hostpda)) if("powersink") if (uses >= 5) uses -= 5 new /obj/item/device/powersink(get_turf(hostpda)) if("detomatix") if (uses >= 3) uses -= 3 new /obj/item/weapon/cartridge/syndicate(get_turf(hostpda)) if("space") if (uses >= 3) uses -= 3 new /obj/item/clothing/suit/space/syndicate(get_turf(hostpda)) new /obj/item/clothing/head/helmet/space/syndicate(get_turf(hostpda)) if("lawmod") if (uses >= 7) uses -= 7 new /obj/item/weapon/aiModule/syndicate(get_turf(hostpda)) if("botchat") if (uses >= 3) uses -= 3 new /obj/item/device/radio/headset/traitor(get_turf(hostpda)) if("singubeacon") if(uses >= 7) uses -= 7 new /obj/machinery/singularity_beacon/syndicate(get_turf(hostpda)) if("toolbox") if(uses) uses-- new /obj/item/weapon/storage/toolbox/syndicate(get_turf(hostpda)) if("soap") if(uses) uses-- new /obj/item/weapon/soap/syndie(get_turf(src)) if("balloon") if(uses >= 10) uses -= 10 new /obj/item/toy/syndicateballoon(get_turf(hostpda)) if("bundle") if(uses >= 10) uses -= 10 new /obj/item/weapon/storage/box/syndicate(get_turf(hostpda)) generate_menu() print_to_host(menu_message) return return /obj/item/weapon/integrated_uplink/proc/shutdown_uplink() if (isnull(src.hostpda)) return active = 0 hostpda.note = orignote if (hostpda.mode==1) hostpda.mode = 0 hostpda.updateDialog() return