mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Subspace Jammer now blocks signalers, suit sensors, lasts longer
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
blacklisted = 1
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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!
|
||||
|
||||
|
||||
@@ -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("<font color='red'>[usr] moves their finger over [src]'s signal button...</font>")
|
||||
|
||||
|
||||
36
html/changelogs/Anewbe - Jamming.yml
Normal file
36
html/changelogs/Anewbe - Jamming.yml
Normal file
@@ -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."
|
||||
Reference in New Issue
Block a user