mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Fix painful vehicles for legless riders (janicart and bike) (#31195)
* Change vehicle behavior for legless riders - Make janicart unbucklable without legs - Make bike unmovable without legs, but not painful, and pullable by other parties * Thanks, linters! * Apply suggestions from review.
This commit is contained in:
@@ -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"))
|
||||
|
||||
@@ -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)
|
||||
. = ..()
|
||||
|
||||
@@ -60,6 +60,15 @@
|
||||
J.vehicle_move_delay -= J.buffer_delay
|
||||
to_chat(usr, "<span class='notice'>The floor buffer is now [J.floorbuffer ? "active" : "deactivated"].</span>")
|
||||
|
||||
/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, "<span class='warning'>[src] requires legs to ride!</span>")
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/vehicle/janicart/post_buckle_mob(mob/living/M)
|
||||
. = ..()
|
||||
if(!buffer_installed)
|
||||
|
||||
Reference in New Issue
Block a user