diff --git a/code/game/machinery/computer/teleporter.dm b/code/game/machinery/computer/teleporter.dm
index 9f9791beec..74e640ae51 100644
--- a/code/game/machinery/computer/teleporter.dm
+++ b/code/game/machinery/computer/teleporter.dm
@@ -166,10 +166,10 @@
L[avoid_assoc_duplicate_keys(A.name, areaindex)] = R
for(var/obj/item/implant/tracking/I in GLOB.tracked_implants)
- if(!I.imp_in || !ismob(I.loc))
+ if(!I.imp_in || !isliving(I.loc))
continue
else
- var/mob/M = I.loc
+ var/mob/living/M = I.loc
if(M.stat == DEAD)
if(M.timeofdeath + 6000 < world.time)
continue
diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm
index c3022a7758..44c44281c6 100644
--- a/code/game/objects/items/teleportation.dm
+++ b/code/game/objects/items/teleportation.dm
@@ -84,10 +84,10 @@ Frequency:
src.temp += "Extranneous Signals:
"
for (var/obj/item/implant/tracking/W in GLOB.tracked_implants)
- if (!W.imp_in || !ismob(W.loc))
+ if (!W.imp_in || !isliving(W.loc))
continue
else
- var/mob/M = W.loc
+ var/mob/living/M = W.loc
if (M.stat == DEAD)
if (M.timeofdeath + 6000 < world.time)
continue
diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm
index d601fde492..976aae894f 100644
--- a/code/modules/mob/living/carbon/carbon_defines.dm
+++ b/code/modules/mob/living/carbon/carbon_defines.dm
@@ -3,6 +3,7 @@
pressure_resistance = 15
possible_a_intents = list(INTENT_HELP, INTENT_HARM)
hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD,GLAND_HUD)
+ has_limbs = 1
var/list/stomach_contents = list()
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.
@@ -33,7 +34,6 @@
var/co2overloadtime = null
var/temperature_resistance = T0C+75
- has_limbs = 1
var/obj/item/reagent_containers/food/snacks/meat/slab/type_of_meat = /obj/item/reagent_containers/food/snacks/meat/slab
var/gib_type = /obj/effect/decal/cleanable/blood/gibs
@@ -57,3 +57,5 @@
var/obj/halitem
var/hal_screwyhud = SCREWYHUD_NONE
var/next_hallucination = 0
+ var/cpr_time = 1 //CPR cooldown.
+ var/damageoverlaytemp = 0
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index 716373061d..7c4d12aaa1 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -2,6 +2,8 @@
hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD,ANTAG_HUD,GLAND_HUD)
possible_a_intents = list(INTENT_HELP, INTENT_DISARM, INTENT_GRAB, INTENT_HARM)
pressure_resistance = 25
+ can_buckle = TRUE
+ buckle_lying = FALSE
//Hair colour and style
var/hair_color = "000"
var/hair_style = "Bald"
@@ -43,8 +45,7 @@
var/drunkenness = 0 //Overall drunkenness - check handle_alcohol() in life.dm for effects
var/datum/personal_crafting/handcrafting
- can_buckle = TRUE
- buckle_lying = FALSE
var/creamed = FALSE //to use with creampie overlays
var/static/list/can_ride_typecache = typecacheof(list(/mob/living/carbon/human, /mob/living/simple_animal/slime, /mob/living/simple_animal/parrot))
+ var/lastpuke = 0
diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm
index 904e9b9c21..471d29a361 100644
--- a/code/modules/mob/living/living_defines.dm
+++ b/code/modules/mob/living/living_defines.dm
@@ -5,6 +5,10 @@
hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD)
pressure_resistance = 10
+ 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
@@ -17,10 +21,12 @@
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/confused = 0 //Makes the mob move in random directions.
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/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
@@ -69,7 +75,16 @@
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/list/status_effects //a list of all status effects the mob has
+ var/druggy = 0
+
+ //Speech
+ var/stuttering = 0
+ var/slurring = 0
+ var/cultslurring = 0
+ var/derpspeech = 0
var/list/implants = null
@@ -83,3 +98,7 @@
var/registered_z
var/can_be_held = FALSE //whether this can be picked up and held.
+
+ var/radiation = 0 //If the mob is irradiated.
+ var/ventcrawl_layer = PIPING_LAYER_DEFAULT
+ var/losebreath = 0
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 536ee125e0..e9eabdfb98 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -6,6 +6,7 @@
flags_1 = HEAR_1
hud_possible = list(ANTAG_HUD)
pressure_resistance = 8
+ mouse_drag_pointer = MOUSE_ACTIVE_POINTER
var/lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE
var/datum/mind/mind
var/list/datum/action/actions = list()
@@ -22,10 +23,7 @@
*/
var/zone_selected = null
- var/damageoverlaytemp = 0
var/computer_id = null
- var/lastattacker = null
- var/lastattackerckey = null
var/list/logging = list(INDIVIDUAL_ATTACK_LOG, INDIVIDUAL_SAY_LOG, INDIVIDUAL_EMOTE_LOG, INDIVIDUAL_OOC_LOG)
var/obj/machinery/machine = null
var/other_mobs = null
@@ -35,25 +33,15 @@
var/notransform = null //Carbon
var/eye_blind = 0 //Carbon
var/eye_blurry = 0 //Carbon
- var/stuttering = 0 //Carbon
- var/slurring = 0 //Carbon
- var/cultslurring = 0 //Carbon
- var/derpspeech = 0 //Carbon
var/real_name = null
var/spacewalk = FALSE
- var/druggy = 0 //Carbon
- var/confused = 0 //Carbon
var/resting = 0 //Carbon
var/lying = 0
var/lying_prev = 0
var/canmove = 1
- var/lastpuke = 0
var/name_archive //For admin things like possession
- var/timeofdeath = 0//Living
- var/cpr_time = 1//Carbon
-
var/bodytemperature = BODYTEMP_NORMAL //310.15K / 98.6F
var/drowsyness = 0//Carbon
var/dizziness = 0//Carbon
@@ -62,7 +50,6 @@
var/satiety = 0//Carbon
var/overeatduration = 0 // How long this guy is overeating //Carbon
- var/losebreath = 0//Carbon
var/a_intent = INTENT_HELP//Living
var/list/possible_a_intents = null//Living
var/m_intent = MOVE_INTENT_RUN//Living
@@ -77,8 +64,6 @@
var/obj/item/storage/s_active = null//Carbon
- var/see_override = 0 //0 for no override, sets see_invisible = see_override in mob life process
-
var/datum/hud/hud_used = null
var/research_scanner = 0 //For research scanner equipped mobs. Enable to show research data when examining.
@@ -91,10 +76,13 @@
var/job = null//Living
+<<<<<<< HEAD
var/radiation = 0//Carbon
var/voice_name = "unidentifiable voice"
+=======
+>>>>>>> 3f10f29... Shifts vars off /mob and to the correct subtype (#34773)
var/list/faction = list("neutral") //A list of factions that this mob is currently in, for hostile mob targetting, amongst other things
var/move_on_shuttle = 1 // Can move on the shuttle.
@@ -110,9 +98,6 @@
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|CANKNOCKDOWN|CANUNCONSCIOUS|CANPUSH //bitflags defining which status effects can be inflicted (replaces canknockdown, canstun, etc)
var/digitalcamo = 0 // Can they be tracked by the AI?
@@ -127,12 +112,8 @@
var/turf/listed_turf = null //the current turf being examined in the stat panel
- var/resize = 1 //Badminnery resize
-
var/list/observers = null //The list of people observing this mob.
var/list/progressbars = null //for stacking do_after bars
var/list/mousemove_intercept_objects
-
- var/ventcrawl_layer = PIPING_LAYER_DEFAULT
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index 0b770888ec..17742e9089 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -89,17 +89,17 @@
move_delay = world.time
var/oldloc = mob.loc
- if(mob.confused)
+ if(L.confused)
var/newdir = 0
- if(mob.confused > 40)
+ if(L.confused > 40)
newdir = pick(GLOB.alldirs)
- else if(prob(mob.confused * 1.5))
+ else if(prob(L.confused * 1.5))
newdir = angle2dir(dir2angle(direct) + pick(90, -90))
- else if(prob(mob.confused * 3))
+ else if(prob(L.confused * 3))
newdir = angle2dir(dir2angle(direct) + pick(45, -45))
if(newdir)
direct = newdir
- n = get_step(mob, direct)
+ n = get_step(L, direct)
. = ..()
diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
index fa996b0bc0..0823d64bf1 100644
--- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
@@ -244,8 +244,10 @@
toxpwr = 1
/datum/reagent/toxin/spore/on_mob_life(mob/living/M)
- M.damageoverlaytemp = 60
- M.update_damage_hud()
+ if(iscarbon(M))
+ var/mob/living/carbon/C = M
+ C.damageoverlaytemp = 60
+ C.update_damage_hud()
M.blur_eyes(3)
return ..()