From a1e7dadf9654a25e235fd7e5eb2148339b311523 Mon Sep 17 00:00:00 2001 From: CHOMPStation2StaffMirrorBot <94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com> Date: Thu, 14 Aug 2025 06:45:32 -0700 Subject: [PATCH] [MIRROR] Adds a deluxe cabin shelter capsule (#11412) Co-authored-by: Jenny --- code/modules/economy/trader.dm | 1 + .../equipment_vendor.dm | 1 + .../ore_redemption_machine/survey_vendor.dm | 1 + code/modules/mining/shelter_atoms_vr.dm | 21 + code/modules/mining/shelters_vr.dm | 9 + .../submaps/shelters/shelter_luxury_cabin.dmm | 518 ++++++++++++++++++ 6 files changed, 551 insertions(+) create mode 100644 maps/submaps/shelters/shelter_luxury_cabin.dmm diff --git a/code/modules/economy/trader.dm b/code/modules/economy/trader.dm index 485ba91b3b..7d1aef7fc1 100644 --- a/code/modules/economy/trader.dm +++ b/code/modules/economy/trader.dm @@ -343,6 +343,7 @@ /obj/item/survivalcapsule = 25, /obj/item/survivalcapsule/luxury = 20, /obj/item/survivalcapsule/luxurybar = 15, + /obj/item/survivalcapsule/luxurycabin = 15, /obj/item/survivalcapsule/popcabin = 20, /obj/item/perfect_tele/frontier/unknown/one = 1 ) diff --git a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm index aa68cbc690..7edc59fc63 100644 --- a/code/modules/mining/ore_redemption_machine/equipment_vendor.dm +++ b/code/modules/mining/ore_redemption_machine/equipment_vendor.dm @@ -140,6 +140,7 @@ EQUIPMENT("Laser Pointer", /obj/item/laser_pointer, 900), EQUIPMENT("Luxury Shelter Capsule", /obj/item/survivalcapsule/luxury, 3100), EQUIPMENT("Bar Shelter Capsule", /obj/item/survivalcapsule/luxurybar, 10000), + EQUIPMENT("Deluxe Cabin Shelter Capsule",/obj/item/survivalcapsule/luxurycabin, 10000), EQUIPMENT("Plush Toy", /obj/random/plushie, 300), EQUIPMENT("Soap", /obj/item/soap/nanotrasen, 200), EQUIPMENT("Thalers - 100", /obj/item/spacecash/c100, 1000), diff --git a/code/modules/mining/ore_redemption_machine/survey_vendor.dm b/code/modules/mining/ore_redemption_machine/survey_vendor.dm index 6ef131b795..0c3edee37b 100644 --- a/code/modules/mining/ore_redemption_machine/survey_vendor.dm +++ b/code/modules/mining/ore_redemption_machine/survey_vendor.dm @@ -95,6 +95,7 @@ EQUIPMENT("Laser Pointer", /obj/item/laser_pointer, 90), EQUIPMENT("Luxury Shelter Capsule", /obj/item/survivalcapsule/luxury, 310), EQUIPMENT("Bar Shelter Capsule", /obj/item/survivalcapsule/luxurybar, 1000), + EQUIPMENT("Deluxe Cabin Shelter Capsule", /obj/item/survivalcapsule/luxurycabin, 1000), EQUIPMENT("Plush Toy", /obj/random/plushie, 30), EQUIPMENT("Soap", /obj/item/soap/nanotrasen, 20), EQUIPMENT("Thalers - 100", /obj/item/spacecash/c100, 100), diff --git a/code/modules/mining/shelter_atoms_vr.dm b/code/modules/mining/shelter_atoms_vr.dm index e63f58ef99..8af03e77f1 100644 --- a/code/modules/mining/shelter_atoms_vr.dm +++ b/code/modules/mining/shelter_atoms_vr.dm @@ -113,6 +113,11 @@ GLOBAL_LIST_EMPTY(unique_deployable) desc = "A luxury bar in a capsule. " + JOB_BARTENDER + " required and not included. There's a license for use printed on the bottom." template_id = "shelter_gamma" +/obj/item/survivalcapsule/luxurycabin + name = "luxury surfluid cabin capsule" + desc = "A luxury cabin and kitchen in a capsule. There's a license for use printed on the bottom." + template_id = "shelter_cab_deluxe" + /obj/item/survivalcapsule/military name = "military surfluid shelter capsule" desc = "A prefabricated firebase in a capsule. Contains basic weapons, building materials, and combat suits. There's a license for use printed on the bottom." @@ -161,6 +166,9 @@ GLOBAL_LIST_EMPTY(unique_deployable) name = "survival airlock" block_air_zones = 1 +/obj/machinery/door/airlock/voidcraft/survival_pod/vertical + icon = 'icons/obj/doors/shuttledoors_vertical.dmi' + //Door access setter button /obj/machinery/button/remote/airlock/survival_pod name = "shelter privacy control" @@ -178,6 +186,19 @@ GLOBAL_LIST_EMPTY(unique_deployable) door.glass = !door.glass door.opacity = !door.opacity +//Subtype that actually bolts doors! +/obj/machinery/button/remote/airlock/survival_pod/bolts + name = "shelter privacy control" + desc = "You can ensure some privacy with this." + +/obj/machinery/button/remote/airlock/survival_pod/bolts/attack_hand(obj/item/W, mob/user as mob) + if(..()) return 1 //1 is failure on machines (for whatever reason) + if(door) + if(door.locked) + door.unlock() + else + door.lock() + //Windows /obj/structure/window/reinforced/survival_pod name = "pod window" diff --git a/code/modules/mining/shelters_vr.dm b/code/modules/mining/shelters_vr.dm index 626a86506f..ae710cd4d3 100644 --- a/code/modules/mining/shelters_vr.dm +++ b/code/modules/mining/shelters_vr.dm @@ -102,6 +102,15 @@ description = "A small cabin; turned into a shelter capsule. Includes dorm amenities, and a nice dinner." mappath = "maps/submaps/shelters/shelter_cab.dmm" +/datum/map_template/shelter/cabin_deluxe + name = "Shelter Deluxe Cabin" + shelter_id = "shelter_cab_deluxe" + description = "A glamorously furnished cabin packed away in your pocket. \ + Includes a private dormitory, bathroom, dining room, and a very \ + compactly designed kitchen. Designed for a comfortable extended \ + stay in isolated wilderness survival scenarios." + mappath = "maps/submaps/shelters/shelter_luxury_cabin.dmm" + /datum/map_template/shelter/phi name = "Shelter Phi" shelter_id = "shelter_phi" diff --git a/maps/submaps/shelters/shelter_luxury_cabin.dmm b/maps/submaps/shelters/shelter_luxury_cabin.dmm new file mode 100644 index 0000000000..f46d763fa8 --- /dev/null +++ b/maps/submaps/shelters/shelter_luxury_cabin.dmm @@ -0,0 +1,518 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ao" = ( +/obj/machinery/door/window/survival_pod{ + dir = 2 + }, +/obj/effect/floor_decal/spline/plain, +/turf/simulated/floor/tiled/eris/cafe, +/area/survivalpod) +"aD" = ( +/turf/simulated/shuttle/wall/voidcraft/survival/hard_corner, +/area/survivalpod) +"aE" = ( +/obj/structure/table/gamblingtable, +/obj/item/reagent_containers/food/condiment/small/peppermill{ + pixel_x = -4; + pixel_y = 12 + }, +/obj/item/reagent_containers/food/condiment/small/saltshaker{ + pixel_x = 4; + pixel_y = 12 + }, +/obj/item/toy/plushie/kitten, +/turf/simulated/floor/carpet/bcarpet, +/area/survivalpod) +"dm" = ( +/obj/structure/table/woodentable, +/obj/item/flame/candle{ + pixel_x = 6 + }, +/obj/item/flame/lighter/random{ + pixel_x = -4; + pixel_y = 4 + }, +/turf/simulated/floor/carpet/bcarpet, +/area/survivalpod) +"dp" = ( +/obj/machinery/door/airlock/voidcraft/survival_pod, +/obj/structure/fans/tiny, +/obj/effect/floor_decal/industrial/danger/full, +/turf/simulated/shuttle/floor/voidcraft/dark, +/area/survivalpod) +"fz" = ( +/obj/structure/bed/chair/comfy/black{ + dir = 4 + }, +/turf/simulated/floor/carpet/bcarpet, +/area/survivalpod) +"gf" = ( +/obj/structure/table/reinforced, +/obj/effect/floor_decal/spline/plain, +/obj/item/storage/firstaid/regular, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/eris/cafe, +/area/survivalpod) +"gE" = ( +/obj/machinery/shower{ + pixel_y = 13 + }, +/obj/item/soap/deluxe, +/obj/structure/curtain/open/shower, +/turf/simulated/shuttle/floor/voidcraft/light, +/area/survivalpod) +"kS" = ( +/obj/machinery/button/remote/airlock/survival_pod/bolts{ + pixel_x = -11; + pixel_y = 24; + dir = 8 + }, +/turf/simulated/shuttle/floor/voidcraft/light, +/area/survivalpod) +"la" = ( +/turf/simulated/shuttle/floor/voidcraft/dark, +/area/survivalpod) +"oQ" = ( +/obj/machinery/appliance/cooker/oven, +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 9 + }, +/turf/simulated/floor/tiled/eris/cafe, +/area/survivalpod) +"ph" = ( +/obj/machinery/microwave{ + pixel_y = 6 + }, +/obj/structure/table/reinforced, +/turf/simulated/floor/tiled/eris/cafe, +/area/survivalpod) +"pM" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/tiled/eris/cafe, +/area/survivalpod) +"ry" = ( +/obj/structure/sink{ + pixel_y = 20; + pixel_x = -6 + }, +/obj/structure/mirror{ + pixel_y = 38; + pixel_x = -6 + }, +/obj/machinery/door/window/survival_pod{ + icon_state = "windoor" + }, +/turf/simulated/shuttle/floor/voidcraft/light, +/area/survivalpod) +"tj" = ( +/turf/simulated/shuttle/wall/voidcraft, +/area/survivalpod) +"tY" = ( +/obj/machinery/light, +/turf/simulated/floor/carpet/bcarpet, +/area/survivalpod) +"ua" = ( +/obj/machinery/vending/dinnerware{ + dir = 4 + }, +/turf/simulated/floor/tiled/eris/cafe, +/area/survivalpod) +"vp" = ( +/obj/structure/bed/chair/comfy/black{ + dir = 8 + }, +/turf/simulated/floor/carpet/bcarpet, +/area/survivalpod) +"vq" = ( +/obj/structure/table/reinforced, +/obj/effect/floor_decal/spline/plain, +/obj/item/book/manual/cook_guide, +/obj/item/book/manual/chef_recipes{ + pixel_x = -14 + }, +/turf/simulated/floor/tiled/eris/cafe, +/area/survivalpod) +"vP" = ( +/obj/machinery/recharge_station, +/turf/simulated/floor/carpet/bcarpet, +/area/survivalpod) +"wB" = ( +/obj/structure/fans, +/turf/simulated/floor/carpet/bcarpet, +/area/survivalpod) +"wT" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/shuttle/floor/voidcraft/dark, +/area/survivalpod) +"yc" = ( +/obj/structure/sign/mining/survival{ + dir = 1 + }, +/turf/simulated/shuttle/wall/voidcraft/survival, +/area/survivalpod) +"yF" = ( +/obj/machinery/media/jukebox, +/turf/simulated/floor/carpet/bcarpet, +/area/survivalpod) +"zQ" = ( +/turf/simulated/floor/tiled/eris/cafe, +/area/survivalpod) +"zW" = ( +/obj/structure/sign/mining/survival, +/turf/simulated/shuttle/wall/voidcraft/survival, +/area/survivalpod) +"Am" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/holoplant, +/turf/simulated/floor/carpet/bcarpet, +/area/survivalpod) +"AS" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/structure/window/reinforced/survival_pod{ + dir = 1; + layer = 2.6 + }, +/turf/simulated/shuttle/floor/voidcraft/light, +/area/survivalpod) +"BN" = ( +/obj/machinery/door/airlock/voidcraft/survival_pod/vertical, +/obj/structure/fans/tiny, +/obj/effect/floor_decal/industrial/danger/full, +/turf/simulated/shuttle/floor/voidcraft/dark, +/area/survivalpod) +"CN" = ( +/obj/structure/bed/double/padded, +/obj/item/bedsheet/browndouble, +/turf/simulated/floor/carpet/bcarpet, +/area/survivalpod) +"DF" = ( +/obj/structure/table/reinforced, +/obj/item/material/kitchen/rollingpin{ + pixel_y = 3; + pixel_x = -3 + }, +/obj/item/reagent_containers/dropper{ + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/reagent_containers/food/condiment/enzyme{ + layer = 5; + pixel_x = 7; + pixel_y = 1 + }, +/obj/item/material/knife/butch, +/turf/simulated/floor/tiled/eris/cafe, +/area/survivalpod) +"Eb" = ( +/obj/structure/table/reinforced, +/obj/machinery/reagentgrinder{ + pixel_y = 9 + }, +/turf/simulated/floor/tiled/eris/cafe, +/area/survivalpod) +"EB" = ( +/obj/structure/sign/mining/survival{ + dir = 4 + }, +/turf/simulated/shuttle/wall/voidcraft/survival, +/area/survivalpod) +"Fd" = ( +/obj/machinery/door/airlock/voidcraft/survival_pod, +/obj/structure/fans/tiny, +/obj/effect/floor_decal/industrial/danger/full, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/simulated/shuttle/floor/voidcraft/dark, +/area/survivalpod) +"Ft" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 8 + }, +/obj/structure/window/reinforced/survival_pod{ + dir = 4 + }, +/obj/structure/window/reinforced/survival_pod{ + dir = 1 + }, +/obj/structure/window/reinforced/survival_pod, +/obj/structure/grille, +/turf/simulated/shuttle/floor/voidcraft/dark, +/area/survivalpod) +"Gh" = ( +/obj/machinery/vending/fitness{ + dir = 8 + }, +/turf/simulated/floor/carpet/bcarpet, +/area/survivalpod) +"Go" = ( +/obj/machinery/washing_machine, +/turf/simulated/shuttle/floor/voidcraft/light, +/area/survivalpod) +"Gv" = ( +/obj/random/vendorall{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/carpet/bcarpet, +/area/survivalpod) +"Hl" = ( +/obj/effect/floor_decal/spline/plain{ + dir = 4 + }, +/obj/machinery/button/remote/airlock/survival_pod/bolts{ + pixel_x = -11; + pixel_y = 24; + dir = 8 + }, +/turf/simulated/shuttle/floor/voidcraft/dark, +/area/survivalpod) +"Jj" = ( +/turf/simulated/shuttle/wall/voidcraft/survival, +/area/survivalpod) +"LC" = ( +/obj/structure/sink/kitchen{ + dir = 8; + pixel_x = -13 + }, +/turf/simulated/floor/tiled/eris/cafe, +/area/survivalpod) +"MO" = ( +/obj/structure/table/gamblingtable, +/obj/item/reagent_containers/food/condiment/small/peppermill{ + pixel_x = -4; + pixel_y = 12 + }, +/obj/item/reagent_containers/food/condiment/small/saltshaker{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/simulated/floor/carpet/bcarpet, +/area/survivalpod) +"OH" = ( +/obj/structure/bed/chair/comfy/black{ + dir = 4 + }, +/obj/effect/floor_decal/spline/plain{ + dir = 4 + }, +/turf/simulated/shuttle/floor/voidcraft/dark, +/area/survivalpod) +"OU" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/carpet/bcarpet, +/area/survivalpod) +"Pb" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/condiment/carton/flour, +/obj/item/reagent_containers/food/condiment/carton/flour, +/obj/item/reagent_containers/food/condiment/carton/flour, +/obj/item/reagent_containers/food/condiment/carton/flour, +/obj/item/reagent_containers/food/condiment/carton/flour, +/obj/item/reagent_containers/food/condiment/carton/flour, +/obj/item/reagent_containers/food/condiment/carton/flour, +/obj/item/reagent_containers/food/condiment/carton/flour, +/obj/item/reagent_containers/food/condiment/spacespice, +/obj/item/reagent_containers/food/condiment/spacespice, +/obj/item/reagent_containers/food/condiment/carton/sugar, +/obj/item/reagent_containers/food/condiment/carton/sugar, +/obj/item/reagent_containers/food/condiment/small/saltshaker, +/obj/item/reagent_containers/food/condiment/small/saltshaker, +/obj/item/reagent_containers/food/condiment/small/peppermill, +/obj/item/reagent_containers/food/condiment/small/peppermill, +/obj/random/donkpocketbox, +/obj/structure/closet/walllocker_double/kitchen/north, +/turf/simulated/floor/tiled/eris/cafe, +/area/survivalpod) +"PY" = ( +/turf/simulated/floor/carpet/bcarpet, +/area/survivalpod) +"QJ" = ( +/obj/structure/sign/mining/survival{ + dir = 8 + }, +/turf/simulated/shuttle/wall/voidcraft/survival, +/area/survivalpod) +"Sh" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 5; + layer = 2.6 + }, +/obj/machinery/light, +/turf/simulated/shuttle/floor/voidcraft/light, +/area/survivalpod) +"XZ" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/simulated/floor/tiled/eris/cafe, +/area/survivalpod) +"Zb" = ( +/obj/item/stool/padded{ + dir = 1 + }, +/turf/simulated/floor/carpet/bcarpet, +/area/survivalpod) +"ZO" = ( +/obj/machinery/appliance/cooker/grill, +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 10 + }, +/turf/simulated/floor/tiled/eris/cafe, +/area/survivalpod) + +(1,1,1) = {" +Jj +QJ +Jj +QJ +Jj +QJ +Jj +Ft +BN +QJ +Jj +"} +(2,1,1) = {" +yc +Eb +DF +ph +ua +LC +gf +Zb +PY +Am +zW +"} +(3,1,1) = {" +Jj +Pb +zQ +zQ +zQ +zQ +vq +Zb +PY +fz +Ft +"} +(4,1,1) = {" +yc +XZ +pM +oQ +ZO +zQ +ao +PY +PY +MO +zW +"} +(5,1,1) = {" +Jj +tj +tj +tj +tj +tj +aD +PY +PY +vp +Ft +"} +(6,1,1) = {" +Fd +wT +la +la +la +wT +dp +PY +PY +PY +dp +"} +(7,1,1) = {" +Jj +BN +tj +tj +BN +tj +tj +OU +PY +fz +Jj +"} +(8,1,1) = {" +yc +kS +Go +tj +Hl +OH +tj +yF +PY +aE +zW +"} +(9,1,1) = {" +Jj +ry +Sh +tj +PY +tY +tj +vP +PY +vp +Ft +"} +(10,1,1) = {" +yc +gE +AS +tj +CN +dm +tj +wB +Gh +Gv +zW +"} +(11,1,1) = {" +Jj +EB +Jj +EB +Jj +EB +Jj +EB +Ft +EB +Jj +"}