Files
GS13NG/mob.html
T
2025-02-05 06:19:18 +00:00

137 lines
87 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><link rel="stylesheet" href="dmdoc.css"><title>/mob - /tg/ Station 13</title></head><body><header><a href="index.html">/tg/ Station 13</a> - <a href="index.html#modules">Modules</a> - <a href="index.html#types">Types</a><a href="mob.html#var">Var Details</a> - <a href="mob.html#proc">Proc Details</a></header><main><h1>mob <aside>/<a href="mob.html">mob</a></aside><aside> inherits /<a href="atom.html">atom</a>/<a href="atom/movable.html">movable</a></aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L9"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 9"></a></h1><p>CLICKDELAY HANDLING SYSTEM
How this works is mobs can never do actions until their next_action is at or below world.time, but things can specify extra cooldown
to check for either from the time of last_action or from the end of next_action.</p>
<p>Clickdelay should always be checked via [CheckActionCooldown()], never manually!</p><table class="summary" cellspacing="0"><tr><td colspan="2"><h2>Vars</h2></td></tr><tr><th><a href="mob.html#var/LAssailant">LAssailant</a></th><td>The last mob/living/carbon to push/drag/grab this mob (mostly used by slimes friend recognition)</td></tr><tr><th><a href="mob.html#var/ability_actions">ability_actions</a></th><td>ability = action button instance.</td></tr><tr><th><a href="mob.html#var/ability_properties">ability_properties</a></th><td>ability = list(data). see __DEFINES/mobs/innate_abilities.dm</td></tr><tr><th><a href="mob.html#var/action_cooldown_adjust">action_cooldown_adjust</a></th><td>Simple modification variable added to amount on adjust and on checking time since last action using [CheckActionCooldown()].
This should only be manually modified via addition.</td></tr><tr><th><a href="mob.html#var/action_cooldown_mod">action_cooldown_mod</a></th><td>Simple modification variable multiplied to next action modifier on adjust and on checking time since last action using [CheckActionCooldown()].
This should only be manually modified using multipliers.</td></tr><tr><th><a href="mob.html#var/actionspeed_mod_immunities">actionspeed_mod_immunities</a></th><td>List of action speed modifiers ignored by this mob. List -&gt; List (id) -&gt; List (sources)</td></tr><tr><th><a href="mob.html#var/actionspeed_modification">actionspeed_modification</a></th><td>List of action speed modifiers applying to this mob</td></tr><tr><th><a href="mob.html#var/cached_multiplicative_actions_slowdown">cached_multiplicative_actions_slowdown</a></th><td>The calculated mob action speed slowdown based on the modifiers list</td></tr><tr><th><a href="mob.html#var/cached_multiplicative_slowdown">cached_multiplicative_slowdown</a></th><td>The calculated mob speed slowdown based on the modifiers list</td></tr><tr><th><a href="mob.html#var/deathsound">deathsound</a></th><td>The sound made on death</td></tr><tr><th><a href="mob.html#var/do_afters">do_afters</a></th><td>For storing what do_after's someone has, in case we want to restrict them to only one of a certain do_after at a time</td></tr><tr><th><a href="mob.html#var/focus">focus</a></th><td>What receives our keyboard input. src by default.</td></tr><tr><th><a href="mob.html#var/fullscreens">fullscreens</a></th><td>Fullscreen objects</td></tr><tr><th><a href="mob.html#var/innate_abilities">innate_abilities</a></th><td>Ability system based on action buttons. Can be ported to base /mob or /mob/living later if needed, easily - the procs are currently on living/carbon/human/innate_abilities.dm
datum traits-style lazylist of abilities</td></tr><tr><th><a href="mob.html#var/last_action">last_action</a></th><td>Generic clickdelay variable. Marks down the last world.time we did something that should cause or impact generic clickdelay. This should be directly set or set using [DelayNextAction()]. This should only be checked using [CheckActionCooldown()].</td></tr><tr><th><a href="mob.html#var/last_action_immediate">last_action_immediate</a></th><td>The difference between the above and this is this is set immediately before even the pre-attack begins to ensure clickdelay is respected.
Then, it is flushed or discarded using [FlushLastAttack()] or [DiscardLastAttack()] respectively.</td></tr><tr><th><a href="mob.html#var/mob_transforming">mob_transforming</a></th><td>Whether or not the mob is currently being transformed into another mob or into another state of being. This will prevent it from moving or doing realistically anything.
Don't you DARE use this for a cheap way to ensure someone is stunned in your code.</td></tr><tr><th><a href="mob.html#var/mock_client">mock_client</a></th><td>A mock client, provided by tests and friends</td></tr><tr><th><a href="mob.html#var/movespeed_mod_immunities">movespeed_mod_immunities</a></th><td>List of movement speed modifiers ignored by this mob. List -&gt; List (id) -&gt; List (sources)</td></tr><tr><th><a href="mob.html#var/movespeed_modification">movespeed_modification</a></th><td>List of movement speed modifiers applying to this mob</td></tr><tr><th><a href="mob.html#var/next_action">next_action</a></th><td>Generic clickdelay variable. Next world.time we should be able to do something that respects generic clickdelay. This should be set using [DelayNextAction()] This should only be checked using [CheckActionCooldown()].</td></tr><tr><th><a href="mob.html#var/next_action_immediate">next_action_immediate</a></th><td>Ditto</td></tr><tr><th><a href="mob.html#var/next_resist">next_resist</a></th><td>Minimum world time for another resist. This should only be checked using [CheckResistCooldown()].</td></tr><tr><th><a href="mob.html#var/resist_cooldown">resist_cooldown</a></th><td>How long we should wait before allowing another resist. This should only be manually modified using multipliers.</td></tr><tr><th><a href="mob.html#var/see_resized_others">see_resized_others</a></th><td>var to know if one has the toggle activated or not</td></tr><tr><th><a href="mob.html#var/sound_environment_override">sound_environment_override</a></th><td>Override for sound_environments. If this is set the user will always hear a specific type of reverb (Instead of the area defined reverb)</td></tr><tr><th><a href="mob.html#var/tgui_open_uis">tgui_open_uis</a></th><td>global</td></tr><tr><th><a href="mob.html#var/typing_indicator_current">typing_indicator_current</a></th><td>Current state of our typing indicator. Used for cut overlay, DO NOT RUNTIME ASSIGN OTHER THAN FROM SHOW/CLEAR. Used to absolutely ensure we do not get stuck overlays.</td></tr><tr><th><a href="mob.html#var/typing_indicator_enabled">typing_indicator_enabled</a></th><td>////TYPING INDICATORS///////
Set to true if we want to show typing indicators.</td></tr><tr><th><a href="mob.html#var/typing_indicator_state">typing_indicator_state</a></th><td>Default icon_state of our typing indicator. Currently only supports paths (because anything else is, as of time of typing this, unnecesary.</td></tr><tr><th><a href="mob.html#var/typing_indicator_timerid">typing_indicator_timerid</a></th><td>The timer that will remove our indicator for early aborts (like when an user finishes their message)</td></tr><tr><th><a href="mob.html#var/unarmed_attack_speed">unarmed_attack_speed</a></th><td>Default clickdelay for an UnarmedAttack() that successfully passes. Respects action_cooldown_mod.</td></tr><tr><td colspan="2"><h2>Procs</h2></td></tr><tr><th><a href="mob.html#proc/CheckActionCooldown">CheckActionCooldown</a></th><td>Checks if we can do another action.
Returns TRUE if we can and FALSE if we cannot.</td></tr><tr><th><a href="mob.html#proc/CheckResistCooldown">CheckResistCooldown</a></th><td>Checks if we can resist again.</td></tr><tr><th><a href="mob.html#proc/CommonClickOn">CommonClickOn</a></th><td>Common mob click code</td></tr><tr><th><a href="mob.html#proc/DelayNextAction">DelayNextAction</a></th><td>Applies a delay to next_action before we can do our next action.</td></tr><tr><th><a href="mob.html#proc/DiscardCurrentAction">DiscardCurrentAction</a></th><td>Discards last_action and next_action</td></tr><tr><th><a href="mob.html#proc/Dizzy">Dizzy</a></th><td>Set the dizzyness of a mob to a passed in amount</td></tr><tr><th><a href="mob.html#proc/EstimatedNextActionTime">EstimatedNextActionTime</a></th><td>Get estimated time of next attack.</td></tr><tr><th><a href="mob.html#proc/FlushCurrentAction">FlushCurrentAction</a></th><td>Flushes last_action and next_action</td></tr><tr><th><a href="mob.html#proc/GetActionCooldownAdjust">GetActionCooldownAdjust</a></th><td>Gets action_cooldown_adjust</td></tr><tr><th><a href="mob.html#proc/GetActionCooldownMod">GetActionCooldownMod</a></th><td>Gets action_cooldown_mod.</td></tr><tr><th><a href="mob.html#proc/Jitter">Jitter</a></th><td>Set the jitter of a mob</td></tr><tr><th><a href="mob.html#proc/Login">Login</a></th><td>Run when a client is put in this mob or reconnets to byond and their client was on this mob</td></tr><tr><th><a href="mob.html#proc/MarkResistTime">MarkResistTime</a></th><td>Mark the last resist as now.</td></tr><tr><th><a href="mob.html#proc/Process_Spacemove">Process_Spacemove</a></th><td>Process_Spacemove
Called by /client/Move()
For moving in space
return TRUE for movement 0 for none</td></tr><tr><th><a href="mob.html#proc/SetNextAction">SetNextAction</a></th><td>Sets our next action to. The difference is DelayNextAction cannot reduce next_action under any circumstances while this can.</td></tr><tr><th><a href="mob.html#proc/add_actionspeed_modifier">add_actionspeed_modifier</a></th><td>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.</td></tr><tr><th><a href="mob.html#proc/add_movespeed_modifier">add_movespeed_modifier</a></th><td>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.</td></tr><tr><th><a href="mob.html#proc/add_to_alive_mob_list">add_to_alive_mob_list</a></th><td>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.</td></tr><tr><th><a href="mob.html#proc/add_to_current_dead_players">add_to_current_dead_players</a></th><td>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.</td></tr><tr><th><a href="mob.html#proc/add_to_current_living_antags">add_to_current_living_antags</a></th><td>Adds the cliented mob reference to the list of living antag player-mobs.</td></tr><tr><th><a href="mob.html#proc/add_to_current_living_players">add_to_current_living_players</a></th><td>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.</td></tr><tr><th><a href="mob.html#proc/add_to_dead_mob_list">add_to_dead_mob_list</a></th><td>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.</td></tr><tr><th><a href="mob.html#proc/add_to_mob_list">add_to_mob_list</a></th><td>Adds the mob reference to the list and directory of all mobs. Called on Initialize().</td></tr><tr><th><a href="mob.html#proc/add_to_player_list">add_to_player_list</a></th><td>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().</td></tr><tr><th><a href="mob.html#proc/adjust_blindness">adjust_blindness</a></th><td>Adjust a mobs blindness by an amount</td></tr><tr><th><a href="mob.html#proc/adjust_blurriness">adjust_blurriness</a></th><td>Adjust the current blurriness of the mobs vision by amount</td></tr><tr><th><a href="mob.html#proc/adjust_bodytemperature">adjust_bodytemperature</a></th><td>Adjust the body temperature of a mob, with min/max settings</td></tr><tr><th><a href="mob.html#proc/adjust_disgust">adjust_disgust</a></th><td>Adjust the disgust level of a mob</td></tr><tr><th><a href="mob.html#proc/adjust_drugginess">adjust_drugginess</a></th><td>Adjust the drugginess of a mob</td></tr><tr><th><a href="mob.html#proc/adjust_nutrition">adjust_nutrition</a></th><td>Adjust the nutrition of a mob</td></tr><tr><th><a href="mob.html#proc/attempt_resist_grab">attempt_resist_grab</a></th><td>Proc to resist a grab. moving_resist is TRUE if this began by someone attempting to move. Return FALSE if still grabbed/failed to break out. Use this instead of resist_grab() directly.</td></tr><tr><th><a href="mob.html#proc/audible_message">audible_message</a></th><td>Show a message to all mobs in earshot of this one</td></tr><tr><th><a href="mob.html#proc/blind_eyes">blind_eyes</a></th><td>Sets a mob's blindness to an amount if it was not above it already, similar to how status effects work</td></tr><tr><th><a href="mob.html#proc/blur_eyes">blur_eyes</a></th><td>Make the mobs vision blurry</td></tr><tr><th><a href="mob.html#proc/check_obscured_slots">check_obscured_slots</a></th><td>Checks for slots that are currently obscured by other garments.</td></tr><tr><th><a href="mob.html#proc/clear_fullscreen">clear_fullscreen</a></th><td>Wipes a fullscreen of a certain category</td></tr><tr><th><a href="mob.html#proc/clear_typing_indicator">clear_typing_indicator</a></th><td>Removes typing indicator.</td></tr><tr><th><a href="mob.html#proc/create_chat_message">create_chat_message</a></th><td>Creates a message overlay at a defined location for a given speaker</td></tr><tr><th><a href="mob.html#proc/display_typing_indicator">display_typing_indicator</a></th><td>Displays typing indicator.
@param timeout_override - Sets how long until this will disappear on its own without the user finishing their message or logging out. Defaults to src.typing_indicator_timeout
@param state_override - Sets the state that we will fetch. Defaults to src.get_typing_indicator_icon_state()
@param force - shows even if src.typing_indcator_enabled is FALSE.</td></tr><tr><th><a href="mob.html#proc/dispose_rendering">dispose_rendering</a></th><td>destroys screen rendering. call on mob del</td></tr><tr><th><a href="mob.html#proc/dropItemToGround">dropItemToGround</a></th><td>Used to drop an item (if it exists) to the ground.</td></tr><tr><th><a href="mob.html#proc/equipped_speed_mods">equipped_speed_mods</a></th><td>Gets the combined speed modification of all worn items
Except base mob type doesnt really wear items</td></tr><tr><th><a href="mob.html#proc/examinate">examinate</a></th><td>Examine a mob</td></tr><tr><th><a href="mob.html#proc/generate_typing_indicator">generate_typing_indicator</a></th><td>Generates the mutable appearance for typing indicator. Should prevent stuck overlays.</td></tr><tr><th><a href="mob.html#proc/get_ability_property">get_ability_property</a></th><td>Gets an ability property</td></tr><tr><th><a href="mob.html#proc/get_actionspeed_modifiers">get_actionspeed_modifiers</a></th><td>Get the action speed modifiers list of the mob</td></tr><tr><th><a href="mob.html#proc/get_active_hand">get_active_hand</a></th><td>Get the bodypart for whatever hand we have active, Only relevant for carbons</td></tr><tr><th><a href="mob.html#proc/get_config_multiplicative_speed">get_config_multiplicative_speed</a></th><td>Get the global config movespeed of a mob by type</td></tr><tr><th><a href="mob.html#proc/get_indicator_overlay">get_indicator_overlay</a></th><td>Fetches the typing indicator we'll use from GLOB.typing_indicator_overlays</td></tr><tr><th><a href="mob.html#proc/get_movespeed_modifier_datum">get_movespeed_modifier_datum</a></th><td>Gets the movespeed modifier datum of a modifier on a mob. Returns null if not found.
DANGER: IT IS UP TO THE PERSON USING THIS TO MAKE SURE THE MODIFIER IS NOT MODIFIED IF IT HAPPENS TO BE GLOBAL/CACHED.</td></tr><tr><th><a href="mob.html#proc/get_movespeed_modifiers">get_movespeed_modifiers</a></th><td>Get the move speed modifiers list of the mob</td></tr><tr><th><a href="mob.html#proc/get_num_held_items">get_num_held_items</a></th><td>Find number of held items, multihand compatible</td></tr><tr><th><a href="mob.html#proc/get_proc_holders">get_proc_holders</a></th><td>Gets all relevant proc holders for the browser statpenl</td></tr><tr><th><a href="mob.html#proc/get_spells_for_statpanel">get_spells_for_statpanel</a></th><td>Convert a list of spells into a displyable list for the statpanel</td></tr><tr><th><a href="mob.html#proc/get_status_tab_items">get_status_tab_items</a></th><td>Adds this list to the output to the stat browser</td></tr><tr><th><a href="mob.html#proc/get_top_level_mob">get_top_level_mob</a></th><td>SUBTLE COMMAND</td></tr><tr><th><a href="mob.html#proc/get_typing_indicator_icon_state">get_typing_indicator_icon_state</a></th><td>Gets the state we will use for typing indicators. Defaults to src.typing_indicator_state</td></tr><tr><th><a href="mob.html#proc/grant_ability_from_source">grant_ability_from_source</a></th><td>Grants an ability from a source</td></tr><tr><th><a href="mob.html#proc/handle_eye_contact">handle_eye_contact</a></th><td>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 second within 5 tiles, we make eye contact!</td></tr><tr><th><a href="mob.html#proc/has_actionspeed_modifier">has_actionspeed_modifier</a></th><td>Is there a actionspeed modifier for this mob</td></tr><tr><th><a href="mob.html#proc/has_movespeed_modifier">has_movespeed_modifier</a></th><td>Is there a movespeed modifier for this mob</td></tr><tr><th><a href="mob.html#proc/hide_fullscreens">hide_fullscreens</a></th><td>Removes fullscreens from client but not the mob</td></tr><tr><th><a href="mob.html#proc/init_rendering">init_rendering</a></th><td>initializes screen rendering. call on mob new</td></tr><tr><th><a href="mob.html#proc/initialize_actionspeed">initialize_actionspeed</a></th><td>Adds a default action speed</td></tr><tr><th><a href="mob.html#proc/onShuttleMove">onShuttleMove</a></th><td>Mob move procs</td></tr><tr><th><a href="mob.html#proc/on_item_dropped">on_item_dropped</a></th><td>Mostly called by doUnEquip()
Like item dropped() on mob side.</td></tr><tr><th><a href="mob.html#proc/overlay_fullscreen">overlay_fullscreen</a></th><td>Adds a fullscreen overlay</td></tr><tr><th><a href="mob.html#proc/pointed">pointed</a></th><td>Point at an atom</td></tr><tr><th><a href="mob.html#proc/reload_fullscreen">reload_fullscreen</a></th><td>Ensures all fullscreens are on client.</td></tr><tr><th><a href="mob.html#proc/reload_rendering">reload_rendering</a></th><td>loads screen rendering. call on mob login</td></tr><tr><th><a href="mob.html#proc/remove_ability_from_source">remove_ability_from_source</a></th><td>Removes an ability from a source</td></tr><tr><th><a href="mob.html#proc/remove_actionspeed_modifier">remove_actionspeed_modifier</a></th><td>Remove a action speed modifier from a mob, whether static or variable.</td></tr><tr><th><a href="mob.html#proc/remove_from_alive_mob_list">remove_from_alive_mob_list</a></th><td>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.</td></tr><tr><th><a href="mob.html#proc/remove_from_current_dead_players">remove_from_current_dead_players</a></th><td>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.</td></tr><tr><th><a href="mob.html#proc/remove_from_current_living_antags">remove_from_current_living_antags</a></th><td>Removes the mob reference from the list of living antag player-mobs.</td></tr><tr><th><a href="mob.html#proc/remove_from_current_living_players">remove_from_current_living_players</a></th><td>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.</td></tr><tr><th><a href="mob.html#proc/remove_from_dead_mob_list">remove_from_dead_mob_list</a></th><td>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.</td></tr><tr><th><a href="mob.html#proc/remove_from_mob_list">remove_from_mob_list</a></th><td>Removes the mob reference from the list and directory of all mobs. Called on Destroy().</td></tr><tr><th><a href="mob.html#proc/remove_from_player_list">remove_from_player_list</a></th><td>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().</td></tr><tr><th><a href="mob.html#proc/remove_movespeed_modifier">remove_movespeed_modifier</a></th><td>Remove a move speed modifier from a mob, whether static or variable.</td></tr><tr><th><a href="mob.html#proc/setGrabState">setGrabState</a></th><td>Updates the grab state of the mob and updates movespeed</td></tr><tr><th><a href="mob.html#proc/set_ability_property">set_ability_property</a></th><td>Sets an ability property</td></tr><tr><th><a href="mob.html#proc/set_blindness">set_blindness</a></th><td>Force set the blindness of a mob to some level</td></tr><tr><th><a href="mob.html#proc/set_blurriness">set_blurriness</a></th><td>Set the mobs blurriness of vision to an amount</td></tr><tr><th><a href="mob.html#proc/set_disgust">set_disgust</a></th><td>Set the disgust level of a mob</td></tr><tr><th><a href="mob.html#proc/set_dizziness">set_dizziness</a></th><td>FOrce set the dizzyness of a mob</td></tr><tr><th><a href="mob.html#proc/set_drugginess">set_drugginess</a></th><td>Set the drugginess of a mob</td></tr><tr><th><a href="mob.html#proc/set_nutrition">set_nutrition</a></th><td>Force set the mob nutrition</td></tr><tr><th><a href="mob.html#proc/set_species">set_species</a></th><td>DNA MOB-PROCS</td></tr><tr><th><a href="mob.html#proc/set_stat">set_stat</a></th><td>Used to wrap stat setting to trigger on-stat-change functionality.
Must be used instead of directly setting a mob's stat var,
so that the signal is sent properly.</td></tr><tr><th><a href="mob.html#proc/shared_ui_interaction">shared_ui_interaction</a></th><td>public</td></tr><tr><th><a href="mob.html#proc/shuttleRotate">shuttleRotate</a></th><td>Mob rotate procs</td></tr><tr><th><a href="mob.html#proc/total_multiplicative_slowdown">total_multiplicative_slowdown</a></th><td>Calculate the total slowdown of all movespeed modifiers</td></tr><tr><th><a href="mob.html#proc/update_action_buttons">update_action_buttons</a></th><td>This proc handles adding all of the mob's actions to their screen</td></tr><tr><th><a href="mob.html#proc/update_actionspeed">update_actionspeed</a></th><td>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!</td></tr><tr><th><a href="mob.html#proc/update_blindness">update_blindness</a></th><td>proc that adds and removes blindness overlays when necessary</td></tr><tr><th><a href="mob.html#proc/update_config_movespeed">update_config_movespeed</a></th><td>Set or update the global movespeed config on a mob</td></tr><tr><th><a href="mob.html#proc/update_movespeed">update_movespeed</a></th><td>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!</td></tr><tr><th><a href="mob.html#proc/visible_message">visible_message</a></th><td>Adds the functionality to self_message.</td></tr><tr><th><a href="mob.html#proc/vv_edit_var">vv_edit_var</a></th><td>Handles the special case of editing the movement var</td></tr><tr><th><a href="mob.html#proc/wipe_fullscreens">wipe_fullscreens</a></th><td>Wipes all fullscreens</td></tr></table><h2 id="var">Var Details</h2><h3 id="var/LAssailant"><aside class="declaration">var </aside>LAssailant <aside> /<a href="datum.html">datum</a>/weakref</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L112"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 112"></a></h3><p>The last mob/living/carbon to push/drag/grab this mob (mostly used by slimes friend recognition)</p><h3 id="var/ability_actions"><aside class="declaration">var </aside>ability_actions <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L181"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 181"></a></h3><p>ability = action button instance.</p><h3 id="var/ability_properties"><aside class="declaration">var </aside>ability_properties <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L183"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 183"></a></h3><p>ability = list(data). see __DEFINES/mobs/innate_abilities.dm</p><h3 id="var/action_cooldown_adjust"><aside class="declaration">var </aside>action_cooldown_adjust <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L33"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 33"></a></h3><p>Simple modification variable added to amount on adjust and on checking time since last action using [CheckActionCooldown()].
This should only be manually modified via addition.</p><h3 id="var/action_cooldown_mod"><aside class="declaration">var </aside>action_cooldown_mod <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L30"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 30"></a></h3><p>Simple modification variable multiplied to next action modifier on adjust and on checking time since last action using [CheckActionCooldown()].
This should only be manually modified using multipliers.</p><h3 id="var/actionspeed_mod_immunities"><aside class="declaration">var </aside>actionspeed_mod_immunities <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L68"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 68"></a></h3><p>List of action speed modifiers ignored by this mob. List -&gt; List (id) -&gt; List (sources)</p><h3 id="var/actionspeed_modification"><aside class="declaration">var </aside>actionspeed_modification <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L66"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 66"></a></h3><p>List of action speed modifiers applying to this mob</p><h3 id="var/cached_multiplicative_actions_slowdown"><aside class="declaration">var </aside>cached_multiplicative_actions_slowdown <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L70"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 70"></a></h3><p>The calculated mob action speed slowdown based on the modifiers list</p><h3 id="var/cached_multiplicative_slowdown"><aside class="declaration">var </aside>cached_multiplicative_slowdown <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L64"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 64"></a></h3><p>The calculated mob speed slowdown based on the modifiers list</p><h3 id="var/deathsound"><aside class="declaration">var </aside>deathsound <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L133"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 133"></a></h3><p>The sound made on death</p>
<p>leave null for no sound. used for *deathgasp</p><h3 id="var/do_afters"><aside class="declaration">var </aside>do_afters <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L142"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 142"></a></h3><p>For storing what do_after's someone has, in case we want to restrict them to only one of a certain do_after at a time</p><h3 id="var/focus"><aside class="declaration">var </aside>focus <aside> /<a href="datum.html">datum</a></aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L24"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 24"></a></h3><p>What receives our keyboard input. src by default.</p><h3 id="var/fullscreens"><aside class="declaration">var </aside>fullscreens <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L21"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 21"></a></h3><p>Fullscreen objects</p><h3 id="var/innate_abilities"><aside class="declaration">var </aside>innate_abilities <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L179"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 179"></a></h3><p>Ability system based on action buttons. Can be ported to base /mob or /mob/living later if needed, easily - the procs are currently on living/carbon/human/innate_abilities.dm
datum traits-style lazylist of abilities</p><h3 id="var/last_action"><aside class="declaration">var </aside>last_action <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L15"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 15"></a></h3><p>Generic clickdelay variable. Marks down the last world.time we did something that should cause or impact generic clickdelay. This should be directly set or set using [DelayNextAction()]. This should only be checked using [CheckActionCooldown()].</p><h3 id="var/last_action_immediate"><aside class="declaration">var </aside>last_action_immediate <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L21"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 21"></a></h3><p>The difference between the above and this is this is set immediately before even the pre-attack begins to ensure clickdelay is respected.
Then, it is flushed or discarded using [FlushLastAttack()] or [DiscardLastAttack()] respectively.</p><h3 id="var/mob_transforming"><aside class="declaration">var </aside>mob_transforming <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L49"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 49"></a></h3><p>Whether or not the mob is currently being transformed into another mob or into another state of being. This will prevent it from moving or doing realistically anything.
Don't you DARE use this for a cheap way to ensure someone is stunned in your code.</p><h3 id="var/mock_client"><aside class="declaration">var </aside>mock_client <aside> /<a href="datum.html">datum</a>/<a href="datum/client_interface.html">client_interface</a></aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_helpers.dm#L4"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_helpers.dm 4"></a></h3><p>A mock client, provided by tests and friends</p><h3 id="var/movespeed_mod_immunities"><aside class="declaration">var </aside>movespeed_mod_immunities <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L62"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 62"></a></h3><p>List of movement speed modifiers ignored by this mob. List -&gt; List (id) -&gt; List (sources)</p><h3 id="var/movespeed_modification"><aside class="declaration">var </aside>movespeed_modification <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L60"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 60"></a></h3><p>List of movement speed modifiers applying to this mob</p><h3 id="var/next_action"><aside class="declaration">var </aside>next_action <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L23"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 23"></a></h3><p>Generic clickdelay variable. Next world.time we should be able to do something that respects generic clickdelay. This should be set using [DelayNextAction()] This should only be checked using [CheckActionCooldown()].</p><h3 id="var/next_action_immediate"><aside class="declaration">var </aside>next_action_immediate <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L25"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 25"></a></h3><p>Ditto</p><h3 id="var/next_resist"><aside class="declaration">var </aside>next_resist <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L45"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 45"></a></h3><p>Minimum world time for another resist. This should only be checked using [CheckResistCooldown()].</p><h3 id="var/resist_cooldown"><aside class="declaration">var </aside>resist_cooldown <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L43"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 43"></a></h3><p>How long we should wait before allowing another resist. This should only be manually modified using multipliers.</p><h3 id="var/see_resized_others"><aside class="declaration">var </aside>see_resized_others <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/GainStation13/code/modules/resize/height_limits.dm#L11"><img src="git.png" width="16" height="16" title="GainStation13/code/modules/resize/height_limits.dm 11"></a></h3><p>var to know if one has the toggle activated or not</p><h3 id="var/sound_environment_override"><aside class="declaration">var </aside>sound_environment_override <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L186"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 186"></a></h3><p>Override for sound_environments. If this is set the user will always hear a specific type of reverb (Instead of the area defined reverb)</p><h3 id="var/tgui_open_uis"><aside class="declaration">var </aside>tgui_open_uis <aside> /list</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/tgui/external.dm#L126"><img src="git.png" width="16" height="16" title="code/modules/tgui/external.dm 126"></a></h3><p>global</p>
<p>Tracks open UIs for a user.</p><h3 id="var/typing_indicator_current"><aside class="declaration">var </aside>typing_indicator_current <aside> /mutable_appearance</aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L175"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 175"></a></h3><p>Current state of our typing indicator. Used for cut overlay, DO NOT RUNTIME ASSIGN OTHER THAN FROM SHOW/CLEAR. Used to absolutely ensure we do not get stuck overlays.</p><h3 id="var/typing_indicator_enabled"><aside class="declaration">var </aside>typing_indicator_enabled <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L169"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 169"></a></h3><p>////TYPING INDICATORS///////
Set to true if we want to show typing indicators.</p><h3 id="var/typing_indicator_state"><aside class="declaration">var </aside>typing_indicator_state <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L171"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 171"></a></h3><p>Default icon_state of our typing indicator. Currently only supports paths (because anything else is, as of time of typing this, unnecesary.</p><h3 id="var/typing_indicator_timerid"><aside class="declaration">var </aside>typing_indicator_timerid <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_defines.dm#L173"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_defines.dm 173"></a></h3><p>The timer that will remove our indicator for early aborts (like when an user finishes their message)</p><h3 id="var/unarmed_attack_speed"><aside class="declaration">var </aside>unarmed_attack_speed <aside> </aside> <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L27"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 27"></a></h3><p>Default clickdelay for an UnarmedAttack() that successfully passes. Respects action_cooldown_mod.</p><h2 id="proc">Proc Details</h2><h3 id="proc/CheckActionCooldown"><aside class="declaration">proc </aside>CheckActionCooldown<aside>(cooldown, from_next_action, ignore_mod, ignore_next_action, immediate) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L111"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 111"></a></aside></h3><p>Checks if we can do another action.
Returns TRUE if we can and FALSE if we cannot.</p>
<p>@params</p>
<ul>
<li>cooldown - Time required since last action. Defaults to 0.5</li>
<li>from_next_action - Defaults to FALSE. Should we check from the tail end of next_action instead of last_action?</li>
<li>ignore_mod - Defaults to FALSE. Ignore all adjusts and multipliers. Do not use this unless you know what you are doing and have a good reason.</li>
<li>ignore_next_action - Defaults to FALSE. Ignore next_action and only care about cooldown param and everything else. Generally unused.</li>
<li>immediate - Defaults to FALSE. Checks last action using immediate, used on the head end of an attack. This is to prevent colliding attacks in case of sleep. Not that you should sleep() in an attack but.. y'know.</li>
</ul><h3 id="proc/CheckResistCooldown"><aside class="declaration">proc </aside>CheckResistCooldown<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L146"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 146"></a></aside></h3><p>Checks if we can resist again.</p><h3 id="proc/CommonClickOn"><aside class="declaration">proc </aside>CommonClickOn<aside>(/<a href="atom.html">atom</a>/A, params) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_onclick/click.dm#L26"><img src="git.png" width="16" height="16" title="code/_onclick/click.dm 26"></a></aside></h3><p>Common mob click code</p><h3 id="proc/DelayNextAction"><aside class="declaration">proc </aside>DelayNextAction<aside>(amount, ignore_mod, considered_action, immediate, flush) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L57"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 57"></a></aside></h3><p>Applies a delay to next_action before we can do our next action.</p>
<p>@params</p>
<ul>
<li>amount - Amount to delay by</li>
<li>ignore_mod - ignores next action adjust and mult</li>
<li>considered_action - Defaults to TRUE - If TRUE, sets last_action to world.time.</li>
<li>immediate - defaults to TRUE - if TRUE, writes to cached/last_attack_immediate instead of last_attack. This ensures it can't collide with any delay checks in the actual attack.</li>
<li>flush - defaults to FALSE - Use this while using this proc outside of clickcode to ensure everything is set properly. This should never be set to TRUE if this is called from clickcode.</li>
</ul><h3 id="proc/DiscardCurrentAction"><aside class="declaration">proc </aside>DiscardCurrentAction<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L138"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 138"></a></aside></h3><p>Discards last_action and next_action</p><h3 id="proc/Dizzy"><aside class="declaration">proc </aside>Dizzy<aside>(amount) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/status_procs.dm#L15"><img src="git.png" width="16" height="16" title="code/modules/mob/status_procs.dm 15"></a></aside></h3><p>Set the dizzyness of a mob to a passed in amount</p>
<p>Except if dizziness is already higher in which case it does nothing</p><h3 id="proc/EstimatedNextActionTime"><aside class="declaration">proc </aside>EstimatedNextActionTime<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L74"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 74"></a></aside></h3><p>Get estimated time of next attack.</p><h3 id="proc/FlushCurrentAction"><aside class="declaration">proc </aside>FlushCurrentAction<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L130"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 130"></a></aside></h3><p>Flushes last_action and next_action</p><h3 id="proc/GetActionCooldownAdjust"><aside class="declaration">proc </aside>GetActionCooldownAdjust<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L124"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 124"></a></aside></h3><p>Gets action_cooldown_adjust</p><h3 id="proc/GetActionCooldownMod"><aside class="declaration">proc </aside>GetActionCooldownMod<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L118"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 118"></a></aside></h3><p>Gets action_cooldown_mod.</p><h3 id="proc/Jitter"><aside class="declaration">proc </aside>Jitter<aside>(amount) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/status_procs.dm#L7"><img src="git.png" width="16" height="16" title="code/modules/mob/status_procs.dm 7"></a></aside></h3><p>Set the jitter of a mob</p><h3 id="proc/Login"><aside class="declaration">proc </aside>Login<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/login.dm#L26"><img src="git.png" width="16" height="16" title="code/modules/mob/login.dm 26"></a></aside></h3><p>Run when a client is put in this mob or reconnets to byond and their client was on this mob</p>
<p>Things it does:</p>
<ul>
<li>Adds player to player_list</li>
<li>sets lastKnownIP</li>
<li>sets computer_id</li>
<li>logs the login</li>
<li>tells the world to update it's status (for player count)</li>
<li>create mob huds for the mob if needed</li>
<li>reset next_move to 1</li>
<li>parent call</li>
<li>if the client exists set the perspective to the mob loc</li>
<li>call on_log on the loc (sigh)</li>
<li>reload the huds for the mob</li>
<li>reload all full screen huds attached to this mob</li>
<li>load any global alternate apperances</li>
<li>sync the mind datum via sync_mind()</li>
<li>call any client login callbacks that exist</li>
<li>grant any actions the mob has to the client</li>
<li>calls <a href="mob.html#proc/auto_deadmin_on_login">auto_deadmin_on_login</a></li>
<li>send signal COMSIG_MOB_CLIENT_LOGIN</li>
<li>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</li>
</ul><h3 id="proc/MarkResistTime"><aside class="declaration">proc </aside>MarkResistTime<aside>(extra_cooldown, override) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L156"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 156"></a></aside></h3><p>Mark the last resist as now.</p>
<p>@params</p>
<ul>
<li>extra_cooldown - Extra cooldown to apply to next_resist. Defaults to this mob's resist_cooldown.</li>
<li>override - Defaults to FALSE - if TRUE, extra_cooldown will replace the old next_resist even if the old is longer.</li>
</ul><h3 id="proc/Process_Spacemove"><aside class="parent"><a title="/atom/movable" href="atom/movable.html#proc/Process_Spacemove"></a></aside>Process_Spacemove<aside>(movement_dir) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_movement.dm#L218"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_movement.dm 218"></a></aside></h3><p>Process_Spacemove
Called by /client/Move()
For moving in space
return TRUE for movement 0 for none</p><h3 id="proc/SetNextAction"><aside class="declaration">proc </aside>SetNextAction<aside>(amount, ignore_mod, considered_action, immediate, flush) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/clickdelay.dm#L86"><img src="git.png" width="16" height="16" title="code/modules/mob/clickdelay.dm 86"></a></aside></h3><p>Sets our next action to. The difference is DelayNextAction cannot reduce next_action under any circumstances while this can.</p><h3 id="proc/add_actionspeed_modifier"><aside class="declaration">proc </aside>add_actionspeed_modifier<aside>(/<a href="datum.html">datum</a>/<a href="datum/actionspeed_modifier.html">actionspeed_modifier</a>/type_or_datum, update) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/actionspeed/_actionspeed_modifier.dm#L60"><img src="git.png" width="16" height="16" title="code/modules/actionspeed/_actionspeed_modifier.dm 60"></a></aside></h3><p>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.</p><h3 id="proc/add_movespeed_modifier"><aside class="declaration">proc </aside>add_movespeed_modifier<aside>(/<a href="datum.html">datum</a>/<a href="datum/movespeed_modifier.html">movespeed_modifier</a>/type_or_datum, update) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/movespeed/_movespeed_modifier.dm#L91"><img src="git.png" width="16" height="16" title="code/modules/movespeed/_movespeed_modifier.dm 91"></a></aside></h3><p>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.</p><h3 id="proc/add_to_alive_mob_list"><aside class="declaration">proc </aside>add_to_alive_mob_list<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_lists.dm#L12"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_lists.dm 12"></a></aside></h3><p>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.</p><h3 id="proc/add_to_current_dead_players"><aside class="declaration">proc </aside>add_to_current_dead_players<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_lists.dm#L65"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_lists.dm 65"></a></aside></h3><p>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.</p><h3 id="proc/add_to_current_living_antags"><aside class="declaration">proc </aside>add_to_current_living_antags<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_lists.dm#L114"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_lists.dm 114"></a></aside></h3><p>Adds the cliented mob reference to the list of living antag player-mobs.</p><h3 id="proc/add_to_current_living_players"><aside class="declaration">proc </aside>add_to_current_living_players<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_lists.dm#L97"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_lists.dm 97"></a></aside></h3><p>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.</p><h3 id="proc/add_to_dead_mob_list"><aside class="declaration">proc </aside>add_to_dead_mob_list<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_lists.dm#L27"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_lists.dm 27"></a></aside></h3><p>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.</p><h3 id="proc/add_to_mob_list"><aside class="declaration">proc </aside>add_to_mob_list<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_lists.dm#L2"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_lists.dm 2"></a></aside></h3><p>Adds the mob reference to the list and directory of all mobs. Called on Initialize().</p><h3 id="proc/add_to_player_list"><aside class="declaration">proc </aside>add_to_player_list<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_lists.dm#L42"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_lists.dm 42"></a></aside></h3><p>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().</p><h3 id="proc/adjust_blindness"><aside class="declaration">proc </aside>adjust_blindness<aside>(amount) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/status_procs.dm#L37"><img src="git.png" width="16" height="16" title="code/modules/mob/status_procs.dm 37"></a></aside></h3><p>Adjust a mobs blindness by an amount</p>
<p>Will apply the blind alerts if needed</p><h3 id="proc/adjust_blurriness"><aside class="declaration">proc </aside>adjust_blurriness<aside>(amount) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/status_procs.dm#L74"><img src="git.png" width="16" height="16" title="code/modules/mob/status_procs.dm 74"></a></aside></h3><p>Adjust the current blurriness of the mobs vision by amount</p><h3 id="proc/adjust_bodytemperature"><aside class="declaration">proc </aside>adjust_bodytemperature<aside>(amount, min_temp, max_temp) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/status_procs.dm#L123"><img src="git.png" width="16" height="16" title="code/modules/mob/status_procs.dm 123"></a></aside></h3><p>Adjust the body temperature of a mob, with min/max settings</p><h3 id="proc/adjust_disgust"><aside class="declaration">proc </aside>adjust_disgust<aside>(amount) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/status_procs.dm#L115"><img src="git.png" width="16" height="16" title="code/modules/mob/status_procs.dm 115"></a></aside></h3><p>Adjust the disgust level of a mob</p><h3 id="proc/adjust_drugginess"><aside class="declaration">proc </aside>adjust_drugginess<aside>(amount) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/status_procs.dm#L107"><img src="git.png" width="16" height="16" title="code/modules/mob/status_procs.dm 107"></a></aside></h3><p>Adjust the drugginess of a mob</p><h3 id="proc/adjust_nutrition"><aside class="declaration">proc </aside>adjust_nutrition<aside>(change, max) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob.dm#L965"><img src="git.png" width="16" height="16" title="code/modules/mob/mob.dm 965"></a></aside></h3><p>Adjust the nutrition of a mob</p><h3 id="proc/attempt_resist_grab"><aside class="declaration">proc </aside>attempt_resist_grab<aside>(moving_resist, forced, log) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/living/living.dm#L855"><img src="git.png" width="16" height="16" title="code/modules/mob/living/living.dm 855"></a></aside></h3><p>Proc to resist a grab. moving_resist is TRUE if this began by someone attempting to move. Return FALSE if still grabbed/failed to break out. Use this instead of resist_grab() directly.</p><h3 id="proc/audible_message"><aside class="parent"><a title="/atom" href="atom.html#proc/audible_message"></a></aside>audible_message<aside>(message, deaf_message, hearing_distance, self_message, /list/ignored_mobs) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob.dm#L232"><img src="git.png" width="16" height="16" title="code/modules/mob/mob.dm 232"></a></aside></h3><p>Show a message to all mobs in earshot of this one</p>
<p>This would be for audible actions by the src mob</p>
<p>vars:</p>
<ul>
<li>message is the message output to anyone who can hear.</li>
<li>self_message (optional) is what the src mob hears.</li>
<li>deaf_message (optional) is what deaf people will see.</li>
<li>hearing_distance (optional) is the range, how many tiles away the message can be heard.</li>
<li>ignored_mobs (optional) doesn't show any message to any given mob in the list.</li>
</ul><h3 id="proc/blind_eyes"><aside class="declaration">proc </aside>blind_eyes<aside>(amount) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/status_procs.dm#L25"><img src="git.png" width="16" height="16" title="code/modules/mob/status_procs.dm 25"></a></aside></h3><p>Sets a mob's blindness to an amount if it was not above it already, similar to how status effects work</p><h3 id="proc/blur_eyes"><aside class="declaration">proc </aside>blur_eyes<aside>(amount) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/status_procs.dm#L66"><img src="git.png" width="16" height="16" title="code/modules/mob/status_procs.dm 66"></a></aside></h3><p>Make the mobs vision blurry</p><h3 id="proc/check_obscured_slots"><aside class="declaration">proc </aside>check_obscured_slots<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob.dm#L267"><img src="git.png" width="16" height="16" title="code/modules/mob/mob.dm 267"></a></aside></h3><p>Checks for slots that are currently obscured by other garments.</p><h3 id="proc/clear_fullscreen"><aside class="declaration">proc </aside>clear_fullscreen<aside>(category, animated) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_rendering/fullscreen/fullscreen.dm#L29"><img src="git.png" width="16" height="16" title="code/_rendering/fullscreen/fullscreen.dm 29"></a></aside></h3><p>Wipes a fullscreen of a certain category</p>
<p>Second argument is for animation delay.</p><h3 id="proc/clear_typing_indicator"><aside class="declaration">proc </aside>clear_typing_indicator<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/typing_indicator.dm#L44"><img src="git.png" width="16" height="16" title="code/modules/mob/typing_indicator.dm 44"></a></aside></h3><p>Removes typing indicator.</p><h3 id="proc/create_chat_message"><aside class="declaration">proc </aside>create_chat_message<aside>(/<a href="atom.html">atom</a>/<a href="atom/movable.html">movable</a>/speaker, /<a href="datum.html">datum</a>/language/message_language, raw_message, /list/spans, message_mode) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/datums/chatmessage.dm#L200"><img src="git.png" width="16" height="16" title="code/datums/chatmessage.dm 200"></a></aside></h3><p>Creates a message overlay at a defined location for a given speaker</p>
<p>Arguments:</p>
<ul>
<li>speaker - The atom who is saying this message</li>
<li>message_language - The language that the message is said in</li>
<li>raw_message - The text content of the message</li>
<li>spans - Additional classes to be added to the message</li>
<li>message_mode - Bitflags relating to the mode of the message</li>
</ul><h3 id="proc/display_typing_indicator"><aside class="declaration">proc </aside>display_typing_indicator<aside>(timeout_override, state_override, force) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/typing_indicator.dm#L34"><img src="git.png" width="16" height="16" title="code/modules/mob/typing_indicator.dm 34"></a></aside></h3><p>Displays typing indicator.
@param timeout_override - Sets how long until this will disappear on its own without the user finishing their message or logging out. Defaults to src.typing_indicator_timeout
@param state_override - Sets the state that we will fetch. Defaults to src.get_typing_indicator_icon_state()
@param force - shows even if src.typing_indcator_enabled is FALSE.</p><h3 id="proc/dispose_rendering"><aside class="declaration">proc </aside>dispose_rendering<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_rendering/mob.dm#L20"><img src="git.png" width="16" height="16" title="code/_rendering/mob.dm 20"></a></aside></h3><p>destroys screen rendering. call on mob del</p><h3 id="proc/dropItemToGround"><aside class="declaration">proc </aside>dropItemToGround<aside>(/<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/I, force, silent, invdrop) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/inventory.dm#L301"><img src="git.png" width="16" height="16" title="code/modules/mob/inventory.dm 301"></a></aside></h3><p>Used to drop an item (if it exists) to the ground.</p>
<ul>
<li>Will pass as TRUE is successfully dropped, or if there is no item to drop.</li>
<li>Will pass FALSE if the item can not be dropped due to TRAIT_NODROP via doUnEquip()
If the item can be dropped, it will be forceMove()'d to the ground and the turf's Entered() will be called.</li>
</ul><h3 id="proc/equipped_speed_mods"><aside class="declaration">proc </aside>equipped_speed_mods<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob.dm#L1001"><img src="git.png" width="16" height="16" title="code/modules/mob/mob.dm 1001"></a></aside></h3><p>Gets the combined speed modification of all worn items
Except base mob type doesnt really wear items</p><h3 id="proc/examinate"><aside class="declaration">verb </aside>examinate<aside>(/<a href="atom.html">atom</a>/A) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob.dm#L317"><img src="git.png" width="16" height="16" title="code/modules/mob/mob.dm 317"></a></aside></h3><p>Examine a mob</p>
<p>mob verbs are faster than object verbs. See
<a href="https://secure.byond.com/forum/?post=1326139&amp;page=2#comment8198716">this byond forum post</a>
for why this isn't atom/verb/examine()</p><h3 id="proc/generate_typing_indicator"><aside class="declaration">proc </aside>generate_typing_indicator<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/typing_indicator.dm#L19"><img src="git.png" width="16" height="16" title="code/modules/mob/typing_indicator.dm 19"></a></aside></h3><p>Generates the mutable appearance for typing indicator. Should prevent stuck overlays.</p><h3 id="proc/get_ability_property"><aside class="declaration">proc </aside>get_ability_property<aside>(ability, property) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/innate_abilities.dm#L12"><img src="git.png" width="16" height="16" title="code/modules/mob/innate_abilities.dm 12"></a></aside></h3><p>Gets an ability property</p><h3 id="proc/get_actionspeed_modifiers"><aside class="declaration">proc </aside>get_actionspeed_modifiers<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/actionspeed/_actionspeed_modifier.dm#L168"><img src="git.png" width="16" height="16" title="code/modules/actionspeed/_actionspeed_modifier.dm 168"></a></aside></h3><p>Get the action speed modifiers list of the mob</p><h3 id="proc/get_active_hand"><aside class="declaration">proc </aside>get_active_hand<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/surgery/bodyparts/helpers.dm#L16"><img src="git.png" width="16" height="16" title="code/modules/surgery/bodyparts/helpers.dm 16"></a></aside></h3><p>Get the bodypart for whatever hand we have active, Only relevant for carbons</p><h3 id="proc/get_config_multiplicative_speed"><aside class="declaration">proc </aside>get_config_multiplicative_speed<aside>(floating) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/movespeed/_movespeed_modifier.dm#L199"><img src="git.png" width="16" height="16" title="code/modules/movespeed/_movespeed_modifier.dm 199"></a></aside></h3><p>Get the global config movespeed of a mob by type</p><h3 id="proc/get_indicator_overlay"><aside class="declaration">proc </aside>get_indicator_overlay<aside>(state) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/typing_indicator.dm#L5"><img src="git.png" width="16" height="16" title="code/modules/mob/typing_indicator.dm 5"></a></aside></h3><p>Fetches the typing indicator we'll use from GLOB.typing_indicator_overlays</p><h3 id="proc/get_movespeed_modifier_datum"><aside class="declaration">proc </aside>get_movespeed_modifier_datum<aside>(id) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/movespeed/_movespeed_modifier.dm#L263"><img src="git.png" width="16" height="16" title="code/modules/movespeed/_movespeed_modifier.dm 263"></a></aside></h3><p>Gets the movespeed modifier datum of a modifier on a mob. Returns null if not found.
DANGER: IT IS UP TO THE PERSON USING THIS TO MAKE SURE THE MODIFIER IS NOT MODIFIED IF IT HAPPENS TO BE GLOBAL/CACHED.</p><h3 id="proc/get_movespeed_modifiers"><aside class="declaration">proc </aside>get_movespeed_modifiers<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/movespeed/_movespeed_modifier.dm#L247"><img src="git.png" width="16" height="16" title="code/modules/movespeed/_movespeed_modifier.dm 247"></a></aside></h3><p>Get the move speed modifiers list of the mob</p><h3 id="proc/get_num_held_items"><aside class="declaration">proc </aside>get_num_held_items<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/inventory.dm#L104"><img src="git.png" width="16" height="16" title="code/modules/mob/inventory.dm 104"></a></aside></h3><p>Find number of held items, multihand compatible</p><h3 id="proc/get_proc_holders"><aside class="declaration">proc </aside>get_proc_holders<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob.dm#L549"><img src="git.png" width="16" height="16" title="code/modules/mob/mob.dm 549"></a></aside></h3><p>Gets all relevant proc holders for the browser statpenl</p><h3 id="proc/get_spells_for_statpanel"><aside class="declaration">proc </aside>get_spells_for_statpanel<aside>(/list/spells) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob.dm#L560"><img src="git.png" width="16" height="16" title="code/modules/mob/mob.dm 560"></a></aside></h3><p>Convert a list of spells into a displyable list for the statpanel</p>
<p>Shows charge and other important info</p><h3 id="proc/get_status_tab_items"><aside class="declaration">proc </aside>get_status_tab_items<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob.dm#L545"><img src="git.png" width="16" height="16" title="code/modules/mob/mob.dm 545"></a></aside></h3><p>Adds this list to the output to the stat browser</p><h3 id="proc/get_top_level_mob"><aside class="declaration">proc </aside>get_top_level_mob<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/say_vr.dm#L5"><img src="git.png" width="16" height="16" title="code/modules/mob/say_vr.dm 5"></a></aside></h3><p>SUBTLE COMMAND</p><h3 id="proc/get_typing_indicator_icon_state"><aside class="declaration">proc </aside>get_typing_indicator_icon_state<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/typing_indicator.dm#L15"><img src="git.png" width="16" height="16" title="code/modules/mob/typing_indicator.dm 15"></a></aside></h3><p>Gets the state we will use for typing indicators. Defaults to src.typing_indicator_state</p><h3 id="proc/grant_ability_from_source"><aside class="declaration">proc </aside>grant_ability_from_source<aside>(/list/abilities, source) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/innate_abilities.dm#L27"><img src="git.png" width="16" height="16" title="code/modules/mob/innate_abilities.dm 27"></a></aside></h3><p>Grants an ability from a source</p><h3 id="proc/handle_eye_contact"><aside class="declaration">proc </aside>handle_eye_contact<aside>(/<a href="mob.html">mob</a>/<a href="mob/living.html">living</a>/examined_mob) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob.dm#L360"><img src="git.png" width="16" height="16" title="code/modules/mob/mob.dm 360"></a></aside></h3><p>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 second within 5 tiles, we make eye contact!</p>
<p>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</p><h3 id="proc/has_actionspeed_modifier"><aside class="declaration">proc </aside>has_actionspeed_modifier<aside>(/<a href="datum.html">datum</a>/<a href="datum/actionspeed_modifier.html">actionspeed_modifier</a>/datum_type_id) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/actionspeed/_actionspeed_modifier.dm#L135"><img src="git.png" width="16" height="16" title="code/modules/actionspeed/_actionspeed_modifier.dm 135"></a></aside></h3><p>Is there a actionspeed modifier for this mob</p><h3 id="proc/has_movespeed_modifier"><aside class="declaration">proc </aside>has_movespeed_modifier<aside>(/<a href="datum.html">datum</a>/<a href="datum/movespeed_modifier.html">movespeed_modifier</a>/datum_type_id) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/movespeed/_movespeed_modifier.dm#L183"><img src="git.png" width="16" height="16" title="code/modules/movespeed/_movespeed_modifier.dm 183"></a></aside></h3><p>Is there a movespeed modifier for this mob</p><h3 id="proc/hide_fullscreens"><aside class="declaration">proc </aside>hide_fullscreens<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_rendering/fullscreen/fullscreen.dm#L59"><img src="git.png" width="16" height="16" title="code/_rendering/fullscreen/fullscreen.dm 59"></a></aside></h3><p>Removes fullscreens from client but not the mob</p><h3 id="proc/init_rendering"><aside class="declaration">proc </aside>init_rendering<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_rendering/mob.dm#L4"><img src="git.png" width="16" height="16" title="code/_rendering/mob.dm 4"></a></aside></h3><p>initializes screen rendering. call on mob new</p><h3 id="proc/initialize_actionspeed"><aside class="declaration">proc </aside>initialize_actionspeed<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/actionspeed/_actionspeed_modifier.dm#L164"><img src="git.png" width="16" height="16" title="code/modules/actionspeed/_actionspeed_modifier.dm 164"></a></aside></h3><p>Adds a default action speed</p><h3 id="proc/onShuttleMove">onShuttleMove<aside>(/<a href="turf.html">turf</a>/newT, /<a href="turf.html">turf</a>/oldT, /list/movement_force, move_dir, /<a href="obj.html">obj</a>/<a href="obj/docking_port.html">docking_port</a>/stationary/old_dock, /<a href="obj.html">obj</a>/<a href="obj/docking_port.html">docking_port</a>/<a href="obj/docking_port/mobile.html">mobile</a>/moving_dock) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/shuttle/on_move.dm#L301"><img src="git.png" width="16" height="16" title="code/modules/shuttle/on_move.dm 301"></a></aside></h3><p>Mob move procs</p><h3 id="proc/on_item_dropped"><aside class="declaration">proc </aside>on_item_dropped<aside>(/<a href="obj.html">obj</a>/<a href="obj/item.html">item</a>/I) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob.dm#L1010"><img src="git.png" width="16" height="16" title="code/modules/mob/mob.dm 1010"></a></aside></h3><p>Mostly called by doUnEquip()
Like item dropped() on mob side.</p><h3 id="proc/overlay_fullscreen"><aside class="declaration">proc </aside>overlay_fullscreen<aside>(category, type, severity) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_rendering/fullscreen/fullscreen.dm#L9"><img src="git.png" width="16" height="16" title="code/_rendering/fullscreen/fullscreen.dm 9"></a></aside></h3><p>Adds a fullscreen overlay</p>
<p>@params</p>
<ul>
<li>category - string - must exist. will overwrite any other screen in this category. defaults to type.</li>
<li>type - the typepath of the screen</li>
<li>severity - severity - different screen objects have differing severities</li>
</ul><h3 id="proc/pointed"><aside class="declaration">verb </aside>pointed<aside>(/<a href="atom.html">atom</a>/target) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/point/point.dm#L98"><img src="git.png" width="16" height="16" title="code/modules/point/point.dm 98"></a></aside></h3><p>Point at an atom</p>
<p>mob verbs are faster than object verbs. See
<a href="https://secure.byond.com/forum/?post=1326139&amp;page=2#comment8198716">this byond forum post</a>
for why this isn't atom/verb/pointed()</p>
<p>note: ghosts can point, this is intended</p>
<p>visible_message will handle invisibility properly</p>
<p>overridden here and in /mob/dead/observer for different point span classes and sanity checks</p><h3 id="proc/reload_fullscreen"><aside class="declaration">proc </aside>reload_fullscreen<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_rendering/fullscreen/fullscreen.dm#L67"><img src="git.png" width="16" height="16" title="code/_rendering/fullscreen/fullscreen.dm 67"></a></aside></h3><p>Ensures all fullscreens are on client.</p><h3 id="proc/reload_rendering"><aside class="declaration">proc </aside>reload_rendering<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_rendering/mob.dm#L9"><img src="git.png" width="16" height="16" title="code/_rendering/mob.dm 9"></a></aside></h3><p>loads screen rendering. call on mob login</p><h3 id="proc/remove_ability_from_source"><aside class="declaration">proc </aside>remove_ability_from_source<aside>(/list/abilities, source) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/innate_abilities.dm#L45"><img src="git.png" width="16" height="16" title="code/modules/mob/innate_abilities.dm 45"></a></aside></h3><p>Removes an ability from a source</p><h3 id="proc/remove_actionspeed_modifier"><aside class="declaration">proc </aside>remove_actionspeed_modifier<aside>(/<a href="datum.html">datum</a>/<a href="datum/actionspeed_modifier.html">actionspeed_modifier</a>/type_id_datum, update) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/actionspeed/_actionspeed_modifier.dm#L79"><img src="git.png" width="16" height="16" title="code/modules/actionspeed/_actionspeed_modifier.dm 79"></a></aside></h3><p>Remove a action speed modifier from a mob, whether static or variable.</p><h3 id="proc/remove_from_alive_mob_list"><aside class="declaration">proc </aside>remove_from_alive_mob_list<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_lists.dm#L20"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_lists.dm 20"></a></aside></h3><p>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.</p><h3 id="proc/remove_from_current_dead_players"><aside class="declaration">proc </aside>remove_from_current_dead_players<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_lists.dm#L82"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_lists.dm 82"></a></aside></h3><p>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.</p><h3 id="proc/remove_from_current_living_antags"><aside class="declaration">proc </aside>remove_from_current_living_antags<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_lists.dm#L120"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_lists.dm 120"></a></aside></h3><p>Removes the mob reference from the list of living antag player-mobs.</p><h3 id="proc/remove_from_current_living_players"><aside class="declaration">proc </aside>remove_from_current_living_players<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_lists.dm#L105"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_lists.dm 105"></a></aside></h3><p>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.</p><h3 id="proc/remove_from_dead_mob_list"><aside class="declaration">proc </aside>remove_from_dead_mob_list<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_lists.dm#L35"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_lists.dm 35"></a></aside></h3><p>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.</p><h3 id="proc/remove_from_mob_list"><aside class="declaration">proc </aside>remove_from_mob_list<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_lists.dm#L7"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_lists.dm 7"></a></aside></h3><p>Removes the mob reference from the list and directory of all mobs. Called on Destroy().</p><h3 id="proc/remove_from_player_list"><aside class="declaration">proc </aside>remove_from_player_list<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob_lists.dm#L53"><img src="git.png" width="16" height="16" title="code/modules/mob/mob_lists.dm 53"></a></aside></h3><p>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().</p><h3 id="proc/remove_movespeed_modifier"><aside class="declaration">proc </aside>remove_movespeed_modifier<aside>(/<a href="datum.html">datum</a>/<a href="datum/movespeed_modifier.html">movespeed_modifier</a>/type_id_datum, update) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/movespeed/_movespeed_modifier.dm#L110"><img src="git.png" width="16" height="16" title="code/modules/movespeed/_movespeed_modifier.dm 110"></a></aside></h3><p>Remove a move speed modifier from a mob, whether static or variable.</p><h3 id="proc/setGrabState"><aside class="parent"><a title="/atom/movable" href="atom/movable.html#proc/setGrabState"></a></aside>setGrabState<aside>(newstate) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob.dm#L980"><img src="git.png" width="16" height="16" title="code/modules/mob/mob.dm 980"></a></aside></h3><p>Updates the grab state of the mob and updates movespeed</p><h3 id="proc/set_ability_property"><aside class="declaration">proc </aside>set_ability_property<aside>(ability, property, value) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/innate_abilities.dm#L4"><img src="git.png" width="16" height="16" title="code/modules/mob/innate_abilities.dm 4"></a></aside></h3><p>Sets an ability property</p><h3 id="proc/set_blindness"><aside class="declaration">proc </aside>set_blindness<aside>(amount) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/status_procs.dm#L45"><img src="git.png" width="16" height="16" title="code/modules/mob/status_procs.dm 45"></a></aside></h3><p>Force set the blindness of a mob to some level</p><h3 id="proc/set_blurriness"><aside class="declaration">proc </aside>set_blurriness<aside>(amount) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/status_procs.dm#L79"><img src="git.png" width="16" height="16" title="code/modules/mob/status_procs.dm 79"></a></aside></h3><p>Set the mobs blurriness of vision to an amount</p><h3 id="proc/set_disgust"><aside class="declaration">proc </aside>set_disgust<aside>(amount) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/status_procs.dm#L119"><img src="git.png" width="16" height="16" title="code/modules/mob/status_procs.dm 119"></a></aside></h3><p>Set the disgust level of a mob</p><h3 id="proc/set_dizziness"><aside class="declaration">proc </aside>set_dizziness<aside>(amount) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/status_procs.dm#L19"><img src="git.png" width="16" height="16" title="code/modules/mob/status_procs.dm 19"></a></aside></h3><p>FOrce set the dizzyness of a mob</p><h3 id="proc/set_drugginess"><aside class="declaration">proc </aside>set_drugginess<aside>(amount) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/status_procs.dm#L111"><img src="git.png" width="16" height="16" title="code/modules/mob/status_procs.dm 111"></a></aside></h3><p>Set the drugginess of a mob</p><h3 id="proc/set_nutrition"><aside class="declaration">proc </aside>set_nutrition<aside>(change) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob.dm#L969"><img src="git.png" width="16" height="16" title="code/modules/mob/mob.dm 969"></a></aside></h3><p>Force set the mob nutrition</p><h3 id="proc/set_species"><aside class="declaration">proc </aside>set_species<aside>(/<a href="datum.html">datum</a>/<a href="datum/species.html">species</a>/mrace, icon_update) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/datums/dna.dm#L378"><img src="git.png" width="16" height="16" title="code/datums/dna.dm 378"></a></aside></h3><p>DNA MOB-PROCS</p><h3 id="proc/set_stat"><aside class="declaration">proc </aside>set_stat<aside>(new_stat) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob.dm#L1018"><img src="git.png" width="16" height="16" title="code/modules/mob/mob.dm 1018"></a></aside></h3><p>Used to wrap stat setting to trigger on-stat-change functionality.
Must be used instead of directly setting a mob's stat var,
so that the signal is sent properly.</p><h3 id="proc/shared_ui_interaction"><aside class="declaration">proc </aside>shared_ui_interaction<aside>(src_object) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/tgui/states.dm#L62"><img src="git.png" width="16" height="16" title="code/modules/tgui/states.dm 62"></a></aside></h3><p>public</p>
<p>Standard interaction/sanity checks. Different mob types may have overrides.</p>
<p>return UI_state The state of the UI.</p><h3 id="proc/shuttleRotate"><aside class="parent"><a title="/atom" href="atom.html#proc/shuttleRotate"></a></aside>shuttleRotate<aside>(rotation, params) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/shuttle/shuttle_rotate.dm#L37"><img src="git.png" width="16" height="16" title="code/modules/shuttle/shuttle_rotate.dm 37"></a></aside></h3><p>Mob rotate procs</p><h3 id="proc/total_multiplicative_slowdown"><aside class="declaration">proc </aside>total_multiplicative_slowdown<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/movespeed/_movespeed_modifier.dm#L253"><img src="git.png" width="16" height="16" title="code/modules/movespeed/_movespeed_modifier.dm 253"></a></aside></h3><p>Calculate the total slowdown of all movespeed modifiers</p><h3 id="proc/update_action_buttons"><aside class="declaration">proc </aside>update_action_buttons<aside>(reload_screen) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_onclick/hud/action_button.dm#L179"><img src="git.png" width="16" height="16" title="code/_onclick/hud/action_button.dm 179"></a></aside></h3><p>This proc handles adding all of the mob's actions to their screen</p>
<p>If you just need to update existing buttons, use [/mob/proc/update_mob_action_buttons]!</p>
<p>Arguments:</p>
<ul>
<li>update_flags - reload_screen - bool, if TRUE, this proc will add the button to the screen of the passed mob as well</li>
</ul><h3 id="proc/update_actionspeed"><aside class="declaration">proc </aside>update_actionspeed<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/actionspeed/_actionspeed_modifier.dm#L146"><img src="git.png" width="16" height="16" title="code/modules/actionspeed/_actionspeed_modifier.dm 146"></a></aside></h3><p>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!</p><h3 id="proc/update_blindness"><aside class="declaration">proc </aside>update_blindness<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/status_procs.dm#L52"><img src="git.png" width="16" height="16" title="code/modules/mob/status_procs.dm 52"></a></aside></h3><p>proc that adds and removes blindness overlays when necessary</p><h3 id="proc/update_config_movespeed"><aside class="declaration">proc </aside>update_config_movespeed<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/movespeed/_movespeed_modifier.dm#L194"><img src="git.png" width="16" height="16" title="code/modules/movespeed/_movespeed_modifier.dm 194"></a></aside></h3><p>Set or update the global movespeed config on a mob</p><h3 id="proc/update_movespeed"><aside class="declaration">proc </aside>update_movespeed<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/movespeed/_movespeed_modifier.dm#L207"><img src="git.png" width="16" height="16" title="code/modules/movespeed/_movespeed_modifier.dm 207"></a></aside></h3><p>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!</p><h3 id="proc/visible_message"><aside class="parent"><a title="/atom" href="atom.html#proc/visible_message"></a></aside>visible_message<aside>(message, self_message, blind_message, vision_distance, /list/ignored_mobs, /<a href="mob.html">mob</a>/target, target_message, omni) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/mob/mob.dm#L188"><img src="git.png" width="16" height="16" title="code/modules/mob/mob.dm 188"></a></aside></h3><p>Adds the functionality to self_message.</p><h3 id="proc/vv_edit_var">vv_edit_var<aside>(var_name, var_value) <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/modules/movespeed/_movespeed_modifier.dm#L166"><img src="git.png" width="16" height="16" title="code/modules/movespeed/_movespeed_modifier.dm 166"></a></aside></h3><p>Handles the special case of editing the movement var</p><h3 id="proc/wipe_fullscreens"><aside class="declaration">proc </aside>wipe_fullscreens<aside>() <a href="https://github.com/evilew/GS13-Citadel/blob/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e/code/_rendering/fullscreen/fullscreen.dm#L52"><img src="git.png" width="16" height="16" title="code/_rendering/fullscreen/fullscreen.dm 52"></a></aside></h3><p>Wipes all fullscreens</p></main><footer>tgstation.dme <a href="https://github.com/evilew/GS13-Citadel/tree/e8e0068531dd988f9e65b33ae7866d4fbf1fdd9e">e8e0068</a> (master) — <a href="https://github.com/SpaceManiac/SpacemanDMM/blob/master/crates/dmdoc/README.md">dmdoc 1.9.0</a></footer></body></html>