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 SUBTLE COMMAND//////////////////// (ported from citadel, needed for LOOC and flavour text)
Vars | |
LAssailant | A weakref to the last mob/living/carbon to push/drag/grab this mob (exclusively used by slimes friend recognition) |
---|---|
a_intent | The current intent of the mob |
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 |
buckled | movable atom we are buckled to |
buckling | movable atoms buckled to this mob |
cached_multiplicative_slowdown | The calculated mob speed slowdown based on the modifiers list |
chameleon_item_actions | A special action? No idea why this lives here |
click_intercept | Allows a datum to intercept all click calls this mob is the source of |
control_object | Used by admins to possess objects. All mobs should have this var |
create_area_cooldown | Last time an area was created by a mob plus a short cooldown period |
deathsound | The sound made on death |
dizziness | Dizziness level of the mob |
do_afters | For storing what do_after's someone has, key = string, value = amount of interactions of that type happening. |
drowsyness | Drowsyness level of the mob |
emotes_used | Used for tracking last uses of emotes for cooldown purposes |
examine_cursor_icon | Cursor icon used when holding shift over things |
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 |
has_unlimited_silicon_privilege | Can they interact with station electronics |
held_items | list of items held in hands |
hud_used | Active hud |
is_shifted | Is the mob pixel shifted? |
jitteriness | Jitteryness level of the mob |
job | What job does this mob have |
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) |
mob_spell_list | construct spells and mime spells. |
move_on_shuttle | Can this mob enter shuttles |
movespeed_mod_immunities | List of movement speed modifiers ignored by this mob. List -> List (id) -> List (sources) |
movespeed_modification | List of movement speed modifiers applying to this mob |
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 |
nutrition | Hunger level of the mob |
observers | The list of people observing this mob. |
overeatduration | How many ticks this mob has been over reating |
passthroughable | Takes the four cardinal direction defines. Any atoms moving into this atom's tile will be allowed to from the added directions. |
possible_a_intents | List of possible intents a mob can have |
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) |
remote_control | Calls relay_move() to whatever this is set to when the mob tries to move |
research_scanner | It allows for scientific knowledge to be imparted (e.g. blob strain, if an object has research value, if it boosts a technode) |
satiety | Satiation level of the mob |
screens | contains /atom/movable/screen/alert only // On /mob so clientless mobs will throw alerts properly |
shifting | Is the mob actively shifting? |
sound_environment_override | Override for sound_environments. If this is set the user will always hear a specific type of reverb (Instead of the area defined reverb) |
stat | Whether a mob is alive or dead. TODO: Move this to living - Nodrak (2019, still here) |
status_flags | bitflags defining which status effects can be inflicted (replaces canknockdown, canstun, etc) |
tgui_open_uis | global |
throw_mode | Is the mob throw intent on |
typing_indicator | Whether the typing indicator is on. Not on /living level because of verbs |
updating_glide_size | Whether the mob is updating glide size when movespeed updates or not |
vis_flags | when this be added to vis_contents of something it inherit something.plane, important for visualisation of mob in openspace. |
zone_selected | The zone this mob is currently targeting |
Procs | |
AddSpell | Add a spell to the mobs spell list |
AltClickOn | Alt click Unused except for AI |
Cell | Some kind of debug verb that gives atmosphere environment details |
ClickOn | Standard mob ClickOn() Handles exceptions: Buildmode, middle click, modified clicks, mech actions |
CtrlClickOn | Ctrl click For most objects, pull |
CtrlShiftClickOn | Control+Shift click |
DblClickOn | Default behavior: ignore double clicks (the second click that makes the doubleclick call already calls for a normal click) |
Destroy | Delete a mob |
Dizzy | Set the dizzyness of a mob to a passed in amount |
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 |
Jitter | Set the jitter of a mob |
Login | Run when a client is put in this mob or reconnets to byond and their client was on this mob |
MiddleClickOn | Middle click Mainly used for swapping hands |
MouseDrop | Controls if a mouse drop succeeds (return null if it doesnt) |
MouseDrop_T | Handle the result of a click drag onto this mob |
MouseWheelOn | MouseWheelOn |
Process_Spacemove | Handles mob/living movement in space (or no gravity) |
RangedAttack | Ranged unarmed attack: |
RemoveSpell | Remove a spell from the mobs spell list |
ShiftClickOn | Shift click For most mobs, examine. This is overridden in ai.dm |
Topic | Topic call back for any mob |
UnarmedAttack | Translates into atom/proc/attack_hand, etc. |
_pointed | possibly delayed verb that finishes the pointing process starting in [/mob/verb/pointed()]. either called immediately or in the tick after pointed() was called, as per the [DEFAULT_QUEUE_OR_CALL_VERB()] macro |
a_intent_change | change a mob's act-intent. |
abandon_mob | Allows you to respawn, abandoning your current mob |
add_client_colour | Adds an instance of colour_type to the mob's client_colours list colour_type - a typepath (subtyped from /datum/client_colour) |
add_memory | Add a note to the mind datum |
add_movespeed_modifier | Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID. |
add_to_alive_mob_list | Adds the mob reference to the list of all mobs alive. If mob is cliented, it adds it to the list of all living player-mobs. |
add_to_current_dead_players | Adds the cliented mob reference to either the list of dead player-mobs or to the list of observers, depending on how they joined the game. |
add_to_current_living_antags | Adds the cliented mob reference to the list of living antag player-mobs. |
add_to_current_living_players | Adds the cliented mob reference to the list of living player-mobs. If the mob is an antag, it adds it to the list of living antag player-mobs. |
add_to_dead_mob_list | Adds the mob reference to the list of all the dead mobs. If mob is cliented, it adds it to the list of all dead player-mobs. |
add_to_mob_list | Adds the mob reference to the list and directory of all mobs. Called on Initialize(). |
add_to_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_blurriness | Adjust the current blurriness of the mobs vision by amount |
adjust_bodytemperature | Adjust the body temperature of a mob, with min/max settings |
adjust_disgust | Adjust the disgust level of a mob |
adjust_drugginess | Adjust the drugginess of a mob |
adjust_nutrition | Adjust the nutrition of a mob |
animate_client_colour | Works similarly to 'update_client_colour', but animated. |
anti_magic_check | Return any anti magic atom on this mob that matches the magic type |
attack_ui | This proc is called whenever someone clicks an inventory ui slot. |
audible_message | Show a message to all mobs in earshot of this one |
auto_deadmin_on_login | Checks if the attached client is an admin and may deadmin them |
blind_eyes | Blind a mobs eyes by amount |
blur_eyes | Make the mobs vision blurry |
borercheck | WS Begin - Check if the mob has a borer hivemind channel |
buckle_mob | Buckle to another mob |
canUseStorage | Can this mob use storage |
canUseTopic | Can the mob use Topic to interact with machines |
canZMove | Can this mob move between z levels |
can_buckle | can the mob be buckled to something by default? |
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 |
clear_client_in_contents | Clears the client in contents list of our current "eye". Prevents hard deletes |
clear_from_recent_examines | how long it takes for the blind person to find the thing they're examining our current intent, so we can go back to it after touching |
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 |
do_set_blindness | Proc that handles adding and removing the blindness overlays. |
down | Moves a mob down a z level |
dropItemToGround | Used to drop an item (if it exists) to the ground. |
eastface | Hidden verb to turn east |
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 |
equipped_speed_mods | Gets the combined speed modification of all worn items Except base mob type doesnt really wear items |
examinate | Examine a mob |
execute_mode | proc version to finish /mob/verb/mode() execution. used in case the proc needs to be queued for the tick after its first called |
execute_quick_equip | proc extender of [/mob/verb/quick_equip] used to make the verb queuable if the server is overloaded |
face_atom | Simple helper to face what you clicked on, in case it should be needed in more than one place |
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_active_hand | Get the bodypart for whatever hand we have active, Only relevant for carbons |
get_active_held_item | Returns the thing we're currently holding |
get_broken_legs | Gets how many legs are broken (of the two possible.) Used for slowdown calculation. |
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_proc_holders | Gets all relevant proc holders for the browser statpenl |
get_realname_string | Returns a mob's real name between brackets. Useful when you want to display a mob's name alongside their real name |
get_slot_by_item | Gets what slot the item on the mob is held in. Returns null if the item isn't in any slots on our mob. Does not check if the passed item is null, which may result in unexpected outcoms. |
get_spacemove_backup | Find movable atoms? near a mob that are viable for pushing off when moving |
get_spells_for_statpanel | Convert a list of spells into a displyable list for the statpanel |
get_status_tab_items | Adds this list to the output to the stat browser |
getorgan | Get the organ object from the mob matching the passed in typepath |
getorganslot | Returns a list of all organs in specified slot |
getorganszone | Get organ objects by zone |
grab_ghost | Force get the ghost from the mind |
guestbook | Shows guestbook tgui window |
hallucinating | Is the mob hallucinating? |
handle_eye_contact | handle_eye_contact() is called when we examine() something. If we examine an alive mob with a mind who has examined us in the last second within 5 tiles, we make eye contact! |
has_movespeed_modifier | Is there a movespeed modifier for this mob |
hivecheck | Check if the mob has a hivemind channel |
incapacitated | Is the mob incapacitated |
is_blind | Checks if the mob is able to see or not. eye_blind is temporary blindness, the trait is if they're permanently blind. |
is_floating | Is the mob a floating mob |
is_flying | Is the mob a flying mob |
is_literate | This mob is abile to read books |
is_muzzled | Is the mob muzzled (default false) |
limb_attack_self | Called by using Activate Held Object with an empty hand/limb |
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_negates_gravity | Does this mob ignore gravity |
mode | Verb to activate the object in your held hand |
northface | Hidden verb to turn north |
notify_ghost_cloning | Notify a ghost that it's body is being cloned |
onShuttleMove | Mob move procs |
open_language_menu | Show the language menu for this mob |
play_screen_text | proc for playing a screen_text on a mob. enqueues it if a screen text is running and plays i otherwise Arguments: |
pointed | Point at an atom |
post_buckle_mob | Call back post buckle to a mob to offset your visual height |
post_unbuckle_mob | Call back post unbuckle from a mob, (reset your visual height here) |
remove_client_colour | Removes an instance of colour_type from the mob's client_colours list colour_type - a typepath (subtyped from /datum/client_colour) |
remove_from_alive_mob_list | Removes the mob reference from the list of all mobs alive. If mob is cliented, it removes it from the list of all living player-mobs. |
remove_from_current_dead_players | Removes the mob reference from either the list of dead player-mobs or from the list of observers, depending on how they joined the game. |
remove_from_current_living_antags | Removes the mob reference from the list of living antag player-mobs. |
remove_from_current_living_players | Removes the mob reference from the list of living player-mobs. If the mob is an antag, it removes it from the list of living antag player-mobs. |
remove_from_dead_mob_list | Remvoes the mob reference from list of all the dead mobs. If mob is cliented, it adds it to the list of all dead player-mobs. |
remove_from_mob_list | Removes the mob reference from the list and directory of all mobs. Called on Destroy(). |
remove_from_player_list | Removes the mob reference from the list of all player-mobs, besides from either the of dead or alive player-mob lists, as appropriate. Called on Logout(). |
remove_movespeed_modifier | Remove a move speed modifier from a mob, whether static or variable. |
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) |
say_dead | Speak as a dead person (ghost etc) |
say_verb | Say verb |
set_blindness | Force set the blindness of a mob to some level |
set_blurriness | Set the mobs blurriness of vision to an amount |
set_disgust | Set the disgust level of a mob |
set_dizziness | FOrce set the dizzyness of a mob |
set_drugginess | Set the drugginess of a mob |
set_nutrition | Force set the mob nutrition |
set_typing_indicator | Used for typing indicator, relevant on /living level |
shared_ui_interaction | public |
show_inv | Show the mob's inventory to another mob |
show_message | Show a message to this mob (visual or audible) |
shuttleRotate | Mob rotate procs |
slip | Called when this mob slips over, override as needed |
southface | Hidden verb to turn south |
spin | Spin this mob around it's central axis |
sync_lighting_plane_alpha | 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_blindness | proc that adds and removes blindness overlays when necessary |
update_client_colour | Resets the mob's client.color to null, and then reapplies a new color based on the client_colour datums it currently has. |
update_config_movespeed | Set or update the global movespeed config on a mob |
update_eye_blur | Apply the blurry overlays to a mobs clients screen |
update_gravity | Update the gravity status of this mob |
update_mouse_pointer | Update the mouse pointer of the attached client in this mob |
update_movespeed | Go through the list of movespeed modifiers and calculate a final movespeed. ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE! |
update_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) |
visible_message | Adds the functionality to self_message. |
vote | Mob level verb that allows players to vote on the current vote. |
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 |
westface | Hidden verb to turn west |
whisper | whisper a message |
whisper_verb | Whisper verb |
zMove | Move a mob between z levels, if it's valid to move z's on this turf |
Var Details
LAssailant
A weakref to the last mob/living/carbon to push/drag/grab this mob (exclusively used by slimes friend recognition)
a_intent
The current intent of the mob
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
buckled
movable atom we are buckled to
buckling
movable atoms buckled to this mob
cached_multiplicative_slowdown
The calculated mob speed slowdown based on the modifiers list
chameleon_item_actions
A special action? No idea why this lives here
click_intercept
Allows a datum to intercept all click calls this mob is the source of
control_object
Used by admins to possess objects. All mobs should have this var
create_area_cooldown
Last time an area was created by a mob plus a short cooldown period
deathsound
The sound made on death
leave null for no sound. used for *deathgasp
dizziness
Dizziness level of the mob
do_afters
For storing what do_after's someone has, key = string, value = amount of interactions of that type happening.
drowsyness
Drowsyness level of the mob
emotes_used
Used for tracking last uses of emotes for cooldown purposes
examine_cursor_icon
Cursor icon used when holding shift over things
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
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_used
Active hud
is_shifted
Is the mob pixel shifted?
jitteriness
Jitteryness level of the mob
job
What job does this mob have
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)
mob_spell_list
construct spells and mime spells.
Spells that do not transfer from one mob to another and can not be lost in mindswap. obviously do not live in the mind
move_on_shuttle
Can this mob enter shuttles
movespeed_mod_immunities
List of movement speed modifiers ignored by this mob. List -> List (id) -> List (sources)
movespeed_modification
List of movement speed modifiers applying to this mob
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
nutrition
Hunger level of the mob
observers
The list of people observing this mob.
overeatduration
How many ticks this mob has been over reating
passthroughable
Takes the four cardinal direction defines. Any atoms moving into this atom's tile will be allowed to from the added directions.
possible_a_intents
List of possible intents a mob can have
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)
remote_control
Calls relay_move() to whatever this is set to when the mob tries to move
research_scanner
It allows for scientific knowledge to be imparted (e.g. blob strain, if an object has research value, if it boosts a technode)
satiety
Satiation level of the mob
screens
contains /atom/movable/screen/alert only // On /mob so clientless mobs will throw alerts properly
shifting
Is the mob actively shifting?
sound_environment_override
Override for sound_environments. If this is set the user will always hear a specific type of reverb (Instead of the area defined reverb)
stat
Whether a mob is alive or dead. TODO: Move this to living - Nodrak (2019, still here)
status_flags
bitflags defining which status effects can be inflicted (replaces canknockdown, canstun, etc)
tgui_open_uis
global
Tracks open UIs for a user.
throw_mode
Is the mob throw intent on
typing_indicator
Whether the typing indicator is on. Not on /living level because of verbs
updating_glide_size
Whether the mob is updating glide size when movespeed updates or not
vis_flags
when this be added to vis_contents of something it inherit something.plane, important for visualisation of mob in openspace.
zone_selected
The zone this mob is currently targeting
Proc Details
AddSpell
Add a spell to the mobs spell list
AltClickOn
Alt click Unused except for AI
Cell
Some kind of debug verb that gives atmosphere environment details
ClickOn
Standard mob ClickOn() Handles exceptions: Buildmode, middle click, modified clicks, mech actions
After that, mostly just check your state, check whether you're holding an item, check whether you're adjacent to the target, then pass off the click to whoever is receiving it. The most common are:
- mob/proc/UnarmedAttack (atom,adjacent) - used here only when adjacent, with no item in hand; in the case of humans, checks gloves
- atom/proc/attackby (item,user) - used only when adjacent
- obj/item/proc/afterattack (atom,user,adjacent,params) - used both ranged and adjacent
- mob/proc/RangedAttack (atom,params) - used only ranged, only used for tk and laser eyes but could be changed
CtrlClickOn
Ctrl click For most objects, pull
CtrlShiftClickOn
Control+Shift click
DblClickOn
Default behavior: ignore double clicks (the second click that makes the doubleclick call already calls for a normal click)
Destroy
Delete a mob
Removes mob from the following global lists
- GLOB.mob_list
- GLOB.dead_mob_list
- GLOB.alive_mob_list
- GLOB.all_clockwork_mobs
- 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
Clears any refs to the mob inside its current location
Ghostizes the client attached to this mob
If our mind still exists, clear its current var to prevent harddels
Parent call
Dizzy
Set the dizzyness of a mob to a passed in amount
Except if dizziness is already higher in which case it does nothing
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
Jitter
Set the jitter of a mob
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
- 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 client can be deleted mid-execution of this proc, chiefly on parent calls, with lag
MiddleClickOn
Middle click Mainly used for swapping hands
MouseDrop
Controls if a mouse drop succeeds (return null if it doesnt)
MouseDrop_T
Handle the result of a click drag onto this mob
For mobs this just shows the inventory
MouseWheelOn
MouseWheelOn
Process_Spacemove
Handles mob/living movement in space (or no gravity)
Called by /client/Move()
return TRUE for movement or FALSE for none
You can move in space if you have a spacewalk ability
RangedAttack
Ranged unarmed attack:
This currently is just a default for all mobs, involving laser eyes and telekinesis. You could easily add exceptions for things like ranged glove touches, spitting alien acid/neurotoxin, animals lunging, etc.
RemoveSpell
Remove a spell from the mobs spell list
ShiftClickOn
Shift click For most mobs, examine. This is overridden in ai.dm
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
UnarmedAttack
Translates into atom/proc/attack_hand, etc.
Note: proximity_flag here is used to distinguish between normal usage (flag=1), and usage when clicking on things telekinetically (flag=0). This proc will not be called at ranged except with telekinesis.
proximity_flag is not currently passed to attack_hand, and is instead used in human click code to allow glove touches only at melee range.
_pointed
possibly delayed verb that finishes the pointing process starting in [/mob/verb/pointed()]. either called immediately or in the tick after pointed() was called, as per the [DEFAULT_QUEUE_OR_CALL_VERB()] macro
a_intent_change
change a mob's act-intent.
Input the intent as a string such as "help" or use "right"/"left
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_client_colour
Adds an instance of colour_type to the mob's client_colours list colour_type - a typepath (subtyped from /datum/client_colour)
add_memory
Add a note to the mind datum
add_movespeed_modifier
Add a move speed modifier to a mob. If a variable subtype is passed in as the first argument, it will make a new datum. If ID conflicts, it will overwrite the old ID.
add_to_alive_mob_list
Adds the mob reference to the list of all mobs alive. If mob is cliented, it adds it to the list of all living player-mobs.
add_to_current_dead_players
Adds the cliented mob reference to either the list of dead player-mobs or to the list of observers, depending on how they joined the game.
add_to_current_living_antags
Adds the cliented mob reference to the list of living antag player-mobs.
add_to_current_living_players
Adds the cliented mob reference to the list of living player-mobs. If the mob is an antag, it adds it to the list of living antag player-mobs.
add_to_dead_mob_list
Adds the mob reference to the list of all the dead mobs. If mob is cliented, it adds it to the list of all dead player-mobs.
add_to_mob_list
Adds the mob reference to the list and directory of all mobs. Called on Initialize().
add_to_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_blurriness
Adjust the current blurriness of the mobs vision by amount
adjust_bodytemperature
Adjust the body temperature of a mob, with min/max settings
adjust_disgust
Adjust the disgust level of a mob
adjust_drugginess
Adjust the drugginess of a mob
adjust_nutrition
Adjust the nutrition of a mob
animate_client_colour
Works similarly to 'update_client_colour', but animated.
anti_magic_check
Return any anti magic atom on this mob that matches the magic type
attack_ui
This proc is called whenever someone clicks an inventory ui slot.
Mostly tries to put the item into the slot if possible, or call attack hand on the item in the slot if the users active hand is empty
audible_message
Show a message to all mobs in earshot of this one
This would be for audible actions by the src mob
vars:
- message is the message output to anyone who can hear.
- self_message (optional) is what the src mob hears.
- deaf_message (optional) is what deaf people will see.
- hearing_distance (optional) is the range, how many tiles away the message can be heard.
auto_deadmin_on_login
Checks if the attached client is an admin and may deadmin them
Configs:
- flag/auto_deadmin_players
- client.prefs?.toggles & DEADMIN_ALWAYS
- User is antag and flag/auto_deadmin_antagonists or client.prefs?.toggles & DEADMIN_ANTAGONIST
- or if their job demands a deadminning SSjob.handle_auto_deadmin_roles()
Called from login
blind_eyes
Blind a mobs eyes by amount
blur_eyes
Make the mobs vision blurry
borercheck
WS Begin - Check if the mob has a borer hivemind channel
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
canZMove
Can this mob move between z levels
can_buckle
can the mob be buckled to something by default?
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 unconcious
- not anchored
- no transform not set
- we are not restrained
check_emote
Check if this message is an emote
clear_client_in_contents
Clears the client in contents list of our current "eye". Prevents hard deletes
clear_from_recent_examines
how long it takes for the blind person to find the thing they're examining our current intent, so we can go back to it after touching
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
do_set_blindness
Proc that handles adding and removing the blindness overlays.
down
Moves a mob down a z level
dropItemToGround
Used to drop an item (if it exists) to the ground.
- Will pass as TRUE is successfully dropped, or if there is no item to drop.
- 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.
eastface
Hidden verb to turn east
equip_to_appropriate_slot
Auto equip the passed in item the appropriate slot based on equipment priority
puts the item "W" into an appropriate slot in a human's inventory
returns 0 if it cannot, 1 if successful
equip_to_slot
Actually equips an item to a slot (UNSAFE)
This is an UNSAFE proc. It merely handles the actual job of equipping. All the checks on whether you can or can't equip need to be done before! Use mob_can_equip() for that task.
In most cases you will want to use equip_to_slot_if_possible()
equip_to_slot_if_possible
Try to equip an item to a slot on the mob
This is a SAFE proc. Use this instead of equip_to_slot()!
set qdel_on_fail to have it delete W if it fails to equip
set disable_warning to disable the 'you are unable to equip that' warning.
unset redraw_mob to prevent the mob icons from being redrawn at the end.
Initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it
equip_to_slot_or_del
Equip an item to the slot or delete
This is just a commonly used configuration for the equip_to_slot_if_possible() proc, used to equip people when the round starts and when events happen and such.
Also bypasses equip delay checks, since the mob isn't actually putting it on. Initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it
equipped_speed_mods
Gets the combined speed modification of all worn items Except base mob type doesnt really wear items
examinate
Examine a mob
mob verbs are faster than object verbs. See this byond forum post for why this isn't atom/verb/examine()
execute_mode
proc version to finish /mob/verb/mode() execution. used in case the proc needs to be queued for the tick after its first called
execute_quick_equip
proc extender of [/mob/verb/quick_equip] used to make the verb queuable if the server is overloaded
face_atom
Simple helper to face what you clicked on, in case it should be needed in more than one place
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_active_hand
Get the bodypart for whatever hand we have active, Only relevant for carbons
get_active_held_item
Returns the thing we're currently holding
get_broken_legs
Gets how many legs are broken (of the two possible.) Used for slowdown calculation.
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_proc_holders
Gets all relevant proc holders for the browser statpenl
get_realname_string
Returns a mob's real name between brackets. Useful when you want to display a mob's name alongside their real name
get_slot_by_item
Gets what slot the item on the mob is held in. Returns null if the item isn't in any slots on our mob. Does not check if the passed item is null, which may result in unexpected outcoms.
get_spacemove_backup
Find movable atoms? near a mob that are viable for pushing off when moving
get_spells_for_statpanel
Convert a list of spells into a displyable list for the statpanel
Shows charge and other important info
get_status_tab_items
Adds this list to the output to the stat browser
getorgan
Get the organ object from the mob matching the passed in typepath
Arguments:
- typepath The typepath of the organ to get
getorganslot
Returns a list of all organs in specified slot
Arguments:
- slot Slot to get the organs 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
guestbook
Shows guestbook tgui window
hallucinating
Is the mob hallucinating?
handle_eye_contact
handle_eye_contact() is called when we examine() something. If we examine an alive mob with a mind who has examined us in the last second 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
hivecheck
Check if the mob has a hivemind channel
incapacitated
Is the mob incapacitated
is_blind
Checks if the mob is able to see or not. eye_blind is temporary blindness, the trait is if they're permanently blind.
is_floating
Is the mob a floating mob
is_flying
Is the mob a flying mob
is_literate
This mob is abile to read books
is_muzzled
Is the mob muzzled (default false)
limb_attack_self
Called by using Activate Held Object with an empty hand/limb
Does nothing by default. The intended use is to allow limbs to call their own attack_self procs. It is up to the individual mob to override this parent and actually use it.
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_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
northface
Hidden verb to turn north
notify_ghost_cloning
Notify a ghost that it's body is being cloned
onShuttleMove
Mob move procs
open_language_menu
Show the language menu for this mob
play_screen_text
proc for playing a screen_text on a mob. enqueues it if a screen text is running and plays i otherwise Arguments:
- text: text we want to be displayed
- alert_type: typepath for screen text type we want to play here
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)
remove_client_colour
Removes an instance of colour_type from the mob's client_colours list colour_type - a typepath (subtyped from /datum/client_colour)
remove_from_alive_mob_list
Removes the mob reference from the list of all mobs alive. If mob is cliented, it removes it from the list of all living player-mobs.
remove_from_current_dead_players
Removes the mob reference from either the list of dead player-mobs or from the list of observers, depending on how they joined the game.
remove_from_current_living_antags
Removes the mob reference from the list of living antag player-mobs.
remove_from_current_living_players
Removes the mob reference from the list of living player-mobs. If the mob is an antag, it removes it from the list of living antag player-mobs.
remove_from_dead_mob_list
Remvoes the mob reference from list of all the dead mobs. If mob is cliented, it adds it to the list of all dead player-mobs.
remove_from_mob_list
Removes the mob reference from the list and directory of all mobs. Called on Destroy().
remove_from_player_list
Removes the mob reference from the list of all player-mobs, besides from either the of dead or alive player-mob lists, as appropriate. Called on Logout().
remove_movespeed_modifier
Remove a move speed modifier from a mob, whether static or variable.
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)
say_dead
Speak as a dead person (ghost etc)
say_verb
Say verb
set_blindness
Force set the blindness of a mob to some level
set_blurriness
Set the mobs blurriness of vision to an amount
set_disgust
Set the disgust level of a mob
set_dizziness
FOrce set the dizzyness of a mob
set_drugginess
Set the drugginess of a mob
set_nutrition
Force set the mob nutrition
set_typing_indicator
Used for typing indicator, relevant on /living level
shared_ui_interaction
public
Standard interaction/sanity checks. Different mob types may have overrides.
return UI_state The state of the UI.
show_inv
Show the mob's inventory to another mob
show_message
Show a message to this mob (visual or audible)
shuttleRotate
Mob rotate procs
slip
Called when this mob slips over, override as needed
southface
Hidden verb to turn south
spin
Spin this mob around it's central axis
sync_lighting_plane_alpha
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_blindness
proc that adds and removes blindness overlays when necessary
update_client_colour
Resets the mob's client.color to null, and then reapplies a new color based on the client_colour datums it currently has.
update_config_movespeed
Set or update the global movespeed config on a mob
update_eye_blur
Apply the blurry overlays to a mobs clients screen
update_gravity
Update the gravity status of this mob
update_mouse_pointer
Update the mouse pointer of the attached client in this mob
update_movespeed
Go through the list of movespeed modifiers and calculate a final movespeed. ANY ADD/REMOVE DONE IN UPDATE_MOVESPEED MUST HAVE THE UPDATE ARGUMENT SET AS FALSE!
update_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)
visible_message
Adds the functionality to self_message.
vote
Mob level verb that allows players to vote on the current vote.
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
westface
Hidden verb to turn west
whisper
whisper a message
whisper_verb
Whisper verb
zMove
Move a mob between z levels, if it's valid to move z's on this turf