Code docs some mob stuff (#49570)

* update damage proc codedocs

* docs for mobs

* change requests
This commit is contained in:
spookydonut
2020-02-28 11:14:39 +13:00
committed by GitHub
parent c0c21389e3
commit 1a1533a2e3
9 changed files with 162 additions and 132 deletions
+5 -5
View File
@@ -35,8 +35,8 @@
#define VENTCRAWLER_ALWAYS 2
//Bloodcrawling defines
#define BLOODCRAWL 1
#define BLOODCRAWL_EAT 2
#define BLOODCRAWL 1 /// bloodcrawling, see: [/mob/living/var/bloodcrawl]
#define BLOODCRAWL_EAT 2 /// crawling+mob devour
//Mob bio-types flags
#define MOB_ORGANIC 1 << 0
@@ -242,9 +242,9 @@
///The shock doesn't stun.
#define SHOCK_NOSTUN (1 << 3)
#define INCORPOREAL_MOVE_BASIC 1
#define INCORPOREAL_MOVE_SHADOW 2 // leaves a trail of shadows
#define INCORPOREAL_MOVE_JAUNT 3 // is blocked by holy water/salt
#define INCORPOREAL_MOVE_BASIC 1 /// normal movement, see: [/mob/living/var/incorporeal_move]
#define INCORPOREAL_MOVE_SHADOW 2 /// leaves a trail of shadows
#define INCORPOREAL_MOVE_JAUNT 3 /// is blocked by holy water/salt
//Secbot and ED209 judgement criteria bitflag values
#define JUDGE_EMAGGED (1<<0)
+1 -1
View File
@@ -1,7 +1,7 @@
//These procs handle putting s tuff in your hands
//as they handle all relevant stuff like adding it to the player's screen and updating their overlays.
//Returns the thing we're currently holding
///Returns the thing we're currently holding
/mob/proc/get_active_held_item()
return get_item_for_held_index(active_hand_index)
@@ -1,13 +1,15 @@
///alien immune to tox damage
/mob/living/carbon/alien/getToxLoss()
return 0
/mob/living/carbon/alien/adjustToxLoss(amount, updating_health = TRUE, forced = FALSE) //alien immune to tox damage
return FALSE
//aliens are immune to stamina damage.
/mob/living/carbon/alien/adjustStaminaLoss(amount, updating_health = 1, forced = FALSE)
return
///alien immune to tox damage
/mob/living/carbon/alien/adjustToxLoss(amount, updating_health = TRUE, forced = FALSE)
return FALSE
///aliens are immune to stamina damage.
/mob/living/carbon/alien/adjustStaminaLoss(amount, updating_health = 1, forced = FALSE)
return FALSE
///aliens are immune to stamina damage.
/mob/living/carbon/alien/setStaminaLoss(amount, updating_health = 1)
return
return FALSE
@@ -6,13 +6,13 @@
hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD,GLAND_HUD,NANITE_HUD,DIAG_NANITE_FULL_HUD)
has_limbs = 1
held_items = list(null, null)
var/list/internal_organs = list() //List of /obj/item/organ in the mob. They don't go in the contents for some reason I don't want to know.
var/list/internal_organs_slot= list() //Same as above, but stores "slot ID" - "organ" pairs for easy access.
var/silent = FALSE //Can't talk. Value goes down every life proc. //NOTE TO FUTURE CODERS: DO NOT INITIALIZE NUMERICAL VARS AS NULL OR I WILL MURDER YOU.
var/dreaming = 0 //How many dream images we have left to send
var/list/internal_organs = list() ///List of [/obj/item/organ] in the mob. They don't go in the contents for some reason I don't want to know.
var/list/internal_organs_slot= list() ///Same as [above][/mob/living/carbon/var/internal_organs], but stores "slot ID" - "organ" pairs for easy access.
var/silent = 0 ///Can't talk. Value goes down every life proc. NOTE TO FUTURE CODERS: DO NOT INITIALIZE NUMERICAL VARS AS NULL OR I WILL MURDER YOU.
var/dreaming = 0 ///How many dream images we have left to send
var/obj/item/handcuffed = null //Whether or not the mob is handcuffed
var/obj/item/legcuffed = null //Same as handcuffs but for legs. Bear traps use this.
var/obj/item/handcuffed = null///Whether or not the mob is handcuffed
var/obj/item/legcuffed = null ///Same as handcuffs but for legs. Bear traps use this.
var/disgust = 0
@@ -23,15 +23,15 @@
var/obj/item/tank/internal = null
var/obj/item/clothing/head = null
var/obj/item/clothing/gloves = null //only used by humans
var/obj/item/clothing/shoes = null //only used by humans.
var/obj/item/clothing/glasses/glasses = null //only used by humans.
var/obj/item/clothing/ears = null //only used by humans.
var/obj/item/clothing/gloves = null ///only used by humans
var/obj/item/clothing/shoes = null ///only used by humans.
var/obj/item/clothing/glasses/glasses = null ///only used by humans.
var/obj/item/clothing/ears = null ///only used by humans.
var/datum/dna/dna = null // Carbon
var/datum/mind/last_mind = null //last mind to control this mob, for blood-based cloning
var/datum/dna/dna = null /// Carbon
var/datum/mind/last_mind = null ///last mind to control this mob, for blood-based cloning
var/failed_last_breath = 0 //This is used to determine if the mob failed a breath. If they did fail a brath, they will attempt to breathe each tick, otherwise just once per 4 ticks.
var/failed_last_breath = 0 ///This is used to determine if the mob failed a breath. If they did fail a brath, they will attempt to breathe each tick, otherwise just once per 4 ticks.
var/co2overloadtime = null
var/temperature_resistance = T0C+75
@@ -41,13 +41,13 @@
var/rotate_on_lying = 1
var/tinttotal = 0 // Total level of visualy impairing items
var/tinttotal = 0 /// Total level of visualy impairing items
///Gets filled up in [create_bodyparts()][/mob/living/carbon/proc/create_bodyparts]
var/list/bodyparts = list(/obj/item/bodypart/chest, /obj/item/bodypart/head, /obj/item/bodypart/l_arm,
/obj/item/bodypart/r_arm, /obj/item/bodypart/r_leg, /obj/item/bodypart/l_leg)
//Gets filled up in create_bodyparts()
var/list/hand_bodyparts = list() //a collection of arms (or actually whatever the fug /bodyparts you monsters use to wreck my systems)
var/list/hand_bodyparts = list() ///a collection of arms (or actually whatever the fug /bodyparts you monsters use to wreck my systems)
var/icon_render_key = ""
var/static/list/limb_icon_cache = list()
@@ -58,12 +58,12 @@
var/obj/halitem
var/hal_screwyhud = SCREWYHUD_NONE
var/next_hallucination = 0
var/cpr_time = 1 //CPR cooldown.
var/cpr_time = 1 ///CPR cooldown.
var/damageoverlaytemp = 0
var/drunkenness = 0 //Overall drunkenness - check handle_alcohol() in life.dm for effects
var/stam_regen_start_time = 0 //used to halt stamina regen temporarily
var/stam_paralyzed = FALSE //knocks you down
var/drunkenness = 0 ///Overall drunkenness
var/stam_regen_start_time = 0 ///used to halt stamina regen temporarily
var/stam_paralyzed = FALSE ///knocks you down
/// Protection (insulation) from the heat, Value 0-1 corresponding to the percentage of protection
var/heat_protection = 0 // No heat protection
+37 -23
View File
@@ -113,31 +113,37 @@
return
adjustStaminaLoss(diff, updating_health, forced)
/** adjustOrganLoss
* inputs: slot (organ slot, like ORGAN_SLOT_HEART), amount (damage to be done), and maximum (currently an arbitrarily large number, can be set so as to limit damage)
* outputs:
* description: If an organ exists in the slot requested, and we are capable of taking damage (we don't have GODMODE on), call the damage proc on that organ.
/**
* If an organ exists in the slot requested, and we are capable of taking damage (we don't have [GODMODE] on), call the damage proc on that organ.
*
* Arguments:
* * slot - organ slot, like [ORGAN_SLOT_HEART]
* * amount - damage to be done
* * maximum - currently an arbitrarily large number, can be set so as to limit damage
*/
/mob/living/carbon/adjustOrganLoss(slot, amount, maximum)
var/obj/item/organ/O = getorganslot(slot)
if(O && !(status_flags & GODMODE))
O.applyOrganDamage(amount, maximum)
/** setOrganLoss
* inputs: slot (organ slot, like ORGAN_SLOT_HEART), amount(damage to be set to)
* outputs:
* description: If an organ exists in the slot requested, and we are capable of taking damage (we don't have GODMODE on), call the set damage proc on that organ, which can
* set or clear the failing variable on that organ, making it either cease or start functions again, unlike adjustOrganLoss.
/**
* If an organ exists in the slot requested, and we are capable of taking damage (we don't have [GODMODE] on), call the set damage proc on that organ, which can
* set or clear the failing variable on that organ, making it either cease or start functions again, unlike adjustOrganLoss.
*
* Arguments:
* * slot - organ slot, like [ORGAN_SLOT_HEART]
* * amount - damage to be set to
*/
/mob/living/carbon/setOrganLoss(slot, amount)
var/obj/item/organ/O = getorganslot(slot)
if(O && !(status_flags & GODMODE))
O.setOrganDamage(amount)
/** getOrganLoss
* inputs: slot (organ slot, like ORGAN_SLOT_HEART)
* outputs: organ damage
* description: If an organ exists in the slot requested, return the amount of damage that organ has
/**
* If an organ exists in the slot requested, return the amount of damage that organ has
*
* Arguments:
* * slot - organ slot, like [ORGAN_SLOT_HEART]
*/
/mob/living/carbon/getOrganLoss(slot)
var/obj/item/organ/O = getorganslot(slot)
@@ -146,7 +152,7 @@
////////////////////////////////////////////
//Returns a list of damaged bodyparts
///Returns a list of damaged bodyparts
/mob/living/carbon/proc/get_damaged_bodyparts(brute = FALSE, burn = FALSE, stamina = FALSE, status)
var/list/obj/item/bodypart/parts = list()
for(var/X in bodyparts)
@@ -157,7 +163,7 @@
parts += BP
return parts
//Returns a list of damageable bodyparts
///Returns a list of damageable bodyparts
/mob/living/carbon/proc/get_damageable_bodyparts(status)
var/list/obj/item/bodypart/parts = list()
for(var/X in bodyparts)
@@ -168,9 +174,13 @@
parts += BP
return parts
//Heals ONE bodypart randomly selected from damaged ones.
//It automatically updates damage overlays if necessary
//It automatically updates health status
/**
* Heals ONE bodypart randomly selected from damaged ones.
*
* It automatically updates damage overlays if necessary
*
* It automatically updates health status
*/
/mob/living/carbon/heal_bodypart_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE, required_status)
var/list/obj/item/bodypart/parts = get_damaged_bodyparts(brute,burn,stamina,required_status)
if(!parts.len)
@@ -182,9 +192,13 @@
return max(damage_calculator - picked.get_damage(TRUE), 0)
//Damages ONE bodypart randomly selected from damagable ones.
//It automatically updates damage overlays if necessary
//It automatically updates health status
/**
* Damages ONE bodypart randomly selected from damagable ones.
*
* It automatically updates damage overlays if necessary
*
* It automatically updates health status
*/
/mob/living/carbon/take_bodypart_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE, required_status, check_armor = FALSE)
var/list/obj/item/bodypart/parts = get_damageable_bodyparts(required_status)
if(!parts.len)
@@ -193,7 +207,7 @@
if(picked.receive_damage(brute, burn, stamina,check_armor ? run_armor_check(picked, (brute ? "melee" : burn ? "fire" : stamina ? "bullet" : null)) : FALSE))
update_damage_overlays()
//Heal MANY bodyparts, in random order
///Heal MANY bodyparts, in random order
/mob/living/carbon/heal_overall_damage(brute = 0, burn = 0, stamina = 0, required_status, updating_health = TRUE)
var/list/obj/item/bodypart/parts = get_damaged_bodyparts(brute, burn, stamina, required_status)
@@ -218,7 +232,7 @@
if(update)
update_damage_overlays()
// damage MANY bodyparts, in random order
/// damage MANY bodyparts, in random order
/mob/living/carbon/take_overall_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE, required_status)
if(status_flags & GODMODE)
return //godmode
@@ -1,5 +1,4 @@
/// depending on the species, it will run the corresponding apply_damage code there
/mob/living/carbon/human/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE)
// depending on the species, it will run the corresponding apply_damage code there
return dna.species.apply_damage(damage, damagetype, def_zone, blocked, src, forced, spread_damage)
+32 -21
View File
@@ -1,18 +1,24 @@
/*
apply_damage(a,b,c)
args
a:damage - How much damage to take
b:damage_type - What type of damage to take, brute, burn
c:def_zone - Where to take the damage if its brute or burn
Returns
standard 0 if fail
*/
/**
* Applies damage to this mob
*
* Sends [COMSIG_MOB_APPLY_DAMGE]
*
* Arguuments:
* * damage - amount of damage
* * damagetype - one of [BRUTE], [BURN], [TOX], [OXY], [CLONE], [STAMINA]
* * def_zone - zone that is being hit if any
* * blocked - armor value applied
* * forced - bypass hit percentage
* * spread_damage - used in overrides
*
* Returns TRUE if damage applied
*/
/mob/living/proc/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE)
SEND_SIGNAL(src, COMSIG_MOB_APPLY_DAMGE, damage, damagetype, def_zone)
var/hit_percent = (100-blocked)/100
if(!damage || (!forced && hit_percent <= 0))
return 0
return FALSE
var/damage_amount = forced ? damage : damage * hit_percent
switch(damagetype)
if(BRUTE)
@@ -27,9 +33,10 @@
adjustCloneLoss(damage_amount, forced = forced)
if(STAMINA)
adjustStaminaLoss(damage_amount, forced = forced)
return 1
return TRUE
/mob/living/proc/apply_damage_type(damage = 0, damagetype = BRUTE) //like apply damage except it always uses the damage procs
///like [apply_damage][/mob/living/proc/apply_damage] except it always uses the damage procs
/mob/living/proc/apply_damage_type(damage = 0, damagetype = BRUTE)
switch(damagetype)
if(BRUTE)
return adjustBruteLoss(damage)
@@ -44,6 +51,7 @@
if(STAMINA)
return adjustStaminaLoss(damage)
/// return the damage amount for the type given
/mob/living/proc/get_damage_amount(damagetype = BRUTE)
switch(damagetype)
if(BRUTE)
@@ -59,7 +67,7 @@
if(STAMINA)
return getStaminaLoss()
/// applies multiple damages at once via [/mob/living/proc/apply_damage]
/mob/living/proc/apply_damages(brute = 0, burn = 0, tox = 0, oxy = 0, clone = 0, def_zone = null, blocked = FALSE, stamina = 0, brain = 0)
if(blocked >= 100)
return 0
@@ -80,7 +88,7 @@
return 1
/// applies various common status effects or common hardcoded mob effects
/mob/living/proc/apply_effect(effect = 0,effecttype = EFFECT_STUN, blocked = FALSE)
var/hit_percent = (100-blocked)/100
if(!effect || (hit_percent <= 0))
@@ -112,7 +120,7 @@
jitteriness = max(jitteriness,(effect * hit_percent))
return 1
/// applies multiple effects at once via [/mob/living/proc/apply_effect]
/mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, irradiate = 0, slur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = FALSE, stamina = 0, jitter = 0, paralyze = 0, immobilize = 0)
if(blocked >= 100)
return BULLET_ACT_BLOCK
@@ -240,15 +248,18 @@
/mob/living/proc/setStaminaLoss(amount, updating_health = TRUE, forced = FALSE)
return
// heal ONE external organ, organ gets randomly selected from damaged ones.
/// needs to return amount healed in order to calculate things like tend wounds xp gain
/**
* heal ONE external organ, organ gets randomly selected from damaged ones.
*
* needs to return amount healed in order to calculate things like tend wounds xp gain
*/
/mob/living/proc/heal_bodypart_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE, required_status)
. = (adjustBruteLoss(-brute, FALSE) + adjustFireLoss(-burn, FALSE) + adjustStaminaLoss(-stamina, FALSE)) //zero as argument for no instant health update
if(updating_health)
updatehealth()
update_stamina()
// damage ONE external organ, organ gets randomly selected from damaged ones.
/// damage ONE external organ, organ gets randomly selected from damaged ones.
/mob/living/proc/take_bodypart_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE, required_status, check_armor = FALSE)
adjustBruteLoss(brute, FALSE) //zero as argument for no instant health update
adjustFireLoss(burn, FALSE)
@@ -257,7 +268,7 @@
updatehealth()
update_stamina()
// heal MANY bodyparts, in random order
/// heal MANY bodyparts, in random order
/mob/living/proc/heal_overall_damage(brute = 0, burn = 0, stamina = 0, required_status, updating_health = TRUE)
adjustBruteLoss(-brute, FALSE) //zero as argument for no instant health update
adjustFireLoss(-burn, FALSE)
@@ -266,7 +277,7 @@
updatehealth()
update_stamina()
// damage MANY bodyparts, in random order
/// damage MANY bodyparts, in random order
/mob/living/proc/take_overall_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE, required_status = null)
adjustBruteLoss(brute, FALSE) //zero as argument for no instant health update
adjustFireLoss(burn, FALSE)
@@ -275,7 +286,7 @@
updatehealth()
update_stamina()
//heal up to amount damage, in a given order
///heal up to amount damage, in a given order
/mob/living/proc/heal_ordered_damage(amount, list/damage_types)
. = amount //we'll return the amount of damage healed
for(var/i in damage_types)
+54 -50
View File
@@ -7,92 +7,96 @@
hud_type = /datum/hud/living
var/resize = 1 //Badminnery resize
var/resize = 1 ///Badminnery resize
var/lastattacker = null
var/lastattackerckey = null
//Health and life related vars
var/maxHealth = 100 //Maximum health that should be possible.
var/health = 100 //A mob's health
var/maxHealth = 100 ///Maximum health that should be possible.
var/health = 100 ///A mob's health
//Damage related vars, NOTE: THESE SHOULD ONLY BE MODIFIED BY PROCS
var/bruteloss = 0 //Brutal damage caused by brute force (punching, being clubbed by a toolbox ect... this also accounts for pressure damage)
var/oxyloss = 0 //Oxygen depravation damage (no air in lungs)
var/toxloss = 0 //Toxic damage caused by being poisoned or radiated
var/fireloss = 0 //Burn damage caused by being way too hot, too cold or burnt.
var/cloneloss = 0 //Damage caused by being cloned or ejected from the cloner early. slimes also deal cloneloss damage to victims
var/staminaloss = 0 //Stamina damage, or exhaustion. You recover it slowly naturally, and are knocked down if it gets too high. Holodeck and hallucinations deal this.
var/crit_threshold = HEALTH_THRESHOLD_CRIT // when the mob goes from "normal" to crit
var/bruteloss = 0 ///Brutal damage caused by brute force (punching, being clubbed by a toolbox ect... this also accounts for pressure damage)
var/oxyloss = 0 ///Oxygen depravation damage (no air in lungs)
var/toxloss = 0 ///Toxic damage caused by being poisoned or radiated
var/fireloss = 0 ///Burn damage caused by being way too hot, too cold or burnt.
var/cloneloss = 0 ///Damage caused by being cloned or ejected from the cloner early. slimes also deal cloneloss damage to victims
var/staminaloss = 0 ///Stamina damage, or exhaustion. You recover it slowly naturally, and are knocked down if it gets too high. Holodeck and hallucinations deal this.
var/crit_threshold = HEALTH_THRESHOLD_CRIT /// when the mob goes from "normal" to crit
var/mobility_flags = MOBILITY_FLAGS_DEFAULT
var/resting = FALSE
var/lying = 0 //number of degrees. DO NOT USE THIS IN CHECKS. CHECK FOR MOBILITY FLAGS INSTEAD!!
var/lying_prev = 0 //last value of lying on update_mobility
var/lying = 0 ///number of degrees. DO NOT USE THIS IN CHECKS. CHECK FOR MOBILITY FLAGS INSTEAD!!
var/lying_prev = 0 ///last value of lying on update_mobility
var/confused = 0 //Makes the mob move in random directions.
var/confused = 0 ///Makes the mob move in random directions.
var/hallucination = 0 //Directly affects how long a mob will hallucinate for
var/hallucination = 0 ///Directly affects how long a mob will hallucinate for
var/last_special = 0 //Used by the resist verb, likely used to prevent players from bypassing next_move by logging in/out.
var/last_special = 0 ///Used by the resist verb, likely used to prevent players from bypassing next_move by logging in/out.
var/timeofdeath = 0
//Allows mobs to move through dense areas without restriction. For instance, in space or out of holder objects.
var/incorporeal_move = FALSE //FALSE is off, INCORPOREAL_MOVE_BASIC is normal, INCORPOREAL_MOVE_SHADOW is for ninjas
//and INCORPOREAL_MOVE_JAUNT is blocked by holy water/salt
/**
* Allows mobs to move through dense areas without restriction. For instance, in space or out of holder objects.
*
* FALSE is off, [INCORPOREAL_MOVE_BASIC] is normal, [INCORPOREAL_MOVE_SHADOW] is for ninjas
* and [INCORPOREAL_MOVE_JAUNT] is blocked by holy water/salt
*/
var/incorporeal_move = FALSE
var/list/roundstart_quirks = list()
var/list/surgeries = list() //a list of surgery datums. generally empty, they're added when the player wants them.
var/list/surgeries = list() ///a list of surgery datums. generally empty, they're added when the player wants them.
var/now_pushing = null //used by living/Bump() and living/PushAM() to prevent potential infinite loop.
var/now_pushing = null ///used by [living/Bump()][/mob/living/Bump] and [living/PushAM()][/mob/living/PushAM] to prevent potential infinite loop.
var/cameraFollow = null
var/tod = null // Time of death
var/tod = null /// Time of death
var/on_fire = 0 //The "Are we on fire?" var
var/fire_stacks = 0 //Tracks how many stacks of fire we have on, max is usually 20
var/on_fire = 0 ///The "Are we on fire?" var
var/fire_stacks = 0 ///Tracks how many stacks of fire we have on, max is usually 20
var/bloodcrawl = 0 //0 No blood crawling, BLOODCRAWL for bloodcrawling, BLOODCRAWL_EAT for crawling+mob devour
var/holder = null //The holder for blood crawling
var/ventcrawler = 0 //0 No vent crawling, 1 vent crawling in the nude, 2 vent crawling always
var/limb_destroyer = 0 //1 Sets AI behavior that allows mobs to target and dismember limbs with their basic attack.
var/bloodcrawl = 0 ///0 No blood crawling, [BLOODCRAWL] for bloodcrawling, [BLOODCRAWL_EAT] for crawling+mob devour
var/holder = null ///The holder for blood crawling
var/ventcrawler = 0 ///0 No vent crawling, 1 vent crawling in the nude, 2 vent crawling always
var/limb_destroyer = 0 ///1 Sets AI behavior that allows mobs to target and dismember limbs with their basic attack.
var/mob_size = MOB_SIZE_HUMAN
var/mob_biotypes = MOB_ORGANIC
var/metabolism_efficiency = 1 //more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature..
var/has_limbs = 0 //does the mob have distinct limbs?(arms,legs, chest,head)
var/metabolism_efficiency = 1 ///more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature..
var/has_limbs = 0 ///does the mob have distinct limbs?(arms,legs, chest,head)
var/list/pipes_shown = list()
var/last_played_vent
var/smoke_delay = 0 //used to prevent spam with smoke reagent reaction on mob.
var/smoke_delay = 0 ///used to prevent spam with smoke reagent reaction on mob.
var/bubble_icon = "default" //what icon the mob uses for speechbubbles
var/health_doll_icon //if this exists AND the normal sprite is bigger than 32x32, this is the replacement icon state (because health doll size limitations). the icon will always be screen_gen.dmi
var/bubble_icon = "default" ///what icon the mob uses for speechbubbles
var/health_doll_icon ///if this exists AND the normal sprite is bigger than 32x32, this is the replacement icon state (because health doll size limitations). the icon will always be screen_gen.dmi
var/last_bumped = 0
var/unique_name = 0 //if a mob's name should be appended with an id when created e.g. Mob (666)
var/numba = 0 //the id a mob gets when it's created
var/unique_name = 0 ///if a mob's name should be appended with an id when created e.g. Mob (666)
var/numba = 0 ///the id a mob gets when it's created
var/list/butcher_results = null //these will be yielded from butchering with a probability chance equal to the butcher item's effectiveness
var/list/guaranteed_butcher_results = null //these will always be yielded from butchering
var/butcher_difficulty = 0 //effectiveness prob. is modified negatively by this amount; positive numbers make it more difficult, negative ones make it easier
var/list/butcher_results = null ///these will be yielded from butchering with a probability chance equal to the butcher item's effectiveness
var/list/guaranteed_butcher_results = null ///these will always be yielded from butchering
var/butcher_difficulty = 0 ///effectiveness prob. is modified negatively by this amount; positive numbers make it more difficult, negative ones make it easier
var/hellbound = 0 //People who've signed infernal contracts are unrevivable.
var/hellbound = 0 ///People who've signed infernal contracts are unrevivable.
var/list/weather_immunities = list()
var/stun_absorption = null //converted to a list of stun absorption sources this mob has when one is added
var/stun_absorption = null ///converted to a list of stun absorption sources this mob has when one is added
var/blood_volume = 0 //how much blood the mob has
var/obj/effect/proc_holder/ranged_ability //Any ranged ability the mob has, as a click override
var/blood_volume = 0 ///how much blood the mob has
var/obj/effect/proc_holder/ranged_ability ///Any ranged ability the mob has, as a click override
var/see_override = 0 //0 for no override, sets see_invisible = see_override in silicon & carbon life process via update_sight()
var/see_override = 0 ///0 for no override, sets see_invisible = see_override in silicon & carbon life process via update_sight()
var/list/status_effects //a list of all status effects the mob has
var/list/status_effects ///a list of all status effects the mob has
var/druggy = 0
//Speech
@@ -105,21 +109,21 @@
var/datum/riding/riding_datum
var/last_words //used for database logging
var/last_words ///used for database logging
var/list/obj/effect/proc_holder/abilities = list()
var/can_be_held = FALSE //whether this can be picked up and held.
var/can_be_held = FALSE ///whether this can be picked up and held.
var/radiation = 0 //If the mob is irradiated.
var/radiation = 0 ///If the mob is irradiated.
var/ventcrawl_layer = PIPING_LAYER_DEFAULT
var/losebreath = 0
//List of active diseases
var/list/diseases = list() // list of all diseases in a mob
var/list/diseases = list() /// list of all diseases in a mob
var/list/disease_resistances = list()
var/slowed_by_drag = TRUE //Whether the mob is slowed down when dragging another prone mob
var/slowed_by_drag = TRUE ///Whether the mob is slowed down when dragging another prone mob
var/list/ownedSoullinks //soullinks we are the owner of
var/list/sharedSoullinks //soullinks we are a/the sharer of
var/list/ownedSoullinks ///soullinks we are the owner of
var/list/sharedSoullinks ///soullinks we are a/the sharer of
+2 -2
View File
@@ -122,7 +122,7 @@
* NB: contains nulls!
*
* held_items[active_hand_index] is the actively held item, but please use
* get_active_held_item() instead, because OOP
* [get_active_held_item()][/mob/proc/get_active_held_item] instead, because OOP
*/
var/list/held_items = list()
@@ -195,7 +195,7 @@
var/memory_throttle_time = 0
var/list/alerts = list() // contains /obj/screen/alert only // On /mob so clientless mobs will throw alerts properly
var/list/alerts = list() /// contains [/obj/screen/alert only] // On /mob so clientless mobs will throw alerts properly
var/list/screens = list()
var/list/client_colours = list()
var/hud_type = /datum/hud