Mining Outpost Overhaul: Island Living Edition (#67796)

Replaced the old mining outpost with a new base consisting of separate buildings on islands in the middle of lava. Added a few new areas and decorations to fill out the outpost. Changed the underfloor accessibility of lava so cables and pipes don't mysteriously disappear as they cross catwalks over lava.

The current mining station is fairly boring and dated. In addition, the general layout of the outpost was bland and uninspired, about as exciting as any other hallway. This replacement offers a new and unique take with an interesting layout and new dangers to be aware of.

The bridges between buildings are exposed to the weather, meaning you could find yourself forced to choose between waiting out a storm in an isolated building with a potentially unfriendly roommate, or running through the storm to get back to a shuttle.

Power and communications are also more vulnerable in the new base, placed in a building on the mainland where ne'er-do-wells could gain access unnoticed and sabotage them, making the mining outpost less of a safe space with little risk of anything going seriously wrong. You don't get access to these just for having mining access, better call the relevant portion of engineering to help you.

Gulag prisoners also get a few new options to keep security on their toes, with a few different options for escape routes that encourage the warden to keep an eye on their charges instead of ignoring the gulag while waiting for the prisoners to do their sentences or kill themselves.
This commit is contained in:
Thunder12345
2022-07-12 14:34:31 -06:00
committed by GitHub
parent daebed6e43
commit 86eddc3554
11 changed files with 19343 additions and 15397 deletions
File diff suppressed because it is too large Load Diff
+17
View File
@@ -389,3 +389,20 @@ Turf and target are separate in case you want to teleport some distance from a t
if(rail.dir == test_dir || is_fulltile)
return FALSE
return TRUE
/**
* Checks whether or not a particular typepath or subtype of it is present on a turf
*
* Returns TRUE if an instance of the desired type or a subtype of it is found
* Returns FALSE if the type is not found, or if no turf is supplied
*
* Arguments:
* * location - The turf to be checked for the desired type
* * type_to_find - The typepath whose presence you are checking for
*/
/proc/is_type_on_turf(turf/location, type_to_find)
if(!location)
return FALSE
if(locate(type_to_find) in location)
return TRUE
return FALSE
+62 -4
View File
@@ -44,7 +44,11 @@
icon_state = "mining_lobby"
/area/mine/storage
name = "Mining Station Storage"
name = "Mining Station Production Storage"
icon_state = "mining_storage"
/area/mine/storage/public
name = "Mining Station Public Storage"
icon_state = "mining_storage"
/area/mine/production
@@ -67,32 +71,86 @@
icon_state = "mining_eva"
/area/mine/maintenance
name = "Mining Station Maintenance"
/area/mine/maintenance/production
name = "Mining Station Production Maintenance"
/area/mine/maintenance/living
name = "Mining Station Living Quarters Maintenance"
/area/mine/maintenance/living/north
name = "Mining Station Living Quarters North Maintenance"
/area/mine/maintenance/living/south
name = "Mining Station Living Quarters South Maintenance"
/area/mine/maintenance/public
name = "Mining Station Public Maintenance"
/area/mine/maintenance/public/north
name = "Mining Station Public North Maintenance"
/area/mine/maintenance/public/south
name = "Mining Station Public South Maintenance"
/area/mine/maintenance/service
name = "Mining Station Service Maintenance"
/area/mine/maintenance/service/disposals
name = "Mining Station Disposals"
/area/mine/maintenance/service/comms
name = "Mining Station Communications"
/area/mine/maintenance/labor
name = "Labor Camp Maintenance"
/area/mine/cafeteria
name = "Mining Station Cafeteria"
icon_state = "mining_cafe"
/area/mine/cafeteria/labor
name = "Labor Camp Cafeteria"
icon_state = "mining_labor_cafe"
/area/mine/hydroponics
name = "Mining Station Hydroponics"
icon_state = "mining_labor_hydro"
icon_state = "mining_hydro"
/area/mine/sleeper
name = "Mining Station Emergency Sleeper"
/area/mine/medical
name = "Mining Station Emergency Medbay"
/area/mine/mechbay
name = "Mining Station Mech Bay"
icon_state = "mechbay"
/area/mine/lounge
name = "Mining Station Public Lounge"
icon_state = "mining_lounge"
/area/mine/laborcamp
name = "Labor Camp"
icon_state = "mining_labor"
/area/mine/laborcamp/quarters
name = "Labor Camp Quarters"
icon_state = "mining_labor_quarters"
/area/mine/laborcamp/production
name = "Labor Camp Production"
icon_state = "mining_labor_production"
/area/mine/laborcamp/security
name = "Labor Camp Security"
icon_state = "labor_camp_security"
ambience_index = AMBIENCE_DANGER
/area/mine/laborcamp/security/maintenance
name = "Labor Camp Security Maintenance"
icon_state = "labor_camp_security"
ambience_index = AMBIENCE_DANGER
@@ -2,6 +2,14 @@
name = "sandy floor"
icon_state = "sandyfloor"
/obj/effect/turf_decal/sand/volcanic
name = "ashy floor"
icon_state = "ashyfloor"
/obj/effect/turf_decal/sand/plating
name = "sandy plating"
icon_state = "sandyplating"
/obj/effect/turf_decal/sand/plating/volcanic
name = "ashy plating"
icon_state = "ashyplating"
+8
View File
@@ -96,6 +96,14 @@
C.deconstruct()
..()
/obj/structure/lattice/catwalk/mining
name = "reinforced catwalk"
desc = "A heavily reinforced catwalk used to build bridges in hostile environments. It doesn't look like anything could make this budge."
resistance_flags = INDESTRUCTIBLE
/obj/structure/lattice/catwalk/mining/deconstruction_hints(mob/user)
return
/obj/structure/lattice/lava
name = "heatproof support lattice"
desc = "A specialized support beam for building across lava. Watch your step."
@@ -73,3 +73,24 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/directions/vault, 32)
icon_state = "direction_upload"
MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/directions/upload, 32)
/obj/structure/sign/directions/dorms
name = "dormitories sign"
desc = "A direction sign, pointing out which way the dormitories are."
icon_state = "direction_dorms"
MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/directions/dorms, 32)
/obj/structure/sign/directions/lavaland
name = "lava sign"
desc = "A direction sign, pointing out which way the hot stuff is."
icon_state = "direction_lavaland"
MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/directions/lavaland, 32)
/obj/structure/sign/directions/arrival
name = "arrivals sign"
desc = "A direction sign, pointing out which way the arrivals shuttle dock is."
icon_state = "direction_arrival"
MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/directions/arrival, 32)
+1
View File
@@ -251,6 +251,7 @@
smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER
smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_LAVA)
canSmoothWith = list(SMOOTH_GROUP_FLOOR_LAVA)
underfloor_accessibility = 2 //This avoids strangeness when routing pipes / wires along catwalks over lava
/turf/open/lava/smooth/lava_land_surface
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
+1 -1
View File
@@ -27,7 +27,7 @@
add_movespeed_modifier((m_intent == MOVE_INTENT_WALK)? /datum/movespeed_modifier/config_walk_run/walk : /datum/movespeed_modifier/config_walk_run/run)
/mob/living/proc/update_turf_movespeed(turf/open/T)
if(isopenturf(T))
if(isopenturf(T) && !is_type_on_turf(T, /obj/structure/lattice/catwalk))
if(T.slowdown != current_turf_slowdown)
add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/turf_slowdown, multiplicative_slowdown = T.slowdown)
current_turf_slowdown = T.slowdown
Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 89 KiB