mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2025-12-10 04:06:00 +00:00
Ha ha, I have no idea what I'm doing.
This commit is contained in:
@@ -127,8 +127,10 @@
|
||||
// /turf signals
|
||||
#define COMSIG_TURF_CHANGE "turf_change" //from base of turf/ChangeTurf(): (path, list/new_baseturfs, flags, list/transferring_comps)
|
||||
#define COMSIG_TURF_HAS_GRAVITY "turf_has_gravity" //from base of atom/has_gravity(): (atom/asker, list/forced_gravities)
|
||||
#define COMSIG_TURF_MULTIZ_NEW "turf_multiz_new" //from base of turf/New(): (turf/source, direction)
|
||||
*/
|
||||
#define COMSIG_TURF_MULTIZ_DEL "turf_multiz_del"
|
||||
///from base of turf/multiz_turf_new: (turf/source, direction)
|
||||
#define COMSIG_TURF_MULTIZ_NEW "turf_multiz_new"
|
||||
|
||||
// /atom/movable signals
|
||||
#define COMSIG_MOVABLE_PRE_MOVE "movable_pre_move" //from base of atom/movable/Moved(): (/atom)
|
||||
|
||||
@@ -16,3 +16,9 @@ GLOBAL_VAR(bible_icon_state)
|
||||
GLOBAL_VAR(bible_item_state)
|
||||
GLOBAL_VAR(holy_weapon_type)
|
||||
GLOBAL_VAR(holy_armor_type)
|
||||
|
||||
//Vore Port
|
||||
GLOBAL_LIST_EMPTY(error_last_seen)
|
||||
GLOBAL_LIST_EMPTY(error_cooldown)
|
||||
|
||||
GLOBAL_DATUM_INIT(destroyed_event, /decl/observ/destroyed, new())
|
||||
|
||||
84
code/datums/elements/turf_transparency.dm
Normal file
84
code/datums/elements/turf_transparency.dm
Normal file
@@ -0,0 +1,84 @@
|
||||
|
||||
/datum/element/turf_z_transparency
|
||||
var/show_bottom_level = FALSE
|
||||
|
||||
///This proc sets up the signals to handle updating viscontents when turfs above/below update. Handle plane and layer here too so that they don't cover other obs/turfs in Dream Maker
|
||||
/datum/element/turf_z_transparency/Attach(datum/target, show_bottom_level = TRUE)
|
||||
. = ..()
|
||||
if(!isturf(target))
|
||||
return ELEMENT_INCOMPATIBLE
|
||||
|
||||
var/turf/our_turf = target
|
||||
|
||||
src.show_bottom_level = show_bottom_level
|
||||
|
||||
our_turf.plane = OPENSPACE_PLANE
|
||||
//our_turf.layer = OPENSPACE_LAYER
|
||||
|
||||
RegisterSignal(target, COMSIG_TURF_MULTIZ_DEL, .proc/on_multiz_turf_del, override = TRUE)
|
||||
RegisterSignal(target, COMSIG_TURF_MULTIZ_NEW, .proc/on_multiz_turf_new, override = TRUE)
|
||||
|
||||
update_multiz(our_turf, TRUE, TRUE)
|
||||
|
||||
/datum/element/turf_z_transparency/Detach(datum/source)
|
||||
. = ..()
|
||||
var/turf/our_turf = source
|
||||
our_turf.vis_contents.len = 0
|
||||
UnregisterSignal(our_turf, COMSIG_TURF_MULTIZ_DEL)
|
||||
UnregisterSignal(our_turf, COMSIG_TURF_MULTIZ_NEW)
|
||||
|
||||
///Updates the viscontents or underlays below this tile.
|
||||
/datum/element/turf_z_transparency/proc/update_multiz(turf/our_turf, prune_on_fail = FALSE, init = FALSE)
|
||||
var/turf/below_turf = GetBelow(our_turf)
|
||||
if(!below_turf)
|
||||
our_turf.vis_contents.len = 0
|
||||
if(!show_bottom_level(our_turf) && prune_on_fail) //If we cant show whats below, and we prune on fail, change the turf to plating as a fallback
|
||||
our_turf.ChangeTurf(/turf/simulated/floor/plating)
|
||||
return FALSE
|
||||
else
|
||||
return TRUE
|
||||
if(init)
|
||||
below_turf?.update_icon() // So the 'ceiling-less' overlay gets added.
|
||||
our_turf.vis_contents += below_turf
|
||||
|
||||
if(is_blocked_turf(our_turf)) //Show girders below closed turfs
|
||||
var/mutable_appearance/girder_underlay = mutable_appearance('icons/obj/structures.dmi', "girder", layer = TURF_LAYER-0.01)
|
||||
girder_underlay.appearance_flags = RESET_ALPHA | RESET_COLOR
|
||||
our_turf.underlays += girder_underlay
|
||||
var/mutable_appearance/plating_underlay = mutable_appearance('icons/turf/floors.dmi', "plating", layer = TURF_LAYER-0.02)
|
||||
plating_underlay = RESET_ALPHA | RESET_COLOR
|
||||
our_turf.underlays += plating_underlay
|
||||
return TRUE
|
||||
|
||||
/datum/element/turf_z_transparency/proc/on_multiz_turf_del(turf/our_turf, turf/below_turf, dir)
|
||||
if(dir != DOWN)
|
||||
return
|
||||
|
||||
update_multiz(our_turf)
|
||||
|
||||
/datum/element/turf_z_transparency/proc/on_multiz_turf_new(turf/our_turf, turf/below_turf, dir)
|
||||
|
||||
if(dir != DOWN)
|
||||
return
|
||||
|
||||
update_multiz(our_turf)
|
||||
|
||||
///Called when there is no real turf below this turf
|
||||
/datum/element/turf_z_transparency/proc/show_bottom_level(turf/our_turf)
|
||||
if(!show_bottom_level)
|
||||
return FALSE
|
||||
var/turf/path = get_base_turf_by_area(our_turf) || /turf/space
|
||||
if(!ispath(path))
|
||||
path = text2path(path)
|
||||
if(!ispath(path))
|
||||
warning("Z-level [our_turf] has invalid baseturf '[get_base_turf_by_area(our_turf)]' in area '[get_area(our_turf)]'")
|
||||
path = /turf/space
|
||||
|
||||
var/do_plane = ispath(path, /turf/space) ? SPACE_PLANE : null
|
||||
var/do_state = ispath(path, /turf/space) ? "white" : initial(path.icon_state)
|
||||
|
||||
var/mutable_appearance/underlay_appearance = mutable_appearance(initial(path.icon), do_state, layer = TURF_LAYER-0.02, plane = do_plane)
|
||||
underlay_appearance.appearance_flags = RESET_ALPHA | RESET_COLOR
|
||||
our_turf.underlays += underlay_appearance
|
||||
|
||||
return TRUE
|
||||
15
code/datums/observation/destroyed.dm
Normal file
15
code/datums/observation/destroyed.dm
Normal file
@@ -0,0 +1,15 @@
|
||||
// Observer Pattern Implementation: Destroyed
|
||||
// Registration type: /datum
|
||||
//
|
||||
// Raised when: A /datum instance is destroyed.
|
||||
//
|
||||
// Arguments that the called proc should expect:
|
||||
// /datum/destroyed_instance: The instance that was destroyed.
|
||||
|
||||
/decl/observ/destroyed
|
||||
name = "Destroyed"
|
||||
|
||||
/datum/Destroy()
|
||||
if(GLOB.destroyed_event)
|
||||
GLOB.destroyed_event.raise_event(src)
|
||||
. = ..()
|
||||
@@ -13,7 +13,7 @@
|
||||
attack_verb = list("attacked", "bonked", "hit")
|
||||
var/min_name_len = 4 // Refuse if shuttle tag is shorter than this.
|
||||
var/max_name_len = 32 // Refuse if shuttle tag is longer than this.
|
||||
var/max_area_turfs = 256 // Refuse if area has more than this many turfs.
|
||||
var/max_area_turfs = 140 // Refuse if area has more than this many turfs.
|
||||
|
||||
/obj/item/champagne/afterattack(var/atom/A, mob/user as mob, proximity)
|
||||
if(!proximity)
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
. = ..()
|
||||
if(prob(50))
|
||||
var/turf/T = get_turf(src)
|
||||
if(!isspace(T) && !istype(T, /turf/simulated/floor/carpet))
|
||||
if(!istype(T, /turf/space) && !istype(T, /turf/simulated/floor/carpet))
|
||||
playsound(T, pick(move_sounds), 50, 1)
|
||||
|
||||
/obj/structure/ship_munition/disperser_charge/fire
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
var/skybox_pixel_x //Shift from lower left corner of skybox
|
||||
var/skybox_pixel_y //Shift from lower left corner of skybox
|
||||
var/image/cached_skybox_image //Cachey
|
||||
var/image/real_appearance
|
||||
|
||||
//Overlay of how this object should look on other skyboxes
|
||||
/obj/effect/overmap/proc/get_skybox_representation()
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
//===================================================================================
|
||||
//Overmap object representing zlevel(s)
|
||||
//===================================================================================
|
||||
@@ -7,27 +6,36 @@
|
||||
scannable = TRUE
|
||||
scanner_desc = "!! No Data Available !!"
|
||||
|
||||
var/list/map_z = list()
|
||||
var/list/extra_z_levels // If you need to manually insist that these z-levels are part of this sector, for things like edge-of-map step trigger transitions rather than multi-z complexes
|
||||
icon_state = "generic"
|
||||
|
||||
var/list/initial_generic_waypoints // Store landmark_tag of landmarks that should be added to the actual lists below on init.
|
||||
/// Name prior to being scanned if !known
|
||||
var/unknown_name = "unknown sector"
|
||||
/// Icon_state prior to being scanned if !known
|
||||
var/unknown_state = "field"
|
||||
|
||||
var/list/map_z = list()
|
||||
var/list/extra_z_levels //if you need to manually insist that these z-levels are part of this sector, for things like edge-of-map step trigger transitions rather than multi-z complexes
|
||||
|
||||
var/list/initial_generic_waypoints //store landmark_tag of landmarks that should be added to the actual lists below on init.
|
||||
var/list/initial_restricted_waypoints //For use with non-automatic landmarks (automatic ones add themselves).
|
||||
|
||||
var/list/generic_waypoints = list() // Waypoints that any shuttle can use
|
||||
var/list/restricted_waypoints = list() // Waypoints for specific shuttles
|
||||
var/list/generic_waypoints = list() //waypoints that any shuttle can use
|
||||
var/list/restricted_waypoints = list() //waypoints for specific shuttles
|
||||
var/docking_codes
|
||||
|
||||
var/start_x //Coordinates for self placing
|
||||
var/start_y // Will use random values if unset
|
||||
var/start_y //will use random values if unset
|
||||
|
||||
var/base = 0 // Starting sector, counts as station_levels
|
||||
var/in_space = 1 // Can be accessed via lucky EVA
|
||||
var/base = 0 //starting sector, counts as station_levels
|
||||
var/in_space = 1 //can be accessed via lucky EVA
|
||||
|
||||
var/hide_from_reports = FALSE
|
||||
|
||||
var/has_distress_beacon
|
||||
var/list/levels_for_distress
|
||||
var/list/unowned_areas // areas we don't own despite them being present on our z
|
||||
|
||||
/obj/effect/overmap/visitable/Initialize(mapload)
|
||||
/obj/effect/overmap/visitable/Initialize()
|
||||
. = ..()
|
||||
if(. == INITIALIZE_HINT_QDEL)
|
||||
return
|
||||
@@ -35,6 +43,9 @@
|
||||
find_z_levels() // This populates map_z and assigns z levels to the ship.
|
||||
register_z_levels() // This makes external calls to update global z level information.
|
||||
|
||||
if(!GLOB.using_map.overmap_z)
|
||||
build_overmap()
|
||||
|
||||
start_x = start_x || rand(OVERMAP_EDGE, GLOB.using_map.overmap_size - OVERMAP_EDGE)
|
||||
start_y = start_y || rand(OVERMAP_EDGE, GLOB.using_map.overmap_size - OVERMAP_EDGE)
|
||||
|
||||
@@ -47,7 +58,26 @@
|
||||
LAZYADD(SSshuttle.sectors_to_initialize, src) //Queued for further init. Will populate the waypoint lists; waypoints not spawned yet will be added in as they spawn.
|
||||
SSshuttle.process_init_queues()
|
||||
|
||||
// This is called later in the init order by SSshuttle to populate sector objects. Importantly for subtypes, shuttles will be created by then.
|
||||
if(known)
|
||||
plane = PLANE_LIGHTING_ABOVE
|
||||
for(var/obj/machinery/computer/ship/helm/H in global.machines)
|
||||
H.get_known_sectors()
|
||||
else
|
||||
real_appearance = image(icon, src, icon_state)
|
||||
real_appearance.override = TRUE
|
||||
name = unknown_name
|
||||
icon_state = unknown_state
|
||||
color = null
|
||||
desc = "Scan this to find out more information."
|
||||
|
||||
|
||||
// You generally shouldn't destroy these.
|
||||
/obj/effect/overmap/visitable/Destroy()
|
||||
testing("Deleting [src] overmap sector at [x],[y]")
|
||||
unregister_z_levels()
|
||||
return ..()
|
||||
|
||||
//This is called later in the init order by SSshuttles to populate sector objects. Importantly for subtypes, shuttles will be created by then.
|
||||
/obj/effect/overmap/visitable/proc/populate_sector_objects()
|
||||
|
||||
/obj/effect/overmap/visitable/proc/get_areas()
|
||||
@@ -69,10 +99,34 @@
|
||||
GLOB.using_map.player_levels |= map_z
|
||||
if(!in_space)
|
||||
GLOB.using_map.sealed_levels |= map_z
|
||||
/* VOREStation Removal - We have a map system that does this already.
|
||||
if(base)
|
||||
GLOB.using_map.station_levels |= map_z
|
||||
GLOB.using_map.contact_levels |= map_z
|
||||
GLOB.using_map.map_levels |= map_z
|
||||
global.using_map.station_levels |= map_z
|
||||
global.using_map.contact_levels |= map_z
|
||||
global.using_map.map_levels |= map_z
|
||||
*/
|
||||
|
||||
/obj/effect/overmap/visitable/proc/unregister_z_levels()
|
||||
map_sectors -= map_z
|
||||
|
||||
GLOB.using_map.player_levels -= map_z
|
||||
if(!in_space)
|
||||
GLOB.using_map.sealed_levels -= map_z
|
||||
/* VOREStation Removal - We have a map system that does this already.
|
||||
if(base)
|
||||
global.using_map.station_levels -= map_z
|
||||
global.using_map.contact_levels -= map_z
|
||||
global.using_map.map_levels -= map_z
|
||||
*/
|
||||
|
||||
/obj/effect/overmap/visitable/get_scan_data()
|
||||
if(!known)
|
||||
known = TRUE
|
||||
name = initial(name)
|
||||
icon_state = initial(icon_state)
|
||||
color = initial(color)
|
||||
desc = initial(desc)
|
||||
return ..()
|
||||
|
||||
/obj/effect/overmap/visitable/proc/get_space_zlevels()
|
||||
if(in_space)
|
||||
@@ -82,7 +136,12 @@
|
||||
|
||||
//Helper for init.
|
||||
/obj/effect/overmap/visitable/proc/check_ownership(obj/object)
|
||||
if((object.z in map_z) && !(get_area(object) in SSshuttle.shuttle_areas))
|
||||
var/area/A = get_area(object)
|
||||
if(A in SSshuttle.shuttle_areas)
|
||||
return 0
|
||||
if(is_type_in_list(A, unowned_areas))
|
||||
return 0
|
||||
if(get_z(object) in map_z)
|
||||
return 1
|
||||
|
||||
//If shuttle_name is false, will add to generic waypoints; otherwise will add to restricted. Does not do checks.
|
||||
@@ -110,9 +169,12 @@
|
||||
for(var/thing in restricted_waypoints[shuttle_name])
|
||||
.[thing] = name
|
||||
|
||||
/obj/effect/overmap/visitable/proc/generate_skybox()
|
||||
/obj/effect/overmap/visitable/proc/generate_skybox(zlevel)
|
||||
return
|
||||
|
||||
/obj/effect/overmap/visitable/proc/cleanup()
|
||||
return FALSE
|
||||
|
||||
/obj/effect/overmap/visitable/MouseEntered(location, control, params)
|
||||
openToolTip(user = usr, tip_src = src, params = params, title = name)
|
||||
|
||||
@@ -132,12 +194,46 @@
|
||||
name = "generic sector"
|
||||
desc = "Sector with some stuff in it."
|
||||
icon_state = "sector"
|
||||
anchored = 1
|
||||
anchored = TRUE
|
||||
|
||||
// Because of the way these are spawned, they will potentially have their invisibility adjusted by the turfs they are mapped on
|
||||
// prior to being moved to the overmap. This blocks that. Use set_invisibility to adjust invisibility as needed instead.
|
||||
/obj/effect/overmap/visitable/sector/hide()
|
||||
|
||||
/obj/effect/overmap/visitable/proc/distress(mob/user)
|
||||
if(has_distress_beacon)
|
||||
return FALSE
|
||||
has_distress_beacon = TRUE
|
||||
|
||||
admin_chat_message(message = "Overmap panic button hit on z[z] ([name]) by '[user?.ckey || "Unknown"]'", color = "#FF2222") //VOREStation Add
|
||||
var/message = "This is an automated distress signal from a MIL-DTL-93352-compliant beacon transmitting on [PUB_FREQ*0.1]kHz. \
|
||||
This beacon was launched from '[initial(name)]'. I can provide this additional information to rescuers: [get_distress_info()]. \
|
||||
Per the Interplanetary Convention on Space SAR, those receiving this message must attempt rescue, \
|
||||
or relay the message to those who can. This message will repeat one time in 5 minutes. Thank you for your urgent assistance."
|
||||
|
||||
if(!levels_for_distress)
|
||||
levels_for_distress = list(1)
|
||||
for(var/zlevel in levels_for_distress)
|
||||
priority_announcement.Announce(message, new_title = "Automated Distress Signal", new_sound = 'sound/AI/sos.ogg', zlevel = zlevel)
|
||||
|
||||
var/image/I = image(icon, icon_state = "distress")
|
||||
I.plane = PLANE_LIGHTING_ABOVE
|
||||
I.appearance_flags = KEEP_APART|RESET_TRANSFORM|RESET_COLOR
|
||||
add_overlay(I)
|
||||
|
||||
addtimer(CALLBACK(src, .proc/distress_update), 5 MINUTES)
|
||||
return TRUE
|
||||
|
||||
/obj/effect/overmap/visitable/proc/get_distress_info()
|
||||
return "\[X:[x], Y:[y]\]"
|
||||
|
||||
/obj/effect/overmap/visitable/proc/distress_update()
|
||||
var/message = "This is the final message from the distress beacon launched from '[initial(name)]'. I can provide this additional information to rescuers: [get_distress_info()]. \
|
||||
Please render assistance under your obligations per the Interplanetary Convention on Space SAR, or relay this message to a party who can. Thank you for your urgent assistance."
|
||||
|
||||
for(var/zlevel in levels_for_distress)
|
||||
priority_announcement.Announce(message, new_title = "Automated Distress Signal", new_sound = 'sound/AI/sos.ogg', zlevel = zlevel)
|
||||
|
||||
/proc/build_overmap()
|
||||
if(!GLOB.using_map.use_overmap)
|
||||
return 1
|
||||
|
||||
73
code/modules/overmap/ships/panicbutton.dm
Normal file
73
code/modules/overmap/ships/panicbutton.dm
Normal file
@@ -0,0 +1,73 @@
|
||||
/obj/structure/panic_button
|
||||
name = "distress beacon trigger"
|
||||
desc = "WARNING: Will deploy ship's distress beacon and request help. Misuse may result in fines and jail time."
|
||||
description_info = "Using this device (smashing the glas on harm intent, and then pressing the button) will send a message to people on other z-levels requesting their aid. It may take them a while to come get you, as they'll need to prepare. You should only use this if you really need it."
|
||||
icon = 'icons/obj/objects_vr.dmi'
|
||||
icon_state = "panicbutton"
|
||||
anchored = TRUE
|
||||
|
||||
var/glass = TRUE
|
||||
var/launched = FALSE
|
||||
|
||||
// In case we're annihilated by a meteor
|
||||
/obj/structure/panic_button/Destroy()
|
||||
if(!launched)
|
||||
launch()
|
||||
return ..()
|
||||
|
||||
/obj/structure/panic_button/update_icon()
|
||||
if(launched)
|
||||
icon_state = "[initial(icon_state)]_launched"
|
||||
else if(!glass)
|
||||
icon_state = "[initial(icon_state)]_open"
|
||||
else
|
||||
icon_state = "[initial(icon_state)]"
|
||||
|
||||
/obj/structure/panic_button/attack_hand(mob/living/user)
|
||||
if(!istype(user))
|
||||
return ..()
|
||||
|
||||
if(user.incapacitated())
|
||||
return
|
||||
|
||||
// Already launched
|
||||
if(launched)
|
||||
to_chat(user, "<span class='warning'>The button is already depressed; the beacon has been launched already.</span>")
|
||||
// Glass present
|
||||
else if(glass)
|
||||
if(user.a_intent == INTENT_HARM)
|
||||
visible_message("<span class='warning'>smashes the glass on [src]!</span>")
|
||||
glass = FALSE
|
||||
playsound(src, 'sound/effects/hit_on_shattered_glass.ogg')
|
||||
update_icon()
|
||||
else
|
||||
visible_message("<span class='notice'>pats [src] in a friendly manner.</span>")
|
||||
to_chat(user, "<span class='warning'>If you're trying to break the glass, you'll have to hit it harder than that...</span>")
|
||||
// Must be !glass and !launched
|
||||
else
|
||||
user.custom_emote("<span class='warning'>pushes the button on [src]!</span>")
|
||||
launch(user)
|
||||
playsound(src, get_sfx("button"))
|
||||
update_icon()
|
||||
|
||||
/obj/structure/panic_button/proc/launch(mob/living/user)
|
||||
if(launched)
|
||||
return
|
||||
launched = TRUE
|
||||
var/obj/effect/overmap/visitable/S = get_overmap_sector(z)
|
||||
if(!S)
|
||||
visible_message("<span class='danger'>Distress button hit on z[z] but that's not an overmap sector...</span>")
|
||||
return
|
||||
S.distress(user)
|
||||
//Kind of pricey, but this is a one-time thing that can't be reused, so I'm not too worried.
|
||||
var/list/hear_z = GetConnectedZlevels(z) // multiz 'physical' connections only, not crazy overmap connections
|
||||
|
||||
var/mapsize = (world.maxx+world.maxy)*0.5
|
||||
var/turf/us = get_turf(src)
|
||||
|
||||
for(var/hz in hear_z)
|
||||
for(var/mob/M as anything in GLOB.players_by_zlevel[hz])
|
||||
var/sound/SND = sound('sound/misc/emergency_beacon_launched.ogg') // Inside the loop because playsound_local modifies it for each person, so, need separate instances
|
||||
var/turf/them = get_turf(M)
|
||||
var/volume = max(0.20, 1-(get_dist(us,them) / mapsize*0.8))*100
|
||||
M.playsound_local(get_turf(M), SND, vol = volume)
|
||||
@@ -261,6 +261,12 @@
|
||||
/obj/effect/overmap/visitable/ship/proc/get_landed_info()
|
||||
return "This ship cannot land."
|
||||
|
||||
/obj/effect/overmap/visitable/ship/get_distress_info()
|
||||
var/turf/T = get_turf(src) // Usually we're on the turf, but sometimes we might be landed or something.
|
||||
var/x_to_use = T?.x || "UNK"
|
||||
var/y_to_use = T?.y || "UNK"
|
||||
return "\[X:[x_to_use], Y:[y_to_use], VEL:[get_speed() * 1000], HDG:[get_heading_degrees()]\]"
|
||||
|
||||
#undef MOVING
|
||||
#undef SANITIZE_SPEED
|
||||
#undef CHANGE_SPEED_BY
|
||||
|
||||
@@ -50,7 +50,7 @@ var/global/list/map_sectors = list()
|
||||
else
|
||||
. = ..()
|
||||
|
||||
/turf/unsimulated/map/Initialize(mapload)
|
||||
/turf/unsimulated/map/Initialize()
|
||||
. = ..()
|
||||
name = "[x]-[y]"
|
||||
var/list/numbers = list()
|
||||
@@ -77,6 +77,7 @@ var/global/list/map_sectors = list()
|
||||
if(x == GLOB.using_map.overmap_size)
|
||||
I.pixel_x = 5*i + 2
|
||||
add_overlay(I)
|
||||
AddElement(/datum/element/turf_z_transparency)
|
||||
|
||||
/turf/unsimulated/map/Entered(var/atom/movable/O, var/atom/oldloc)
|
||||
..()
|
||||
|
||||
@@ -251,6 +251,14 @@
|
||||
Z_LEVEL_UNDERDARK
|
||||
)
|
||||
|
||||
levels_for_distress = list(
|
||||
Z_LEVEL_OFFMAP1,
|
||||
Z_LEVEL_BEACH,
|
||||
Z_LEVEL_AEROSTAT,
|
||||
Z_LEVEL_DEBRISFIELD,
|
||||
Z_LEVEL_FUELDEPOT
|
||||
)
|
||||
|
||||
//Port of Triumph Overmap Visitable Effects
|
||||
/obj/effect/overmap/visitable/sector/debrisfield
|
||||
name = "Debris Field"
|
||||
|
||||
BIN
sound/AI/sos.ogg
Normal file
BIN
sound/AI/sos.ogg
Normal file
Binary file not shown.
BIN
sound/effects/metalscrape1.ogg
Normal file
BIN
sound/effects/metalscrape1.ogg
Normal file
Binary file not shown.
BIN
sound/effects/metalscrape2.ogg
Normal file
BIN
sound/effects/metalscrape2.ogg
Normal file
Binary file not shown.
BIN
sound/effects/metalscrape3.ogg
Normal file
BIN
sound/effects/metalscrape3.ogg
Normal file
Binary file not shown.
BIN
sound/machines/disperser_fire.ogg
Normal file
BIN
sound/machines/disperser_fire.ogg
Normal file
Binary file not shown.
BIN
sound/misc/emergency_beacon_launched.ogg
Normal file
BIN
sound/misc/emergency_beacon_launched.ogg
Normal file
Binary file not shown.
@@ -333,6 +333,7 @@
|
||||
#include "code\datums\elements\_element.dm"
|
||||
#include "code\datums\elements\conflict_checking.dm"
|
||||
#include "code\datums\elements\persistence.dm"
|
||||
#include "code\datums\elements\turf_transparency.dm"
|
||||
#include "code\datums\helper_datums\construction_datum.dm"
|
||||
#include "code\datums\helper_datums\events.dm"
|
||||
#include "code\datums\helper_datums\getrev.dm"
|
||||
@@ -354,6 +355,7 @@
|
||||
#include "code\datums\looping_sounds\weather_sounds.dm"
|
||||
#include "code\datums\observation\_debug.dm"
|
||||
#include "code\datums\observation\_defines.dm"
|
||||
#include "code\datums\observation\destroyed.dm"
|
||||
#include "code\datums\observation\observation.dm"
|
||||
#include "code\datums\observation\shuttle_added.dm"
|
||||
#include "code\datums\observation\shuttle_moved.dm"
|
||||
@@ -2958,24 +2960,33 @@
|
||||
#include "code\modules\organs\subtypes\vox_vr.dm"
|
||||
#include "code\modules\organs\subtypes\xenochimera.dm"
|
||||
#include "code\modules\organs\subtypes\xenos.dm"
|
||||
#include "code\modules\overmap\abductor_vr.dm"
|
||||
#include "code\modules\overmap\bluespace_rift.dm"
|
||||
#include "code\modules\overmap\champagne.dm"
|
||||
#include "code\modules\overmap\helpers.dm"
|
||||
#include "code\modules\overmap\overmap_object.dm"
|
||||
#include "code\modules\overmap\overmap_planet.dm"
|
||||
#include "code\modules\overmap\overmap_shuttle.dm"
|
||||
#include "code\modules\overmap\sectors.dm"
|
||||
#include "code\modules\overmap\spacetravel.dm"
|
||||
#include "code\modules\overmap\turfs.dm"
|
||||
#include "code\modules\overmap\disperser\disperser.dm"
|
||||
#include "code\modules\overmap\disperser\disperser_charge.dm"
|
||||
#include "code\modules\overmap\disperser\disperser_circuit.dm"
|
||||
#include "code\modules\overmap\disperser\disperser_console.dm"
|
||||
#include "code\modules\overmap\disperser\disperser_fire.dm"
|
||||
#include "code\modules\overmap\events\event_handler.dm"
|
||||
#include "code\modules\overmap\events\generation.dm"
|
||||
#include "code\modules\overmap\events\overmap_event.dm"
|
||||
#include "code\modules\overmap\ships\landable.dm"
|
||||
#include "code\modules\overmap\ships\panicbutton.dm"
|
||||
#include "code\modules\overmap\ships\ship.dm"
|
||||
#include "code\modules\overmap\ships\computers\computer_shims.dm"
|
||||
#include "code\modules\overmap\ships\computers\engine_control.dm"
|
||||
#include "code\modules\overmap\ships\computers\helm.dm"
|
||||
#include "code\modules\overmap\ships\computers\sensors.dm"
|
||||
#include "code\modules\overmap\ships\computers\ship.dm"
|
||||
#include "code\modules\overmap\ships\computers\ship_vr.dm"
|
||||
#include "code\modules\overmap\ships\computers\shuttle.dm"
|
||||
#include "code\modules\overmap\ships\engines\engine.dm"
|
||||
#include "code\modules\overmap\ships\engines\gas_thruster.dm"
|
||||
|
||||
Reference in New Issue
Block a user