From 627cdecf66f7c325664b48f5affcec185e5a3352 Mon Sep 17 00:00:00 2001 From: Neerti Date: Mon, 4 Mar 2019 22:57:51 -0500 Subject: [PATCH 1/2] Subspace Jammer now blocks signalers, suit sensors, lasts longer --- code/datums/repositories/crew.dm | 2 +- code/datums/uplink/tools.dm | 4 +- code/game/objects/items/devices/PDA/cart.dm | 2 + .../objects/items/devices/radio/jammer.dm | 6 ++- code/modules/assembly/signaler.dm | 41 ++++++++++++++----- html/changelogs/Anewbe - Jamming.yml | 36 ++++++++++++++++ 6 files changed, 77 insertions(+), 14 deletions(-) create mode 100644 html/changelogs/Anewbe - Jamming.yml diff --git a/code/datums/repositories/crew.dm b/code/datums/repositories/crew.dm index ae73c98c8df..88ea491e516 100644 --- a/code/datums/repositories/crew.dm +++ b/code/datums/repositories/crew.dm @@ -24,7 +24,7 @@ var/global/datum/repository/crew/crew_repository = new() var/tracked = scan() for(var/obj/item/clothing/under/C in tracked) var/turf/pos = get_turf(C) - if((C) && (C.has_sensor) && (pos) && (pos.z == zLevel) && (C.sensor_mode != SUIT_SENSOR_OFF)) + if((C) && (C.has_sensor) && (pos) && (pos.z == zLevel) && (C.sensor_mode != SUIT_SENSOR_OFF) && !(is_jammed(C))) if(istype(C.loc, /mob/living/carbon/human)) var/mob/living/carbon/human/H = C.loc if(H.w_uniform != C) diff --git a/code/datums/uplink/tools.dm b/code/datums/uplink/tools.dm index 558c922b465..6c340385b09 100644 --- a/code/datums/uplink/tools.dm +++ b/code/datums/uplink/tools.dm @@ -84,7 +84,7 @@ item_cost = 25 path = /obj/item/device/radio_jammer desc = "A device which is capable of disrupting subspace communications, preventing the use of headsets, PDAs, and communicators within \ - a radius of seven meters. It runs off weapon cells, which can be replaced as needed. One cell will last for approximately a minute." + a radius of seven meters. It runs off weapon cells, which can be replaced as needed. One cell will last for approximately ten minutes." /datum/uplink_item/item/tools/emag name = "Cryptographic Sequencer" @@ -132,4 +132,4 @@ name = "Teleporter Circuit Board" item_cost = DEFAULT_TELECRYSTAL_AMOUNT * 1.5 path = /obj/item/weapon/circuitboard/teleporter - blacklisted = 1 \ No newline at end of file + blacklisted = 1 diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index cf91bbef3bf..761f24b7e1f 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -572,6 +572,8 @@ var/list/civilian_cartridges = list( active3 = S if("Send Signal") + if(is_jammed(src)) + return spawn( 0 ) radio:send_signal("ACTIVATE") return diff --git a/code/game/objects/items/devices/radio/jammer.dm b/code/game/objects/items/devices/radio/jammer.dm index b129657d192..d891326d228 100644 --- a/code/game/objects/items/devices/radio/jammer.dm +++ b/code/game/objects/items/devices/radio/jammer.dm @@ -15,7 +15,7 @@ var/global/list/active_radio_jammers = list() /obj/item/device/radio_jammer name = "subspace jammer" - desc = "Primarily for blocking subspace communications, preventing the use of headsets, PDAs, and communicators." + desc = "Primarily for blocking subspace communications, preventing the use of headsets, PDAs, and communicators. Also masks suit sensors." // Added suit sensor jamming icon = 'icons/obj/device.dmi' icon_state = "jammer0" var/active_state = "jammer1" @@ -24,7 +24,11 @@ var/global/list/active_radio_jammers = list() var/on = 0 var/jam_range = 7 var/obj/item/weapon/cell/device/weapon/power_source +<<<<<<< HEAD var/tick_cost = 5 //VOREStation Edit - For the ERPs. +======= + var/tick_cost = 8 // Will last for roughly ten minutes, as process() ticks every 2 seconds. +>>>>>>> 5c5e67d... Merge pull request #5985 from Anewbe/jammer origin_tech = list(TECH_ILLEGAL = 7, TECH_BLUESPACE = 5) //Such technology! Subspace jamming! diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index cd4c253f664..08852c32f58 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -7,7 +7,7 @@ matter = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 200, "waste" = 100) wires = WIRE_RECEIVE | WIRE_PULSE | WIRE_RADIO_PULSE | WIRE_RADIO_RECEIVE - secured = 1 + secured = TRUE var/code = 30 var/frequency = 1457 @@ -15,7 +15,7 @@ var/airlock_wire = null var/datum/wires/connected = null var/datum/radio_frequency/radio_connection - var/deadman = 0 + var/deadman = FALSE /obj/item/device/assembly/signaler/New() ..() @@ -25,13 +25,13 @@ /obj/item/device/assembly/signaler/activate() - if(cooldown > 0) return 0 + if(cooldown > 0) return FALSE cooldown = 2 spawn(10) process_cooldown() signal() - return 1 + return TRUE /obj/item/device/assembly/signaler/update_icon() if(holder) @@ -70,7 +70,8 @@ Code: /obj/item/device/assembly/signaler/Topic(href, href_list, state = deep_inventory_state) - if(..()) return 1 + if(..()) + return TRUE if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) usr << browse(null, "window=radio") @@ -109,7 +110,10 @@ Code: ..() /obj/item/device/assembly/signaler/proc/signal() - if(!radio_connection) return + if(!radio_connection) + return + if(is_jammed(src)) + return var/datum/signal/signal = new signal.source = src @@ -120,19 +124,26 @@ Code: /obj/item/device/assembly/signaler/pulse(var/radio = 0) + if(is_jammed(src)) + return FALSE if(src.connected && src.wires) connected.Pulse(src) else if(holder) holder.process_activation(src, 1, 0) else ..(radio) - return 1 + return TRUE /obj/item/device/assembly/signaler/receive_signal(datum/signal/signal) - if(!signal) return 0 - if(signal.encryption != code) return 0 - if(!(src.wires & WIRE_RADIO_RECEIVE)) return 0 + if(!signal) + return FALSE + if(signal.encryption != code) + return FALSE + if(!(src.wires & WIRE_RADIO_RECEIVE)) + return FALSE + if(is_jammed(src)) + return FALSE pulse(1) if(!holder) @@ -161,8 +172,13 @@ Code: if(!M || !ismob(M)) if(prob(5)) signal() +<<<<<<< HEAD deadman = 0 processing_objects.Remove(src) +======= + deadman = FALSE + STOP_PROCESSING(SSobj, src) +>>>>>>> 5c5e67d... Merge pull request #5985 from Anewbe/jammer else if(prob(5)) M.visible_message("[M]'s finger twitches a bit over [src]'s signal button!") return @@ -171,8 +187,13 @@ Code: set src in usr set name = "Threaten to push the button!" set desc = "BOOOOM!" +<<<<<<< HEAD deadman = 1 processing_objects.Add(src) +======= + deadman = TRUE + START_PROCESSING(SSobj, src) +>>>>>>> 5c5e67d... Merge pull request #5985 from Anewbe/jammer log_and_message_admins("is threatening to trigger a signaler deadman's switch") usr.visible_message("[usr] moves their finger over [src]'s signal button...") diff --git a/html/changelogs/Anewbe - Jamming.yml b/html/changelogs/Anewbe - Jamming.yml new file mode 100644 index 00000000000..1822bb00d09 --- /dev/null +++ b/html/changelogs/Anewbe - Jamming.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Anewbe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "The Subspace Jammer traitor item now lasts about 10 minutes. It now blocks signalers from sending or receiving, and also obscures suit sensors around it." From e47a99824c0483051a57502d383306ebcc21f443 Mon Sep 17 00:00:00 2001 From: Novacat <35587478+Novacat@users.noreply.github.com> Date: Thu, 28 Mar 2019 21:46:37 -0400 Subject: [PATCH 2/2] Update jammer.dm --- code/game/objects/items/devices/radio/jammer.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/game/objects/items/devices/radio/jammer.dm b/code/game/objects/items/devices/radio/jammer.dm index 09026b36d4c..b59101cc663 100644 --- a/code/game/objects/items/devices/radio/jammer.dm +++ b/code/game/objects/items/devices/radio/jammer.dm @@ -24,11 +24,7 @@ var/global/list/active_radio_jammers = list() var/on = 0 var/jam_range = 7 var/obj/item/weapon/cell/device/weapon/power_source -<<<<<<< HEAD var/tick_cost = 5 //VOREStation Edit - For the ERPs. -======= - var/tick_cost = 8 // Will last for roughly ten minutes, as process() ticks every 2 seconds. ->>>>>>> 5c5e67d... Merge pull request #5985 from Anewbe/jammer origin_tech = list(TECH_ILLEGAL = 7, TECH_BLUESPACE = 5) //Such technology! Subspace jamming!