Files
Paradise/code/modules/mob/mob_vars.dm
GDN e7b396eddf Silicon Chamo properly hides huds (#22312)
* hide hud

* more documentation

* Update code/modules/mob/mob_vars.dm

Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>

* Update code/modules/mob/mob_vars.dm

Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>

---------

Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>
2023-11-01 20:10:15 +00:00

259 lines
11 KiB
Plaintext

/mob
density = TRUE
layer = MOB_LAYER
animate_movement = 2
pressure_resistance = 8
throwforce = 10
dont_save = TRUE //to avoid it messing up in buildmode saving
var/datum/mind/mind
blocks_emissive = EMISSIVE_BLOCK_GENERIC
var/stat = 0 //Whether a mob is alive or dead. TODO: Move this to living - Nodrak
/// The zone this mob is currently targeting
var/zone_selected = null
var/obj/screen/pullin = null
var/obj/screen/i_select = null
var/obj/screen/m_select = null
var/obj/screen/healths = null
var/obj/screen/throw_icon = null
/*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.
*/
var/obj/screen/leap_icon = null
var/obj/screen/healthdoll/healthdoll = null
var/use_me = TRUE //Allows all mobs to use the me verb by default, will have to manually specify they cannot
var/damageoverlaytemp = 0
var/computer_id = null
var/lastattacker = null // real name of the person doing the attacking
var/lastattackerckey = null // their ckey
var/list/attack_log_old = list( )
var/list/debug_log = null
var/last_known_ckey = null // Used in logging
var/last_log = 0
var/obj/machinery/machine = null
var/currently_grab_pulled = null /// only set while the move is ongoing, to prevent shuffling between pullees
var/memory = ""
var/notransform = FALSE //Carbon
/// True for left hand active, otherwise for right hand active
var/hand = null
var/real_name = null
var/flavor_text = ""
var/med_record = ""
var/sec_record = ""
var/gen_record = ""
var/lying_prev = 0
var/lastpuke = 0
var/can_strip = TRUE
var/list/languages = list() // For speaking/listening.
var/list/abilities = list() // For species-derived or admin-given powers.
var/list/speak_emote = list("says") // Verbs used when speaking. Defaults to 'say' if speak_emote is null.
var/emote_type = EMOTE_VISIBLE // Define emote default type, 1 for seen emotes, 2 for heard emotes
var/name_archive //For admin things like possession
var/timeofdeath = 0 //Living
var/bodytemperature = 310.055 //98.7 F
var/flying = FALSE
var/nutrition = NUTRITION_LEVEL_FED + 50 //Carbon
var/satiety = 0 //Carbon
var/hunger_drain = HUNGER_FACTOR // how quickly the mob gets hungry; largely utilized by species.
var/overeatduration = 0 // How long this guy is overeating //Carbon
var/intent = null //Living
var/a_intent = INTENT_HELP //Living
var/m_intent = MOVE_INTENT_RUN //Living
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
var/obj/item/l_hand = null //Living
var/obj/item/r_hand = null //Living
var/obj/item/back = null //Human
var/obj/item/tank/internal = null //Human
/// Active storage container
var/obj/item/storage/s_active = null //Carbon
var/obj/item/clothing/mask/wear_mask = null //Carbon
var/datum/hud/hud_used = null
hud_possible = list(SPECIALROLE_HUD)
var/research_scanner = FALSE //For research scanner equipped mobs. Enable to show research data when examining.
var/list/grabbed_by = list()
var/lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE
var/list/mapobjs = list()
var/in_throw_mode = FALSE
// See /datum/emote
/// Cooldown on audio effects from emotes.
var/audio_emote_cd_status = EMOTE_READY
/// Cooldown on audio effects from unintentional emotes.
var/audio_emote_unintentional_cd_status = EMOTE_READY
/// Override for cooldowns on non-audio emotes. Should be a number in deciseconds.
var/emote_cooldown_override = null
/// Tracks last uses of emotes for cooldown purposes
var/list/emotes_used
var/job = null //Living
var/datum/dna/dna = null //Carbon
var/radiation = 0 //Carbon
var/voice_name = "unidentifiable voice"
var/list/faction = list("neutral") //Used for checking whether hostile simple animals will attack you, possibly more stuff later
var/move_on_shuttle = TRUE // Can move on the shuttle.
/// Whether antagHUD has been enabled previously.
var/has_enabled_antagHUD = FALSE
var/antagHUD = FALSE // Whether AntagHUD is active right now
var/can_change_intents = TRUE //all mobs can change intents by default.
///Override for sound_environments. If this is set the user will always hear a specific type of reverb (Instead of the area defined reverb)
var/sound_environment_override = SOUND_ENVIRONMENT_NONE
//Generic list for proc holders. Only way I can see to enable certain verbs/procs. Should be modified if needed.
var/proc_holder_list[] = list()
/* //Also unlike the spell list, this would only store the object in contents, not an object in itself.
Add this line to whatever stat module you need in order to use the proc holder list.
Unlike the object spell system, it's also possible to attach verb procs from these objects to right-click menus.
This requires creating a verb for the object proc holder.
if(proc_holder_list.len)//Generic list for proc_holder objects.
for(var/obj/effect/proc_holder/P in proc_holder_list)
statpanel("[P.panel]","",P)*/
//The last mob/living/carbon to push/drag/grab this mob (mostly used by slimes friend recognition)
var/mob/living/carbon/LAssailant = null
var/list/mob_spell_list = list() //construct spells and mime spells. Spells that do not transfer from one mob to another and can not be lost in mindswap.
//List of active diseases
var/list/viruses = list() // list of all diseases in a mob
var/list/resistances = list()
mouse_drag_pointer = MOUSE_ACTIVE_POINTER
var/status_flags = CANSTUN|CANWEAKEN|CANPARALYSE|CANPUSH //bitflags defining which status effects can be inflicted (replaces canweaken, canstun, etc)
var/area/lastarea = null
var/has_unlimited_silicon_privilege = FALSE // Can they interact with station electronics
var/atom/movable/remote_control //Calls relaymove() to whatever it is
var/obj/control_object //Used by admins to possess objects. All mobs should have this var
//Whether or not mobs can understand other mobtypes. These stay in /mob so that ghosts can hear everything.
var/universal_speak = FALSE // Set to TRUE to enable the mob to speak to everyone -- TLE
var/universal_understand = FALSE // Set to TRUE to enable the mob to understand everyone, not necessarily speak
var/has_limbs = 1 //Whether this mob have any limbs he can move with
//SSD var, changed it up some so people can have special things happen for different mobs when SSD.
var/player_logged = 0
//Ghosted var, set only if a player has manually ghosted out of this mob.
var/player_ghosted = 0
var/turf/listed_turf = null //the current turf being examined in the stat panel
var/list/shouldnt_see = list() //list of objects that this mob shouldn't see in the stat panel. this silliness is needed because of AI alt+click and cult blood runes
var/stance_damage = 0 //Whether this mob's ability to stand has been affected
/// List of the active mutation types
var/list/active_mutations = list()
var/last_movement = -100 // Last world.time the mob actually moved of its own accord.
/// The direction they last moved
var/last_movement_dir
var/last_logout = 0
var/resize = 1 //Badminnery resize
var/datum/vision_override/vision_type = null //Vision override datum.
var/list/permanent_huds = list()
var/list/actions = list()
var/list/datum/action/chameleon_item_actions
var/list/progressbars = null //for stacking do_after bars
var/list/tkgrabbed_objects = list() // Assoc list of items to TK grabs
var/forced_look = null // This can either be a numerical direction or a soft object reference (UID). It makes the mob always face towards the selected thing.
var/registered_z
var/obj/effect/proc_holder/ranged_ability //Any ranged ability the mob has, as a click override
/// Overrides the health HUD element state if set.
var/health_hud_override = HEALTH_HUD_OVERRIDE_NONE
/// A soft reference to the location where this mob's runechat message will appear. Uses `UID()`.
var/runechat_msg_location
/// The datum receiving keyboard input. parent mob by default.
var/datum/input_focus = null
/// Is our mob currently suiciding? Used for suicide code along with many different revival checks
var/suiciding = FALSE
/// Used for some screen objects, such as
var/list/screens = list()
/// lazy list. contains /obj/screen/alert only, On /mob so clientless mobs will throw alerts properly
var/list/alerts
/// Makes items bloody if you touch them
var/bloody_hands = 0
/// Basically a lazy list, copies the DNA of blood you step in
var/list/feet_blood_DNA
/// affects the blood color of your feet, color taken from the blood you step in
var/feet_blood_color
/// Weirdly named, effects how blood transfers onto objects
var/blood_state = BLOOD_STATE_NOT_BLOODY
/// Assoc list for tracking how "bloody" a mobs feet are, used for creating bloody foot/shoeprints on turfs when moving
var/list/bloody_feet = list(BLOOD_STATE_HUMAN = 0, BLOOD_STATE_XENO = 0, BLOOD_STATE_NOT_BLOODY = 0, BLOOD_BASE_ALPHA = BLOODY_FOOTPRINT_BASE_ALPHA)
/// set when typing in an input window instead of chatline, this var could probably be removed soon enough
var/hud_typing = 0
/// Affects if you have a typing indicator
var/typing
/// Last thing we typed in to the typing indicator, probably does not need to exist
var/last_typed
/// Last time we typed something in to the typing popup
var/last_typed_time
// Ran after next_click on most item interactions, used in any case where we aren't required to use next click Eg: Action buttons
var/next_move
/// Unused, used to adjust our next move on a linar skill world.time + (how_many_deciseconds + Next move adjust) = Next move
var/next_move_adjust = 0
/// Value to multiply action delays by, actually used world.time + (how_many_deciseconds * Next move Adjust) = Next move
var/next_move_modifier = 1
// 1 decisecond click delay (above and beyond mob/next_move)
/// This is mainly modified by click code, to modify click delays elsewhere, use next_move and changeNext_move(), Controls the click delay. Changed with
var/next_click = 0
// Does not effect the build in tick delay of click, can't go below 1 click per tick
/// Unused
var/next_click_adjust = 0
/// Unused
var/next_click_modifier = 1
/// Tracks the open UIs that a mob has, used in TGUI for various things, such as updating UIs
var/list/open_uis = list()