This commit is contained in:
Ghommie
2019-10-28 16:41:50 +01:00
86 changed files with 1495 additions and 2318 deletions
+2
View File
@@ -563,6 +563,8 @@
TT.thrower = thrower
TT.diagonals_first = diagonals_first
TT.callback = callback
if(!QDELETED(thrower))
TT.target_zone = thrower.zone_selected
var/dist_x = abs(target.x - src.x)
var/dist_y = abs(target.y - src.y)
+16 -38
View File
@@ -17,7 +17,7 @@
network += lowertext(i)
/obj/machinery/computer/security/check_eye(mob/user)
if( (stat & (NOPOWER|BROKEN)) || user.incapacitated() || user.eye_blind )
if(CHECK_BITFIELD(stat, NOPOWER|BROKEN) || is_blind(user) || !in_view_range(user, src) || !user.canUseTopic(src, !issilicon(user), FALSE))
user.unset_machine()
return
if(!(user in watchers))
@@ -30,14 +30,6 @@
if(!C.can_use())
user.unset_machine()
return
if(!issilicon(user))
if(!Adjacent(user))
user.unset_machine()
return
else if(iscyborg(user))
var/list/viewing = viewers(src)
if(!viewing.Find(user))
user.unset_machine()
/obj/machinery/computer/security/on_unset_machine(mob/user)
watchers.Remove(user)
@@ -97,36 +89,22 @@
user.unset_machine()
playsound(src, 'sound/machines/terminal_off.ogg', 25, 0)
return
if(C)
var/camera_fail = 0
if(!C.can_use() || user.machine != src || user.eye_blind || user.incapacitated())
camera_fail = 1
else if(iscyborg(user))
var/list/viewing = viewers(src)
if(!viewing.Find(user))
camera_fail = 1
else if(!issilicon(user))
if(!Adjacent(user))
camera_fail = 1
if(camera_fail)
user.unset_machine()
return 0
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 25, 0)
if(isAI(user))
var/mob/living/silicon/ai/A = user
A.eyeobj.setLoc(get_turf(C))
A.client.eye = A.eyeobj
else
user.reset_perspective(C)
user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/static)
user.clear_fullscreen("flash", 5)
watchers[user] = C
use_power(50)
addtimer(CALLBACK(src, .proc/use_camera_console, user), 5)
else
if(!C || !C.can_use() || CHECK_BITFIELD(stat, NOPOWER|BROKEN) || is_blind(user) || !in_view_range(user, src) || !user.canUseTopic(src, !issilicon(user), FALSE))
user.unset_machine()
return FALSE
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 25, 0)
if(isAI(user))
var/mob/living/silicon/ai/A = user
A.eyeobj.setLoc(get_turf(C))
A.client.eye = A.eyeobj
else
user.reset_perspective(C)
user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/static)
user.clear_fullscreen("flash", 5)
watchers[user] = C
use_power(50)
addtimer(CALLBACK(src, .proc/use_camera_console, user), 5)
//returns the list of cameras accessible from this computer
/obj/machinery/computer/security/proc/get_available_cameras()
@@ -90,6 +90,7 @@
say("Processing hub calibration to target...")
calibrating = 1
power_station.update_icon()
spawn(50 * (3 - power_station.teleporter_hub.accurate)) //Better parts mean faster calibration
calibrating = 0
if(check_hub_connection())
@@ -97,6 +98,7 @@
say("Calibration complete.")
else
say("Error: Unable to detect hub.")
power_station.update_icon()
updateDialog()
updateDialog()
+2 -1
View File
@@ -74,7 +74,8 @@
to_chat(user, "<span class='notice'>You start adding [I] to [src]...</span>")
if(do_after(user, 50, target=src))
W.use(5)
new /turf/closed/wall/mineral/wood/nonmetal(get_turf(src))
var/turf/T = get_turf(src)
T.PlaceOnTop(/turf/closed/wall/mineral/wood/nonmetal)
qdel(src)
return
return ..()
+2
View File
@@ -209,5 +209,7 @@
icon_state = "controller-o"
else if(stat & (BROKEN|NOPOWER))
icon_state = "controller-p"
else if(teleporter_console && teleporter_console.calibrating)
icon_state = "controller-c"
else
icon_state = "controller"
@@ -746,3 +746,73 @@
..()
hud = new /obj/item/clothing/glasses/hud/security(src)
return
/**********************************************************************
Grippers oh god oh fuck
***********************************************************************/
/obj/item/weapon/gripper
name = "circuit gripper"
desc = "A simple grasping tool for inserting circuitboards into machinary."
icon = 'icons/obj/device.dmi'
icon_state = "gripper"
item_flags = NOBLUDGEON
//Has a list of items that it can hold.
var/list/can_hold = list(
/obj/item/circuitboard
)
var/obj/item/wrapped = null // Item currently being held.
/obj/item/weapon/gripper/attack_self()
if(wrapped)
wrapped.forceMove(get_turf(wrapped))
wrapped = null
return ..()
/obj/item/weapon/gripper/afterattack(var/atom/target, var/mob/living/user, proximity, params)
if(!proximity)
return
if(!wrapped)
for(var/obj/item/thing in src.contents)
wrapped = thing
break
if(wrapped) //Already have an item.
//Temporary put wrapped into user so target's attackby() checks pass.
wrapped.loc = user
//Pass the attack on to the target. This might delete/relocate wrapped.
var/resolved = target.attackby(wrapped,user)
if(!resolved && wrapped && target)
wrapped.afterattack(target,user,1)
//If wrapped was neither deleted nor put into target, put it back into the gripper.
if(wrapped && user && (wrapped.loc == user))
wrapped.loc = src
else
wrapped = null
return
else if(istype(target,/obj/item))
var/obj/item/I = target
var/grab = 0
for(var/typepath in can_hold)
if(istype(I,typepath))
grab = 1
break
//We can grab the item, finally.
if(grab)
to_chat(user, "You collect \the [I].")
I.loc = src
wrapped = I
return
else
to_chat(user, "<span class='danger'>Your gripper cannot hold \the [target].</span>")
@@ -598,10 +598,10 @@
R.update_transform()
/obj/item/borg/upgrade/rped
name = "engineering cyborg RPED"
name = "engineering cyborg BSRPED"
desc = "A rapid part exchange device for the engineering cyborg."
icon = 'icons/obj/storage.dmi'
icon_state = "borgrped"
icon_state = "borg_BS_RPED"
require_module = TRUE
module_type = list(/obj/item/robot_module/engineering)
@@ -609,14 +609,21 @@
. = ..()
if(.)
var/obj/item/storage/part_replacer/bluespace/cyborg/BSRPED = locate() in R
var/obj/item/storage/part_replacer/cyborg/RPED = locate() in R
if(RPED)
to_chat(user, "<span class='warning'>This unit is already equipped with a RPED module.</span>")
if(!RPED)
RPED = locate() in R.module
if(!BSRPED)
BSRPED = locate() in R.module //There's gotta be a smarter way to do this.
if(BSRPED)
to_chat(user, "<span class='warning'>This unit is already equipped with a BSRPED module.</span>")
return FALSE
RPED = new(R.module)
R.module.basic_modules += RPED
R.module.add_module(RPED, FALSE, TRUE)
BSRPED = new(R.module)
SEND_SIGNAL(RPED, COMSIG_TRY_STORAGE_QUICK_EMPTY)
qdel(RPED)
R.module.basic_modules += BSRPED
R.module.add_module(BSRPED, FALSE, TRUE)
/obj/item/borg/upgrade/rped/deactivate(mob/living/silicon/robot/R, user = usr)
. = ..()
+1 -1
View File
@@ -1,4 +1,4 @@
/obj/structure/sign/barsign // All Signs are 64 by 32 pixels, they take two tiles
/obj/structure/sign/barsign // All Signs are 64 by 64 pixels, though most of them are made to fit 64 x 32 and only take the two lowermost tiles.
name = "Bar Sign"
desc = "A bar sign with no writing on it."
icon = 'icons/obj/barsigns.dmi'