From fc3d59ced1c9b7ec8e5cd506e5009c44470bea5d Mon Sep 17 00:00:00 2001 From: Greenjoe12345 Date: Sun, 28 Feb 2021 23:40:56 +0000 Subject: [PATCH] adds electric wheelchair, fixes wheelchair bug --- .../stool_bed_chair_nest/wheelchair.dm | 60 +++++++++++++++++- .../loadout/loadout_utility.dm | 5 ++ icons/obj/wheelchair.dmi | Bin 9715 -> 13029 bytes 3 files changed, 63 insertions(+), 2 deletions(-) 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 1c660b2c57..239f730fb3 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -12,12 +12,30 @@ var/mob/living/pulling = null var/bloodiness + var/min_mob_buckle_size = MOB_SMALL + var/max_mob_buckle_size = MOB_LARGE + /obj/structure/bed/chair/wheelchair/smallmotor name = "small electric wheelchair" desc = "A small motorized wheelchair, it looks around the right size for a Teshari" icon_state = "teshchair" wheelchairtype = /obj/structure/bed/chair/wheelchair/smallmotor wheelchairitemtype = /obj/item/smallmotorwheelchair + min_mob_buckle_size = MOB_SMALL + max_mob_buckle_size = MOB_MEDIUM + +/obj/structure/bed/chair/wheelchair/motor + name = "electric wheelchair" + desc = "A motorized wheelchair controlled with a joystick on one armrest" + icon_state = "motorchair" + wheelchairtype = /obj/structure/bed/chair/wheelchair/motor + wheelchairitemtype = /obj/item/motorwheelchair + +/obj/structure/bed/chair/wheelchair/can_buckle_check(mob/living/M, forced = FALSE) + . = ..() + if(. && (M.mob_size < min_mob_buckle_size || M.mob_size >= max_mob_buckle_size)) + to_chat(M, SPAN_WARNING("You are the wrong size to use \the [src].")) + . = FALSE /obj/structure/bed/chair/wheelchair/update_icon() return @@ -25,16 +43,30 @@ /obj/structure/bed/chair/wheelchair/set_dir() ..() cut_overlays() - var/image/O = image(icon = 'icons/obj/wheelchair.dmi', icon_state = "wheelchair_overlay", layer = FLY_LAYER, dir = src.dir) + var/image/O = image(icon = 'icons/obj/wheelchair.dmi', icon_state = "wheelchair_overlay", layer = ABOVE_MOB_LAYER, dir = src.dir) + O.plane = MOB_PLANE add_overlay(O) if(has_buckled_mobs()) for(var/A in buckled_mobs) var/mob/living/L = A L.set_dir(dir) + /obj/structure/bed/chair/wheelchair/smallmotor/set_dir() ..() cut_overlays() - var/image/O = image(icon = 'icons/obj/wheelchair.dmi', icon_state = "teshchair_overlay", layer = FLY_LAYER, dir = src.dir) + var/image/O = image(icon = 'icons/obj/wheelchair.dmi', icon_state = "teshchair_overlay", layer = ABOVE_MOB_LAYER, dir = src.dir) + O.plane = MOB_PLANE + add_overlay(O) + if(has_buckled_mobs()) + for(var/A in buckled_mobs) + var/mob/living/L = A + L.set_dir(dir) + +/obj/structure/bed/chair/wheelchair/motor/set_dir() + ..() + cut_overlays() + var/image/O = image(icon = 'icons/obj/wheelchair.dmi', icon_state = "motorchair_overlay", layer = ABOVE_MOB_LAYER, dir = src.dir) + O.plane = MOB_PLANE add_overlay(O) if(has_buckled_mobs()) for(var/A in buckled_mobs) @@ -232,6 +264,13 @@ var/wheelchairtype = /obj/structure/bed/chair/wheelchair var/wheelchairitemtype = /obj/item/wheelchair +/obj/item/wheelchair/attack_self(mob/user) + var/obj/structure/bed/chair/wheelchair/R = new wheelchairtype(user.loc) + R.add_fingerprint(user) + R.name = src.name + R.color = src.color + qdel(src) + /obj/item/smallmotorwheelchair // need it like this cause the spawning code for wheelchairs in the loadout is funky name = "small electric wheelchair" desc = "A small motorized wheelchair, it looks around the right size for a Teshari." @@ -242,6 +281,16 @@ var/wheelchairtype = /obj/structure/bed/chair/wheelchair/smallmotor var/wheelchairitemtype = /obj/item/smallmotorwheelchair +/obj/item/motorwheelchair + name = "electric wheelchair" + desc = "A motorized wheelchair controlled with a joystick on one armrest" + icon = 'icons/obj/wheelchair.dmi' + icon_state = "motorchair_folded" + item_state = "motorchair" + w_class = ITEMSIZE_HUGE // Can't be put in backpacks. Oh well. + var/wheelchairtype = /obj/structure/bed/chair/wheelchair/motor + var/wheelchairitemtype = /obj/item/motorwheelchair + /obj/item/smallmotorwheelchair/attack_self(mob/user) var/obj/structure/bed/chair/wheelchair/R = new wheelchairtype(user.loc) R.add_fingerprint(user) @@ -249,6 +298,13 @@ R.color = src.color qdel(src) +/obj/item/motorwheelchair/attack_self(mob/user) + var/obj/structure/bed/chair/wheelchair/R = new wheelchairtype(user.loc) + R.add_fingerprint(user) + R.name = src.name + R.color = src.color + qdel(src) + /obj/structure/bed/chair/wheelchair/MouseDrop(over_object, src_location, over_location) ..() if((over_object == usr && (in_range(src, usr) || usr.contents.Find(src)))) diff --git a/code/modules/client/preference_setup/loadout/loadout_utility.dm b/code/modules/client/preference_setup/loadout/loadout_utility.dm index 2fc5b7d0a2..f51662de14 100644 --- a/code/modules/client/preference_setup/loadout/loadout_utility.dm +++ b/code/modules/client/preference_setup/loadout/loadout_utility.dm @@ -176,6 +176,11 @@ ..() gear_tweaks += gear_tweak_free_color_choice +/datum/gear/utility/motorchair + display_name = "electric wheelchair" + path = /obj/item/motorwheelchair + cost = 4 + /**************** modular computers ****************/ diff --git a/icons/obj/wheelchair.dmi b/icons/obj/wheelchair.dmi index 0188b73e436dadeef665a5bbe8d1c5ddd3a4d6a3..e58bf4e09b6e029a30dafc6d83392fba62efef48 100644 GIT binary patch literal 13029 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 literal 9715 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