mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-26 05:27:01 +01:00
Refactors signallers, assemblies, electropacks (#18689)
* Refactors signalers, assemblies, electropacks * Update code/game/objects/items/devices/radio/electropack.dm Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Charlie <69320440+hal9000PR@users.noreply.github.com> Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com> Co-authored-by: Charlie <69320440+hal9000PR@users.noreply.github.com>
This commit is contained in:
co-authored by
Sirryan2002
Charlie
parent
98a143afb6
commit
aba452f785
+118
-108
@@ -6,6 +6,9 @@
|
||||
item_state = "electronic"
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
|
||||
/// Integrated signaler for captain, science & generic signaler cartridge
|
||||
var/obj/item/assembly/signaler/integ_signaler
|
||||
|
||||
var/obj/item/integrated_radio/radio = null
|
||||
|
||||
var/charges = 0
|
||||
@@ -24,6 +27,7 @@
|
||||
for(var/A in programs)
|
||||
var/datum/data/pda/P = A
|
||||
P.pda = pda
|
||||
|
||||
for(var/A in messenger_plugins)
|
||||
var/datum/data/pda/messenger_plugin/P = A
|
||||
P.pda = pda
|
||||
@@ -32,32 +36,39 @@
|
||||
name = "Power-ON Cartridge"
|
||||
icon_state = "cart-e"
|
||||
programs = list(
|
||||
new/datum/data/pda/app/power,
|
||||
new/datum/data/pda/utility/scanmode/halogen)
|
||||
new /datum/data/pda/app/power,
|
||||
new /datum/data/pda/utility/scanmode/halogen
|
||||
)
|
||||
|
||||
/obj/item/cartridge/atmos
|
||||
name = "BreatheDeep Cartridge"
|
||||
icon_state = "cart-a"
|
||||
programs = list(new/datum/data/pda/utility/scanmode/gas)
|
||||
programs = list(
|
||||
new /datum/data/pda/utility/scanmode/gas
|
||||
)
|
||||
|
||||
/obj/item/cartridge/medical
|
||||
name = "Med-U Cartridge"
|
||||
icon_state = "cart-m"
|
||||
programs = list(
|
||||
new/datum/data/pda/app/crew_records/medical,
|
||||
new/datum/data/pda/utility/scanmode/medical)
|
||||
new /datum/data/pda/app/crew_records/medical,
|
||||
new /datum/data/pda/utility/scanmode/medical
|
||||
)
|
||||
|
||||
/obj/item/cartridge/chemistry
|
||||
name = "ChemWhiz Cartridge"
|
||||
icon_state = "cart-chem"
|
||||
programs = list(new/datum/data/pda/utility/scanmode/reagent)
|
||||
programs = list(
|
||||
new /datum/data/pda/utility/scanmode/reagent
|
||||
)
|
||||
|
||||
/obj/item/cartridge/security
|
||||
name = "R.O.B.U.S.T. Cartridge"
|
||||
icon_state = "cart-s"
|
||||
programs = list(
|
||||
new/datum/data/pda/app/crew_records/security,
|
||||
new/datum/data/pda/app/secbot_control)
|
||||
new /datum/data/pda/app/crew_records/security,
|
||||
new /datum/data/pda/app/secbot_control
|
||||
)
|
||||
|
||||
/obj/item/cartridge/security/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -67,70 +78,75 @@
|
||||
name = "D.E.T.E.C.T. Cartridge"
|
||||
icon_state = "cart-s"
|
||||
programs = list(
|
||||
new/datum/data/pda/app/crew_records/medical,
|
||||
new/datum/data/pda/utility/scanmode/medical,
|
||||
|
||||
new/datum/data/pda/app/crew_records/security)
|
||||
new /datum/data/pda/app/crew_records/medical,
|
||||
new /datum/data/pda/utility/scanmode/medical,
|
||||
new /datum/data/pda/app/crew_records/security
|
||||
)
|
||||
|
||||
|
||||
/obj/item/cartridge/janitor
|
||||
name = "CustodiPRO Cartridge"
|
||||
desc = "The ultimate in clean-room design."
|
||||
icon_state = "cart-j"
|
||||
programs = list(new/datum/data/pda/app/janitor)
|
||||
programs = list(
|
||||
new /datum/data/pda/app/janitor
|
||||
)
|
||||
|
||||
/obj/item/cartridge/lawyer
|
||||
name = "P.R.O.V.E. Cartridge"
|
||||
icon_state = "cart-s"
|
||||
programs = list(new/datum/data/pda/app/crew_records/security)
|
||||
programs = list(
|
||||
new /datum/data/pda/app/crew_records/security
|
||||
)
|
||||
|
||||
/obj/item/cartridge/clown
|
||||
name = "Honkworks 5.0"
|
||||
icon_state = "cart-clown"
|
||||
charges = 5
|
||||
programs = list(new/datum/data/pda/utility/honk)
|
||||
messenger_plugins = list(new/datum/data/pda/messenger_plugin/virus/clown)
|
||||
programs = list(
|
||||
new /datum/data/pda/utility/honk
|
||||
)
|
||||
messenger_plugins = list(
|
||||
new /datum/data/pda/messenger_plugin/virus/clown
|
||||
)
|
||||
|
||||
/obj/item/cartridge/mime
|
||||
name = "Gestur-O 1000"
|
||||
icon_state = "cart-mi"
|
||||
charges = 5
|
||||
messenger_plugins = list(new/datum/data/pda/messenger_plugin/virus/mime)
|
||||
|
||||
/*
|
||||
/obj/item/cartridge/botanist
|
||||
name = "Green Thumb v4.20"
|
||||
icon_state = "cart-b"
|
||||
access_flora = 1
|
||||
*/
|
||||
messenger_plugins = list(
|
||||
new /datum/data/pda/messenger_plugin/virus/mime
|
||||
)
|
||||
|
||||
/obj/item/cartridge/signal
|
||||
name = "generic signaler cartridge"
|
||||
desc = "A data cartridge with an integrated radio signaler module."
|
||||
programs = list(new/datum/data/pda/app/signaller)
|
||||
programs = list(
|
||||
new /datum/data/pda/app/signaller
|
||||
)
|
||||
|
||||
/obj/item/cartridge/signal/Initialize(mapload)
|
||||
. = ..()
|
||||
radio = new /obj/item/integrated_radio/signal(src)
|
||||
integ_signaler = new /obj/item/assembly/signaler(src)
|
||||
|
||||
/obj/item/cartridge/signal/toxins
|
||||
name = "Signal Ace 2"
|
||||
desc = "Complete with integrated radio signaler!"
|
||||
icon_state = "cart-tox"
|
||||
programs = list(
|
||||
new/datum/data/pda/utility/scanmode/gas,
|
||||
|
||||
new/datum/data/pda/utility/scanmode/reagent,
|
||||
|
||||
new/datum/data/pda/app/signaller)
|
||||
new /datum/data/pda/utility/scanmode/gas,
|
||||
new /datum/data/pda/utility/scanmode/reagent,
|
||||
new /datum/data/pda/app/signaller
|
||||
)
|
||||
|
||||
/obj/item/cartridge/quartermaster
|
||||
name = "Space Parts & Space Vendors Cartridge"
|
||||
desc = "Perfect for the Quartermaster on the go!"
|
||||
icon_state = "cart-q"
|
||||
programs = list(
|
||||
new/datum/data/pda/app/supply,
|
||||
new/datum/data/pda/app/mule_control)
|
||||
new /datum/data/pda/app/supply,
|
||||
new /datum/data/pda/app/mule_control
|
||||
)
|
||||
|
||||
/obj/item/cartridge/quartermaster/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -139,20 +155,20 @@
|
||||
/obj/item/cartridge/head
|
||||
name = "Easy-Record DELUXE"
|
||||
icon_state = "cart-h"
|
||||
programs = list(new/datum/data/pda/app/status_display)
|
||||
programs = list(
|
||||
new /datum/data/pda/app/status_display
|
||||
)
|
||||
|
||||
/obj/item/cartridge/hop
|
||||
name = "HumanResources9001"
|
||||
icon_state = "cart-h"
|
||||
programs = list(
|
||||
new/datum/data/pda/app/crew_records/security,
|
||||
|
||||
new/datum/data/pda/app/janitor,
|
||||
|
||||
new/datum/data/pda/app/supply,
|
||||
new/datum/data/pda/app/mule_control,
|
||||
|
||||
new/datum/data/pda/app/status_display)
|
||||
new /datum/data/pda/app/crew_records/security,
|
||||
new /datum/data/pda/app/janitor,
|
||||
new /datum/data/pda/app/supply,
|
||||
new /datum/data/pda/app/mule_control,
|
||||
new /datum/data/pda/app/status_display
|
||||
)
|
||||
|
||||
/obj/item/cartridge/hop/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -162,10 +178,10 @@
|
||||
name = "R.O.B.U.S.T. DELUXE"
|
||||
icon_state = "cart-hos"
|
||||
programs = list(
|
||||
new/datum/data/pda/app/crew_records/security,
|
||||
new/datum/data/pda/app/secbot_control,
|
||||
|
||||
new/datum/data/pda/app/status_display)
|
||||
new /datum/data/pda/app/crew_records/security,
|
||||
new /datum/data/pda/app/secbot_control,
|
||||
new /datum/data/pda/app/status_display
|
||||
)
|
||||
|
||||
/obj/item/cartridge/hos/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -175,99 +191,85 @@
|
||||
name = "Power-On DELUXE"
|
||||
icon_state = "cart-ce"
|
||||
programs = list(
|
||||
new/datum/data/pda/app/power,
|
||||
new/datum/data/pda/utility/scanmode/halogen,
|
||||
|
||||
new/datum/data/pda/utility/scanmode/gas,
|
||||
|
||||
new/datum/data/pda/app/status_display)
|
||||
new /datum/data/pda/app/power,
|
||||
new /datum/data/pda/utility/scanmode/halogen,
|
||||
new /datum/data/pda/utility/scanmode/gas,
|
||||
new /datum/data/pda/app/status_display
|
||||
)
|
||||
|
||||
/obj/item/cartridge/cmo
|
||||
name = "Med-U DELUXE"
|
||||
icon_state = "cart-cmo"
|
||||
programs = list(
|
||||
new/datum/data/pda/app/crew_records/medical,
|
||||
new/datum/data/pda/utility/scanmode/medical,
|
||||
|
||||
new/datum/data/pda/utility/scanmode/reagent,
|
||||
|
||||
new/datum/data/pda/app/status_display)
|
||||
new /datum/data/pda/app/crew_records/medical,
|
||||
new /datum/data/pda/utility/scanmode/medical,
|
||||
new /datum/data/pda/utility/scanmode/reagent,
|
||||
new /datum/data/pda/app/status_display
|
||||
)
|
||||
|
||||
/obj/item/cartridge/rd
|
||||
name = "Signal Ace DELUXE"
|
||||
icon_state = "cart-rd"
|
||||
programs = list(
|
||||
new/datum/data/pda/utility/scanmode/gas,
|
||||
|
||||
new/datum/data/pda/utility/scanmode/reagent,
|
||||
|
||||
new/datum/data/pda/app/signaller,
|
||||
|
||||
new/datum/data/pda/app/status_display)
|
||||
new /datum/data/pda/utility/scanmode/gas,
|
||||
new /datum/data/pda/utility/scanmode/reagent,
|
||||
new /datum/data/pda/app/signaller,
|
||||
new /datum/data/pda/app/status_display
|
||||
)
|
||||
|
||||
/obj/item/cartridge/rd/Initialize(mapload)
|
||||
. = ..()
|
||||
radio = new /obj/item/integrated_radio/signal(src)
|
||||
integ_signaler = new /obj/item/assembly/signaler(src)
|
||||
|
||||
/obj/item/cartridge/captain
|
||||
name = "Value-PAK Cartridge"
|
||||
desc = "Now with 200% more value!"
|
||||
icon_state = "cart-c"
|
||||
programs = list(
|
||||
new/datum/data/pda/app/power,
|
||||
new/datum/data/pda/utility/scanmode/halogen,
|
||||
|
||||
new/datum/data/pda/utility/scanmode/gas,
|
||||
|
||||
new/datum/data/pda/app/crew_records/medical,
|
||||
new/datum/data/pda/utility/scanmode/medical,
|
||||
|
||||
new/datum/data/pda/utility/scanmode/reagent,
|
||||
|
||||
new/datum/data/pda/app/crew_records/security,
|
||||
new/datum/data/pda/app/secbot_control,
|
||||
|
||||
new/datum/data/pda/app/janitor,
|
||||
|
||||
new/datum/data/pda/app/supply,
|
||||
|
||||
new/datum/data/pda/app/status_display)
|
||||
new /datum/data/pda/app/power,
|
||||
new /datum/data/pda/utility/scanmode/halogen,
|
||||
new /datum/data/pda/utility/scanmode/gas,
|
||||
new /datum/data/pda/app/crew_records/medical,
|
||||
new /datum/data/pda/utility/scanmode/medical,
|
||||
new /datum/data/pda/utility/scanmode/reagent,
|
||||
new /datum/data/pda/app/crew_records/security,
|
||||
new /datum/data/pda/app/secbot_control,
|
||||
new /datum/data/pda/app/janitor,
|
||||
new /datum/data/pda/app/supply,
|
||||
new /datum/data/pda/app/status_display,
|
||||
new /datum/data/pda/app/signaller
|
||||
)
|
||||
|
||||
/obj/item/cartridge/captain/Initialize(mapload)
|
||||
. = ..()
|
||||
radio = new /obj/item/integrated_radio/beepsky(src)
|
||||
integ_signaler = new /obj/item/assembly/signaler(src)
|
||||
|
||||
/obj/item/cartridge/supervisor
|
||||
name = "Easy-Record DELUXE"
|
||||
icon_state = "cart-h"
|
||||
programs = list(
|
||||
new/datum/data/pda/app/crew_records/security,
|
||||
|
||||
new/datum/data/pda/app/status_display)
|
||||
new /datum/data/pda/app/crew_records/security,
|
||||
new /datum/data/pda/app/status_display
|
||||
)
|
||||
|
||||
/obj/item/cartridge/centcom
|
||||
name = "Value-PAK Cartridge"
|
||||
desc = "Now with 200% more value!"
|
||||
icon_state = "cart-c"
|
||||
programs = list(
|
||||
new/datum/data/pda/app/power,
|
||||
new/datum/data/pda/utility/scanmode/halogen,
|
||||
|
||||
new/datum/data/pda/utility/scanmode/gas,
|
||||
|
||||
new/datum/data/pda/app/crew_records/medical,
|
||||
new/datum/data/pda/utility/scanmode/medical,
|
||||
|
||||
new/datum/data/pda/utility/scanmode/reagent,
|
||||
|
||||
new/datum/data/pda/app/crew_records/security,
|
||||
new/datum/data/pda/app/secbot_control,
|
||||
|
||||
new/datum/data/pda/app/janitor,
|
||||
|
||||
new/datum/data/pda/app/supply,
|
||||
|
||||
new/datum/data/pda/app/status_display)
|
||||
new /datum/data/pda/app/power,
|
||||
new /datum/data/pda/utility/scanmode/halogen,
|
||||
new /datum/data/pda/utility/scanmode/gas,
|
||||
new /datum/data/pda/app/crew_records/medical,
|
||||
new /datum/data/pda/utility/scanmode/medical,
|
||||
new /datum/data/pda/utility/scanmode/reagent,
|
||||
new /datum/data/pda/app/crew_records/security,
|
||||
new /datum/data/pda/app/secbot_control,
|
||||
new /datum/data/pda/app/janitor,
|
||||
new /datum/data/pda/app/supply,
|
||||
new /datum/data/pda/app/status_display
|
||||
)
|
||||
|
||||
/obj/item/cartridge/centcom/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -283,7 +285,9 @@
|
||||
name = "Nuclear Agent Detomatix Cartridge"
|
||||
desc = "The same reliable Detomatix program except with the added ability of remotely toggling your nuclear shuttle airlock from your PDA"
|
||||
var/initial_remote_door_id = "smindicate" //Make sure this matches the syndicate shuttle's shield/door id!! //don't ask about the name, testing.
|
||||
programs = list(new/datum/data/pda/utility/toggle_door)
|
||||
programs = list(
|
||||
new /datum/data/pda/utility/toggle_door
|
||||
)
|
||||
|
||||
/obj/item/cartridge/syndicate/nuclear/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -296,13 +300,17 @@
|
||||
icon_state = "cart"
|
||||
charges = 5
|
||||
var/telecrystals = 0
|
||||
messenger_plugins = list(new/datum/data/pda/messenger_plugin/virus/frame)
|
||||
messenger_plugins = list(
|
||||
new /datum/data/pda/messenger_plugin/virus/frame
|
||||
)
|
||||
|
||||
/obj/item/cartridge/mob_hunt_game
|
||||
name = "Nano-Mob Hunter GO! Cartridge"
|
||||
desc = "The hit new PDA game that lets you track down and capture your favorite Nano-Mobs living in your world!"
|
||||
icon_state = "cart-eye"
|
||||
programs = list(new/datum/data/pda/app/mob_hunter_game)
|
||||
programs = list(
|
||||
new /datum/data/pda/app/mob_hunter_game
|
||||
)
|
||||
|
||||
/obj/item/cartridge/mob_hunt_game/detailed_examine_antag()
|
||||
if(emagged)
|
||||
@@ -312,11 +320,13 @@
|
||||
if(istype(O, /obj/item/nanomob_card))
|
||||
var/obj/item/nanomob_card/card = O
|
||||
var/datum/data/pda/app/mob_hunter_game/my_game = programs[1]
|
||||
|
||||
if(my_game.register_capture(card.mob_data))
|
||||
to_chat(user, "<span class='notice'>Transfer successful!</span>")
|
||||
qdel(card)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Transfer failed. Could not read mob data from card.</span>")
|
||||
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
@@ -68,10 +68,10 @@
|
||||
category = "Utilities"
|
||||
|
||||
/datum/data/pda/app/signaller/update_ui(mob/user as mob, list/data)
|
||||
if(pda.cartridge && istype(pda.cartridge.radio, /obj/item/integrated_radio/signal))
|
||||
var/obj/item/integrated_radio/signal/R = pda.cartridge.radio
|
||||
data["frequency"] = R.frequency
|
||||
data["code"] = R.code
|
||||
if(pda?.cartridge?.integ_signaler)
|
||||
var/obj/item/assembly/signaler/S = pda.cartridge.integ_signaler // Simpler access
|
||||
data["frequency"] = S.frequency
|
||||
data["code"] = S.code
|
||||
data["minFrequency"] = PUBLIC_LOW_FREQ
|
||||
data["maxFrequency"] = PUBLIC_HIGH_FREQ
|
||||
|
||||
@@ -84,20 +84,18 @@
|
||||
if(!pda.silent)
|
||||
playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE)
|
||||
|
||||
if(pda.cartridge && istype(pda.cartridge.radio, /obj/item/integrated_radio/signal))
|
||||
var/obj/item/integrated_radio/signal/R = pda.cartridge.radio
|
||||
if(pda?.cartridge?.integ_signaler)
|
||||
var/obj/item/assembly/signaler/S = pda.cartridge.integ_signaler // Simpler access
|
||||
|
||||
switch(action)
|
||||
if("signal")
|
||||
spawn(0)
|
||||
R.send_signal("ACTIVATE")
|
||||
S.activate()
|
||||
|
||||
if("freq")
|
||||
var/new_frequency = sanitize_frequency(text2num(params["freq"]) * 10)
|
||||
R.set_frequency(new_frequency)
|
||||
S.frequency = sanitize_frequency(text2num(params["freq"]) * 10)
|
||||
|
||||
if("code")
|
||||
R.code = clamp(text2num(params["code"]), 1, 100)
|
||||
S.code = clamp(text2num(params["code"]), 1, 100)
|
||||
|
||||
/datum/data/pda/app/power
|
||||
name = "Power Monitor"
|
||||
|
||||
@@ -143,54 +143,3 @@
|
||||
post_signal(control_freq, "command", "autopick", "active", active, "value", 1, s_filter = RADIO_MULEBOT)
|
||||
|
||||
post_signal(control_freq, "command", "bot_status", "active", active, s_filter = RADIO_MULEBOT)
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Radio Cartridge, essentially a signaler.
|
||||
*/
|
||||
|
||||
|
||||
/obj/item/integrated_radio/signal
|
||||
var/frequency = RSD_FREQ
|
||||
var/code = 30.0
|
||||
var/last_transmission
|
||||
var/datum/radio_frequency/radio_connection
|
||||
|
||||
/obj/item/integrated_radio/signal/Destroy()
|
||||
if(SSradio)
|
||||
SSradio.remove_object(src, frequency)
|
||||
radio_connection = null
|
||||
return ..()
|
||||
|
||||
/obj/item/integrated_radio/signal/Initialize(mapload)
|
||||
. = ..()
|
||||
if(!SSradio)
|
||||
return
|
||||
if(src.frequency < PUBLIC_LOW_FREQ || src.frequency > PUBLIC_HIGH_FREQ)
|
||||
src.frequency = sanitize_frequency(src.frequency)
|
||||
|
||||
set_frequency(frequency)
|
||||
|
||||
/obj/item/integrated_radio/signal/proc/set_frequency(new_frequency)
|
||||
SSradio.remove_object(src, frequency)
|
||||
frequency = new_frequency
|
||||
radio_connection = SSradio.add_object(src, frequency)
|
||||
|
||||
/obj/item/integrated_radio/signal/proc/send_signal(message="ACTIVATE")
|
||||
|
||||
if(last_transmission && world.time < (last_transmission + 5))
|
||||
return
|
||||
last_transmission = world.time
|
||||
|
||||
var/time = time2text(world.realtime,"hh:mm:ss")
|
||||
var/turf/T = get_turf(src)
|
||||
GLOB.lastsignalers.Add("[time] <B>:</B> [usr.key] used [src] @ location ([T.x],[T.y],[T.z]) <B>:</B> [format_frequency(frequency)]/[code]")
|
||||
|
||||
var/datum/signal/signal = new
|
||||
signal.source = src
|
||||
signal.encryption = code
|
||||
signal.data["message"] = message
|
||||
|
||||
spawn(0)
|
||||
radio_connection.post_signal(src, signal)
|
||||
|
||||
Reference in New Issue
Block a user