diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm
index 928da0542c..d335eb1f27 100644
--- a/code/_helpers/unsorted.dm
+++ b/code/_helpers/unsorted.dm
@@ -342,7 +342,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
//Picks a string of symbols to display as the law number for hacked or ion laws
/proc/ionnum()
- return "[pick("!","@","#","$","%","^","&","*")][pick("!","@","#","$","%","^","&","*")][pick("!","@","#","$","%","^","&","*")][pick("!","@","#","$","%","^","&","*")]"
+ return "[pick("1","2","3","4","5","6","7","8","9","0")][pick("!","@","#","$","%","^","&","*")][pick("!","@","#","$","%","^","&","*")][pick("!","@","#","$","%","^","&","*")]"
//When an AI is activated, it can choose from a list of non-slaved borgs to have as a slave.
/proc/freeborg()
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index ec31e06290..bc99d77e49 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -27,7 +27,7 @@
var/obj/item/I
for(I in src.loc)
if(I.density || I.anchored || I == src) continue
- I.loc = src
+ I.forceMove(src)
// adjust locker size to hold all items with 5 units of free store room
var/content_size = 0
for(I in src.contents)
@@ -76,13 +76,13 @@
/obj/structure/closet/proc/dump_contents()
//Cham Projector Exception
for(var/obj/effect/dummy/chameleon/AD in src)
- AD.loc = src.loc
+ AD.forceMove(src.loc)
for(var/obj/I in src)
- I.loc = src.loc
+ I.forceMove(src.loc)
for(var/mob/M in src)
- M.loc = src.loc
+ M.forceMove(src.loc)
if(M.client)
M.client.eye = M.client.mob
M.client.perspective = MOB_PERSPECTIVE
@@ -130,7 +130,7 @@
for(var/obj/effect/dummy/chameleon/AD in src.loc)
if((stored_units + added_units) > storage_capacity)
break
- AD.loc = src
+ AD.forceMove(src)
added_units++
return added_units
@@ -141,7 +141,7 @@
if(stored_units + added_units + item_size > storage_capacity)
continue
if(!I.anchored)
- I.loc = src
+ I.forceMove(src)
added_units += item_size
return added_units
@@ -156,7 +156,7 @@
if(M.client)
M.client.perspective = EYE_PERSPECTIVE
M.client.eye = src
- M.loc = src
+ M.forceMove(src)
added_units += current_mob_size
return added_units
@@ -171,19 +171,19 @@
switch(severity)
if(1)
for(var/atom/movable/A as mob|obj in src)//pulls everything out of the locker and hits it with an explosion
- A.loc = src.loc
+ A.forceMove(src.loc)
A.ex_act(severity++)
qdel(src)
if(2)
if(prob(50))
for (var/atom/movable/A as mob|obj in src)
- A.loc = src.loc
+ A.forceMove(src.loc)
A.ex_act(severity++)
qdel(src)
if(3)
if(prob(5))
for(var/atom/movable/A as mob|obj in src)
- A.loc = src.loc
+ A.forceMove(src.loc)
A.ex_act(severity++)
qdel(src)
@@ -191,7 +191,7 @@
health -= damage
if(health <= 0)
for(var/atom/movable/A in src)
- A.loc = src.loc
+ A.forceMove(src.loc)
qdel(src)
/obj/structure/closet/bullet_act(var/obj/item/projectile/Proj)
@@ -207,7 +207,7 @@
/obj/structure/closet/blob_act()
if(prob(75))
for(var/atom/movable/A as mob|obj in src)
- A.loc = src.loc
+ A.forceMove(src.loc)
qdel(src)
/obj/structure/closet/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -237,7 +237,7 @@
return
usr.drop_item()
if(W)
- W.loc = src.loc
+ W.forceMove(src.loc)
else if(istype(W, /obj/item/weapon/packageWrap))
return
else if(istype(W, /obj/item/weapon/weldingtool))
diff --git a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
index 5b315654d5..e93721c53f 100644
--- a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
@@ -146,7 +146,7 @@
attack_tk(mob/user as mob)
if(localopened && fireaxe)
- fireaxe.loc = loc
+ fireaxe.forceMove(loc)
user << "You telekinetically remove the fire axe."
fireaxe = null
update_icon()
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
index c732faeeea..8c49fc0d9f 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
@@ -65,7 +65,7 @@
if (istype(W, /obj/item/weapon/grab))
src.MouseDrop_T(W:affecting, user) //act like they were dragged onto the closet
user.drop_item()
- if (W) W.loc = src.loc
+ if (W) W.forceMove(src.loc)
else if(istype(W, /obj/item/weapon/card/id))
if(src.broken)
user << "It appears to be broken."
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
index 3bc5dfc393..7401aac67b 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
@@ -77,7 +77,7 @@
return
user.drop_item()
if(W)
- W.loc = src.loc
+ W.forceMove(src.loc)
else if(istype(W, /obj/item/weapon/melee/energy/blade))
if(emag_act(INFINITY, user, "The locker has been sliced open by [user] with \an [W]!", "You hear metal being sliced and sparks flying."))
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index 23892a0550..d3e795edc3 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -35,7 +35,7 @@
playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3)
for(var/obj/O in src)
- O.loc = get_turf(src)
+ O.forceMove(get_turf(src))
icon_state = icon_opened
src.opened = 1
@@ -60,7 +60,7 @@
var/obj/structure/bed/B = O
if(B.buckled_mob)
continue
- O.loc = src
+ O.forceMove(src)
itemcount++
icon_state = icon_closed
@@ -75,7 +75,7 @@
return
user.drop_item()
if(W)
- W.loc = src.loc
+ W.forceMove(src.loc)
else if(istype(W, /obj/item/weapon/packageWrap))
return
else if(istype(W, /obj/item/stack/cable_coil))
@@ -91,7 +91,7 @@
if(rigged)
user << "You attach [W] to [src]."
user.drop_item()
- W.loc = src
+ W.forceMove(src)
return
else if(istype(W, /obj/item/weapon/wirecutters))
if(rigged)
@@ -160,7 +160,7 @@
/obj/structure/closet/crate/secure/proc/set_locked(var/newlocked, mob/user = null)
if(locked == newlocked) return
-
+
locked = newlocked
if(user)
for(var/mob/O in viewers(user, 3))
@@ -437,12 +437,12 @@
continue
if(!S.anchored)
found = 1
- S.loc = src
+ S.forceMove(src)
break
if(!found)
for(var/obj/machinery/M in src.loc)
if(!M.anchored)
- M.loc = src
+ M.forceMove(src)
break
return
@@ -465,12 +465,12 @@
continue
if(!S.anchored)
found = 1
- S.loc = src
+ S.forceMove(src)
break
if(!found)
for(var/obj/machinery/M in src.loc)
if(!M.anchored)
- M.loc = src
+ M.forceMove(src)
break
return
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index dbe76e4f91..fac0035e94 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -141,6 +141,8 @@ Works together with spawning an observer, noted above.
var/client/C = U.client
for(var/mob/living/carbon/human/target in target_list)
C.images += target.hud_list[SPECIALROLE_HUD]
+ for(var/mob/living/silicon/target in target_list)
+ C.images += target.hud_list[SPECIALROLE_HUD]
return 1
/mob/proc/ghostize(var/can_reenter_corpse = 1)