mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-14 08:34:16 +01:00
Merge pull request #191 from SkyMarshal/master
Nuclear revamp, full details in description.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user