Assunzione & Port Volturno (#22258)

Contains assets, code, maps, etc. for Assunzione and Port Volturno. This
is something like v0.9 for live unit testing, etc. Do not merge yet.

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/structure/urban/arches.dmi |
[Fyni](https://github.com/Fyniiy) | CC-BY-SA |
| icons/obj/structure/urban/assunzione_neon.dmi |
[Fyni](https://github.com/Fyniiy) | CC-BY-SA |
| icons/obj/structure/urban/assunzione_signs.dmi (stafylia_sign) |
[Fyni](https://github.com/Fyniiy) | CC-BY-SA |
| icons/obj/structure/urban/billboard.dmi (sign_assunzione1 & 2) |
[Fyni](https://github.com/Fyniiy) | CC-BY-SA |
| icons/obj/structure/urban/poles.dmi (radial_floodlight) |
[Fyni](https://github.com/Fyniiy) | CC-BY-SA |
| icons/obj/structure/urban/restaurant.dmi (menu_gyro) |
[Fyni](https://github.com/Fyniiy) | CC-BY-SA |
| icons/obj/structure/urban/statues.dmi (aec_small) |
[Fyni](https://github.com/Fyniiy) | CC-BY-SA |
| icons/obj/pottedplants_big.dmi (luce-vine-plant) |
[Fyni](https://github.com/Fyniiy) | CC-BY-SA |
| icons/obj/pottedplants_small.dmi (luce-vine-plant) |
[Fyni](https://github.com/Fyniiy) | CC-BY-SA |
| icons/obj/structure/urban/billboard.dmi (sign_assunzione3) | Minzeyes
| CC-BY-SA |
| icons/obj/structure/urban/assunzione_96x110.dmi | Minzeyes | CC-BY-SA
|
| icons/turf/smooth/composite_brick.dmi |
[nauticall](https://github.com/nauticall) | CC-BY-SA |

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: Kano <89972582+kano-dot@users.noreply.github.com>
This commit is contained in:
Batrachophreno
2026-04-19 19:50:20 +00:00
committed by GitHub
co-authored by Kano
parent 08ee5c3f71
commit aaea5d8a57
82 changed files with 164304 additions and 79 deletions
+38 -10
View File
@@ -14,6 +14,8 @@ GLOBAL_LIST_EMPTY(marketsign_overlay_cache)
var/currently_on = FALSE
var/on_icon_state
var/off_icon_state = "off"
/// Whether or not the sign settings can be modified.
var/sign_change_allowed = TRUE
/// Local reference of the global list associated with this object's singletons.
var/list/target_cache = list()
@@ -47,6 +49,9 @@ GLOBAL_LIST_EMPTY(marketsign_overlay_cache)
/obj/structure/sign/double/barsign/attackby(obj/item/attacking_item, mob/user)
if(cult)
return ..()
if(!sign_change_allowed)
balloon_alert("access denied")
return
var/obj/item/card/id/card = attacking_item.GetID()
if(istype(card))
if(!check_access(card))
@@ -83,6 +88,21 @@ GLOBAL_LIST_EMPTY(marketsign_overlay_cache)
. = TRUE
/obj/structure/sign/double/barsign/AltClick(mob/user) // Alt-click a sign with an empty hand to power or depower it, if it has the associated "[name]-off" state in the .dmi file.
if(!on_icon_state)
to_chat(user, SPAN_WARNING("The sign is already off!"))
return
if(!currently_on)
currently_on = TRUE
icon_state = on_icon_state
return
icon_state = off_icon_state
currently_on = FALSE
/obj/structure/sign/double/barsign/proc/get_sign_choices()
var/list/sign_choices = GET_SINGLETON_SUBTYPE_MAP(choice_types)
return sign_choices
/obj/structure/sign/double/barsign/proc/set_sign(choice)
var/singleton/sign/double/chosen_singleton = text2path(choice)
@@ -94,16 +114,6 @@ GLOBAL_LIST_EMPTY(marketsign_overlay_cache)
on_icon_state = icon_state
update_icon()
/obj/structure/sign/double/barsign/AltClick(mob/user) // Alt-click a sign with an empty hand to power or depower it, if it has the associated "[name]-off" state in the .dmi file.
if(!on_icon_state)
to_chat(user, SPAN_WARNING("The sign is already off!"))
return
if(!currently_on)
currently_on = TRUE
icon_state = on_icon_state
return
icon_state = off_icon_state
currently_on = FALSE
// ---- Kitchen sign
@@ -134,6 +144,24 @@ GLOBAL_LIST_EMPTY(marketsign_overlay_cache)
/obj/structure/sign/double/barsign/marketsign/mirrored // Visible from the other end of the sign.
pixel_x = -32
/// Static signs can be toggled on and off, but have no alternative icons to set. Used for mapping.
/obj/structure/sign/double/barsign/marketsign/staticsign
sign_change_allowed = FALSE
/obj/structure/sign/double/barsign/marketsign/staticsign/quikstop
/obj/structure/sign/double/barsign/marketsign/staticsign/quikstop/Initialize()
..()
var/singleton/sign/double/market/signselect = /singleton/sign/double/market/quikstop
name = signselect.name
desc = signselect.desc
desc_extended = signselect.desc_extended
icon_state = signselect.icon_state
currently_on = TRUE
on_icon_state = icon_state
update_icon()
return INITIALIZE_HINT_NORMAL
/singleton/sign/double
var/name = "Holographic Projector"
var/icon_state = "off"
@@ -2058,6 +2058,17 @@
/obj/structure/sign/flag/assunzione/large/west/Initialize(mapload)
. = ..(mapload, WEST)
/obj/item/flag/luceist/l
name = "large Luceian flag"
flag_size = TRUE
flag_structure = /obj/structure/sign/flag/luceist/large
/obj/structure/sign/flag/luceist/large
icon_state = "luceist_l"
flag_path = "luceist"
flag_size = TRUE
flag_item = /obj/item/flag/luceist/l
// Port Antillia
/obj/item/flag/portantillia
@@ -19,6 +19,7 @@
/turf/unsimulated/wall/steel, // Centcomm wall.
/turf/unsimulated/wall/darkshuttlewall, // Centcomm wall.
/turf/unsimulated/wall/riveted, // Centcomm wall.
/turf/unsimulated/wall/fakepdoor,
/obj/structure/window_frame,
/obj/structure/window_frame/unanchored,
/obj/structure/window_frame/empty,
+1
View File
@@ -56,6 +56,7 @@
/turf/unsimulated/wall/steel,
/turf/unsimulated/wall/darkshuttlewall,
/turf/unsimulated/wall/riveted,
/turf/unsimulated/wall/fakepdoor,
/obj/structure/window_frame,
/obj/structure/window_frame/unanchored,
/obj/structure/window_frame/empty,
@@ -53,6 +53,11 @@
icon = 'icons/obj/structure/urban/poles.dmi'
icon_state = "street"
/obj/structure/utility_pole/street_aszn
desc = "A tall light source. This one seems to be off."
icon = 'icons/obj/structure/urban/poles.dmi'
icon_state = "street_aszn"
/obj/effect/overlay/street_light
icon = 'icons/obj/structure/urban/poles.dmi'
icon_state = "street_light"
@@ -62,6 +67,14 @@
icon_state = "classic_lamp_light"
density = 1
/obj/effect/overlay/street_light/classic/alt
icon_state = "classic_lamp_light_alt"
/obj/effect/overlay/street_aszn_light
icon = 'icons/obj/structure/urban/poles.dmi'
icon_state = "street_aszn_light"
plane = ABOVE_LIGHTING_PLANE
/obj/structure/utility_pole/street/on
desc = "A tall light source. This one shines brightly."
light_color = "#e8ffeb"
@@ -74,6 +87,35 @@
AddOverlays(/obj/effect/overlay/street_light)
return
/obj/structure/utility_pole/street_aszn/on
desc = "A tall light source. This one shines painfully brightly in all directions."
light_color = LIGHT_COLOR_PALE_PURPLE
light_range = 12
light_power = 2.0
/obj/structure/utility_pole/street_aszn/on/Initialize(mapload)
. = ..()
ClearOverlays()
AddOverlays(/obj/effect/overlay/street_aszn_light)
return
/obj/effect/overlay/floodlight
icon = 'icons/obj/structure/urban/poles.dmi'
icon_state = "radial_floodlight-light"
plane = ABOVE_LIGHTING_PLANE
/obj/structure/utility_pole/floodlight
desc = "Most people probably wouldn't go this far to light up public spaces; this fixture shines painfully brightly in all directions."
light_color = LIGHT_COLOR_PALE_PURPLE
light_range = 8
light_power = 1.9
/obj/structure/utility_pole/floodlight/on/Initialize(mapload)
. = ..()
ClearOverlays()
AddOverlays(/obj/effect/overlay/floodlight)
return
/obj/structure/utility_pole/street/classic
icon_state = "classic_lamp"
@@ -89,6 +131,21 @@
AddOverlays(/obj/effect/overlay/street_light/classic)
return
/obj/structure/utility_pole/street/classic/alt
icon_state = "classic_lamp"
/obj/structure/utility_pole/street/classic/alt/on
desc = "A tall light source. This one shines brightly."
light_color = LIGHT_COLOR_PALE_PURPLE
light_range = 8
light_power = 2.4
/obj/structure/utility_pole/street/classic/alt/on/Initialize(mapload)
. = ..()
ClearOverlays()
AddOverlays(/obj/effect/overlay/street_light/classic/alt)
return
/obj/effect/overlay/street_light/crosswalk
icon_state = "crosswalk_go"
@@ -207,6 +207,24 @@
/obj/structure/bed/stool/chair/sofa/corner/convex/violet/New(var/newloc)
..(newloc, MATERIAL_STEEL, MATERIAL_CLOTH, COLOR_VIOLET)
/obj/structure/bed/stool/chair/sofa/bench
name = "bench"
desc = "A long, simple bench with a backboard, commonly found in subways, spaceports, and so on. Not known for being particularly comfortable."
icon_state = "pewmiddle"
base_icon = "pewmiddle"
build_amt = 3
/obj/structure/bed/stool/chair/sofa/bench/New(var/newloc)
..(newloc, MATERIAL_STEEL)
/obj/structure/bed/stool/chair/sofa/bench/left
icon_state = "pewend_left"
base_icon = "pewend_left"
/obj/structure/bed/stool/chair/sofa/bench/right
icon_state = "pewend_right"
base_icon = "pewend_right"
/obj/structure/bed/stool/chair/sofa/pew
name = "pew"
desc = "A long, simple bench with a backboard, commonly found in places of worship, courtrooms and so on. Not known for being particularly comfortable."
+245 -3
View File
@@ -285,6 +285,31 @@ ABSTRACT_TYPE(/obj/structure/stairs/urban/road_ramp)
dir = SOUTH
bound_height = 64
ABSTRACT_TYPE(/obj/structure/stairs/urban/road_ramp_assun)
icon = 'icons/obj/structure/urban/ledges_assun.dmi'
name = "inclined asphalt ramp"
desc = "A solid asphalt ramp to allow your vehicle to traverse inclines with ease."
icon_state = "road-ramp-center"
layer = 2.02
/obj/structure/stairs/urban/road_ramp_assun/right
dir = EAST
bound_width = 64
bound_x = -32
/obj/structure/stairs/urban/road_ramp_assun/left
dir = WEST
bound_width = 64
/obj/structure/stairs/urban/road_ramp_assun/north
dir = NORTH
bound_height = 64
bound_y = -32
/obj/structure/stairs/urban/road_ramp_assun/south
dir = SOUTH
bound_height = 64
/obj/structure/closet/crate/bin/urban
name = "tall garbage can"
desc = "Garbage day!"
@@ -407,6 +432,65 @@ ABSTRACT_TYPE(/obj/structure/stairs/urban/road_ramp)
anchored = TRUE
layer = ABOVE_HUMAN_LAYER
/obj/structure/neon_sign/assunzione/music_shop
name = "\improper PV AV"
desc = "The PV AV (Port Volturno Audio / Visual), a trendy hang-out spot for the music-conscious. Local radio DJ, Livia Sabatino, is said to be a regular."
icon = 'icons/obj/structure/urban/assunzione_neon.dmi'
icon_state = "PV_AV"
layer = 5.16 // in the biz, we call this the above above ABOVE human layer
/obj/structure/neon_sign/assunzione/music_shop/Initialize()
. = ..()
AddComponent(/datum/component/large_transparency)
/obj/structure/neon_sign/assunzione/liquor_shop
name = "\improper Assunzione Duty-Free Libations"
desc = "Spaceports are fine places to make a tidy profit selling alcohol. Don't drink and pilot."
icon = 'icons/obj/structure/urban/assunzione_neon.dmi'
icon_state = "duty_free"
layer = 5.16 // in the biz, we call this the above above ABOVE human layer
/obj/structure/neon_sign/assunzione/repair_shop
name = "\improper Sybdari Electromechanics"
desc = "A hybrid mechanics' bay and electronics shop that will fix just anything, from mopeds to laptops. Though not built for serious IPC work, they can help out in a pinch. A subsidiary of Iraklio Shipworks, as it happens."
icon = 'icons/obj/structure/urban/assunzione_neon.dmi'
icon_state = "repair_shop_r"
layer = 5.16 // in the biz, we call this the above above ABOVE human layer
/obj/structure/neon_sign/assunzione/hotel
name = "\improper H O T E L sign"
desc = "A design five-hundred years old and still seen all across human space."
icon = 'icons/obj/structure/urban/assunzione_neon.dmi'
icon_state = "hotel"
/obj/structure/neon_sign/assunzione/chapel
name = "\improper Saint Alvisiol Chapel"
desc = "A local chapel consecrated by the Luceist Church, dedicated to spreading the Light of Ennoia."
icon = 'icons/obj/structure/urban/assunzione_neon.dmi'
icon_state = "assunzione"
/obj/structure/neon_sign/assunzione/witch_hand
name = "\improper WITCH HAND"
desc = "A massive neon sign for Port Volturno's best underground nightclub. Not for the pious, and <i>especially</i> not for the photosensitive. Like, seriously. They make you sign a waiver."
icon = 'icons/obj/structure/urban/assunzione_96x160.dmi'
icon_state = "wh_sign"
layer = 5.16 // in the biz, we call this the above above ABOVE human layer
pixel_x = -32
pixel_y = -32
light_range = 3.8
light_power = 0.5
light_color = LIGHT_COLOR_VIOLET
/obj/structure/neon_sign/assunzione/witch_hand/Initialize()
. = ..()
AddComponent(/datum/component/large_transparency)
AddOverlays(emissive_appearance(icon, "[icon_state]-em", src, alpha = src.alpha))
set_light_range_power_color(light_range, light_power, light_color)
set_light_on(TRUE)
bound_width = 96
bound_height = 96
return INITIALIZE_HINT_NORMAL
/obj/structure/shipping_container_old
name = "freight container"
desc = "A hulking industrial shipping container, bound for who knows where."
@@ -627,7 +711,6 @@ ABSTRACT_TYPE(/obj/structure/stairs/urban/road_ramp)
density = TRUE
anchored = TRUE
/obj/structure/statue/buddha
name = "buddha statue"
desc = "A bronze statue of the Amitabha Buddha, the Buddha of Limitless Light."
@@ -638,6 +721,38 @@ ABSTRACT_TYPE(/obj/structure/stairs/urban/road_ramp)
desc = "A set of armor modelled after historical designs. Pieces replicating ancient artifacts are common on Konyang and viewed as favored pieces of art."
icon_state = "gusoku"
/obj/structure/statue/aec/small
name = "\improper AEC memorial statue"
desc = "A bronze statue of the Amitabha Buddha, the Buddha of Limitless Light."
icon_state = "aec_small"
/obj/structure/statue/aec/large
name = "\improper AEC memorial statue"
desc = "A towering memorial to all the fatalities incurred over the AEC's operations. Beneath the towering ranger in bronze, a plaque reads:<br>\
<b>FOR ALL HEROES FALLEN;</b><br>\
<b>INTREPID AND PIOUS,</b><br>\
<b>IN THAT HOLIEST OF MISSIONS:</b><br>\
<b>THE SEARCH OF LIGHT IN DARKNESS.</b><br>\
The list of names below is terribly long, the font so small as to be barely readable at all."
icon = 'icons/obj/structure/urban/assunzione_96x160.dmi'
icon_state = "aec_large"
layer = 5.16 // in the biz, we call this the above above ABOVE human layer
pixel_x = -32
pixel_y = -32
light_range = 3.8
light_power = 0.7
light_color = LIGHT_COLOR_VIOLET
/obj/structure/statue/aec/large/Initialize()
. = ..()
AddComponent(/datum/component/large_transparency)
AddOverlays(emissive_appearance(icon, "[icon_state]-em", src, alpha = src.alpha))
set_light_range_power_color(light_range, light_power, light_color)
set_light_on(TRUE)
bound_width = 32
bound_height = 64
return INITIALIZE_HINT_NORMAL
/obj/structure/sign/urban
name = "exit sign"
desc = "A sign indicating where you should probably go in a hurry."
@@ -653,16 +768,58 @@ ABSTRACT_TYPE(/obj/structure/stairs/urban/road_ramp)
density = TRUE
layer = ABOVE_HUMAN_LAYER
/obj/structure/sign/billboard/Initialize()
. = ..()
AddComponent(/datum/component/large_transparency)
/obj/structure/sign/billboard/nolegs
name = "commercial billboard"
desc = "A large billboard rented out for advertisement space."
icon = 'icons/obj/structure/urban/billboard.dmi'
icon_state = "board_nolegs-l"
density = TRUE
layer = ABOVE_HUMAN_LAYER
/obj/structure/sign/billboard/advert
name = "billboard advertisement"
desc = null
icon_state = "sign"
density = TRUE
/**
* Billboard adverts have icon_states named for whether they're generic or location-specific. These variable records the # of a given type for the purpose of populating appropriate adverts.
* When new adverts are added to a pool, or a new pool is added, the XYZ_adverts variables should be updated so that billboards at a given location populate their adverts randomly.
*/
var/list/advert_pool = list()
var/generic_adverts = 8
var/konyang_adverts = 11
var/assunzione_adverts = 3
/obj/structure/sign/billboard/advert/random/Initialize(mapload)
/obj/structure/sign/billboard/advert/random/generic/Initialize(mapload)
. = ..()
ClearOverlays()
icon_state = "sign[rand(1, 14)]"
for(var/x = 1 to generic_adverts)
advert_pool += "sign_generic[x]"
icon_state = pick(advert_pool)
return
/obj/structure/sign/billboard/advert/random/konyang/Initialize(mapload)
. = ..()
ClearOverlays()
for(var/x = 1 to generic_adverts)
advert_pool += "sign_generic[x]"
for(var/y = 1 to konyang_adverts)
advert_pool += "sign_konyang[y]"
icon_state = pick(advert_pool)
return
/obj/structure/sign/billboard/advert/random/assunzione/Initialize(mapload)
. = ..()
ClearOverlays()
for(var/x = 1 to generic_adverts)
advert_pool += "sign_generic[x]"
for(var/y = 1 to assunzione_adverts)
advert_pool += "sign_assunzione[y]"
icon_state = pick(advert_pool)
return
/obj/structure/sign/urban/drive_thru
@@ -691,14 +848,21 @@ ABSTRACT_TYPE(/obj/structure/stairs/urban/road_ramp)
light_color = LIGHT_COLOR_CYAN
light_range = 1.8
var/menu_text = ""
/// Whether or not the menu text can be updated.
var/static_menu = FALSE
/obj/structure/restaurant_menu/attack_hand(mob/user)
if(static_menu)
to_chat(user, SPAN_WARNING("This menu sign's text is not configurable."))
var/new_text = sanitize(input(user, "Enter new text for the hologram to display.", "Hologram Display", html2pencode(menu_text, TRUE)) as null|message)
if(!isnull(new_text))
menu_text = pencode2html(new_text)
update_icon()
/obj/structure/restaurant_menu/attackby(obj/item/attacking_item, mob/user)
if(static_menu)
to_chat(user, SPAN_WARNING("This menu sign's text is not configurable."))
return ..()
if(istype(attacking_item, /obj/item/paper))
var/obj/item/paper/P = attacking_item
to_chat(user, SPAN_NOTICE("You scan \the [attacking_item.name] into \the [name]."))
@@ -709,6 +873,30 @@ ABSTRACT_TYPE(/obj/structure/stairs/urban/road_ramp)
return TRUE
return ..()
/obj/structure/restaurant_menu/stafylia
name = "\improper Stafýlia menu"
icon_state = "menu_gyro"
desc = "Welcome to Stafýlia! The real taste of Assunzione!\
<br><br>\
<br><b>Mains</b>\
<br>Signature Stafýlia Gyro - 6电\
<br>Doner Kebab - 6电\
<br>Falafel Pita - 6电\
<br><br>\
<br><b>Sides</b>\
<br>Salad - 3电\
<br>Fries - 3电\
<br>Chocolate Pita - 4电\
<br><br>\
<br><b>Drinks</b>\
<br>Drosiá Grape - 2电\
<br>Drosiá Cherry - 2电\
<br>Comet Cola - 2电\
<br>Xanu Rush - 2电\
<br><br>\
<br>Get the Stafýlia meal combo! Your choice of main, side and drink for only 9.50电!"
static_menu = TRUE
/obj/structure/sign/urban/konyang
name = "convenience store sign"
desc = "A sign labeling the structure as a 24-7 MINI MART. Convenient!"
@@ -740,6 +928,22 @@ ABSTRACT_TYPE(/obj/structure/stairs/urban/road_ramp)
desc = "A sign labeling the structure as a Konyang health and supply pharmacy."
icon_state = "pharmacy_sign"
/obj/structure/sign/urban/assunzione
name = "convenience store sign"
desc = "A sign labeling the structure as a 24-7 MINI MART. Convenient!"
icon = 'icons/obj/structure/urban/assunzione_signs.dmi'
icon_state = "shop_sign"
/obj/structure/sign/urban/assunzione/police
name = "police station sign"
desc = "A sign labeling the structure as an Volturno Spaceport security facility; while the spaceport is administered by the government of Triesto, internal security is Zeng-Hu corporate."
icon_state = "police_sign"
/obj/structure/sign/urban/assunzione/pharmacy
name = "pharmacy & clinic sign"
desc = "A sign labeling the structure as a Zeng-Hu pharmaceutical distributor and medical clinic."
icon_state = "pharmacy_sign"
/obj/structure/window/urban
icon = 'icons/obj/structure/urban/windows_tall.dmi'
icon_state = "wood"
@@ -909,6 +1113,7 @@ ABSTRACT_TYPE(/obj/structure/stairs/urban/road_ramp)
balloon_alert_to_viewers("*unlocks*")
to_chat(user, SPAN_NOTICE("You unlock \the [src]."))
playsound(src.loc, hatch_open_sound, 40, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE)
open()
//Save the list of accesses and empty them up
@@ -927,6 +1132,7 @@ ABSTRACT_TYPE(/obj/structure/stairs/urban/road_ramp)
balloon_alert_to_viewers("*locks*")
to_chat(user, SPAN_NOTICE("You lock \the [src]."))
playsound(src.loc, hatch_close_sound, 30, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE)
close()
//Readd the list of accesses, and empty up the previous access lists
@@ -1006,3 +1212,39 @@ ABSTRACT_TYPE(/obj/structure/stairs/urban/road_ramp)
/obj/item/key/door_key/GetAccess()
return access_list
// Overhead structural arches. Cool as hell.
ABSTRACT_TYPE(/obj/structure/arch)
icon = 'icons/obj/structure/urban/arches.dmi'
icon_state = "gothic_arch_single"
layer = ABOVE_ABOVE_HUMAN_LAYER
name = "arch"
anchored = TRUE
/obj/structure/arch/Initialize()
. = ..()
AddComponent(/datum/component/large_transparency, 0, 0, 0, 0)
// East/west arch pieces
/obj/structure/arch/gothic/eastwest/_single
dir = 4
/obj/structure/arch/gothic/eastwest/left
icon_state = "gothic_arch_end"
dir = 4
/obj/structure/arch/gothic/eastwest/middle
icon_state = "gothic_arch_middle"
dir = 4
/obj/structure/arch/gothic/eastwest/right
icon_state = "gothic_arch_end"
dir = 8
// North/south arch pieces
/obj/structure/arch/gothic/northsouth/_single
/obj/structure/arch/gothic/northsouth/upper
icon_state = "gothic_arch_end"
/obj/structure/arch/gothic/northsouth/center
icon_state = "gothic_arch_middle"
/obj/structure/arch/gothic/northsouth/lower
icon_state = "gothic_arch_end"
dir = 1
+1
View File
@@ -618,6 +618,7 @@
/turf/unsimulated/wall/steel,
/turf/unsimulated/wall/darkshuttlewall,
/turf/unsimulated/wall/riveted,
/turf/unsimulated/wall/fakepdoor,
/obj/structure/window_frame,
/obj/structure/window_frame/unanchored,
/obj/structure/window_frame/empty,