diff --git a/code/__defines/misc_vr.dm b/code/__defines/misc_vr.dm index bf6cb4d150a..71589e80c13 100644 --- a/code/__defines/misc_vr.dm +++ b/code/__defines/misc_vr.dm @@ -48,6 +48,7 @@ #define SHELTER_DEPLOY_BAD_TURFS "bad turfs" #define SHELTER_DEPLOY_BAD_AREA "bad area" #define SHELTER_DEPLOY_ANCHORED_OBJECTS "anchored objects" +#define SHELTER_DEPLOY_SHIP_SPACE "ship not in space" #define PTO_SECURITY "Security" #define PTO_MEDICAL "Medical" diff --git a/code/modules/mining/shelter_atoms_vr.dm b/code/modules/mining/shelter_atoms_vr.dm index c44ca2ed97a..fd380e513e6 100644 --- a/code/modules/mining/shelter_atoms_vr.dm +++ b/code/modules/mining/shelter_atoms_vr.dm @@ -17,6 +17,7 @@ GLOBAL_LIST_EMPTY(unique_deployable) var/template_id = "shelter_alpha" var/datum/map_template/shelter/template var/used = FALSE + var/is_ship = FALSE var/unique_id = null /obj/item/device/survivalcapsule/proc/get_template() @@ -47,7 +48,7 @@ GLOBAL_LIST_EMPTY(unique_deployable) sleep(5 SECONDS) var/turf/deploy_location = get_turf(src) - var/status = template.check_deploy(deploy_location) + var/status = template.check_deploy(deploy_location, is_ship) var/turf/above_location = GetAbove(deploy_location) switch(status) @@ -61,6 +62,9 @@ GLOBAL_LIST_EMPTY(unique_deployable) var/height = template.height src.loc.visible_message("\The [src] doesn't have room to deploy! You need to clear a [width]x[height] area!") + if(SHELTER_DEPLOY_SHIP_SPACE) + src.loc.visible_message("\The [src] can only be deployed in space.") + if(status != SHELTER_DEPLOY_ALLOWED) used = FALSE return @@ -109,12 +113,14 @@ GLOBAL_LIST_EMPTY(unique_deployable) desc = "A prefabricated escape pod in a capsule. Contains a basic escape pod for survival purposes. There's a license for use printed on the bottom." template_id = "shelter_epsilon" unique_id = "shelter_5" + is_ship = TRUE /obj/item/device/survivalcapsule/dropship name = "dropship surfluid shelter capsule" desc = "A military dropship in a capsule. Contains everything an assault squad would need, minus the squad itself. This capsule is significantly larger than most. There's a license for use printed on the bottom." template_id = "shelter_zeta" unique_id = "shelter_6" + is_ship = TRUE w_class = ITEMSIZE_SMALL //Custom Shelter Capsules diff --git a/code/modules/mining/shelters_vr.dm b/code/modules/mining/shelters_vr.dm index 837ebb1bec3..e9839cafe7f 100644 --- a/code/modules/mining/shelters_vr.dm +++ b/code/modules/mining/shelters_vr.dm @@ -11,7 +11,7 @@ banned_areas = typecacheof(/area/shuttle) banned_objects = list() -/datum/map_template/shelter/proc/check_deploy(turf/deploy_location) +/datum/map_template/shelter/proc/check_deploy(turf/deploy_location, var/is_ship) var/affected = get_affected_turfs(deploy_location, centered=TRUE) for(var/turf/T in affected) var/area/A = get_area(T) @@ -21,6 +21,9 @@ var/banned = is_type_in_typecache(T, blacklisted_turfs) if(banned || T.density) return SHELTER_DEPLOY_BAD_TURFS + //Ships can only deploy in space (bacause their base turf is always turf/space) + if(is_ship && !is_type_in_typecache(T, typecacheof(/turf/space))) + return SHELTER_DEPLOY_SHIP_SPACE for(var/obj/O in T) if((O.density && O.anchored) || is_type_in_typecache(O, banned_objects)) diff --git a/maps/tether/submaps/om_ships/shelter_5.dmm b/maps/tether/submaps/om_ships/shelter_5.dmm index ef509d04d9c..3a3ef78f86c 100644 --- a/maps/tether/submaps/om_ships/shelter_5.dmm +++ b/maps/tether/submaps/om_ships/shelter_5.dmm @@ -192,6 +192,7 @@ /obj/effect/floor_decal/techfloor{ dir = 10 }, +/obj/machinery/recharger, /turf/simulated/floor/tiled/techfloor/grid, /area/shuttle/deployable/escapepod) "r" = (