diff --git a/code/controllers/subsystems/job.dm b/code/controllers/subsystems/job.dm index d6e8b68dc65..bb13ffbc47f 100644 --- a/code/controllers/subsystems/job.dm +++ b/code/controllers/subsystems/job.dm @@ -423,7 +423,7 @@ break Debug("ER/([H]): Completed.") - + H.megavend = 1 return H /mob/living/carbon/human @@ -500,7 +500,7 @@ Debug("EP/([H]): Abort, H is AI.") return EquipRank(H, rank, 1) - if(!current_map.command_spawn_enabled || spawning_at != "Arrivals Shuttle") + if(!current_map.command_spawn_enabled || spawning_at != "Arrivals Shuttle" && spawning_at != "Cryogenic Storage") return EquipRank(H, rank, 1) H.centcomm_despawn_timer = addtimer(CALLBACK(H, /mob/living/.proc/centcomm_timeout), 10 MINUTES, TIMER_STOPPABLE) @@ -509,7 +509,7 @@ H.job = rank - if(spawning_at != "Arrivals Shuttle" || job.latejoin_at_spawnpoints) + if(spawning_at != "Arrivals Shuttle" && spawning_at != "Cryogenic Storage" || job.latejoin_at_spawnpoints) return EquipRank(H, rank, 1) var/list/spawn_in_storage = list() diff --git a/code/game/machinery/megavend.dm b/code/game/machinery/megavend.dm index b67884b5414..ad49edc83a4 100644 --- a/code/game/machinery/megavend.dm +++ b/code/game/machinery/megavend.dm @@ -12,10 +12,11 @@ var/last_reply = 0 var/last_slogan = 0 //When did we last pitch? var/slogan_delay = 6000 //How long until we can pitch again? + var/change_message = "You feel a pleasant breeze as the autolocker whisks away all of your clothes, packing them neatly in a box." // Stuff relating vocalizations var/list/slogan_list = list("Don't deploy just yet! Grab your gear!","Forgetting something?","Don't hop on in your skivvies, mate!","It's not Casual Friday, y'know?","Heaven's above, put some clothes on!") - var/shut_up = 0 //Stop spouting those godawful pitches! + var/shut_up = FALSE //Stop spouting those godawful pitches! /obj/machinery/megavendor/machinery_process() if(((src.last_slogan + src.slogan_delay) <= world.time) && (src.slogan_list.len > 0) && (!src.shut_up) && prob(5)) @@ -47,10 +48,9 @@ continue H.drop_from_inventory(W,gearbox) - to_chat(H,"You feel a pleasant breeze as the autolocker whisks away all of your clothes, packing them neatly in a box.") + to_chat(H, SPAN_NOTICE(change_message)) SSjobs.EquipRank(H, H.job, 1, 1) //Equip 'em - H.megavend = 1 //Give them the box if(istype(H.back,/obj/item/storage/backpack)) @@ -61,3 +61,24 @@ H.put_in_any_hand_if_possible(gearbox) return + +/obj/machinery/megavendor/vendor + name = "\improper NanoTrasen AutoDrobe Vendor" + desc = "A NanoTrasen AutoDrobe machine to help through the trouble of getting dressed for work in the spur of a moment!" + icon_state = "clothing" + shut_up = TRUE + density = 1 + change_message = "The autolocker issues your equipment and you quickly get changed." + +/obj/machinery/megavendor/vendor/Crossed(O) + return + +/obj/machinery/megavendor/vendor/attack_hand(mob/user) + ..() + if(ishuman(user) && Adjacent(user)) + var/mob/living/carbon/human/H = user + if(!H.megavend) + playsound(src,'sound/effects/sparks4.ogg',50,1) + megavend(H) + else + to_chat(user, "\The [src]'s screen lights up a brief message: 'Equipment already claimed. Have a nice day!'") \ No newline at end of file diff --git a/code/modules/client/preferences_spawnpoints.dm b/code/modules/client/preferences_spawnpoints.dm index c2a23acc1de..1d680264d44 100644 --- a/code/modules/client/preferences_spawnpoints.dm +++ b/code/modules/client/preferences_spawnpoints.dm @@ -46,7 +46,7 @@ if(!C.occupant) C.set_occupant(victim, 1) victim.Sleeping(3) - to_chat(victim, SPAN_NOTICE("You are slowly waking up from the cryostasis aboard [current_map.full_name]. It might take a few seconds.")) + to_chat(victim, SPAN_NOTICE("You are slowly waking up from the cryostasis aboard [current_map.full_name]. It might take a few seconds.\nYour workplace attire is waiting for you at the nearest autodrobe vendor.")) return /datum/spawnpoint/cyborg diff --git a/html/changelogs/CryoChange.yml b/html/changelogs/CryoChange.yml new file mode 100644 index 00000000000..1f36364c3ee --- /dev/null +++ b/html/changelogs/CryoChange.yml @@ -0,0 +1,8 @@ +author: TheGreyWolf + +delete-after: True + +changes: + - rscadd: "Cryo latejoins have been changed to need to get their equipment from an AutoDrobe Vendor, much like when boarding the shuttle." + - maptweak: "AutoDrobe Vendors can be found within command cryo, main level cryo & surface cryo." + - bugfix: "Visitors who ready up at roundstart no longer get some of their equipment dupicated upon boarding the shuttle." diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index dbb0d7be5cd..d17b9ea4ce3 100644 Binary files a/icons/obj/stationobjs.dmi and b/icons/obj/stationobjs.dmi differ diff --git a/maps/aurora/aurora-4_mainlevel.dmm b/maps/aurora/aurora-4_mainlevel.dmm index 1b2399074f1..86a1eae5b20 100644 --- a/maps/aurora/aurora-4_mainlevel.dmm +++ b/maps/aurora/aurora-4_mainlevel.dmm @@ -31584,8 +31584,8 @@ /turf/simulated/floor/plating, /area/bridge) "bcG" = ( -/obj/structure/closet/secure_closet/personal/cabinet, /obj/machinery/firealarm/west, +/obj/machinery/megavendor/vendor, /turf/simulated/floor/carpet/blue, /area/crew_quarters/heads/cryo) "bcH" = ( @@ -71213,6 +71213,10 @@ /obj/machinery/appliance/cooker/stove, /turf/simulated/floor/tiled/white, /area/crew_quarters/kitchen) +"xUe" = ( +/obj/machinery/megavendor/vendor, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/sleep/main) "xVv" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 @@ -103405,7 +103409,7 @@ pju bDF bEG bFy -snu +xUe bBP bIo bJi diff --git a/maps/aurora/aurora-6_surface.dmm b/maps/aurora/aurora-6_surface.dmm index cb5cda89271..f5a56d4c650 100644 --- a/maps/aurora/aurora-6_surface.dmm +++ b/maps/aurora/aurora-6_surface.dmm @@ -9375,8 +9375,9 @@ /turf/simulated/floor/plating, /area/hallway/secondary/entry/emergency) "ipR" = ( -/obj/structure/closet/wardrobe/pjs, /obj/machinery/firealarm/north, +/obj/structure/closet/emcloset, +/obj/item/storage/toolbox/emergency, /turf/simulated/floor/tiled, /area/hallway/secondary/entry/central) "iqa" = ( @@ -20415,14 +20416,13 @@ dir = 4; icon_state = "tube1" }, -/obj/item/storage/toolbox/emergency, -/obj/structure/closet/emcloset, /obj/item/device/radio/intercom{ dir = 4; name = "Station Intercom (General)"; pixel_x = 27 }, /obj/effect/floor_decal/corner/grey/diagonal, +/obj/machinery/megavendor/vendor, /turf/simulated/floor/tiled/white, /area/crew_quarters/sleep/cryo) "seu" = (