mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-13 00:55:20 +01:00
Merge pull request #8841 from GunHog/Bot_Radio_And_Newscasters
Bot fixes and PDA upgrades!
This commit is contained in:
@@ -318,7 +318,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
dat += "<h4>Engineering Functions</h4>"
|
||||
dat += "<ul>"
|
||||
dat += "<li><a href='byond://?src=\ref[src];choice=43'><img src=pda_power.png> Power Monitor</a></li>"
|
||||
if(istype(cartridge.radio, /obj/item/radio/integrated/floorbot))
|
||||
if(cartridge.access_floorbots)
|
||||
dat += "<li><a href='byond://?src=\ref[src];choice=51'><img src=pda_floorbot.png> Floorbot Access</a></li>"
|
||||
dat += "</ul>"
|
||||
if (cartridge.access_medical)
|
||||
@@ -326,7 +326,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
dat += "<ul>"
|
||||
dat += "<li><a href='byond://?src=\ref[src];choice=44'><img src=pda_medical.png> Medical Records</a></li>"
|
||||
dat += "<li><a href='byond://?src=\ref[src];choice=Medical Scan'><img src=pda_scanner.png> [scanmode == 1 ? "Disable" : "Enable"] Medical Scanner</a></li>"
|
||||
if(istype(cartridge.radio, /obj/item/radio/integrated/medbot))
|
||||
if(cartridge.access_medbots)
|
||||
dat += "<li><a href='byond://?src=\ref[src];choice=52'><img src=pda_medbot.png> Medibot Access</a></li>"
|
||||
dat += "</ul>"
|
||||
else
|
||||
@@ -335,7 +335,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
dat += "<h4>Security Functions</h4>"
|
||||
dat += "<ul>"
|
||||
dat += "<li><a href='byond://?src=\ref[src];choice=45'><img src=pda_cuffs.png> Security Records</A></li>"
|
||||
if(istype(cartridge.radio, /obj/item/radio/integrated/beepsky))
|
||||
if(cartridge.access_secbots)
|
||||
dat += "<li><a href='byond://?src=\ref[src];choice=46'><img src=pda_cuffs.png> Security Bot Access</a></li>"
|
||||
dat += "</ul>"
|
||||
else dat += "</ul>"
|
||||
@@ -350,10 +350,12 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
dat += "<h4>Utilities</h4>"
|
||||
dat += "<ul>"
|
||||
if (cartridge)
|
||||
if(cartridge.access_multibots)
|
||||
dat += "<li><a href='byond://?src=\ref[src];choice=54'><img src=pda_medbot.png> Bots Access</a></li>"
|
||||
if (cartridge.access_janitor)
|
||||
dat += "<li><a href='byond://?src=\ref[src];choice=49'><img src=pda_bucket.png> Custodial Locator</a></li>"
|
||||
if(istype(cartridge.radio, /obj/item/radio/integrated/cleanbot))
|
||||
dat += "<li><a href='byond://?src=\ref[src];choice=50'><img src=pda_cleanbot.png> Cleanbot Access</a></li>"
|
||||
if(cartridge.access_cleanbots)
|
||||
dat += "<li><a href='byond://?src=\ref[src];choice=50'><img src=pda_cleanbot.png> Cleanbot Access</a></li>"
|
||||
if (istype(cartridge.radio, /obj/item/radio/integrated/signal))
|
||||
dat += "<li><a href='byond://?src=\ref[src];choice=40'><img src=pda_signaler.png> Signaler System</a></li>"
|
||||
if (cartridge.access_newscaster)
|
||||
|
||||
@@ -23,6 +23,11 @@
|
||||
var/access_status_display = 0
|
||||
var/access_quartermaster = 0
|
||||
var/access_hydroponics = 0
|
||||
var/access_secbots = 0
|
||||
var/access_medbots = 0
|
||||
var/access_floorbots = 0
|
||||
var/access_cleanbots = 0
|
||||
var/access_multibots = 0
|
||||
var/mode = null
|
||||
var/menu
|
||||
var/datum/data/record/active1 = null //General
|
||||
@@ -39,6 +44,7 @@
|
||||
name = "\improper Power-ON cartridge"
|
||||
icon_state = "cart-e"
|
||||
access_engine = 1
|
||||
access_floorbots = 1
|
||||
|
||||
/obj/item/weapon/cartridge/engineering/New()
|
||||
..()
|
||||
@@ -48,6 +54,7 @@
|
||||
name = "\improper BreatheDeep cartridge"
|
||||
icon_state = "cart-a"
|
||||
access_atmos = 1
|
||||
access_floorbots = 1
|
||||
|
||||
/obj/item/weapon/cartridge/atmos/New()
|
||||
..()
|
||||
@@ -57,6 +64,7 @@
|
||||
name = "\improper Med-U cartridge"
|
||||
icon_state = "cart-m"
|
||||
access_medical = 1
|
||||
access_medbots = 1
|
||||
|
||||
/obj/item/weapon/cartridge/medical/New()
|
||||
..()
|
||||
@@ -66,6 +74,7 @@
|
||||
name = "\improper ChemWhiz cartridge"
|
||||
icon_state = "cart-chem"
|
||||
access_reagent_scanner = 1
|
||||
access_medbots = 1
|
||||
|
||||
/obj/item/weapon/cartridge/chemistry/New()
|
||||
..()
|
||||
@@ -75,6 +84,7 @@
|
||||
name = "\improper R.O.B.U.S.T. cartridge"
|
||||
icon_state = "cart-s"
|
||||
access_security = 1
|
||||
access_secbots = 1
|
||||
|
||||
/obj/item/weapon/cartridge/security/New()
|
||||
..()
|
||||
@@ -86,6 +96,7 @@
|
||||
access_security = 1
|
||||
access_medical = 1
|
||||
access_manifest = 1
|
||||
access_secbots = 1
|
||||
|
||||
/obj/item/weapon/cartridge/detective/New()
|
||||
..()
|
||||
@@ -96,6 +107,7 @@
|
||||
desc = "The ultimate in clean-room design."
|
||||
icon_state = "cart-j"
|
||||
access_janitor = 1
|
||||
access_cleanbots = 1
|
||||
|
||||
/obj/item/weapon/cartridge/janitor/New()
|
||||
..()
|
||||
@@ -171,6 +183,7 @@
|
||||
access_quartermaster = 1
|
||||
access_janitor = 1
|
||||
access_security = 1
|
||||
access_newscaster = 1
|
||||
|
||||
/obj/item/weapon/cartridge/hop/New()
|
||||
..()
|
||||
@@ -182,6 +195,7 @@
|
||||
access_manifest = 1
|
||||
access_status_display = 1
|
||||
access_security = 1
|
||||
access_medbots = 1
|
||||
|
||||
/obj/item/weapon/cartridge/hos/New()
|
||||
..()
|
||||
@@ -194,6 +208,7 @@
|
||||
access_status_display = 1
|
||||
access_engine = 1
|
||||
access_atmos = 1
|
||||
access_floorbots = 1
|
||||
|
||||
/obj/item/weapon/cartridge/ce/New()
|
||||
..()
|
||||
@@ -206,6 +221,7 @@
|
||||
access_status_display = 1
|
||||
access_reagent_scanner = 1
|
||||
access_medical = 1
|
||||
access_medbots = 1
|
||||
|
||||
/obj/item/weapon/cartridge/cmo/New()
|
||||
..()
|
||||
@@ -225,7 +241,7 @@
|
||||
|
||||
/obj/item/weapon/cartridge/captain
|
||||
name = "\improper Value-PAK cartridge"
|
||||
desc = "Now with 200% more value!"
|
||||
desc = "Now with 250% more value!"
|
||||
icon_state = "cart-c"
|
||||
access_manifest = 1
|
||||
access_engine = 1
|
||||
@@ -234,10 +250,12 @@
|
||||
access_reagent_scanner = 1
|
||||
access_status_display = 1
|
||||
access_atmos = 1
|
||||
access_newscaster = 1
|
||||
access_multibots = 1
|
||||
|
||||
/obj/item/weapon/cartridge/captain/New()
|
||||
..()
|
||||
radio = new /obj/item/radio/integrated/beepsky(src)
|
||||
radio = new /obj/item/radio/integrated/multi(src)
|
||||
|
||||
/obj/item/weapon/cartridge/syndicate
|
||||
name = "\improper Detomatix cartridge"
|
||||
@@ -346,7 +364,7 @@
|
||||
return menu
|
||||
|
||||
|
||||
/obj/item/weapon/cartridge/proc/generate_menu()
|
||||
/obj/item/weapon/cartridge/proc/generate_menu(mob/user)
|
||||
switch(mode)
|
||||
if(40) //signaller
|
||||
menu = "<h4><img src=pda_signaler.png> Remote Signaling System</h4>"
|
||||
@@ -689,7 +707,7 @@ Code:
|
||||
menu += "<h4>Located Cleanbots:</h4>"
|
||||
|
||||
ldat = null
|
||||
for (var/obj/machinery/bot/cleanbot/B in world)
|
||||
for (var/obj/machinery/bot/cleanbot/B in SSbot.processing)
|
||||
var/turf/bl = get_turf(B)
|
||||
|
||||
if(bl)
|
||||
@@ -732,10 +750,23 @@ Code:
|
||||
if(!current)
|
||||
menu += "<h5> ERROR : NO CHANNEL FOUND </h5>"
|
||||
return
|
||||
var/i = 1
|
||||
for(var/datum/feed_message/msg in current.messages)
|
||||
menu +="-[msg.body] <BR><FONT SIZE=1>\[Story by <FONT COLOR='maroon'>[msg.author]</FONT>\]</FONT><BR>"
|
||||
menu +="<b><font size=1>[msg.comments.len] comment[msg.comments.len > 1 ? "s" : ""]</font></b><br>"
|
||||
if(msg.img)
|
||||
user << browse_rsc(msg.img, "tmp_photo[i].png")
|
||||
menu +="<img src='tmp_photo[i].png' width = '180'><BR>"
|
||||
i++
|
||||
for(var/datum/feed_comment/comment in msg.comments)
|
||||
menu +="<font size=1><small>[comment.body]</font><br><font size=1><small><small><small>[comment.author] [comment.time_stamp]</small></small></small></small></font><br>"
|
||||
menu += "<br> <A href='byond://?src=\ref[src];choice=Newscaster Message'>Post Message</a>"
|
||||
|
||||
if (54) // Beepsky, Medibot, Floorbot, and Cleanbot access
|
||||
menu = "<h4><img src=pda_medbot.png> Multi-Bot Interlink</h4>"
|
||||
var/obj/item/radio/integrated/multi/SC = radio
|
||||
bot_control(SC)
|
||||
|
||||
/obj/item/weapon/cartridge/Topic(href, href_list)
|
||||
..()
|
||||
|
||||
@@ -825,5 +856,5 @@ Code:
|
||||
|
||||
|
||||
|
||||
generate_menu()
|
||||
generate_menu(usr)
|
||||
print_to_host(menu)
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
var/obj/machinery/bot/active // the active bot; if null, show bot list
|
||||
var/list/botstatus // the status signal sent by the bot
|
||||
var/bot_type //The type of bot it is.
|
||||
var/bot_filter //Determines which radio filter to use.
|
||||
|
||||
var/control_freq = 1447
|
||||
|
||||
@@ -19,9 +18,8 @@
|
||||
..()
|
||||
if (istype(loc.loc, /obj/item/device/pda))
|
||||
hostpda = loc.loc
|
||||
if (bot_filter)
|
||||
spawn(5)
|
||||
add_to_radio(bot_filter)
|
||||
spawn(5)
|
||||
add_to_radio()
|
||||
|
||||
/obj/item/radio/integrated/Destroy()
|
||||
if(radio_controller)
|
||||
@@ -30,7 +28,6 @@
|
||||
|
||||
/obj/item/radio/integrated/proc/post_signal(var/freq, var/key, var/value, var/key2, var/value2, var/key3, var/value3,var/key4, var/value4, s_filter)
|
||||
|
||||
//world << "Post: [freq]: [key]=[value], [key2]=[value2]"
|
||||
var/datum/radio_frequency/frequency = radio_controller.return_frequency(freq)
|
||||
|
||||
if(!frequency)
|
||||
@@ -63,13 +60,14 @@
|
||||
/obj/item/radio/integrated/receive_signal(datum/signal/signal)
|
||||
/*var/obj/item/device/pda/P = src.loc
|
||||
|
||||
|
||||
world << "recvd:[P] : [signal.source]"
|
||||
for(var/d in signal.data)
|
||||
world << "- [d] = [signal.data[d]]"
|
||||
*/
|
||||
if(signal.data["sect"] != ZLEVEL_STATION) //Only detect bots on the station! (Getting the current Z-level is too costly)
|
||||
return
|
||||
|
||||
if (signal.data["type"] == bot_type)
|
||||
if (signal.data["type"] & bot_type)
|
||||
if(!botlist)
|
||||
botlist = new()
|
||||
|
||||
@@ -88,44 +86,43 @@
|
||||
|
||||
if("control")
|
||||
active = locate(href_list["bot"])
|
||||
post_signal(control_freq, "command", "bot_status", "active", active, s_filter = bot_filter)
|
||||
post_signal(control_freq, "command", "bot_status", "active", active)
|
||||
|
||||
if("scanbots") // find all bots
|
||||
botlist = null
|
||||
post_signal(control_freq, "command", "bot_status", s_filter = bot_filter)
|
||||
post_signal(control_freq, "command", "bot_status")
|
||||
|
||||
if("botlist")
|
||||
active = null
|
||||
|
||||
if("stop", "go")
|
||||
post_signal(control_freq, "command", href_list["op"], "active", active, s_filter = bot_filter)
|
||||
post_signal(control_freq, "command", "bot_status", "active", active, s_filter = bot_filter)
|
||||
post_signal(control_freq, "command", href_list["op"], "active", active)
|
||||
post_signal(control_freq, "command", "bot_status", "active", active)
|
||||
|
||||
if("summon")
|
||||
post_signal(control_freq, "command", "summon", "active", active, "target", get_turf(PDA) , "useraccess", PDA.GetAccess(), s_filter = bot_filter)
|
||||
post_signal(control_freq, "command", "bot_status", "active", active, s_filter = bot_filter)
|
||||
post_signal(control_freq, "command", "summon", "active", active, "target", get_turf(PDA) , "useraccess", PDA.GetAccess())
|
||||
post_signal(control_freq, "command", "bot_status", "active", active)
|
||||
PDA.cartridge.unlock()
|
||||
|
||||
/obj/item/radio/integrated/proc/add_to_radio(bot_filter) //Master filter control for bots. Must be placed in the bot's local New() to support map spawned bots.
|
||||
/obj/item/radio/integrated/proc/add_to_radio()
|
||||
if(radio_controller)
|
||||
radio_controller.add_object(src, control_freq, filter = bot_filter)
|
||||
radio_controller.add_object(src, control_freq)
|
||||
|
||||
|
||||
/obj/item/radio/integrated/beepsky
|
||||
bot_filter = RADIO_SECBOT
|
||||
bot_type = SEC_BOT
|
||||
|
||||
/obj/item/radio/integrated/medbot
|
||||
bot_filter = RADIO_MEDBOT
|
||||
bot_type = MED_BOT
|
||||
|
||||
/obj/item/radio/integrated/floorbot
|
||||
bot_filter = RADIO_FLOORBOT
|
||||
bot_type = FLOOR_BOT
|
||||
|
||||
/obj/item/radio/integrated/cleanbot
|
||||
bot_filter = RADIO_CLEANBOT
|
||||
bot_type = CLEAN_BOT
|
||||
/obj/item/radio/integrated/multi
|
||||
bot_type = SEC_BOT|CLEAN_BOT|MED_BOT|FLOOR_BOT
|
||||
|
||||
|
||||
/obj/item/radio/integrated/mule
|
||||
//var/list/botlist = null // list of bots
|
||||
@@ -141,7 +138,7 @@
|
||||
..()
|
||||
spawn(5)
|
||||
if(radio_controller)
|
||||
radio_controller.add_object(src, control_freq, filter = RADIO_MULEBOT)
|
||||
radio_controller.add_object(src, control_freq)
|
||||
radio_controller.add_object(src, beacon_freq, filter = RADIO_NAVBEACONS)
|
||||
spawn(10)
|
||||
post_signal(beacon_freq, "findbeacon", "delivery", s_filter = RADIO_NAVBEACONS)
|
||||
@@ -203,28 +200,28 @@
|
||||
active = null
|
||||
|
||||
if("unload")
|
||||
post_signal(control_freq, cmd, "unload", s_filter = RADIO_MULEBOT)
|
||||
post_signal(control_freq, cmd, "unload")
|
||||
if("setdest")
|
||||
if(beacons)
|
||||
var/dest = input("Select Bot Destination", "Mulebot [active.suffix] Interlink", active.destination) as null|anything in beacons
|
||||
if(dest)
|
||||
post_signal(control_freq, cmd, "target", "destination", dest, s_filter = RADIO_MULEBOT)
|
||||
post_signal(control_freq, cmd, "target", "destination", dest)
|
||||
|
||||
if("retoff")
|
||||
post_signal(control_freq, cmd, "autoret", "value", 0, s_filter = RADIO_MULEBOT)
|
||||
post_signal(control_freq, cmd, "autoret", "value", 0)
|
||||
if("reton")
|
||||
post_signal(control_freq, cmd, "autoret", "value", 1, s_filter = RADIO_MULEBOT)
|
||||
post_signal(control_freq, cmd, "autoret", "value", 1)
|
||||
|
||||
if("pickoff")
|
||||
post_signal(control_freq, cmd, "autopick", "value", 0, s_filter = RADIO_MULEBOT)
|
||||
post_signal(control_freq, cmd, "autopick", "value", 0)
|
||||
|
||||
if("pickon")
|
||||
post_signal(control_freq, cmd, "autopick", "value", 1, s_filter = RADIO_MULEBOT)
|
||||
post_signal(control_freq, cmd, "autopick", "value", 1)
|
||||
|
||||
if("stop", "go", "home")
|
||||
post_signal(control_freq, cmd, href_list["op"], s_filter = RADIO_MULEBOT)
|
||||
post_signal(control_freq, cmd, href_list["op"])
|
||||
|
||||
post_signal(control_freq, cmd, "bot_status", s_filter = RADIO_MULEBOT)
|
||||
post_signal(control_freq, cmd, "bot_status")
|
||||
PDA.cartridge.unlock()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user