mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 08:08:49 +01:00
[MIRROR] Gives The AI Hotkeys For Disconnecting From and Reconnecting To A Cyborg Shell [MDB IGNORE] (#19868)
* Gives The AI Hotkeys For Disconnecting From and Reconnecting To A Cyborg Shell (#73871) ## 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. /🆑 * Gives The AI Hotkeys For Disconnecting From and Reconnecting To A Cyborg Shell --------- Co-authored-by: Jackraxxus <60418544+Jackraxxus@users.noreply.github.com>
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
#define CATEGORY_CARBON "CARBON"
|
||||
#define CATEGORY_HUMAN "HUMAN"
|
||||
#define CATEGORY_ROBOT "ROBOT"
|
||||
#define CATEGORY_AI "AI"
|
||||
#define CATEGORY_MISC "MISC"
|
||||
#define CATEGORY_MOVEMENT "MOVEMENT"
|
||||
#define CATEGORY_COMMUNICATION "COMMUNICATION"
|
||||
@@ -17,4 +18,5 @@
|
||||
#define WEIGHT_LIVING 50
|
||||
#define WEIGHT_DEAD 60
|
||||
#define WEIGHT_EMOTE 70
|
||||
#define WEIGHT_AI 80
|
||||
#define WEIGHT_LOWEST 999
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
/datum/keybinding/artificial_intelligence
|
||||
category = CATEGORY_AI
|
||||
weight = WEIGHT_AI
|
||||
|
||||
/datum/keybinding/artificial_intelligence/can_use(client/user)
|
||||
return isAI(user.mob)
|
||||
|
||||
/datum/keybinding/artificial_intelligence/reconnect
|
||||
hotkey_keys = list("-")
|
||||
name = "reconnect"
|
||||
full_name = "Reconnect to shell"
|
||||
description = "Reconnects you to your most recently used AI shell"
|
||||
keybind_signal = COMSIG_KB_SILICON_RECONNECT_DOWN
|
||||
|
||||
/datum/keybinding/artificial_intelligence/reconnect/down(client/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
var/mob/living/silicon/ai/our_ai = user.mob
|
||||
our_ai.deploy_to_shell(our_ai.redeploy_action.last_used_shell)
|
||||
return TRUE
|
||||
@@ -64,3 +64,22 @@
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user