diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index d9a6f70a0c..9a0cbcc805 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -149,15 +149,16 @@
beepsky_fashion = /datum/beepsky_fashion/cat
/obj/item/clothing/head/kitty/equipped(mob/living/carbon/human/user, slot)
- if(ishuman(user) && slot == ITEM_SLOT_HEAD)
- update_icon(user)
- user.update_inv_head() //Color might have been changed by update_icon.
..()
+ if(ishuman(user) && slot == ITEM_SLOT_HEAD)
+ update_icon()
+ user.update_inv_head() //Color might have been changed by update_icon.
-/obj/item/clothing/head/kitty/update_icon(mob/living/carbon/human/user)
+/obj/item/clothing/head/kitty/update_icon()
. = ..()
- if(ishuman(user))
- add_atom_colour("#[user.hair_color]", FIXED_COLOUR_PRIORITY)
+ if(ishuman(loc))
+ var/mob/living/carbon/human/wearer = loc
+ add_atom_colour("#[wearer.hair_color]", FIXED_COLOUR_PRIORITY)
/obj/item/clothing/head/kitty/genuine
desc = "A pair of kitty ears. A tag on the inside says \"Hand made from real cats.\""
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 6e535e5f5f..02953e655e 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -261,12 +261,18 @@
dir_to_target = dir
var/push_anchored = FALSE
- if((AM.move_resist * MOVE_FORCE_CRUSH_RATIO) <= force)
- if(move_crush(AM, move_force, dir_to_target))
- push_anchored = TRUE
- if((AM.move_resist * MOVE_FORCE_FORCEPUSH_RATIO) <= force) //trigger move_crush and/or force_push regardless of if we can push it normally
- if(force_push(AM, move_force, dir_to_target, push_anchored))
- push_anchored = TRUE
+
+ // Sandstorm change - stop breaking structures for no raisin!!
+ var/mob/living/simple_animal/hostile/angry_fella = src
+ if(client || (istype(angry_fella) && angry_fella.target))
+ if((AM.move_resist * MOVE_FORCE_CRUSH_RATIO) <= force)
+ if(move_crush(AM, move_force, dir_to_target))
+ push_anchored = TRUE
+ if((AM.move_resist * MOVE_FORCE_FORCEPUSH_RATIO) <= force) //trigger move_crush and/or force_push regardless of if we can push it normally
+ if(force_push(AM, move_force, dir_to_target, push_anchored))
+ push_anchored = TRUE
+ //
+
if(ismob(AM))
var/mob/mob_to_push = AM
var/atom/movable/mob_buckle = mob_to_push.buckled
diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
index 05568415f9..80bb286b47 100644
--- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
@@ -58,15 +58,15 @@
var/ascended = FALSE // if we have all the top titles, grant achievements to living mobs that gaze upon our cleanbot god
-/mob/living/simple_animal/bot/cleanbot/proc/deputize(obj/item/W, mob/user)
+/mob/living/simple_animal/bot/cleanbot/proc/deputize(obj/item/stab_tool, mob/user)
if(in_range(src, user))
- to_chat(user, "You attach \the [W] to \the [src].")
- user.transferItemToLoc(W, src)
- weapon = W
+ to_chat(user, "You attach \the [stab_tool] to \the [src].")
+ user.transferItemToLoc(stab_tool, src)
+ weapon = stab_tool
weapon_orig_force = weapon.force
if(!emagged)
weapon.force = weapon.force / 2
- add_overlay(image(icon=weapon.lefthand_file,icon_state=weapon.item_state))
+ add_overlay(weapon.build_worn_icon(default_layer = layer + 1, default_icon_file = weapon.lefthand_file, isinhands = TRUE))
/mob/living/simple_animal/bot/cleanbot/proc/update_titles()
var/working_title = ""
diff --git a/html/changelogs/archive/2024-05.yml b/html/changelogs/archive/2024-05.yml
new file mode 100644
index 0000000000..7b3e73fdf5
--- /dev/null
+++ b/html/changelogs/archive/2024-05.yml
@@ -0,0 +1,4 @@
+2024-05-06:
+ SandPoot:
+ - tweak: Mobs that can push structures off the floor will no longer do so unless
+ it blocks path to a target.