mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 20:48:56 +01:00
## About The Pull Request Allows people to detach a cleaner and vacuum (uses the trash bag) from janitor borgs. This option uses zero water management and doesn't create slip tiles. The module can be locked with alt click. <img width="342" height="681" alt="image" src="https://github.com/user-attachments/assets/0fe53f8b-d850-4354-aa70-382ca40dcd37" /> <img width="590" height="581" alt="image" src="https://github.com/user-attachments/assets/70fea653-ad20-479a-8986-fed0e15af4b1" /> https://github.com/user-attachments/assets/ff81a214-1bfb-4a33-a660-ccb563e310af Sounds are from soundsnap and properly licenced. https://soundsnap.zendesk.com/hc/en-us/articles/115003916431-Legal ## Why It's Good For The Game I think co-op mechanics are fun. If you manage to get a friend, this is an option with zero water management. I feel like janitor borgs don't really have much the way to cooperate with their base mechanics. You can walk into a department and clean it wordlessly. This gives the option where you can clean with your friend (or the crime scene you're trying to scrub) ## Changelog 🆑 StrangeWeirdKitten, Toriate (sprites) add: Janitor borgs now have a crew operated end that allows their squishy overlords to do some cleaning themselves. /🆑
264 lines
8.0 KiB
Plaintext
264 lines
8.0 KiB
Plaintext
/datum/keybinding/living
|
|
category = CATEGORY_HUMAN
|
|
weight = WEIGHT_MOB
|
|
|
|
/datum/keybinding/living/can_use(client/user)
|
|
return isliving(user.mob)
|
|
|
|
/datum/keybinding/living/resist
|
|
hotkey_keys = list("B")
|
|
name = "resist"
|
|
full_name = "Resist"
|
|
description = "Break free of your current state. Handcuffed? on fire? Resist!"
|
|
keybind_signal = COMSIG_KB_LIVING_RESIST_DOWN
|
|
|
|
/datum/keybinding/living/resist/down(client/user, turf/target, mousepos_x, mousepos_y)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/owner = user.mob
|
|
owner.resist()
|
|
if (owner.hud_used?.screen_objects[HUD_MOB_RESIST])
|
|
owner.hud_used.screen_objects[HUD_MOB_RESIST].icon_state = "[owner.hud_used.screen_objects[HUD_MOB_RESIST].base_icon_state]_on"
|
|
return TRUE
|
|
|
|
/datum/keybinding/living/resist/up(client/user, turf/target)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/owner = user.mob
|
|
if (owner.hud_used?.screen_objects[HUD_MOB_RESIST])
|
|
owner.hud_used.screen_objects[HUD_MOB_RESIST].icon_state = owner.hud_used.screen_objects[HUD_MOB_RESIST].base_icon_state
|
|
|
|
/datum/keybinding/living/look_up
|
|
// hotkey_keys = list("L") // ORIGINAL
|
|
hotkey_keys = list("P") //SKYRAT EDIT CHANGE - CUSTOMIZATION
|
|
name = "look up"
|
|
full_name = "Look Up"
|
|
description = "Look up at the next z-level. Only works if directly below open space."
|
|
keybind_signal = COMSIG_KB_LIVING_LOOKUP_DOWN
|
|
|
|
/datum/keybinding/living/look_up/down(client/user, turf/target, mousepos_x, mousepos_y)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/L = user.mob
|
|
L.look_up()
|
|
return TRUE
|
|
|
|
/datum/keybinding/living/look_up/up(client/user, turf/target)
|
|
. = ..()
|
|
var/mob/living/L = user.mob
|
|
L.end_look()
|
|
return TRUE
|
|
|
|
/datum/keybinding/living/look_down
|
|
// hotkey_keys = list(";") // ORIGINAL
|
|
hotkey_keys = list("\[") //SKYRAT EDIT CHANGE - CUSTOMIZATION
|
|
name = "look down"
|
|
full_name = "Look Down"
|
|
description = "Look down at the previous z-level. Only works if directly above open space."
|
|
keybind_signal = COMSIG_KB_LIVING_LOOKDOWN_DOWN
|
|
|
|
/datum/keybinding/living/look_down/down(client/user, turf/target, mousepos_x, mousepos_y)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/L = user.mob
|
|
L.look_down()
|
|
return TRUE
|
|
|
|
/datum/keybinding/living/look_down/up(client/user, turf/target)
|
|
. = ..()
|
|
var/mob/living/L = user.mob
|
|
L.end_look()
|
|
return TRUE
|
|
|
|
/datum/keybinding/living/rest
|
|
hotkey_keys = list("U")
|
|
name = "rest"
|
|
full_name = "Rest"
|
|
description = "Lay down, or get up."
|
|
keybind_signal = COMSIG_KB_LIVING_REST_DOWN
|
|
|
|
/datum/keybinding/living/rest/down(client/user, turf/target, mousepos_x, mousepos_y)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/living_mob = user.mob
|
|
living_mob.toggle_resting()
|
|
return TRUE
|
|
|
|
/datum/keybinding/living/toggle_combat_mode
|
|
hotkey_keys = list("F")
|
|
name = "toggle_combat_mode"
|
|
full_name = "Toggle Combat Mode"
|
|
description = "Toggles combat mode. Like Help/Harm but cooler."
|
|
keybind_signal = COMSIG_KB_LIVING_TOGGLE_COMBAT_DOWN
|
|
|
|
|
|
/datum/keybinding/living/toggle_combat_mode/down(client/user, turf/target, mousepos_x, mousepos_y)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/user_mob = user.mob
|
|
user_mob.set_combat_mode(!user_mob.combat_mode, FALSE)
|
|
|
|
/datum/keybinding/living/enable_combat_mode
|
|
hotkey_keys = list("4")
|
|
name = "enable_combat_mode"
|
|
full_name = "Enable Combat Mode"
|
|
description = "Enable combat mode."
|
|
keybind_signal = COMSIG_KB_LIVING_ENABLE_COMBAT_DOWN
|
|
|
|
/datum/keybinding/living/enable_combat_mode/down(client/user, turf/target, mousepos_x, mousepos_y)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/user_mob = user.mob
|
|
user_mob.set_combat_mode(TRUE, silent = FALSE)
|
|
|
|
/datum/keybinding/living/disable_combat_mode
|
|
hotkey_keys = list("1")
|
|
name = "disable_combat_mode"
|
|
full_name = "Disable Combat Mode"
|
|
description = "Disable combat mode."
|
|
keybind_signal = COMSIG_KB_LIVING_DISABLE_COMBAT_DOWN
|
|
|
|
/datum/keybinding/living/disable_combat_mode/down(client/user, turf/target, mousepos_x, mousepos_y)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/user_mob = user.mob
|
|
user_mob.set_combat_mode(FALSE, silent = FALSE)
|
|
|
|
/datum/keybinding/living/toggle_move_intent
|
|
hotkey_keys = list("Alt") //SKYRAT EDIT CHANGE - C IS FOR COMBAT INDICATOR - ORIGINAL: hotkey_keys = list("C")
|
|
name = "toggle_move_intent"
|
|
full_name = "Hold to toggle move intent"
|
|
description = "Held down to cycle to the other move intent, release to cycle back"
|
|
keybind_signal = COMSIG_KB_LIVING_TOGGLEMOVEINTENT_DOWN
|
|
|
|
/datum/keybinding/living/toggle_move_intent/down(client/user, turf/target, mousepos_x, mousepos_y)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/M = user.mob
|
|
M.toggle_move_intent()
|
|
return TRUE
|
|
|
|
/datum/keybinding/living/toggle_move_intent/up(client/user, turf/target)
|
|
. = ..()
|
|
var/mob/living/M = user.mob
|
|
M.toggle_move_intent()
|
|
return TRUE
|
|
|
|
/datum/keybinding/living/toggle_move_intent_alternative
|
|
hotkey_keys = list(UNBOUND_KEY)
|
|
name = "toggle_move_intent_alt"
|
|
full_name = "press to cycle move intent"
|
|
description = "Pressing this cycle to the opposite move intent, does not cycle back"
|
|
keybind_signal = COMSIG_KB_LIVING_TOGGLEMOVEINTENTALT_DOWN
|
|
|
|
/datum/keybinding/living/toggle_move_intent_alternative/down(client/user, turf/target, mousepos_x, mousepos_y)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/M = user.mob
|
|
M.toggle_move_intent()
|
|
return TRUE
|
|
|
|
/datum/keybinding/living/toggle_throw_mode
|
|
hotkey_keys = list("R", "Southwest") // END
|
|
name = "toggle_throw_mode"
|
|
full_name = "Toggle throw mode"
|
|
description = "Toggle throwing the current item or not."
|
|
keybind_signal = COMSIG_KB_LIVING_TOGGLETHROWMODE_DOWN
|
|
|
|
/datum/keybinding/living/toggle_throw_mode/down(client/user)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/living_user = user.mob
|
|
living_user.toggle_throw_mode()
|
|
return TRUE
|
|
|
|
/datum/keybinding/living/hold_throw_mode
|
|
hotkey_keys = list("Space")
|
|
name = "hold_throw_mode"
|
|
full_name = "Hold throw mode"
|
|
description = "Hold this to turn on throw mode, and release it to turn off throw mode"
|
|
keybind_signal = COMSIG_KB_LIVING_HOLDTHROWMODE_DOWN
|
|
|
|
/datum/keybinding/living/hold_throw_mode/down(client/user, turf/target, mousepos_x, mousepos_y)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/living_user = user.mob
|
|
living_user.throw_mode_on(THROW_MODE_HOLD)
|
|
|
|
/datum/keybinding/living/hold_throw_mode/up(client/user, turf/target)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/living_user = user.mob
|
|
living_user.throw_mode_off(THROW_MODE_HOLD)
|
|
|
|
/datum/keybinding/living/give
|
|
hotkey_keys = list("G")
|
|
name = "Give_Item"
|
|
full_name = "Give item"
|
|
description = "Give the item you're currently holding"
|
|
keybind_signal = COMSIG_KB_LIVING_GIVEITEM_DOWN
|
|
|
|
/datum/keybinding/living/give/can_use(client/user)
|
|
. = ..()
|
|
if (!.)
|
|
return FALSE
|
|
if(!user.mob)
|
|
return FALSE
|
|
var/obj/item/object = user.mob.get_active_held_item()
|
|
if(isnull(object))
|
|
return FALSE
|
|
if(HAS_TRAIT(object, TRAIT_BORG_GIVE))
|
|
return TRUE
|
|
if(!HAS_TRAIT(user.mob, TRAIT_CAN_HOLD_ITEMS))
|
|
return FALSE
|
|
return TRUE
|
|
|
|
/datum/keybinding/living/give/down(client/user, turf/target, mousepos_x, mousepos_y)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/living_user = user.mob
|
|
var/obj/item/held_item = living_user.get_active_held_item()
|
|
if(isnull(held_item))
|
|
return
|
|
if(!HAS_TRAIT(living_user, TRAIT_CAN_HOLD_ITEMS) && !HAS_TRAIT(held_item, TRAIT_BORG_GIVE))
|
|
return
|
|
living_user.give()
|
|
|
|
/datum/keybinding/living/view_pet_data
|
|
hotkey_keys = list("Shift")
|
|
name = "view_pet_commands"
|
|
full_name = "View Pet Commands"
|
|
description = "Hold down to see all the commands you can give your pets!"
|
|
keybind_signal = COMSIG_KB_LIVING_VIEW_PET_COMMANDS
|
|
|
|
/datum/keybinding/living/cancel_interactions
|
|
name = "stop_interactions"
|
|
full_name = "Cancel Interactions"
|
|
description = "Cancels any ongoing interactions (such as using a tool, performing surgery, or climbing). \
|
|
Note that some interactions cannot be interrupted, and you can't cancel other player's interaction with this hotkey."
|
|
keybind_signal = COMSIG_KB_LIVING_STOP_INTERACTIONS_DOWN
|
|
|
|
/datum/keybinding/living/cancel_interactions/down(client/user, turf/target, mousepos_x, mousepos_y)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/mob_user = user.mob
|
|
if(!LAZYLEN(mob_user.do_afters) || HAS_TRAIT(mob_user, TRAIT_INCAPACITATED))
|
|
return
|
|
// this is currently the best way to stop all ongoing doafters
|
|
mob_user.incapacitate(0.1 SECONDS, ignore_canstun = TRUE)
|