diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 08a50048ac3..79ef8737f98 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -17,7 +17,7 @@ var/throw_speed = 2 var/throw_range = 7 var/moved_recently = 0 - var/mob/pulledby = null + var/atom/movable/pulledby = null var/item_state = null // Base name of the image used for when the item is in someone's hand. Suffixes are added to this. Doubles as legacy overlay_state. var/overlay_state = null // Base name of the image used for when the item is worn. Suffixes are added to this. Important for icon flipping as _flip is added at the end of the value. //Also used on holdable mobs for the same info related to their held version @@ -53,9 +53,10 @@ qdel(AM) loc = null screen_loc = null - if (pulledby) - if (pulledby.pulling == src) - pulledby.pulling = null + if(ismob(pulledby)) + var/mob/M = pulledby + if(M.pulling == src) + M.pulling = null pulledby = null if (bound_overlay) diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm index 75381053af2..0d78da3727f 100644 --- a/code/game/gamemodes/vampire/vampire_powers.dm +++ b/code/game/gamemodes/vampire/vampire_powers.dm @@ -400,9 +400,10 @@ if(isAdminLevel(src.z)) return - if(pulledby) - if(pulledby.pulling == src) - pulledby.pulling = null + if(ismob(pulledby)) + var/mob/M = pulledby + if(M.pulling == src) + M.pulling = null pulledby = null for(var/thing in grabbed_by) qdel(thing) diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 4893aac013e..3995f5dbd91 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -7,8 +7,8 @@
You can also use a lightreplacer, spraybottle (of spacecleaner) and four wet-floor signs on the cart to store them" icon = 'icons/obj/janitor.dmi' icon_state = "cart" - anchored = 0 - density = 1 + anchored = FALSE + density = TRUE climbable = TRUE flags = OPENCONTAINER build_amt = 15 diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index 08e026ef9ee..2b5dfb88246 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -7,13 +7,11 @@ material_alteration = MATERIAL_ALTERATION_DESC held_item = /obj/item/material/stool/chair/wheelchair withdraw_verb = "fold" - can_dismantle = FALSE + slowdown = 1 var/bloodiness - slowdown = 0 - /obj/structure/bed/stool/chair/office/wheelchair/New(var/newloc) // Colorable wheelchairs? ..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index b14b1da077d..bf749f53b22 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1311,8 +1311,9 @@ if (dest != loc && istype(dest, /atom/movable)) AM = dest LAZYADD(AM.contained_mobs, src) - if(pulledby) - pulledby.stop_pulling() + if(ismob(pulledby)) + var/mob/M = pulledby + M.stop_pulling() if (istype(loc, /atom/movable)) AM = loc diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index b947607a1e8..b69c7613020 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -339,7 +339,8 @@ //Wheelchair pushing goes here for now. //TODO: Fuck wheelchairs. if(istype(mob.pulledby, /obj/structure/bed/stool/chair/office/wheelchair) || istype(mob.pulledby, /obj/structure/janitorialcart)) - move_delay += 1 + var/obj/structure/S = mob.pulledby + move_delay += S.slowdown return mob.pulledby.relaymove(mob, direct) var/old_loc = mob.loc diff --git a/code/modules/vehicles/bike.dm b/code/modules/vehicles/bike.dm index 4d493d17fba..8047de26aac 100644 --- a/code/modules/vehicles/bike.dm +++ b/code/modules/vehicles/bike.dm @@ -73,8 +73,9 @@ return user.visible_message("\The [user] puts down \the [src]'s kickstand.", "You put down \the [src]'s kickstand.", "You hear a thunk.") playsound(src, 'sound/misc/bike_stand_down.ogg', 50, 1) - if(pulledby) - pulledby.stop_pulling() + if(ismob(pulledby)) + var/mob/M = pulledby + M.stop_pulling() kickstand = !kickstand anchored = (kickstand || on) @@ -143,8 +144,9 @@ update_icon() - if(pulledby) - pulledby.stop_pulling() + if(ismob(pulledby)) + var/mob/M = pulledby + M.stop_pulling() ..() /obj/vehicle/bike/turn_off() diff --git a/html/changelogs/custodial_cart_pushing.yml b/html/changelogs/custodial_cart_pushing.yml new file mode 100644 index 00000000000..c9c3fe5e83b --- /dev/null +++ b/html/changelogs/custodial_cart_pushing.yml @@ -0,0 +1,6 @@ +author: SleepyGemmy + +delete-after: True + +changes: + - bugfix: "Fixes pushing custodial carts slowing you down." \ No newline at end of file