Files
Yogstation/code/modules/mob/mob_defines.dm
alexkar598 8b963c9626 Documents 61 files (#9306)
* Document the world (#46495)

* Document drone verbs.dm

* Document the outfit datum with autodoc (#45415)

* Uncurse take_damage and document obj_defense.dm (#45146)

The original take_damage proc defined vars for no good reason had some 
duplicate code and wasn't very readable.

If you are wondering why it calls obj_break every time it takes damage 
while below integrity_failure, that's the way it used to be. Most (if 
not all) stuff that takes advantage of this functionality already 
accounts for this.

* Convert some code docs into the auto doc format (#45101)

* Commit Message

* Fixes

* e

* Documents browserOutput.dm (#51439)

* Add autodoc to the callback datum (#45463)

* Autodoc the vending machine (#45468)

* Autodoc the vending machine

* Update code/modules/vending/_vending.dm

Co-Authored-By: Tad Hardesty <tad@platymuus.com>

* autodoc organ helpers (#45464)

* timer proc autodocs (#46530)

* bunch of define autodocs

* ballistic guns autodoc (#45578)

* ballistic guns autodoc

* fixes

* client vars autodoc (#46446)

About The Pull Request

Autodocs client vars

* Autodoc for XB and Research

* shuttle docking autodoc (#48677)

* Add autodocs for reagents (#49478)

* Fix

Co-authored-by: oranges <email@oranges.net.nz>
Co-authored-by: Jonathan (JJRcop) Rubenstein <jrubcop@gmail.com>
Co-authored-by: nemvar <47324920+nemvar@users.noreply.github.com>
Co-authored-by: alexkar598 <>
Co-authored-by: Tad Hardesty <tad@platymuus.com>
Co-authored-by: spookydonut <github@spooksoftware.com>
Co-authored-by: actioninja <actioninja@gmail.com>
2020-07-24 21:38:47 -04:00

215 lines
6.7 KiB
Plaintext

/**
* 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
*/
/mob
datum_flags = DF_USE_TAG
density = TRUE
layer = MOB_LAYER
animate_movement = 2
flags_1 = HEAR_1
hud_possible = list(ANTAG_HUD)
pressure_resistance = 8
mouse_drag_pointer = MOUSE_ACTIVE_POINTER
throwforce = 10
var/lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE
var/datum/mind/mind
var/static/next_mob_id = 0
/// List of movement speed modifiers applying to this mob
var/list/movespeed_modification //Lazy list, see mob_movespeed.dm
/// The calculated mob speed slowdown based on the modifiers list
var/cached_multiplicative_slowdown
/// List of action hud items the user has
var/list/datum/action/actions = list()
/// A special action? No idea why this lives here
var/list/datum/action/chameleon_item_actions
/// Whether a mob is alive or dead. TODO: Move this to living - Nodrak (2019, still here)
var/stat = CONSCIOUS
/* A bunch of this stuff really needs to go under their own defines instead of being globally attached to mob.
A variable should only be globally attached to turfs/objects/whatever, when it is in fact needed as such.
The current method unnecessarily clusters up the variable list, especially for humans (although rearranging won't really clean it up a lot but the difference will be noticable for other mobs).
I'll make some notes on where certain variable defines should probably go.
Changing this around would probably require a good look-over the pre-existing code.
*/
/// The zone this mob is currently targeting
var/zone_selected = null
var/computer_id = null
var/list/logging = list()
/// The machine the mob is interacting with (this is very bad old code btw)
var/obj/machinery/machine = null
/// Tick time the mob can next move
var/next_move = null
/**
* 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
*/
var/notransform = null //Carbon
/// Is the mob blind
var/eye_blind = 0 //Carbon
/// Does the mob have blurry sight
var/eye_blurry = 0 //Carbon
/// What is the mobs real name (name is overridden for disguises etc)
var/real_name = null
/// Is the mob pixel shifted
var/is_shifted = FALSE
/// can this mob move freely in space (should be a trait)
var/spacewalk = FALSE
/**
* 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
*/
var/name_archive //For admin things like possession
/// Default body temperature
var/bodytemperature = BODYTEMP_NORMAL //310.15K / 98.6F
/// Drowsyness level of the mob
var/drowsyness = 0//Carbon
/// Dizziness level of the mob
var/dizziness = 0//Carbon
/// Jitteryness level of the mob
var/jitteriness = 0//Carbon
/// Hunger level of the mob
var/nutrition = NUTRITION_LEVEL_START_MIN // randomised in Initialize
/// Satiation level of the mob
var/satiety = 0//Carbon
/// How many ticks this mob has been over reating
var/overeatduration = 0 // How long this guy is overeating //Carbon
/// The current intent of the mob
var/a_intent = INTENT_HELP//Living
/// List of possible intents a mob can have
var/list/possible_a_intents = null//Living
/// The movement intent of the mob (run/wal)
var/m_intent = MOVE_INTENT_RUN//Living
/// The last known IP of the client who was in this mob
var/lastKnownIP = null
/// movable atoms buckled to this mob
var/atom/movable/buckled = null//Living
/// movable atom we are buckled to
var/atom/movable/buckling
//Hands
///What hand is the active hand
var/active_hand_index = 1
/**
* 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
*/
var/list/held_items = list()
//HUD things
/// Storage component (for mob inventory)
var/datum/component/storage/active_storage
/// Active hud
var/datum/hud/hud_used = null
/// I have no idea tbh
var/research_scanner = FALSE
/// Is the mob throw intent on
var/in_throw_mode = 0
/// What job does this mob have
var/job = null//Living
/// A list of factions that this mob is currently in, for hostile mob targetting, amongst other things
var/list/faction = list("neutral")
/// Can this mob enter shuttles
var/move_on_shuttle = 1
///The last mob/living/carbon to push/drag/grab this mob (exclusively used by slimes friend recognition)
var/mob/living/carbon/LAssailant = null
/**
* 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
*/
var/list/mob_spell_list = list()
/// bitflags defining which status effects can be inflicted (replaces canknockdown, canstun, etc)
var/status_flags = CANSTUN|CANKNOCKDOWN|CANUNCONSCIOUS|CANPUSH
/// Can they be tracked by the AI?
var/digitalcamo = 0
///Are they ivisible to the AI?
var/digitalinvis = 0
///what does the AI see instead of them?
var/image/digitaldisguise = null
/// Can they interact with station electronics
var/has_unlimited_silicon_privilege = 0
///Used by admins to possess objects. All mobs should have this var
var/obj/control_object
///Calls relay_move() to whatever this is set to when the mob tries to move
var/atom/movable/remote_control
/**
* The sound made on death
*
* leave null for no sound. used for *deathgasp
*/
var/deathsound
///the current turf being examined in the stat panel
var/turf/listed_turf = null
///The list of people observing this mob.
var/list/observers = null
///List of progress bars this mob is currently seeing for actions
var/list/progressbars = null //for stacking do_after bars
///List of datums that this has which make use of MouseMove()
var/list/mousemove_intercept_objects
///Allows a datum to intercept all click calls this mob is the so
var/datum/click_intercept
///THe z level this mob is currently registered in
var/registered_z = null
///Size of the user's memory(IC notes)
var/memory_amt = 0
/// Used for tracking last uses of emotes for cooldown purposes
var/list/emotes_used
///Whether the mob is updating glide size when movespeed updates or not
var/updating_glide_size = TRUE