diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm index 21d6a43a12d..c405ce7c086 100644 --- a/code/modules/mob/living/carbon/human/human_organs.dm +++ b/code/modules/mob/living/carbon/human/human_organs.dm @@ -42,7 +42,7 @@ // Buckled to a bed/chair. Stance damage is forced to 0 since they're sitting on something solid // Not standing, so no need to care about stance - if(istype(buckled, /obj/structure/chair) || !isturf(loc)) + if(istype(buckled, /obj/structure/chair) || istype(buckled, /obj/vehicle/bike) || !isturf(loc)) return for(var/limb_tag in list("l_leg","r_leg","l_foot","r_foot")) diff --git a/code/modules/vehicle/bicycle.dm b/code/modules/vehicle/bicycle.dm index b08239f06b0..151c34f5e0e 100644 --- a/code/modules/vehicle/bicycle.dm +++ b/code/modules/vehicle/bicycle.dm @@ -10,12 +10,17 @@ bicycle_overlay = mutable_appearance(icon, "bicycle_overlay", ABOVE_MOB_LAYER) /obj/vehicle/bike/relaymove(mob/user, direction) - . = ..() if(!ishuman(user)) return var/mob/living/carbon/human/driver = user var/obj/item/organ/external/l_hand = driver.get_organ("l_hand") var/obj/item/organ/external/r_hand = driver.get_organ("r_hand") + var/obj/item/organ/external/l_leg = driver.get_organ("l_leg") + var/obj/item/organ/external/r_leg = driver.get_organ("r_leg") + if(!l_hand && !r_hand && !l_leg && !r_leg) // if you don't have limbs then fall off the bike + unbuckle_mob(driver) + driver.emote("collapse") + return if(!l_hand && !r_hand) vehicle_move_delay += 0.5 // I can ride my bike with no handlebars... (but it's slower) for(var/organ_name in list("l_leg", "r_leg", "l_foot", "r_foot")) @@ -26,6 +31,7 @@ vehicle_move_delay += 0.5 else if(E.status & ORGAN_BROKEN) vehicle_move_delay += 1.5 + return ..() /obj/vehicle/bike/post_buckle_mob(mob/living/M) . = ..() diff --git a/code/modules/vehicle/janivehicle.dm b/code/modules/vehicle/janivehicle.dm index e97ae0bf88a..f6caae7887d 100644 --- a/code/modules/vehicle/janivehicle.dm +++ b/code/modules/vehicle/janivehicle.dm @@ -60,6 +60,15 @@ J.vehicle_move_delay -= J.buffer_delay to_chat(usr, "The floor buffer is now [J.floorbuffer ? "active" : "deactivated"].") +/obj/vehicle/janicart/user_buckle_mob(mob/living/M, mob/user) + var/mob/living/carbon/human/driver = M + var/obj/item/organ/external/l_leg = driver.get_organ("l_leg") + var/obj/item/organ/external/r_leg = driver.get_organ("r_leg") + if(!l_leg && !r_leg) + to_chat(user, "[src] requires legs to ride!") + return + return ..() + /obj/vehicle/janicart/post_buckle_mob(mob/living/M) . = ..() if(!buffer_installed)