Ported Uplinks, Door stuff, Hacktools, Compressed Matter implant.

This commit is contained in:
SkyMarshal
2012-01-27 20:15:06 -07:00
parent 21fe68972f
commit 12afd61ffc
43 changed files with 2399 additions and 557 deletions
+1 -1
View File
@@ -32,7 +32,7 @@
var/cart = "" //A place to stick cartridge menu information
var/over_jumpsuit = 1 // If set to 0, it won't display on top of the mob's jumpsuit
var/obj/item/weapon/integrated_uplink/uplink = null
var/obj/item/device/uplink/pda/uplink = null
var/obj/item/weapon/card/id/id = null //Making it possible to slot an ID card into the PDA so it can function as both.
var/ownjob = null //related to above
-245
View File
@@ -1,245 +0,0 @@
/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 = "<B>Syndicate Uplink Console:</B><BR>"
menu_message += "Tele-Crystals left: [uses]<BR>"
menu_message += "<HR>"
menu_message += "<B>Request item:</B><BR>"
menu_message += "<I>Each item costs a number of tele-crystals as indicated by the number following their name.</I><BR>"
menu_message += "<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=revolver'>Revolver</A> (6)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=revolver_ammo'>Ammo-357</A> for use with Revolver (2)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=suffocation_revolver_ammo'>Ammo-418</A> for use with Revolver (3)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=xbow'>Energy Crossbow</A> (5)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=sword'>Energy Sword</A> (4)<BR>"
menu_message += "<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=jump'>Chameleon Jumpsuit</A> (3)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=shoes'>Syndicate Shoes</A> (2)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=card'>Syndicate Card</A> (3)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=voice'>Voice-Changer</A> (4)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=thermal'>Thermal Glasses</A> (4)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=eraser'>Stamp Remover</A> (1)<BR>" //Allows doccuments to be de-stamped
menu_message += "<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=imp_freedom'>Freedom Implant (with injector)</A> (3)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=imp_uplink'>Uplink Implant (5 crystals inside)</A> (10)<BR>"
// menu_message += "<A href='byond://?src=\ref[src];buy_item=paralysispen'>Paralysis Pen</A> (3)<BR>"
//When given the choice, people have been P2W
menu_message += "<A href='byond://?src=\ref[src];buy_item=sleepypen'>Sleepy Pen</A> (4)<BR>" //Terrible -Pete.
menu_message += "<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=imp_exp'>Explosive Implant (with injector)</A> (6)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=detomatix'>Detomatix Cartridge</A> (3)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=bomb'>Plastic Explosives</A> (2)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=powersink'>Power Sink</A> (5)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=space'>Syndicate-made Space Suit (inludes a helmet)</A> (3)<BR>"
menu_message += "<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=projector'>Chameleon-projector</A> (4)<BR>"
// menu_message += "<A href='byond://?src=\ref[src];buy_item=cloak'>Cloaking Device</A> (4)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=emag'>Electromagnet Card</A> (3)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=empbox'>5 EMP Grenades</A> (4)<BR>"
menu_message += "<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=botchat'>Binary Translator</A> (3)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=lawmod'>Hacked AI Module</A> (7)<BR>"
menu_message += "<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=singubeacon'>Singularity Beacon</A> (does not include a screwdriver) (7)<BR>"
menu_message += "<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=toolbox'>Syndicate Toolbox</A> (Includes various tools) (1)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=soap'>Syndicate Soap</A> (1)<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=balloon'>Syndicate Balloon</A> (Useless) (10)<BR>"
menu_message += "<BR>"
menu_message += "<A href='byond://?src=\ref[src];buy_item=bundle'>Syndicate Bundle</A> (Contains an assorted selection of syndicate items)(10)<BR>"
menu_message += "<HR>"
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/a357(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)
O.update()
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)
O.update()
if("imp_exp")
if (src.uses >= 6)
src.uses -= 6
var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(get_turf(hostpda))
O.imp = new /obj/item/weapon/implant/explosive(O)
O.name = "(BIO-HAZARD) BIO-detpack"
O.update()
if("sleepypen")
if (uses >= 4)
uses -= 4
new /obj/item/weapon/pen/sleepypen(get_turf(hostpda))
if("paralysispen")
if (uses >= 3)
uses -= 3
new /obj/item/weapon/pen/paralysis(get_turf(src))
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("thermal")
if (src.uses >= 4)
src.uses -= 4
new /obj/item/clothing/glasses/thermal(get_turf(src))
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))
if("eraser")
if(uses >= 1)
uses -= 1
new /obj/item/weapon/stamperaser(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
@@ -38,12 +38,12 @@
desc = "Summon things."
var
activation_emote = "chuckle"
obj/item/weapon/syndicate_uplink/uplink = null
obj/item/device/uplink/radio/uplink = null
New()
activation_emote = pick("blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
uplink = new /obj/item/weapon/syndicate_uplink/implanted(src)
uplink = new /obj/item/device/uplink/radio/implanted(src)
..()
return
@@ -290,4 +290,38 @@ the implant may become unstable and either pre-maturely inject the subject or si
implanted(mob/source as mob)
mobname = source.real_name
processing_objects.Add(src)
processing_objects.Add(src)
/obj/item/weapon/implant/compressed
name = "compressed matter implant"
desc = "*fwooomp*"
var/activation_emote = "sigh"
var/obj/item/scanned = null
get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> NanoTrasen \"Profit Margin\" Class Employee Lifesign Sensor<BR>
<b>Life:</b> Activates upon death.<BR>
<b>Important Notes:</b> Alerts crew to crewmember death.<BR>
<HR>
<b>Implant Details:</b><BR>
<b>Function:</b> Contains a compact radio signaler that triggers when the host's lifesigns cease.<BR>
<b>Special Features:</b> Alerts crew to crewmember death.<BR>
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
return dat
trigger(emote, mob/source as mob)
if (src.scanned == null)
return 0
if (emote == src.activation_emote)
source << "The air glows as \the [src.scanned.name] uncompresses."
var/turf/t = get_turf(source)
src.scanned.loc = t
del src
implanted(mob/source as mob)
src.activation_emote = input("Choose activation emote:") in list("blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
source.mind.store_memory("Freedom implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate.", 0, 0)
source << "The implanted freedom implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate."
@@ -80,4 +80,39 @@
src.imp = new /obj/item/weapon/implant/explosive( src )
..()
update()
return
return
/obj/item/weapon/implanter/compressed
name = "implanter-compressed"
icon_state = "cimplanter0"
New()
src.imp = new /obj/item/weapon/implant/compressed( src )
..()
update()
return
update()
if (src.imp)
var/obj/item/weapon/implant/compressed/c = src.imp
if(!c.scanned)
src.icon_state = "cimplanter0"
else
src.icon_state = "cimplanter1"
else
src.icon_state = "cimplanter2"
return
attack(mob/M as mob, mob/user as mob)
var/obj/item/weapon/implant/compressed/c = src.imp
if (c.scanned == null)
user << "Please scan an object with the implanter first."
return
..()
afterattack(atom/A, mob/user as mob)
if(istype(A,/obj/item))
var/obj/item/weapon/implant/compressed/c = src.imp
c.scanned = A
A.loc.contents.Remove(A)
src.update()
-255
View File
@@ -1,255 +0,0 @@
/*
CONTAINS:
SYNDICATE UPLINK
*/
/obj/item/weapon/syndicate_uplink/implanted
uses = 5
/obj/item/weapon/syndicate_uplink/proc/explode()
var/turf/location = get_turf(src.loc)
if(location)
location.hotspot_expose(700,125)
explosion(location, 0, 0, 2, 4)
del(src.master)
del(src)
return
/obj/item/weapon/syndicate_uplink/attack_self(mob/user as mob)
interact(user)
/obj/item/weapon/syndicate_uplink/proc/interact(mob/user as mob)
currentUser = user
user.machine = src
var/dat
if (src.selfdestruct)
dat = "Self Destructing..."
else
if (src.temp)
dat = "[src.temp]<BR><BR><A href='byond://?src=\ref[src];temp=1'>Clear</A>"
else
dat = "<B>Syndicate Uplink Access:</B><BR>"
dat += "Tele-Crystals left: [src.uses]<BR>"
dat += "<HR>"
dat += "<B>Request item:</B><BR>"
dat += "<I>Each item costs a number of tele-crystals as indicated by the number following their name.</I><BR>"
dat += "<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=revolver'>Revolver</A> (6)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=revolver_ammo'>Ammo-357</A> for use with Revolver (2)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=xbow'>Energy Crossbow</A> (5)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=sword'>Energy Sword</A> (4)<BR>"
dat += "<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=jump'>Chameleon Jumpsuit</A> (3)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=shoes'>Syndicate Shoes</A> (2)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=card'>Syndicate Card</A> (3)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=voice'>Voice-Changer</A> (4)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=thermal'>Thermal Glasses</A> (4)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=eraser'>Stamp Remover</A> (1)<BR>"
dat += "<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=imp_freedom'>Freedom Implant (with injector)</A> (3)<BR>"
// dat += "<A href='byond://?src=\ref[src];buy_item=paralysispen'>Paralysis Pen</A> (3)<BR>" //Note that this goes to the updated sleepypen now.
dat += "<A href='byond://?src=\ref[src];buy_item=sleepypen'>Sleepy Pen</A> (4)<BR>" //Terrible -Pete. //Reinstated -Skymarshal
dat += "<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=imp_exp'>Explosive Implant (with injector)</A> (6)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=detomatix'>Detomatix Cartridge</A> (3)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=bomb'>Plastic Explosives</A> (2)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=powersink'>Power Sink</A> (5)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=space'>Syndicate-made Space Suit (inludes a helmet)</A> (3)<BR>"
dat += "<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=projector'>Chameleon-projector</A> (4)<BR>"
// dat += "<A href='byond://?src=\ref[src];buy_item=cloak'>Cloaking Device</A> (4)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=emag'>Electromagnet Card</A> (3)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=empbox'>5 EMP Grenades</A> (4)<BR>"
dat += "<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=botchat'>Binary Translator</A> (3)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=lawmod'>Hacked AI Module</A> (7)<BR>"
dat += "<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=toolbox'>Syndicate Toolbox</A> (Includes various tools) (1)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=soap'>Syndicate Soap</A> (1)<BR>"
dat += "<A href='byond://?src=\ref[src];buy_item=balloon'>Syndicate Balloon</A> (Useless) (10)<BR>"
dat += "<HR>"
if (src.origradio)
dat += "<A href='byond://?src=\ref[src];lock=1'>Lock</A><BR>"
dat += "<HR>"
dat += "<A href='byond://?src=\ref[src];selfdestruct=1'>Self-Destruct</A>"
user << browse(dat, "window=radio")
onclose(user, "radio")
return
/obj/item/weapon/syndicate_uplink/Topic(href, href_list)
..()
if(!currentUser)
return
if (currentUser.stat || currentUser.restrained())
return
if (!( istype(currentUser, /mob/living/carbon/human)))
return
if ((currentUser.contents.Find(src) || (in_range(src, currentUser) && istype(src.loc, /turf))) || istype(src,/obj/item/weapon/syndicate_uplink/implanted))
currentUser.machine = src
if (href_list["buy_item"])
switch(href_list["buy_item"])
if("revolver")
if (src.uses >= 6)
src.uses -= 6
new /obj/item/weapon/gun/projectile(get_turf(src))
if("revolver_ammo")
if (src.uses >= 2)
src.uses -= 2
new /obj/item/ammo_magazine/a357(get_turf(src))
if("xbow")
if (src.uses >= 5)
src.uses -= 5
new /obj/item/weapon/gun/energy/crossbow(get_turf(src))
if("empbox")
if (src.uses >= 4)
src.uses -= 4
new /obj/item/weapon/storage/emp_kit(get_turf(src))
if("voice")
if (src.uses >= 4)
src.uses -= 4
new /obj/item/clothing/mask/gas/voice(get_turf(src))
if("jump")
if (src.uses >= 3)
src.uses -= 3
new /obj/item/clothing/under/chameleon(get_turf(src))
if("shoes")
if (uses >= 2)
uses -= 2
new /obj/item/clothing/shoes/syndigaloshes(get_turf(src))
if("card")
if (src.uses >= 3)
src.uses -= 3
new /obj/item/weapon/card/id/syndicate(get_turf(src))
if("emag")
if (src.uses >= 3)
src.uses -= 3
new /obj/item/weapon/card/emag(get_turf(src))
if("imp_freedom")
if (src.uses >= 3)
src.uses -= 3
var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(get_turf(src))
O.imp = new /obj/item/weapon/implant/freedom(O)
if("imp_exp")
if (src.uses >= 6)
src.uses -= 6
var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(get_turf(src))
O.imp = new /obj/item/weapon/implant/explosive(O)
O.name = "(BIO-HAZARD) BIO-detpack"
O.update()
if("sleepypen")
if (src.uses >= 4)
src.uses -= 4
new /obj/item/weapon/pen/sleepypen(get_turf(src))
if("paralysispen")
if (src.uses >= 3)
src.uses -= 3
new /obj/item/weapon/pen/paralysis(get_turf(src))
if("projector")
if (src.uses >= 4)
src.uses -= 4
new /obj/item/device/chameleon(get_turf(src))
if("lawmod")
if (src.uses >= 7)
src.uses -= 7
new /obj/item/weapon/aiModule/syndicate(get_turf(src))
/* if("cloak")
if (src.uses >= 4)
if (ticker.mode.config_tag!="nuclear" || \
(input(currentUser,"Spawning a cloak in nuke is generally regarded as entirely dumb, are you sure?") in list("Confirm", "Abort")) == "Confirm" \
)
if (src.uses >= 4)
src.uses -= 4
new /obj/item/weapon/cloaking_device(get_turf(src)) */
if("sword")
if (src.uses >= 4)
src.uses -= 4
new /obj/item/weapon/melee/energy/sword(get_turf(src))
if("thermal")
if (src.uses >= 4)
src.uses -= 4
new /obj/item/clothing/glasses/thermal(get_turf(src))
if("bomb")
if (src.uses >= 2)
src.uses -= 2
new /obj/item/weapon/plastique(get_turf(src))
if("powersink")
if (src.uses >= 5)
src.uses -= 5
new /obj/item/device/powersink(get_turf(src))
if("detomatix")
if (src.uses >= 3)
src.uses -= 3
new /obj/item/weapon/cartridge/syndicate(get_turf(src))
if("space")
if (src.uses >= 3)
src.uses -= 3
new /obj/item/clothing/suit/space/syndicate(get_turf(src))
new /obj/item/clothing/head/helmet/space/syndicate(get_turf(src))
if("botchat")
if (src.uses >= 3)
src.uses -= 3
new /obj/item/device/radio/headset/traitor(get_turf(src))
if("toolbox")
if(uses)
uses--
new /obj/item/weapon/storage/toolbox/syndicate(get_turf(src))
if("soap")
if(uses)
uses--
new /obj/item/weapon/soap/syndie(get_turf(src))
if("balloon")
if (src.uses >= 10)
uses -= 10
new /obj/item/toy/syndicateballoon(get_turf(src))
else if (href_list["lock"] && src.origradio)
// presto chango, a regular radio again! (reset the freq too...)
shutdown_uplink()
return
else if (href_list["selfdestruct"])
src.temp = "<A href='byond://?src=\ref[src];selfdestruct2=1'>Self-Destruct</A>"
else if (href_list["selfdestruct2"])
src.selfdestruct = 1
spawn (100)
explode()
return
else
if (href_list["temp"])
src.temp = null
if (istype(src.loc, /mob))
interact(src.loc)
else
for(var/mob/M in viewers(1, src))
if (M.client)
interact(M)
return
/obj/item/weapon/syndicate_uplink/proc/shutdown_uplink()
if (!src.origradio)
return
var/list/nearby = viewers(1, src)
for(var/mob/M in nearby)
if (M.client && M.machine == src)
M << browse(null, "window=radio")
M.machine = null
var/obj/item/device/radio/T = src.origradio
var/obj/item/weapon/syndicate_uplink/R = src
var/mob/L = src.loc
R.loc = T
T.loc = L
// R.layer = initial(R.layer)
R.layer = 0
if (istype(L))
if (L.client)
L.client.screen -= R
if (L.r_hand == R)
L.u_equip(R)
L.r_hand = T
else
L.u_equip(R)
L.l_hand = T
T.layer = 20
T.set_frequency(initial(T.frequency))
return