mob
The mob, usually meant to be a creature of some type
Has a client attached that is a living person (most of the time), although I have to admit sometimes it's hard to tell they're sentient
Has a lot of the creature game world logic, such as health etc
Vars | |
actions | List of action hud items the user has |
---|---|
actionspeed_mod_immunities | List of action speed modifiers ignored by this mob. List -> List (id) -> List (sources) |
actionspeed_modification | List of action speed modifiers applying to this mob |
active_hand_index | What hand is the active hand |
active_storage | Storage component (for mob inventory) |
active_thinking_indicator | the icon currently used for the thinking indicator's bubble |
active_typing_indicator | the icon currently used for the typing indicator's bubble |
alerts | Contains /atom/movable/screen/alert only. |
ambience_tracked_area | A ref of the area we're taking our ambient loop from. |
bodytemperature | Default body temperature |
buckled | movable atom we are buckled to |
cached_multiplicative_actions_slowdown | The calculated mob action speed slowdown based on the modifiers list |
cached_multiplicative_slowdown | The calculated mob speed slowdown based on the modifiers list |
canon_client | The current client inhabiting this mob. Managed by login/logout This exists so we can do cleanup in logout for occasions where a client was transfere rather then destroyed We need to do this because the mob on logout never actually has a reference to client We also need to clear this var/do other cleanup in client/Destroy, since that happens before logout HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH |
click_intercept | Allows a datum to intercept all click calls this mob is the source of |
do_afters | For storing what do_after's someone has, key = string, value = amount of interactions of that type happening. |
emotes_used | Used for tracking last uses of emotes for cooldown purposes |
examine_cursor_icon | Cursor icon used when holding shift over things |
held_items | list of items held in hands |
hud_used | Active hud |
incapacitated | Whether and how a mob is incapacitated |
job | What job does this mob have |
lastKnownIP | The last known IP of the client who was in this mob |
lighting_color_cutoffs | A list of red, green and blue cutoffs This is what actually gets applied to the mob, it's modified by things like glasses |
lighting_cutoff | Percentage of how much rgb to max the lighting plane at This lets us brighten it without washing out color Scale from 0-100, reset off update_sight() |
listed_turf | the current turf being examined in the stat panel |
mob_flags | Mob bitflags |
mock_client | A mock client, provided by tests and friends |
movespeed_mod_immunities | List of movement speed modifiers ignored by this mob. List -> List (id) -> List (sources) |
movespeed_modification | List of movement speed modifiers applying to this mob |
next_move | Tick time the mob can next move |
nutrition | Hunger level of the mob |
observers | The list of people observing this mob. |
old_bodytemperature | Our body temperatue as of the last process, prevents pointless work when handling alerts |
overeatduration | How many ticks this mob has been over reating |
progressbars | List of progress bars this mob is currently seeing for actions |
real_name | What is the mobs real name (name is overridden for disguises etc) |
registered_z | The z level this mob is currently registered in |
remote_control | Calls relay_move() to whatever this is set to when the mob tries to move |
satiety | Satiation level of the mob |
sound_environment_override | Override for sound_environments. If this is set the user will always hear a specific type of reverb (Instead of the area defined reverb) |
stat | Whether a mob is alive or dead. TODO: Move this to living - Nodrak (2019, still here) |
status_flags | bitflags defining which status effects can be inflicted (replaces canknockdown, canstun, etc) |
tgui_open_uis | global |
throw_mode | Is the mob throw intent on |
updating_glide_size | Whether the mob is updating glide size when movespeed updates or not |
zone_selected | The zone this mob is currently targeting |
Procs | |
AltClickOn | Main proc for primary alt click |
AltClickSecondaryOn | Main proc for secondary alt click |
Cell | Some kind of debug verb that gives atmosphere environment details |
ClickOn | Standard mob ClickOn() |
CtrlClickOn | Ctrl click |
CtrlMiddleClickOn | Ctrl mouse wheel click Except for tagging datumns same as control click |
CtrlShiftClickOn | Control+Shift click Unused except for AI |
DblClickOn | Default behavior: ignore double clicks (the second click that makes the doubleclick call already calls for a normal click) |
Destroy | Delete a mob |
GenerateTag | Generate the tag for this mob |
Initialize | Intialize a mob |
Login | Run when a client is put in this mob or reconnets to byond and their client was on this mob. Anything that sleeps can result in the client reference being dropped, due to byond using that sleep to handle a client disconnect. You can save a lot of headache if you make Login use SHOULD_NOT_SLEEP, but that would require quite a bit of refactoring how Login code works. |
MiddleClickOn | Middle click Mainly used for swapping hands |
MouseWheelOn | MouseWheelOn |
Process_Spacemove | Handles mob/living movement in space (or no gravity) |
RangedAttack | Ranged unarmed attack: |
ShiftClickOn | Shift click For most mobs, examine. This is overridden in ai.dm |
UnarmedAttack | UnarmedAttack: The higest level of mob click chain discounting click itself. |
_pointed | possibly delayed verb that finishes the pointing process starting in [/mob/verb/pointed()]. either called immediately or in the tick after pointed() was called, as per the [DEFAULT_QUEUE_OR_CALL_VERB()] macro |
abandon_mob | Allows you to respawn, abandoning your current mob |
add_actionspeed_modifier | Add a action speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID. |
add_client_colour | Adds an instance of colour_type to the mob's client_colours list colour_type - a typepath (subtyped from /datum/client_colour) |
add_movespeed_modifier | Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID. |
add_to_alive_mob_list | Adds the mob reference to the list of all mobs alive. If mob is cliented, it adds it to the list of all living player-mobs. |
add_to_current_dead_players | Adds the cliented mob reference to either the list of dead player-mobs or to the list of observers, depending on how they joined the game. |
add_to_current_living_antags | Adds the cliented mob reference to the list of living antag player-mobs. |
add_to_current_living_players | Adds the cliented mob reference to the list of living player-mobs. If the mob is an antag, it adds it to the list of living antag player-mobs. |
add_to_dead_mob_list | Adds the mob reference to the list of all the dead mobs. If mob is cliented, it adds it to the list of all dead player-mobs. |
add_to_mob_list | Adds the mob reference to the list and directory of all mobs. Called on Initialize(). |
add_to_mob_suicide_list | Adds a mob reference to the list of all suicided mobs |
add_to_player_list | Adds the cliented mob reference to the list of all player-mobs, besides to either the of dead or alive player-mob lists, as appropriate. Called on Login(). |
adjust_bodytemperature | Adjust the body temperature of a mob, with min/max settings |
adjust_disgust | Adjust the disgust level of a mob |
adjust_nutrition | Adjust the nutrition of a mob |
animate_client_colour | Works similarly to 'update_client_colour', but animated. |
apply_pref_name | Generalised helper proc for letting mobs rename themselves. Used to be clname() and ainame() |
attack_ui | This proc is called whenever someone clicks an inventory ui slot. |
audible_message | Show a message to all mobs in earshot of this one |
auto_deadmin_on_login | Checks if the attached client is an admin and may deadmin them |
base_click_alt | |
base_click_alt_secondary | |
base_click_ctrl | |
base_click_ctrl_shift | |
become_uncliented | Cleanup proc that's called when a mob loses a client, either through client destroy or logout Logout happens post client del, so we can't just copypaste this there. This keeps things clean and consistent |
buckle_mob | Buckle a living mob to this mob. Also turns you to face the other mob |
build_incapacitated | Returns an updated incapacitated bitflag. If a flag is set it means we're incapacitated in that case |
canUseStorage | Can this mob use storage |
can_block_magic | Checks to see if the mob can block magic |
can_cast_magic | Checks to see if the mob can cast normal magic spells. |
can_hear | Can the mob hear |
can_hold_items | Can this mob hold items |
can_interact_with | Can the mob interact() with an atom? |
can_mutate | Returns TRUE if the mob is allowed to mutate via its DNA, or FALSE if otherwise. Only an organic Carbon with valid DNA may mutate; not robots, AIs, aliens, Ians, or other mobs. |
can_perform_action | Checks whether a mob can perform an action to interact with an object |
can_read | Can this mob read |
can_resist | Can this mob resist (default FALSE) |
can_see_reagents | Can the mob see reagents inside of containers? |
can_write | Proc that returns TRUE if the mob can write using the writing_instrument, FALSE otherwise. |
cancel_camera | Sometimes helps if the user is stuck in another perspective or camera |
change_mob_type_unchecked | Version of [change_mob_type] that does no usr prompting (may send an error message though). Satisfies procs with the SHOULD_NOT_SLEEP restriction |
check_emote | Check if this message is an emote |
check_respawn_delay | Checks if the mob can respawn yet according to the respawn delay |
clear_important_client_contents | Clears the clients channel of this mob |
click_random_mob | Clicks a random nearby mob with the source from this mob |
copy_recent_speech | Returns an associative list of the logs of a certain amount of lines spoken recently by this mob copy_amount - number of lines to return line_chance - chance to return a line, if you don't want just the most recent x lines |
create_chat_message | Creates a message overlay at a defined location for a given speaker |
create_thinking_indicator | Creates a thinking indicator over the mob. |
create_typing_indicator | Creates a typing indicator over the mob. |
default_lighting_cutoff | Returns this mob's default lighting alpha |
do_after_count | Returns the total amount of do_afters this mob is taking part in |
down | Moves a mob down a z level |
dropItemToGround | Used to drop an item (if it exists) to the ground. |
drop_all_held_items | Returns a list of all dropped held items. If none were dropped, returns an empty list. |
drop_everything | Safely drop everything, without deconstructing the mob |
enable_client_mobs_in_contents | propogates ourselves through our nested contents, similar to other important_recursive_contents procs main difference is that client contents need to possibly duplicate recursive contents for the clients mob AND its eye |
equip_to_appropriate_slot | Auto equip the passed in item the appropriate slot based on equipment priority |
equip_to_slot | Actually equips an item to a slot (UNSAFE) |
equip_to_slot_if_possible | Try to equip an item to a slot on the mob |
equip_to_slot_or_del | Equip an item to the slot or delete |
examinate | Examine a mob |
execute_mode | proc version to finish /mob/verb/mode() execution. used in case the proc needs to be queued for the tick after its first called |
execute_quick_equip | proc extender of [/mob/verb/quick_equip] used to make the verb queuable if the server is overloaded |
face_atom | Simple helper to face what you clicked on, in case it should be needed in more than one place |
first_name | Find the first name of a mob from the real name with regex |
fully_replace_character_name | Fully update the name of a mob |
generate_random_mob_name | Generates a random name for the mob based on their gender or species (for humans) |
get_actions_for_statpanel | Convert a list of spells into a displyable list for the statpanel |
get_actionspeed_modifiers | Get the action speed modifiers list of the mob |
get_active_hand | Get the bodypart for whatever hand we have active, Only relevant for carbons |
get_active_held_item | Returns the thing we're currently holding |
get_config_multiplicative_speed | Get the global config movespeed of a mob by type |
get_equipped_speed_mod_items | Get all items in our possession that should affect our movespeed |
get_ghost | Get the ghost of this mob (from the mind) |
get_inactive_hand | Gets the inactive hand of the mob. Returns FALSE on non-carbons, otherwise returns the /obj/item/bodypart. |
get_item_by_slot | Get the item on the mob in the storage slot identified by the id passed in |
get_message_mods | Extracts and cleans message of any extenstions at the begining of the message Inserts the info into the passed list, returns the cleaned message |
get_mob_buckling_height | returns the height in pixel the mob should have when buckled to another mob. |
get_movespeed_modifiers | Get the move speed modifiers list of the mob |
get_num_held_items | Find number of held items, multihand compatible |
get_organ_by_type | Get the organ object from the mob matching the passed in typepath |
get_organ_slot | Returns a list of all organs in specified slot |
get_organs_for_zone | Get organ objects by zone |
get_photo_description | Return the desc of this mob for a photo |
get_policy_keywords | Get the list of keywords for policy config |
get_random_valid_zone | More or less ran_zone, but only returns bodyzones that the mob /actually/ has. |
get_realname_string | Returns a mob's real name between brackets. Useful when you want to display a mob's name alongside their real name |
get_slot_by_item | Gets what slot the item on the mob is held in. Returns null if the item isn't in any slots on our mob. Does not check if the passed item is null, which may result in unexpected outcoms. |
get_spacemove_backup | Finds a target near a mob that is viable for pushing off when moving. Takes the intended movement direction as input, alongside if the context is checking if we're allowed to continue drifting |
get_status_tab_items | Adds this list to the output to the stat browser |
ghost_before_admin_delete | Signal proc for COMSIG_ADMIN_DELETING, to ghostize a mob beforehand if an admin is manually deleting it. |
grab_ghost | Force get the ghost from the mind |
grant_actions_by_list | Takes in an associated list (key /datum/action typepaths, value is the AI blackboard key) and handles granting the action and adding it to the mob's AI controller blackboard.
This is only useful in instances where you don't want to store the reference to the action on a variable on the mob.
You can set the value to null if you don't want to add it to the blackboard (like in player controlled instances). Is also safe with null AI controllers.
Assumes that the action will be initialized and held in the mob itself, which is typically standard. |
handle_eye_contact | handle_eye_contact() is called when we examine() something. If we examine an alive mob with a mind who has examined us in the last 2 seconds within 5 tiles, we make eye contact! |
handle_spacemove_grabbing | We handle lattices via backups |
has_actionspeed_modifier | Is there a actionspeed modifier for this mob |
has_light_nearby | Checks if there is enough light where the mob is located |
has_movespeed_modifier | Is there a movespeed modifier for this mob |
has_nightvision | Can this mob see in the dark |
has_status_effect | Checks if this mob has a status effect that shares the passed effect's ID |
has_status_effect_from_source | Checks if this mob has a status effect that shares the passed effect's ID and has the passed sources are in its list of sources (ONLY works for grouped efects!) |
has_status_effect_list | Returns a list of all status effects that share the passed effect type's ID |
hide_other_mob_action_buttons | Hide another mob's action buttons from this mob |
hivecheck | Check if the mob has a hivemind channel |
initialize_actionspeed | Adds a default action speed |
is_holding_items | Returns true if a mob is holding something |
is_literate | This mob is abile to read books |
is_nearsighted_currently | Is the mob nearsighted CURRENTLY? This check fails if the mob is nearsighted but is wearing glasses, While is_nearsighted will always succeed even if they are wearing glasses. |
last_name | Find the last name of a mob from the real name with regex |
limb_attack_self | Called by using Activate Held Object with an empty hand/limb |
log_manual_zone_selected_update | Generates a log message when a user manually changes their targeted zone. Only need to one of new_target or old_target, and the other will be auto populated with the current selected zone. |
log_message | Logs a message in a mob's individual log, and in the global logs as well if log_globally is true |
log_mob_tag | Logs a message to the mob_tags log, including the mobs tag Arguments: |
lost_game | This proc sends the COMSIG_MOB_LOST_VIDEOGAME signal |
lowest_buckled_mob | Find the mob at the bottom of a buckle chain |
make_pai | Creates a new pAI. |
me_verb | The me emote verb |
memory | Shows a tgui window with memories |
mob_negates_gravity | Does this mob ignore gravity |
mode | Verb to activate the object in your held hand |
notify_revival | Notify a ghost that its body is being revived |
onShuttleMove | Mob move procs |
on_block_magic_effects | Called whenever a magic effect with a charge cost is blocked and we haven't recently blocked magic. |
on_observing_action_granted | Signal proc for COMSIG_MOB_GRANTED_ACTION - If we're viewing another mob's action buttons, we need to update with any newly added buttons granted to the mob. |
on_observing_action_removed | Signal proc for COMSIG_MOB_REMOVED_ACTION - If we're viewing another mob's action buttons, we need to update with any removed buttons from the mob. |
open_language_menu_verb | Show the language menu for this mob |
perform_hand_swap | Performs the actual ritual of swapping hands, such as setting the held index variables |
played_game | This proc sends the COMSIG_MOB_PLAYED_VIDEOGAME signal |
playsound_local | Plays a sound with a specific point of origin for src mob Affected by pressure, distance, terrain and environment (see arguments) |
pointed | Point at an atom |
post_buckle_mob | Call back post buckle to a mob to offset your visual height |
post_unbuckle_mob | Call back post unbuckle from a mob, (reset your visual height here) |
query_heart | Ask someone if they'd like to award a commendation for the round, 3 tries to get the name they want before we give up |
ranged_secondary_attack | Ranged secondary attack |
reagent_check | Proc used for custom metabolization of reagents, if any |
regenerate_icons | Redraws the entire mob. For carbons, this is rather expensive, please use the individual update_X procs. |
remove_actionspeed_modifier | Remove a action speed modifier from a mob, whether static or variable. |
remove_all_indicators | Removes any indicators and marks the mob as not speaking IC. |
remove_client_colour | Removes an instance of colour_type from the mob's client_colours list colour_type - a typepath (subtyped from /datum/client_colour) |
remove_from_alive_mob_list | Removes the mob reference from the list of all mobs alive. If mob is cliented, it removes it from the list of all living player-mobs. |
remove_from_current_dead_players | Removes the mob reference from either the list of dead player-mobs or from the list of observers, depending on how they joined the game. |
remove_from_current_living_antags | Removes the mob reference from the list of living antag player-mobs. |
remove_from_current_living_players | Removes the mob reference from the list of living player-mobs. If the mob is an antag, it removes it from the list of living antag player-mobs. |
remove_from_dead_mob_list | Remvoes the mob reference from list of all the dead mobs. If mob is cliented, it adds it to the list of all dead player-mobs. |
remove_from_mob_list | Removes the mob reference from the list and directory of all mobs. Called on Destroy(). |
remove_from_mob_suicide_list | Removes a mob references from the list of all suicided mobs |
remove_from_player_list | Removes the mob reference from the list of all player-mobs, besides from either the of dead or alive player-mob lists, as appropriate. Called on Logout(). |
remove_movespeed_modifier | Remove a move speed modifier from a mob, whether static or variable. |
remove_thinking_indicator | Removes the thinking indicator over the mob. |
remove_typing_indicator | Removes the typing indicator over the mob. |
replace_identification_name | update the ID name of this mob |
replace_records_name | Updates GLOB.manifest records with new name , see mob/living/carbon/human |
reset_perspective | Reset the attached clients perspective (viewpoint) |
say_dead | Speak as a dead person (ghost etc) |
say_verb | what clients use to speak. when you type a message into the chat bar in say mode, this is the first thing that goes off serverside. |
set_disgust | Set the disgust level of a mob |
set_invis_see | see invisibility is the mob's capability to see things that ought to be hidden from it Can think of it as a primitive version of changing the alpha of planes We mostly use it to hide ghosts, no real reason why |
set_nutrition | Force set the mob nutrition |
set_sight | Sight here is the mob.sight var, which tells byond what to actually show to our client See code__DEFINES\sight.dm for more details |
set_species | DNA MOB-PROCS |
shared_ui_interaction | public |
show_message | Show a message to this mob (visual or audible) |
show_other_mob_action_buttons | Show (most) of the another mob's action buttons to this mob |
shuttleRotate | Mob rotate procs |
slip | Called when this mob slips over, override as needed |
spin | Spin this mob around it's central axis |
sync_lighting_plane_cutoff | Set the lighting plane hud filters to the mobs lighting_cutoff var |
throw_alert | Proc to create or update an alert. Returns the alert if the alert is new or updated, 0 if it was thrown already category is a text string. Each mob may only have one alert per category; the previous one will be replaced path is a type path of the actual alert type to throw severity is an optional number that will be placed at the end of the icon_state for this alert for example, high pressure's icon_state is "highpressure" and can be serverity 1 or 2 to get "highpressure1" or "highpressure2" new_master is optional and sets the alert's icon state to "template" in the ui_style icons with the master as an overlay. flicks are forwarded to master override makes it so the alert is not replaced until cleared by a clear_alert with clear_override, and it's used for hallucinations. |
up | Moves a mob upwards in z level |
update_action_buttons | This proc handles adding all of the mob's actions to their screen |
update_actionspeed | Go through the list of actionspeed modifiers and calculate a final actionspeed. ANY ADD/REMOVE DONE IN UPDATE_actionspeed MUST HAVE THE UPDATE ARGUMENT SET AS FALSE! |
update_ambience_area | Ambience buzz handling called by either area/Enter() or refresh_looping_ambience() |
update_body | Updates every part of a carbon's body. Including parts, mutant parts, lips, underwear, and socks. |
update_client_colour | Resets the mob's client.color to null, and then reapplies a new color based on the client_colour datums it currently has. |
update_clothing | Updates every item slot passed into it. |
update_config_movespeed | Set or update the global movespeed config on a mob |
update_equipment_speed_mods | Apply a proper movespeed modifier based on items we have equipped |
update_held_items | Updates the held items overlay(s) & HUD element. |
update_incapacitated | Called whenever anything that modifes incapacitated is ran, updates it and sends a signal if it changes Returns TRUE if anything changed, FALSE otherwise |
update_mob_action_buttons | Updates all action buttons this mob has. |
update_mouse_pointer | Update the mouse pointer of the attached client in this mob |
update_movespeed | Go through the list of movespeed modifiers and calculate a final movespeed. ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE! |
update_obscured_slots | Updates item slots obscured by this item (or using an override of flags to check) |
update_pockets | Updates the pocket overlay & HUD element. |
update_pull_hud_icon | Update the pulling hud icon |
update_rest_hud_icon | Update the resting hud icon |
update_sight | Update the lighting plane and sight of this mob (sends COMSIG_MOB_UPDATE_SIGHT) |
update_stamina_hud | Changes the stamina HUD based on new information |
update_suit_storage | Updates the suit storage overlay & HUD element. |
update_worn_back | Updates the back overlay & HUD element. |
update_worn_belt | Updates the belt overlay & HUD element. |
update_worn_ears | Updates the headset overlay & HUD element. |
update_worn_glasses | Updates the glasses overlay & HUD element. |
update_worn_gloves | Updates the glasses overlay & HUD element. |
update_worn_handcuffs | Updates the handcuff overlay & HUD element. |
update_worn_head | Updates the on-head overlay & HUD element. |
update_worn_id | Updates the id overlay & HUD element. |
update_worn_legcuffs | Updates the legcuff overlay & HUD element. |
update_worn_mask | Updates the mask overlay & HUD element. |
update_worn_neck | Updates the neck overlay & HUD element. |
update_worn_oversuit | Updates the oversuit overlay & HUD element. |
update_worn_shoes | Updates the shoes overlay & HUD element. |
update_worn_undersuit | Updates the undersuit/uniform overlay & HUD element. |
visible_message | Adds the functionality to self_message. |
vote | Mob level verb that allows players to vote on the current vote. |
vv_get_dropdown | Get the mob VV dropdown extras |
vv_get_var | extra var handling for the logging var |
whisper | Whisper a message. |
whisper_verb | Whisper verb |
won_game | This proc sends the COMSIG_MOB_WON_VIDEOGAME signal |
Var Details
actions
List of action hud items the user has
actionspeed_mod_immunities
List of action speed modifiers ignored by this mob. List -> List (id) -> List (sources)
actionspeed_modification
List of action speed modifiers applying to this mob
active_hand_index
What hand is the active hand
active_storage
Storage component (for mob inventory)
active_thinking_indicator
the icon currently used for the thinking indicator's bubble
active_typing_indicator
the icon currently used for the typing indicator's bubble
alerts
Contains /atom/movable/screen/alert only.
On /mob so clientless mobs will throw alerts properly.
ambience_tracked_area
A ref of the area we're taking our ambient loop from.
bodytemperature
Default body temperature
buckled
movable atom we are buckled to
cached_multiplicative_actions_slowdown
The calculated mob action speed slowdown based on the modifiers list
cached_multiplicative_slowdown
The calculated mob speed slowdown based on the modifiers list
canon_client
The current client inhabiting this mob. Managed by login/logout This exists so we can do cleanup in logout for occasions where a client was transfere rather then destroyed We need to do this because the mob on logout never actually has a reference to client We also need to clear this var/do other cleanup in client/Destroy, since that happens before logout HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
click_intercept
Allows a datum to intercept all click calls this mob is the source of
do_afters
For storing what do_after's someone has, key = string, value = amount of interactions of that type happening.
emotes_used
Used for tracking last uses of emotes for cooldown purposes
examine_cursor_icon
Cursor icon used when holding shift over things
held_items
list of items held in hands
len = number of hands, eg: 2 nulls is 2 empty hands, 1 item and 1 null is 1 full hand and 1 empty hand.
NB: contains nulls!
held_items[active_hand_index]
is the actively held item, but please use
get_active_held_item() instead, because OOP
hud_used
Active hud
incapacitated
Whether and how a mob is incapacitated
Normally being restrained, agressively grabbed, or in stasis counts as incapacitated unless there is a flag being used to check if it's ignored
- bitflags: (see code/__DEFINES/status_effects.dm)
- INCAPABLE_RESTRAINTS - if our mob is in a restraint (handcuffs)
- INCAPABLE_STASIS - if our mob is in stasis (stasis bed, etc.)
- INCAPABLE_GRAB - if our mob is being agressively grabbed
job
What job does this mob have
lastKnownIP
The last known IP of the client who was in this mob
lighting_color_cutoffs
A list of red, green and blue cutoffs This is what actually gets applied to the mob, it's modified by things like glasses
lighting_cutoff
Percentage of how much rgb to max the lighting plane at This lets us brighten it without washing out color Scale from 0-100, reset off update_sight()
listed_turf
the current turf being examined in the stat panel
mob_flags
Mob bitflags
mock_client
A mock client, provided by tests and friends
movespeed_mod_immunities
List of movement speed modifiers ignored by this mob. List -> List (id) -> List (sources)
movespeed_modification
List of movement speed modifiers applying to this mob
next_move
Tick time the mob can next move
nutrition
Hunger level of the mob
observers
The list of people observing this mob.
old_bodytemperature
Our body temperatue as of the last process, prevents pointless work when handling alerts
overeatduration
How many ticks this mob has been over reating
progressbars
List of progress bars this mob is currently seeing for actions
real_name
What is the mobs real name (name is overridden for disguises etc)
registered_z
The z level this mob is currently registered in
remote_control
Calls relay_move() to whatever this is set to when the mob tries to move
satiety
Satiation level of the mob
sound_environment_override
Override for sound_environments. If this is set the user will always hear a specific type of reverb (Instead of the area defined reverb)
stat
Whether a mob is alive or dead. TODO: Move this to living - Nodrak (2019, still here)
status_flags
bitflags defining which status effects can be inflicted (replaces canknockdown, canstun, etc)
tgui_open_uis
global
Tracks open UIs for a user.
throw_mode
Is the mob throw intent on
updating_glide_size
Whether the mob is updating glide size when movespeed updates or not
zone_selected
The zone this mob is currently targeting
Proc Details
AltClickOn
Main proc for primary alt click
AltClickSecondaryOn
Main proc for secondary alt click
Cell
Some kind of debug verb that gives atmosphere environment details
ClickOn
Standard mob ClickOn()
After that, mostly just check your state, check whether you're holding an item, check whether you're adjacent to the target, then pass off the click to whoever is receiving it.
The most common are:
- mob/proc/UnarmedAttack (atom,adjacent) - used here only when adjacent, with no item in hand; in the case of humans, checks gloves
- atom/proc/attackby (item,user) - used only when adjacent
- obj/item/proc/afterattack (atom,user,adjacent,params) - used both ranged and adjacent
- mob/proc/RangedAttack (atom,modifiers) - used only ranged, only used for tk and laser eyes but could be changed
CtrlClickOn
Ctrl click
CtrlMiddleClickOn
Ctrl mouse wheel click Except for tagging datumns same as control click
CtrlShiftClickOn
Control+Shift click Unused except for AI
DblClickOn
Default behavior: ignore double clicks (the second click that makes the doubleclick call already calls for a normal click)
Destroy
Delete a mob
Removes mob from the following global lists
- GLOB.mob_list
- GLOB.dead_mob_list
- GLOB.alive_mob_list
- GLOB.all_clockwork_mobs
Unsets the focus var
Clears alerts for this mob
Resets all the observers perspectives to the tile this mob is on
qdels any client colours in place on this mob
Clears any refs to the mob inside its current location
Ghostizes the client attached to this mob
If our mind still exists, clear its current var to prevent harddels
Parent call
GenerateTag
Generate the tag for this mob
This is simply "mob_"+ a global incrementing counter that goes up for every mob
Initialize
Intialize a mob
Sends global signal COMSIG_GLOB_MOB_CREATED
Adds to global lists
- GLOB.mob_list
- GLOB.dead_mob_list - if mob is dead
- GLOB.alive_mob_list - if the mob is alive
Other stuff:
- Sets the mob focus to itself
- Generates huds
- If there are any global alternate apperances apply them to this mob
- set a random nutrition level
- Intialize the movespeed of the mob
Login
Run when a client is put in this mob or reconnets to byond and their client was on this mob. Anything that sleeps can result in the client reference being dropped, due to byond using that sleep to handle a client disconnect. You can save a lot of headache if you make Login use SHOULD_NOT_SLEEP, but that would require quite a bit of refactoring how Login code works.
Things it does:
- Adds player to player_list
- sets lastKnownIP
- sets computer_id
- logs the login
- tells the world to update its status (for player count)
- create mob huds for the mob if needed
- reset next_move to 1
- Set statobj to our mob
- NOT the parent call. The only unique thing it does is a very obtuse move op, see the comment lower down
- if the client exists set the perspective to the mob loc
- call on_log on the loc (sigh)
- reload the huds for the mob
- reload all full screen huds attached to this mob
- load any global alternate apperances
- sync the mind datum via sync_mind()
- call any client login callbacks that exist
- grant any actions the mob has to the client
- calls auto_deadmin_on_login
- send signal COMSIG_MOB_CLIENT_LOGIN
- attaches the ash listener element so clients can hear weather client can be deleted mid-execution of this proc, chiefly on parent calls, with lag
MiddleClickOn
Middle click Mainly used for swapping hands
MouseWheelOn
MouseWheelOn
Process_Spacemove
Handles mob/living movement in space (or no gravity)
Called by /client/Move()
return TRUE for movement or FALSE for none
You can move in space if you have a spacewalk ability
RangedAttack
Ranged unarmed attack:
This currently is just a default for all mobs, involving laser eyes and telekinesis. You could easily add exceptions for things like ranged glove touches, spitting alien acid/neurotoxin, animals lunging, etc.
ShiftClickOn
Shift click For most mobs, examine. This is overridden in ai.dm
UnarmedAttack
UnarmedAttack: The higest level of mob click chain discounting click itself.
This handles, just "clicking on something" without an item. It translates into atom/proc/attack_hand, atom/proc/attack_animal etc.
Note: proximity_flag here is used to distinguish between normal usage (flag=1), and usage when clicking on things telekinetically (flag=0). This proc will not be called at ranged except with telekinesis.
proximity_flag is not currently passed to attack_hand, and is instead used in human click code to allow glove touches only at melee range.
modifiers is a lazy list of click modifiers this attack had, used for figuring out different properties of the click, mostly right vs left and such.
_pointed
possibly delayed verb that finishes the pointing process starting in [/mob/verb/pointed()]. either called immediately or in the tick after pointed() was called, as per the [DEFAULT_QUEUE_OR_CALL_VERB()] macro
abandon_mob
Allows you to respawn, abandoning your current mob
This sends you back to the lobby creating a new dead mob
Only works if flag/allow_respawn is allowed in config
add_actionspeed_modifier
Add a action speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID.
add_client_colour
Adds an instance of colour_type to the mob's client_colours list colour_type - a typepath (subtyped from /datum/client_colour)
add_movespeed_modifier
Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID.
add_to_alive_mob_list
Adds the mob reference to the list of all mobs alive. If mob is cliented, it adds it to the list of all living player-mobs.
add_to_current_dead_players
Adds the cliented mob reference to either the list of dead player-mobs or to the list of observers, depending on how they joined the game.
add_to_current_living_antags
Adds the cliented mob reference to the list of living antag player-mobs.
add_to_current_living_players
Adds the cliented mob reference to the list of living player-mobs. If the mob is an antag, it adds it to the list of living antag player-mobs.
add_to_dead_mob_list
Adds the mob reference to the list of all the dead mobs. If mob is cliented, it adds it to the list of all dead player-mobs.
add_to_mob_list
Adds the mob reference to the list and directory of all mobs. Called on Initialize().
add_to_mob_suicide_list
Adds a mob reference to the list of all suicided mobs
add_to_player_list
Adds the cliented mob reference to the list of all player-mobs, besides to either the of dead or alive player-mob lists, as appropriate. Called on Login().
adjust_bodytemperature
Adjust the body temperature of a mob, with min/max settings
adjust_disgust
Adjust the disgust level of a mob
adjust_nutrition
Adjust the nutrition of a mob
animate_client_colour
Works similarly to 'update_client_colour', but animated.
apply_pref_name
Generalised helper proc for letting mobs rename themselves. Used to be clname() and ainame()
attack_ui
This proc is called whenever someone clicks an inventory ui slot.
Mostly tries to put the item into the slot if possible, or call attack hand on the item in the slot if the users active hand is empty
audible_message
Show a message to all mobs in earshot of this one
This would be for audible actions by the src mob
vars:
- message is the message output to anyone who can hear.
- self_message (optional) is what the src mob hears.
- deaf_message (optional) is what deaf people will see.
- hearing_distance (optional) is the range, how many tiles away the message can be heard.
auto_deadmin_on_login
Checks if the attached client is an admin and may deadmin them
Configs:
- flag/auto_deadmin_players
- client.prefs?.toggles & DEADMIN_ALWAYS
- User is antag and flag/auto_deadmin_antagonists or client.prefs?.toggles & DEADMIN_ANTAGONIST
- or if their job demands a deadminning SSjob.handle_auto_deadmin_roles()
Called from login
base_click_alt
Base proc for alt click interaction left click. Returns if the click was intercepted & handled
If you wish to add custom click_alt
behavior for a single type, use that proc.
base_click_alt_secondary
Base proc for alt click interaction right click.
If you wish to add custom click_alt_secondary
behavior for a single type, use that proc.
base_click_ctrl
Base proc for ctrl click interaction left click.
If you wish to add custom click_ctrl
behavior for a single type, use that proc.
base_click_ctrl_shift
Base proc for ctrl shift click interaction left click.
If you wish to add custom click_ctrl_shift
behavior for a single type, use that proc.
become_uncliented
Cleanup proc that's called when a mob loses a client, either through client destroy or logout Logout happens post client del, so we can't just copypaste this there. This keeps things clean and consistent
buckle_mob
Buckle a living mob to this mob. Also turns you to face the other mob
You can buckle on mobs if you're next to them since most are dense
build_incapacitated
Returns an updated incapacitated bitflag. If a flag is set it means we're incapacitated in that case
canUseStorage
Can this mob use storage
can_block_magic
Checks to see if the mob can block magic
args:
- casted_magic_flags (optional) A bitfield with the types of magic resistance being checked (see flags at: /datum/component/anti_magic)
- charge_cost (optional) The cost of charge to block a spell that will be subtracted from the protection used
can_cast_magic
Checks to see if the mob can cast normal magic spells.
args:
- magic_flags (optional) A bitfield with the type of magic being cast (see flags at: /datum/component/anti_magic)
can_hear
Can the mob hear
can_hold_items
Can this mob hold items
can_interact_with
Can the mob interact() with an atom?
can_mutate
Returns TRUE if the mob is allowed to mutate via its DNA, or FALSE if otherwise. Only an organic Carbon with valid DNA may mutate; not robots, AIs, aliens, Ians, or other mobs.
can_perform_action
Checks whether a mob can perform an action to interact with an object
The default behavior checks if the mob is:
- Directly adjacent (1-tile radius)
- Standing up (not resting)
- Allows telekinesis to be used to skip adjacent checks (if they have DNA mutation)
action_bitflags: (see code/__DEFINES/mobs.dm)
- NEED_GRAVITY - If gravity must be present to perform action (can't use pens without gravity)
- NEED_LITERACY - If reading is required to perform action (can't read a book if you are illiterate)
- NEED_LIGHT - If lighting must be present to perform action (can't heal someone in the dark)
- NEED_DEXTERITY - If other mobs (monkeys, aliens, etc) can perform action (can't use computers if you are a monkey)
- NEED_HANDS - If hands are required to perform action (can't pickup items if you are a cyborg)
- FORBID_TELEKINESIS_REACH - If telekinesis is forbidden to perform action from a distance (ex. canisters are blacklisted from telekinesis manipulation)
- ALLOW_SILICON_REACH - If silicons are allowed to perform action from a distance (silicons can operate airlocks from far away)
- ALLOW_RESTING - If resting on the floor is allowed to perform action ()
- ALLOW_VENTCRAWL - Mobs with ventcrawl traits can alt-click this to vent
- BYPASS_ADJACENCY - The target does not have to be adjacent
- SILENT_ADJACENCY - Adjacency is required but errors are not printed
- NOT_INSIDE_TARGET - The target maybe adjacent but the mob should not be inside the target
silence_adjacency: Sometimes we want to use this proc to check interaction without allowing it to throw errors for base case adjacency Alt click uses this, as otherwise you can detect what is interactable from a distance via the error message
can_read
Can this mob read
can_resist
Can this mob resist (default FALSE)
can_see_reagents
Can the mob see reagents inside of containers?
can_write
Proc that returns TRUE if the mob can write using the writing_instrument, FALSE otherwise.
This proc a side effect, outputting a message to the mob's chat with a reason if it returns FALSE. Unless silent_if_not_writing_tool is TRUE. In that case it'll be silent if it isn't a writing implement/tool/instrument w/e.
cancel_camera
Sometimes helps if the user is stuck in another perspective or camera
change_mob_type_unchecked
Version of [change_mob_type] that does no usr prompting (may send an error message though). Satisfies procs with the SHOULD_NOT_SLEEP restriction
check_emote
Check if this message is an emote
check_respawn_delay
Checks if the mob can respawn yet according to the respawn delay
clear_important_client_contents
Clears the clients channel of this mob
click_random_mob
Clicks a random nearby mob with the source from this mob
copy_recent_speech
Returns an associative list of the logs of a certain amount of lines spoken recently by this mob copy_amount - number of lines to return line_chance - chance to return a line, if you don't want just the most recent x lines
create_chat_message
Creates a message overlay at a defined location for a given speaker
Arguments:
- speaker - The atom who is saying this message
- message_language - The language that the message is said in
- raw_message - The text content of the message
- spans - Additional classes to be added to the message
create_thinking_indicator
Creates a thinking indicator over the mob.
create_typing_indicator
Creates a typing indicator over the mob.
default_lighting_cutoff
Returns this mob's default lighting alpha
do_after_count
Returns the total amount of do_afters this mob is taking part in
down
Moves a mob down a z level
dropItemToGround
Used to drop an item (if it exists) to the ground.
- Will return null if the item wasn't dropped.
- If it was, returns the item. If the item can be dropped, it will be forceMove()'d to the ground and the turf's Entered() will be called.
drop_all_held_items
Returns a list of all dropped held items. If none were dropped, returns an empty list.
drop_everything
Safely drop everything, without deconstructing the mob
enable_client_mobs_in_contents
propogates ourselves through our nested contents, similar to other important_recursive_contents procs main difference is that client contents need to possibly duplicate recursive contents for the clients mob AND its eye
equip_to_appropriate_slot
Auto equip the passed in item the appropriate slot based on equipment priority
puts the item "W" into an appropriate slot in a human's inventory
returns 0 if it cannot, 1 if successful
equip_to_slot
Actually equips an item to a slot (UNSAFE)
This is an UNSAFE proc. It merely handles the actual job of equipping. All the checks on whether you can or can't equip need to be done before! Use mob_can_equip() for that task.
In most cases you will want to use equip_to_slot_if_possible()
equip_to_slot_if_possible
Try to equip an item to a slot on the mob
This is a SAFE proc. Use this instead of equip_to_slot()!
set qdel_on_fail to have it delete W if it fails to equip
set disable_warning to disable the 'you are unable to equip that' warning.
unset redraw_mob to prevent the mob icons from being redrawn at the end.
Initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it
set indirect_action to allow insertions into "soft" locked objects, things that are easily opened by the owning mob
equip_to_slot_or_del
Equip an item to the slot or delete
This is just a commonly used configuration for the equip_to_slot_if_possible() proc, used to equip people when the round starts and when events happen and such.
Also bypasses equip delay checks, since the mob isn't actually putting it on. Initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it set indirect_action to allow insertions into "soft" locked objects, things that are easily opened by the owning mob
examinate
Examine a mob
mob verbs are faster than object verbs. See this byond forum post for why this isn't atom/verb/examine()
execute_mode
proc version to finish /mob/verb/mode() execution. used in case the proc needs to be queued for the tick after its first called
execute_quick_equip
proc extender of [/mob/verb/quick_equip] used to make the verb queuable if the server is overloaded
face_atom
Simple helper to face what you clicked on, in case it should be needed in more than one place
first_name
Find the first name of a mob from the real name with regex
fully_replace_character_name
Fully update the name of a mob
This will update a mob's name, real_name, mind.name, GLOB.manifest records, pda, id and traitor text
Calling this proc without an oldname will only update the mob and skip updating the pda, id and records ~Carn
generate_random_mob_name
Generates a random name for the mob based on their gender or species (for humans)
- unique - If the name should be unique, IE, avoid picking names that mobs already have.
get_actions_for_statpanel
Convert a list of spells into a displyable list for the statpanel
Shows charge and other important info
get_actionspeed_modifiers
Get the action speed modifiers list of the mob
get_active_hand
Get the bodypart for whatever hand we have active, Only relevant for carbons
get_active_held_item
Returns the thing we're currently holding
get_config_multiplicative_speed
Get the global config movespeed of a mob by type
get_equipped_speed_mod_items
Get all items in our possession that should affect our movespeed
get_ghost
Get the ghost of this mob (from the mind)
get_inactive_hand
Gets the inactive hand of the mob. Returns FALSE on non-carbons, otherwise returns the /obj/item/bodypart.
get_item_by_slot
Get the item on the mob in the storage slot identified by the id passed in
get_message_mods
Extracts and cleans message of any extenstions at the begining of the message Inserts the info into the passed list, returns the cleaned message
Result can be
- SAY_MODE (Things like aliens, channels that aren't channels)
- MODE_WHISPER (Quiet speech)
- MODE_SING (Singing)
- MODE_HEADSET (Common radio channel)
- RADIO_EXTENSION the extension we're using (lots of values here)
- RADIO_KEY the radio key we're using, to make some things easier later (lots of values here)
- LANGUAGE_EXTENSION the language we're trying to use (lots of values here)
get_mob_buckling_height
returns the height in pixel the mob should have when buckled to another mob.
get_movespeed_modifiers
Get the move speed modifiers list of the mob
get_num_held_items
Find number of held items, multihand compatible
get_organ_by_type
Get the organ object from the mob matching the passed in typepath
Arguments:
- typepath The typepath of the organ to get
get_organ_slot
Returns a list of all organs in specified slot
Arguments:
- slot Slot to get the organs from
get_organs_for_zone
Get organ objects by zone
This will return a list of all the organs that are relevant to the zone that is passedin
Arguments:
- zone a BODY_ZONE_X define
get_photo_description
Return the desc of this mob for a photo
get_policy_keywords
Get the list of keywords for policy config
This gets the type, mind assigned roles and antag datums as a list, these are later used to send the user relevant headadmin policy config
get_random_valid_zone
More or less ran_zone, but only returns bodyzones that the mob /actually/ has.
-
blacklisted_parts - allows you to specify zones that will not be chosen. eg: list(BODY_ZONE_CHEST, BODY_ZONE_R_LEG)
-
- !!!! blacklisting BODY_ZONE_CHEST is really risky since it's the only bodypart guarunteed to ALWAYS exists !!!!
-
- !!!! Only do that if you're REALLY CERTAIN they have limbs, otherwise we'll CRASH() !!!!
-
ran_zone has a base prob(80) to return the base_zone (or if null, BODY_ZONE_CHEST) vs something in our generated list of limbs.
-
this probability is overriden when either blacklisted_parts contains BODY_ZONE_CHEST and we aren't passed a base_zone (since the default fallback for ran_zone would be the chest in that scenario), or if even_weights is enabled.
-
you can also manually adjust this probability by altering base_probability
-
even_weights - ran_zone has a 40% chance (after the prob(80) mentioned above) of picking a limb, vs the torso & head which have an additional 10% chance.
-
Setting even_weight to TRUE will make it just a straight up pick() between all possible bodyparts.
get_realname_string
Returns a mob's real name between brackets. Useful when you want to display a mob's name alongside their real name
get_slot_by_item
Gets what slot the item on the mob is held in. Returns null if the item isn't in any slots on our mob. Does not check if the passed item is null, which may result in unexpected outcoms.
get_spacemove_backup
Finds a target near a mob that is viable for pushing off when moving. Takes the intended movement direction as input, alongside if the context is checking if we're allowed to continue drifting
get_status_tab_items
Adds this list to the output to the stat browser
ghost_before_admin_delete
Signal proc for COMSIG_ADMIN_DELETING, to ghostize a mob beforehand if an admin is manually deleting it.
grab_ghost
Force get the ghost from the mind
grant_actions_by_list
Takes in an associated list (key /datum/action
typepaths, value is the AI blackboard key) and handles granting the action and adding it to the mob's AI controller blackboard.
This is only useful in instances where you don't want to store the reference to the action on a variable on the mob.
You can set the value to null if you don't want to add it to the blackboard (like in player controlled instances). Is also safe with null AI controllers.
Assumes that the action will be initialized and held in the mob itself, which is typically standard.
handle_eye_contact
handle_eye_contact() is called when we examine() something. If we examine an alive mob with a mind who has examined us in the last 2 seconds within 5 tiles, we make eye contact!
Note that if either party has their face obscured, the other won't get the notice about the eye contact Also note that examine_more() doesn't proc this or extend the timer, just because it's simpler this way and doesn't lose much. The nice part about relying on examining is that we don't bother checking visibility, because we already know they were both visible to each other within the last second, and the one who triggers it is currently seeing them
handle_spacemove_grabbing
We handle lattices via backups
has_actionspeed_modifier
Is there a actionspeed modifier for this mob
has_light_nearby
Checks if there is enough light where the mob is located
Args: light_amount (optional) - A decimal amount between 1.0 through 0.0 (default is 0.2)
has_movespeed_modifier
Is there a movespeed modifier for this mob
has_nightvision
Can this mob see in the dark
This checks all traits, glasses, and robotic eyeball implants to see if the mob can see in the dark this does NOT check if the mob is missing it's eyeballs.
has_status_effect
Checks if this mob has a status effect that shares the passed effect's ID
checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not its typepath
Returns an instance of a status effect, or NULL if none were found.
has_status_effect_from_source
Checks if this mob has a status effect that shares the passed effect's ID and has the passed sources are in its list of sources (ONLY works for grouped efects!)
checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not its typepath
Returns an instance of a status effect, or NULL if none were found.
has_status_effect_list
Returns a list of all status effects that share the passed effect type's ID
checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not its typepath
Returns a list
hide_other_mob_action_buttons
Hide another mob's action buttons from this mob
Used for observers viewing another mob's screen
hivecheck
Check if the mob has a hivemind channel
initialize_actionspeed
Adds a default action speed
is_holding_items
Returns true if a mob is holding something
is_literate
This mob is abile to read books
is_nearsighted_currently
Is the mob nearsighted CURRENTLY? This check fails if the mob is nearsighted but is wearing glasses, While is_nearsighted will always succeed even if they are wearing glasses.
last_name
Find the last name of a mob from the real name with regex
limb_attack_self
Called by using Activate Held Object with an empty hand/limb
Does nothing by default. The intended use is to allow limbs to call their own attack_self procs. It is up to the individual mob to override this parent and actually use it.
log_manual_zone_selected_update
Generates a log message when a user manually changes their targeted zone. Only need to one of new_target or old_target, and the other will be auto populated with the current selected zone.
log_message
Logs a message in a mob's individual log, and in the global logs as well if log_globally is true
log_mob_tag
Logs a message to the mob_tags log, including the mobs tag Arguments:
- text - text to log.
lost_game
This proc sends the COMSIG_MOB_LOST_VIDEOGAME signal
This should be called by games when the gamer reaches a losing state
lowest_buckled_mob
Find the mob at the bottom of a buckle chain
make_pai
Creates a new pAI.
@param {boolean} delete_old - If TRUE, deletes the old pAI.
me_verb
The me emote verb
memory
Shows a tgui window with memories
mob_negates_gravity
Does this mob ignore gravity
mode
Verb to activate the object in your held hand
Calls attack self on the item and updates the inventory hud for hands
notify_revival
Notify a ghost that its body is being revived
onShuttleMove
Mob move procs
on_block_magic_effects
Called whenever a magic effect with a charge cost is blocked and we haven't recently blocked magic.
on_observing_action_granted
Signal proc for COMSIG_MOB_GRANTED_ACTION - If we're viewing another mob's action buttons, we need to update with any newly added buttons granted to the mob.
on_observing_action_removed
Signal proc for COMSIG_MOB_REMOVED_ACTION - If we're viewing another mob's action buttons, we need to update with any removed buttons from the mob.
open_language_menu_verb
Show the language menu for this mob
perform_hand_swap
Performs the actual ritual of swapping hands, such as setting the held index variables
played_game
This proc sends the COMSIG_MOB_PLAYED_VIDEOGAME signal
This should be called by games whenever the gamer interacts with the device
playsound_local
Plays a sound with a specific point of origin for src mob Affected by pressure, distance, terrain and environment (see arguments)
Arguments:
- turf_source - The turf our sound originates from, if this is not a turf, the sound is played with no spatial audio
- soundin - Either a file, or a string that can be used to get an SFX.
- vol - The volume of the sound, excluding falloff and pressure affection.
- vary - bool that determines if the sound changes pitch every time it plays.
- frequency - playback speed of audio.
- falloff_exponent - Rate of falloff for the audio. Higher means quicker drop to low volume. Should generally be over 1 to indicate a quick dive to 0 rather than a slow dive.
- channel - Optional: The channel the sound is played at.
- pressure_affected - bool Whether or not difference in pressure affects the sound (E.g. if you can hear in space).
- sound_to_use - Optional: Will default to soundin when absent
- max_distance - number, determines the maximum distance of our sound
- falloff_distance - Distance at which falloff begins. Sound is at peak volume (in regards to falloff) aslong as it is in this range.
- distance_multiplier - Default 1, multiplies the maximum distance of our sound
- use_reverb - bool default TRUE, determines if our sound has reverb
pointed
Point at an atom
mob verbs are faster than object verbs. See this byond forum post for why this isn't atom/verb/pointed()
note: ghosts can point, this is intended
visible_message will handle invisibility properly
overridden here and in /mob/dead/observer for different point span classes and sanity checks
post_buckle_mob
Call back post buckle to a mob to offset your visual height
post_unbuckle_mob
Call back post unbuckle from a mob, (reset your visual height here)
query_heart
Ask someone if they'd like to award a commendation for the round, 3 tries to get the name they want before we give up
ranged_secondary_attack
Ranged secondary attack
If the same conditions are met to trigger RangedAttack but it is instead initialized via a right click, this will trigger instead. Useful for mobs that have their abilities mapped to right click.
reagent_check
Proc used for custom metabolization of reagents, if any
regenerate_icons
Redraws the entire mob. For carbons, this is rather expensive, please use the individual update_X procs.
remove_actionspeed_modifier
Remove a action speed modifier from a mob, whether static or variable.
remove_all_indicators
Removes any indicators and marks the mob as not speaking IC.
remove_client_colour
Removes an instance of colour_type from the mob's client_colours list colour_type - a typepath (subtyped from /datum/client_colour)
remove_from_alive_mob_list
Removes the mob reference from the list of all mobs alive. If mob is cliented, it removes it from the list of all living player-mobs.
remove_from_current_dead_players
Removes the mob reference from either the list of dead player-mobs or from the list of observers, depending on how they joined the game.
remove_from_current_living_antags
Removes the mob reference from the list of living antag player-mobs.
remove_from_current_living_players
Removes the mob reference from the list of living player-mobs. If the mob is an antag, it removes it from the list of living antag player-mobs.
remove_from_dead_mob_list
Remvoes the mob reference from list of all the dead mobs. If mob is cliented, it adds it to the list of all dead player-mobs.
remove_from_mob_list
Removes the mob reference from the list and directory of all mobs. Called on Destroy().
remove_from_mob_suicide_list
Removes a mob references from the list of all suicided mobs
remove_from_player_list
Removes the mob reference from the list of all player-mobs, besides from either the of dead or alive player-mob lists, as appropriate. Called on Logout().
remove_movespeed_modifier
Remove a move speed modifier from a mob, whether static or variable.
remove_thinking_indicator
Removes the thinking indicator over the mob.
remove_typing_indicator
Removes the typing indicator over the mob.
replace_identification_name
update the ID name of this mob
replace_records_name
Updates GLOB.manifest records with new name , see mob/living/carbon/human
reset_perspective
Reset the attached clients perspective (viewpoint)
reset_perspective(null) set eye to common default : mob on turf, loc otherwise reset_perspective(thing) set the eye to the thing (if it's equal to current default reset to mob perspective)
say_dead
Speak as a dead person (ghost etc)
say_verb
what clients use to speak. when you type a message into the chat bar in say mode, this is the first thing that goes off serverside.
set_disgust
Set the disgust level of a mob
set_invis_see
see invisibility is the mob's capability to see things that ought to be hidden from it Can think of it as a primitive version of changing the alpha of planes We mostly use it to hide ghosts, no real reason why
set_nutrition
Force set the mob nutrition
set_sight
Sight here is the mob.sight var, which tells byond what to actually show to our client See code__DEFINES\sight.dm for more details
set_species
DNA MOB-PROCS
shared_ui_interaction
public
Standard interaction/sanity checks. Different mob types may have overrides.
return UI_state The state of the UI.
show_message
Show a message to this mob (visual or audible)
show_other_mob_action_buttons
Show (most) of the another mob's action buttons to this mob
Used for observers viewing another mob's screen
shuttleRotate
Mob rotate procs
slip
Called when this mob slips over, override as needed
knockdown_amount - time (in deciseconds) the slip leaves them on the ground slipped_on - optional, what'd we slip on? if not set, we assume they just fell over lube - bitflag of "lube flags", see [mobs.dm] for more information paralyze - time (in deciseconds) the slip leaves them paralyzed / unable to move force_drop = the slip forces them to drop held items
spin
Spin this mob around it's central axis
sync_lighting_plane_cutoff
Set the lighting plane hud filters to the mobs lighting_cutoff var
throw_alert
Proc to create or update an alert. Returns the alert if the alert is new or updated, 0 if it was thrown already category is a text string. Each mob may only have one alert per category; the previous one will be replaced path is a type path of the actual alert type to throw severity is an optional number that will be placed at the end of the icon_state for this alert for example, high pressure's icon_state is "highpressure" and can be serverity 1 or 2 to get "highpressure1" or "highpressure2" new_master is optional and sets the alert's icon state to "template" in the ui_style icons with the master as an overlay. flicks are forwarded to master override makes it so the alert is not replaced until cleared by a clear_alert with clear_override, and it's used for hallucinations.
up
Moves a mob upwards in z level
update_action_buttons
This proc handles adding all of the mob's actions to their screen
If you just need to update existing buttons, use /mob/proc/update_mob_action_buttons!
Arguments:
- update_flags - reload_screen - bool, if TRUE, this proc will add the button to the screen of the passed mob as well
update_actionspeed
Go through the list of actionspeed modifiers and calculate a final actionspeed. ANY ADD/REMOVE DONE IN UPDATE_actionspeed MUST HAVE THE UPDATE ARGUMENT SET AS FALSE!
update_ambience_area
Ambience buzz handling called by either area/Enter() or refresh_looping_ambience()
update_body
Updates every part of a carbon's body. Including parts, mutant parts, lips, underwear, and socks.
update_client_colour
Resets the mob's client.color to null, and then reapplies a new color based on the client_colour datums it currently has.
update_clothing
Updates every item slot passed into it.
update_config_movespeed
Set or update the global movespeed config on a mob
update_equipment_speed_mods
Apply a proper movespeed modifier based on items we have equipped
update_held_items
Updates the held items overlay(s) & HUD element.
update_incapacitated
Called whenever anything that modifes incapacitated is ran, updates it and sends a signal if it changes Returns TRUE if anything changed, FALSE otherwise
update_mob_action_buttons
Updates all action buttons this mob has.
Arguments:
- update_flags - Which flags of the action should we update
- force - Force buttons update even if the given button icon state has not changed
update_mouse_pointer
Update the mouse pointer of the attached client in this mob
update_movespeed
Go through the list of movespeed modifiers and calculate a final movespeed. ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE!
update_obscured_slots
Updates item slots obscured by this item (or using an override of flags to check)
update_pockets
Updates the pocket overlay & HUD element.
update_pull_hud_icon
Update the pulling hud icon
update_rest_hud_icon
Update the resting hud icon
update_sight
Update the lighting plane and sight of this mob (sends COMSIG_MOB_UPDATE_SIGHT)
update_stamina_hud
Changes the stamina HUD based on new information
update_suit_storage
Updates the suit storage overlay & HUD element.
update_worn_back
Updates the back overlay & HUD element.
update_worn_belt
Updates the belt overlay & HUD element.
update_worn_ears
Updates the headset overlay & HUD element.
update_worn_glasses
Updates the glasses overlay & HUD element.
update_worn_gloves
Updates the glasses overlay & HUD element.
update_worn_handcuffs
Updates the handcuff overlay & HUD element.
update_worn_head
Updates the on-head overlay & HUD element.
update_worn_id
Updates the id overlay & HUD element.
update_worn_legcuffs
Updates the legcuff overlay & HUD element.
update_worn_mask
Updates the mask overlay & HUD element.
update_worn_neck
Updates the neck overlay & HUD element.
update_worn_oversuit
Updates the oversuit overlay & HUD element.
update_worn_shoes
Updates the shoes overlay & HUD element.
update_worn_undersuit
Updates the undersuit/uniform overlay & HUD element.
visible_message
Adds the functionality to self_message.
vote
Mob level verb that allows players to vote on the current vote.
vv_get_dropdown
Get the mob VV dropdown extras
vv_get_var
extra var handling for the logging var
whisper
Whisper a message.
Basic level implementation just speaks the message, nothing else.
whisper_verb
Whisper verb
won_game
This proc sends the COMSIG_MOB_WON_VIDEOGAME signal
This should be called by games when the gamer reaches a winning state