diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index 71c5570961..66cdda57f5 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -387,6 +387,7 @@ GLOBAL_LIST_EMPTY(species_list)
var/endtime = world.time + delay
var/starttime = world.time
. = 1
+ var/mob/living/L = isliving(user) && user //evals to last thing eval'd
while (world.time < endtime)
stoplag(1)
if (progress)
@@ -396,7 +397,11 @@ GLOBAL_LIST_EMPTY(species_list)
drifting = 0
Uloc = user.loc
- if(QDELETED(user) || user.stat || !CHECK_ALL_MOBILITY(user, required_mobility_flags) || (!drifting && user.loc != Uloc) || (extra_checks && !extra_checks.Invoke()))
+ if(L && !CHECK_ALL_MOBILITY(L, required_mobility_flags))
+ . = 0
+ break
+
+ if(QDELETED(user) || user.stat || (!drifting && user.loc != Uloc) || (extra_checks && !extra_checks.Invoke()))
. = 0
break
diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm
index 1cb16b9a79..f0d5a7b252 100644
--- a/code/__HELPERS/time.dm
+++ b/code/__HELPERS/time.dm
@@ -81,6 +81,3 @@ GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0)
if(!wtime)
wtime = world.time
return time2text(wtime - GLOB.timezoneOffset, format)
-
-/proc/station_time_timestamp(format = "hh:mm:ss", wtime)
- return time2text(station_time(TRUE, wtime), format)
diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm
index da571bf51d..5d3ab3afb1 100644
--- a/code/datums/emotes.dm
+++ b/code/datums/emotes.dm
@@ -118,7 +118,7 @@
to_chat(user, "You cannot [key] while dead.")
return FALSE
var/mob/living/L = user
- if(restraint_check && (istype(L) && !CHECK_MOBILITY(user, MOBILITY_USE)))
+ if(restraint_check && (istype(L) && !CHECK_MOBILITY(L, MOBILITY_USE)))
if(!intentional)
return FALSE
to_chat(user, "You cannot [key] while stunned.")
diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm
index a32220aa43..a3eddc79c9 100644
--- a/code/datums/mutations/body.dm
+++ b/code/datums/mutations/body.dm
@@ -99,7 +99,7 @@
text_gain_indication = "You twitch."
/datum/mutation/human/tourettes/on_life(mob/living/carbon/human/owner)
- if(prob(10) && owner.stat == CONSCIOUS && !owner.IsStun())
+ if(prob(10) && owner.stat == CONSCIOUS && !owner._REFACTORING_IsStun())
owner.Stun(200)
switch(rand(1, 3))
if(1)
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 53cc18ff03..54b7663012 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -988,7 +988,7 @@
L.reset_perspective()
mmi.mecha = null
mmi.update_icon()
- L.canmove = 0
+ L.mobility_flags = NONE
icon_state = initial(icon_state)+"-open"
setDir(dir_in)
diff --git a/code/modules/antagonists/bloodsucker/powers/bs_feed.dm b/code/modules/antagonists/bloodsucker/powers/bs_feed.dm
index 03ac85cc0c..31887bd7c0 100644
--- a/code/modules/antagonists/bloodsucker/powers/bs_feed.dm
+++ b/code/modules/antagonists/bloodsucker/powers/bs_feed.dm
@@ -321,4 +321,4 @@
// My mouth is no longer full
REMOVE_TRAIT(owner, TRAIT_MUTE, "bloodsucker_feed")
// Let me move immediately
- user.update_canmove()
+ user.update_mobility()
diff --git a/code/modules/antagonists/bloodsucker/powers/bs_lunge.dm b/code/modules/antagonists/bloodsucker/powers/bs_lunge.dm
index a4869923ff..142c2e01b8 100644
--- a/code/modules/antagonists/bloodsucker/powers/bs_lunge.dm
+++ b/code/modules/antagonists/bloodsucker/powers/bs_lunge.dm
@@ -61,7 +61,8 @@
walk_towards(owner, T, 0.1, 10) // NOTE: this runs in the background! to cancel it, you need to use walk(owner.current,0), or give them a new path.
addtimer(CALLBACK(owner, .proc/_walk, 0), 2 SECONDS)
- if(get_turf(owner) != T && !(isliving(target) && target.Adjacent(owner)) && owner.incapacitated() && !CHECK_MOBILITY(owner, MOBILITY_STAND))
+ var/mob/living/L = owner
+ if(get_turf(owner) != T && !(isliving(target) && target.Adjacent(owner)) && owner.incapacitated() && !CHECK_MOBILITY(L, MOBILITY_STAND))
var/send_dir = get_dir(owner, T)
new /datum/forced_movement(owner, get_ranged_target_turf(owner, send_dir, 1), 1, FALSE)
owner.spin(10)
diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm
index 4eb1e33bc2..0f43dfaf3a 100644
--- a/code/modules/antagonists/wizard/equipment/soulstone.dm
+++ b/code/modules/antagonists/wizard/equipment/soulstone.dm
@@ -240,8 +240,8 @@
T.dust_animation()
QDEL_IN(T, 5)
var/mob/living/simple_animal/shade/S = new /mob/living/simple_animal/shade(src)
- S.status_flags |= GODMODE //So they won't die inside the stone somehow
- S.canmove = FALSE//Can't move out of the soul stone
+ S.status_flags |= GODMODE //So they won't die inside the stone somehow
+ S.mobility_flags = NONE //Can't move out of the soul stone
S.name = "Shade of [T.real_name]"
S.real_name = "Shade of [T.real_name]"
T.transfer_ckey(S)
diff --git a/code/modules/fields/timestop.dm b/code/modules/fields/timestop.dm
index bc56fe3a49..3e13d251bd 100644
--- a/code/modules/fields/timestop.dm
+++ b/code/modules/fields/timestop.dm
@@ -135,7 +135,7 @@
if(L.anti_magic_check(check_anti_magic, check_holy))
immune += L
return
- L._REFACTORING_Stun(20, TRUE, TRUE)
+ L.Stun(20, TRUE, TRUE)
frozen_mobs[L] = L.anchored
L.anchored = TRUE
global_frozen_atoms[L] = TRUE
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index b3005dbb0d..6111535764 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -1136,7 +1136,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
set waitfor = FALSE
..()
target.set_screwyhud(SCREWYHUD_DEAD)
- target.DefaultCombatKnockdown(300)
+ target._REFACTORING_Knockdown(300)
target.silent += 10
to_chat(target, "[target.real_name] has died at [get_area_name(target)].")
if(prob(50))
@@ -1154,7 +1154,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
"i[prob(50)?" fucking":""] hate [pick("blood cult", "clock cult", "revenants", "this round","this","myself","admins","you")]")]\"")
sleep(rand(70,90))
target.set_screwyhud(SCREWYHUD_NONE)
- target.SetKnockdown(0)
+ target._REFACTORING_SetKnockdown(0)
target.silent = FALSE
qdel(src)
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 7e5ce3f04f..54f4f91c41 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -11,7 +11,6 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
layer = GHOST_LAYER
stat = DEAD
density = FALSE
- mobility_flags = NONE
anchored = TRUE // don't get pushed around
see_invisible = SEE_INVISIBLE_OBSERVER
see_in_dark = 100
diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm
index bb94dbd0f1..5ba2584274 100644
--- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm
@@ -527,7 +527,7 @@ Auto Patrol[]"},
return
if(iscarbon(A))
var/mob/living/carbon/C = A
- if(C.canmove || arrest_type) // CIT CHANGE - makes sentient ed209s check for canmove rather than !isstun.
+ if(CHECK_MOBILITY(C, MOBILITY_STAND|MOBILITY_MOVE|MOBILITY_USE) || arrest_type) // CIT CHANGE - makes sentient ed209s check for canmove rather than !isstun.
stun_attack(A)
else if(C.canBeHandcuffed() && !C.handcuffed)
cuff(A)
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index ad23ab2d1b..511eb6aa88 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -1055,7 +1055,7 @@
pH = 11.3
/datum/reagent/lithium/on_mob_life(mob/living/carbon/M)
- if(M.canmove && !isspaceturf(M.loc))
+ if(CHECK_MOBILITY(M, MOBILITY_MOVE) && !isspaceturf(M.loc))
step(M, pick(GLOB.cardinals))
if(prob(5))
M.emote(pick("twitch","drool","moan"))