diff --git a/code/modules/mob/living/silicon/robot/login.dm b/code/modules/mob/living/silicon/robot/login.dm
index 3aef61fb3d5..dc539bf2297 100644
--- a/code/modules/mob/living/silicon/robot/login.dm
+++ b/code/modules/mob/living/silicon/robot/login.dm
@@ -3,4 +3,5 @@
regenerate_icons()
show_laws(0)
if(mind) ticker.mode.remove_revolutionary(mind)
+ winset(src, null, "mainwindow.macro=borgmacro hotkey_toggle.is-checked=false input.focus=true input.background-color=#D3B5B5")
return
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 4a33a9a6d3e..cb3b02bbe25 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -125,6 +125,7 @@
mmi = null
..()
+
/mob/living/silicon/robot/proc/pick_module()
if(module)
return
@@ -240,6 +241,18 @@
set name = "Show Alerts"
robot_alerts()
+//for borg hotkeys, here module refers to borg inv slot, not core module
+/mob/living/silicon/robot/verb/cmd_toggle_module(module as num)
+ set name = "Toggle Module"
+ set hidden = 1
+ toggle_module(module)
+
+/mob/living/silicon/robot/verb/cmd_unequip_module()
+ set name = "Unequip Module"
+ set hidden = 1
+ uneq_active()
+
+
/mob/living/silicon/robot/proc/robot_alerts()
var/dat = "
Current Station Alerts\n"
dat += "Close
"
diff --git a/interface/interface.dm b/interface/interface.dm
index fccaed6eb3f..1085fa46b34 100644
--- a/interface/interface.dm
+++ b/interface/interface.dm
@@ -81,6 +81,47 @@ Any-Mode: (hotkey doesn't need to be on)
\tEND = throw
"}
+
+ var/borghotkey_mode = {"
+Hotkey-Mode: (hotkey-mode must be on)
+\tTAB = toggle hotkey-mode
+\ta = left
+\ts = down
+\td = right
+\tw = up
+\tq = unequip active module
+\tt = say
+\tx = cycle active modules
+\tz = activate held object (or y)
+\tf = cycle-intents-left
+\tg = cycle-intents-right
+\t1 = activate module 1
+\t2 = activate module 2
+\t3 = activate module 3
+\t4 = toggle intents
+"}
+
+ var/borgother = {"
+Any-Mode: (hotkey doesn't need to be on)
+\tCtrl+a = left
+\tCtrl+s = down
+\tCtrl+d = right
+\tCtrl+w = up
+\tCtrl+q = unequip active module
+\tCtrl+x = cycle active modules
+\tCtrl+z = activate held object (or Ctrl+y)
+\tCtrl+f = cycle-intents-left
+\tCtrl+g = cycle-intents-right
+\tCtrl+1 = activate module 1
+\tCtrl+2 = activate module 2
+\tCtrl+3 = activate module 3
+\tCtrl+4 = toggle intents
+\tDEL = pull
+\tINS = toggle intents
+\tPGUP = cycle active modules
+\tPGDN = activate held object
+"}
+
var/admin = {"
Admin:
\tF5 = Aghost (admin-ghost)
@@ -88,8 +129,12 @@ Admin:
\tF7 = admin-pm
\tF8 = Invisimin
"}
+ if (isrobot(mob))
+ src << borghotkey_mode
+ src << borgother
+ else
+ src << hotkey_mode
+ src << other
- src << hotkey_mode
- src << other
if(holder)
src << admin
diff --git a/interface/skin.dmf b/interface/skin.dmf
index a3979a4615b..38514a16595 100644
--- a/interface/skin.dmf
+++ b/interface/skin.dmf
@@ -1,3 +1,237 @@
+macro "borghotkeymode"
+ elem
+ name = "TAB"
+ command = ".winset \"mainwindow.macro=borgmacro hotkey_toggle.is-checked=false input.focus=true input.background-color=#D3B5B5\""
+ is-disabled = false
+ elem
+ name = "CENTER+REP"
+ command = ".center"
+ is-disabled = false
+ elem
+ name = "NORTHEAST"
+ command = ".northeast"
+ is-disabled = false
+ elem
+ name = "SOUTHEAST"
+ command = ".southeast"
+ is-disabled = false
+ elem
+ name = "SOUTHWEST"
+ command = ".southwest"
+ is-disabled = false
+ elem
+ name = "NORTHWEST"
+ command = ".northwest"
+ is-disabled = false
+ elem
+ name = "CTRL+WEST"
+ command = "westface"
+ is-disabled = false
+ elem
+ name = "WEST+REP"
+ command = ".west"
+ is-disabled = false
+ elem
+ name = "CTRL+NORTH"
+ command = "northface"
+ is-disabled = false
+ elem
+ name = "NORTH+REP"
+ command = ".north"
+ is-disabled = false
+ elem
+ name = "CTRL+EAST"
+ command = "eastface"
+ is-disabled = false
+ elem
+ name = "EAST+REP"
+ command = ".east"
+ is-disabled = false
+ elem
+ name = "CTRL+SOUTH"
+ command = "southface"
+ is-disabled = false
+ elem
+ name = "SOUTH+REP"
+ command = ".south"
+ is-disabled = false
+ elem
+ name = "INSERT"
+ command = "a-intent right"
+ is-disabled = false
+ elem
+ name = "DELETE"
+ command = "delete-key-pressed"
+ is-disabled = false
+ elem
+ name = "1"
+ command = "toggle-module 1"
+ is-disabled = false
+ elem
+ name = "CTRL+1"
+ command = "toggle-module 1"
+ is-disabled = false
+ elem
+ name = "2"
+ command = "toggle-module 2"
+ is-disabled = false
+ elem
+ name = "CTRL+2"
+ command = "toggle-module 2"
+ is-disabled = false
+ elem
+ name = "3"
+ command = "toggle-module 3"
+ is-disabled = false
+ elem
+ name = "CTRL+3"
+ command = "toggle-module 3"
+ is-disabled = false
+ elem
+ name = "4"
+ command = "a-intent left"
+ is-disabled = false
+ elem
+ name = "CTRL+4"
+ command = "a-intent left"
+ is-disabled = false
+ elem
+ name = "A+REP"
+ command = ".west"
+ is-disabled = false
+ elem
+ name = "CTRL+A+REP"
+ command = ".west"
+ is-disabled = false
+ elem
+ name = "D+REP"
+ command = ".east"
+ is-disabled = false
+ elem
+ name = "CTRL+D+REP"
+ command = ".east"
+ is-disabled = false
+ elem
+ name = "E"
+ command = "quick-equip"
+ is-disabled = false
+ elem
+ name = "CTRL+E"
+ command = "quick-equip"
+ is-disabled = false
+ elem
+ name = "F"
+ command = "a-intent left"
+ is-disabled = false
+ elem
+ name = "CTRL+F"
+ command = "a-intent left"
+ is-disabled = false
+ elem
+ name = "G"
+ command = "a-intent right"
+ is-disabled = false
+ elem
+ name = "CTRL+G"
+ command = "a-intent right"
+ is-disabled = false
+ elem
+ name = "Q"
+ command = "unequip-module"
+ is-disabled = false
+ elem
+ name = "CTRL+Q"
+ command = "unequip-module"
+ is-disabled = false
+ elem
+ name = "R"
+ command = ".southwest"
+ is-disabled = false
+ elem
+ name = "CTRL+R"
+ command = ".southwest"
+ is-disabled = false
+ elem "s_key"
+ name = "S+REP"
+ command = ".south"
+ is-disabled = false
+ elem
+ name = "CTRL+S+REP"
+ command = ".south"
+ is-disabled = false
+ elem
+ name = "T"
+ command = "say"
+ is-disabled = false
+ elem "w_key"
+ name = "W+REP"
+ command = ".north"
+ is-disabled = false
+ elem
+ name = "CTRL+W+REP"
+ command = ".north"
+ is-disabled = false
+ elem
+ name = "X"
+ command = ".northeast"
+ is-disabled = false
+ elem
+ name = "CTRL+X"
+ command = ".northeast"
+ is-disabled = false
+ elem
+ name = "Y"
+ command = "Activate-Held-Object"
+ is-disabled = false
+ elem
+ name = "CTRL+Y"
+ command = "Activate-Held-Object"
+ is-disabled = false
+ elem
+ name = "Z"
+ command = "Activate-Held-Object"
+ is-disabled = false
+ elem
+ name = "CTRL+Z"
+ command = "Activate-Held-Object"
+ is-disabled = false
+ elem
+ name = "F1"
+ command = "adminhelp"
+ is-disabled = false
+ elem
+ name = "CTRL+SHIFT+F1+REP"
+ command = ".options"
+ is-disabled = false
+ elem
+ name = "F2+REP"
+ command = ".screenshot auto"
+ is-disabled = false
+ elem
+ name = "SHIFT+F2+REP"
+ command = ".screenshot"
+ is-disabled = false
+ elem
+ name = "F5"
+ command = "Aghost"
+ is-disabled = false
+ elem
+ name = "F6"
+ command = "Player-Panel-New"
+ is-disabled = false
+ elem
+ name = "F7"
+ command = "Admin-PM"
+ is-disabled = false
+ elem
+ name = "F8"
+ command = "Invisimin"
+ is-disabled = false
+ elem
+ name = "F12"
+ command = "F12"
+ is-disabled = false
+
macro "macro"
elem
name = "TAB"
@@ -398,6 +632,172 @@ macro "hotkeymode"
command = "F12"
is-disabled = false
+macro "borgmacro"
+ elem
+ name = "TAB"
+ command = ".winset \"mainwindow.macro=borghotkeymode hotkey_toggle.is-checked=true mapwindow.map.focus=true input.background-color=#F0F0F0\""
+ is-disabled = false
+ elem
+ name = "CENTER+REP"
+ command = ".center"
+ is-disabled = false
+ elem
+ name = "NORTHEAST"
+ command = ".northeast"
+ is-disabled = false
+ elem
+ name = "SOUTHEAST"
+ command = ".southeast"
+ is-disabled = false
+ elem
+ name = "SOUTHWEST"
+ command = ".southwest"
+ is-disabled = false
+ elem
+ name = "NORTHWEST"
+ command = ".northwest"
+ is-disabled = false
+ elem
+ name = "CTRL+WEST"
+ command = "westface"
+ is-disabled = false
+ elem
+ name = "WEST+REP"
+ command = ".west"
+ is-disabled = false
+ elem
+ name = "CTRL+NORTH"
+ command = "northface"
+ is-disabled = false
+ elem
+ name = "NORTH+REP"
+ command = ".north"
+ is-disabled = false
+ elem
+ name = "CTRL+EAST"
+ command = "eastface"
+ is-disabled = false
+ elem
+ name = "EAST+REP"
+ command = ".east"
+ is-disabled = false
+ elem
+ name = "CTRL+SOUTH"
+ command = "southface"
+ is-disabled = false
+ elem
+ name = "SOUTH+REP"
+ command = ".south"
+ is-disabled = false
+ elem
+ name = "INSERT"
+ command = "a-intent right"
+ is-disabled = false
+ elem
+ name = "DELETE"
+ command = "delete-key-pressed"
+ is-disabled = false
+ elem
+ name = "CTRL+1"
+ command = "toggle-module 1"
+ is-disabled = false
+ elem
+ name = "CTRL+2"
+ command = "toggle-module 2"
+ is-disabled = false
+ elem
+ name = "CTRL+3"
+ command = "toggle-module 3"
+ is-disabled = false
+ elem
+ name = "CTRL+4"
+ command = "a-intent left"
+ is-disabled = false
+ elem
+ name = "CTRL+A+REP"
+ command = ".west"
+ is-disabled = false
+ elem
+ name = "CTRL+D+REP"
+ command = ".east"
+ is-disabled = false
+ elem
+ name = "CTRL+E"
+ command = "quick-equip"
+ is-disabled = false
+ elem
+ name = "CTRL+F"
+ command = "a-intent left"
+ is-disabled = false
+ elem
+ name = "CTRL+G"
+ command = "a-intent right"
+ is-disabled = false
+ elem
+ name = "CTRL+Q"
+ command = "unequip-module"
+ is-disabled = false
+ elem
+ name = "CTRL+R"
+ command = ".southwest"
+ is-disabled = false
+ elem
+ name = "CTRL+S+REP"
+ command = ".south"
+ is-disabled = false
+ elem
+ name = "CTRL+W+REP"
+ command = ".north"
+ is-disabled = false
+ elem
+ name = "CTRL+X"
+ command = ".northeast"
+ is-disabled = false
+ elem
+ name = "CTRL+Y"
+ command = "Activate-Held-Object"
+ is-disabled = false
+ elem
+ name = "CTRL+Z"
+ command = "Activate-Held-Object"
+ is-disabled = false
+ elem
+ name = "F1"
+ command = "adminhelp"
+ is-disabled = false
+ elem
+ name = "CTRL+SHIFT+F1+REP"
+ command = ".options"
+ is-disabled = false
+ elem
+ name = "F2+REP"
+ command = ".screenshot auto"
+ is-disabled = false
+ elem
+ name = "SHIFT+F2+REP"
+ command = ".screenshot"
+ is-disabled = false
+ elem
+ name = "F5"
+ command = "Aghost"
+ is-disabled = false
+ elem
+ name = "F6"
+ command = "Player-Panel-New"
+ is-disabled = false
+ elem
+ name = "F7"
+ command = "Admin-PM"
+ is-disabled = false
+ elem
+ name = "F8"
+ command = "Invisimin"
+ is-disabled = false
+ elem
+ name = "F12"
+ command = "F12"
+ is-disabled = false
+
menu "menu"
elem
@@ -1322,6 +1722,8 @@ window "mapwindow"
on-size = ""
icon-size = 0
text-mode = false
+ letterbox = true
+ zoom = 0
on-show = ".winset\"mainwindow.mainvsplit.left=mapwindow\""
on-hide = ".winset\"mainwindow.mainvsplit.left=\""
style = ""
@@ -1794,4 +2196,6 @@ window "infowindow"
on-show = ".winset\"rpane.infob.is-visible=true;rpane.browseb.is-visible=true?rpane.infob.pos=130,0:rpane.infob.pos=65,0 rpane.textb.is-visible=true rpane.infob.is-checked=true rpane.rpanewindow.pos=0,30 rpane.rpanewindow.size=0x0 rpane.rpanewindow.left=infowindow\""
on-hide = ".winset\"rpane.infob.is-visible=false;rpane.browseb.is-visible=true?rpane.browseb.is-checked=true rpane.rpanewindow.left=browserwindow:rpane.textb.is-visible=true rpane.rpanewindow.pos=0,30 rpane.rpanewindow.size=0x0 rpane.rpanewindow.left=\""
on-tab = ""
+ prefix-color = none
+ suffix-color = none