Merge pull request #16598 from TheYeetster1/Shift+Middle-Click-toggle-door-timing

Makes AIs and borgs able to use Shift+Middle+Click to toggle door timings.
This commit is contained in:
variableundefined
2021-09-01 19:41:37 -05:00
committed by GitHub
4 changed files with 37 additions and 8 deletions
+13
View File
@@ -67,6 +67,9 @@
if(modifiers["shift"] && modifiers["alt"])
AltShiftClickOn(A)
return
if(modifiers["shift"] && modifiers["middle"])
ShiftMiddleClickOn(A)
return
if(modifiers["middle"])
MiddleClickOn(A)
if(controlled_mech) //Are we piloting a mech? Placed here so the modifiers are not overridden.
@@ -128,6 +131,8 @@
A.AICtrlShiftClick(src)
/mob/living/silicon/ai/AltShiftClickOn(atom/A)
A.AIAltShiftClick(src)
/mob/living/silicon/ai/ShiftMiddleClickOn(atom/A)
A.AIShiftMiddleClick(src)
/mob/living/silicon/ai/ShiftClickOn(atom/A)
A.AIShiftClick(src)
/mob/living/silicon/ai/CtrlClickOn(atom/A)
@@ -148,6 +153,9 @@
/atom/proc/AIAltShiftClick()
return
/atom/proc/AIShiftMiddleClick()
return
/atom/proc/AIShiftClick(mob/living/user) // borgs use this too
if(user.client)
user.examinate(src)
@@ -215,3 +223,8 @@
if(!ai_control_check(user))
return
toggle_light(user)
/obj/machinery/door/airlock/AIShiftMiddleClick(mob/user) // Toggles door timings.
if(!ai_control_check(user))
return
toggle_speed(user)
+3 -1
View File
@@ -363,9 +363,11 @@
A.AltShiftClick(src)
return
/atom/proc/AltShiftClick(mob/user)
/mob/proc/ShiftMiddleClickOn(atom/A)
return
/atom/proc/AltShiftClick(mob/user)
return
/*
Misc helpers
+9 -1
View File
@@ -30,6 +30,9 @@
if(modifiers["middle"] && modifiers["ctrl"])
CtrlMiddleClickOn(A)
return
if(modifiers["shift"] && modifiers["middle"])
ShiftMiddleClickOn(A)
return
if(modifiers["middle"])
MiddleClickOn(A)
return
@@ -126,7 +129,8 @@
A.BorgCtrlShiftClick(src)
/mob/living/silicon/robot/AltShiftClickOn(atom/A)
A.BorgAltShiftClick(src)
/mob/living/silicon/robot/ShiftMiddleClickOn(atom/A)
A.BorgShiftMiddleClick(src)
/atom/proc/BorgShiftClick(mob/user)
if(user.client && user.client.eye == user)
@@ -148,6 +152,8 @@
/atom/proc/BorgAltShiftClick()
return
/atom/proc/BorgShiftMiddleClick()
return
// AIRLOCKS
@@ -163,6 +169,8 @@
/obj/machinery/door/airlock/BorgAltShiftClick(mob/living/silicon/robot/user) // Enables emergency override on doors! Forwards to AI code.
AIAltShiftClick(user)
/obj/machinery/door/airlock/BorgShiftMiddleClick(mob/living/silicon/robot/user) //Toggles door timing. Forwards to AI code.
AIShiftMiddleClick(user)
// APC
+12 -6
View File
@@ -814,12 +814,7 @@ About the new airlock wires panel:
safe = 1
to_chat(usr, "<span class='notice'>The door safeties have been enabled.</span>")
if("speed-toggle")
if(wires.is_cut(WIRE_SPEED))
to_chat(usr, "<span class='warning'>The timing wire is cut - Cannot alter timing.</span>")
else if(normalspeed)
normalspeed = 0
else
normalspeed = 1
toggle_speed(usr)
if("open-close")
open_close(usr)
else
@@ -870,6 +865,17 @@ About the new airlock wires panel:
to_chat(user, "<span class='notice'>Emergency access has been disabled.</span>")
update_icon()
/obj/machinery/door/airlock/proc/toggle_speed(mob/user)
if(wires.is_cut(WIRE_SPEED))
to_chat(user, "<span class='warning'>The timing wire has been cut - Cannot alter timing.</span>")
return
normalspeed = !normalspeed
if(normalspeed)
to_chat(user, "<span class='notice'>The door is now in <b>normal</b> mode.</span>")
else
to_chat(user, "<span class='notice'>The door is now in <b>fast</b> mode.</span>")
/obj/machinery/door/airlock/attackby(obj/item/C, mob/user, params)
add_fingerprint(user)
if(!headbutt_shock_check(user))