af65c90125
This is a pretty big change all around. The gist of it is that it moves the mobility_flags into traits or variables that can track the sources, and to which we can append code to react to the events, be it via signals or via on_event-like procs. For example, MOBILITY_STAND could mean, depending on context, that the mob is either already standing or that it may be able to stand, and thus is lying down. There was a lot of snowflakery and redefinitions on top of redefinitions, so this is bound to create bugs I'm willing to fix as I learn them. The end-goal is for every living mob to use the same mobility system, for the traits to mean the same among them, and for no place to just mass-change settings without a way to trace it, such as with mobility_flags = NONE and mobility_flags = ALL Fixes AIs being able to strip nearby people. They've lost their hands usage.
77 lines
1.8 KiB
Plaintext
77 lines
1.8 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)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/L = user.mob
|
|
L.resist()
|
|
return TRUE
|
|
|
|
/datum/keybinding/living/look_up
|
|
hotkey_keys = list("L")
|
|
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)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/L = user.mob
|
|
L.look_up()
|
|
return TRUE
|
|
|
|
/datum/keybinding/living/look_up/up(client/user)
|
|
var/mob/living/L = user.mob
|
|
L.end_look_up()
|
|
return TRUE
|
|
|
|
/datum/keybinding/living/look_down
|
|
hotkey_keys = list(";")
|
|
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)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/L = user.mob
|
|
L.look_down()
|
|
return TRUE
|
|
|
|
/datum/keybinding/living/look_down/up(client/user)
|
|
var/mob/living/L = user.mob
|
|
L.end_look_down()
|
|
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)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
var/mob/living/living_mob = user.mob
|
|
living_mob.toggle_resting()
|
|
return TRUE
|