From 2e644b845a516796a6ba5164eab60f7832a09eab Mon Sep 17 00:00:00 2001 From: Hubblenaut Date: Thu, 29 May 2014 18:16:12 +0200 Subject: [PATCH] Adds Wheelchairs with basic driving functionality Conflicts: baystation12.dme icons/obj/objects.dmi --- baystation12.dme | 1 + code/game/machinery/doors/door.dm | 8 ++ .../stool_bed_chair_nest/wheelchair.dm | 107 ++++++++++++++++++ .../mob/living/carbon/human/human_movement.dm | 31 +++-- code/modules/mob/mob_movement.dm | 19 +++- icons/obj/objects.dmi | Bin 126797 -> 130449 bytes 6 files changed, 152 insertions(+), 14 deletions(-) create mode 100644 code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm diff --git a/baystation12.dme b/baystation12.dme index 35b629deb00..dce6653bfb1 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -738,6 +738,7 @@ #include "code\game\objects\structures\stool_bed_chair_nest\bed.dm" #include "code\game\objects\structures\stool_bed_chair_nest\chairs.dm" #include "code\game\objects\structures\stool_bed_chair_nest\stools.dm" +#include "code\game\objects\structures\stool_bed_chair_nest\wheelchair.dm" #include "code\game\objects\structures\transit_tubes\station.dm" #include "code\game\objects\structures\transit_tubes\transit_tube.dm" #include "code\game\objects\structures\transit_tubes\transit_tube_pod.dm" diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index f3fc88471e1..c174b3817f1 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -81,6 +81,14 @@ else flick("door_deny", src) return + if(istype(AM, /obj/structure/stool/bed/chair/wheelchair)) + var/obj/structure/stool/bed/chair/wheelchair/wheel = AM + if(density) + if(wheel.pulling && (src.allowed(wheel.pulling))) + open() + else + flick("door_deny", src) + return return diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm new file mode 100644 index 00000000000..65794bc6b52 --- /dev/null +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -0,0 +1,107 @@ +/obj/structure/stool/bed/chair/wheelchair + name = "wheelchair" + desc = "You sit in this. Either by will or force." + icon_state = "wheelchair" + anchored = 0 + + var/driving = 0 + var/mob/living/pulling = null + + +/obj/structure/stool/bed/chair/wheelchair/handle_rotation() + overlays = null + var/image/O = image(icon = 'icons/obj/objects.dmi', icon_state = "w_overlay", layer = FLY_LAYER, dir = src.dir) + overlays += O + if(buckled_mob) + buckled_mob.dir = dir + +/obj/structure/stool/bed/chair/wheelchair/relaymove(mob/user, direction) + if(user.stat || user.stunned || user.weakened || user.paralysis || user.lying || user.restrained()) + if(user==pulling) + pulling = null + user.pulledby = null + user << "\red You lost your grip!" + else if(user.pulling) + pulling = null + user.pulledby = null + else if(pulling && (get_dist(src, pulling) > 1)) + pulling = null + user.pulledby = null + else if(pulling && (get_dir(src.loc, pulling.loc) == direction)) + user << "\red You cannot go there." + else if(pulling && buckled_mob && (buckled_mob == user)) + user << "\red You cannot drive while being pushed." + else + // Let's roll + driving = 1 + var/turf/T = null + //--1---Move occupant---1--// + if(buckled_mob) + buckled_mob.buckled = null + step(buckled_mob, direction) + buckled_mob.buckled = src + //--2----Move driver----2--// + if(pulling) + T = pulling.loc + if(get_dist(src, pulling) >= 1) + step(pulling, get_dir(pulling.loc, src.loc)) + //--3--Move wheelchair--3--// + step(src, direction) + if(buckled_mob) // Make sure it stays beneath the occupant + Move(buckled_mob.loc) + dir = direction + handle_rotation() + if(pulling) // Driver + if(pulling.loc == src.loc) // We moved onto the wheelchair? Revert! + pulling.loc = T + else + spawn(0) + pulling.dir = get_dir(pulling, src) // When everything is right, face the wheelchair + driving = 0 + +/obj/structure/stool/bed/chair/wheelchair/Move() + ..() + if(!driving && buckled_mob) + buckled_mob.buckled = null + buckled_mob.Move(src.loc) + buckled_mob.buckled = src + if (buckled_mob && (src.loc != buckled_mob.loc)) + unbuckle() + handle_rotation() + +/obj/structure/stool/bed/chair/wheelchair/attack_hand(mob/user as mob) + if (pulling && (pulling == usr)) + MouseDrop(usr) + else + manual_unbuckle(user) + return + +/obj/structure/stool/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 << "\red 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.dir = get_dir(usr, src) + usr << "You grip \the [name]'s handles." + else + if(usr != pulling) + for(var/mob/O in viewers(pulling, null)) + O.show_message("\red [usr] breaks [pulling]'s grip on the wheelchair.", 1) + else + usr << "You let go of \the [name]'s handles." + pulling.pulledby = null + pulling = null + return + +/obj/structure/stool/bed/chair/wheelchair/buckle_mob(mob/M as mob, mob/user as mob) + if(M == pulling) + pulling = null + usr.pulledby = null + ..() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index e373133d90c..bf7722ef896 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -30,17 +30,28 @@ if(wear_suit) tally += wear_suit.slowdown - if(shoes) - tally += shoes.slowdown + if(!pulledby || (pulledby && !istype(pulledby, /obj/structure/stool/bed/chair/wheelchair))) + if(shoes) + tally += shoes.slowdown - for(var/organ_name in list("l_foot","r_foot","l_leg","r_leg")) - var/datum/organ/external/E = get_organ(organ_name) - if(!E || (E.status & ORGAN_DESTROYED)) - tally += 4 - if(E.status & ORGAN_SPLINTED) - tally += 0.5 - else if(E.status & ORGAN_BROKEN) - tally += 1.5 + for(var/organ_name in list("l_foot","r_foot","l_leg","r_leg")) + var/datum/organ/external/E = get_organ(organ_name) + if(!E || (E.status & ORGAN_DESTROYED)) + tally += 4 + if(E.status & ORGAN_SPLINTED) + tally += 0.5 + else if(E.status & ORGAN_BROKEN) + tally += 1.5 + + if(pulledby && istype(pulledby, /obj/structure/stool/bed/chair/wheelchair)) + for(var/organ_name in list("l_hand","r_hand","l_arm","r_arm")) + var/datum/organ/external/E = get_organ(organ_name) + if(!E || (E.status & ORGAN_DESTROYED)) + tally += 4 + if(E.status & ORGAN_SPLINTED) + tally += 0.5 + else if(E.status & ORGAN_BROKEN) + tally += 1.5 if(shock_stage >= 10) tally += 3 diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index d6a4eb7a2e6..68d4fdd98dc 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -204,10 +204,10 @@ if(Process_Grab()) return - if(mob.buckled) //if we're buckled to something, tell it we moved. - return mob.buckled.relaymove(mob, direct) - if(!mob.canmove) return + if(!mob.canmove) + if (mob.buckled && (istype(mob.buckled, /obj/structure/stool/bed/chair/wheelchair))) // Exception for wheelchairs + else return //if(istype(mob.loc, /turf/space) || (mob.flags & NOGRAV)) // if(!mob.Process_Spacemove(0)) return 0 @@ -255,7 +255,18 @@ move_delay = move_delay + tickcomp - + if(mob.pulledby || mob.buckled) // Wheelchair driving! + if(istype(mob.pulledby, /obj/structure/stool/bed/chair/wheelchair)) + return mob.pulledby.relaymove(mob, direct) + else if(istype(mob.buckled, /obj/structure/stool/bed/chair/wheelchair)) + if(ishuman(mob.buckled)) + var/mob/living/carbon/human/driver = mob.buckled + var/datum/organ/external/l_hand = driver.get_organ("l_hand") + var/datum/organ/external/r_hand = driver.get_organ("r_hand") + if((!l_hand || l_hand.status & ORGAN_DESTROYED) && (!r_hand || r_hand.status & ORGAN_DESTROYED)) + return // No hands to drive your chair? Tough luck! + move_delay += 2 + return mob.buckled.relaymove(mob,direct) //We are now going to move moving = 1 diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index 778ffd336ad3764fed3825ffa84cfa101d0537fe..dc7b09ef4883f4d9c9757ea13aa1a81de2cca19b 100644 GIT binary patch delta 14489 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 NURp(}T*5f;{{n&`MqvN| delta 10808 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