hasSiliconAccessInArea vars change

This commit is contained in:
Seris02
2020-01-21 11:44:49 +08:00
parent c2bcbe868e
commit 74be93a8cc
60 changed files with 129 additions and 127 deletions
@@ -245,7 +245,7 @@
/obj/machinery/airalarm/ui_data(mob/user)
var/data = list(
"locked" = locked,
"siliconUser" = user.has_unlimited_silicon_privilege || hasSiliconAccessInArea(user,get_area(src)),
"siliconUser" = user.has_unlimited_silicon_privilege || hasSiliconAccessInArea(user),
"emagged" = (obj_flags & EMAGGED ? 1 : 0),
"danger_level" = danger_level,
)
@@ -288,7 +288,7 @@
"danger_level" = cur_tlv.get_danger_level(environment.gases[gas_id] * partial_pressure)
))
if(!locked || user.has_unlimited_silicon_privilege || hasSiliconAccessInArea(user,get_area(src)))
if(!locked || user.has_unlimited_silicon_privilege || hasSiliconAccessInArea(user))
data["vents"] = list()
for(var/id_tag in A.air_vent_names)
var/long_name = A.air_vent_names[id_tag]
@@ -368,7 +368,7 @@
/obj/machinery/airalarm/ui_act(action, params)
if(..() || buildstage != 2)
return
if((locked && !usr.has_unlimited_silicon_privilege && !hasSiliconAccessInArea(usr,get_area(src))) || (usr.has_unlimited_silicon_privilege && aidisabled))
if((locked && !usr.has_unlimited_silicon_privilege && !hasSiliconAccessInArea(usr)) || (usr.has_unlimited_silicon_privilege && aidisabled))
return
var/device_id = params["id_tag"]
switch(action)
@@ -839,7 +839,7 @@
/obj/machinery/airalarm/AltClick(mob/user)
. = ..()
if(!user.canUseTopic(src, !hasSiliconAccessInArea(user,get_area(src))) || !isturf(loc))
if(!user.canUseTopic(src, !hasSiliconAccessInArea(user)) || !isturf(loc))
return
togglelock(user)
return TRUE
@@ -44,7 +44,7 @@
return
if(reload < reload_cooldown)
return
if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || hasSiliconAccessInArea(usr,get_area(src)))
if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || hasSiliconAccessInArea(usr))
priority_announce("Bluespace artillery fire detected. Brace for impact.")
message_admins("[ADMIN_LOOKUPFLW(usr)] has launched an artillery strike.")
var/list/L = list()
+1 -1
View File
@@ -77,7 +77,7 @@
/obj/item/supplypod_beacon/AltClick(mob/user)
. = ..()
if (!user.canUseTopic(src, !hasSiliconAccessInArea(user,get_area(src))))
if (!user.canUseTopic(src, !hasSiliconAccessInArea(user)))
return
if (express_console)
unlink_console()
+1 -1
View File
@@ -140,7 +140,7 @@
/obj/item/valentine/examine(mob/user)
. = ..()
if(in_range(user, src) || isobserver(user))
if( !(ishuman(user) || isobserver(user) || hasSiliconAccessInArea(user,get_area(src))) )
if( !(ishuman(user) || isobserver(user) || hasSiliconAccessInArea(user)) )
user << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[stars(message)]</BODY></HTML>", "window=[name]")
onclose(user, "[name]")
else
@@ -55,7 +55,7 @@
if(!operating)
. += "<span class='notice'>Alt-click [src] to turn it on.</span>"
if(!in_range(user, src) && !hasSiliconAccessInArea(user,get_area(src)) && !isobserver(user))
if(!in_range(user, src) && !hasSiliconAccessInArea(user) && !isobserver(user))
. += "<span class='warning'>You're too far away to examine [src]'s contents and display!</span>"
return
if(operating)
@@ -63,7 +63,7 @@
return
if(length(ingredients))
if(hasSiliconAccessInArea(user,get_area(src)))
if(hasSiliconAccessInArea(user))
. += "<span class='notice'>\The [src] camera shows:</span>"
else
. += "<span class='notice'>\The [src] contains:</span>"
@@ -187,14 +187,14 @@
/obj/machinery/microwave/AltClick(mob/user)
. = ..()
if(user.canUseTopic(src, !hasSiliconAccessInArea(user,get_area(src))))
if(user.canUseTopic(src, !hasSiliconAccessInArea(user)))
cook()
return TRUE
/obj/machinery/microwave/ui_interact(mob/user)
. = ..()
if(operating || panel_open || !anchored || !user.canUseTopic(src, !hasSiliconAccessInArea(user,get_area(src))))
if(operating || panel_open || !anchored || !user.canUseTopic(src, !hasSiliconAccessInArea(user)))
return
if(isAI(user) && (stat & NOPOWER))
return
@@ -206,10 +206,10 @@
to_chat(user, "<span class='warning'>\The [src] is empty.</span>")
return
var/choice = show_radial_menu(user, src, isAI(user) ? ai_radial_options : radial_options, require_near = !hasSiliconAccessInArea(user,get_area(src)))
var/choice = show_radial_menu(user, src, isAI(user) ? ai_radial_options : radial_options, require_near = !hasSiliconAccessInArea(user))
// post choice verification
if(operating || panel_open || !anchored || !user.canUseTopic(src, !hasSiliconAccessInArea(user,get_area(src))))
if(operating || panel_open || !anchored || !user.canUseTopic(src, !hasSiliconAccessInArea(user)))
return
if(isAI(user) && (stat & NOPOWER))
return
+2 -2
View File
@@ -92,7 +92,7 @@
data["emagged"] = TRUE
data["emag_programs"] = emag_programs
data["program"] = program
data["can_toggle_safety"] = hasSiliconAccessInArea(user,get_area(src)) || IsAdminGhost(user)
data["can_toggle_safety"] = hasSiliconAccessInArea(user) || IsAdminGhost(user)
return data
@@ -109,7 +109,7 @@
if(A)
load_program(A)
if("safety")
if(!hasSiliconAccessInArea(usr,get_area(src)) && !IsAdminGhost(usr))
if(!hasSiliconAccessInArea(usr) && !IsAdminGhost(usr))
var/msg = "[key_name(usr)] attempted to emag the holodeck using a href they shouldn't have!"
message_admins(msg)
log_admin(msg)
+1 -1
View File
@@ -105,7 +105,7 @@
return
var/datum/browser/popup = new(user, "plantdna", "Plant DNA Manipulator", 450, 600)
if(!(in_range(src, user) || hasSiliconAccessInArea(user,get_area(src))))
if(!(in_range(src, user) || hasSiliconAccessInArea(user)))
popup.close()
return
@@ -107,7 +107,7 @@
interact(user)
/obj/item/integrated_circuit_printer/interact(mob/user)
if(!(in_range(src, user) || hasSiliconAccessInArea(user,get_area(src))))
if(!(in_range(src, user) || hasSiliconAccessInArea(user)))
return
if(isnull(current_category))
+1 -1
View File
@@ -4,7 +4,7 @@
//check if it doesn't require any access at all
if(src.check_access(null))
return TRUE
if(hasSiliconAccessInArea(M,get_area(src)))
if(hasSiliconAccessInArea(M))
if(ispAI(M))
return FALSE
return TRUE //AI can do whatever it wants
@@ -809,14 +809,14 @@ Pass a positive integer as an argument to override a bot's default speed.
switch(href_list["operation"])
if("patrol")
if(!hasSiliconAccessInArea(usr,get_area(src)) && !IsAdminGhost(usr) && !(bot_core.allowed(usr) || !locked))
if(!hasSiliconAccessInArea(usr) && !IsAdminGhost(usr) && !(bot_core.allowed(usr) || !locked))
return TRUE
auto_patrol = !auto_patrol
bot_reset()
if("remote")
remote_disabled = !remote_disabled
if("hack")
if(!hasSiliconAccessInArea(usr,get_area(src)) && !IsAdminGhost(usr))
if(!hasSiliconAccessInArea(usr) && !IsAdminGhost(usr))
var/msg = "[key_name(usr)] attempted to hack a bot with a href that shouldn't be available!"
message_admins(msg)
log_admin(msg)
@@ -835,7 +835,7 @@ Pass a positive integer as an argument to override a bot's default speed.
to_chat(usr, "<span class='notice'>[text_dehack]</span>")
bot_reset()
if("ejectpai")
if(paicard && (!locked || hasSiliconAccessInArea(usr,get_area(src)) || IsAdminGhost(usr)))
if(paicard && (!locked || hasSiliconAccessInArea(usr) || IsAdminGhost(usr)))
to_chat(usr, "<span class='notice'>You eject [paicard] from [bot_name]</span>")
ejectpai(usr)
update_controls()
@@ -862,13 +862,13 @@ Pass a positive integer as an argument to override a bot's default speed.
if(emagged == 2) //An emagged bot cannot be controlled by humans, silicons can if one hacked it.
if(!hacked) //Manually emagged by a human - access denied to all.
return TRUE
else if(!hasSiliconAccessInArea(user,get_area(src)) && !IsAdminGhost(user)) //Bot is hacked, so only silicons and admins are allowed access.
else if(!hasSiliconAccessInArea(user) && !IsAdminGhost(user)) //Bot is hacked, so only silicons and admins are allowed access.
return TRUE
return FALSE
/mob/living/simple_animal/bot/proc/hack(mob/user)
var/hack
if(hasSiliconAccessInArea(user,get_area(src)) || IsAdminGhost(user)) //Allows silicons or admins to toggle the emag status of a bot.
if(hasSiliconAccessInArea(user) || IsAdminGhost(user)) //Allows silicons or admins to toggle the emag status of a bot.
hack += "[emagged == 2 ? "Software compromised! Unit may exhibit dangerous or erratic behavior." : "Unit operating normally. Release safety lock?"]<BR>"
hack += "Harm Prevention Safety System: <A href='?src=[REF(src)];operation=hack'>[emagged ? "<span class='bad'>DANGER</span>" : "Engaged"]</A><BR>"
else if(!locked) //Humans with access can use this option to hide a bot from the AI's remote control panel and PDA control.
@@ -877,7 +877,7 @@ Pass a positive integer as an argument to override a bot's default speed.
/mob/living/simple_animal/bot/proc/showpai(mob/user)
var/eject = ""
if((!locked || hasSiliconAccessInArea(usr,get_area(src)) || IsAdminGhost(usr)))
if((!locked || hasSiliconAccessInArea(usr) || IsAdminGhost(usr)))
if(paicard || allow_pai)
eject += "Personality card status: "
if(paicard)
@@ -296,7 +296,7 @@
Status: <A href='?src=[REF(src)];power=1'>[on ? "On" : "Off"]</A><BR>
Behaviour controls are [locked ? "locked" : "unlocked"]<BR>
Maintenance panel panel is [open ? "opened" : "closed"]"})
if(!locked || hasSiliconAccessInArea(user,get_area(src))|| IsAdminGhost(user))
if(!locked || hasSiliconAccessInArea(user)|| IsAdminGhost(user))
dat += "<BR>Clean Blood: <A href='?src=[REF(src)];operation=blood'>[blood ? "Yes" : "No"]</A>"
dat += "<BR>Clean Trash: <A href='?src=[REF(src)];operation=trash'>[trash ? "Yes" : "No"]</A>"
dat += "<BR>Exterminate Pests: <A href='?src=[REF(src)];operation=pests'>[pests ? "Yes" : "No"]</A>"
@@ -110,7 +110,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]<BR>"},
"<A href='?src=[REF(src)];power=1'>[on ? "On" : "Off"]</A>" )
if(!locked || hasSiliconAccessInArea(user,get_area(src))|| IsAdminGhost(user))
if(!locked || hasSiliconAccessInArea(user)|| IsAdminGhost(user))
if(!lasercolor)
dat += text({"<BR>
Arrest Unidentifiable Persons: []<BR>
@@ -111,7 +111,7 @@
dat += "Maintenance panel panel is [open ? "opened" : "closed"]<BR>"
dat += "Behaviour controls are [locked ? "locked" : "unlocked"]<BR>"
if(!locked || hasSiliconAccessInArea(user,get_area(src)) || IsAdminGhost(user))
if(!locked || hasSiliconAccessInArea(user) || IsAdminGhost(user))
dat += "Extinguish Fires: <A href='?src=[REF(src)];operation=extinguish_fires'>[extinguish_fires ? "Yes" : "No"]</A><BR>"
dat += "Extinguish People: <A href='?src=[REF(src)];operation=extinguish_people'>[extinguish_people ? "Yes" : "No"]</A><BR>"
dat += "Patrol Station: <A href='?src=[REF(src)];operation=patrol'>[auto_patrol ? "Yes" : "No"]</A><BR>"
@@ -83,7 +83,7 @@
dat += "None Loaded<BR>"
dat += "Behaviour controls are [locked ? "locked" : "unlocked"]<BR>"
if(!locked || hasSiliconAccessInArea(user,get_area(src)) || IsAdminGhost(user))
if(!locked || hasSiliconAccessInArea(user) || IsAdminGhost(user))
dat += "Add tiles to new hull plating: <A href='?src=[REF(src)];operation=autotile'>[autotile ? "Yes" : "No"]</A><BR>"
dat += "Place floor tiles: <A href='?src=[REF(src)];operation=place'>[placetiles ? "Yes" : "No"]</A><BR>"
dat += "Replace existing floor tiles with custom tiles: <A href='?src=[REF(src)];operation=replace'>[replacetiles ? "Yes" : "No"]</A><BR>"
@@ -90,7 +90,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"},
"<A href='?src=[REF(src)];power=[TRUE]'>[on ? "On" : "Off"]</A>" )
if(!locked || hasSiliconAccessInArea(user,get_area(src)) || IsAdminGhost(user))
if(!locked || hasSiliconAccessInArea(user) || IsAdminGhost(user))
dat += text({"<BR> Auto Patrol: []"},
"<A href='?src=[REF(src)];operation=patrol'>[auto_patrol ? "On" : "Off"]</A>" )
@@ -148,7 +148,7 @@
else
dat += "None Loaded"
dat += "<br>Behaviour controls are [locked ? "locked" : "unlocked"]<hr>"
if(!locked || hasSiliconAccessInArea(user,get_area(src)) || IsAdminGhost(user))
if(!locked || hasSiliconAccessInArea(user) || IsAdminGhost(user))
dat += "<TT>Healing Threshold: "
dat += "<a href='?src=[REF(src)];adj_threshold=-10'>--</a> "
dat += "<a href='?src=[REF(src)];adj_threshold=-5'>-</a> "
@@ -262,7 +262,7 @@
// TODO: remove this; PDAs currently depend on it
/mob/living/simple_animal/bot/mulebot/get_controls(mob/user)
var/ai = hasSiliconAccessInArea(user,get_area(src))
var/ai = hasSiliconAccessInArea(user)
var/dat
dat += "<h3>Multiple Utility Load Effector Mk. V</h3>"
dat += "<b>ID:</b> [id]<BR>"
@@ -110,7 +110,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"},
"<A href='?src=[REF(src)];power=1'>[on ? "On" : "Off"]</A>" )
if(!locked || hasSiliconAccessInArea(user,get_area(src)) || IsAdminGhost(user))
if(!locked || hasSiliconAccessInArea(user) || IsAdminGhost(user))
dat += text({"<BR>
Arrest Unidentifiable Persons: []<BR>
Arrest for Unauthorized Weapons: []<BR>
@@ -131,7 +131,7 @@ Auto Patrol: []"},
/mob/living/simple_animal/bot/secbot/Topic(href, href_list)
if(..())
return 1
if(!hasSiliconAccessInArea(usr,get_area(src)) && !IsAdminGhost(usr) && !(bot_core.allowed(usr) || !locked))
if(!hasSiliconAccessInArea(usr) && !IsAdminGhost(usr) && !(bot_core.allowed(usr) || !locked))
return TRUE
switch(href_list["operation"])
if("idcheck")
+2 -2
View File
@@ -511,7 +511,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
if(href_list["flavor2_more"])
usr << browse(text("<HTML><HEAD><TITLE>[]</TITLE></HEAD><BODY><TT>[]</TT></BODY></HTML>", name, replacetext(flavor_text_2, "\n", "<BR>")), text("window=[];size=500x200", name))
onclose(usr, "[name]")
if(href_list["flavor_change"])
update_flavor_text()
@@ -816,7 +816,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
//Can the mob interact() with an atom?
/mob/proc/can_interact_with(atom/A)
return IsAdminGhost(src) || Adjacent(A) || hasSiliconAccessInArea(src,get_area(A))
return IsAdminGhost(src) || Adjacent(A) || A.hasSiliconAccessInArea(src)
//Can the mob use Topic to interact with machines
/mob/proc/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE, no_tk=FALSE)
+5 -2
View File
@@ -409,8 +409,11 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
return
return TRUE
/proc/hasSiliconAccessInArea(mob/user,area/area)
return user && (issilicon(user) || (user.siliconaccesstoggle && area && (area in user.siliconaccessareas)))
/atom/proc/hasSiliconAccessInArea(mob/user)
return user && (issilicon(user) || (user.siliconaccesstoggle && (get_area(src) in user.siliconaccessareas)))
/area/proc/hasSiliconAccessInArea(mob/user)
return user && (issilicon(user) || (user.siliconaccesstoggle && (src in user.siliconaccessareas)))
/mob/proc/toggleSiliconAccessArea(area/area)
if (area in siliconaccessareas)
@@ -14,7 +14,7 @@
return 0
// Robots don't really need to see the screen, their wireless connection works as long as computer is on.
if(!screen_on && !hasSiliconAccessInArea(user,get_area(src)))
if(!screen_on && !hasSiliconAccessInArea(user))
if(ui)
ui.close()
return 0
@@ -87,7 +87,7 @@
if(IsAdminGhost(user))
return 1
if(hasSiliconAccessInArea(user,get_area(computer)))
if(computer.hasSiliconAccessInArea(user))
return 1
if(ishuman(user))
+1 -1
View File
@@ -35,7 +35,7 @@
return ..()
/obj/machinery/oui_canview(mob/user)
if(user.has_unlimited_silicon_privilege || hasSiliconAccessInArea(user,get_area(src)))
if(user.has_unlimited_silicon_privilege || hasSiliconAccessInArea(user))
return TRUE
if(!can_interact(user))
return FALSE
+13 -13
View File
@@ -272,7 +272,7 @@
. += "<span class='notice'>Alt-Click the APC to [ locked ? "unlock" : "lock"] the interface.</span>"
if(hasSiliconAccessInArea(user,area))
if(area.hasSiliconAccessInArea(user))
. += "<span class='notice'>Ctrl-Click the APC to switch the breaker [ operating ? "off" : "on"].</span>"
// update the APC icon to show the three base states
@@ -549,7 +549,7 @@
/obj/machinery/power/apc/attackby(obj/item/W, mob/living/user, params)
if(hasSiliconAccessInArea(user,area) && get_dist(src,user)>1)
if(area.hasSiliconAccessInArea(user) && get_dist(src,user)>1)
return attack_hand(user)
if (istype(W, /obj/item/stock_parts/cell) && opened)
@@ -756,7 +756,7 @@
/obj/machinery/power/apc/AltClick(mob/user)
. = ..()
if(!user.canUseTopic(src, !hasSiliconAccessInArea(user,area)) || !isturf(loc))
if(!user.canUseTopic(src, !area.hasSiliconAccessInArea(user)) || !isturf(loc))
return
togglelock(user)
return TRUE
@@ -771,7 +771,7 @@
else if(stat & (BROKEN|MAINT))
to_chat(user, "<span class='warning'>Nothing happens!</span>")
else
if((allowed(usr) || hasSiliconAccessInArea(usr,area)) && !wires.is_cut(WIRE_IDSCAN) && !malfhack)
if((allowed(usr) || area.hasSiliconAccessInArea(usr)) && !wires.is_cut(WIRE_IDSCAN) && !malfhack)
locked = !locked
to_chat(user, "<span class='notice'>You [ locked ? "lock" : "unlock"] the APC interface.</span>")
update_icon()
@@ -849,7 +849,7 @@
return
/obj/machinery/power/apc/oui_canview(mob/user)
if(user.has_unlimited_silicon_privilege || hasSiliconAccessInArea(user,area))
if(user.has_unlimited_silicon_privilege || area.hasSiliconAccessInArea(user))
return TRUE
return ..()
@@ -863,7 +863,7 @@
/obj/machinery/power/apc/ui_data(mob/user)
var/list/data = list(
"locked" = locked && !(integration_cog && is_servant_of_ratvar(user)) && !hasSiliconAccessInArea(user,area),
"locked" = locked && !(integration_cog && is_servant_of_ratvar(user)) && !area.hasSiliconAccessInArea(user),
"lock_nightshift" = nightshift_requires_auth,
"failTime" = failure_timer,
"isOperating" = operating,
@@ -873,7 +873,7 @@
"chargingStatus" = charging,
"totalLoad" = DisplayPower(lastused_total),
"coverLocked" = coverlocked,
"siliconUser" = user.has_unlimited_silicon_privilege || user.using_power_flow_console() || hasSiliconAccessInArea(user,area),
"siliconUser" = user.has_unlimited_silicon_privilege || user.using_power_flow_console() || area.hasSiliconAccessInArea(user),
"malfStatus" = get_malf_status(user),
"emergencyLights" = !emergency_lights,
"nightshiftLights" = nightshift_lights,
@@ -948,7 +948,7 @@
/obj/machinery/power/apc/proc/can_use(mob/user, loud = 0) //used by attack_hand() and Topic()
if(IsAdminGhost(user))
return TRUE
if (user == hijacker || (hasSiliconAccessInArea(user,area) && !aidisabled))
if (user == hijacker || (area.hasSiliconAccessInArea(user) && !aidisabled))
return TRUE
if(user.has_unlimited_silicon_privilege)
var/mob/living/silicon/ai/AI = user
@@ -963,14 +963,14 @@
. = ..()
if (!. && !QDELETED(remote_control))
. = remote_control.can_interact(user)
if (hasSiliconAccessInArea(user,area))
if (area.hasSiliconAccessInArea(user))
return TRUE
/obj/machinery/power/apc/ui_status(mob/user)
. = ..()
if (!QDELETED(remote_control) && user == remote_control.operator)
. = UI_INTERACTIVE
if (user == hijacker && hasSiliconAccessInArea(user,area))
if (user == hijacker && area.hasSiliconAccessInArea(user))
. = UI_INTERACTIVE
/obj/machinery/power/apc/ui_act(action, params)
@@ -984,7 +984,7 @@
if (action == "hijack" && can_use(usr, 1)) //don't need auth for hijack button
hijack(usr)
return
var/authorized = (!locked || usr.has_unlimited_silicon_privilege || hasSiliconAccessInArea(usr,area) || (integration_cog && (is_servant_of_ratvar(usr))))
var/authorized = (!locked || usr.has_unlimited_silicon_privilege || area.hasSiliconAccessInArea(usr) || (integration_cog && (is_servant_of_ratvar(usr))))
if((action == "toggle_nightshift") && (!nightshift_requires_auth || authorized))
toggle_nightshift_lights()
return TRUE
@@ -992,7 +992,7 @@
return
switch(action)
if("lock")
if(usr.has_unlimited_silicon_privilege || hasSiliconAccessInArea(usr,area))
if(usr.has_unlimited_silicon_privilege || area.hasSiliconAccessInArea(usr))
if((obj_flags & EMAGGED) || (stat & (BROKEN|MAINT)))
to_chat(usr, "The APC does not respond to the command.")
else
@@ -1026,7 +1026,7 @@
update()
return TRUE
if("overload")
if(usr.has_unlimited_silicon_privilege || hasSiliconAccessInArea(usr,area))
if(usr.has_unlimited_silicon_privilege || area.hasSiliconAccessInArea(usr))
overload_lighting()
return TRUE
if("hack")
@@ -312,7 +312,7 @@
return
var/name = stripped_input(usr,"Name","What do you want to name this recipe?", "Recipe", MAX_NAME_LEN)
var/recipe = stripped_input(usr,"Recipe","Insert recipe with chem IDs")
if(!usr.canUseTopic(src, !hasSiliconAccessInArea(usr,get_area(src))))
if(!usr.canUseTopic(src, !hasSiliconAccessInArea(usr)))
return
if(name && recipe)
var/list/first_process = splittext(recipe, ";")
@@ -261,7 +261,7 @@
return
vol_each = min(reagents.total_volume / amount, 50)
var/name = html_decode(stripped_input(usr,"Name:","Name your pill!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr,get_area(src))))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr)))
return
var/obj/item/reagent_containers/pill/P
var/target_loc = drop_location()
@@ -288,7 +288,7 @@
reagents.trans_to(P,vol_each)
else
var/name = html_decode(stripped_input(usr, "Name:", "Name your pack!", reagents.get_master_reagent_name(), MAX_NAME_LEN))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr,get_area(src))))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr)))
return
var/obj/item/reagent_containers/food/condiment/pack/P = new/obj/item/reagent_containers/food/condiment/pack(drop_location())
@@ -314,7 +314,7 @@
return
vol_each = min(reagents.total_volume / amount, 40)
var/name = html_decode(stripped_input(usr,"Name:","Name your patch!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr,get_area(src))))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr)))
return
var/obj/item/reagent_containers/pill/P
@@ -332,7 +332,7 @@
if(condi)
var/name = html_decode(stripped_input(usr, "Name:","Name your bottle!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr,get_area(src))))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr)))
return
var/obj/item/reagent_containers/food/condiment/P = new(drop_location())
P.originalname = name
@@ -345,7 +345,7 @@
amount_full = round(reagents.total_volume / 30)
vol_part = ((reagents.total_volume*1000) % 30000) / 1000 //% operator doesn't support decimals.
var/name = html_decode(stripped_input(usr, "Name:","Name your bottle!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr,get_area(src))))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr)))
return
var/obj/item/reagent_containers/glass/bottle/P
@@ -373,7 +373,7 @@
amount_full = round(reagents.total_volume / 60)
vol_part = reagents.total_volume % 60
var/name = html_decode(stripped_input(usr, "Name:","Name your hypovial!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr,get_area(src))))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr)))
return
var/obj/item/reagent_containers/glass/bottle/vial/small/P
@@ -408,7 +408,7 @@
vol_each = min(reagents.total_volume / amount, 20)
var/name = html_decode(stripped_input(usr,"Name:","Name your SmartDart!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr,get_area(src))))
if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr)))
return
var/obj/item/reagent_containers/syringe/dart/D
@@ -142,7 +142,7 @@
/obj/machinery/reagentgrinder/ui_interact(mob/user) // The microwave Menu //I am reasonably certain that this is not a microwave
. = ..()
if(operating || !user.canUseTopic(src, !hasSiliconAccessInArea(user,get_area(src))))
if(operating || !user.canUseTopic(src, !hasSiliconAccessInArea(user)))
return
var/list/options = list()
@@ -170,10 +170,10 @@
for(var/key in options)
choice = key
else
choice = show_radial_menu(user, src, options, require_near = !hasSiliconAccessInArea(user,get_area(src)))
choice = show_radial_menu(user, src, options, require_near = !hasSiliconAccessInArea(user))
// post choice verification
if(operating || (isAI(user) && stat & NOPOWER) || !user.canUseTopic(src, !hasSiliconAccessInArea(user,get_area(src))))
if(operating || (isAI(user) && stat & NOPOWER) || !user.canUseTopic(src, !hasSiliconAccessInArea(user)))
return
switch(choice)
@@ -190,7 +190,7 @@
/obj/machinery/reagentgrinder/examine(mob/user)
. = ..()
if(!in_range(user, src) && !hasSiliconAccessInArea(user,get_area(src)) && !isobserver(user))
if(!in_range(user, src) && !hasSiliconAccessInArea(user) && !isobserver(user))
. += "<span class='warning'>You're too far away to examine [src]'s contents and display!</span>"
return
+1 -1
View File
@@ -103,7 +103,7 @@
return UI_CLOSE
var/dist = get_dist(src_object, src)
if(dist <= 1 || hasSiliconAccessInArea(src,get_area(src_object))) // Open and interact if 1-0 tiles away.
if(dist <= 1 || src_object.hasSiliconAccessInArea(src)) // Open and interact if 1-0 tiles away.
return UI_INTERACTIVE
else if(dist <= 2) // View only if 2-3 tiles away.
return UI_UPDATE