Admin interaction fixes

This commit is contained in:
Markolie
2017-02-10 01:20:01 +01:00
parent b751704ef4
commit 1e97a262b8
10 changed files with 31 additions and 20 deletions
+7 -6
View File
@@ -59,7 +59,7 @@
if(stat & (NOPOWER|BROKEN))
return
if(get_dist(src, user) > 1 && (!issilicon(user) || !user.can_admin_interact()))
if(get_dist(src, user) > 1 && (!issilicon(user) && !user.can_admin_interact()))
to_chat(user, "<span class='warning'>Too far away.</span>")
user.unset_machine()
user << browse(null, "window=ai_slipper")
@@ -69,7 +69,7 @@
var/area/myarea = get_area(src)
var/t = "<TT><B>AI Liquid Dispenser</B> ([myarea.name])<HR>"
if(locked && (!issilicon(user) || !user.can_admin_interact()))
if(locked && (!issilicon(user) && !user.can_admin_interact()))
t += "<I>(Swipe ID card to unlock control panel.)</I><BR>"
else
t += text("Dispenser [] - <A href='?src=[UID()];toggleOn=1'>[]?</a><br>\n", disabled ? "deactivated" : "activated", disabled ? "Enable" : "Disable")
@@ -81,10 +81,11 @@
/obj/machinery/ai_slipper/Topic(href, href_list)
if(..())
return 1
if(locked)
if(!istype(usr, /mob/living/silicon))
to_chat(usr, "Control panel is locked!")
return
if(locked && (!issilicon(usr) && !usr.can_admin_interact()))
to_chat(usr, "Control panel is locked!")
return 1
if(href_list["toggleOn"])
disabled = !disabled
icon_state = disabled? "motion0":"motion3"
+2 -1
View File
@@ -174,7 +174,8 @@
nextstate = CLOSED
/obj/machinery/door/firedoor/attack_ghost(mob/user as mob)
return attack_ai(user)
if(user.can_advanced_admin_interact())
return attack_ai(user)
/obj/machinery/door/firedoor/attack_ai(mob/user)
if(operating || stat & NOPOWER)
@@ -821,7 +821,7 @@ Pass a positive integer as an argument to override a bot's default speed.
return 1
add_fingerprint(usr)
if((href_list["power"]) && (bot_core.allowed(usr) || !locked))
if((href_list["power"]) && (bot_core.allowed(usr) || !locked || usr.can_admin_interact()))
if(on)
turn_off()
else
@@ -204,7 +204,7 @@ Status: []<BR>
Behaviour controls are [locked ? "locked" : "unlocked"]<BR>
Maintenance panel panel is [open ? "opened" : "closed"]"},
text("<A href='?src=[UID()];power=1'>[on ? "On" : "Off"]</A>"))
if(!locked || issilicon(user) || check_rights(R_ADMIN, 0, user))
if(!locked || issilicon(user) || user.can_admin_interact())
dat += text({"<BR>Cleans Blood: []<BR>"}, text("<A href='?src=[UID()];operation=blood'>[blood ? "Yes" : "No"]</A>"))
dat += text({"<BR>Patrol station: []<BR>"}, text("<A href='?src=[UID()];operation=patrol'>[auto_patrol ? "Yes" : "No"]</A>"))
return dat
@@ -106,7 +106,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]<BR>"},
"<A href='?src=[UID()];power=1'>[on ? "On" : "Off"]</A>" )
if(!locked || issilicon(user) || check_rights(R_ADMIN, 0, user))
if(!locked || issilicon(user) || user.can_admin_interact())
if(!lasercolor)
dat += text({"<BR>
Arrest Unidentifiable Persons: []<BR>
@@ -69,7 +69,7 @@
dat += "Maintenance panel panel is [open ? "opened" : "closed"]<BR>"
dat += "Tiles left: [amount]<BR>"
dat += "Behvaiour controls are [locked ? "locked" : "unlocked"]<BR>"
if(!locked || issilicon(user) || check_rights(R_ADMIN, 0, user))
if(!locked || issilicon(user) || user.can_admin_interact())
dat += "Add tiles to new hull plating: <A href='?src=[UID()];operation=autotile'>[autotile ? "Yes" : "No"]</A><BR>"
dat += "Replace floor tiles: <A href='?src=[UID()];operation=replace'>[replacetiles ? "Yes" : "No"]</A><BR>"
dat += "Finds tiles: <A href='?src=[UID()];operation=tiles'>[eattiles ? "Yes" : "No"]</A><BR>"
@@ -149,7 +149,7 @@
else
dat += "None Loaded"
dat += "<br>Behaviour controls are [locked ? "locked" : "unlocked"]<hr>"
if(!locked || issilicon(user) || check_rights(R_ADMIN, 0, user))
if(!locked || issilicon(user) || user.can_admin_interact())
dat += "<TT>Healing Threshold: "
dat += "<a href='?src=[UID()];adj_threshold=-10'>--</a> "
dat += "<a href='?src=[UID()];adj_threshold=-5'>-</a> "
@@ -284,7 +284,7 @@
dat += "<b>Destination:</b> [!destination ? "<i>none</i>" : destination]<BR>"
dat += "<b>Power level:</b> [cell ? cell.percent() : 0]%"
if(locked && !ai && !check_rights(R_ADMIN, 0, user))
if(locked && !ai && !user.can_admin_interact())
dat += "&nbsp;<br /><div class='notice'>Controls are locked</div><A href='?src=[UID()];op=unlock'>Unlock Controls</A>"
else
dat += "&nbsp;<br /><div class='notice'>Controls are unlocked</div><A href='?src=[UID()];op=lock'>Lock Controls</A><BR><BR>"
@@ -119,7 +119,7 @@ Maintenance panel panel is [open ? "opened" : "closed"]"},
"<A href='?src=[UID()];power=1'>[on ? "On" : "Off"]</A>" )
if(!locked || issilicon(user) || check_rights(R_ADMIN, 0, user))
if(!locked || issilicon(user) || user.can_admin_interact())
dat += text({"<BR>
Arrest Unidentifiable Persons: []<BR>
Arrest for Unauthorized Weapons: []<BR>
+15 -6
View File
@@ -67,13 +67,14 @@ var/list/alldepartments = list()
/obj/machinery/photocopier/faxmachine/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
var/data[0]
var/is_authenticated = is_authenticated(user)
if(scan)
data["scan_name"] = scan.name
else
data["scan_name"] = "-----"
data["authenticated"] = authenticated
if(!authenticated)
data["authenticated"] = is_authenticated
if(!is_authenticated)
data["network"] = "Disconnected"
else if(!emagged)
data["network"] = fax_network
@@ -94,12 +95,20 @@ var/list/alldepartments = list()
return data
/obj/machinery/photocopier/faxmachine/proc/is_authenticated(mob/user)
if(authenticated)
return TRUE
else if(user.can_admin_interact())
return TRUE
return FALSE
/obj/machinery/photocopier/faxmachine/Topic(href, href_list)
if(..())
return 1
var/is_authenticated = is_authenticated(usr)
if(href_list["send"])
if(copyitem && authenticated)
if(copyitem && is_authenticated)
if((destination in admin_departments) || (destination in hidden_admin_departments))
send_admin_fax(usr, destination)
else
@@ -131,7 +140,7 @@ var/list/alldepartments = list()
scan()
if(href_list["dept"])
if(authenticated)
if(is_authenticated)
var/lastdestination = destination
var/list/combineddepartments = alldepartments
if(long_range_enabled)
@@ -148,7 +157,7 @@ var/list/alldepartments = list()
if((!authenticated) && scan)
if(check_access(scan))
authenticated = 1
else if(authenticated)
else if(!authenticated)
authenticated = 0
if(href_list["rename"])