mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-21 12:02:31 +01:00
Area definitions cleanup (Horizon/Runtime) (#20914)
**Goals:** 1. Delete area definitions no longer used in any map or file. 2. Update area definitions such that everything used in mapping the Horizon exists in 'maps\sccv_horizon\areas' with the parent 'area\horizon\'. 3. Reorganize/rename/restructure those Horizon area definitions to make future mapping easier and code that hooks into area properties easier. 4. Present area names and blurbs in the status panel. This PR only handles Horizon and Runtime areas, for digestibility/ease of reviewing. Offsite areas for another PR. Naming convention reference: The /area/ 'name' variable no longer contains either 'Horizon' or the Deck# of the area or its approx location on the ship. All Horizon areas now have several new variables as metadata-- area names now need only be strictly descriptive, and the appropriate constants used in the area definition, and a new function generates the display name with consistent formatting for us. Detailed documentation to follow after any adjustments are made to mappers' preferences. This also adds area blurbs to most areas- if not bespoke, then general department-wide blurbs to parents. I know feature creep always sucks, but while some areas having pre-existing blurbs, the overwhelming majority of areas don't, and while testing it was very distracting to see them randomly appearing and disappearing. Most blurbs are pretty basic but I feel are entirely presentable- more clever individual ones can follow in a separate PR.
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
/datum/event/blob/start()
|
||||
..()
|
||||
|
||||
var/turf/T = pick_subarea_turf(/area/maintenance, list(/proc/is_station_turf, /proc/not_turf_contains_dense_objects))
|
||||
var/turf/T = pick_subarea_turf(/area/horizon/maintenance, list(/proc/is_station_turf, /proc/not_turf_contains_dense_objects))
|
||||
if(!T)
|
||||
log_and_message_admins("Blob failed to find a viable turf.")
|
||||
kill(TRUE)
|
||||
|
||||
@@ -13,21 +13,21 @@
|
||||
//Names of areas mentioned in AI and Engineering announcements
|
||||
var/list/areaName = list("Security")
|
||||
//Area types to include.
|
||||
var/list/areaType = list(/area/security)
|
||||
var/list/areaType = list(/area/horizon/security)
|
||||
//Area types to specifically exclude.
|
||||
var/list/areaNotType = list(/area/security/armory, /area/security/nuke_storage, /area/security/checkpoint, /area/security/checkpoint2, /area/security/bridge_surface_checkpoint, /area/security/penal_colony)
|
||||
var/list/areaNotType = list(/area/horizon/security/checkpoint, /area/horizon/security/checkpoint2)
|
||||
|
||||
/datum/event/prison_break/xenobiology
|
||||
eventDept = "Science"
|
||||
areaName = list("Xenobiology")
|
||||
areaType = list(/area/rnd/xenobiology)
|
||||
areaNotType = list(/area/rnd/xenobiology/xenoflora, /area/rnd/xenobiology/xenoflora_storage)
|
||||
areaType = list(/area/horizon/rnd/xenobiology)
|
||||
areaNotType = list(/area/horizon/rnd/xenobiology/xenoflora)
|
||||
|
||||
/datum/event/prison_break/bridge
|
||||
eventDept = "Bridge"
|
||||
areaName = list("Bridge")
|
||||
areaType = list(/area/bridge, /area/teleporter, /area/crew_quarters/heads/cryo, /area/maintenance/maintcentral)
|
||||
areaNotType = list(/area/bridge/aibunker, /area/bridge/levela, /area/bridge/selfdestruct)
|
||||
areaType = list(/area/horizon/command/bridge, /area/horizon/command/teleporter, /area/horizon/maintenance/deck_3/bridge)
|
||||
areaNotType = list(/area/horizon/command/bridge/aibunker, /area/horizon/command/bridge/selfdestruct)
|
||||
|
||||
/datum/event/prison_break/setup()
|
||||
announceWhen = rand(75, 105)
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
hat_x_offset = 1
|
||||
hat_y_offset = -12
|
||||
standard_drone = FALSE
|
||||
var/list/allowed_areas = list(/area/exoplanet, /area/shuttle/mining, /area/shuttle/intrepid) //Needed for the bot to go mining
|
||||
var/list/allowed_areas = list(/area/exoplanet, /area/horizon/shuttle/mining, /area/horizon/shuttle/intrepid) //Needed for the bot to go mining
|
||||
var/seeking_player = FALSE
|
||||
var/health_upgrade
|
||||
var/ranged_upgrade
|
||||
|
||||
@@ -55,10 +55,6 @@
|
||||
to_chat(brainmob, "<b>As a synthetic intelligence, you answer to all crewmembers, as well as the AI.</b>")
|
||||
to_chat(brainmob, "<b>Remember, the purpose of your existence is to serve the crew and the [station_name(TRUE)]. Above all else, do no harm.</b>")
|
||||
|
||||
var/area/A = get_area(src)
|
||||
if(istype(A, /area/assembly/robotics))
|
||||
GLOB.global_announcer.autosay("A positronic brain has completed its boot process in: [A.name].", "Robotics Oversight", "Science")
|
||||
|
||||
brainmob.client.init_verbs()
|
||||
|
||||
return src
|
||||
|
||||
@@ -206,6 +206,24 @@
|
||||
|
||||
/mob/living/carbon/human/get_status_tab_items()
|
||||
. = ..()
|
||||
|
||||
/// This needs to be updated to use signals.
|
||||
var/holding_gps = FALSE
|
||||
if(istype(src.get_active_hand(), /obj/item/device/gps) || istype(src.get_inactive_hand(), /obj/item/device/gps))
|
||||
holding_gps = TRUE
|
||||
|
||||
var/area/A = get_area(src)
|
||||
var/area_name
|
||||
if(holding_gps)
|
||||
if(is_station_area(A))
|
||||
area_name = get_area_display_name(A)
|
||||
else
|
||||
area_name = A.name
|
||||
. += "[area_name]"
|
||||
. += ""
|
||||
if(A.area_blurb)
|
||||
. += "[A.area_blurb]"
|
||||
. += ""
|
||||
. += "Intent: [a_intent]"
|
||||
. += "Move Mode: [m_intent]"
|
||||
if(is_diona() && DS)
|
||||
@@ -213,8 +231,8 @@
|
||||
. += "Energy: [round(DS.stored_energy)] / [round(DS.max_energy)]"
|
||||
if(DS.regen_limb)
|
||||
. += "Regeneration Progress: [round(DS.regen_limb_progress)] / [LIMB_REGROW_REQUIREMENT]"
|
||||
if (internal)
|
||||
if (!internal.air_contents)
|
||||
if(internal)
|
||||
if(!internal.air_contents)
|
||||
qdel(internal)
|
||||
else
|
||||
. += "Internal Atmosphere Info: [internal.name]"
|
||||
|
||||
@@ -82,6 +82,7 @@
|
||||
|
||||
/datum/computer_file/program/power_monitor/process_tick()
|
||||
..()
|
||||
refresh_sensors()
|
||||
if(has_alarm())
|
||||
if(!has_alert)
|
||||
program_icon_state = "power_monitor_warn"
|
||||
|
||||
@@ -162,10 +162,11 @@ ABSTRACT_TYPE(/obj/machinery/power/apc)
|
||||
init(mapload)
|
||||
else
|
||||
area = get_area(src)
|
||||
var/area_display_name = get_area_display_name(area)
|
||||
area.apc = src
|
||||
opened = COVER_OPENED
|
||||
operating = FALSE
|
||||
name = "[area.name] APC"
|
||||
name = "[area_display_name] APC"
|
||||
stat |= MAINT
|
||||
update_icon()
|
||||
|
||||
@@ -250,14 +251,15 @@ ABSTRACT_TYPE(/obj/machinery/power/apc)
|
||||
cell.charge = start_charge * cell.maxcharge / 100.0 // (convert percentage to actual value)
|
||||
|
||||
var/area/A = loc.loc
|
||||
var/area_display_name = get_area_display_name(A)
|
||||
|
||||
//if area isn't specified use current
|
||||
if(isarea(A) && areastring == null)
|
||||
area = A
|
||||
name = "\improper [area.name] APC"
|
||||
name = "[area_display_name] APC"
|
||||
else
|
||||
area = get_area_name(areastring)
|
||||
name = "\improper [area.name] APC"
|
||||
name = "[area_display_name] APC"
|
||||
area.apc = src
|
||||
update_icon()
|
||||
|
||||
@@ -939,7 +941,8 @@ ABSTRACT_TYPE(/obj/machinery/power/apc)
|
||||
/obj/machinery/power/apc/ui_interact(mob/user, datum/tgui/ui)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
ui = new(user, src, "Apc", "[area.name] - APC", 665, (isobserver(user) && check_rights(R_ADMIN, FALSE, user) || issilicon(user) || isstoryteller(user)) ? 540 : 480)
|
||||
var/area_display_name = get_area_display_name(area)
|
||||
ui = new(user, src, "Apc", "[area_display_name] - APC", 665, (isobserver(user) && check_rights(R_ADMIN, FALSE, user) || issilicon(user) || isstoryteller(user)) ? 540 : 480)
|
||||
ui.open()
|
||||
|
||||
/obj/machinery/power/apc/proc/update()
|
||||
|
||||
@@ -347,20 +347,21 @@
|
||||
// Sound the alert if gravity was just enabled or disabled.
|
||||
var/alert = 0
|
||||
var/area/area = get_area(src)
|
||||
var/areadisplayname = get_area_display_name(area)
|
||||
if(new_state) // If we turned on
|
||||
if(!area.has_gravity())
|
||||
alert = 1
|
||||
GLOB.gravity_is_on = 1
|
||||
soundloop.start(src)
|
||||
investigate_log("was brought online and is now producing gravity for this level.", "gravity")
|
||||
message_admins("The gravity generator was brought online. (<A href='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>[area.name]</a>)")
|
||||
message_admins("The gravity generator was brought online. (<A href='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>[areadisplayname]</a>)")
|
||||
else
|
||||
if(area.has_gravity())
|
||||
alert = 1
|
||||
GLOB.gravity_is_on = 0
|
||||
soundloop.stop(src)
|
||||
investigate_log("was brought offline and there is now no gravity for this level.", "gravity")
|
||||
message_admins("The gravity generator was brought offline with no backup generator. (<A href='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>[area.name]</a>)")
|
||||
message_admins("The gravity generator was brought offline with no backup generator. (<A href='byond://?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>[areadisplayname]</a>)")
|
||||
|
||||
update_icon()
|
||||
update_list(gravity_changed)
|
||||
|
||||
@@ -164,11 +164,8 @@
|
||||
APC_entry["cell_status"] = A.cell ? chg[A.charging+1] : 0
|
||||
// Other info
|
||||
APC_entry["total_load"] = reading_to_text(A.lastused_total)
|
||||
// Hopefully removes those goddamn \improper s which are screwing up the UI
|
||||
var/N = A.area.name
|
||||
if(findtext(N, "�"))
|
||||
N = copytext(N, 3)
|
||||
APC_entry["name"] = N
|
||||
var/area_display_name = get_area_display_name(A.area)
|
||||
APC_entry["name"] = area_display_name
|
||||
// Add data into main list of APC data.
|
||||
APC_data += list(APC_entry)
|
||||
// Add load of this APC to total APC load calculation
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
/area/engineering/power_alert(var/alarming)
|
||||
if (alarming)
|
||||
investigate_log("has a power alarm!","singulo")
|
||||
..()
|
||||
@@ -179,7 +179,7 @@ GLOBAL_LIST_EMPTY(escape_pods_by_name)
|
||||
#define AURORA_ESCAPE_POD(NUMBER) \
|
||||
/datum/shuttle/autodock/ferry/escape_pod/pod/escape_pod##NUMBER { \
|
||||
name = "Escape Pod " + #NUMBER; \
|
||||
shuttle_area = /area/shuttle/escape_pod/pod##NUMBER; \
|
||||
shuttle_area = /area/horizon/shuttle/escape_pod/pod##NUMBER; \
|
||||
location = 0; \
|
||||
dock_target = "escape_pod_" + #NUMBER; \
|
||||
arming_controller = "escape_pod_"+ #NUMBER +"_berth"; \
|
||||
|
||||
@@ -161,7 +161,7 @@ GLOBAL_LIST_EMPTY(gps_list)
|
||||
/obj/item/device/gps/ui_interact(mob/user, var/datum/tgui/ui)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
ui = new(user, src, "GPS", capitalize_first_letters(name), 460, 600)
|
||||
ui = new(user, src, "GPS", capitalize_first_letters(name), 720, 960)
|
||||
ui.open()
|
||||
|
||||
/obj/item/device/gps/process()
|
||||
@@ -247,7 +247,8 @@ GLOBAL_LIST_EMPTY(gps_list)
|
||||
update_icon()
|
||||
return
|
||||
var/area/gpsarea = get_area(src)
|
||||
GLOB.gps_list[gpstag] = list("tag" = gpstag, "pos_x" = T.x, "pos_y" = T.y, "pos_z" = T.z, "area" = "[gpsarea.name]", "emped" = emped, "compass_color" = compass_color)
|
||||
var/gps_areaname = get_area_display_name(gpsarea, TRUE, FALSE, FALSE, TRUE)
|
||||
GLOB.gps_list[gpstag] = list("tag" = gpstag, "pos_x" = T.x, "pos_y" = T.y, "pos_z" = T.z, "area" = "[gps_areaname]", "emped" = emped, "compass_color" = compass_color)
|
||||
if(check_held_by && held_by && (held_by.get_active_hand() == src || held_by.get_inactive_hand() == src))
|
||||
update_compass(TRUE)
|
||||
|
||||
|
||||
@@ -189,26 +189,23 @@
|
||||
switch(target)
|
||||
if("recreational_areas")
|
||||
var/list/recreational_areas_list = list(
|
||||
/area/horizon/crew_quarters/fitness/hallway = 25,
|
||||
/area/horizon/crew_quarters/fitness/changing = 25,
|
||||
/area/horizon/crew_quarters/fitness/pool = 25,
|
||||
/area/horizon/crew_quarters/fitness/gym = 25
|
||||
/area/horizon/crew/fitness/changing = 25,
|
||||
/area/horizon/crew/fitness/gym = 25
|
||||
)
|
||||
A = pickweight(recreational_areas_list)
|
||||
if("operations")
|
||||
var/list/ops_list = list(
|
||||
/area/operations/break_room = 15,
|
||||
/area/maintenance/wing/starboard = 20,
|
||||
/area/maintenance/wing/starboard/deck1 = 20,
|
||||
/area/operations/office = 10,
|
||||
/area/operations/storage = 15,
|
||||
/area/outpost/mining_main/refinery = 20
|
||||
/area/horizon/operations/break_room = 15,
|
||||
/area/horizon/maintenance/deck_1/operations/starboard = 20,
|
||||
/area/horizon/operations/office = 10,
|
||||
/area/horizon/operations/warehouse = 15,
|
||||
/area/horizon/operations/mining_main/refinery = 20
|
||||
)
|
||||
A = pickweight(ops_list)
|
||||
if("starboard_wing")
|
||||
var/list/starboard_wing_list = list(
|
||||
/area/maintenance/wing/starboard = 50,
|
||||
/area/maintenance/wing/starboard/far = 50
|
||||
/area/horizon/maintenance/deck_1/wing/starboard = 50,
|
||||
/area/horizon/maintenance/deck_1/wing/starboard/far = 50
|
||||
)
|
||||
A = pickweight(starboard_wing_list)
|
||||
if(A)
|
||||
|
||||
Reference in New Issue
Block a user