mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-15 20:22:07 +00:00
## About The Pull Request <img src="https://i.ibb.co/0cM6NHQ/Hotkey-PRImage2.png"> What it says on the tin. Gives the AI hotkeys to connect and disconnect from its shell. I'm open to suggestions for better default hotkeys, I made sure to choose out-of-the-way keys with no overlaps because I have a vague memory about code-side keybind conflicts leading to a threatened forkening and I don't want that. Also this is my first PR with more than 2 lines changed so I would appreciate a thorough and critical review of my code. ## Why It's Good For The Game Since there are so many AI player admins (Who are all universally gigachads btw) it would be convenient to them to have an aghost-hotkey analogue for the AI. This change was specifically requested of me by one of these admins in fact. I'm sure non-admin AIs would appreciate this convenience as well though. ## Changelog 🆑 qol: The AI now has hotkeys for its shells, make sure to bind them to your preferred keys in your keybindings menu, under game preferences. /🆑
86 lines
2.1 KiB
Plaintext
86 lines
2.1 KiB
Plaintext
/datum/keybinding/robot
|
|
category = CATEGORY_ROBOT
|
|
weight = WEIGHT_ROBOT
|
|
|
|
/datum/keybinding/robot/can_use(client/user)
|
|
return iscyborg(user.mob)
|
|
|
|
/datum/keybinding/robot/moduleone
|
|
hotkey_keys = list("1")
|
|
name = "module_one"
|
|
full_name = "Toggle module 1"
|
|
description = "Equips or unequips the first module"
|
|
keybind_signal = COMSIG_KB_SILICON_TOGGLEMODULEONE_DOWN
|
|
|
|
/datum/keybinding/robot/moduleone/down(client/user)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/silicon/robot/R = user.mob
|
|
R.toggle_module(1)
|
|
return TRUE
|
|
|
|
/datum/keybinding/robot/moduletwo
|
|
hotkey_keys = list("2")
|
|
name = "module_two"
|
|
full_name = "Toggle module 2"
|
|
description = "Equips or unequips the second module"
|
|
keybind_signal = COMSIG_KB_SILICON_TOGGLEMODULETWO_DOWN
|
|
|
|
/datum/keybinding/robot/moduletwo/down(client/user)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/silicon/robot/R = user.mob
|
|
R.toggle_module(2)
|
|
return TRUE
|
|
|
|
/datum/keybinding/robot/modulethree
|
|
hotkey_keys = list("3")
|
|
name = "module_three"
|
|
full_name = "Toggle module 3"
|
|
description = "Equips or unequips the third module"
|
|
keybind_signal = COMSIG_KB_SILICON_TOGGLEMODULETHREE_DOWN
|
|
|
|
/datum/keybinding/robot/modulethree/down(client/user)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/silicon/robot/R = user.mob
|
|
R.toggle_module(3)
|
|
return TRUE
|
|
|
|
/datum/keybinding/robot/unequip_module
|
|
hotkey_keys = list("Q")
|
|
name = "unequip_module"
|
|
full_name = "Unequip module"
|
|
description = "Unequips the active module"
|
|
keybind_signal = COMSIG_KB_SILICON_UNEQUIPMODULE_DOWN
|
|
|
|
/datum/keybinding/robot/unequip_module/down(client/user)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/silicon/robot/R = user.mob
|
|
R.uneq_active()
|
|
return TRUE
|
|
|
|
/datum/keybinding/robot/undeploy
|
|
category = CATEGORY_AI
|
|
hotkey_keys = list("=")
|
|
name = "undeploy"
|
|
full_name = "Disconnect from shell"
|
|
description = "Returns you to your AI core"
|
|
keybind_signal = COMSIG_KB_SILION_UNDEPLOY_DOWN
|
|
|
|
/datum/keybinding/robot/undeploy/down(client/user)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/silicon/robot/shell/our_shell = user.mob
|
|
//We make sure our shell is actually a shell
|
|
if(our_shell.shell == FALSE)
|
|
return
|
|
our_shell.undeploy()
|
|
return TRUE
|