Merge pull request #191 from SkyMarshal/master

Nuclear revamp, full details in description.
This commit is contained in:
Tastyfish
2012-01-02 08:18:25 -08:00
15 changed files with 158 additions and 28 deletions
+8
View File
@@ -49,6 +49,7 @@
//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>"
@@ -144,6 +145,13 @@
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("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
@@ -6,12 +6,12 @@
/obj/item/weapon/plastique/afterattack(atom/target as obj|turf, mob/user as mob, flag)
if (!flag)
return
if (istype(target, /turf/unsimulated) || istype(target, /turf/simulated/shuttle) || istype(target, /obj/item/weapon/storage/))
if (istype(target, /turf/unsimulated) || istype(target, /turf/simulated/shuttle) || istype(target, /obj/item/weapon/storage/) || ismob(target))
return
user << "Planting explosives..."
if(ismob(target))
/* if(ismob(target))
user.attack_log += "\[[time_stamp()]\] <font color='red'> [user.real_name] tried planting [name] on [target:real_name] ([target:ckey])</font>"
user.visible_message("\red [user.name] is trying to plant some kind of explosive on [target.name]!")
user.visible_message("\red [user.name] is trying to plant some kind of explosive on [target.name]!") */
if(do_after(user, 50) && in_range(user, target))
user.drop_item()
target = target
@@ -45,8 +45,9 @@
implanted(mob/source as mob)
source.mind.store_memory("Uplink implant can be activated by using the [activation_emote] emote, <B>say *[activation_emote]</B> to attempt to activate.", 0, 0)
source << "The implanted uplink implant can be activated by using the [activation_emote] emote, <B>say *[activation_emote]</B> to attempt to activate."
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("Uplink 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 uplink implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate."
return
@@ -82,11 +83,15 @@ Implant Specifics:<BR>"}
return dat
/obj/item/weapon/implant/explosive
//Nuke Agent Explosive
/obj/item/weapon/implant/dexplosive
name = "explosive"
desc = "And boom goes the weasel."
var/activation_emote = "deathgasp"
var/coded = 0
New()
verbs += /obj/item/weapon/implant/dexplosive/proc/set_emote
get_data()
var/dat = {"
@@ -103,7 +108,7 @@ Implant Specifics:<BR>"}
trigger(emote, source as mob)
if(emote == "deathgasp")
if(emote == activation_emote)
src.activate("death")
return
@@ -114,6 +119,20 @@ Implant Specifics:<BR>"}
if(src.imp_in)
src.imp_in.gib()
proc/set_emote()
set name = "Set Emote"
set category = "Object"
set src in usr
if(coded != 0)
usr << "You've already set up your implant!"
return
activation_emote = input("Choose activation emote:") in list("deathgasp","blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
usr.mind.store_memory("Explosive implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate.", 0, 0)
usr << "The implanted explosive implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate."
coded = 1
verbs -= /obj/item/weapon/implant/dexplosive/proc/set_emote
return
/obj/item/weapon/implant/chem
@@ -195,3 +214,40 @@ the implant may become unstable and either pre-maturely inject the subject or si
ticker.mode:remove_revolutionary(H.mind)
H << "\blue You feel a surge of loyalty towards NanoTrasen."
return
//BS12 Explosive
/obj/item/weapon/implant/explosive
name = "explosive"
desc = "And boom goes the weasel."
var/phrase = "die"
get_data()
var/dat = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> Robust Corp RX-78 Intimidation Class Implant<BR>
<b>Life:</b> Activates upon codephrase.<BR>
<b>Important Notes:</b> Explodes<BR>
<HR>
<b>Implant Details:</b><BR>
<b>Function:</b> Contains a compact, electrically detonated explosive that detonates upon receiving a specially encoded signal or upon host death.<BR>
<b>Special Features:</b> Explodes<BR>
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
return dat
hear_talk(M as mob, var/msg)
if(findtext(msg,phrase))
if(istype(loc, /mob/))
var/mob/T = loc
T.gib()
explosion(find_loc(src), 1, 3, 4, 6, 3)
var/turf/t = find_loc(src)
if(t)
t.hotspot_expose(3500,125)
del(src)
implanted(mob/source as mob)
phrase = input("Choose activation phrase:") as text
usr.mind.store_memory("Explosive implant in [source] can be activated by saying something containing the phrase ''[src.phrase]'', <B>say [src.phrase]</B> to attempt to activate.", 0, 0)
usr << "The implanted explosive implant in [source] can be activated by saying something containing the phrase ''[src.phrase]'', <B>say [src.phrase]</B> to attempt to activate."
@@ -79,7 +79,7 @@
/obj/item/weapon/implantcase/explosive
name = "Glass Case- 'Explosive'"
name = "Glass Case- '(BIO-HAZARD) BIO-detpack'"
desc = "A case containing an explosive implant."
icon = 'items.dmi'
icon_state = "implantcase-r"
@@ -25,7 +25,30 @@
return
if (user && src.imp)
for (var/mob/O in viewers(M, null))
O.show_message("\red [M] has been implanted by [user].", 1)
if (M != user)
O.show_message(text("\red <B>[] is trying to implant [] with [src.name]!</B>", user, M), 1)
else
O.show_message("\red <B>[user] is trying to inject themselves with [src.name]!</B>", 1)
if(!do_mob(user, M,60)) return
if(istype(M, /mob/living/carbon/human))
var/picked = 0
var/mob/living/carbon/human/T = M
var/list/datum/organ/external/E = T.organs
while(picked == 0 && E.len > 0)
var/datum/organ/external/O = pick(E)
E -= O
if(!E.implant)
O.implant = src.imp
picked = 1
if(picked == 0)
for (var/mob/O in viewers(M, null))
O.show_message(text("[user.name] can't find anywhere to implant [M.name]"), 1)
return
for (var/mob/O in viewers(M, null))
if (M != user)
O.show_message(text("\red [] implants [] with [src.name]!", user, M), 1)
else
O.show_message("\red [user] implants themself with [src.name]!", 1)
M.attack_log += text("\[[time_stamp()]\] <font color='orange'> Implanted with [src.name] ([src.imp.name]) by [user.name] ([user.ckey])</font>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] ([src.imp.name]) to implant [M.name] ([M.ckey])</font>")
src.imp.loc = M
@@ -33,7 +56,6 @@
src.imp.implanted = 1
src.imp.implanted(M)
src.imp = null
user.show_message("\red You implanted the implant into [M].")
src.icon_state = "implanter0"
return
@@ -33,6 +33,7 @@
implanted(mob/source as mob)
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."
return
+8 -1
View File
@@ -48,9 +48,9 @@ SYNDICATE UPLINK
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>"
@@ -133,6 +133,13 @@ SYNDICATE UPLINK
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
+5 -3
View File
@@ -259,6 +259,8 @@
freq_text = "Mining"
if(1347)
freq_text = "Cargo"
if(connection.frequency == NUKE_FREQ)
freq_text = "Agent"
//There's probably a way to use the list var of channels in code\game\communications.dm to make the dept channels non-hardcoded, but I wasn't in an experimentive mood. --NEO
if(!freq_text)
@@ -269,6 +271,8 @@
if (display_freq==SYND_FREQ)
part_a = "<span class='syndradio'><span class='name'>"
if (display_freq==NUKE_FREQ)
part_a = "<span class='nukeradio'><span class='name'>"
else if (display_freq==COMM_FREQ)
part_a = "<span class='comradio'><span class='name'>"
else if (display_freq in DEPT_FREQS)
@@ -408,9 +412,7 @@
hear+=M
return hear
/obj/item/device/radio/proc/borg(mob/user as mob, op)
if(!(issilicon(user)))
return
/obj/item/device/radio/proc/config(op)
for (var/ch_name in channels)
radio_controller.remove_object(src, radiochannels[ch_name])
secure_radio_connections = new