mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-30 00:21:11 +01:00
Adds a new Odyssey map: Decrepit Shipyard (#21500)
## About PR Adds an industrial themed away site for Odyssey scenarios. The map starts with a shuttle, broken by a randomized destruction feature. Actors or the crew may choose to repair it to make it fly once more ### Detailed Changelog <details><summary>Details</summary> <p> - Added a new map_effect, randomized destruction. It comes with two varieties and different impact ranges. The way it work is the effect chooses a random amount of turfs in the area it's placed on, and calls `ex_act` on applicable contents in the turf. - Added unused sprites for low railing and documented relevant functions in the existing code. - Made it so when a railing has an open end that doesn't connect to anywhere, it'll apply an end cap, making it look more smooth. - Added ceiling lattices. - Adjusted unit tests to avoid conflicts that may occur with ceiling lattices. - Fixed a bug where the Odyssey subsystem repeatedly added lastly loaded z-level to the scenario z-levels, instead of all relevant levels to the site. This was causing issues in Odyssey maps with shuttles. - Fixed hydrogen tank not using its sprite. Also recoloured the tank to match modern hydrogen canister colour. - Fixed `/obj/machinery/door/airlock/maintenance` not using its intended appearance. </p> </details> ## Images <img width="4128" height="2528" alt="StrongDMM-2025-11-10 21 33 47" src="https://github.com/user-attachments/assets/09d8b671-457c-4ec5-88ac-e503641a0531" /> <img width="3424" height="2016" alt="StrongDMM-2025-11-10 21 34 27" src="https://github.com/user-attachments/assets/943b8529-7f2a-41db-a7be-e57d5d30ead7" /> <img width="1312" height="800" alt="StrongDMM-2025-11-10 21 34 52" src="https://github.com/user-attachments/assets/f665800a-367b-466e-a16e-a6f0b122e3bd" /> <img width="997" height="999" alt="Screenshot_54" src="https://github.com/user-attachments/assets/c06667c6-0dfc-4dc4-af67-821f36ad2933" /> <img width="997" height="1001" alt="Screenshot_55" src="https://github.com/user-attachments/assets/848a2847-9eb0-450a-87e9-08c371aaf78a" /> <img width="998" height="992" alt="Screenshot_61" src="https://github.com/user-attachments/assets/e6174cb5-d4d6-4afc-82ab-bbf412eda607" /> <img width="998" height="990" alt="Screenshot_63" src="https://github.com/user-attachments/assets/cc838bdc-9e22-4aed-ad16-0f8722442b8a" />
This commit is contained in:
@@ -64,6 +64,9 @@
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/structure/railing/mapped/no_density/low
|
||||
icon_state = "railing0-0"
|
||||
|
||||
/obj/structure/railing/New(var/newloc, var/material_key = DEFAULT_WALL_MATERIAL)
|
||||
material = material_key // Converted to datum in initialize().
|
||||
..(newloc)
|
||||
@@ -136,31 +139,31 @@
|
||||
|
||||
for(var/obj/structure/railing/R in get_turf(src))
|
||||
if((R.dir == Lturn) && R.anchored)
|
||||
neighbor_status |= 32
|
||||
neighbor_status |= 32 // neighbor is making a left turn on the same tile
|
||||
if(UpdateNeighbors)
|
||||
R.update_icon(0)
|
||||
if((R.dir == Rturn) && R.anchored)
|
||||
neighbor_status |= 2
|
||||
neighbor_status |= 2 // neighbor is making a right turn on the same tile
|
||||
if(UpdateNeighbors)
|
||||
R.update_icon(0)
|
||||
for(var/obj/structure/railing/R in get_step(src, Lturn))
|
||||
if((R.dir == src.dir) && R.anchored)
|
||||
neighbor_status |= 16
|
||||
neighbor_status |= 16 // neighbor is in our left, in the same line
|
||||
if(UpdateNeighbors)
|
||||
R.update_icon(0)
|
||||
for(var/obj/structure/railing/R in get_step(src, Rturn))
|
||||
if((R.dir == src.dir) && R.anchored)
|
||||
neighbor_status |= 1
|
||||
neighbor_status |= 1 // neighbor is in our right, in the same line
|
||||
if (UpdateNeighbors)
|
||||
R.update_icon(0)
|
||||
for(var/obj/structure/railing/R in get_step(src, (Lturn + src.dir)))
|
||||
if((R.dir == Rturn) && R.anchored)
|
||||
neighbor_status |= 64
|
||||
neighbor_status |= 64 // neighbor is in our diagonal left, making a longer turn
|
||||
if (UpdateNeighbors)
|
||||
R.update_icon(0)
|
||||
for(var/obj/structure/railing/R in get_step(src, (Rturn + src.dir)))
|
||||
if((R.dir == Lturn) && R.anchored)
|
||||
neighbor_status |= 4
|
||||
neighbor_status |= 4 // neighbor is in our diagonal right, making a longer turn
|
||||
if (UpdateNeighbors)
|
||||
R.update_icon(0)
|
||||
|
||||
@@ -177,8 +180,10 @@
|
||||
icon_state = "railing1-[density]"
|
||||
if(neighbor_status & 32)
|
||||
AddOverlays(image(icon, "corneroverlay[density]"))
|
||||
|
||||
if((neighbor_status & 16) || !(neighbor_status & 32) || (neighbor_status & 64))
|
||||
AddOverlays(image(icon, "frontoverlay_l[density]"))
|
||||
|
||||
if(!(neighbor_status & 2) || (neighbor_status & 1) || (neighbor_status & 4))
|
||||
AddOverlays(image(icon, "frontoverlay_r[density]"))
|
||||
if(neighbor_status & 4)
|
||||
@@ -195,6 +200,12 @@
|
||||
pix_offset_y = 32
|
||||
AddOverlays(image(icon, "mcorneroverlay[density]", pixel_x = pix_offset_x, pixel_y = pix_offset_y))
|
||||
|
||||
if(!(neighbor_status & 16) && !(neighbor_status & 64) && !(neighbor_status & 32)) // Left endcap, we have no connections in left
|
||||
AddOverlays(image(icon, "frontend_l[density]"))
|
||||
|
||||
if(!(neighbor_status & 1) && !(neighbor_status & 4) && !(neighbor_status & 2)) // Right endcap, we have no connections in right
|
||||
AddOverlays(image(icon, "frontend_r[density]"))
|
||||
|
||||
/obj/structure/railing/verb/flip() // This will help push railing to remote places, such as open space turfs
|
||||
set name = "Flip Railing"
|
||||
set category = "Object"
|
||||
|
||||
Reference in New Issue
Block a user