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 ffa143a9f5c..2bcbf8aa878 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -15,7 +15,7 @@ /obj/structure/bed/chair/wheelchair/set_dir() ..() overlays = null - var/image/O = image(icon = 'icons/obj/objects.dmi', icon_state = "w_overlay", layer = FLY_LAYER, dir = src.dir) + var/image/O = image(icon = 'icons/obj/furniture.dmi', icon_state = "w_overlay", layer = FLY_LAYER, dir = src.dir) overlays += O if(buckled_mob) buckled_mob.set_dir(dir) @@ -116,26 +116,21 @@ user_unbuckle_mob(user) return -/obj/structure/bed/chair/wheelchair/MouseDrop(over_object, src_location, over_location) - ..() - if(over_object == usr && in_range(src, usr)) - if(!ishuman(usr)) return - if(usr == buckled_mob) - usr << "You realize you are unable to push the wheelchair you sit in." +/obj/structure/bed/chair/wheelchair/CtrlClick(var/mob/user) + if(in_range(src, user)) + if(!ishuman(user)) return + if(user == buckled_mob) + user << "You realize you are unable to push the wheelchair you sit in." return if(!pulling) - pulling = usr - usr.pulledby = src - if(usr.pulling) - usr.stop_pulling() - usr.set_dir(get_dir(usr, src)) - usr << "You grip \the [name]'s handles." + pulling = user + user.pulledby = src + if(user.pulling) + user.stop_pulling() + user.set_dir(get_dir(user, src)) + user << "You grip \the [name]'s handles." else - if(usr != pulling) - for(var/mob/O in viewers(pulling, null)) - O.show_message("[usr] breaks [pulling]'s grip on the wheelchair.", 1) - else - usr << "You let go of \the [name]'s handles." + usr << "You let go of \the [name]'s handles." pulling.pulledby = null pulling = null return diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm index 0259a3ef4bb..051749edde4 100644 --- a/code/modules/mob/living/carbon/human/human_organs.dm +++ b/code/modules/mob/living/carbon/human/human_organs.dm @@ -43,7 +43,7 @@ E.process() number_wounds += E.number_wounds - if (!lying && world.time - l_move_time < 15) + if (!lying && !buckled && world.time - l_move_time < 15) //Moving around with fractured ribs won't do you any good if (E.is_broken() && E.internal_organs && E.internal_organs.len && prob(15)) var/obj/item/organ/I = pick(E.internal_organs) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index eb1b7a74bc3..3d5f9091c51 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -85,7 +85,7 @@ default behaviour is: now_pushing = 0 return - if((tmob.mob_always_swap || (tmob.a_intent == I_HELP || tmob.restrained()) && (a_intent == I_HELP || src.restrained())) && tmob.canmove && canmove && !dense && can_move_mob(tmob, 1, 0)) // mutual brohugs all around! + if((tmob.mob_always_swap || (tmob.a_intent == I_HELP || tmob.restrained()) && (a_intent == I_HELP || src.restrained())) && tmob.canmove && canmove && !tmob.buckled && !buckled && !dense && can_move_mob(tmob, 1, 0)) // mutual brohugs all around! var/turf/oldloc = loc forceMove(tmob.loc) tmob.forceMove(oldloc) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 5cbf694a8e7..ef79b7064bf 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -300,8 +300,8 @@ if(istype(mob.pulledby, /obj/structure/bed/chair/wheelchair)) return mob.pulledby.relaymove(mob, direct) else if(istype(mob.buckled, /obj/structure/bed/chair/wheelchair)) - if(ishuman(mob.buckled)) - var/mob/living/carbon/human/driver = mob.buckled + if(ishuman(mob)) + var/mob/living/carbon/human/driver = mob var/obj/item/organ/external/l_hand = driver.get_organ("l_hand") var/obj/item/organ/external/r_hand = driver.get_organ("r_hand") if((!l_hand || l_hand.is_stump()) && (!r_hand || r_hand.is_stump())) diff --git a/icons/obj/furniture.dmi b/icons/obj/furniture.dmi index 0feff28dc6c..852c69bc3aa 100644 Binary files a/icons/obj/furniture.dmi and b/icons/obj/furniture.dmi differ diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index a43538e92bb..c56498f2f33 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ diff --git a/icons/obj/rollerbed.dmi b/icons/obj/rollerbed.dmi index 4646201b0c1..96cef3b01fa 100644 Binary files a/icons/obj/rollerbed.dmi and b/icons/obj/rollerbed.dmi differ