/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 | |
LAssailant | A weakref to the last mob/living/carbon to push/drag/grab this mob (exclusively used by slimes friend recognition) |
---|---|
actions | List of action hud items the user has |
active_hand_index | What hand is the active hand |
active_storage | Storage component (for mob inventory) |
bodytemperature | Default body temperature |
bubble_icon | What icon the mob uses for typing indicators |
buckled | movable atoms buckled to this mob |
buckling | movable atom we are buckled to |
cached_multiplicative_slowdown | The calculated mob speed slowdown based on the modifiers list |
can_toggle_combat | Whether combat mode can be toggled |
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 |
chameleon_item_actions | A list of chameleon actions we have specifically This can be unified with the actions list |
click_intercept | Allows a datum to intercept all click calls this mob is the so |
client_colours | The client colors the mob is looking at. (from 'code/modules/client/client_color.dm') |
combat_mode | Whether combat mode is enabled |
control_object | Used by admins to possess objects. All mobs should have this var |
deathsound | The sound made on death |
digitalcamo | Can they be tracked by the AI? |
digitaldisguise | what does the AI see instead of them? |
digitalinvis | Are they ivisible to the AI? |
do_afters | 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 |
emotes_used | Used for tracking last uses of emotes for cooldown purposes |
eye_blind | Is the mob blind |
eye_blurry | Does the mob have blurry sight |
faction | A list of factions that this mob is currently in, for hostile mob targetting, amongst other things |
focus | What receives our keyboard inputs. src by default. (from 'code/modules/keybindings/focus.dm') |
has_unlimited_silicon_privilege | Can they interact with station electronics |
held_items | list of items held in hands |
hud_type | The HUD type the mob will gain on Initialize. (from 'code/_onclick/hud/hud.dm') |
hud_used | Active hud |
in_throw_mode | Is the mob throw intent on |
is_shifted | Is the mob pixel shifted |
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 |
m_intent | The movement intent of the mob (run/wal) |
machine | The machine the mob is interacting with (this is very bad old code btw) |
memory_amt | Size of the user's memory(IC notes) |
mock_client | A mock client, provided by tests and friends |
mousemove_intercept_objects | List of datums that this has which make use of MouseMove() |
move_on_shuttle | Can this mob enter shuttles |
movespeed_modification | List of movement speed modifiers applying to this mob |
name_archive | back up of the real name during admin possession |
next_move | Tick time the mob can next move |
notransform | Magic var that stops you moving and interacting with anything |
num_legs | How many legs does this mob currently have. Should only be changed through set_num_legs() |
observers | The list of people observing this mob. |
originalactions | Actions that belong to this mob used in observers |
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 |
research_scanner | I have no idea tbh |
satiety | Satiation level of the mob |
screens | Contains the fullscreen overlays the mob can see (from 'code/_onclick/hud/fullscreen.dm') |
shift_to_open_context_menu | Whether the context menu is opened with shift-right-click as opposed to right-click |
spacewalk | can this mob move freely in space (should be a trait) |
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 |
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 | |
Cell | Some kind of debug verb that gives atmosphere environment details |
Destroy | Delete a mob |
GenerateTag | Generate the tag for this mob |
Initialize | Intialize a mob |
IsAdvancedToolUser | This might need a rename but it should replace the can this mob use things check |
Login | Run when a client is put in this mob or reconnets to byond and their client was on this mob |
MouseDrop | Controls if a mouse drop succeeds (return null if it doesnt) |
Process_Spacemove | Handles mob/living movement in space (or no gravity) |
Topic | Topic call back for any mob |
abandon_mob | Allows you to respawn, abandoning your current mob |
add_memory | Add a note to the mind datum |
add_movespeed_modifier | Add a move speed modifier to a mob |
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(mapload). |
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_blindness | Adjust a mobs blindness by an amount |
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 |
attack_ui | This proc is called whenever someone clicks an inventory ui slot. |
auto_deadmin_on_login | Checks if the attached client is an admin and may deadmin them |
blind_eyes | Blind a mobs eyes by amount |
buckle_mob | Buckle to another mob |
canUseStorage | Can this mob use storage |
canUseTopic | Can the mob use Topic to interact with machines |
can_block_magic | Checks to see if the mob can block magic |
can_buckle | can the mob be buckled to something by default? |
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_read | Can this mob read (is literate and not blind) |
can_resist | Can this mob resist (default FALSE) |
can_see_reagents | Can the mob see reagents inside of containers? |
can_unbuckle | can the mob be unbuckled from something by default? |
cancel_camera | Sometimes helps if the user is stuck in another perspective or camera |
canface | Returns true if a mob can turn to face things |
check_emote | Check if this message is an emote |
click_random_mob | Clicks a random nearby mob with the source from this mob |
common_trait_examine | Examine text for traits shared by multiple types. |
create_chat_message | Creates a message overlay at a defined location for a given speaker |
down | Moves a mob down a z level |
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 |
faction_check_mob | Check if the other mob has any factions the same as us |
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 |
get_actions_for_statpanel | Convert a list of spells into a displyable list for the statpanel |
get_active_hand | Get the bodypart for whatever hand we have active, Only relevant for carbons |
get_config_multiplicative_speed | Get the global config movespeed of a mob by type |
get_ghost | Get the ghost of this mob (from the mind) |
get_idcard | Get the id card on this mob |
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_photo_description | Return the desc of this mob for a photo |
get_policy_keywords | Get the list of keywords for policy config |
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 | Find movable atoms? near a mob that are viable for pushing off when moving |
getorgan | Get the organ object from the mob matching the passed in typepath |
getorganslot | Get an organ relating to a specific slot |
getorganszone | Get organ objects by zone |
grab_ghost | Force get the ghost from the mind |
handle_eye_contact | our active hand, to check if it's disabled/detatched how long it takes for the blind person to find the thing they're examining temporarily turn off combat mode for reasons 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! |
has_movespeed_modifier | Is there a movespeed modifier for this mob |
has_status_effect | Checks if this mob has a status effect that shares the passed effect's ID |
has_status_effect_list | Returns a list of all status effects that share the passed effect type's ID |
held_index_to_hand | Returns HAND_LEFT or HAND_RIGHT based on whether the left or right hand is selected |
hide_other_mob_action_buttons | Hide another mob's action buttons from this mob |
hivecheck | Check if the mob has a hivemind channel |
incapacitated | Is the mob incapacitated |
is_flying | Is the mob a flying mob |
is_literate | This mob is abile to read books |
is_muzzled | Handle the result of a click drag onto this mob |
lingcheck | Check if the mob has a ling hivemind |
log_message | Logs a message in a mob's individual log, and in the global logs as well if log_globally is true |
lowest_buckled_mob | Find the mob at the bottom of a buckle chain |
manual_emote | Allows the intrepid coder to send a basic emote Takes text as input, sends it out to those who need to know after some light parsing If you need something more complex, make it into a datum emote Arguments: |
me_verb | The me emote verb |
memory | Get the notes of this mob |
mob_has_gravity | Returns true if a mob has gravity |
mob_has_heavy_gravity | used for determining if a mob should be flung |
mob_negates_gravity | Does this mob ignore gravity |
mode | Verb to activate the object in your held hand |
movement_delay | Can the atom pass this mob (always true for /mob) Get the current movespeed delay of the mob |
movespeed_modifier_identical_check | Check if a movespeed modifier is identical to another |
notify_ghost_cloning | Notify a ghost that it's body is being cloned |
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 | Show the language menu for this mob |
perform_hand_swap | Performs the actual ritual of swapping hands, such as setting the held index variables |
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) |
regenerate_icons | Redraws the entire mob. For carbons, this is rather expensive, please use the individual update_X procs. |
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 |
replace_identification_name | update the ID name of this mob |
replace_records_name | Updates GLOB.data_core records with new name , see mob/living/carbon/human |
reset_perspective | Reset the attached clients perspective (viewpoint) |
restrained | Is the mob restrained |
say_dead | Speak as a dead person (ghost etc) |
say_verb | Say verb |
setMovetype | Set the movement type of the mob and update it's movespeed |
set_blindness | Force set the blindness of a mob to some level |
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_inv | Signal sent after the eye has been successfully updated, with the client existing. Show the mob's inventory to another mob |
show_message | Show a message to this mob (visual) |
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 |
sort_movespeed_modlist | Sort the list of move speed modifiers |
spin | Spin this mob around it's central axis |
sync_lighting_plane_cutoff | Set the lighting plane hud alpha to the mobs lighting_alpha var |
toggle_move_intent | Toggle the move intent of the mob |
total_multiplicative_slowdown | Calculate the total slowdown of all movespeed modifiers |
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_clothing | Updates every item slot passed into it. |
update_config_movespeed | Set or update the global movespeed config on a mob |
update_gravity | Update the gravity status of this mob |
update_inv_hands | Updates the held items overlay(s) & HUD element. |
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 |
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 |
vv_edit_var | Handles the special case of editing the movement var |
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 |
Var Details
LAssailant
A weakref to the last mob/living/carbon to push/drag/grab this mob (exclusively used by slimes friend recognition)
actions
List of action hud items the user has
active_hand_index
What hand is the active hand
active_storage
Storage component (for mob inventory)
bodytemperature
Default body temperature
bubble_icon
What icon the mob uses for typing indicators
buckled
movable atoms buckled to this mob
buckling
movable atom we are buckled to
cached_multiplicative_slowdown
The calculated mob speed slowdown based on the modifiers list
can_toggle_combat
Whether combat mode can be toggled
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
chameleon_item_actions
A list of chameleon actions we have specifically This can be unified with the actions list
click_intercept
Allows a datum to intercept all click calls this mob is the so
client_colours
The client colors the mob is looking at. (from 'code/modules/client/client_color.dm')
combat_mode
Whether combat mode is enabled
control_object
Used by admins to possess objects. All mobs should have this var
deathsound
The sound made on death
leave null for no sound. used for *deathgasp
digitalcamo
Can they be tracked by the AI?
digitaldisguise
what does the AI see instead of them?
digitalinvis
Are they ivisible to the AI?
do_afters
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
emotes_used
Used for tracking last uses of emotes for cooldown purposes
eye_blind
Is the mob blind
eye_blurry
Does the mob have blurry sight
faction
A list of factions that this mob is currently in, for hostile mob targetting, amongst other things
focus
What receives our keyboard inputs. src by default. (from 'code/modules/keybindings/focus.dm')
has_unlimited_silicon_privilege
Can they interact with station electronics
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_type
The HUD type the mob will gain on Initialize. (from 'code/_onclick/hud/hud.dm')
hud_used
Active hud
in_throw_mode
Is the mob throw intent on
is_shifted
Is the mob pixel shifted
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
m_intent
The movement intent of the mob (run/wal)
machine
The machine the mob is interacting with (this is very bad old code btw)
memory_amt
Size of the user's memory(IC notes)
mock_client
A mock client, provided by tests and friends
mousemove_intercept_objects
List of datums that this has which make use of MouseMove()
move_on_shuttle
Can this mob enter shuttles
movespeed_modification
List of movement speed modifiers applying to this mob
name_archive
back up of the real name during admin possession
If an admin possesses an object it's real name is set to the admin name and this stores whatever the real name was previously. When possession ends, the real name is reset to this value
next_move
Tick time the mob can next move
notransform
Magic var that stops you moving and interacting with anything
Set when you're being turned into something else and also used in a bunch of places it probably shouldn't really be
num_legs
How many legs does this mob currently have. Should only be changed through set_num_legs()
observers
The list of people observing this mob.
originalactions
Actions that belong to this mob used in observers
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
research_scanner
I have no idea tbh
satiety
Satiation level of the mob
screens
Contains the fullscreen overlays the mob can see (from 'code/_onclick/hud/fullscreen.dm')
shift_to_open_context_menu
Whether the context menu is opened with shift-right-click as opposed to right-click
spacewalk
can this mob move freely in space (should be a trait)
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.
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
Cell
Some kind of debug verb that gives atmosphere environment details
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
- GLOB.mob_directory
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
Ghostizes the client attached to this mob
Parent call
Returns QDEL_HINT_HARDDEL (don't change this)
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.mob_directory (by tag)
- 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
IsAdvancedToolUser
This might need a rename but it should replace the can this mob use things check
Login
Run when a client is put in this mob or reconnets to byond and their client was on this mob
Things it does:
- Adds player to player_list
- sets lastKnownIP
- sets computer_id
- logs the login
- tells the world to update it's status (for player count)
- create mob huds for the mob if needed
- reset next_move to 1
- parent call
- 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
MouseDrop
Controls if a mouse drop succeeds (return null if it doesnt)
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
Topic
Topic call back for any mob
- Unset machines if "mach_close" sent
- refresh the inventory of machines in range if "refresh" sent
- handles the strip panel equip and unequip as well if "item" sent
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/norespawn is allowed in config
add_memory
Add a note to the mind datum
add_movespeed_modifier
Add a move speed modifier to a mob
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(mapload).
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_blindness
Adjust a mobs blindness by an amount
Will apply the blind alerts if needed
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
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
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
blind_eyes
Blind a mobs eyes by amount
buckle_mob
Buckle to another mob
You can buckle on mobs if you're next to them since most are dense
Turns you to face the other mob too
canUseStorage
Can this mob use storage
canUseTopic
Can the mob use Topic to interact with machines
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_buckle
can the mob be buckled to something by default?
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_read
Can this mob read (is literate and not blind)
can_resist
Can this mob resist (default FALSE)
can_see_reagents
Can the mob see reagents inside of containers?
can_unbuckle
can the mob be unbuckled from something by default?
cancel_camera
Sometimes helps if the user is stuck in another perspective or camera
canface
Returns true if a mob can turn to face things
Conditions:
- client.last_turn > world.time
- not dead or unconscious
- not anchored
- no transform not set
- we are not restrained
check_emote
Check if this message is an emote
click_random_mob
Clicks a random nearby mob with the source from this mob
common_trait_examine
Examine text for traits shared by multiple types.
I wish examine was less copypasted. (oranges say, be the change you want to see buddy)
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
down
Moves a mob down a z level
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.
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.
examinate
Examine a mob
mob verbs are faster than object verbs. See this byond forum post for why this isn't atom/verb/examine()
faction_check_mob
Check if the other mob has any factions the same as us
If exact match is set, then all our factions must match exactly
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.data_core 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
get_actions_for_statpanel
Convert a list of spells into a displyable list for the statpanel
Shows charge and other important info
get_active_hand
Get the bodypart for whatever hand we have active, Only relevant for carbons
get_config_multiplicative_speed
Get the global config movespeed of a mob by type
get_ghost
Get the ghost of this mob (from the mind)
get_idcard
Get the id card on this mob
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_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_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
Find movable atoms? near a mob that are viable for pushing off when moving
getorgan
Get the organ object from the mob matching the passed in typepath
Arguments:
- typepath The typepath of the organ to get
getorganslot
Get an organ relating to a specific slot
Arguments:
- slot Slot to get the organ from
getorganszone
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
grab_ghost
Force get the ghost from the mind
handle_eye_contact
our active hand, to check if it's disabled/detatched how long it takes for the blind person to find the thing they're examining temporarily turn off combat mode for reasons 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
has_movespeed_modifier
Is there a movespeed modifier for this mob
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 it's 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 it's typepath
Returns a list
held_index_to_hand
Returns HAND_LEFT or HAND_RIGHT based on whether the left or right hand is selected
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
incapacitated
Is the mob incapacitated
is_flying
Is the mob a flying mob
is_literate
This mob is abile to read books
is_muzzled
Handle the result of a click drag onto this mob
For mobs this just shows the inventory Is the mob muzzled (default false)
lingcheck
Check if the mob has a ling hivemind
log_message
Logs a message in a mob's individual log, and in the global logs as well if log_globally is true
lowest_buckled_mob
Find the mob at the bottom of a buckle chain
manual_emote
Allows the intrepid coder to send a basic emote Takes text as input, sends it out to those who need to know after some light parsing If you need something more complex, make it into a datum emote Arguments:
- text - The text to send out
me_verb
The me emote verb
memory
Get the notes of this mob
This actually gets the mind datums notes
mob_has_gravity
Returns true if a mob has gravity
I hate that this exists
mob_has_heavy_gravity
used for determining if a mob should be flung
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
movement_delay
Can the atom pass this mob (always true for /mob) Get the current movespeed delay of the mob
DO NOT OVERRIDE THIS UNLESS YOU ABSOLUTELY HAVE TO. THIS IS BEING PHASED OUT FOR THE MOVESPEED MODIFICATION SYSTEM. See mob_movespeed.dm
movespeed_modifier_identical_check
Check if a movespeed modifier is identical to another
notify_ghost_cloning
Notify a ghost that it's body is being cloned
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
Show the language menu for this mob
perform_hand_swap
Performs the actual ritual of swapping hands, such as setting the held index variables
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)
regenerate_icons
Redraws the entire mob. For carbons, this is rather expensive, please use the individual update_X procs.
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
replace_identification_name
update the ID name of this mob
replace_records_name
Updates GLOB.data_core records with new name , see mob/living/carbon/human
reset_perspective
Reset the attached clients perspective (viewpoint)
reset_perspective() 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)
restrained
Is the mob restrained
say_dead
Speak as a dead person (ghost etc)
say_verb
Say verb
setMovetype
Set the movement type of the mob and update it's movespeed
set_blindness
Force set the blindness of a mob to some level
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_inv
Signal sent after the eye has been successfully updated, with the client existing. Show the mob's inventory to another mob
show_message
Show a message to this mob (visual)
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
sort_movespeed_modlist
Sort the list of move speed modifiers
Verifies it too. Sorts highest priority (first applied) to lowest priority (last applied)
spin
Spin this mob around it's central axis
sync_lighting_plane_cutoff
Set the lighting plane hud alpha to the mobs lighting_alpha var
toggle_move_intent
Toggle the move intent of the mob
triggers an update the move intent hud as well
total_multiplicative_slowdown
Calculate the total slowdown of all movespeed modifiers
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_clothing
Updates every item slot passed into it.
update_config_movespeed
Set or update the global movespeed config on a mob
update_gravity
Update the gravity status of this mob
update_inv_hands
Updates the held items overlay(s) & HUD element.
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
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
vv_edit_var
Handles the special case of editing the movement var
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