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
@@ -53,7 +53,7 @@ GLOBAL_LIST_INIT(tape_roll_applications, list())
/obj/item/tape/police
name = "police tape"
desc = "A length of police tape. Do not cross."
req_one_access = list(ACCESS_SECURITY, ACCESS_KONYANG_POLICE) // Any role that is considered 'police' and gets this item should also have it's access added to this variable. If this list gets too long we may need to make subtypes.
req_one_access = list(ACCESS_SECURITY, ACCESS_PORTOFCALL_POLICE) // Any role that is considered 'police' and gets this item should also have it's access added to this variable. If this list gets too long we may need to make subtypes.
icon_base = "police"
/obj/item/taperoll/medical
+1 -1
View File
@@ -241,7 +241,7 @@
/obj/item/clothing/under/syndicate/tacticool = 7,
/obj/item/toy/sword = 22,
/obj/item/gun/projectile/revolver/capgun = 11,
/obj/item/gun/bang = 22,
/obj/item/gun/bang/deagle = 22,
/obj/item/toy/crossbow = 11,
/obj/random/action_figure = 11,
/obj/item/toy/cultsword = 7,
+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,