mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-09 16:12:17 +00:00
631 lines
18 KiB
Plaintext
631 lines
18 KiB
Plaintext
var/list/command_cartridges = list(
|
|
/obj/item/weapon/cartridge/captain,
|
|
/obj/item/weapon/cartridge/hop,
|
|
/obj/item/weapon/cartridge/hos,
|
|
/obj/item/weapon/cartridge/ce,
|
|
/obj/item/weapon/cartridge/rd,
|
|
/obj/item/weapon/cartridge/cmo,
|
|
/obj/item/weapon/cartridge/head,
|
|
/obj/item/weapon/cartridge/lawyer // Internal Affaris,
|
|
)
|
|
|
|
var/list/security_cartridges = list(
|
|
/obj/item/weapon/cartridge/security,
|
|
/obj/item/weapon/cartridge/detective,
|
|
/obj/item/weapon/cartridge/hos
|
|
)
|
|
|
|
var/list/engineering_cartridges = list(
|
|
/obj/item/weapon/cartridge/engineering,
|
|
/obj/item/weapon/cartridge/atmos,
|
|
/obj/item/weapon/cartridge/ce
|
|
)
|
|
|
|
var/list/medical_cartridges = list(
|
|
/obj/item/weapon/cartridge/medical,
|
|
/obj/item/weapon/cartridge/chemistry,
|
|
/obj/item/weapon/cartridge/cmo
|
|
)
|
|
|
|
var/list/research_cartridges = list(
|
|
/obj/item/weapon/cartridge/signal/science,
|
|
/obj/item/weapon/cartridge/rd
|
|
)
|
|
|
|
var/list/cargo_cartridges = list(
|
|
/obj/item/weapon/cartridge/quartermaster, // This also covers cargo-techs, apparently,
|
|
/obj/item/weapon/cartridge/miner,
|
|
/obj/item/weapon/cartridge/hop
|
|
)
|
|
|
|
var/list/civilian_cartridges = list(
|
|
/obj/item/weapon/cartridge/janitor,
|
|
/obj/item/weapon/cartridge/service,
|
|
/obj/item/weapon/cartridge/hop
|
|
)
|
|
|
|
/obj/item/weapon/cartridge
|
|
name = "generic cartridge"
|
|
desc = "A data cartridge for portable microcomputers."
|
|
icon = 'icons/obj/pda.dmi'
|
|
icon_state = "cart"
|
|
item_state = "electronic"
|
|
w_class = ITEMSIZE_TINY
|
|
drop_sound = 'sound/items/drop/component.ogg'
|
|
pickup_sound = 'sound/items/pickup/component.ogg'
|
|
|
|
var/obj/item/radio/integrated/radio = null
|
|
var/access_security = 0
|
|
var/access_engine = 0
|
|
var/access_atmos = 0
|
|
var/access_medical = 0
|
|
var/access_clown = 0
|
|
var/access_mime = 0
|
|
var/access_janitor = 0
|
|
// var/access_flora = 0
|
|
var/access_reagent_scanner = 0
|
|
var/access_remote_door = 0 // Control some blast doors remotely!!
|
|
var/remote_door_id = ""
|
|
var/access_status_display = 0
|
|
var/access_quartermaster = 0
|
|
var/access_detonate_pda = 0
|
|
var/access_hydroponics = 0
|
|
var/charges = 0
|
|
var/mode = null
|
|
var/menu
|
|
var/datum/data/record/active1 = null //General
|
|
var/datum/data/record/active2 = null //Medical
|
|
var/datum/data/record/active3 = null //Security
|
|
var/selected_sensor = null // Power Sensor
|
|
var/message1 // used for status_displays
|
|
var/message2
|
|
var/list/stored_data = list()
|
|
|
|
/obj/item/weapon/cartridge/Destroy()
|
|
QDEL_NULL(radio)
|
|
return ..()
|
|
|
|
/obj/item/weapon/cartridge/engineering
|
|
name = "\improper Power-ON cartridge"
|
|
icon_state = "cart-e"
|
|
access_engine = 1
|
|
|
|
/obj/item/weapon/cartridge/atmos
|
|
name = "\improper BreatheDeep cartridge"
|
|
icon_state = "cart-a"
|
|
access_atmos = 1
|
|
|
|
/obj/item/weapon/cartridge/medical
|
|
name = "\improper Med-U cartridge"
|
|
icon_state = "cart-m"
|
|
access_medical = 1
|
|
|
|
/obj/item/weapon/cartridge/chemistry
|
|
name = "\improper ChemWhiz cartridge"
|
|
icon_state = "cart-chem"
|
|
access_reagent_scanner = 1
|
|
access_medical = 1
|
|
|
|
/obj/item/weapon/cartridge/security
|
|
name = "\improper R.O.B.U.S.T. cartridge"
|
|
icon_state = "cart-s"
|
|
access_security = 1
|
|
|
|
/obj/item/weapon/cartridge/security/Initialize()
|
|
radio = new /obj/item/radio/integrated/beepsky(src)
|
|
. = ..()
|
|
|
|
/obj/item/weapon/cartridge/detective
|
|
name = "\improper D.E.T.E.C.T. cartridge"
|
|
icon_state = "cart-s"
|
|
access_security = 1
|
|
access_medical = 1
|
|
|
|
|
|
/obj/item/weapon/cartridge/janitor
|
|
name = "\improper CustodiPRO cartridge"
|
|
desc = "The ultimate in clean-room design."
|
|
icon_state = "cart-j"
|
|
access_janitor = 1
|
|
|
|
/obj/item/weapon/cartridge/lawyer
|
|
name = "\improper P.R.O.V.E. cartridge"
|
|
icon_state = "cart-s"
|
|
access_security = 1
|
|
|
|
/obj/item/weapon/cartridge/clown
|
|
name = "\improper Honkworks 5.0 cartridge"
|
|
icon_state = "cart-clown"
|
|
access_clown = 1
|
|
charges = 5
|
|
|
|
/obj/item/weapon/cartridge/mime
|
|
name = "\improper Gestur-O 1000 cartridge"
|
|
icon_state = "cart-mi"
|
|
access_mime = 1
|
|
charges = 5
|
|
/*
|
|
/obj/item/weapon/cartridge/botanist
|
|
name = "Green Thumb v4.20"
|
|
icon_state = "cart-b"
|
|
access_flora = 1
|
|
*/
|
|
|
|
/obj/item/weapon/cartridge/service
|
|
name = "\improper Serv-U Pro cartridge"
|
|
desc = "A data cartridge designed to serve YOU!"
|
|
|
|
/obj/item/weapon/cartridge/signal
|
|
name = "generic signaler cartridge"
|
|
desc = "A data cartridge with an integrated radio signaler module."
|
|
var/qdeled = 0
|
|
|
|
/obj/item/weapon/cartridge/signal/science
|
|
name = "\improper Signal Ace 2 cartridge"
|
|
desc = "Complete with integrated radio signaler!"
|
|
icon_state = "cart-tox"
|
|
access_reagent_scanner = 1
|
|
access_atmos = 1
|
|
|
|
/obj/item/weapon/cartridge/signal/Initialize()
|
|
radio = new /obj/item/radio/integrated/signal(src)
|
|
. = ..()
|
|
|
|
/obj/item/weapon/cartridge/quartermaster
|
|
name = "\improper Space Parts & Space Vendors cartridge"
|
|
desc = "Perfect for the Quartermaster on the go!"
|
|
icon_state = "cart-q"
|
|
access_quartermaster = 1
|
|
|
|
/obj/item/weapon/cartridge/miner
|
|
name = "\improper Drill-Jockey 4.5 cartridge"
|
|
desc = "It's covered in some sort of sand."
|
|
icon_state = "cart-q"
|
|
|
|
/obj/item/weapon/cartridge/head
|
|
name = "\improper Easy-Record DELUXE cartridge"
|
|
icon_state = "cart-h"
|
|
access_status_display = 1
|
|
|
|
/obj/item/weapon/cartridge/hop
|
|
name = "\improper HumanResources9001 cartridge"
|
|
icon_state = "cart-h"
|
|
access_status_display = 1
|
|
access_quartermaster = 1
|
|
access_janitor = 1
|
|
access_security = 1
|
|
|
|
/obj/item/weapon/cartridge/hos
|
|
name = "\improper R.O.B.U.S.T. DELUXE cartridge"
|
|
icon_state = "cart-hos"
|
|
access_status_display = 1
|
|
access_security = 1
|
|
|
|
/obj/item/weapon/cartridge/hos/Initialize()
|
|
radio = new /obj/item/radio/integrated/beepsky(src)
|
|
. = ..()
|
|
|
|
/obj/item/weapon/cartridge/ce
|
|
name = "\improper Power-On DELUXE cartridge"
|
|
icon_state = "cart-ce"
|
|
access_status_display = 1
|
|
access_engine = 1
|
|
access_atmos = 1
|
|
|
|
/obj/item/weapon/cartridge/cmo
|
|
name = "\improper Med-U DELUXE cartridge"
|
|
icon_state = "cart-cmo"
|
|
access_status_display = 1
|
|
access_reagent_scanner = 1
|
|
access_medical = 1
|
|
|
|
/obj/item/weapon/cartridge/rd
|
|
name = "\improper Signal Ace DELUXE cartridge"
|
|
icon_state = "cart-rd"
|
|
access_status_display = 1
|
|
access_reagent_scanner = 1
|
|
access_atmos = 1
|
|
|
|
/obj/item/weapon/cartridge/rd/Initialize()
|
|
radio = new /obj/item/radio/integrated/signal(src)
|
|
. = ..()
|
|
|
|
/obj/item/weapon/cartridge/captain
|
|
name = "\improper Value-PAK cartridge"
|
|
desc = "Now with 200% more value!"
|
|
icon_state = "cart-c"
|
|
access_quartermaster = 1
|
|
access_janitor = 1
|
|
access_engine = 1
|
|
access_security = 1
|
|
access_medical = 1
|
|
access_reagent_scanner = 1
|
|
access_status_display = 1
|
|
access_atmos = 1
|
|
|
|
/obj/item/weapon/cartridge/syndicate
|
|
name = "\improper Detomatix cartridge"
|
|
icon_state = "cart"
|
|
access_remote_door = 1
|
|
access_detonate_pda = 1
|
|
remote_door_id = "smindicate" //Make sure this matches the syndicate shuttle's shield/door id!! //don't ask about the name, testing.
|
|
charges = 4
|
|
|
|
/obj/item/weapon/cartridge/proc/post_status(var/command, var/data1, var/data2)
|
|
|
|
var/datum/radio_frequency/frequency = radio_controller.return_frequency(1435)
|
|
if(!frequency) return
|
|
|
|
var/datum/signal/status_signal = new
|
|
status_signal.source = src
|
|
status_signal.transmission_method = TRANSMISSION_RADIO
|
|
status_signal.data["command"] = command
|
|
|
|
switch(command)
|
|
if("message")
|
|
status_signal.data["msg1"] = data1
|
|
status_signal.data["msg2"] = data2
|
|
if(loc)
|
|
var/obj/item/PDA = loc
|
|
var/mob/user = PDA.fingerprintslast
|
|
log_admin("STATUS: [user] set status screen with [PDA]. Message: [data1] [data2]")
|
|
message_admins("STATUS: [user] set status screen with [PDA]. Message: [data1] [data2]")
|
|
|
|
if("alert")
|
|
status_signal.data["picture_state"] = data1
|
|
|
|
frequency.post_signal(src, status_signal)
|
|
|
|
|
|
/*
|
|
This generates the nano values of the cart menus.
|
|
Because we close the UI when we insert a new cart
|
|
we don't have to worry about null values on items
|
|
the user can't access. Well, unless they are href hacking.
|
|
But in that case their UI will just lock up.
|
|
*/
|
|
|
|
|
|
/obj/item/weapon/cartridge/proc/create_NanoUI_values(mob/user as mob)
|
|
var/values[0]
|
|
|
|
/* Signaler (Mode: 40) */
|
|
|
|
|
|
if(istype(radio,/obj/item/radio/integrated/signal) && (mode==40))
|
|
var/obj/item/radio/integrated/signal/R = radio
|
|
values["signal_freq"] = format_frequency(R.frequency)
|
|
values["signal_code"] = R.code
|
|
|
|
|
|
/* Station Display (Mode: 42) */
|
|
|
|
if(mode==42)
|
|
values["message1"] = message1 ? message1 : "(none)"
|
|
values["message2"] = message2 ? message2 : "(none)"
|
|
|
|
|
|
|
|
/* Power Monitor (Mode: 43 / 433) */
|
|
|
|
if(mode==43 || mode==433)
|
|
var/list/sensors = list()
|
|
var/obj/machinery/power/sensor/MS = null
|
|
var/my_z = get_z(user)
|
|
var/list/levels = using_map.get_map_levels(my_z)
|
|
|
|
for(var/obj/machinery/power/sensor/S in machines)
|
|
if(!(get_z(S) in levels))
|
|
continue
|
|
sensors.Add(list(list("name_tag" = S.name_tag)))
|
|
if(S.name_tag == selected_sensor)
|
|
MS = S
|
|
values["power_sensors"] = sensors
|
|
if(selected_sensor && MS)
|
|
values["sensor_reading"] = MS.return_reading_data()
|
|
|
|
|
|
/* General Records (Mode: 44 / 441 / 45 / 451) */
|
|
if(mode == 44 || mode == 441 || mode == 45 || mode ==451)
|
|
if(istype(active1, /datum/data/record) && (active1 in data_core.general))
|
|
values["general"] = active1.fields
|
|
values["general_exists"] = 1
|
|
|
|
else
|
|
values["general_exists"] = 0
|
|
|
|
|
|
|
|
/* Medical Records (Mode: 44 / 441) */
|
|
|
|
if(mode == 44 || mode == 441)
|
|
var/medData[0]
|
|
for(var/datum/data/record/R in sortRecord(data_core.general))
|
|
medData[++medData.len] = list(Name = R.fields["name"],"ref" = "\ref[R]")
|
|
values["medical_records"] = medData
|
|
|
|
if(istype(active2, /datum/data/record) && (active2 in data_core.medical))
|
|
values["medical"] = active2.fields
|
|
values["medical_exists"] = 1
|
|
else
|
|
values["medical_exists"] = 0
|
|
|
|
/* Security Records (Mode:45 / 451) */
|
|
|
|
if(mode == 45 || mode == 451)
|
|
var/secData[0]
|
|
for (var/datum/data/record/R in sortRecord(data_core.general))
|
|
secData[++secData.len] = list(Name = R.fields["name"], "ref" = "\ref[R]")
|
|
values["security_records"] = secData
|
|
|
|
if(istype(active3, /datum/data/record) && (active3 in data_core.security))
|
|
values["security"] = active3.fields
|
|
values["security_exists"] = 1
|
|
else
|
|
values["security_exists"] = 0
|
|
|
|
/* Security Bot Control (Mode: 46) */
|
|
|
|
if(mode==46)
|
|
var/botsData[0]
|
|
var/beepskyData[0]
|
|
if(istype(radio,/obj/item/radio/integrated/beepsky))
|
|
var/obj/item/radio/integrated/beepsky/SC = radio
|
|
beepskyData["active"] = SC.active
|
|
if(SC.active && !isnull(SC.botstatus))
|
|
var/area/loca = SC.botstatus["loca"]
|
|
var/loca_name = sanitize(loca.name)
|
|
beepskyData["botstatus"] = list("loca" = loca_name, "mode" = SC.botstatus["mode"])
|
|
else
|
|
beepskyData["botstatus"] = list("loca" = null, "mode" = -1)
|
|
var/botsCount=0
|
|
if(SC.botlist && SC.botlist.len)
|
|
for(var/mob/living/bot/B in SC.botlist)
|
|
botsCount++
|
|
if(B.loc)
|
|
botsData[++botsData.len] = list("Name" = sanitize(B.name), "Location" = sanitize(B.loc.loc.name), "ref" = "\ref[B]")
|
|
|
|
if(!botsData.len)
|
|
botsData[++botsData.len] = list("Name" = "No bots found", "Location" = "Invalid", "ref"= null)
|
|
|
|
beepskyData["bots"] = botsData
|
|
beepskyData["count"] = botsCount
|
|
|
|
else
|
|
beepskyData["active"] = 0
|
|
botsData[++botsData.len] = list("Name" = "No bots found", "Location" = "Invalid", "ref"= null)
|
|
beepskyData["botstatus"] = list("loca" = null, "mode" = null)
|
|
beepskyData["bots"] = botsData
|
|
beepskyData["count"] = 0
|
|
|
|
values["beepsky"] = beepskyData
|
|
|
|
|
|
/* MULEBOT Control (Mode: 48) */
|
|
|
|
if(mode==48)
|
|
var/mulebotsData[0]
|
|
var/count = 0
|
|
|
|
for(var/mob/living/bot/mulebot/M in living_mob_list)
|
|
if(!M.on)
|
|
continue
|
|
++count
|
|
var/muleData[0]
|
|
muleData["name"] = M.suffix
|
|
muleData["location"] = get_area(M)
|
|
muleData["paused"] = M.paused
|
|
muleData["home"] = M.homeName
|
|
muleData["target"] = M.targetName
|
|
muleData["ref"] = "\ref[M]"
|
|
muleData["load"] = M.load ? M.load.name : "Nothing"
|
|
|
|
mulebotsData[++mulebotsData.len] = muleData.Copy()
|
|
|
|
values["mulebotcount"] = count
|
|
values["mulebots"] = mulebotsData
|
|
|
|
|
|
|
|
/* Supply Shuttle Requests Menu (Mode: 47) */
|
|
|
|
if(mode==47)
|
|
var/supplyData[0]
|
|
var/datum/shuttle/autodock/ferry/supply/shuttle = SSsupply.shuttle
|
|
if (shuttle)
|
|
supplyData["shuttle_moving"] = shuttle.has_arrive_time()
|
|
supplyData["shuttle_eta"] = shuttle.eta_minutes()
|
|
supplyData["shuttle_loc"] = shuttle.at_station() ? "Station" : "Dock"
|
|
var/supplyOrderCount = 0
|
|
var/supplyOrderData[0]
|
|
for(var/S in SSsupply.shoppinglist)
|
|
var/datum/supply_order/SO = S
|
|
|
|
supplyOrderData[++supplyOrderData.len] = list("Number" = SO.ordernum, "Name" = html_encode(SO.object.name), "ApprovedBy" = SO.ordered_by, "Comment" = html_encode(SO.comment))
|
|
if(!supplyOrderData.len)
|
|
supplyOrderData[++supplyOrderData.len] = list("Number" = null, "Name" = null, "OrderedBy"=null)
|
|
|
|
supplyData["approved"] = supplyOrderData
|
|
supplyData["approved_count"] = supplyOrderCount
|
|
|
|
var/requestCount = 0
|
|
var/requestData[0]
|
|
for(var/S in SSsupply.order_history)
|
|
var/datum/supply_order/SO = S
|
|
if(SO.status != SUP_ORDER_REQUESTED)
|
|
continue
|
|
|
|
requestCount++
|
|
requestData[++requestData.len] = list("Number" = SO.ordernum, "Name" = html_encode(SO.object.name), "OrderedBy" = SO.ordered_by, "Comment" = html_encode(SO.comment))
|
|
if(!requestData.len)
|
|
requestData[++requestData.len] = list("Number" = null, "Name" = null, "orderedBy" = null, "Comment" = null)
|
|
|
|
supplyData["requests"] = requestData
|
|
supplyData["requests_count"] = requestCount
|
|
|
|
|
|
values["supply"] = supplyData
|
|
|
|
|
|
|
|
/* Janitor Supplies Locator (Mode: 49) */
|
|
if(mode==49)
|
|
var/JaniData[0]
|
|
var/turf/cl = get_turf(src)
|
|
|
|
if(cl)
|
|
JaniData["user_loc"] = list("x" = cl.x, "y" = cl.y)
|
|
else
|
|
JaniData["user_loc"] = list("x" = 0, "y" = 0)
|
|
var/MopData[0]
|
|
for(var/obj/item/weapon/mop/M in all_mops)
|
|
var/turf/ml = get_turf(M)
|
|
if(ml)
|
|
if(ml.z != cl.z)
|
|
continue
|
|
var/direction = get_dir(src, M)
|
|
MopData[++MopData.len] = list ("x" = ml.x, "y" = ml.y, "dir" = uppertext(dir2text(direction)), "status" = M.reagents.total_volume ? "Wet" : "Dry")
|
|
|
|
if(!MopData.len)
|
|
MopData[++MopData.len] = list("x" = 0, "y" = 0, dir=null, status = null)
|
|
|
|
|
|
var/BucketData[0]
|
|
for(var/obj/structure/mopbucket/B in all_mopbuckets)
|
|
var/turf/bl = get_turf(B)
|
|
if(bl)
|
|
if(bl.z != cl.z)
|
|
continue
|
|
var/direction = get_dir(src,B)
|
|
BucketData[++BucketData.len] = list ("x" = bl.x, "y" = bl.y, "dir" = uppertext(dir2text(direction)), "status" = B.reagents.total_volume/100)
|
|
|
|
if(!BucketData.len)
|
|
BucketData[++BucketData.len] = list("x" = 0, "y" = 0, dir=null, status = null)
|
|
|
|
var/CbotData[0]
|
|
for(var/mob/living/bot/cleanbot/B in mob_list)
|
|
var/turf/bl = get_turf(B)
|
|
if(bl)
|
|
if(bl.z != cl.z)
|
|
continue
|
|
var/direction = get_dir(src,B)
|
|
CbotData[++CbotData.len] = list("x" = bl.x, "y" = bl.y, "dir" = uppertext(dir2text(direction)), "status" = B.on ? "Online" : "Offline")
|
|
|
|
|
|
if(!CbotData.len)
|
|
CbotData[++CbotData.len] = list("x" = 0, "y" = 0, dir=null, status = null)
|
|
var/CartData[0]
|
|
for(var/obj/structure/janitorialcart/B in all_janitorial_carts)
|
|
var/turf/bl = get_turf(B)
|
|
if(bl)
|
|
if(bl.z != cl.z)
|
|
continue
|
|
var/direction = get_dir(src,B)
|
|
var/status = "No Bucket"
|
|
if(B.mybucket)
|
|
status = B.mybucket.reagents.total_volume / 100
|
|
CartData[++CartData.len] = list("x" = bl.x, "y" = bl.y, "dir" = uppertext(dir2text(direction)), "status" = status)
|
|
if(!CartData.len)
|
|
CartData[++CartData.len] = list("x" = 0, "y" = 0, dir=null, status = null)
|
|
|
|
|
|
|
|
|
|
JaniData["mops"] = MopData
|
|
JaniData["buckets"] = BucketData
|
|
JaniData["cleanbots"] = CbotData
|
|
JaniData["carts"] = CartData
|
|
values["janitor"] = JaniData
|
|
|
|
return values
|
|
|
|
|
|
|
|
|
|
|
|
/obj/item/weapon/cartridge/Topic(href, href_list)
|
|
..()
|
|
|
|
if (!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
|
|
usr.unset_machine()
|
|
usr << browse(null, "window=pda")
|
|
return
|
|
|
|
|
|
|
|
|
|
switch(href_list["choice"])
|
|
if("Medical Records")
|
|
var/datum/data/record/R = locate(href_list["target"])
|
|
var/datum/data/record/M = locate(href_list["target"])
|
|
loc:mode = 441
|
|
mode = 441
|
|
if (R in data_core.general)
|
|
for (var/datum/data/record/E in data_core.medical)
|
|
if ((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"]))
|
|
M = E
|
|
break
|
|
active1 = R
|
|
active2 = M
|
|
|
|
if("Security Records")
|
|
var/datum/data/record/R = locate(href_list["target"])
|
|
var/datum/data/record/S = locate(href_list["target"])
|
|
loc:mode = 451
|
|
mode = 451
|
|
if (R in data_core.general)
|
|
for (var/datum/data/record/E in data_core.security)
|
|
if ((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"]))
|
|
S = E
|
|
break
|
|
active1 = R
|
|
active3 = S
|
|
|
|
if("Send Signal")
|
|
if(is_jammed(src))
|
|
return
|
|
spawn( 0 )
|
|
radio:send_signal("ACTIVATE")
|
|
return
|
|
|
|
if("Signal Frequency")
|
|
var/new_frequency = sanitize_frequency(radio:frequency + text2num(href_list["sfreq"]))
|
|
radio:set_frequency(new_frequency)
|
|
|
|
if("Signal Code")
|
|
radio:code += text2num(href_list["scode"])
|
|
radio:code = round(radio:code)
|
|
radio:code = min(100, radio:code)
|
|
radio:code = max(1, radio:code)
|
|
|
|
if("Status")
|
|
switch(href_list["statdisp"])
|
|
if("message")
|
|
post_status("message", message1, message2)
|
|
if("alert")
|
|
post_status("alert", href_list["alert"])
|
|
if("setmsg1")
|
|
message1 = reject_bad_text(sanitize(input("Line 1", "Enter Message Text", message1) as text|null, 40), 40)
|
|
updateSelfDialog()
|
|
if("setmsg2")
|
|
message2 = reject_bad_text(sanitize(input("Line 2", "Enter Message Text", message2) as text|null, 40), 40)
|
|
updateSelfDialog()
|
|
else
|
|
post_status(href_list["statdisp"])
|
|
|
|
if("Power Select")
|
|
selected_sensor = href_list["target"]
|
|
loc:mode = 433
|
|
mode = 433
|
|
if("Power Clear")
|
|
selected_sensor = null
|
|
loc:mode = 43
|
|
mode = 43
|
|
|
|
if("MULEbot")
|
|
var/mob/living/bot/mulebot/M = locate(href_list["ref"])
|
|
if(istype(M))
|
|
M.obeyCommand(href_list["command"])
|
|
|
|
return 1
|