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>
@@ -2636,6 +2636,7 @@
|
||||
#include "code\modules\mapping\planet_types\jungle.dm"
|
||||
#include "code\modules\mapping\planet_types\lava.dm"
|
||||
#include "code\modules\mapping\planet_types\snow.dm"
|
||||
#include "code\modules\mapping\planet_types\lore\assunzione.dm"
|
||||
#include "code\modules\mapping\planet_types\lore\burzsia.dm"
|
||||
#include "code\modules\mapping\planet_types\lore\konyang.dm"
|
||||
#include "code\modules\mapping\planet_types\lore\srandmarr.dm"
|
||||
@@ -3293,6 +3294,7 @@
|
||||
#include "code\modules\overmap\exoplanets\decor\flora\_rock.dm"
|
||||
#include "code\modules\overmap\exoplanets\decor\flora\_tree.dm"
|
||||
#include "code\modules\overmap\exoplanets\decor\flora\adhomai.dm"
|
||||
#include "code\modules\overmap\exoplanets\decor\flora\assunzione.dm"
|
||||
#include "code\modules\overmap\exoplanets\decor\flora\crystal.dm"
|
||||
#include "code\modules\overmap\exoplanets\decor\flora\desert.dm"
|
||||
#include "code\modules\overmap\exoplanets\decor\flora\generic_flora.dm"
|
||||
@@ -3308,6 +3310,7 @@
|
||||
#include "code\modules\overmap\exoplanets\decor\objs\pit.dm"
|
||||
#include "code\modules\overmap\exoplanets\decor\turfs\abyss.dm"
|
||||
#include "code\modules\overmap\exoplanets\decor\turfs\asphalt.dm"
|
||||
#include "code\modules\overmap\exoplanets\decor\turfs\assunzione.dm"
|
||||
#include "code\modules\overmap\exoplanets\decor\turfs\barren.dm"
|
||||
#include "code\modules\overmap\exoplanets\decor\turfs\carpet.dm"
|
||||
#include "code\modules\overmap\exoplanets\decor\turfs\ceiling.dm"
|
||||
@@ -4072,6 +4075,10 @@
|
||||
#include "maps\away\away_site\abandoned_propellant_depot\abandoned_propellant_depot_.dm"
|
||||
#include "maps\away\away_site\abandoned_propellant_depot\abandoned_propellant_depot_areas.dm"
|
||||
#include "maps\away\away_site\abandoned_propellant_depot\abandoned_propellant_depot_landmarks.dm"
|
||||
#include "maps\away\away_site\assunzione\port_volturno\port_volturno.dm"
|
||||
#include "maps\away\away_site\assunzione\port_volturno\port_volturno_areas.dm"
|
||||
#include "maps\away\away_site\assunzione\port_volturno\port_volturno_ghostroles.dm"
|
||||
#include "maps\away\away_site\assunzione\port_volturno\port_volturno_landmarks.dm"
|
||||
#include "maps\away\away_site\big_derelict\bigderelict.dm"
|
||||
#include "maps\away\away_site\blueriver\blueriver.dm"
|
||||
#include "maps\away\away_site\blueriver\blueriver_areas.dm"
|
||||
|
||||
@@ -695,14 +695,14 @@
|
||||
access_type = ACCESS_TYPE_CENTCOM
|
||||
desc = "Golden Deep"
|
||||
|
||||
#define ACCESS_KONYANG_POLICE 218
|
||||
/datum/access/konyang_police
|
||||
id = ACCESS_KONYANG_POLICE
|
||||
#define ACCESS_PORTOFCALL_POLICE 218
|
||||
/datum/access/portofcall_police
|
||||
id = ACCESS_PORTOFCALL_POLICE
|
||||
access_type = ACCESS_TYPE_CENTCOM
|
||||
|
||||
#define ACCESS_KONYANG_VENDORS 219
|
||||
/datum/access/konyang_vendors
|
||||
id = ACCESS_KONYANG_VENDORS
|
||||
#define ACCESS_PORTOFCALL_VENDORS 219
|
||||
/datum/access/portofcall_vendors
|
||||
id = ACCESS_PORTOFCALL_VENDORS
|
||||
access_type = ACCESS_TYPE_CENTCOM
|
||||
|
||||
#define ACCESS_IDRIS 220
|
||||
@@ -733,9 +733,9 @@
|
||||
id = ACCESS_GADPATHUR_NAVY_OFFICER
|
||||
access_type = ACCESS_TYPE_CENTCOM
|
||||
|
||||
#define ACCESS_KONYANG_CORPORATE 225
|
||||
/datum/access/konyang_corporate
|
||||
id = ACCESS_KONYANG_CORPORATE
|
||||
#define ACCESS_PORTOFCALL_CORPORATE 225
|
||||
/datum/access/portofcall_corporate
|
||||
id = ACCESS_PORTOFCALL_CORPORATE
|
||||
access_type = ACCESS_TYPE_CENTCOM
|
||||
|
||||
#define ACCESS_HOUSE_VOLVALAAD_SHIP 226
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
#define LIGHT_COLOR_ORANGE "#FA9632"
|
||||
/// Soft purple. rgb(169, 127, 170)
|
||||
#define LIGHT_COLOR_PURPLE "#A97FAA"
|
||||
/// Softer purple. Assunzione lighting. rgb(240,200,240)
|
||||
#define LIGHT_COLOR_PALE_PURPLE "#F0C8F0"
|
||||
/// Deep purple. rgb(180, 60, 184)
|
||||
#define LIGHT_COLOR_VIOLET "#B43CB8"
|
||||
/// Light red. rgb(232, 86, 86)
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
/* Aurora Snowflake */
|
||||
#define ZTRAIT_OVERMAP "Overmap"
|
||||
#define ZTRAIT_EXPLANET "Exoplanet"
|
||||
#define ZTRAIT_PORTOFCALL "Port of Call"
|
||||
|
||||
|
||||
// Whether this z level is linked up/down. Bool.
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#define MATERIAL_BRONZE "bronze"
|
||||
#define MATERIAL_OSMIUM "osmium"
|
||||
#define MATERIAL_MARBLE "marble"
|
||||
#define MATERIAL_BRICK "brick"
|
||||
#define MATERIAL_CULT "cult"
|
||||
#define MATERIAL_CULT_REINFORCED "cult_reinforced"
|
||||
#define MATERIAL_TITANIUM "titanium"
|
||||
|
||||
@@ -27,7 +27,8 @@
|
||||
#define SECTOR_XANU "Xanu" // Xanu Prime is here
|
||||
#define SECTOR_BURZSIA "Burzsia" //Burzsia I and II are here
|
||||
#define SECTOR_HANEUNIM "Haneunim" //Haneunim and its gravity well, Konyang is found here
|
||||
#define ALL_COALITION_SECTORS list(SECTOR_COALITION, SECTOR_XANU, SECTOR_WEEPING_STARS, SECTOR_ARUSHA, SECTOR_LIBERTYS_CRADLE, SECTOR_BURZSIA, SECTOR_HANEUNIM, SECTOR_LIGHTS_EDGE)
|
||||
#define SECTOR_AL_MAQDISI "Al-Maqdisi" //Assunzione is here
|
||||
#define ALL_COALITION_SECTORS list(SECTOR_COALITION, SECTOR_XANU, SECTOR_WEEPING_STARS, SECTOR_ARUSHA, SECTOR_LIBERTYS_CRADLE, SECTOR_BURZSIA, SECTOR_HANEUNIM, SECTOR_LIGHTS_EDGE, SECTOR_AL_MAQDISI)
|
||||
|
||||
//Light's edge, which should have unique properties all around
|
||||
#define SECTOR_LIGHTS_EDGE "Light's Edge" //For the area of Light's Edge that is somewhat inhabited. NOTE- this also lives in ALL_COALITION_SECTORS, per lore.
|
||||
@@ -56,7 +57,7 @@
|
||||
#define ALL_DANGEROUS_SECTORS list(SECTOR_BADLANDS, ALL_VOID_SECTORS, ALL_CRESCENT_EXPANSE_SECTORS, ALL_UNCHARTED_SECTORS)
|
||||
|
||||
/// all non-generic, named and specific sectors, where generic planets or the like should not spawn
|
||||
#define ALL_SPECIFIC_SECTORS list(SECTOR_TAU_CETI, SECTOR_SRANDMARR, SECTOR_HANEUNIM, SECTOR_BURZSIA, SECTOR_UUEOAESA, SECTOR_TABITI, SECTOR_AEMAQ, SECTOR_NRRAHRAHUL, SECTOR_GAKAL)
|
||||
#define ALL_SPECIFIC_SECTORS list(SECTOR_TAU_CETI, SECTOR_SRANDMARR, SECTOR_HANEUNIM, SECTOR_BURZSIA, SECTOR_UUEOAESA, SECTOR_TABITI, SECTOR_AEMAQ, SECTOR_NRRAHRAHUL, SECTOR_GAKAL, SECTOR_AL_MAQDISI)
|
||||
|
||||
/// Everything!
|
||||
#define ALL_POSSIBLE_SECTORS list(ALL_TAU_CETI_SECTORS, ALL_BADLAND_SECTORS, ALL_COALITION_SECTORS, ALL_VOID_SECTORS, ALL_GENERIC_SECTORS, ALL_CORPORATE_SECTORS, ALL_CRESCENT_EXPANSE_SECTORS)
|
||||
|
||||
@@ -21,6 +21,8 @@ GLOBAL_VAR(station_level_z_scratch)
|
||||
: GLOB.station_levels_cache[GLOB.station_level_z_scratch] \
|
||||
)
|
||||
|
||||
#define is_portofcall_level(z) SSmapping.level_trait(z, ZTRAIT_PORTOFCALL)
|
||||
|
||||
#define is_mining_level(z) SSmapping.level_trait(z, ZTRAIT_MINING)
|
||||
|
||||
#define is_reserved_level(z) SSmapping.level_trait(z, ZTRAIT_RESERVED)
|
||||
|
||||
@@ -6,21 +6,24 @@ SUBSYSTEM_DEF(atlas)
|
||||
init_order = INIT_ORDER_MAPPING
|
||||
init_stage = INITSTAGE_EARLY
|
||||
|
||||
// Whatever map is currently loaded. Null until SSatlas Initialize() starts.
|
||||
/// Whatever map is currently loaded. Null until SSatlas Initialize() starts.
|
||||
var/datum/map/current_map
|
||||
|
||||
var/list/known_maps = list()
|
||||
var/dmm_suite/maploader
|
||||
|
||||
var/list/mapload_callbacks = list()
|
||||
var/map_override // If set, SSatlas will forcibly load this map. If the map does not exist, mapload will fail and SSatlas will panic.
|
||||
/// If set, SSatlas will forcibly load this map. If the map does not exist, mapload will fail and SSatlas will panic.
|
||||
var/map_override
|
||||
var/list/spawn_locations = list()
|
||||
|
||||
var/datum/space_sector/current_sector
|
||||
var/list/possible_sectors = list()
|
||||
|
||||
//Note that the dirs here are REVERSE because they're used for entry points, so it'd be the dir facing starboard for example.
|
||||
//These are strings because otherwise the list indexes would be out of bounds. Thanks BYOND.
|
||||
/**
|
||||
* Note that the dirs here are REVERSE because they're used for entry points, so it'd be the dir facing starboard for example.
|
||||
* These are strings because otherwise the list indexes would be out of bounds. Thanks BYOND.
|
||||
*/
|
||||
var/list/naval_to_dir = list(
|
||||
"1" = list(
|
||||
"starboard" = WEST,
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
)
|
||||
|
||||
/obj/outfit/admin/ert/konyang/get_id_access()
|
||||
return list(ACCESS_DISTRESS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_COALITION, ACCESS_COALITION_NAVY, ACCESS_KONYANG_POLICE)
|
||||
return list(ACCESS_DISTRESS, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_COALITION, ACCESS_COALITION_NAVY, ACCESS_PORTOFCALL_POLICE)
|
||||
|
||||
/obj/outfit/admin/ert/konyang/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
/obj/item/clothing/mask/gas/monkeymask = TRADER_THIS_TYPE,
|
||||
/obj/item/clothing/suit/monkeysuit = TRADER_THIS_TYPE,
|
||||
/obj/item/clothing/mask/luchador = TRADER_ALL,
|
||||
/obj/item/gun/bang = TRADER_SUBTYPES_ONLY
|
||||
/obj/item/gun/bang/deagle = TRADER_SUBTYPES_ONLY
|
||||
)
|
||||
species_bias = list(
|
||||
ALL_DIONA_SPECIES = TRADER_BIAS_DISCOUNT
|
||||
|
||||
@@ -199,11 +199,17 @@
|
||||
var/allow_occupant_types = list(/mob/living/carbon/human)
|
||||
var/disallow_occupant_types = list()
|
||||
|
||||
var/mob/occupant // Person waiting to be despawned.
|
||||
var/time_till_despawn = 1200 // Two minute safe period before being despawned.
|
||||
var/time_till_force_cryo = 3000 // Five minutes safe period until they're despawned even if active.
|
||||
var/time_entered = 0 // Used to keep track of the safe period.
|
||||
/// Person waiting to be despawned.
|
||||
var/mob/occupant
|
||||
/// Two minute safe period before being despawned.
|
||||
var/time_till_despawn = 1200
|
||||
/// Five minutes safe period until they're despawned even if active.
|
||||
var/time_till_force_cryo = 3000
|
||||
/// Used to keep track of the safe period.
|
||||
var/time_entered = 0
|
||||
var/obj/item/radio/intercom/announce
|
||||
/// If this cryopod/lift should ALWAYS announce that a person is departing the map. Primarily used in ports of call for flavorful custom text.
|
||||
var/force_announce = FALSE
|
||||
|
||||
var/obj/machinery/computer/cryopod/control_computer
|
||||
|
||||
@@ -379,7 +385,7 @@
|
||||
else
|
||||
W.forceMove(T)
|
||||
|
||||
if(is_station_level(z))
|
||||
if(force_announce || is_station_level(z))
|
||||
GLOB.global_announcer.autosay("[occupant.real_name], [occupant.mind.role_alt_title], [on_store_message] [on_store_location].", "[on_store_name]")
|
||||
visible_message(SPAN_NOTICE("\The [src] hums and hisses as it moves [occupant] to [on_store_location]."))
|
||||
playsound(loc, on_store_sound, 25)
|
||||
|
||||
@@ -244,7 +244,7 @@
|
||||
|
||||
/obj/machinery/suit_cycler/offship/konyang
|
||||
model_text = "Konyang Aerospace Force"
|
||||
req_access = list(ACCESS_KONYANG_POLICE)
|
||||
req_access = list(ACCESS_PORTOFCALL_POLICE)
|
||||
departments = list("Konyang")
|
||||
species = list(BODYTYPE_HUMAN, BODYTYPE_IPC)
|
||||
suit = /obj/item/clothing/suit/space/void/sol/konyang
|
||||
|
||||
@@ -120,8 +120,10 @@
|
||||
var/list/key_data_sports = list()
|
||||
|
||||
/obj/machinery/vending/rental_bikes/build_products()
|
||||
products[/obj/item/key/bike/moped] = length(key_data_mopeds)
|
||||
products[/obj/item/key/bike/sport] = length(key_data_sports)
|
||||
if(length(key_data_mopeds))
|
||||
products[/obj/item/key/bike/moped] = length(key_data_mopeds)
|
||||
if(length(key_data_sports))
|
||||
products[/obj/item/key/bike/sport] = length(key_data_sports)
|
||||
|
||||
/obj/machinery/vending/rental_bikes/vended_product_post(var/obj/vended)
|
||||
var/obj/item/key/key = vended
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -110,6 +110,11 @@
|
||||
/turf/simulated/floor/grass/no_edge
|
||||
has_edge_icon = FALSE
|
||||
|
||||
/turf/simulated/floor/grass1/no_edge
|
||||
icon = 'icons/turf/flooring/grass2.dmi'
|
||||
icon_state = "grass10"
|
||||
has_edge_icon = FALSE
|
||||
|
||||
/turf/simulated/floor/diona
|
||||
name = "biomass flooring"
|
||||
icon = 'icons/turf/flooring/diona.dmi'
|
||||
|
||||
@@ -84,9 +84,15 @@
|
||||
desc = "A short ledge that an adult-sized Human wouldn't have much trouble traversing. At best, an oversized step."
|
||||
icon_state = "quarter-height"
|
||||
|
||||
/obj/structure/ledge/quarter/above_decals
|
||||
layer = ABOVE_TILE_LAYER // Forgive me.
|
||||
|
||||
/obj/structure/ledge/quarter/corner
|
||||
icon_state = "quarter-corner"
|
||||
|
||||
/obj/structure/ledge/quarter/corner/above_decals
|
||||
layer = ABOVE_TILE_LAYER // Forgive me.
|
||||
|
||||
/obj/structure/ledge/roof
|
||||
name = "roof ledge"
|
||||
desc = "A basic roofing ledge to mark the edge of a rooftop. Don't trip!"
|
||||
@@ -132,3 +138,50 @@
|
||||
broken_overlay = "tiled"
|
||||
burned_overlay = "tiled"
|
||||
initial_flooring = /singleton/flooring/concrete/square
|
||||
|
||||
// Assunzione variants.
|
||||
|
||||
/turf/simulated/floor/asphalt/assunzione
|
||||
name = "asphalt"
|
||||
desc = "Once-hot asphalt."
|
||||
icon = 'icons/turf/flooring/urban_turfs_assun.dmi'
|
||||
icon_state = "asphalt0"
|
||||
|
||||
/turf/simulated/floor/sidewalk/assunzione
|
||||
name = "weathered tiling"
|
||||
desc = "Great for speeding on."
|
||||
icon = 'icons/turf/flooring/urban_turfs_assun.dmi'
|
||||
icon_state = "sidewalk-tile"
|
||||
|
||||
/turf/simulated/floor/sidewalk/assunzione/detail
|
||||
icon_state = "sidewalk-tile-detail"
|
||||
|
||||
/turf/simulated/floor/sidewalk/assunzione/paved
|
||||
name = "paved tiles"
|
||||
icon_state = "brick-paver"
|
||||
|
||||
/turf/simulated/floor/sidewalk/assunzione/flat
|
||||
name = "flat paved tiles"
|
||||
icon_state = "flat"
|
||||
|
||||
/turf/simulated/floor/sidewalk/assunzione/flat/Initialize(mapload)
|
||||
. = ..()
|
||||
icon_state = "flat[rand(1,3)]"
|
||||
|
||||
/turf/simulated/floor/sidewalk/assunzione/blocks
|
||||
name = "blocked sidewalk tiles"
|
||||
icon_state = "blocks"
|
||||
|
||||
/turf/simulated/floor/sidewalk/assunzione/blocks/Initialize(mapload)
|
||||
. = ..()
|
||||
icon_state = "blocks[rand(1,3)]"
|
||||
|
||||
/turf/simulated/floor/roofing_tiles/assunzione
|
||||
name = "roofing tiles"
|
||||
desc = "You're on top of the world!"
|
||||
icon = 'icons/turf/flooring/urban_turfs_assun.dmi'
|
||||
icon_state = "rooftop"
|
||||
|
||||
/turf/simulated/floor/roofing_tiles/assunzione/Initialize(mapload)
|
||||
. = ..()
|
||||
icon_state = "rooftop[rand(1,3)]"
|
||||
|
||||
@@ -82,6 +82,13 @@
|
||||
. = ..(mapload, MATERIAL_SANDSTONE)
|
||||
canSmoothWith = list(src.type)
|
||||
|
||||
/turf/simulated/wall/brick
|
||||
icon = 'icons/turf/smooth/wall_preview.dmi'
|
||||
icon_state = "brick"
|
||||
|
||||
/turf/simulated/wall/brick/Initialize(mapload)
|
||||
. = ..(mapload, MATERIAL_BRICK)
|
||||
|
||||
/turf/simulated/wall/ironphoron/Initialize(mapload)
|
||||
canSmoothWith = list(src.type)
|
||||
. = ..(mapload, MATERIAL_IRON, MATERIAL_PHORON)
|
||||
|
||||
@@ -21,7 +21,8 @@
|
||||
/obj/structure/window_frame/unanchored,
|
||||
/obj/structure/window_frame/empty,
|
||||
/obj/machinery/door,
|
||||
/obj/machinery/door/airlock
|
||||
/obj/machinery/door/airlock,
|
||||
/obj/structure/arch
|
||||
)
|
||||
hitsound = 'sound/weapons/Genhit.ogg'
|
||||
explosion_resistance = 10
|
||||
|
||||
@@ -29,7 +29,8 @@
|
||||
/turf/unsimulated/wall/fakepdoor,
|
||||
/obj/structure/window_frame,
|
||||
/obj/structure/window_frame/unanchored,
|
||||
/obj/structure/window_frame/empty
|
||||
/obj/structure/window_frame/empty,
|
||||
/obj/structure/arch
|
||||
)
|
||||
|
||||
/turf/unsimulated/wall/fakepdoor
|
||||
@@ -56,6 +57,7 @@
|
||||
icon_state = "map-shuttle"
|
||||
desc = "It's a wall. It appears to be composed of a highly durable alloy."
|
||||
smoothing_flags = SMOOTH_TRUE
|
||||
color = COLOR_WALL_GUNMETAL
|
||||
canSmoothWith = list(
|
||||
/turf/unsimulated/wall/darkshuttlewall,
|
||||
/turf/unsimulated/wall/riveted,
|
||||
|
||||
@@ -584,6 +584,7 @@ GLOBAL_LIST_EMPTY(asset_datums)
|
||||
"biesel.png" = 'html/images/scans/exoplanets/biesel.png',
|
||||
"moghes.png" = 'html/images/scans/exoplanets/moghes.png',
|
||||
"chanterel.png" = 'html/images/scans/exoplanets/chanterel.png',
|
||||
"assunzione.png" = 'html/images/scans/exoplanets/assunzione.png',
|
||||
//end scan images
|
||||
"bluebird.woff" = 'html/fonts/OFL/Bluebird.woff',
|
||||
"grandhotel.woff" = 'html/fonts/OFL/GrandHotel.woff',
|
||||
|
||||
@@ -171,3 +171,38 @@
|
||||
"77.7 SoulFM" = 'texts/lore_radio/konyang/77.7_SoulFM.txt',
|
||||
"78.1 RealFM" = 'texts/lore_radio/konyang/78.1_RealFM.txt'
|
||||
)
|
||||
|
||||
/datum/space_sector/al_maqdisi
|
||||
name = SECTOR_AL_MAQDISI
|
||||
description = "Located in the southeastern reaches of the Spur, Light's Edge was the furthest that explorers from the Alliance's hegemonic colonization era reached. Few attempts were made to colonize it prior to the Interstellar War, and it remains sparsely populated even today. It is home to Assunzione in the Al-Maqdisi sector and the mysterious, inimical Lemurian Sea, about which extraordinarily little is known."
|
||||
skybox_icon = "lights_edge"
|
||||
guaranteed_exoplanets = list(/obj/effect/overmap/visitable/sector/exoplanet/assunzione)
|
||||
cargo_price_coef = list(
|
||||
"nanotrasen" = 1.1,
|
||||
"orion" = 0.7,
|
||||
"hephaestus" = 0.7,
|
||||
"zeng_hu" = 0.6,
|
||||
"eckharts" = 1,
|
||||
"blam" = 0.9,
|
||||
"zharkov" = 1.2,
|
||||
"virgo" = 0.9,
|
||||
"bishop" = 0.5,
|
||||
"xion" = 0.8,
|
||||
"zavodskoi" = 0.8,
|
||||
)
|
||||
|
||||
ports_of_call = list("Port Volturno, Triesto")
|
||||
scheduled_port_visits = list("Sunday", "Wednesday")
|
||||
starlight_color = "#351035"
|
||||
starlight_power = 1
|
||||
starlight_range = 2
|
||||
sector_lobby_transitions = 0
|
||||
sector_welcome_message = 'sound/AI/welcome_assunzione.ogg'
|
||||
|
||||
lobby_tracks = list(
|
||||
'sound/music/lobby/lights_edge/lights_edge_1.ogg',
|
||||
'sound/music/lobby/lights_edge/lights_edge_2.ogg'
|
||||
)
|
||||
|
||||
lore_radio_stations = list(
|
||||
)
|
||||
|
||||
@@ -355,6 +355,7 @@
|
||||
flags["flag, Private Military Contracting Group"] = /obj/item/flag/pmcg/l
|
||||
flags["flag, United Syndicates of Himeo"] = /obj/item/flag/himeo/l
|
||||
flags["flag, Republic of Assunzione"] = /obj/item/flag/assunzione/l
|
||||
flags["flag, Luceist"] = /obj/item/flag/luceist/l
|
||||
flags["flag, Union of Port Antillia"] = /obj/item/flag/portantillia/l
|
||||
flags["flag, Sovereign Solarian Republic of San Colette"] = /obj/item/flag/sancolette/l
|
||||
flags["flag, Old Sovereign Solarian Republic of San Colette"] = /obj/item/flag/sancolette/old/l
|
||||
|
||||
@@ -771,6 +771,15 @@
|
||||
icon_state = "pmc_warden_hat_nologo"
|
||||
item_state = "pmc_warden_hat_nologo"
|
||||
|
||||
// Assunzione security overseer hat
|
||||
/obj/item/clothing/head/peaked_cap/zenghu
|
||||
name = "\improper Zeng-Hu peaked cap"
|
||||
desc = "A military-style corporate peaked cap. This one bears the emblem of Zeng-Hu Pharmaceuticals."
|
||||
icon_state = "zh_warden_hat"
|
||||
item_state = "zh_warden_hat"
|
||||
icon = 'icons/obj/item/clothing/department_uniforms/security.dmi'
|
||||
contained_sprite = TRUE
|
||||
|
||||
//goblin.stev's stuff
|
||||
/obj/item/clothing/head/qeburger_visor
|
||||
name = "Quick-E-Burger Food Technician Visor"
|
||||
|
||||
@@ -907,3 +907,13 @@
|
||||
desc = "Tough synthetic fibres make up the bulk of this Himean planetary guard naval uniform, dyed a deep navy blue. It is embellished with red detailing, signalling the wearer as a fighter pilot."
|
||||
icon_state = "himeo_coveralls_pilot"
|
||||
item_state = "himeo_coveralls_pilot"
|
||||
|
||||
// Assunzione
|
||||
/obj/item/clothing/under/rank/assunzione/stafylia
|
||||
name = "\improper Stafylia uniform"
|
||||
desc = "Only true masters of the art of gyro have the right to wear this uniform. Only at Stafylia will you find such ones."
|
||||
icon = 'icons/obj/item/clothing/under/human/coc/assunzione.dmi'
|
||||
icon_state = "stafylia"
|
||||
item_state = "stafylia"
|
||||
contained_sprite = TRUE
|
||||
has_sensor = SUIT_NO_SENSORS
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
|
||||
// --------------------------------- Assunzione
|
||||
|
||||
/obj/effect/overmap/visitable/sector/exoplanet/assunzione
|
||||
name = "Assunzione"
|
||||
desc = "A dark, frozen world blighted by the mysterious extinguishing of its star in 2274. Surface uninhabitable; significant (500+ mil) population resides in planetary network of biodomes. Both legal injunction and mass ice deposition makes mining here effectively impossible."
|
||||
icon_state = "globe1"
|
||||
color = "#b375ca"
|
||||
planetary_area = /area/exoplanet/assunzione
|
||||
initial_weather_state = /singleton/state/weather/calm
|
||||
scanimage = "assunzione.png"
|
||||
massvolume = "0.97-1.01"
|
||||
surfacegravity = "0.98"
|
||||
charted = "Charted 2243CE, Sol Alliance Department of Colonization."
|
||||
alignment = "Coalition of Colonies"
|
||||
geology = "Low tectonic heat signature, minimal surface disruption."
|
||||
weather = "Negligible. All atmospheric and hydrological activity collapsed; marginal wind drift imparted by Coriolis force present."
|
||||
surfacewater = "All surface water is frozen; majority exists in former oceans, while remainder is ice deposition over permafrost."
|
||||
features_budget = 8
|
||||
surface_color = null//pre colored
|
||||
water_color = null//pre colored
|
||||
rock_colors = null//pre colored
|
||||
plant_colors = null//pre colored
|
||||
generated_name = FALSE
|
||||
flora_diversity = 0
|
||||
has_trees = TRUE
|
||||
ruin_planet_type = PLANET_LORE
|
||||
ruin_type_whitelist = list()
|
||||
possible_themes = list(/datum/exoplanet_theme/snow/assunzione)
|
||||
place_near_main = list(1,0)
|
||||
var/landing_area
|
||||
|
||||
/obj/effect/overmap/visitable/sector/exoplanet/assunzione/Initialize()
|
||||
. = ..()
|
||||
var/area/overmap/map = GLOB.map_overmap
|
||||
for(var/obj/effect/overmap/visitable/sector/port_volturno/P in map)
|
||||
P.x = x
|
||||
P.y = y
|
||||
|
||||
/obj/effect/overmap/visitable/sector/exoplanet/assunzione/generate_habitability()
|
||||
return HABITABILITY_BAD
|
||||
|
||||
/obj/effect/overmap/visitable/sector/exoplanet/assunzione/generate_map()
|
||||
lightlevel = 0
|
||||
..()
|
||||
|
||||
/obj/effect/overmap/visitable/sector/exoplanet/assunzione/generate_planet_image()
|
||||
skybox_image = image('icons/skybox/lore_planets.dmi', "assunzione")
|
||||
skybox_image.pixel_x = rand(0,64)
|
||||
skybox_image.pixel_y = rand(128,256)
|
||||
|
||||
/obj/effect/overmap/visitable/sector/exoplanet/assunzione/update_icon()
|
||||
return
|
||||
|
||||
/obj/effect/overmap/visitable/sector/exoplanet/assunzione/generate_atmosphere()
|
||||
..()
|
||||
if(atmosphere)
|
||||
atmosphere.remove_ratio(1)
|
||||
atmosphere.adjust_gas(GAS_OXYGEN, MOLES_O2STANDARD, 1)
|
||||
atmosphere.adjust_gas(GAS_NITROGEN, MOLES_N2STANDARD, 1)
|
||||
// hey at least 97% of the the atmosphere hasn't condensed to a liquid yet!
|
||||
atmosphere.temperature = 103
|
||||
atmosphere.update_values()
|
||||
|
||||
/obj/effect/overmap/visitable/sector/exoplanet/assunzione/generate_ground_survey_result()
|
||||
ground_survey_result = "" // so it does not get randomly generated survey results
|
||||
@@ -420,6 +420,16 @@
|
||||
drop_sound = 'sound/items/drop/boots.ogg'
|
||||
pickup_sound = 'sound/items/pickup/boots.ogg'
|
||||
|
||||
/material/stone/brick
|
||||
name = MATERIAL_BRICK
|
||||
reinf_icon = "reinf_stone"
|
||||
icon_colour = COLOR_GRAY30
|
||||
wall_colour = COLOR_GRAY30
|
||||
wall_icon = 'icons/turf/smooth/composite_brick.dmi'
|
||||
multipart_reinf_icon = 'icons/turf/smooth/composite_brick.dmi'
|
||||
hardness = 70
|
||||
golem = SPECIES_GOLEM_MARBLE
|
||||
|
||||
/material/concrete
|
||||
name = MATERIAL_CONCRETE
|
||||
icon_colour = COLOR_CONCRETE
|
||||
|
||||
@@ -13,6 +13,10 @@
|
||||
/turf/unsimulated/mineral/konyang
|
||||
color = "#514e5c"
|
||||
|
||||
/turf/unsimulated/mineral/assunzione
|
||||
name = "impassable substrate"
|
||||
color = "#222222"
|
||||
|
||||
/// This is a global list so we can share the same list with all mineral turfs; it's the same for all of them anyways.
|
||||
GLOBAL_LIST_INIT(mineral_can_smooth_with, list(
|
||||
/turf/simulated/mineral,
|
||||
|
||||
@@ -302,3 +302,19 @@
|
||||
),
|
||||
WILDLIFE = list() //no xanu wildlife assets yet
|
||||
)
|
||||
|
||||
// it's looking pretty bleak out there boys
|
||||
/singleton/biome/snow/assunzione
|
||||
spawn_types = list(
|
||||
PLANET_TURF = list(/turf/simulated/floor/exoplanet/permafrost = 1),
|
||||
GRASSES = list(),
|
||||
LARGE_FLORA = list(
|
||||
/obj/structure/flora/rock/ice = 2,
|
||||
/obj/structure/flora/tree/dead = 1
|
||||
),
|
||||
SMALL_FLORA = list(
|
||||
/obj/structure/flora/assunzione/bush/lucevine = 3,
|
||||
/obj/effect/floor_decal/snowdrift/large/random = 2
|
||||
),
|
||||
WILDLIFE = list()
|
||||
)
|
||||
|
||||
@@ -72,6 +72,12 @@
|
||||
name = "Xanu Prime Wilderness"
|
||||
base_turf = /turf/simulated/floor/exoplanet/grass/stalk
|
||||
|
||||
/area/exoplanet/assunzione
|
||||
name = "Assunzioni Wilderness"
|
||||
ambience = list()
|
||||
base_turf = /turf/simulated/floor/exoplanet/snow
|
||||
area_blurb = "A lightless lifelessness more oppressive than even that of barren asteroids. One day, even the nitrogen in the still air will freeze solid and the luce vines will finally die out in the wild."
|
||||
|
||||
/area/exoplanet/lava
|
||||
name = "\improper Planetary surface"
|
||||
ambience = AMBIENCE_LAVA
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
/obj/structure/flora/assunzione
|
||||
name = "native Assunzionii flora"
|
||||
desc = "One of the species of local plantlife originally native to Assunzione, preserved now only in domes after the Dimming all but flattened the biosphere."
|
||||
icon = 'icons/obj/flora/assunzione/grass.dmi'
|
||||
icon_state = "stalks"
|
||||
layer = BASE_ABOVE_OBJ_LAYER
|
||||
anchored = TRUE
|
||||
density = FALSE
|
||||
|
||||
/obj/structure/flora/assunzione/grass
|
||||
name = "grass stalks"
|
||||
desc = "Thin and tall stalks of native Assunzionii grasses, soft though slightly rubbery to the touch."
|
||||
|
||||
/obj/structure/flora/assunzione/grass/Initialize(mapload)
|
||||
. = ..()
|
||||
icon_state = "stalks[rand(1, 5)]"
|
||||
|
||||
/obj/structure/flora/assunzione/grass/alt
|
||||
icon_state = "stalks_alt"
|
||||
|
||||
/obj/structure/flora/assunzione/grass/alt/Initialize(mapload)
|
||||
. = ..()
|
||||
icon_state = "stalks_alt[rand(1, 5)]"
|
||||
|
||||
/obj/structure/flora/assunzione/grass/alt
|
||||
icon_state = "stalks_alt"
|
||||
|
||||
/obj/structure/flora/assunzione/grass/sparse
|
||||
icon_state = "sparsegrass_1"
|
||||
|
||||
/obj/structure/flora/assunzione/grass/sparse/New()
|
||||
..()
|
||||
icon_state = "sparsegrass_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/assunzione/grass/full
|
||||
icon_state = "fullgrass_1"
|
||||
|
||||
/obj/structure/flora/assunzione/grass/full/New()
|
||||
..()
|
||||
icon_state = "fullgrass_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/assunzione/flowers
|
||||
icon = 'icons/obj/flora/assunzione/flowers.dmi'
|
||||
layer = BASE_ABOVE_OBJ_LAYER
|
||||
|
||||
/obj/structure/flora/assunzione/flowers/lavendergrass
|
||||
icon_state = "lavendergrass_1"
|
||||
|
||||
/obj/structure/flora/assunzione/flowers/lavendergrass/New()
|
||||
..()
|
||||
icon_state = "lavendergrass_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/assunzione/flowers/ywflowers
|
||||
icon_state = "ywflowers_1"
|
||||
|
||||
/obj/structure/flora/assunzione/flowers/ywflowers/New()
|
||||
..()
|
||||
icon_state = "ywflowers_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/assunzione/flowers/brflowers
|
||||
icon_state = "brflowers_1"
|
||||
|
||||
/obj/structure/flora/assunzione/flowers/brflowers/New()
|
||||
..()
|
||||
icon_state = "brflowers_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/assunzione/flowers/ppflowers
|
||||
icon_state = "ppflowers_1"
|
||||
|
||||
/obj/structure/flora/assunzione/flowers/ppflowers/New()
|
||||
..()
|
||||
icon_state = "ppflowers_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/assunzione/bush
|
||||
icon = 'icons/obj/flora/assunzione/bush.dmi'
|
||||
|
||||
/obj/structure/flora/assunzione/bush/pale
|
||||
icon_state = "palebush_1"
|
||||
|
||||
/obj/structure/flora/assunzione/bush/pale/New()
|
||||
..()
|
||||
icon_state = "palebush_[rand(1, 4)]"
|
||||
|
||||
/obj/structure/flora/assunzione/bush/ferny
|
||||
icon_state = "fernybush_1"
|
||||
|
||||
/obj/structure/flora/assunzione/bush/ferny/New()
|
||||
..()
|
||||
icon_state = "fernybush_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/assunzione/bush/lucevine
|
||||
name = "luce vine cluster"
|
||||
desc = "The namesake plant for Luceism, the light-centric religion of Assunzione, the Luce Vine is a fruiting vine noted for its astounding resilience to cold following the Dimming. \
|
||||
The plant and its bioluminscent fruit, called 'luce bulbs', are considered evidence of miracle to devout Assunzioni."
|
||||
icon_state = "lvcluster_1"
|
||||
light_range = 1.4
|
||||
light_power = 1
|
||||
light_color = COLOR_CYAN
|
||||
layer = BASE_ABOVE_OBJ_LAYER
|
||||
|
||||
/obj/structure/flora/assunzione/bush/lucevine/New()
|
||||
..()
|
||||
icon_state = "lvcluster_[rand(1, 3)]"
|
||||
|
||||
/obj/structure/flora/assunzione/bush/lucevine/Initialize(mapload)
|
||||
..()
|
||||
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)
|
||||
return INITIALIZE_HINT_NORMAL
|
||||
@@ -312,3 +312,15 @@
|
||||
and is said to have the unpleasant taste of bleached cotton. \
|
||||
It is sometimes used in the textile industry due to it's vibrant colors."
|
||||
icon_state = "plant-tc-03"
|
||||
|
||||
/obj/structure/flora/pottedplant/luce_vine
|
||||
name = "potted luce vine"
|
||||
desc = "The namesake plant for Luceism, the light-centric religion of Assunzione, the Luce Vine is a fruiting vine noted for its astounding resilience to cold following the Dimming. \
|
||||
The plant and its bioluminscent fruit, called 'luce bulbs', are considered evidence of miracle to devout Assunzioni."
|
||||
icon_state = "plant-luce-vine"
|
||||
light_system = MOVABLE_LIGHT
|
||||
|
||||
/obj/structure/flora/pottedplant/luce_vine/Initialize()
|
||||
. = ..()
|
||||
set_light(l_range = 2.2, l_power = 3, l_color = LIGHT_COLOR_PURPLE)
|
||||
return INITIALIZE_HINT_NORMAL
|
||||
|
||||
@@ -189,3 +189,15 @@
|
||||
name = "blueish potted fern"
|
||||
desc = "A miniature fern, with one big dark blue leaf."
|
||||
icon_state = "plant-27"
|
||||
|
||||
/obj/item/flora/pottedplant_small/luce_vine
|
||||
name = "potted luce vine"
|
||||
desc = "The namesake plant for Luceism, the light-centric religion of Assunzione, the Luce Vine is a fruiting vine noted for its astounding resilience to cold following the Dimming. \
|
||||
The plant and its bioluminscent fruit, called 'luce bulbs', are considered evidence of miracle to devout Assunzioni."
|
||||
icon_state = "plant-luce-vine"
|
||||
light_system = MOVABLE_LIGHT
|
||||
|
||||
/obj/item/flora/pottedplant_small/luce_vine/Initialize()
|
||||
. = ..()
|
||||
set_light(l_range = 1.4, l_power = 3, l_color = LIGHT_COLOR_PURPLE)
|
||||
return INITIALIZE_HINT_NORMAL
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
/turf/simulated/floor/exoplanet/assunzione
|
||||
name = "artificial substratum"
|
||||
desc = "The unclean but highly compacted solid foundation for a building or structure."
|
||||
icon = 'icons/turf/flooring/urban_turfs.dmi'
|
||||
icon_state = "rust"
|
||||
has_resources = FALSE
|
||||
|
||||
/turf/simulated/floor/exoplanet/assunzione/Initialize(mapload)
|
||||
. = ..()
|
||||
icon_state = "rust[rand(1,12)]"
|
||||
|
||||
/turf/simulated/floor/exoplanet/assunzione/no_edge
|
||||
has_edge_icon = FALSE
|
||||
@@ -103,3 +103,20 @@
|
||||
BIOME_SEMIARID = /singleton/biome/snow/forest/xanu
|
||||
)
|
||||
)
|
||||
|
||||
/datum/exoplanet_theme/snow/assunzione
|
||||
name = "Assunzione"
|
||||
surface_turfs = list(
|
||||
/turf/simulated/floor/exoplanet/permafrost
|
||||
)
|
||||
mountain_biome = null
|
||||
possible_biomes = list(
|
||||
BIOME_POLAR = list(
|
||||
BIOME_ARID = /singleton/biome/water/ice,
|
||||
BIOME_SEMIARID = /singleton/biome/snow/assunzione
|
||||
),
|
||||
BIOME_COOL = list(
|
||||
BIOME_ARID = /singleton/biome/water/ice,
|
||||
BIOME_SEMIARID = /singleton/biome/snow/assunzione
|
||||
)
|
||||
)
|
||||
|
||||
@@ -1433,6 +1433,17 @@
|
||||
glass_name = "glass of Orange Starshine"
|
||||
glass_desc = "A citrusy orange soda."
|
||||
|
||||
/singleton/reagent/drink/orangeade
|
||||
name = "Orangeade"
|
||||
description = "A fizzy citrus-y splash of delight."
|
||||
color = "#e77110"
|
||||
taste_description = "fizzy citrus"
|
||||
carbonated = TRUE
|
||||
|
||||
glass_icon_state = "glass_orange"
|
||||
glass_name = "glass of orangeade"
|
||||
glass_desc = "It tastes like it might be good for you, but it's not! Mmm, citrus!"
|
||||
|
||||
//
|
||||
// Diet Soda
|
||||
//
|
||||
|
||||
@@ -1286,3 +1286,60 @@ ABSTRACT_TYPE(/obj/item/reagent_containers/food/snacks/bowl)
|
||||
reagent_data = list(/singleton/reagent/nutriment = list("jam" = 5, "salad" =5), /singleton/reagent/nutriment/protein = list("seasoned meat" = 5))
|
||||
bitesize = 3
|
||||
filling_color = "#695753"
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/lentil_soup
|
||||
name = "midnight lentil soup"
|
||||
desc = "A self-heating cup of thick lentil soup with garlic, oil, and black pepper, popular on late tram rides between domes. Comes with a too-small plastic spoon clipped to the inside of the lid. Distributed by Dalyan Delights!"
|
||||
icon = 'icons/obj/item/reagent_containers/food/cultural/human.dmi'
|
||||
icon_state = "lentil_soup"
|
||||
is_liquid = TRUE
|
||||
reagents_to_add = list(/singleton/reagent/nutriment/protein = 5, /singleton/reagent/nutriment = 5, /singleton/reagent/spacespice = 1)
|
||||
reagent_data = list(/singleton/reagent/nutriment = list("hot soup" = 6, "lentils" = 5, "garlicky oil" = 4), /singleton/reagent/nutriment/protein = list("lentils" = 5))
|
||||
bitesize = 2
|
||||
filling_color = "#7c3d20"
|
||||
|
||||
// If the ungrateful players don't like that under the hood it's literally just ramen, TOO BAD!
|
||||
/obj/item/reagent_containers/food/drinks/dry_pasta
|
||||
name = "cup pasta"
|
||||
desc = "All they needed to do was tweak the formula. Just add 10ml water and it self-heats, just like your favorite ramen cup! Has a dash of saffron powder, onion flakes, garlic, and tomato concentrate."
|
||||
icon = 'icons/obj/item/reagent_containers/food/cultural/human.dmi'
|
||||
icon_state = "pasta"
|
||||
trash = /obj/item/trash/pasta
|
||||
drop_sound = 'sound/items/drop/papercup.ogg'
|
||||
pickup_sound = 'sound/items/pickup/papercup.ogg'
|
||||
center_of_mass = list("x"=16, "y"=11)
|
||||
reagents_to_add = list(/singleton/reagent/drink/dry_ramen = 30)
|
||||
is_liquid = FALSE
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/dry_pasta/on_reagent_change()
|
||||
..()
|
||||
if(reagents.has_reagent("dry_ramen"))
|
||||
is_liquid = FALSE
|
||||
else
|
||||
is_liquid = TRUE
|
||||
|
||||
/obj/item/trash/pasta
|
||||
name = "cup pasta"
|
||||
desc = "This used to be delicious delicious cup pasta."
|
||||
icon = 'icons/obj/item/reagent_containers/food/cultural/human.dmi'
|
||||
icon_state = "pasta_empty"
|
||||
drop_sound = 'sound/items/drop/papercup.ogg'
|
||||
pickup_sound = 'sound/items/pickup/papercup.ogg'
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/candied_citrus
|
||||
name = "\improper Seven Lamps candied citrus peels"
|
||||
desc = "A prepackaged assortment of candied citrus peel dusted lightly with sugar. Sticky, fragrant, and easy to snack on. Distributed by Dalyan Delights!"
|
||||
icon = 'icons/obj/item/reagent_containers/food/cultural/human.dmi'
|
||||
icon_state = "candied_citrus"
|
||||
reagents_to_add = list(/singleton/reagent/nutriment = 6, /singleton/reagent/sugar = 4, /singleton/reagent/spacespice = 1)
|
||||
reagent_data = list(/singleton/reagent/nutriment = list("orange" = 5, "lemon" = 5), /singleton/reagent/sugar = list("sugar" = 5))
|
||||
bitesize = 1
|
||||
filling_color = "#ffbb00"
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/cans/orangeade
|
||||
name = "\improper Dameri orangeade"
|
||||
desc = "A dark orange-red soft drink with a sharper citrus flavour and a pleasantly bitter finish."
|
||||
icon_state = "orangeade"
|
||||
item_state = "orangeade"
|
||||
contained_sprite = TRUE
|
||||
reagents_to_add = list(/singleton/reagent/drink/orangeade = 30)
|
||||
|
||||
@@ -16,15 +16,15 @@
|
||||
|
||||
/// Speed on land. Higher is slower.
|
||||
/// If 0 it can't go on land turfs at all.
|
||||
var/land_speed = 5
|
||||
var/land_speed = 1.4
|
||||
/// Speed if walk intent is on.
|
||||
/// Should be slower, but does not crash into other bikes or people at this speed.
|
||||
/// If land speed is 0, still can't go on land turfs at all.
|
||||
var/land_speed_careful = 6
|
||||
var/land_speed_careful = 2.2
|
||||
/// Same as land speed, but for space turfs.
|
||||
var/space_speed = 1
|
||||
/// Same as land speed if walk intent is on, but for space turfs.
|
||||
var/space_speed_careful = 4
|
||||
var/space_speed_careful = 2
|
||||
|
||||
var/bike_icon = "bike"
|
||||
var/storage_type = /obj/item/storage/toolbox/bike_storage
|
||||
@@ -57,7 +57,7 @@
|
||||
. += "CTRL-click the bike to toggle the engine."
|
||||
. += "ALT-click to toggle the kickstand which prevents movement by driving and dragging."
|
||||
. += "Click the resist button or type \"resist\" in the command bar at the bottom of your screen to get off the bike."
|
||||
. += "Use walk intent to move around carefully, or run intent to go fast, and risk crashing into other people or bikes."
|
||||
. += "Go fast! Use the RUN intent to go fast! Just be careful you don't run anyone over."
|
||||
|
||||
/obj/vehicle/bike/feedback_hints(mob/user, distance, is_adjacent)
|
||||
. += ..()
|
||||
@@ -198,6 +198,25 @@
|
||||
return
|
||||
return Move(get_step(src, direction))
|
||||
|
||||
/obj/vehicle/bike/RunOver(var/mob/living/carbon/human/H)
|
||||
var/mob/living/M
|
||||
|
||||
if(!buckled)
|
||||
return
|
||||
|
||||
if(istype(buckled, /mob/living))
|
||||
M = buckled
|
||||
|
||||
var/collision_damage = clamp((maxhealth/6), 5, 30)
|
||||
if(M.m_intent == M_RUN)
|
||||
M.attack_log += "\[[time_stamp()]\]<font color='orange'> Was rammed by [src]</font>"
|
||||
M.attack_log += "\[[time_stamp()]\] <span class='warning'>rammed[M.name] ([M.ckey]) rammed [H.name] ([H.ckey]) with the [src].</span>"
|
||||
msg_admin_attack("[src] crashed into [key_name(H)] at (<A href='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[H.x];Y=[H.y];Z=[H.z]'>JMP</a>)" )
|
||||
src.visible_message(SPAN_DANGER("\The [src] runs over \the [H]!"))
|
||||
H.apply_damage(collision_damage, DAMAGE_BRUTE)
|
||||
H.apply_effect(4, WEAKEN)
|
||||
return TRUE
|
||||
|
||||
/obj/vehicle/bike/proc/check_destination(var/turf/destination)
|
||||
var/static/list/types = typecacheof(list(/turf/space))
|
||||
if((is_type_in_typecache(destination,types) && !locate(/obj/structure/lattice)) || pulledby)
|
||||
@@ -230,7 +249,7 @@
|
||||
|
||||
/obj/vehicle/bike/turn_on()
|
||||
ion.start()
|
||||
anchored = 1
|
||||
anchored = TRUE
|
||||
|
||||
if(can_hover)
|
||||
flying = TRUE
|
||||
@@ -343,7 +362,7 @@
|
||||
desc = "A Hephaestus-manufactured military speeder, used by the forces of the Izweski Hegemony."
|
||||
icon_state = "heg_speeder_on"
|
||||
bike_icon = "heg_speeder"
|
||||
land_speed = 2
|
||||
land_speed = 1
|
||||
space_speed = 1
|
||||
health = 250
|
||||
maxhealth = 250
|
||||
@@ -366,27 +385,12 @@
|
||||
dir = EAST
|
||||
|
||||
land_speed = 1
|
||||
land_speed_careful = 4
|
||||
land_speed_careful = 1.6
|
||||
space_speed = 0
|
||||
space_speed_careful = 0
|
||||
|
||||
can_hover = FALSE
|
||||
|
||||
/obj/vehicle/bike/monowheel/RunOver(var/mob/living/carbon/human/H)
|
||||
var/mob/living/M
|
||||
if(!buckled)
|
||||
return
|
||||
if(istype(buckled, /mob/living))
|
||||
M = buckled
|
||||
if(M.m_intent == M_RUN)
|
||||
M.attack_log += "\[[time_stamp()]\]<font color='orange'> Was rammed by [src]</font>"
|
||||
M.attack_log += "\[[time_stamp()]\] <span class='warning'>rammed[M.name] ([M.ckey]) rammed [H.name] ([H.ckey]) with the [src].</span>"
|
||||
msg_admin_attack("[src] crashed into [key_name(H)] at (<A href='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[H.x];Y=[H.y];Z=[H.z]'>JMP</a>)" )
|
||||
src.visible_message(SPAN_DANGER("\The [src] runs over \the [H]!"))
|
||||
H.apply_damage(30, DAMAGE_BRUTE)
|
||||
H.apply_effect(4, WEAKEN)
|
||||
return TRUE
|
||||
|
||||
/obj/vehicle/bike/monowheel/check_destination(var/turf/destination)
|
||||
var/static/list/types = typecacheof(list(/turf/space))
|
||||
if((is_type_in_typecache(destination,types) && !locate(/obj/structure/lattice)) || pulledby)
|
||||
@@ -460,7 +464,7 @@
|
||||
icon_state = "sport_on"
|
||||
bike_icon = "sport"
|
||||
land_speed = 1
|
||||
land_speed_careful = 4
|
||||
land_speed_careful = 1.6
|
||||
space_speed = 0
|
||||
protection_percent = 10
|
||||
can_hover = FALSE
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
author: Batrachophrenoboocosmomachia
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Adds the space sector for Assunzione, its exoplanet map, and its port of call, Port Volturno."
|
||||
- rscadd: "Adds support for billboards to display sets of randomized ads based on icon_state prefixes for different worlds/locations."
|
||||
- rscadd: "Adds support for 2x1 illuminated signs to be locked to a single initial setting."
|
||||
- rscadd: "All bikes can now run people over if colliding with Run intent, not just monowheels."
|
||||
- rscadd: "Adds new Luceist flag (large only), also available in gear loadout."
|
||||
- balance: "Increases default vehicle speeds to account for smooth movement speed buffs (currently only affects mopeds, which were painfully slow.)"
|
||||
- imageadd: "Adds many new sprites by Fyni, Minezeyes, Sammy, and Batrachophrenoboocosmomachia."
|
||||
- bugfix: "Rental bike machines no longer vend dummy keys of a type if only configured to sell keys of another type."
|
||||
|
After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 81 KiB |
|
Before Width: | Height: | Size: 710 B After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 236 KiB After Width: | Height: | Size: 242 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 854 B |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,47 @@
|
||||
/datum/map_template/ruin/away_site/port_volturno
|
||||
name = "Assunzione - Port Volturno"
|
||||
id = "port_volturno"
|
||||
description = "A landing zone designated by local authorities within a Zeng-Hu-affiliated spaceport in the planetary capital of Triesto. Accommodations have been made to ensure full visitation of any open facilities present."
|
||||
sectors = list(SECTOR_AL_MAQDISI)
|
||||
|
||||
traits = list(
|
||||
//Z1
|
||||
list(ZTRAIT_AWAY = TRUE, ZTRAIT_PORTOFCALL = TRUE, ZTRAIT_UP = TRUE, ZTRAIT_DOWN = FALSE),
|
||||
//Z2
|
||||
list(ZTRAIT_AWAY = TRUE, ZTRAIT_PORTOFCALL = TRUE, ZTRAIT_UP = FALSE, ZTRAIT_DOWN = TRUE),
|
||||
)
|
||||
|
||||
prefix = "away_site/assunzione/port_volturno/"
|
||||
suffix = "port_volturno.dmm"
|
||||
|
||||
spawn_weight = 1
|
||||
spawn_cost = 1
|
||||
template_flags = TEMPLATE_FLAG_PORT_SPAWN
|
||||
|
||||
unit_test_groups = list(2)
|
||||
|
||||
/singleton/submap_archetype/port_volturno
|
||||
map = "port_volturno"
|
||||
descriptor = "A landing zone within one of the Triesto biodomes."
|
||||
|
||||
/obj/effect/overmap/visitable/sector/port_volturno
|
||||
name = "Assunzione - Port Volturno"
|
||||
desc = "A landing zone designated by local authorities within a Zeng-Hu-affiliated spaceport in the planetary capital of Triesto. Accommodations have been made to ensure full visitation of any open facilities present."
|
||||
icon_state = "poi"
|
||||
scanimage = "assunzione.png"
|
||||
place_near_main = list(0,0)
|
||||
landing_site = TRUE
|
||||
alignment = "Coalition of Colonies"
|
||||
requires_contact = FALSE
|
||||
instant_contact = TRUE
|
||||
|
||||
comms_support = TRUE
|
||||
comms_name = "Zeng-Hu Corporate Security" //these comms should only be used by ZH Security ghostroles
|
||||
freq_name = "ZH Volturno-13-Kappa Patrol"
|
||||
|
||||
initial_generic_waypoints = list()
|
||||
initial_restricted_waypoints = list(
|
||||
"Intrepid" = list("nav_port_volturno_spaceport_intrepid"),
|
||||
"Quark" = list("nav_port_volturno_spaceport_quark"),
|
||||
"Spark" = list("nav_port_volturno_spaceport_spark")
|
||||
)
|
||||
@@ -0,0 +1,135 @@
|
||||
/area/port_volturno
|
||||
name = "Port Volturno"
|
||||
requires_power = 0
|
||||
no_light_control = 1
|
||||
icon_state = "nature_showcase"
|
||||
area_flags = AREA_FLAG_HIDE_FROM_HOLOMAP | AREA_FLAG_RAD_SHIELDED | AREA_FLAG_INDESTRUCTIBLE_TURFS | AREA_FLAG_PREVENT_PERSISTENT_TRASH
|
||||
base_turf = /turf/simulated/floor/exoplanet/assunzione
|
||||
ambience = AMBIENCE_KONYANG_TRAFFIC
|
||||
sound_environment = SOUND_ENVIRONMENT_CITY
|
||||
is_outside = OUTSIDE_NO
|
||||
|
||||
/area/port_volturno/exterior
|
||||
area_blurb = "A vast dome encloses you within the open space; beyond it only is killing cold and darkness, but here, inside, it is warm and bright and welcoming."
|
||||
|
||||
/area/port_volturno/interior
|
||||
name = "Port Volturno - Interior"
|
||||
icon_state = "green"
|
||||
sound_environment = SOUND_AREA_LARGE_ENCLOSED
|
||||
ambience = AMBIENCE_HANGAR
|
||||
is_outside = OUTSIDE_NO
|
||||
area_blurb = "With the interior curvature of the dome out of sight, it's easy to imagine you're on a normal, well-lit temperate world somewhere."
|
||||
|
||||
/area/port_volturno/interior/spaceport
|
||||
name = "Port Volturno - Spaceport"
|
||||
icon_state = "ship"
|
||||
|
||||
/area/port_volturno/interior/spaceport/traffic_control
|
||||
name = "Port Volturno - Spaceport Traffic Control"
|
||||
sound_environment = SOUND_AREA_SMALL_ENCLOSED
|
||||
icon_state = "wizard"
|
||||
|
||||
/area/port_volturno/interior/spaceport/security_office
|
||||
name = "Port Volturno - Spaceport Security Office"
|
||||
sound_environment = SOUND_AREA_SMALL_ENCLOSED
|
||||
icon_state = "security"
|
||||
|
||||
//Main city buildings
|
||||
/area/port_volturno/interior/liquor_store
|
||||
name = "Port Volturno - Duty-Free Liquor Store"
|
||||
icon_state = "crew_quarters"
|
||||
sound_environment = SOUND_AREA_SMALL_ENCLOSED
|
||||
|
||||
/area/port_volturno/interior/music_store
|
||||
name = "Port Volturno - PV|AV"
|
||||
icon_state = "party"
|
||||
sound_environment = SOUND_AREA_SMALL_ENCLOSED
|
||||
|
||||
/area/port_volturno/interior/clothing_store
|
||||
name = "Port Volturno - Parilti Outfitters"
|
||||
icon_state = "party"
|
||||
sound_environment = SOUND_AREA_SMALL_ENCLOSED
|
||||
|
||||
/area/port_volturno/interior/parking
|
||||
name = "Port Volturno - Parking Garage"
|
||||
area_blurb = "Sounds echo impressively through this space."
|
||||
sound_environment = SOUND_AREA_STANDARD_STATION
|
||||
icon_state = "dk_yellow"
|
||||
|
||||
/area/port_volturno/interior/riad
|
||||
name = "Port Volturno - Spaceport Riad"
|
||||
icon_state = "bar"
|
||||
|
||||
/area/port_volturno/interior/riad/garden
|
||||
name = "Port Volturno - AEC Memorial Garden"
|
||||
icon_state = "green"
|
||||
|
||||
/area/port_volturno/interior/robotics
|
||||
name = "Port Volturno - Electromechanics Shop"
|
||||
icon_state = "machinist_workshop"
|
||||
|
||||
/area/port_volturno/interior/minimart
|
||||
name = "Port Volturno - QuikStop"
|
||||
icon_state = "merchant"
|
||||
|
||||
/area/port_volturno/interior/cafe
|
||||
name = "Port Volturno - Cafe"
|
||||
icon_state = "cafe"
|
||||
|
||||
/area/port_volturno/interior/stafylia
|
||||
name = "Port Volturno - Stafylia"
|
||||
icon_state = "burglar"
|
||||
|
||||
/area/port_volturno/interior/police
|
||||
name = "Port Volturno - Zeng-Hu ISD"
|
||||
icon_state = "security"
|
||||
|
||||
/area/port_volturno/interior/police/overseer
|
||||
name = "Port Volturno - Zeng-Hu ISD (Overseer's Office)"
|
||||
icon_state = "sec_hos"
|
||||
|
||||
/area/port_volturno/interior/police/brig
|
||||
name = "Port Volturno - Zeng-Hu ISD (Detention Area)"
|
||||
icon_state = "brig"
|
||||
|
||||
/area/port_volturno/interior/pool
|
||||
name = "Port Volturno - Pool"
|
||||
icon_state = "fitness_pool"
|
||||
|
||||
/area/port_volturno/interior/clinic
|
||||
name = "Port Volturno - Zeng-Hu Clinic"
|
||||
icon_state = "morgue"
|
||||
|
||||
/area/port_volturno/interior/clinic/pharmacy
|
||||
name = "Port Volturno - Zeng-Hu Clinic Pharmacy"
|
||||
icon_state = "phar"
|
||||
|
||||
/area/port_volturno/interior/clinic/storage
|
||||
name = "Port Volturno - Zeng-Hu Clinic Storage"
|
||||
icon_state = "toxstorage"
|
||||
|
||||
/area/port_volturno/interior/maintenance
|
||||
name = "Port Volturno - Maintenance Tunnels"
|
||||
icon_state = "green"
|
||||
sound_environment = SOUND_AREA_SMALL_ENCLOSED
|
||||
ambience = AMBIENCE_MAINTENANCE
|
||||
icon_state = "maintenance"
|
||||
area_blurb = "Even the emergency lighting here seems tuned a little brighter than seems strictly necessary."
|
||||
|
||||
/area/port_volturno/interior/hotel
|
||||
name = "Port Volturno - Hotel"
|
||||
icon_state = "locker"
|
||||
area_blurb = "Many local vendors either commute to Port Volturno daily or stay in hotels like these."
|
||||
|
||||
/area/port_volturno/interior/chapel
|
||||
name = "Port Volturno - Saint Alvisiol Chapel"
|
||||
icon_state = "chapel"
|
||||
|
||||
/area/port_volturno/interior/chapel/office
|
||||
name = "Port Volturno - Saint Alvisiol Chapel (Office)"
|
||||
icon_state = "chapeloffice"
|
||||
|
||||
/area/port_volturno/interior/tram_station
|
||||
name = "Port Volturno - Triesto Tram Line"
|
||||
icon_state = "ship"
|
||||
area_blurb = "The tram stations at Port Volturno serve not only as the fastest link to the rest of Triesto, but also as emergency shelters in the catastrophic event of a dome breach."
|
||||
@@ -0,0 +1,238 @@
|
||||
//Police
|
||||
/datum/ghostspawner/human/assunzione_cop
|
||||
short_name = "assunzione_cop"
|
||||
name = "Zeng-Hu Volturno Security Officer"
|
||||
desc = "Maintain overall security and adherence to corporate regulations under the dome of Port Volturno. Look the other way if no one gets hurt."
|
||||
tags = list("External")
|
||||
spawnpoints = list("assunzione_cop")
|
||||
max_count = 2
|
||||
outfit = /obj/outfit/admin/assunzione/cop
|
||||
possible_species = list(SPECIES_HUMAN,
|
||||
SPECIES_IPC,
|
||||
SPECIES_IPC_XION,
|
||||
SPECIES_IPC_ZENGHU,
|
||||
SPECIES_IPC_BISHOP,
|
||||
SPECIES_IPC_SHELL)
|
||||
allow_appearance_change = APPEARANCE_PLASTICSURGERY
|
||||
assigned_role = "Zeng-Hu Security Officer"
|
||||
special_role = "Zeng-Hu Security Officer"
|
||||
respawn_flag = null
|
||||
|
||||
/obj/outfit/admin/assunzione/cop
|
||||
name = "Zeng-Hu Volturno Security Officer"
|
||||
uniform = /obj/item/clothing/under/rank/security/zeng
|
||||
accessory = /obj/item/clothing/accessory/holster/hip
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
head = /obj/item/clothing/head/beret/corporate/zeng
|
||||
id = /obj/item/card/id
|
||||
l_ear = /obj/item/radio/headset/ship
|
||||
belt = /obj/item/storage/belt/security/full
|
||||
r_pocket = /obj/item/storage/wallet/random
|
||||
back = /obj/item/storage/backpack/satchel
|
||||
|
||||
/obj/outfit/admin/assunzione/cop/get_id_access()
|
||||
return list(ACCESS_PORTOFCALL_POLICE)
|
||||
|
||||
/datum/ghostspawner/human/assunzione_cop/overseer
|
||||
short_name = "assunzione_cop_overseer"
|
||||
name = "Zeng-Hu Volturno Security Overseer"
|
||||
desc = "The Keiretsu are depending on you- at least that's what they tell you. The Keiretsu actually have no idea you exist. Try and keep the peace anyway."
|
||||
spawnpoints = list("assunzione_cop_overseer")
|
||||
max_count = 1
|
||||
outfit = /obj/outfit/admin/assunzione/cop/superintendent
|
||||
assigned_role = "Zeng-Hu Security Overseer"
|
||||
special_role = "Zeng-Hu Security Overseer"
|
||||
|
||||
/obj/outfit/admin/assunzione/cop/superintendent
|
||||
name = "Zeng-Hu Volturno Security Overseer"
|
||||
uniform = /obj/item/clothing/under/rank/security/zeng
|
||||
head = /obj/item/clothing/head/peaked_cap/zenghu
|
||||
back = /obj/item/storage/backpack/satchel/leather
|
||||
|
||||
//Civilian
|
||||
/datum/ghostspawner/human/assunzione_vendor
|
||||
short_name = "assunzione_vendor"
|
||||
name = "Point Volturno Vendor"
|
||||
desc = "Man the stores around Port Volturno. Sell goods to the visiting crewmembers. Don't think too hard about what's probably going to happen to them in the Sea."
|
||||
max_count = 6
|
||||
tags = list("External")
|
||||
spawnpoints = list("assunzione_vendor")
|
||||
outfit = /obj/outfit/admin/assunzione/vendor
|
||||
possible_species = list(SPECIES_HUMAN,
|
||||
SPECIES_IPC,
|
||||
SPECIES_IPC_XION,
|
||||
SPECIES_IPC_ZENGHU,
|
||||
SPECIES_IPC_BISHOP,
|
||||
SPECIES_IPC_SHELL)
|
||||
allow_appearance_change = APPEARANCE_PLASTICSURGERY
|
||||
assigned_role = "Point Volturno Vendor"
|
||||
special_role = "Point Volturno Vendor"
|
||||
respawn_flag = null
|
||||
|
||||
/obj/outfit/admin/assunzione/vendor
|
||||
name = "Assunzione Vendor"
|
||||
uniform = /obj/item/clothing/pants/jeans
|
||||
shoes = /obj/item/clothing/shoes/sneakers/black
|
||||
suit = /obj/item/clothing/under/dressshirt
|
||||
back = /obj/item/storage/backpack/satchel
|
||||
l_pocket = /obj/item/storage/wallet/random
|
||||
id = /obj/item/card/id
|
||||
|
||||
/obj/outfit/admin/assunzione/vendor/get_id_access()
|
||||
return list(ACCESS_PORTOFCALL_VENDORS)
|
||||
|
||||
/datum/ghostspawner/human/assunzione_electromechanic
|
||||
short_name = "assunzione_electromechanic"
|
||||
name = "Sybdari Electromechanics Employee"
|
||||
desc = "Man the local branch. Offer repairs and assistance with hardware to anyone that require it. If an IPC needs repairs... Do your best."
|
||||
max_count = 2
|
||||
tags = list("External")
|
||||
spawnpoints = list("assunzione_electromechanic")
|
||||
outfit = /obj/outfit/admin/assunzione/mechanic
|
||||
possible_species = list(SPECIES_HUMAN,
|
||||
SPECIES_IPC,
|
||||
SPECIES_IPC_XION,
|
||||
SPECIES_IPC_ZENGHU,
|
||||
SPECIES_IPC_BISHOP,
|
||||
SPECIES_IPC_SHELL)
|
||||
allow_appearance_change = APPEARANCE_PLASTICSURGERY
|
||||
assigned_role = "Sybdari Electromechanics Employee"
|
||||
special_role = "Sybdari Electromechanics Employee"
|
||||
respawn_flag = null
|
||||
|
||||
/obj/outfit/admin/assunzione/mechanic
|
||||
name = "Sybdari Electromechanics Employee"
|
||||
uniform = /obj/item/clothing/under/color/lightblue
|
||||
shoes = /obj/item/clothing/shoes/laceup/brown
|
||||
id = /obj/item/card/id
|
||||
back = /obj/item/storage/backpack/satchel
|
||||
l_pocket = /obj/item/storage/wallet/random
|
||||
|
||||
/obj/outfit/admin/assunzione/mechanic/get_id_access()
|
||||
return list(ACCESS_PORTOFCALL_VENDORS)
|
||||
|
||||
/datum/ghostspawner/human/assunzione_clinic
|
||||
short_name = "assunzione_clinic"
|
||||
name = "Zeng-Hu Clinician"
|
||||
desc = "Provide medical care to those in need. Argue relentlessly for proof of insurance."
|
||||
max_count = 1
|
||||
tags = list("External")
|
||||
spawnpoints = list("assunzione_clinic")
|
||||
outfit = /obj/outfit/admin/assunzione/clinic
|
||||
possible_species = list(SPECIES_HUMAN,
|
||||
SPECIES_IPC,
|
||||
SPECIES_IPC_XION,
|
||||
SPECIES_IPC_ZENGHU,
|
||||
SPECIES_IPC_BISHOP,
|
||||
SPECIES_IPC_SHELL)
|
||||
allow_appearance_change = APPEARANCE_PLASTICSURGERY
|
||||
assigned_role = "Zeng-Hu Clinician"
|
||||
special_role = "Zeng-Hu Clinician"
|
||||
respawn_flag = null
|
||||
|
||||
/datum/ghostspawner/human/assunzione_clinic/pharmacist
|
||||
short_name = "assunzione_pharm"
|
||||
name = "Zeng-Hu Pharmacist"
|
||||
desc = "Sell medicine out of the pharmacy. Forget to check for prescriptions. Negotiate with Zeng-Hu for your latest batch of supplies."
|
||||
spawnpoints = list("assunzione_pharm")
|
||||
allow_appearance_change = APPEARANCE_PLASTICSURGERY
|
||||
assigned_role = "Zeng-Hu Pharmacist"
|
||||
special_role = "Zeng-Hu Pharmacist"
|
||||
|
||||
/obj/outfit/admin/assunzione/clinic
|
||||
name = "Zeng-Hu Clinician"
|
||||
uniform = /obj/item/clothing/under/color/white
|
||||
shoes = /obj/item/clothing/shoes/sneakers/medsci
|
||||
back = /obj/item/storage/backpack/satchel/pharm
|
||||
l_pocket = /obj/item/storage/wallet/random
|
||||
id = /obj/item/card/id
|
||||
|
||||
/obj/outfit/admin/assunzione/clinic/get_id_access()
|
||||
return list(ACCESS_PORTOFCALL_VENDORS)
|
||||
|
||||
/datum/ghostspawner/human/assunzione_utility
|
||||
short_name = "assunzione_utility"
|
||||
name = "Port Volturno Utility Worker"
|
||||
desc = "Maintain the infrastructure of Port Volturno. Replace approximately 400 light bulbs a day."
|
||||
max_count = 2
|
||||
tags = list("External")
|
||||
spawnpoints = list("assunzione_utility")
|
||||
outfit = /obj/outfit/admin/assunzione/utility
|
||||
possible_species = list(SPECIES_HUMAN,
|
||||
SPECIES_IPC,
|
||||
SPECIES_IPC_XION,
|
||||
SPECIES_IPC_ZENGHU,
|
||||
SPECIES_IPC_BISHOP,
|
||||
SPECIES_IPC_SHELL)
|
||||
allow_appearance_change = APPEARANCE_PLASTICSURGERY
|
||||
assigned_role = "Port Volturno Utility Worker"
|
||||
special_role = "Port Volturno Utility Worker"
|
||||
respawn_flag = null
|
||||
|
||||
/obj/outfit/admin/assunzione/utility
|
||||
name = "Port Volturno Utility Worker"
|
||||
uniform = /obj/item/clothing/under/color/purple
|
||||
shoes = /obj/item/clothing/shoes/workboots/dark
|
||||
head = /obj/item/clothing/head/hardhat
|
||||
id = /obj/item/card/id
|
||||
l_pocket = /obj/item/storage/wallet/random
|
||||
back = /obj/item/storage/backpack/satchel/eng
|
||||
belt = /obj/item/storage/belt/utility/full
|
||||
r_pocket = /obj/item/radio
|
||||
|
||||
/datum/ghostspawner/human/assunzione_stafylia
|
||||
short_name = "assunzione_stafylia"
|
||||
name = "Stafylia Employee"
|
||||
desc = "Sell gyros! If anyone asks for burgers, scream at them to get the hell out. Bloody tourists, this is gyro territory!"
|
||||
max_count = 2
|
||||
tags = list("External")
|
||||
spawnpoints = list("assunzione_stafylia")
|
||||
outfit = /obj/outfit/admin/assunzione/stafylia
|
||||
possible_species = list(SPECIES_HUMAN,
|
||||
SPECIES_IPC,
|
||||
SPECIES_IPC_XION,
|
||||
SPECIES_IPC_ZENGHU,
|
||||
SPECIES_IPC_BISHOP,
|
||||
SPECIES_IPC_SHELL)
|
||||
allow_appearance_change = APPEARANCE_PLASTICSURGERY
|
||||
assigned_role = "Stafylia Employee"
|
||||
special_role = "Stafylia Employee"
|
||||
respawn_flag = null
|
||||
|
||||
/obj/outfit/admin/assunzione/stafylia
|
||||
name = "Stafylia Employee"
|
||||
uniform = /obj/item/clothing/under/rank/assunzione/stafylia
|
||||
shoes = /obj/item/clothing/shoes/workboots/dark
|
||||
suit = /obj/item/clothing/accessory/apron/chef
|
||||
id = /obj/item/card/id
|
||||
l_pocket = /obj/item/storage/wallet/random
|
||||
back = /obj/item/storage/backpack/satchel
|
||||
|
||||
/obj/outfit/admin/assunzione/stafylia/get_id_access()
|
||||
return list(ACCESS_PORTOFCALL_VENDORS)
|
||||
|
||||
/datum/ghostspawner/human/assunzione_keeper
|
||||
short_name = "assunzione_keeper"
|
||||
name = "Luceist Keeper"
|
||||
desc = "Preach the Light of Ennoia! Give out warding spheres for free to Assunzionii, and to any non-believers as well (after they fork over some donation money). Show non-believers where the ATM is!"
|
||||
max_count = 1
|
||||
tags = list("External")
|
||||
spawnpoints = list("assunzione_keeper")
|
||||
outfit = /obj/outfit/admin/assunzione/keeper
|
||||
possible_species = list(SPECIES_HUMAN)
|
||||
allow_appearance_change = APPEARANCE_PLASTICSURGERY
|
||||
assigned_role = "Luceist Keeper"
|
||||
special_role = "Luceist Keeper"
|
||||
respawn_flag = null
|
||||
|
||||
/obj/outfit/admin/assunzione/keeper
|
||||
name = "Luceist Keeper"
|
||||
uniform = /obj/item/clothing/under/assunzione/priest
|
||||
shoes = /obj/item/clothing/shoes/laceup
|
||||
suit = /obj/item/clothing/suit/storage/hooded/wintercoat/assunzione_robe
|
||||
id = /obj/item/card/id
|
||||
l_pocket = /obj/item/storage/wallet/random
|
||||
back = /obj/item/storage/backpack/satchel
|
||||
|
||||
/obj/outfit/admin/assunzione/keeper/get_id_access()
|
||||
return list(ACCESS_PORTOFCALL_VENDORS)
|
||||
@@ -0,0 +1,43 @@
|
||||
|
||||
/obj/effect/shuttle_landmark/port_volturno
|
||||
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
||||
|
||||
/obj/effect/shuttle_landmark/port_volturno/spaceport_intrepid
|
||||
name = "Port Volturno, Landing Pad A (Intrepid)"
|
||||
landmark_tag = "nav_port_volturno_spaceport_intrepid"
|
||||
|
||||
/obj/effect/shuttle_landmark/port_volturno/spaceport_quark
|
||||
name = "Port Volturno, Landing Pad B (Quark)"
|
||||
landmark_tag = "nav_port_volturno_spaceport_quark"
|
||||
|
||||
/obj/effect/shuttle_landmark/port_volturno/spaceport_spark
|
||||
name = "Port Volturno, Landing Pad C (Spark)"
|
||||
landmark_tag = "nav_port_volturno_spaceport_spark"
|
||||
|
||||
/obj/effect/shuttle_landmark/port_volturno/offship
|
||||
landmark_flags = 0
|
||||
|
||||
/obj/effect/shuttle_landmark/port_volturno/offship/dock_01
|
||||
name = "Port Volturno, Docking Point E01"
|
||||
landmark_tag = "nav_port_volturno_altdock_01"
|
||||
|
||||
/obj/effect/shuttle_landmark/port_volturno/offship/dock_02
|
||||
name = "Port Volturno, Docking Point E02"
|
||||
landmark_tag = "nav_port_volturno_altdock_02"
|
||||
|
||||
/obj/effect/shuttle_landmark/port_volturno/offship/dock_03
|
||||
name = "Port Volturno, Docking Point E03"
|
||||
landmark_tag = "nav_port_volturno_altdock_03"
|
||||
|
||||
/obj/effect/shuttle_landmark/port_volturno/offship/dock_04
|
||||
name = "Port Volturno, Docking Point E01"
|
||||
landmark_tag = "nav_port_volturno_altdock_04"
|
||||
|
||||
/obj/effect/shuttle_landmark/port_volturno/offship/dock_05
|
||||
name = "Port Volturno, Docking Point E02"
|
||||
landmark_tag = "nav_port_volturno_altdock_05"
|
||||
|
||||
/obj/effect/shuttle_landmark/port_volturno/offship/dock_06
|
||||
name = "Port Volturno, Docking Point E03"
|
||||
landmark_tag = "nav_port_volturno_altdock_06"
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
r_pocket = /obj/item/storage/wallet/random
|
||||
|
||||
/obj/outfit/admin/konyang/zh/get_id_access()
|
||||
return list(ACCESS_KONYANG_CORPORATE)
|
||||
return list(ACCESS_PORTOFCALL_CORPORATE)
|
||||
|
||||
/datum/ghostspawner/human/konyang_ee
|
||||
short_name = "konyang_ee"
|
||||
@@ -56,7 +56,7 @@
|
||||
r_pocket = /obj/item/storage/wallet/random
|
||||
|
||||
/obj/outfit/admin/konyang/ee/get_id_access()
|
||||
return list(ACCESS_KONYANG_CORPORATE)
|
||||
return list(ACCESS_PORTOFCALL_CORPORATE)
|
||||
|
||||
//Police
|
||||
/datum/ghostspawner/human/konyang_cop
|
||||
@@ -86,7 +86,7 @@
|
||||
back = /obj/item/storage/backpack/satchel
|
||||
|
||||
/obj/outfit/admin/konyang/cop/get_id_access()
|
||||
return list(ACCESS_KONYANG_POLICE)
|
||||
return list(ACCESS_PORTOFCALL_POLICE)
|
||||
|
||||
/datum/ghostspawner/human/konyang_cop/senior
|
||||
short_name = "konyang_senior_cop"
|
||||
@@ -180,7 +180,7 @@
|
||||
id = /obj/item/card/id
|
||||
|
||||
/obj/outfit/admin/konyang/vendor/get_id_access()
|
||||
return list(ACCESS_KONYANG_VENDORS)
|
||||
return list(ACCESS_PORTOFCALL_VENDORS)
|
||||
|
||||
/datum/ghostspawner/human/konyang_clinic
|
||||
short_name = "konyang_clinic"
|
||||
@@ -205,7 +205,7 @@
|
||||
l_pocket = /obj/item/storage/wallet/random
|
||||
|
||||
/obj/outfit/admin/konyang/clinic/get_id_access()
|
||||
return list(ACCESS_KONYANG_VENDORS)
|
||||
return list(ACCESS_PORTOFCALL_VENDORS)
|
||||
|
||||
/datum/ghostspawner/human/konyang_pharm
|
||||
short_name = "konyang_pharm"
|
||||
@@ -230,7 +230,7 @@
|
||||
id = /obj/item/card/id
|
||||
|
||||
/obj/outfit/admin/konyang/pharm/get_id_access()
|
||||
return list(ACCESS_KONYANG_VENDORS)
|
||||
return list(ACCESS_PORTOFCALL_VENDORS)
|
||||
|
||||
/datum/ghostspawner/human/konyang_bar
|
||||
short_name = "konyang_bar"
|
||||
@@ -255,7 +255,7 @@
|
||||
id = /obj/item/card/id
|
||||
|
||||
/obj/outfit/admin/konyang/bar/get_id_access()
|
||||
return list(ACCESS_KONYANG_VENDORS)
|
||||
return list(ACCESS_PORTOFCALL_VENDORS)
|
||||
|
||||
/datum/ghostspawner/human/konyang_utility
|
||||
short_name = "konyang_utility"
|
||||
@@ -307,7 +307,7 @@
|
||||
back = /obj/item/storage/backpack/satchel
|
||||
|
||||
/obj/outfit/admin/konyang/gwok/get_id_access()
|
||||
return list(ACCESS_KONYANG_VENDORS)
|
||||
return list(ACCESS_PORTOFCALL_VENDORS)
|
||||
|
||||
//Konyang Army Personnel - basically a pseudo-ert for if shit's going down on Point Verdant
|
||||
/datum/ghostspawner/human/konyang_army
|
||||
@@ -346,7 +346,7 @@
|
||||
|
||||
|
||||
/obj/outfit/admin/konyang/army_response/get_id_access()
|
||||
return list(ACCESS_DISTRESS, ACCESS_KONYANG_POLICE, ACCESS_KONYANG_CORPORATE, ACCESS_KONYANG_POLICE, ACCESS_EXTERNAL_AIRLOCKS)
|
||||
return list(ACCESS_DISTRESS, ACCESS_PORTOFCALL_POLICE, ACCESS_PORTOFCALL_CORPORATE, ACCESS_PORTOFCALL_POLICE, ACCESS_EXTERNAL_AIRLOCKS)
|
||||
|
||||
/datum/ghostspawner/human/konyang_army/medic
|
||||
name = "Konyang Army Medic"
|
||||
@@ -436,7 +436,7 @@
|
||||
back = null
|
||||
|
||||
/obj/outfit/admin/corporate_solutions/get_id_access()
|
||||
return list(ACCESS_CENT_SPECOPS, ACCESS_KONYANG_CORPORATE, ACCESS_EXTERNAL_AIRLOCKS)
|
||||
return list(ACCESS_CENT_SPECOPS, ACCESS_PORTOFCALL_CORPORATE, ACCESS_EXTERNAL_AIRLOCKS)
|
||||
|
||||
/datum/ghostspawner/human/corporate_solutions/einstein
|
||||
name = "Einstein Corporate Solutions Agent"
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
tag.citizenship_info = CITIZENSHIP_COALITION
|
||||
|
||||
/obj/outfit/admin/kasf_crewman/get_id_access()
|
||||
return list(ACCESS_KONYANG_POLICE, ACCESS_EXTERNAL_AIRLOCKS)
|
||||
return list(ACCESS_PORTOFCALL_POLICE, ACCESS_EXTERNAL_AIRLOCKS)
|
||||
|
||||
// kasf engineer
|
||||
/datum/ghostspawner/human/kasf_crewman/engineer
|
||||
@@ -106,4 +106,4 @@
|
||||
|
||||
/obj/item/card/id/kasf_corvette
|
||||
name = "kasf corvette id"
|
||||
access = list(ACCESS_KONYANG_POLICE, ACCESS_EXTERNAL_AIRLOCKS)
|
||||
access = list(ACCESS_PORTOFCALL_POLICE, ACCESS_EXTERNAL_AIRLOCKS)
|
||||
|
||||
@@ -57,9 +57,9 @@
|
||||
id = /obj/item/card/id/konyang_army
|
||||
|
||||
/obj/outfit/admin/konyang/army/get_id_access()
|
||||
return list(ACCESS_KONYANG_POLICE, ACCESS_EXTERNAL_AIRLOCKS)
|
||||
return list(ACCESS_PORTOFCALL_POLICE, ACCESS_EXTERNAL_AIRLOCKS)
|
||||
|
||||
/obj/item/card/id/konyang_army
|
||||
name = "konyang army id"
|
||||
access = list(ACCESS_KONYANG_POLICE, ACCESS_EXTERNAL_AIRLOCKS)
|
||||
access = list(ACCESS_PORTOFCALL_POLICE, ACCESS_EXTERNAL_AIRLOCKS)
|
||||
|
||||
|
||||