[MIRROR] Refactors janitor cartridge to a tablet app [MDB IGNORE] (#12563)

* Refactors janitor cartridge to a tablet app

* e

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
This commit is contained in:
SkyratBot
2022-04-07 15:57:08 +01:00
committed by GitHub
co-authored by John Willard Gandalf
parent 4f33dda9ab
commit 25178c9747
17 changed files with 77 additions and 95 deletions
+12 -14
View File
@@ -6,15 +6,14 @@
#define CART_MANIFEST (1<<4)
#define CART_CLOWN (1<<5)
#define CART_MIME (1<<6)
#define CART_JANITOR (1<<7)
#define CART_REAGENT_SCANNER (1<<8)
#define CART_NEWSCASTER (1<<9)
#define CART_REMOTE_DOOR (1<<10)
#define CART_STATUS_DISPLAY (1<<11)
#define CART_QUARTERMASTER (1<<12)
#define CART_HYDROPONICS (1<<13)
#define CART_DRONEPHONE (1<<14)
#define CART_DRONEACCESS (1<<15)
#define CART_REAGENT_SCANNER (1<<7)
#define CART_NEWSCASTER (1<<8)
#define CART_REMOTE_DOOR (1<<9)
#define CART_STATUS_DISPLAY (1<<10)
#define CART_QUARTERMASTER (1<<11)
#define CART_HYDROPONICS (1<<12)
#define CART_DRONEPHONE (1<<13)
#define CART_DRONEACCESS (1<<14)
/// PDA ui menu defines
#define PDA_UI_HUB 0
@@ -39,11 +38,10 @@
#define PDA_UI_SUPPLY_RECORDS 46
#define PDA_UI_SILO_LOGS 47
#define PDA_UI_BOTS_ACCESS 48
#define PDA_UI_JANNIE_LOCATOR 49
#define PDA_UI_EMOJI_GUIDE 50
#define PDA_UI_SIGNALER 51
#define PDA_UI_NEWSCASTER 52
#define PDA_UI_NEWSCASTER_ERROR 53
#define PDA_UI_EMOJI_GUIDE 49
#define PDA_UI_SIGNALER 50
#define PDA_UI_NEWSCASTER 51
#define PDA_UI_NEWSCASTER_ERROR 52
// Used by PDA and cartridge code to reduce repetitiveness of spritesheets
+1
View File
@@ -36,6 +36,7 @@ GLOBAL_LIST_EMPTY(zombie_infection_list) // A list of all zombie_infection organ
GLOBAL_LIST_EMPTY(meteor_list) // List of all meteors.
GLOBAL_LIST_EMPTY(active_jammers) // List of active radio jammers
GLOBAL_LIST_EMPTY(ladders)
GLOBAL_LIST_EMPTY(janitor_devices)
GLOBAL_LIST_EMPTY(trophy_cases)
GLOBAL_LIST_EMPTY(experiment_handlers)
///This is a global list of all signs you can change an existing sign or new sign backing to, when using a pen on them.
@@ -347,8 +347,6 @@ GLOBAL_LIST_EMPTY(PDAs)
if (cartridge)
if(!isnull(cartridge.bot_access))
dat += "<li><a href='byond://?src=[REF(src)];choice=[PDA_UI_BOTS_ACCESS]'>[PDAIMG(medbot)]Bots Access</a></li>"
if (cartridge.access & CART_JANITOR)
dat += "<li><a href='byond://?src=[REF(src)];choice=[PDA_UI_JANNIE_LOCATOR]'>[PDAIMG(bucket)]Custodial Locator</a></li>"
if(cartridge.access & CART_MIME)
dat += "<li><a href='byond://?src=[REF(src)];choice=[PDA_UI_EMOJI_GUIDE]'>[PDAIMG(emoji)]Emoji Guidebook</a></li>"
if (istype(cartridge.radio))
@@ -105,7 +105,6 @@
/obj/item/pda/janitor
name = "janitor PDA"
default_cartridge = /obj/item/cartridge/janitor
greyscale_colors = "#933ea8#235AB2"
ttone = "slip"
+1 -72
View File
@@ -86,15 +86,6 @@
ADVANCED_SEC_BOT,
)
/obj/item/cartridge/janitor
name = "\improper CustodiPRO cartridge"
desc = "The ultimate in clean-room design."
icon_state = "cart-j"
access = CART_JANITOR | CART_DRONEPHONE
bot_access = list(
CLEAN_BOT,
)
/obj/item/cartridge/lawyer
name = "\improper P.R.O.V.E. cartridge"
icon_state = "cart-s"
@@ -149,7 +140,7 @@
/obj/item/cartridge/hop
name = "\improper HumanResources9001 cartridge"
icon_state = "cart-h"
access = CART_MANIFEST | CART_STATUS_DISPLAY | CART_JANITOR | CART_SECURITY | CART_NEWSCASTER | CART_QUARTERMASTER | CART_DRONEPHONE
access = CART_MANIFEST | CART_STATUS_DISPLAY | CART_SECURITY | CART_NEWSCASTER | CART_QUARTERMASTER | CART_DRONEPHONE
bot_access = list(
MULE_BOT,
CLEAN_BOT,
@@ -485,68 +476,6 @@
menu += "<b>No ore silo detected!</b>"
menu = jointext(menu, "")
if (PDA_UI_JANNIE_LOCATOR)
menu = "<h4>[PDAIMG(bucket)] Persistent Custodial Object Locator</h4>"
var/turf/cl = get_turf(src)
if (cl)
menu += "Current Orbital Location: <b>\[[cl.x],[cl.y]\]</b>"
menu += "<h4>Located Mops:</h4>"
var/ldat
for (var/obj/item/mop/M in world)
var/turf/ml = get_turf(M)
if(ml)
if (ml.z != cl.z)
continue
var/direction = get_dir(src, M)
ldat += "Mop - <b>\[[ml.x],[ml.y] ([uppertext(dir2text(direction))])\]</b> - [M.reagents.total_volume ? "Wet" : "Dry"]<br>"
if (!ldat)
menu += "None"
else
menu += "[ldat]"
menu += "<h4>Located Janitorial Cart:</h4>"
ldat = null
for (var/obj/structure/janitorialcart/B in world)
var/turf/bl = get_turf(B)
if(bl)
if (bl.z != cl.z)
continue
var/direction = get_dir(src, B)
ldat += "Cart - <b>\[[bl.x],[bl.y] ([uppertext(dir2text(direction))])\]</b> - Water level: [B.reagents.total_volume]/100<br>"
if (!ldat)
menu += "None"
else
menu += "[ldat]"
menu += "<h4>Located Cleanbots:</h4>"
ldat = null
for (var/mob/living/simple_animal/bot/cleanbot/B in GLOB.alive_mob_list)
var/turf/bl = get_turf(B)
if(bl)
if (bl.z != cl.z)
continue
var/direction = get_dir(src, B)
ldat += "Cleanbot - <b>\[[bl.x],[bl.y] ([uppertext(dir2text(direction))])\]</b> - [B.bot_mode_flags & BOT_MODE_ON ? "Online" : "Offline"]<br>"
if (!ldat)
menu += "None"
else
menu += "[ldat]"
else
menu += "ERROR: Unable to determine current location."
menu += "<br><br><A href='byond://?src=[REF(src)];choice=49'>Refresh GPS Locator</a>"
if (PDA_UI_NEWSCASTER)
menu = "<h4>[PDAIMG(notes)] Newscaster Access</h4>"
menu += "<br> Current Newsfeed: <A href='byond://?src=[REF(src)];choice=Newscaster Switch Channel'>[current_channel ? current_channel : "None"]</a> <br>"
@@ -68,7 +68,7 @@
var/difficulty = 0
if(target.cartridge)
difficulty += bit_count(target.cartridge.access&(CART_MEDICAL | CART_SECURITY | CART_ENGINE | CART_CLOWN | CART_JANITOR | CART_MANIFEST))
difficulty += bit_count(target.cartridge.access&(CART_MEDICAL | CART_SECURITY | CART_ENGINE | CART_CLOWN | CART_MANIFEST))
if(target.cartridge.access & CART_MANIFEST)
difficulty++ //if cartridge has manifest access it has extra snowflake difficulty
if(SEND_SIGNAL(target, COMSIG_PDA_CHECK_DETONATE) & COMPONENT_PDA_NO_DETONATE || prob(difficulty * 15))
+5
View File
@@ -23,6 +23,7 @@
/obj/item/mop/Initialize(mapload)
. = ..()
create_reagents(max_reagent_volume)
GLOB.janitor_devices += src
//SKYRAT EDIT ADDITION
AddElement(/datum/element/liquids_interaction, on_interaction_callback = /obj/item/mop/.proc/attack_on_liquids_turf)
@@ -39,6 +40,10 @@
return TRUE
//SKYRAT EDIT END
/obj/item/mop/Destroy(force)
GLOB.janitor_devices -= src
return ..()
/obj/item/mop/proc/clean(turf/A, mob/living/cleaner)
if(reagents.has_chemical_flag(REAGENT_CLEANS, 1))
// If there's a cleaner with a mind, let's gain some experience!
@@ -53,7 +53,6 @@
/obj/structure/closet/jcloset/PopulateContents()
..()
new /obj/item/clothing/under/rank/civilian/janitor(src)
new /obj/item/cartridge/janitor(src)
new /obj/item/clothing/gloves/color/black(src)
new /obj/item/clothing/head/soft/purple(src)
new /obj/item/paint/paint_remover(src)
+5
View File
@@ -19,6 +19,11 @@
/obj/structure/janitorialcart/Initialize(mapload)
. = ..()
create_reagents(100, OPENCONTAINER)
GLOB.janitor_devices += src
/obj/structure/janitorialcart/Destroy()
GLOB.janitor_devices -= src
return ..()
/obj/structure/janitorialcart/examine(mob/user)
. = ..()
+1 -1
View File
@@ -38,7 +38,7 @@
id_trim = /datum/id_trim/job/janitor
uniform = /obj/item/clothing/under/rank/civilian/janitor
backpack_contents = list(
/obj/item/modular_computer/tablet/preset/advanced = 1,
/obj/item/modular_computer/tablet/preset/advanced/custodial = 1,
)
belt = /obj/item/pda/janitor
ears = /obj/item/radio/headset/headset_srv
@@ -124,8 +124,10 @@
COMSIG_ATOM_ENTERED = .proc/on_entered,
)
AddElement(/datum/element/connect_loc, loc_connections)
GLOB.janitor_devices += src
/mob/living/simple_animal/bot/cleanbot/Destroy()
GLOB.janitor_devices -= src
if(weapon)
var/atom/Tsec = drop_location()
weapon.force = weapon_orig_force
@@ -59,6 +59,11 @@
hard_drive.store_file(new /datum/computer_file/program/alarm_monitor)
hard_drive.store_file(new /datum/computer_file/program/atmosscan)
/obj/item/modular_computer/tablet/preset/advanced/custodial/Initialize(mapload)
. = ..()
var/obj/item/computer_hardware/hard_drive/small/hard_drive = find_hardware_by_name("solid state drive")
hard_drive.store_file(new /datum/computer_file/program/radar/custodial_locator)
/obj/item/modular_computer/tablet/preset/advanced/engineering/Initialize(mapload)
. = ..()
var/obj/item/computer_hardware/hard_drive/small/hard_drive = find_hardware_by_name("solid state drive")
@@ -248,6 +248,48 @@
return TRUE
return FALSE
///Tracks all janitor equipment
/datum/computer_file/program/radar/custodial_locator
filename = "custodiallocator"
filedesc = "Custodial Locator"
extended_desc = "This program allows for tracking of custodial equipment."
requires_ntnet = TRUE
transfer_access = list(ACCESS_JANITOR)
available_on_ntnet = TRUE
program_icon = "broom"
size = 2
/datum/computer_file/program/radar/custodial_locator/find_atom()
return locate(selected) in GLOB.janitor_devices
/datum/computer_file/program/radar/custodial_locator/scan()
if(world.time < next_scan)
return
next_scan = world.time + (2 SECONDS)
objects = list()
for(var/obj/custodial_tools as anything in GLOB.janitor_devices)
if(!trackable(custodial_tools))
continue
var/tool_name = custodial_tools.name
if(istype(custodial_tools, /obj/item/mop))
var/obj/item/mop/wet_mop = custodial_tools
tool_name = "[wet_mop.reagents.total_volume ? "Wet" : "Dry"] [wet_mop.name]"
if(istype(custodial_tools, /obj/structure/janitorialcart))
var/obj/structure/janitorialcart/janicart = custodial_tools
tool_name = "[janicart.name] - Water level: [janicart.reagents.total_volume] / [janicart.reagents.maximum_volume]"
if(istype(custodial_tools, /mob/living/simple_animal/bot/cleanbot))
var/mob/living/simple_animal/bot/cleanbot/cleanbots = custodial_tools
tool_name = "[cleanbots.name] - [cleanbots.bot_mode_flags & BOT_MODE_ON ? "Online" : "Offline"]"
var/list/tool_information = list(
ref = REF(custodial_tools),
name = tool_name,
)
objects += list(tool_information)
////////////////////////
//Nuke Disk Finder App//
////////////////////////
+2
View File
@@ -16,10 +16,12 @@
. = ..()
update_appearance()
AddElement(/datum/element/ridable, /datum/component/riding/vehicle/janicart)
GLOB.janitor_devices += src
if (installed_upgrade)
installed_upgrade.install(src)
/obj/vehicle/ridden/janicart/Destroy()
GLOB.janitor_devices -= src
if (trash_bag)
QDEL_NULL(trash_bag)
if (installed_upgrade)
-1
View File
@@ -10,7 +10,6 @@
/obj/item/cartridge/medical = 10,
/obj/item/cartridge/engineering = 10,
/obj/item/cartridge/security = 10,
/obj/item/cartridge/janitor = 10,
/obj/item/cartridge/signal/ordnance = 10,
/obj/item/pda/heads = 10,
/obj/item/cartridge/captain = 3,
-1
View File
@@ -316,7 +316,6 @@
product_ads = "Come and get your janitorial clothing, now endorsed by lizard janitors everywhere!"
vend_reply = "Thank you for using the JaniDrobe!"
products = list(/obj/item/clothing/under/rank/civilian/janitor = 2,
/obj/item/cartridge/janitor = 2,
/obj/item/clothing/under/rank/civilian/janitor/skirt = 2,
/obj/item/clothing/suit/hooded/wintercoat/janitor = 2,
/obj/item/clothing/gloves/color/black = 2,
@@ -44,7 +44,6 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items
/obj/item/cartridge/head = 5,
/obj/item/cartridge/hop = 5,
/obj/item/cartridge/hos = 5,
/obj/item/cartridge/janitor = 50,
/obj/item/cartridge/lawyer = 50,
/obj/item/cartridge/medical = 50,
/obj/item/cartridge/quartermaster = 5,