Files
John Willard 2ef5704c30 Adds a keybind for 'precise' dropping (like SS14) (#93790)
## About The Pull Request


https://github.com/user-attachments/assets/531f1456-72a1-4215-ae9e-4f4bf143b8c5

<img width="429" height="93" alt="image"
src="https://github.com/user-attachments/assets/1440fb60-a6b8-46c3-9bee-5a30017e2265"
/>

## Why It's Good For The Game

There's been SS14 players moving to SS13 and finding dropping in 14 is
better, which I kinda agree as it allows you to be more precise with x/y
dropping.

## Changelog

🆑
qol: There's a keybind (default is Ctrl+X, rebindable) for the drop
hotkey to drop where your mouse is (similar to SS14).
/🆑
2025-11-18 17:39:20 -07:00

86 lines
2.3 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, turf/target, mousepos_x, mousepos_y)
. = ..()
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, turf/target, mousepos_x, mousepos_y)
. = ..()
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, turf/target, mousepos_x, mousepos_y)
. = ..()
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, turf/target, mousepos_x, mousepos_y)
. = ..()
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, turf/target, mousepos_x, mousepos_y)
. = ..()
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