diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 05fffdac689..6fbdb235db9 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -12,6 +12,7 @@ var/allow_occupant_types = list(/mob/living/carbon/human) var/disallow_occupant_types = list() var/pump + var/display_loading_message = TRUE use_power = 1 idle_power_usage = 15 @@ -177,7 +178,8 @@ to_chat(user, "\The machine won't accept that.") return - user.visible_message("[user] starts putting [G.affecting] into [src].", "You start putting [G.affecting] into [src].", range = 3) + if(display_loading_message) + user.visible_message("[user] starts putting [G.affecting] into [src].", "You start putting [G.affecting] into [src].", range = 3) if (do_mob(user, G.affecting, 20, needhand = 0)) if(occupant) @@ -250,10 +252,11 @@ to_chat(user, "\The [src] is already occupied.") return - if(M == user) - visible_message("\The [user] starts climbing into \the [src].") - else - visible_message("\The [user] starts putting [M] into \the [src].") + if(display_loading_message) + if(M == user) + visible_message("\The [user] starts climbing into \the [src].") + else + visible_message("\The [user] starts putting [M] into \the [src].") if(do_after(user, 20)) if(occupant) diff --git a/code/modules/heavy_vehicle/equipment/medical.dm b/code/modules/heavy_vehicle/equipment/medical.dm index 58134c31d02..31ae03f440a 100644 --- a/code/modules/heavy_vehicle/equipment/medical.dm +++ b/code/modules/heavy_vehicle/equipment/medical.dm @@ -57,6 +57,7 @@ idle_power_usage = 0 active_power_usage = 0 //It'd be hard to handle, so for now all power is consumed by mech sleeper object interact_offline = TRUE + display_loading_message = FALSE /obj/machinery/sleeper/mounted/ui_interact(var/mob/user, var/ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = mech_state) . = ..() diff --git a/code/modules/heavy_vehicle/equipment/utility.dm b/code/modules/heavy_vehicle/equipment/utility.dm index d006943cb92..0fa0c0302e5 100644 --- a/code/modules/heavy_vehicle/equipment/utility.dm +++ b/code/modules/heavy_vehicle/equipment/utility.dm @@ -383,4 +383,39 @@ src.damtype = "fire" update_icon() START_PROCESSING(SSprocessing, src) - ..() \ No newline at end of file + ..() + +// Kinda hacky, but hey, avoids some severe shitcode later on - geeves +/obj/item/mecha_equipment/sleeper/passenger_compartment + name = "\improper mounted passenger compartment" + desc = "An exosuit-mounted passenger compartment that can comfortably hold a single humanoid." + icon_state = "mecha_passenger_open" + mech_layer = MECH_GEAR_LAYER + restricted_hardpoints = list(HARDPOINT_LEFT_HAND, HARDPOINT_RIGHT_HAND) + restricted_software = null + origin_tech = list(TECH_MATERIAL = 2, TECH_ENGINEERING = 2) + passive_power_use = 15 + +/obj/item/mecha_equipment/sleeper/passenger_compartment/uninstalled() + . = ..() + icon_state = "mecha_passenger_open" + update_icon() + owner.update_icon() + +/obj/item/mecha_equipment/sleeper/passenger_compartment/attack_self(var/mob/user) + if(!sleeper.occupant) + to_chat(user, span("warning", "There's no one to eject!")) + else + visible_message(span("notice", "\The [src] ejects [sleeper.occupant.name].")) + sleeper.go_out() + icon_state = "mecha_passenger_open" + update_icon() + owner.update_icon() + return + +/obj/item/mecha_equipment/sleeper/passenger_compartment/afterattack(var/atom/target, var/mob/living/user, var/inrange, var/params) + . = ..() + if(.) + icon_state = "mecha_passenger" + update_icon() + owner.update_icon() \ No newline at end of file diff --git a/html/changelogs/geeves - mechdiddle.yml b/html/changelogs/geeves - mechdiddle.yml new file mode 100644 index 00000000000..fad48355d8a --- /dev/null +++ b/html/changelogs/geeves - mechdiddle.yml @@ -0,0 +1,6 @@ +author: Code by Geeves, Sprites by Kyres + +delete-after: True + +changes: + - rscadd: "Added mech passenger compartments." diff --git a/icons/mecha/mech_equipment.dmi b/icons/mecha/mech_equipment.dmi index f0d531d4d8f..5421d517ba7 100644 Binary files a/icons/mecha/mech_equipment.dmi and b/icons/mecha/mech_equipment.dmi differ diff --git a/icons/mecha/mecha_weapon_overlays.dmi b/icons/mecha/mecha_weapon_overlays.dmi index 17dea52c690..fdf5dca09f1 100644 Binary files a/icons/mecha/mecha_weapon_overlays.dmi and b/icons/mecha/mecha_weapon_overlays.dmi differ